谭辉磊, 朱伟兴
(江苏大学电气信息工程学院,江苏镇江 212013)
我国是农业大国,农业是我国的支柱产业,是国民经济的基础,而养猪业是农业生产的重要组成部分。但随着我国养猪业集约化、规模化水平的不断提高,高密度的饲养方式给猪的行为带来很大影响,在大中型猪场中各种异常行为时常可见,导致这些行为的因素包括食物、环境、疫病等,这不仅影响猪只的生理和心理健康,也影响猪场的生产效率,因此须要时刻观察猪只的行为状态。水是生命之源,保持良好的供水对于猪只的健康生长尤为重要,但是猪只饮水是24 h不间断的行为,仅靠人工作业很难完成监控,因此,实现猪舍内猪只饮水行为的自动监控将有助于及时预警异常猪只,并减少猪只饲养过程中的人工干扰活动,改善猪只福利。
传统的猪只行为识别主要采用耳标射频识别(简称RFID)技术[1],但该技术在一定程度上会干扰猪只的正常生长,因此为了解决这些问题,引入无应激的计算机视觉技术。朱伟兴等通过一种改进的运动目标检测算法和基于像素块对称特征的图像识别算法定位具有异常行为的疑似病猪,并将报警图像通过通用分组无线服务网络传送至监控中心[2]。马丽等根据猪腹式呼吸时脊腹部分的起伏特点,构建单侧视猪的腹式呼吸表达,并逐段检测猪视频腹式呼吸频次[3]。袁登厅等利用支持向量机理论设计了多种姿态分类器,可对猪的正常行走、低头行走、抬头行走、躺卧等4种姿态进行识别[4]。谢徵等提出一种基于几何参数特征与决策树支持向量机的猪只姿态分类方法,用来研究与猪只行为及精神状态相关的姿态[5]。陆明洲等结合射频标志和红外探测技术准确监测了母猪的日饮水频率及水资源的日消耗总量[6]。
现阶段采用计算机视觉技术监测猪只饮水行为的研究报道较少,考虑到机器视觉算法在猪只其他行为上的应用,研究饮水行为的识别已成为发展趋势。本研究提出一种基于轮廓的猪只饮水行为识别方法。首先从原始图像中分离出饮水区域,并采取有效图像处理方法得到目标轮廓,建立训练样本,然后针对该区域内猪个体的轮廓进行多边形近似,并提取相关特征,最后计算2个轮廓之间的相似度,从而完成轮廓匹配。
视频是在江苏大学国家重点学科农业电气化与自动化的试验基地——丹阳市荣鑫农牧发展有限公司养猪场采集的。通过改建试验用猪舍,安装拍摄俯视视频的图像采集系统,对群养猪进行持续视频监控。摄像机位于猪舍正上方,相对地面的垂直高度约为3 m,视频采集平台及获取的视频帧示例如图1所示。摄像机采用的是加拿大灰点公司的FL3-U3-88S2C-C(Sony CMOS),它可以采集到包含背景的俯视状态下群养猪的红绿蓝(red,green,blue,简称RGB)彩色视频。为了满足试验要求,须要获取猪只种类和数量尽可能多的视频片段,猪舍中安放7头体态颜色各异的猪。根据人工观察以及算法特点,当猪只攀爬隔离栏以及猪只之间存在打斗现象时,俯视视频下的猪体均有部分缺失,会增加识别的不确定性,因而这些视频帧不作为本研究的试验对象。
在实际生产中,针对不同类别不同生长阶段的猪群,自动饮水器安装的高度有一定差异。本研究中饮水器安装在离地55 cm的位置,猪只须要抬头并咬住水嘴即可完成饮水。针对猪只饮水的固定姿态,本研究提出基于轮廓的猪只行为识别方法,识别流程如图2所示,首先从原始图像中分离出饮水区域并采用二维大津算法(OTSU法)[7]得到初步分割结果,由于猪舍背景干扰大,还须要对目标进行二值化以及形态学处理,进而得到目标轮廓;然后针对目标轮廓采用改进的 Douglas-Peukcer法进行多边形近似,同时根据对象特点提取轮廓特征;最后与本研究所采用样本库中的样本进行相似度匹配得出识别结果。本研究选取满足条件的430帧视频图像作为样本进行试验,其中230帧存在猪只饮水情况,另外200帧作为干扰项;选取存在猪只饮水情况的30帧作为训练样本,剩余400帧作为测试样本。
Douglas-Peukcer算法由Douglas和Peukcer提出[8],因此又简称D-P算法,是一种经典的线状要素化简算法。该算法可将曲线近似表示为一系列点,并逐步减少点的数量,从而达到化简曲线的目的。算法原理如图3所示,具体步骤如下:(1)连接曲线首尾a、b 2点得到1条直线ab,ab被称为该曲线的弦;(2)求曲线上所有点到该弦的距离,设距离最大的点为c,最大距离为dmax;(3)比较dmax和给定阈值T的大小关系,如果dmax小于T,则将直线段ab作为曲线的近似;如果dmax大于T,则曲线被分割为ac、cb 2段,并重复步骤(1)、(2)、(3),直到曲线上所有线段处理完毕;(4)连接这些距离最大且满足步骤(3)的点得到曲线的近似。
猪只在饮水区域内的轮廓可能并不完整,必要时需要对多条曲线进行处理,传统D-P算法一般采用递归的方法来实现,同时涉及栈的操作,此时如果继续采用传统D-P算法计算最大距离点,会出现循环时间偏长甚至栈溢出的情况,从而影响算法效率。因此,本研究对上文提及的传统D-P算法步骤(2)进行改进,即不再计算曲线上所有点到该弦的距离,而是计算曲率的极大值点。曲率[9]定义为在光滑弧上自点M开始取弧段,弧长为Δs,对应切线转角为Δα(图4),此时点M处的曲率为当Δs趋向于0时,|Δα/Δs|的极限值。
曲率体现了曲线的完全程度,其值越大,该处曲线弯曲程度越大。对于饮水猪只头部而言,曲率的极值点正是进行多边形近似时须要保留的点。利用改进的D-P算法,采用不同阈值T对一幅待识别图像的轮廓进行多边形近似。图5-a是原轮廓曲线,坐标点个数为733个;图5-b为阈值T=1的多边形近似结果,共保留71个坐标点,基本与原轮廓重合,且保留了大部分细节信息;图5-c是阈值T=3的多边形近似结果,保留的坐标点个数为23个,此时尽管在局部存在一些形状的细节丢失,但仍然能反映整体的轮廓特征;图5-d是阈值T=5的多边形近似结果,保留的坐标点个数为15个,可以明显看出部分曲线的拟合结果存在严重变形,特别是一些存在凹凸点较多的区域。为了尽可能保留原轮廓的局部特征点,同时避免无用细节的影响,本研究选用阈值T=3的多边形近似结果作为该轮廓的近似结果,与原轮廓的733个点相比,在很大程度上减少了计算量,同时保留了轮廓的主要形状特征。
轮廓特征提取是对近似多边形所保留的点建立特征量的过程,为了方便进行分类识别,特征量应具有尺度不变性和旋转不变性[10],本研究采用角度和距离来构建二维特征量。
(1)
(2)
(3)
(4)
P={P1,P2,…,Pk-1}。
(5)
hi(k)=#{(p-qi)∈bin(k)|p∈P,p∉qi}。
(6)
判断图7-a和图7-b的相似度,即比较这2个轮廓所对应基向量的相似程度。在该对应关系中,首先要求基线段具有相似的描述子,其次要求一对一的映射关系[11]。因此,可以根据每个基向量的直方图,在其他轮廓上找到与其最相似的基向量,然后综合所有基向量来判定轮廓的相似程度。
根据直方图分布特点,采用x2距离统计分布来度量Pi和Qj这2个轮廓特征描述子的匹配代价[12],具体公式为
(7)
该代价值介于0到1之间,其值越小,Pi和Qj的相似程度越大。根据轮廓所有基向量代价值Cij的集合可以得到总的代价值,且总的代价值越小,说明2个轮廓越相似。这样就将求解轮廓的相似度转为了求解2个轮廓所有基向量之间的最优匹配f,而求解最优匹配既是一个最优化求解问题,也是一个典型的线性分配问题[13]。在实际应用中,通常采用匈牙利算法[14]进行求解。利用匈牙利算法可以得到代价最小的最优匹配,并得到轮廓基向量之间的最优匹配关系,当最优匹配下的基向量之间代价值小于某个阈值T时,即认为该基向量匹配正确,最后计算待匹配轮廓上正确匹配的基向量个数和训练样本轮廓上基向量总个数的比值,从而得到2个轮廓之间的相似度,完成轮廓的匹配工作。
为了证明本算法的有效性,选取满足条件的430帧视频图像作为样本进行试验,其中230帧存在猪只饮水情况,另外200帧作为干扰项;选取存在猪只饮水情况的30帧作为训练样本,剩余400帧作为测试样本。仿真试验的软硬件环境为CPU Inter(R) Core(TM)i5 2.4GHz,Windows 7,Matlab2014b。
在得到轮廓基向量之间的最优匹配关系后,须要计算基向量之间的代价值,并对该代价值设定一个阈值T,以判断是否匹配正确。图8为不同轮廓图像,其中S1和S3是同一猪只饮水状态下的轮廓,S2是非饮水状态下的轮廓,S1和S2选自测试样本,S3选自训练样本,在不同阈值T下,将S1和S3、S2和S3进行匹配,得到相应的相似度H(Sx,Sy)(表1)。
由表1可知,相似度随着阈值T的增大而增大,但当T=0.3时,相同状态下轮廓的相似度达到临界点,而不同状态下轮廓的相似度则继续增加,因此本研究选用阈值T=0.3作为经验值。
表1 不同阈值下的相似度比较
采用阈值T=0.3对400帧测试样本进行试验,并与人工观测结果进行对比。
由表2可知,在猪舍背景存在较大干扰,猪只轮廓存在变形且提取并不十分精确的条件下,本研究算法对饮水行为猪只的识别率达92.00%,对其他行为猪只的识别率达95.50%。通过查看错误识别的测试图像发现,出现错误的原因主要有(1)在识别饮水猪只过程中,猪只的耳朵轮廓在猪只不同姿态下的表现不尽相同;(2)在识别其他猪只过程中,猪只在饮水区域范围内抬头可能会被错误识别。如果能在预处理过程中去除耳朵多出身体的部分轮廓,或者对饮水猪只的轮廓区域大小进行更明确的定位,则会进一步提高识别率。
表2 本算法的识别情况
而如何摒弃干扰并且能够更快更精准地得到轮廓图像也是值得深入研究的问题。
本研究提出一种基于形状模型的猪只饮水行为识别方法,能够准确地识别猪只的饮水行为。结果表明,本算法的综合识别率达93.75%,对于猪只饮水行为的识别工作,本研究所建立的形状模型能够有效提取特征,该识别方法的研究对于监控猪只身体健康有一定的实际应用价值, 且该方法原理简单,在识别速度以及识别质量上有一定的突破,今后的主要工作是进一步提高识别速度和识别率,未来还将结合对猪个体的身份识别来判断猪只的健康状况。