AI猫窝:一位工程师铲屎官给流浪猫主子们的贺年礼

百家 作者:机器之心 2019-02-09 07:08:23

机器之心原创

作者:邱陆陆


刷脸开门,智能温湿度控制,新风系统…… 


如此智能的不是我的家,而是喵星人的家。


来自百度大脑的工程师晚兮与流浪猫救助者一起,打造了「全球首个 AI 智能猫窝」,在北京冷冽的寒风里,为这些小家伙们搭建了一隅避风港。


智能猫窝设计图



智能猫窝里的「智能」包括刷脸开门的猫脸门禁系统,能控制 27 度恒温的温湿度传感器与加热器,保持内部空气清新的新风系统,以及可以判断猫是否患病、是否尚未绝育的识别系统。



俗话说得好,不会写代码的铲屎官搭不出好猫窝,哪些深度学习模型在智能猫窝中扮演了重要作用?他们又是如何训练而成的呢?作为全民猫奴的机器之心编辑部的代表,我们和晚兮聊了聊。


机器之心:智能猫窝里用到了哪些机器学习模型?


智能猫窝里有动物识别、病猫识别和绝育识别三个机器学习模型。


机器之心:模型规模有多大?模型是如何搭建的?


模型的参数规模达到上千万。


病猫识别、绝育识别模型是通过百度 EasyDL 平台直接获取接口完成的。在产品背后,EasyDL 是在预训练过的模型上进行精调完成的最终模型。


选择迁移学习是因为它可以提高训练的效率和模型的性能:精调的模型参数一开始就较好,可以使网络更快地收敛;同时该方法可以解决样本数据不够充足的问题。


机器之心:模型需要多大规模的数据集?如何收集?需要自己进行标注吗?


最初版本的模型,每一个类别需要 100 张左右的样本,训练集主要是从网上采集图片经过筛选构建而成的。后续迭代中,为了使识别效果更佳准确,我们在宠物医院实地进行了更真实更广泛的数据采集。


采集后,需要自己进行简单标注,对每一种猫的受伤种类进行区分,并放入对应的文件夹中,最后打包。


机器之心:模型如何处理猫脸离摄像头远近不同/角度各异等问题?


采集和筛选样本的时候,我们会考虑到样本多样性的问题,同时也会使用数据增强增加样本的多样性。


机器之心:模型的推理在终端还是在云端完成?有哪些与 AI 相关的计算是在终端完成的呢?使用了什么硬件?


猫舍模型推理在云端完成。但是我们 EasydDL 产品对设备端的和云端推理都能支持。特别是,我们最近发布的 EasyEdge 一站式端计算平台可以适配多种终端设备并实现设备端推理的加速。


在终端完成的与 AI 相关的计算主要是猫脸的特征识别,使用的硬件计算平台是一套 X86 的计算平台,以及一台红外夜视摄像机。


机器之心:猫在多大范围内活动能被猫窝上的摄像头捕捉?猫脸识别夜视模型和白天模型是同一个模型吗?


光线充足的情况下距离入口处的 2-3 米半径范围内可以进行猫脸识别,夜晚半径范围则为 1.5 米。夜视模型和白天是同一个模型。


机器之心:猫脸识别的粒度是「是否是猫」/「是哪一种猫」还是可以辨别「是哪一只猫」?


根据智能猫窝的需求,模型只需要做到能够识别「是否是猫」就可以满足。百度大脑动物识别 API 可以识别 174 种不同的猫的图片,来确保各种猫都能够被正确的识别。至于「是哪一只猫」这类对于个体的识别,需要通过采集每个个体的数据才能进行准确的识别,因此不属于目前场景的需求。


当然 EasyDL 图像分类的相关模型是能够解决个体识别问题的,比如,我们之前有基于东北虎的虎皮纹识别老虎个体的实际案例。



机器之心:病猫识别问题相比于其他识别问题有什么难点?


病猫识别的最大的问题在于很多病的特征点比较小,比如受伤的猫咪可能只有一个很小的伤口,为了能够准确的识别此类图片,需要大量的病猫的图片来进行训练,同事要对模型不断地进行参数优化和迭代,最终才能达到一个比较好的效果,减少误识别的比例,减轻志愿者的工作量。



机器之心:什么病种相对更难识别?原因有哪些?


目前识别效果比较好的主要还是一些外部特征较为明显的疾病,比如外伤、鼻支、口炎等等。外部特征不明显的疾病比如猫瘟、消化道疾病之类的病不是很容易通过图片来判断,只能通过猫咪的精神状态和表现来做大概的判断。


机器之心:绝育模型识别的特征是什么?


绝育的猫咪和没有绝育的猫咪在外观上是基本没有区别的,因此在传统的流浪动物救助工作中,对已经进行过绝育的动物打耳标是一个非常通用的做法。所以在智能猫窝的设计过程中,当然也采用识别耳标这个通用的方法来对猫咪是否绝育作出判断。同时由于摄像头的摆放位置,猫咪如果进入智能猫窝,耳朵一定会处于摄像头的照射范围之内,拍出来的图片效果非常明显,比志愿者用肉眼观察效果都要好,因此识别耳标的出错率甚至低于人工判断的错误率。



机器之心:AI 猫窝的开发使用了 EasyDL 的哪些模块与功能?


EasyDL 提供了图像识别、声音识别和文本分类这三种定制化的产品,其中图像识别当中又有图像分类和物体检测两种不同的应用。在智能猫窝中,主要使用了图像分类来对图片进行训练,训练出的模型可以快速地将图片分类为猫和其他动物,健康猫和患有不同的疾病的猫。


机器之心:在你看来,使用 EasyDL 开发在哪些方面帮助你提高了效率?


传统的机器学习,除了准备大量的数据之外,还需要对机器学习的原理有一定的理解,知道不同的问题适用于哪些学习框架的哪些网络模型,同时还需要有一定的编码基础,才能够完成一个模型的训练。另外对于数据量较大的模型,个人手中的训练资源,比如需要使用的训练数据、对训练数据的标注、训练所需要使用的机器等等都是非常有限并且成本很高的。而 EasyDL 的出现基本上解决了上面提到的所有问题。

 


只需要将准备好的数据打包上传到平台,选择适用的模型类别,点击训练,后台就会调动云端大量的机器资源帮你训练模型,根据数据量大小,短则十几分钟,长则数个小时,就能够训练好一个机器学习的模型,并且生成一个在线可供调用的 API,直接就能够使用了,极大地降低了 AI 在各个场景下的使用门槛,节省了大量的人力物力。


机器之心:猫窝搭建和运营各自需要哪些成本和条件?


猫窝的搭建主要是一些物料成本,比如保温板、玻璃等,还有就是摄像头、传感器、电机、控制主机等电子设备,组装是非常简单的。运营所需要的条件当然首先要有不间断的供电,另外就是有志愿者能够定时添粮换水。因此我这次这个智能猫窝是放在了志愿者经常对猫咪进行投喂和救助的社区里,来帮助志愿者减少工作量,同时提高猫咪的生活条件。


机器之心:一个猫窝大概能容纳多少只流浪猫?如果数量超出预期怎么办?


一个智能猫窝的生活区使用隔板分成了四层,因此同时容纳 5-6 只猫咪是完全没有问题的,另外不是所有的猫都会同时进入猫窝,所以一个猫窝至少可以服务附近十几只的流浪猫。由于每只猫咪的进入志愿者都能够在手机上收到通知,所以如果流浪猫数量真的瞬间增加很多,他们会采取行动去做安置,如果这是个长期现象,我可能也会进一步在空间上做一些改善和增加,当然啦,到现在为止,猫咪们还没有出现「超载」现象。


猫窝最初设计到现在这段时间内经历过很多次的改进,比如入口处电动门后置的设计,最开始的设计是只有一道门,但是测试过程中发现由于电动门的噪音导致流浪猫不敢靠近入口,后来灵机一动改为将识别放在前面,电动门放在后面这样两道门的设计,就避免了流浪猫被电动门的噪音吓走的问题。测试的这段时间内,我们也收到了很多大型公益组织、品牌,还有微博和微信用户的咨询与正向反馈,我也希望希望智能猫窝得到进一步推广。


机器之心:接下来还打算添加哪些新的基于机器学习/深度学习的功能吗?


目前的智能猫窝只是一个非常初步的产品,但是我脑海中还有许多的功能后续会逐步添加到智能猫窝上,比如可能识别猫粮、饮用水是不是已经吃完喝完,方便通知志愿者及时添加;比如可以通过识别猫身上是不是干净、是不是品种猫来判断这是不是一只走失的猫咪,这样可以及时帮助主人找回离家出走的猫等等。总之,人工智能在生活中的方方面面都会有很大的作用,能够极大地改变我们的生活。


机器之心:除了上面的问题之外,在开发过程中有哪些有意思的观察或者发现可以与读者分享一下吗?


其实猫窝的制作、代码的编写、模型的优化是比较枯燥无聊的,但是在制作过程中,我会时不时去流浪猫经常出没的地方去看看流浪猫们,观察观察它们的生活状态、性格、体型大小、习惯等等。


在和志愿者们交流的过程中,我也学到了很多知识,比如猫咪饿了渴了,怎么吸引它们来喂食点;怎么判断猫咪是不是病了,怎么带生病的流浪猫去医院等等。看到猫咪们在志愿者和好心人的照顾下生活的很开心,我是真心的觉得高兴。



本文为机器之心原创,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告 & 商务合作:bd@jiqizhixin.com

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接