译者 | 崔皓
审校 | 孙淑娟
能够准确识别动物的技术将帮助主人与丢失的宠物团聚,农民监控饲养的牲畜,研究人员研究野生动物。基于以上的应用场景,微芯片是最流行的宠物识别方法。然而,植入芯片需要进行侵入性手术,同时需要专门的设备读取芯片,还要防范小偷提取微芯片的风险。还有一种方法就是DNA分析,它虽然很精确,但也非常昂贵和耗时。今天要给大家介绍的是通过面部识别的方式来识别动物。
1.使用计算机视觉软件进行宠物面部识别
由计算机视觉解决方案进行宠物的面部识别可以作为上述方案的替代品。尽管它存在缺点,但该技术可以在特定情况下展示出高度的准确性。
那么,宠物人脸识别是如何运作的呢?阻碍技术进步的挑战是什么?宠物人脸识别如何工作?
一般来说,宠物面部识别解决方案主要分为三个步骤:
(1)图像捕捉:动物的照片由高分辨率相机拍摄。一些算法只适用于预定义的姿势,因此有必要选择符合这些标准的图像。
(2)特征提取:评估动物的生物特征数据的适用性,并在需要时进行预处理。然后算法提取识别所需的特征集。
(3)特征匹配:提取的特征以数学方式表示并与其他图像匹配。例如,如果我们在丢失的宠物数据库中寻找一只狗,我们会将狗的独特特征与该数据库中的所有动物进行匹配。
有几种方法可以执行匹配。一种方法是使用KNN和DBSCAN等算法进行聚类,这将产生一组与我们的目标图像高度接近的图像,用户可以手动选择最合适的图像。
此外,可以部署概率方法以将最终结果表示为置信水平。例如,识别目标是猫,同时算法确定捕获的图像是猫,其置信度为90%;如果确定是狗,其置信度为10%。
宠物的面部识别
2.宠物面部识别示例
以下是如何在现实生活中使用宠物面部识别的示例。其中一些系统是成功的、流行的,甚至是商业解决方案,还有一些是检验假设的学术尝试。
寻找丢失的动物
失去他们的宠物对主人来说是令人心碎的。根据统计数据,此类事件比人们想象的要普遍。在美国,三分之一家庭饲养的所有宠物(狗/猫)一旦失踪,有80% 都再也没有找到。有几个宠物面部识别的计划可以帮助主人找到他们失去的朋友。
ForPaws是一款APP产品,它通过宠物识别的方式根据狗的鼻尖、肤色和毛皮类型来识别它们。主人必须上传至少三张照片才能创建宠物的个人资料。目前,该解决方案可以识别130个犬种,准确率达到90%。
这家宠物识别公司开发了一款应用程序,允许宠物主人注册和上传动物的照片。该系统分析宠物的面部特征。如果主人可以提供额外的信息,例如性别、大小和重量,PiP声称它将能够识别每只丢失的猫和狗。
任何发现丢失宠物的人都可以使用该应用程序寻找宠物的主人。PiP的解决方案还不断扫描社交媒体上的动物帖子,并向相关社区的居民发送丢失的宠物警报。
Petco的Love Lost是一个面向宠物主人和动物收容所的应用程序。使用者可以创建动物档案,以便当宠物失踪时,软件可以开始将宠物的生物特征信息与收容所的新来者以及其他候选动物进行匹配。
识别特定的宠物
训练算法可以用来识别一只特定的宠物。例如,宠物主人可以在准确识别宠物的前提下进行后续操作,比如发送警报或打开门让宠物进入。
Aakaitz Garro前端工程师开发了宠物面部解决方案
WeTransfer的前端工程师Arkaitz Garro开发了一种宠物面部识别解决方案,该解决方案可以识别邻居的猫,当这个小家伙出现在门口时向Garro(也可以是指定的人) 发送警报。为了捕捉猫的照片,Garro使用了小型相机和带有运动检测软件的Raspberry Pi。当动物接近相机时,系统会拍摄照片并将其发送到AWS Recognition平台,该平台将其与Garro上传的这只猫的其他图像进行比较。如果匹配成功,工程师会收到通知。
微软用于宠物识别的物联网设备
同样,微软开发了一种物联网设备,用户可以将其安装在家里宠物进门的地方。当识别到宠物后,设备会解锁让动物进门。
协助科学研究——海豚的面部识别
除了识别家庭宠物外,面部识别算法还可用于检测其他物种。《海洋哺乳动物科学杂志》上发表了一项研究,调查了识别海豚所需的一组特征。研究人员在12年内追踪和拍摄150只宽吻(bottlenose)海豚。该团队在海豚的生命周期中对其面部和背鳍进行识别,并且评估这种方法的可行性。
使用这150名受试者,它归结为只有31只具有全面轮廓(即面部左右两侧和背鳍的清晰照片)的海豚。这项研究依靠人类专家意见和统计方法来检测同一海豚的不同图像之间的相似性。
该实验的结果表明,海豚的面部特征随着时间的推移保持一致,可用于识别目的。这种技术可以识别成年后的小海豚,方便追踪海豚成长的过程,这极大地促进了海豚研究。
同一只海豚在不同阶段的特征
帮助农民监控牲畜
识别农场动物是具有挑战性的。北京优瑞科技创始人赵金石,他多年从事农业领域的软件开发,对于识别农场动物他有自己的看法:“对于猪来说,识别起来会比较困难。因为猪看起来都一样,但奶牛会相对容易一些。因为它们有明显的特别,它们身上的花纹是黑白的,形状不同。”
奶牛和他们的“互动”
然而,当涉及到奶牛识别时,挑战出现了——即确定安装摄像头的位置。奶牛是好奇心比较重的动物,即使是最轻微的环境变化也会引起它们的注意。当发现摄像头时,它们会通过舔舐的方式与之“互动”。但抛开挑战不谈,建立可以识别个体奶牛的系统将极大地帮助饲养者。该解决方案可以将动物的健康状况、饮水、进食模式与动物的身份相匹配。借助人工智能,能够检测动物的疾病迹象和异常行为,在紧急情况下通知饲养者。
3.面部识别的挑战
如果要实施宠物面部识别解决方案需要主要考虑三个挑战:
确定最优特征集
科学家们已经指定了可用于人脸识别的特征向量。然而,同样的方法不适用于宠物,因为我们不知道需要使用哪些功能以及如何解释它们。例如,在与人打交道时,科学家可以使用变分自动编码器 (VAE) 架构从人脸中提取特征。在这种方法中,人的照片被压缩为包含所需特征的向量,例如肤色和面部表情。但在宠物面部识别方面,目前还没有可靠的特征向量。
可靠的特征向量
解决可靠的特征向量将显著推动该领域的发展。开源示例DogFaceNet是一种基于深度学习对狗进行识别的实现。它使用狗的眼睛和鼻子作为特征集。如果总体目标是区分犬种,则此解决方案效果相当好,但在区分双胞胎动物时其性能相当差。
动物姿势
另一个例子是使用局部二值模式直方图 (LBPH) 算法,该算法将图像转换为像素,并通过比较不同图像的像素值来进行操作。这种方法取决于动物的姿势,这使得它对姿势变化很敏感。值得一提的是,这种方法已经过时了。目前,工程师更倾向于使用更多的高级功能。
让动物对着镜头摆姿势
对于人类来说,很容易采取特定的姿势并静坐不动。然而,当我们试图让猫或狗以特定姿势拍照就不那么容易了。这需要应用到“姿势敏感”的面部识别算法,例如依赖于像素相似度的算法。
提供全面的训练数据集
为了使训练有效,数据必须多样化并涵盖算法预期执行的所有任务。例如,如果算法识别不同的狗品种,那么数据集应该包含不同角度捕获并正确标记的信息源。这里会出现多种状况,例如:有人可能会提交混合品种的图像,有人可能会错误地标记图像并分配错误的品种名称。为了避免此类问题,专家必须一张一张地审查数据集中的所有照片,以验证图像的合法性和标签的准确性。
4.结论
宠物人脸识别领域的进展受到以下事实的阻碍:研究人员仍然无法指出可用于大规模准确识别动物的最佳特征组合。尽管如此,还是有一些成功的应用程序基于受限数据工作,例如识别特定的动物或一小群家养/野生动物。如果您正在构建自己的宠物面部识别系统,请记住动物是生物识别技术的非合作用户。有些会坚持舔相机,有些会拒绝为照片摆姿势。为了消除不必要的麻烦,可以设计姿势和表情中立的算法。另一个需要考虑的问题是隐私法规。如果你想构建一个寻找丢失宠物的应用程序,是否需要主人显示他们的位置?即使是主人家中宠物的照片,也可能暴露与主人相关的隐私信息。
原文链接:
译者介绍
崔皓,社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。曾任惠普技术专家。乐于分享,撰写了很多热门技术文章,阅读量超过60万。《分布式架构原理与实践》作者。