基于ALR-GMM的群养猪攻击行为识别算法研究
2021-02-01何东健STEIBELJuanSIEGFORDJaniceNORTONTomas
刘 冬 何东健 陈 晨 STEIBEL Juan SIEGFORD Janice NORTON Tomas
(1.西北农林科技大学机械与电子工程学院, 陕西杨凌 712100; 2.鲁汶大学M3-BIORES实验室, 海弗莱 B-3001;3.农业农村部农业物联网重点实验室, 陕西杨凌 712100; 4.江苏大学电气信息工程学院, 镇江 212013;5.密西根州立大学动物科学系, 东兰辛 MI 48824)
0 引言
畜禽行为是畜禽对某种环境刺激的反应,或与其所在环境相互作用而造成的某种生活方式的反应[1]。当生活环境发生变化时,畜禽动物通常会通过调节行为来缓解外界环境对心理和生理上的压力,但动物的适应能力有限,当环境胁迫超过其适应限度,则会表现出异常行为[2]。随着畜禽养殖业集约化程度的不断提高,采用笼养、自动供水供料以及漏粪地板等措施,改变了传统养殖环境,从而影响畜禽动物的正常生活习惯,常常引起动物异常行为,导致其生产性能下降,甚至发生疾病[3],如鸡啄羽行为[4]、猪咬尾行为[5]等。研究畜禽动物在各种环境下的活动模式,了解其习性,探索与之对应的神经内分泌机理,并指导设计、创建适于畜禽习性的环境条件,可以提高畜禽动物的生产性能[1-2]。
传统动物行为学研究主要依靠观察员对多个动物的行为同时进行观察,并记录行为类别、行为发出者、行为接受者,以及行为发生的顺序、时段、频率以及起止时间等,然后对记录结果进行统计分析[6]。随着畜禽养殖集约化程度的不断提高,人工观察记录难以满足现实需求,国内外学者试图利用计算机视觉技术量化评估畜禽动物对微环境的响应[3]。BLOEMEN等[7]提出的活动指数被广泛用于评估畜禽动物群体的胁迫响应,并在肉鸡和育肥猪对环境温度的变化响应以及水蚤对水质的响应研究中验证了方法的有效性。LIND等[8]使用该方法研究了猪对药物刺激引起的活动水平变化。COSTA等[9-10]研究了群养猪对温度、湿度、空气流速、通风率变化的响应行为。CHUNG等[11]研究了猪群的昼夜节律行为模式。KRISTENSEN等[12]分析了家禽对不同环境温度的响应。KASHIHA等[13]研究商业化养鸡场中的鸡群分布,当鸡群异常聚集或逃离时,系统向农场主发出警报。
活动指数的计算需要人工获取纯背景图像或采用阈值分割出动物目标,然后通过帧差法计算相邻两帧的“运动区域”。然而,畜禽养殖环境通常伴随背景环境的突变或渐变,如一天内太阳光强度和角度渐变、照明设备开关等干扰[14]。用深度传感器获取距离信息,避免光照变化对背景相减法的影响,为长时间监测提供了可行的解决方案。LEE等[15]和CHEN等[16]在深度图像中采用背景相减法计算活动指数,并对猪攻击行为进行识别,识别准确率显著提升。基于距离信息的背景相减法仍然要求维持棚舍设施恒定,且重新部署系统时需要人工获取纯背景图像。因此,采用背景相减法计算畜禽动物活动指数无法适应复杂动态场景,导致很多研究成果难以在实际养殖场推广。
利用高斯混合模型(Gaussian mixture model, GMM)[17-19]可以建立动态背景模型,任意像素在时间域上的分布由若干个高斯函数表示,将后一帧的新像素与高斯分布模型进行比较,判断是否服从该分布,进而判断是否属于背景像素。GMM动态建模思想符合畜禽养殖环境需求,已经被广泛用于检测猪[20]和奶牛[21-24]等畜禽动物的空间位置。然而,GMM的设计初衷是检测移动目标,其算法机制决定了模型会最大限度维持运动像素,按照活动指数定义,模型可使静止像素快速消融。因此,GMM容易造成累积误差,无法直接替代基于背景相减法的活动指数模型。
本文提出基于自适应学习率高斯混合模型(Adaptive learning rate GMM, ALR-GMM)的畜禽动物行为识别模型,在保持模型对背景描述能力的前提下判定运动像素,同时自适应调节运动区域图像的学习率,加速“运动区域”的消融速度,为计算动态背景环境下的活动指数提供一种新的方法,并通过试验验证该方法对识别育肥猪攻击行为的有效性。
1 活动指数计算方法
1.1 经典活动指数模型
经典活动指数模型通过图像处理算法获取视频序列中由动物运动造成的像素变化,来衡量评估动物对微环境的适应性[7]。图1为经典活动指数计算过程示意图。首先,采用背景相减法或阈值分割算法逐帧分割动物像素,图1b为分割后示意图,其中浅灰色区域表示动物目标;然后,通过帧差法计算相邻图像中动物像素的相对变化,并提取出运动像素。活动指数定义为运动像素在图像中的百分比
(1)
式中A——活动指数,%
Nm——运动像素数
Nt——总像素数
当饲养笼舍结构合理、温度适宜、空间充足、饲料充足且无外界刺激时,畜禽动物通常表现为有规律性的活动且活动强度较温和,活动指数在经验范围内有规律的波动。但当动物遭受环境或疾病等胁迫时,可能表现为群体骚动或长时间躺卧,活动指数会急剧升高或异常平稳。然而,饲养员察看、投料及其他未知因素均可能造成动物群体性躁乱,导致活动指数短时间内急剧升高。可见,基于短期观测结果的判断容易造成系统误警报,采用活动指数评估动物对其微环境的适应性必须建立在对长期观测结果的统计性分析上。经典活动指数计算方法依赖纯背景图像,应用时需要营造稳定的光照条件,无法满足实际需求。
1.2 基于ALR-GMM的活动指数计算方法
高斯混合模型对每个像素点建立3~5个高斯分布模型,并能对当前帧的观测结果实时更新模型参数,建立动态背景模型,满足长时间观测的实际需求。在基于GMM算法的移动目标提取应用中,要求模型能维持运动像素,并消除参数迭代更新造成的前景消融问题[22]。然而,在实时更新的背景模型中获取运动像素数时,不仅要求模型能敏感地检测到相邻帧间的差异区域,而且在该区域接下来的视频序列呈静止状态时,模型要能加速更新该区域模型参数,使其融入背景。
GMM算法的背景递归方程为
(2)
其中
(3)
x(t)——第t帧图像
α——学习率,决定参数更新速度
β——双曲正切函数伸缩系数
学习率α为预设固定值且对任何像素均一致,若无法自适应差异区域的模型参数迭代速度,则会导致已经停止运动的动物仍然被判为前景。为解决上述问题,本研究的基本思想是:对图像背景区域采用预设学习率以保证GMM算法的自适应背景更新能力,而对差异区域采用高学习率,加快该区域迭代速度,使差异区域能尽快融入背景。为此,采用双曲正切函数(tanh)自适应调整模型学习率α。改进后算法流程如图2所示,如果当前像素I(x,y)的检测结果为“背景”,则学习率保持预设值,按式(2)更新背景模型;如果当前像素I(x,y)的检测结果为“前景”,则学习率按式(3)更新背景模型。
采用tanh函数是因为在α定义域[0,1]内,函数单调递增且值域[0,1)仍在α的限制范围内,学习率经迭代不会超过其定义域(图3)。此外,伸缩系数β还可以调节函数变化速率,决定了每次迭代对学习率α的缩放幅度。图4为β取不同值时,预设学习率α随迭代次数的变化趋势。可见,如果没有引入伸缩系数(相当于β=1,图4中蓝线所示),tanh函数无法对学习率进行有效调整,随着β的增大,α的变化速率越大。
2 算法精度评估
2.1 试验数据
试验数据采集自美国密西根州立大学养猪教学与研究中心,采用Intel RealSense D435型深度摄像机采集群养猪活动视频,摄像机架设于猪棚正上方获取顶视图像,距地面2.4 m以确保摄像机视野覆盖整个猪棚,采用Intel RealSense SDK编写Python数据采集软件,采集帧率为30 f/s,图像分辨率为1 280像素×720像素,视频存储格式为MJ2。视频采集软件运行环境为Intel Core i5-3570,CPU@3.4 GHz,8 GB内存。随机选取50帧连续深度图像,由人工逐一标注。标注过程为:采用背景相减法粗略分割前景和背景像素(图5);图像二值化;采用Photoshop软件人工去除图像孔洞。
2.2 结果与分析
为验证本文算法的有效性,逐帧计算人工标注图像的活动指数,作为标准结果;采用背景相减法作为对照算法,获取目标像素,并按定义计算活动指数。采用GMM算法获取运动像素,探明不同预设学习率对计算结果精度的影响。用本文算法获取运动像素,并计算活动指数,评估算法性能。算法实现环境为Intel i7-7700HQ CPU @2.80 GHz, 16 GB RAM, NIVIDIA GTX 1050Ti GPU,GMM算法采用OpenCV-Python 4.1.0计算机视觉库实现,ALR-GMM算法在Python 3.6.2环境下编程。
为测试活动指数的精度,采用平均绝对误差和平均相对误差进行评价,采用单帧处理时间衡量实时性。
(4)
(5)
式中f——图像帧序号N——总帧数
Sf——第f帧活动指数的标准结果,%
Eα——平均绝对误差
Rα——平均相对误差
2.2.1标准结果和背景相减法
相邻两帧原始图像如图6a和图6b所示,标准结果如图6c所示。由图6可知共有4头猪(3、5、7、8号)发生了位移。图6d为背景相减法提取出的运动像素。图7为50帧连续图像的标准结果和背景相减法的计算结果,平均绝对误差为0.025 6,平均相对误差为15.08%。
2.2.2学习率对计算精度的影响
不同预设学习率下用GMM算法提取运动像素的结果如图8所示。图9为50帧连续图像的活动指数计算结果,表1为不同学习率下的平均绝对误差和平均相对误差。
由图8、9可知,当学习率α≤0.1时,计算误差主要是检测误差。前一帧图像检测结果无法实时融入背景模型,而是叠加到当前帧检测结果,导致运动像素数不断累积,与学习率呈负相关性(图8f);当学习率α≥0.5时,误差主要源自噪声。GMM算法能迅速清除前景像素数,检测结果趋近标准结果,但随着学习率增加,模型对任何细微变化都更加敏感,检测精度受噪声影响越来越严重(图8a)。当α≈0.2时,检测结果趋近标准结果,且随学习率继续增加,能更精确地检测到运动像素,同时噪声也明显增加。
综上可以得出:①低学习率能提高模型的整体抗噪能力,且对背景环境的微弱变化不敏感,但运动像素会持续累加到后续检测结果,造成严重的累积误差(图9中紫色曲线累加式上升)。②高学习率能提高模型对运动像素的检测精度,将已经静止的图像区域迅速融入背景,但对背景环境的微弱变化敏感,造成噪声误差(图9中绿色曲线整体高于标准结果)。③将学习率初始化为较低值,对已经检测到的运动像素采用高学习率可解决上述矛盾。
表1 算法性能比较Tab.1 Algorithm performance comparison
2.2.3本文算法测试结果
本文算法在不同预设学习率下的计算结果如图10所示。表1为GMM算法和本文算法在不同初始学习率下的平均绝对误差和平均相对误差。当预设学习率较小时(α≤0.2),本文算法能大幅提升检测精度;当预设学习率较大时(α≥0.5),对模型的改善效果有限。表明本文算法能有效抑制运动像素的累积误差,但无法抑制噪声误差。应用该算法时,需要优先预设较低学习率,在保留动态建模优势的同时能抑制随机噪声。此外,可以通过图像形态学或连通域分析等传统图像处理算法进一步降低噪声误差。
分析表1可知,当α=0.2时本文算法达到最优检测结果。本文算法相较于背景相减法,平均绝对误差从0.025 6降到0.023 3,平均相对误差从15.08%降到14.34%。本文算法相较于GMM算法,平均绝对误差降低了0.007 3,平均相对误差降低了3.74个百分点。本文算法处理1帧图像的时间为25 ms,比GMM算法多2 ms。结果表明,本文算法无需人工提取纯背景图像,实现了端到端获取活动指数。
3 算法应用验证
3.1 试验数据集
采用球型IP摄像机(CTP-TLVA29AV型, Cantek Plus公司, 美国)获取RGB彩色数据流,图像分辨率为1 180像素×830像素,帧率为30 f/s。试验数据集视频时长共计8 h,动物行为学专家按照育肥猪行为谱对数据进行标注,包括行为类别、起止时间和持续时间。
由于猪攻击行为的复杂性,行为持续时间从几秒到几分钟不等。统计发现,本数据集的最小持续时间为3 s。因此,将原始视频分割为若干3 s视频段,记为一个行为单元,共9 600个单元,包含1 200个攻击行为单元和8 400个非攻击行为单元,供试数据示例如图11所示。为平衡试验数据,将1 200个攻击行为单元进行数据扩增(图像旋转90°、180°、270°),选取了4 800个非攻击行为单元,包括进食(480个)、攀爬(480个)、躺卧(960个)、追逐(480个)、快跑(960个)、饮水(480个)及慢跑(960个)。
3.2 特征提取
相较于其他行为,攻击行为表现为两头猪相对位置和形状快速变化,导致运动像素的激增,如图12所示。计算出每个行为单元的活动指数,并将其最大值、平均值、方差和标准差作为行为特征向量。
3.3 分类器构造
本研究采用线性核函数支持向量机(SVM)建立分类器,对数据标准化处理,限定范围为[0,1];采用五折交叉验证法测试模型性能,每次验证包括训练集7 680个行为单元(攻击行为单元和非攻击行为单元均为3 840)、测试集1 920个行为单元(攻击行为单元和非攻击行为单元均为960)。统计测试集的真阳性(True positive, TP)、真阴性(True negative, TN)、假阳性(False positive, FP)和假阴性(False negative, FN),并计算正确率(Accuracy)、灵敏度(Sensitive)、特效度(Specificity)和精度(Precision),对模型进行评估。
3.4 试验结果
表2为用SVM对测试集进行分类的结果,正确率、灵敏度、特效度和精度分别为97.6%、97.9%、97.7%和97.8%。观察错误分类样本发现,造成假阳性的主因是快跑行为,尤其是多头猪受到外界刺激产生群体性应激响应,导致运动像素数量增加造成活动指数激增。假阴性样本主要是当攻击行为发生在棚舍角落,没有足够的活动空间,攻击行为不能造成运动像素的激增。
表2 SVM分类结果和模型评价参数Tab.2 SVM classification results and model evaluation metrics
3.5 讨论
OCAZK等[25]最早采用活动指数特征识别猪只攻击行为,采用背景相减法计算该特征,并对小规模RGB视频的测试准确率超过99%。育肥猪的饲养期需要6个月左右,攻击行为可能发生在饲养期的任何时候,提高算法鲁棒性是使研究成果走向产业应用的关键。深度图像对环境光照变化不敏感,可以提升算法的环境鲁棒性。为此,LEE等[15]和CHEN等[16]分别采用Kinect和RealSense深度传感器获取原始数据,并采用背景相减法计算活动指数,分类正确率分别为95.2%和97.5%。由此可见,活动指数作为识别群养猪攻击行为已经得到充分的验证,已有研究的正确率均达到实用化标准。
本研究采用ALR-GMM算法的正确率为97.6%,达到实用化标准,证明ALR-GMM算法可完全替代背景相减法计算活动指数特征。ALR-GMM算法能够自适应学习当前背景环境,能够克服RGB图像对环境的敏感性。深度图像虽然能在一定程度上克服环境光,但在强光环境中图像噪声大[16],且要求背景设置固定,当监测系统部署在不同猪舍时,仍然需要人工设置纯背景,而本文算法的自适应性克服了这一缺点。因此,本研究为推进猪攻击行为识别实用化提供了一个可靠的技术方案。
4 结束语
提出了ALR-GMM算法,实现了动态背景下活动指数的计算,解决了基于背景相减法的活动指数模型环境适应性差的问题。用人工标记图像测试结果表明,当学习率为0.2时,ALR-GMM算法略优于背景相减法,平均绝对误差由0.025 6降到0.023 3,平均相对误差由15.08%降到14.34%。在养猪场实际环境中,进行了基于ALR-GMM算法的育肥猪攻击行为识别试验,以视频单元中活动指数的最大值、平均值、方差和标准差作为行为特征,采用SVM建立分类器,分类正确率、灵敏度、特效度和精度分别为97.6%、97.9%、97.7%和97.8%,说明本文算法可解决动态背景环境下活动指数难以计算的问题,能够满足实际应用需求。