基于卷积神经网络的奶牛个体身份识别
这是一个人工智能与农业的结合,在农业中我们经常需要给个体动物做标记,目的是对奶牛做身份识别,然后可以对动物做养殖和繁殖的跟踪,从而提供养殖管理的决策支持。我们比较熟悉的可能是人的人脸识别,于是,就有人想动物是否也可以做脸部识别来做身份识别呢?诚然,确实有研究在这么做,但是动物的脸部捕捉比人的脸部捕捉要难太多,特别是在户外的情况下,于是,大家进一步探讨的就是,能否通过动物的躯干信息做身份识别呢?
本文就是通过奶牛的躯干信息做身份识别。
传统方法
个体身份识别方法是自动分析奶牛行为的技术前提和应用基础。动物个体识别常采用无线射频识别(RFID)技术。但RFID技术识别视频视野中的奶牛个体时需要额外的设备与同步识别方法,增加了奶牛行为视频分析系统的复杂度和成本。然而奶牛视频中包含奶牛的个体信息,可直接对视频进行图像处理实现奶牛个体识别。
识别方法介绍
该方法采集奶牛直线行走时的侧视视频,用帧间差值法计算奶牛粗略轮廓,并对其二值图像进行分段跨度分析,定位奶牛躯干区域,通过二值图像比对跟踪奶牛躯干目标,得到每帧图像中奶牛躯干区域图像。将躯干图像灰度化后经插值运算和归一化变换为48×48大小的矩阵,作为4c-2s-6c-2s-30o结构的卷积神经网络的输入进行个体识别。对30头奶牛共采集360段视频,随机选取训练数据60000帧和测试数据21730帧。结果表明,在训练次数为10次时,代价函数收敛至0.0060,视频段样本的识别率为93.33%,单帧图像样本的识别率为90.55%。该方法可实现养殖场中奶牛个体无接触精确识别,具有适用性强、成本低的特点。
1. 躯干定位
帧间差值法对目标的运动边缘具有优良的检测性能,对奶牛进行帧间差值处理可得到奶牛的粗略轮廓,对得到的二值图像进行跨度分析,以剔除外部干扰,并分割出尾巴、头和颈部,最终得到躯干区域。
如左图所示,将得到的帧间差值图像划分成等间距的片段,分别计算每个片段内二值图像真值的上边界和下边界,并计算两者的差值作为图像跨度。
计算修剪后的二值图像的外接矩形,其上半部分为躯干区域,下半部分为奶牛四肢。对于荷斯坦品种的奶牛,其躯干纵向高度与体高之比rb/t变化幅度较小。因此,本研究对30头奶牛通过试验确定rb/t平均值为0.6。将定位的躯干区域以中心为基点缩小到80%,以去除边界处的背景区块。躯干定位结果如右图所示。
2. 躯干跟踪
考虑到奶牛行走过程中躯干无明显的几何变化,只产生平移运动,故采用在后续帧中跟踪躯干的策略,以提高躯干图像提取精度。常用的跟踪方法有粒子滤波跟踪法和Meanshift算法,粒子滤波对大目标跟踪耗时长,不适于奶牛目标的跟踪;试验发现,Meanshift算法不能准确跟踪行走中的奶牛目标。主要原因是基于颜色直方图的Meanshift算法对于颜色变化敏感,奶牛躯干主要由白色和黑色组成,而背景中包含了过多的颜色信息,导致Meanshift极易跟踪到背景区域。因此,用模板比对法对奶牛躯干区域进行跟踪。其基本原理是以当前帧躯干区域所在的位置为中心,在下一帧中寻找与躯干区域最接近的图像。
3. 卷积神经网络构建
为减少数据量并保证输入图像的细节信息,将奶牛躯干图像灰度化后通过插值计算变化为48×48的图像,并除以255归一化后作为输入数据。
采用2组卷积和下采样层,由于躯干图像基本不存在扭转、变形等影响,因此减少2个卷积层中特征图的数量,以提高网络对图像宏观信息的利用率。下采样时对连接区域求均值得到输出,不使用权重系数和阈值,省略函数转换过程。
奶牛个体识别中的信息匹配可以通过单层感知器实现,在第2次下采样后直接与输出层连接,以大幅度简化网络中的感知层。本研究牛群中共有30头奶牛,故输出层为30个感知器,与上一层全连接,输出编码采用one-of-c方式,即每种奶牛个体作为一个模式。
考虑到sigmoid函数有良好的非线性映射特性,故变换函数统一采用sigmoid函数。网络训练中学习率取为1,训练批大小为50,训练终止条件为代价函数值小于0.01。由于变换函数为sigmoid函数,故网络输出为一个长度为30的浮点型向量,将该向量中最大值置为1,其余元素置0作为网络的输出模式。若输出模式与该输入图像的真实模式不匹配,则表明识别错误。
为进一步确定卷积层特征图最佳个数,对不同结构的卷积神经网络进行识别准确率及平均耗时试验,结果表明,当两个卷积层中特征图个数分别为4和6时,网络识别率和效率最高。
4. 实验结果
卷积神经网络的识别准确率及效率:
图像检索法与卷积神经网络奶牛个体识别结果比较:
编者观点
本文的特点是在于非常好的一个实际应用,具有很大的创新性,但是测试数据本身采集难度比较大,并且数据量还不算多,所以该方法的普适性并不能确保,另外结果对比中,与传统方法的对比有点避重就轻,过于简单,如果能和其他的网络结构作对比则更好。但是总体来说不妨碍这篇文章的趣味性,因为做了一个很好的尝试和应用。
论文链接
http://www.tcsae.org/nygcxb/ch/reader/view_abstract.aspx?file_no=20150526
---人工智能应用系列·介绍---
本系列介绍各领域的一些有趣的人工智能应用,原理可能并没有那么复杂,目的是开拓大家的视野和思路,也许人工智能能做的事情比我们想象的还要多。
专栏:人工智能应用系列(https://zhuanlan.zhihu.com/ai4application)
作者的Live:如何做跨领域人工智能应用?(https://www.zhihu.com/lives/822768309568167936)