宋怀波 阴旭强 吴頔华 姜 波 何东健
(1.西北农林科技大学机械与电子工程学院, 陕西杨凌 712100; 2.农业农村部农业物联网重点实验室, 陕西杨凌 712100)
利用视频分析技术感知动物行为已成为精准畜牧领域的研究热点,奶牛目标的准确、实时检测可为奶牛个体识别[1-2]、目标跟踪[3-6]、呼吸检测[7-8]、跛行检测[9-10]等后续研究奠定基础。实现复杂养殖环境下奶牛目标的准确检测,对于提升奶牛养殖业的智能化水平具有重要意义。
近年来研究者在动物行为感知领域取得了一定的成果,但是由于奶牛的非结构化养殖环境,常用的目标检测算法,如背景减去法[11-12]、帧间差分法[13-14]和光流法[15-16]并不能取得良好的检测效果。ZHAO等[11]提出了一种基于帧差法并调整RGB通道系数的运动奶牛目标检测算法,目标的检测精度为88.34%,但该算法对环境变化敏感。王红君等[17]利用高斯金字塔 Lucas-Kanade光流法实现了奶牛的目标定位,但光流法计算量大,导致算法复杂度较高,不适于在线检测。刘冬等[18]在GMM的基础上,引入局部更新策略来降低算法复杂度,实现了奶牛目标的实时提取,前景误检率、背景误检率分别降低了19.50%和13.37%,单帧时耗降低了29.25%。GMM模型具有较强的鲁棒性,该方法通过假设样本集符合高斯概率分布,根据样本集拟合该分布中的参数[19-20]。利用GMM模型可以建立动态背景模型实现运动目标的提取,但是对于奶牛等生活在复杂开放环境下的大型动物,GMM模型复杂度高、计算量大,且该方法对于光照变化比较敏感,易受图像噪声的干扰,对于室外目标的检测精度有待提高。
在实际场景中,大量样本的分布形式是未知的或并不服从典型分布,因此难以用已知参数的模型对背景进行建模。由于GMM模型需要加入主观的先验知识,往往难以拟合出符合其真实分布的模型。因此,ELGAMMAL等[21]提出了一种无参数化模型,利用非参数核密度估计法进行背景建模。与参数估计不同,非参数估计并不加入任何先验知识,而是根据数据本身的特点、性质来拟合分布[22-23]。非参数核密度利用标准核函数和像素表现出来的高斯特性,根据训练图像样本信息准确估计核函数,因而核密度估计能够获得更符合真实背景像素概率的分布,适合处理多样性的动态背景场景。ZIVKOVIC等[24]提出了一种基于聚类思想的自适应核密度估计方法,提高了核密度估计的效率。乔俊锋等[25]提出了一种基于直方图的快速核密度估计背景建模方法,由于离散直方图不能完整地代表奶牛图像信息,且易受噪声的干扰,在目标检测时易出现误检测。刘娣等[26]提出了一种基于背景差分图像核密度估计的前景检测方法,利用单高斯模型初始背景建模滤除非动态背景区域,对动态区域采用核密度估计进行分类。该方法在小物体且背景可分的情况下具有较高的准确性和实时性。
鉴于上述分析,本研究将非参数化自适应核密度估计理论应用于运动奶牛的目标检测之中,提出一种基于关键帧的自适应无参核密度估计算法,通过与三帧差法进行逻辑或运算实现运动目标的精确提取。
运动奶牛试验视频于2018年10—11月在陕西省杨凌科元克隆股份有限公司的奶牛养殖场采集,拍摄对象为处于运动状态的美国荷斯坦奶牛。在奶牛运动期间将1台SONY HDR-CX290E型DV固定在三脚架上,保持镜头与目标奶牛平行且距离目标奶牛约2.5 m。试验总共采集了8段奶牛行走视频,视频信息如表1所示。为了验证算法的适应性,8段视频包含了晴天、阴天、雨天和夜间等典型奶牛养殖环境。8段视频中包含了奶牛非结构生存环境中典型的干扰因素,如栏杆遮挡会导致前景检测率下降,光照变化会导致背景像素误检测,灰暗光线和污渍干扰会使得目标与背景难以分割,导致前景目标缺失等问题。这些在奶牛养殖中普遍存在的干扰使得非结构化环境下运动奶牛目标准确检测受到影响。
表1 运动奶牛视频信息Tab.1 Video information of moving cows
试验平台为一台Win 8.1系统的便携式计算机,处理器配置为AMD A10-7300,主频为1.90 GHz,8 GB内存。算法开发平台Python 3.7,为了客观地对目标检测结果进行评价,本研究使用Adobe Photoshop获取真实奶牛目标区域,以便与本研究所检测出的奶牛目标区域进行比较,并用图像标注工具Labeling软件标出运动奶牛的位置,与本研究算法检测的前景目标最小外界矩形框对比以便验证本研究方法在目标追踪上的可行性。
1.2.1总体技术路线
本研究拟采用的技术路线如图1所示,首先通过核密度估计算法对奶牛图像序列进行动态背景建模,然后引入关键帧提取以降低算法运算量并加强核密度估计对遥远历史帧信息的储存能力,接着利用三帧差法对奶牛边缘的提取优势,将其与核密度估计算法进行逻辑或运算,最后进行形态学操作和孔洞填充实现奶牛目标的精确提取。
图2 不同γ值下的试验结果Fig.2 Test results using different γ values
图1 核密度估计的运动奶牛目标检测技术路线图Fig.1 Nuclear density estimation map of moving cows
1.2.2视频关键帧的提取
利用关键帧技术可以充分减少原始视频中的冗余信息,目前研究者们在视频关键帧检测领域做了大量工作[27-29],考虑到实时性的要求,本研究利用具有平均帧间差分法强度的局部最大值帧作为关键帧,与基于差分强度阈值方法相比,该方法无需手动设置阈值,即可使提取结果均匀地分散在视频中。为了有效移除噪声以避免将相似场景下的数据帧提取为关键帧,本研究对平均帧间差分强度时间序列进行了平滑处理。
1.2.3视频预处理
预处理是视频分析的首要环节,它可以去除图像中的无关信息进而提高有效信息的占比[30]。噪声的影响和光照的变化会降低目标和背景间的对比度,为了减弱光照影响以增加图像对比度,常利用图像增强的方式来实现。本研究选用Gamma变换对图像进行校正。当图像的亮度范围小于其数据类型允许范围的0.50时,图像被认为是低对比度,此时应用Gamma变换
Gx,y=(Ix,y+Vesp)γ
(1)
式中Ix,y、Gx,y——Gamma变换前、后的像素值
Vesp——补偿系数γ——系数
由于本研究希望图像中较亮区域灰度被压缩,较暗区域灰度被拉伸从而图像整体变亮,因此γ取值应小于1。图2为γ取不同值时的结果,图2a为原始图像,奶牛目标与黑夜背景区分度较低,图2c中γ取值为0.50时,图像过亮并且引入了噪声点。本研究选取图2b中γ取值为0.80的Gamma变换,此时不仅可以适当的提高图像整体亮度,而且提高了目标与背景的对比度。图3为不同窗口下的中值滤波结果。图3a中2×2窗口不能完全去除噪声,图3c中5×5窗口模糊了奶牛目标边缘,本研究选取图3b中3×3窗口的中值滤波,研究发现其具有较好的去噪效果,并且能保持奶牛边缘特征。
图3 不同窗口下的试验结果Fig.3 Test results using different window sizes
1.2.4核密度估计法
(1)无参核密度估计原理
非参数背景模型通过对相邻视频帧进行统计学习来建立背景,并通过持续更新样本集来建立动态背景。核密度估计采用核函数对训练集中每个像素点的概率密度分布规律进行分析,从而构造整个训练集在特定空间的样本分布规律。核密度估计是近年来受到广泛应用的非参数密度估计方法,通过利用采样点以及邻域密度函数值信息的整合来改善概率密度的不连续问题。根据视频序列中每个像素的N个样本,基于核密度估计进行背景建模,统计分析每一个像素点的概率密度分布。设x1,x2,…,xN为一个像素特征空间内的N个样本,则t时刻像素为xt的概率p(xt)为
(2)
式中xt——当前采样的像素值
N——每个像素采样的背景像素个数
xi——第i个样本的像素值
kσ——核函数(非负、积分为1)
p(xt)——t时刻像素为xt的概率
高斯函数在很大程度上可以充分反映随机变量的概率分布情况,可以生成光滑且连续可微的密度函数,因而本研究选用高斯函数作为核函数。
(3)
式中xtj——当前采样的像素值xt在j维度上的取值
xij——第i个采样点的像素值xi在j维度上的取值
d——像素的维度,一般取3
σj——像素在j维度上的方差
Pr(xt)——t时刻高斯核函数估计像素为xt的概率
核函数的窗宽反映了训练集中每个样本对采样点概率密度分布的贡献度,表征了概率密度曲线的平坦程度,带宽越大密度曲线越光滑,从而降低了估计的分辨力。带宽越小概率密度曲线越陡峭且有毛刺,从而概率密度越趋于样本中心的函数。非参数核密度估计一般根据设置像素点的阈值来提取运动目标,在视频中背景序列的像素一般不会发生较大变化,通过比较当前图像像素与背景像素的差异,利用预设的阈值判断属于前景还是背景。其数学表达式为
(4)
式中T——阈值
其中,Mt(x,y)为0代表背景像素,Mt(x,y)为1代表运动目标像素。
非结构化奶牛养殖环境中的背景总是不断变化的,需要不断更新背景模型以保证运动目标的完整提取。本研究选用先进先出的背景更新模式,随着视频帧的更新,不断地将当前帧加入样本集并丢弃最遥远的帧。该更新模式不会产生死锁现象且算法复杂度低。
(2) 基于自适应核密度估计的运动奶牛目标检测结果
在核密度估计时,若采用固定的内核来表示整个密度函数则可能导致在低密度区域所有样本以极低的权重落入内核尾部,而高密度区域将在中心区域聚集过多的样本,加权已经接近于1。为了解决这一问题,ZIVKOVIC等[24]提出在每个估计点调整核尺寸,为每个新点增加内核的宽度,而不是试图寻求全局最优核宽度,直到真实核尺寸覆盖固定数量的数据k。并提出使用k=[0.1N]([·]表示取整运算符)的默认计算方式提升异常值的处理效率[24]。
本研究将ZIVKOVIC等[24]提出的自适应核密度估计背景建模方法应用于运动奶牛目标检测之中。其中历史帧数的设定对运动奶牛目标检测精度的影响如图4所示。研究发现将历史帧数设置为150即学习率为1/150时,既可有效减少算法复杂度,又可以提升前景检测率。本研究中N设定为20,即每个像素采样的背景像素个数,N太小则学习不充分从而导致较低的前景检测率,N太大将增加算法的复杂度[24]。本研究中T设定为110,该值用于确定像素是否接近数据样本,取值太小会有大量的噪声残留,取值过大会使得前景图像过分割,本研究在研究样本视频的基础上,设定阈值为110时,可以较好地实现前景目标分割。
图4 历史帧数对前景正检率的影响Fig.4 Influence of historical frame number on foreground detection rate
利用上述方法进行前景目标检测的结果如图5所示。在图5a中,受到栏杆遮挡的影响,奶牛目标被栏杆分割,无法完整提取奶牛目标。为了解决这一问题,本研究先采用半径为5的“disk”形结构元素进行开运算滤除噪声,再利用半径为5的“disk”形结构元素进行闭运算以实现对栏杆遮挡区域的填充,其检测结果如图5b所示,可以发现形态学操作可以更准确地提取奶牛目标。
图5 检测结果Fig.5 Pictures of test results
1.2.5结合三帧差法与形态学处理的运动奶牛目标检测
帧差法利用相邻帧间灰度上的差异实现运动目标的检测,其优点是运算速度快,对运动目标边缘的提取效果好,缺点是易产生鬼影、图像内部一般具有空洞且无法应对光照突变。如图6a所示,帧差法提取的奶牛目标存在鬼影,尤其是在后腿部区域,鬼影的产生使得模型将背景误判断为前景,不利于目标的准确检测。
图6 帧差法检测结果对比Fig.6 Comparison of frame difference methods results
针对帧差法的不足,三帧差法可以有效地消除鬼影,进而精确提取运动目标的轮廓[29-30]。为了更好地实现目标轮廓的提取,本文在逻辑与操作前对差分结果进行了半径为3的“disk”形结构元素闭运算,其检测结果如图6b所示。对比图6a,三帧差法有效地消除了鬼影,并提高了奶牛目标轮廓提取的性能。
采用前景正检率(Target positive rate,VTRP)、前景误检率(Target false positive rate,VTFRP)、实时性指标(Real-time indicator,VRI)3个指标对本文算法进行评价。VTRP和VTFRP分别表示目标检测正确和错误的比例,VRI表示算法运行时间与检测视频时长的比值,用来评价算法的实时性,其结果越靠近1代表算法的实时性越好。3个指标的计算公式为
VTRP=A1/A×100%
(5)
VTFRP=|A-A1|/A×100%
(6)
VRI=T1/T2
(7)
式中A1——检测到的奶牛目标面积,像素
A——手工标记的奶牛目标面积,像素
T1——算法耗时,s
T2——视频时长,s
利用GMM、KDE及本文算法对晴天、雨天以及夜晚3种典型生存环境下的奶牛样本进行检测,运动目标提取结果如图7所示,其中视频1、视频6、视频7分别为晴天、雨天、夜晚环境下采集的奶牛图像。
由图7b可以看出,GMM提取结果存在大部分缺失,部分前景被误判为背景且存在拖影现象。由图7c可以看出,KDE模型可以适应复杂的非结构化环境,对目标的提取效果较好,但仍存在部分区域像素误判。本文算法在结合关键帧检测技术的基础上采用三帧差法对运动目标边缘具有良好提取效果,与核密度估计背景建模结果结合后再进行形态学填充即可实现运动目标区域的完整提取。可见,本文算法在多种环境下检测目标均较为完整,表明本文算法对环境变化具有良好的鲁棒性,且对运动目标的提取更加完整。
图7 不同算法运动奶牛提取结果Fig.7 Results of moving cows segmentation by different methods
目标检测算法的性能主要体现在准确性、鲁棒性、快速性方面[14],利用本文算法对试验样本进行运动奶牛目标检测,并与GMM、KDE算法进行对比,结果如表2所示,GMM算法的平均前景正检率为80.09%,KDE算法的平均前景正检率为85.09%,本文算法的平均前景正检率为95.65%,表明将无参数化核密度模型应用于运动奶牛目标的准确提取是可行的。由表2可看出,该算法受视频中其他干扰因素(光照、遮挡)的影响较小。上述结果表明,与经典的GMM算法相比,本文算法对于奶牛非结构化养殖环境具有更好的鲁棒性。
表2 运动奶牛目标检测结果Tab.2 Cows target motion detection result %
本文在核密度估计算法的基础上,针对核密度估计背景建模时需要对采样点周围多帧图像像素进行统计分析导致运算量大的缺点,引入视频关键帧的检测来减少模型的复杂度以满足算法实时性的要求。表3为GMM、KDE、本文算法实时性指标对比结果。由表3可知,GMM算法复杂度高,实时性较差,平均实时性指标为1.36,在第3、4组试验中,受到光照突变的影响,复杂度突然增大。KDE算法平均实时性指标为1.18,而本文算法的平均实时性指标为1.11,且试验中的干扰因素基本对模型实时性没有影响,这表明应用本文算法实现奶牛运动目标的实时提取基本可行。
为了验证本文算法在目标跟踪上的有效性,本文以视频6为例进行了目标跟踪有效性分析。采用交并比(Intersection over union,VIOU)和距离VDIST指标对其跟踪效果进行评价。
表3 算法实时性指标对比Tab.3 Algorithm real-time indicator comparison
VIOU表示本研究检测出的最大连通域最小外接矩形与人工标记矩形框的重叠比例,其值越大则表明跟踪效果越好。VDIST指标代表了检测到的奶牛目标最小矩形质心与所标记矩形框质心的欧氏距离,其值越小则表明跟踪效果越好。
图8 运动奶牛跟踪结果Fig.8 Tracking result of moving cows
如图8所示,为目标跟踪有效性分析的结果,VDIST平均值为51像素,VIOU平均值为0.95。利用奶牛视频中完整的70帧图像进行分析,可以发现在第10帧以及第62帧附近有较大的波动。研究原始图像发现,奶牛的运动场景有2个窗,奶牛在运动过程中,镜面反射以及窗内奶牛的运动被检测为前景,因与奶牛组成连通域而被检测出来,导致最小外接矩形框变大,因而在这2个窗口附近的追踪准确率下降。但总体上本文算法对奶牛目标的跟踪可行。
本文8组试验中,第3组和第8组的运动目标前景正检率比平均前景正检率低约4.00个百分点,对这2段视频进行分析发现,由于近景色干扰导致前景图像缺失。因为本文所用的GMM、KDE算法都是建立动态背景后利用背景减除法提取运动前景目标,而且2种方法都是对图像像素灰度特性进行分析的基础上建立的,因此对于近景色目标,算法不能达到良好的检测效果,示例结果如图9所示。在图9a中,视频3奶牛身体后半部附着泥土,尤其在蹄部几乎和背景混为一体,因而图9b的奶牛目标提取结果在对应位置存在缺失。如图9c所示,视频8奶牛由于体色大幅度为暗黑色与夜晚下栏杆和背景形成了近景色,因而在图9d中存在前景缺失现象。本文算法依据像素灰度信息估计得概率分布函数,而该奶牛目标的前景像素点灰度和背景像素点灰度区分度不大,因而导致模型将部分前景误判为背景,从而造成目标提取结果在近景色区域存在图像块缺失的现象,这也揭示了上述奶牛目标前景检测率较低的原因。
图9 近景色干扰示例图Fig.9 Similar-background color interference example diagrams
为了解决奶牛因为运动过程中受到栏杆遮挡导致的目标不完整问题,本文对奶牛身体部位的栏杆采用形态学操作和孔洞填充方法进行了填补,但是奶牛的腿部会受到如图10a中水泥桩的遮挡,无法构成连通域而导致在图10b中前景图像中奶牛腿部缺失。并且在奶牛非结构化生存环境中,会有各种外来因素的干扰,如图10c、10e所示,鸟的飞入、室内奶牛的运动均会导致图10d、10f中奶牛前景目标连通域变大,造成前景检测面积的突然变大,导致运动奶牛前景检测率增加。这也会使得目标追踪时外接矩形框变大,从而造成背景被误判断为目标,使得目标跟踪准确率下降。
图10 遮挡干扰示意图Fig.10 Blocking interference diagrams
本文所采用的关键帧提取方法不能完全代表奶牛目标的全部特征,会导致目标特征的丢失,下一步应结合奶牛的个体特征(颜色特征、纹理特征等)来实现更能代表整段视频的关键帧提取算法。另外,本研究所采用的核密度估计算法中的阈值需要根据所用的视频序列进行设定,在不同的视频上并非有最佳的分割效果,下一步将研究自适应阈值的核密度估计模型。
(1)本文算法基于对历史帧信息的统计分析,估计采样点的概率密度分布,当目标不存在大幅度区域的近景色时,其他的干扰一般不会对检测结果产生较大影响,说明将无参数核密度背景建模用于运动奶牛目标检测是可行的。
(2)通过在核密度背景建模基础上引入关键帧检测技术,不仅实现了核函数对遥远帧图像信息的获取能力,而且提高了检测精度,也提高了算法的实时性,结合三帧差法进一步实现了运动目标的完整提取。本文算法平均前景正检率达95.65%,平均实时性指标为1.11,可以实现运动奶牛目标的准确、实时检测。
(3)在运动目标检测的基础上运用VIOU和VDIST指标实现了目标跟踪效果的评价,VIOU平均值为0.95,VDIST平均值为51像素。