文章信息
- 张弛, 沈明霞, 刘龙申, 张宏, CedrickSean Okinda
- ZHANG Chi, SHEN Mingxia, LIU Longshen, ZHANG Hong, Cedrick Sean Okinda
- 基于机器视觉的新生仔猪目标识别方法研究与实现
- Newborn piglets recognition method based on machine vision
- 南京农业大学学报, 2017, 40(1): 169-175
- Journal of Nanjing Agricultural University(Social Science), 2017, 40(1): 169-175.
- http://dx.doi.org/10.7685/jnau.201602017
-
文章历史
- 收稿日期: 2016-02-18
生猪养殖业正由小规模散养向规模化、自动化养殖模式发展。传统养殖方式中,母猪分娩环节的检测主要依靠饲养人员持续观察,工作强度大,检测效率低,容易出现因饲养人员疏忽而造成新生仔猪死亡的情况。此外,与母猪接触会增加人畜疾病感染的概率。
国内外已经开展了包括产前检测在内的母猪分娩自动检测研究[1]。Oliviero等[2]利用压力传感器监测产床内母猪走动的行为,同时在产床上方安装光电传感器监测母猪的站立或躺卧等行为,判断预测母猪的分娩时间。Labrecque等[3]利用热红外传感器监测仔猪在限位栏内的活动区,一旦检测到仔猪出现在活动区内就通过无线发送方式寻呼饲养员,但是仔猪刚刚出生时不一定较快出现在活动区,导致该方法检测实时性不高。Cornou等[4]将带有蓝牙收发模块的三轴加速度传感器安装固定在母猪颈部,采集母猪运动信息并发送至PC,采用卡尔曼滤波对母猪行为进行分类,预测母猪分娩时间。
近年来,机器视觉技术在生猪养殖行业得到了广泛的应用[5-8]。Shao等[9]利用CCD摄像头监测群养仔猪的图像,通过分析图像中仔猪躺卧时的间距评定猪舍温度的舒适度,从而进行温度调控。朱伟兴等[10]利用伪球算子提取视频中每帧图像的帧边缘,根据序列帧噪声边缘判断阈值进行猪的前景帧检测。杨艳等[11]通过对种猪的图像进行直方图均衡和中值滤波处理,测量和计算种猪的投影面积,分析其与质量的关系。刘龙申等[12]为对母猪分娩进行检测,在母猪产床上方安装摄像头,采集图像信息,提出半圆匹配算法确定母猪位置,在运动目标检测过程中标记仔猪,完成对母猪分娩场景的检测。
新生仔猪目标识别是母猪分娩监测过程中的关键环节。本文应用机器视觉技术分析母猪分娩视频图像中的颜色、形状等形态学特征,提出了基于团序列检测算法的母猪目标分割方法和新生仔猪目标识别方法,为建立基于机器视觉技术的新生仔猪目标实时监测系统提供了一种工程应用方案。
1 材料与方法 1.1 母猪分娩图像采集试验于南京市浦口区的生猪养殖基地进行,采用自主研发的高清红外视频图像采集器拍摄母猪分娩视频图像。视频图像像素为:720×1 280。选用8头长白母猪作为试验对象,所有试验母猪均在产床内分娩。拍摄时间选取在18:00至次日03:00之间母猪正常分娩的时间段。为了便于检测母猪的分娩,图像采集设备安装在母猪尾部的产床正上方,相对地面高1.8 m。采用PC机进行视频图像处理,开发环境为MATLAB 2014和VC++6.0。
1.2 分娩视频图像特征分析为了检测仔猪是否出生,需要有效区分图像中的母猪目标并识别图像中是否含有仔猪目标。母猪分娩的视频图像中,前景目标包括母猪和新生仔猪,背景为限位栏产床及周边地面。由于图像中母猪身体部分会造成误判,因此利用机器视觉检测新生仔猪出生需分以下两步实现:1) 基于团序列检测的算法分割出图像中的母猪目标,有效排除母猪身体部分对新生仔猪目标识别的干扰。2) 根据排除母猪干扰区域的颜色和面积特征,完成对新生仔猪目标的识别。现截取分娩视频中随机一帧图像,如图 1所示。
|
图 1 母猪分娩图像 Figure 1 Sow parturition image |
从图 1可以看出,由于本试验母猪分娩时间为夜晚,原始图像与灰度图像区分度不明显,且由于新生仔猪与母猪的颜色较为接近,尤其与母猪臀部的颜色较为接近,因此仅利用颜色特征的运算无法准确区分出母猪与新生仔猪目标。
本文通过颜色、运动、外观形状等形态学特征对分娩母猪及仔猪目标进行分析处理。母猪在分娩过程中一般都是处于侧卧状态。侧卧时母猪的臀部目标形状较为规则,可以利用此规则对母猪目标进行分割。
2 结果与分析 2.1 分娩图像边缘检测为了更好地对分娩图像进行检测识别,本文首先采用基于一阶微分算子的边缘检测方法对分娩图像进行处理。常用的边缘检测算法如Sobel算子和Prewitt算子,其在通过平滑滤波去除噪声的同时也增加了边缘定位的不确定性。而Canny算子在抗噪声干扰和精准定位间做到了较好平衡,本试验采用基于Canny算子的边缘检测算法,该算子实现方式为:图像首先采用2D高斯滤波模板进行卷积以消除噪声,确定参数得到一维核向量。高斯核实现方法如下:
| $K=\frac{1}{2\pi {{\sigma }^{2}}}~{{e}^{~\frac{{{x}^{2}}+{{y}^{2}}}{2{{\sigma }^{2}}}}}$ | (1) |
| ${{G}_{x}}=\frac{1}{2}\left( \begin{matrix} -1 & 1 \\ -1 & 1 \\ \end{matrix} \right)$ | (2) |
| ${{G}_{y}}=\frac{1}{2}\left( \begin{matrix} 1 & 1 \\ -1 & -1 \\ \end{matrix} \right)$ | (3) |
由此得到梯度的大小M和方向:
| $M=\sqrt{G_{x}^{2}+G_{y}^{2}}$ | (4) |
| $\theta =arctan\frac{{{G}_{y}}}{{{G}_{x}}}$ | (5) |
通过梯度方向找到这个像素梯度方向的邻接像素,通过非最大值抑制以及阈值化和边缘链接检测图像。图 2中,对比一阶微分算子中Sobel算子和Prewitt算子的边缘检测结果可以发现,Canny算子检测边缘的效果较好,对于图像信息保存的完整程度较高。
|
图 2 基于Sobel、Canny 及 Prewitt算法的猪图像边缘检测 Figure 2 Edge detection of a pig′s image by the Sobel,Canny and Prewitt algorithms |
为了提高图像运算处理效率,现对分娩图像进行二值化运算。本试验采用Otsu算法对灰度图像进行二值化。最大类间方差法(Otsu法)由日本学者Otsu[13]于1979年提出的一种对图像进行二值化的高效算法。该方法如下:记t为目标与背景的分割阈值,目标像素数占图像比例为ω0,平均灰度为μ0;背景像素数占图像比例为ω1,平均灰度为μ1。记f(i,j)为N×M图像(i,j)点处的灰度值,灰度级为μ,设定f(i,j)的取值区间为 。记Pk为灰度值为k的频率,则有:
| ${{P}_{k}}=\frac{1}{MN}\sum\limits_{f\left( i,j \right)=k}^{{}}{{}}\text{ }P$ | (6) |
用灰度值t为阈值分割出目标与背景,图像的总平均灰度为:
| $\mu ={{\omega }_{0}}\left( t \right){{\mu }_{0}}\left( t \right)+{{\omega }_{1}}\left( t \right){{\mu }_{1}}\left( t \right)$ | (7) |
建立目标函数:
| $g={{\omega }_{0}}{{({{\mu }_{0}}-\mu )}^{2}}+{{\omega }_{1}}{{({{\mu }_{1}}-\mu )}^{2}}$ | (8) |
当g最大时所对应的t值即为分割最佳阈值,结果如图 3所示:基于Otsu算法的图像二值化结果中母猪目标和新生仔猪目标的轮廓提取较为完整,阈值分割效果较为明显。但是,由于拍摄时间为夜间,光照强度不均匀,母猪与仔猪的灰度级对比度较低,二值化后噪声干扰较多。此外,图像中限位栏边缘及产床底部也会对图像产生一定干扰。
|
图 3 Otsu二值化图像 Figure 3 Binary images by Otsu method |
为对Otsu二值化图像进行进一步的滤波并去除噪声及背景环境干扰,使母猪与仔猪的目标区域的特征更为明显,采用滑动平均算法对图像进行滤波处理,实现方法如下:1) 设定一个大小为33的窗口,此窗口作为采样器;2) 从首个像素点开始,逐行滑动遍历每个像素点,逐个取相邻数据作加权平均来表示平滑后的数据。
为更好地对含有母猪及仔猪的目标区域进行特征识别,本文采用形态学开运算对滤波后的图像进行去噪处理,减少噪声对后期目标识别的干扰。形态学开运算对目标先腐蚀后膨胀,对集合X、Y的开运算定义如下:
| $Open\left( X,Y \right)=X\text{ }\cdot \text{ }Y=\left( X!Y \right)\oplus Y~$ | (9) |
为进一步去除图像中干扰部分,现对去噪后的图像进行连通区域检测。母猪分娩仔猪时,由于仔猪出生的一刻其身体与母猪本体尚未完全分离,整体目标面积特征较为明显,对标记后的各连通区域面积排序,求最大连通区域,分割出母猪与新生仔猪目标区域,试验结果如图 4所示。
|
图 4 最大连通区域 Figure 4 The biggest connected region |
现在分娩视频中分别提取20幅母猪分娩前(不含仔猪)图像以及20幅母猪分娩时(包含仔猪)图像,使用上述目标分割提取方法分别检测分割提取后图像中母猪及仔猪的还原度,以验证检测方法的准确性。由表 1可知,20幅分娩前图像能准确检测到仅包含母猪目标,20幅分娩时图像能准确检测到包含母猪和仔猪目标,该检测方法准确率较高,可以较完整提取含有新生仔猪及母猪的特征目标区域,较好地排除了产床背景对目标识别的干扰。
| 原始图像数Original image number | 正确检测图像数Correct detection image number | 检测正确率/%Correct rate of detection | |
| 分娩前(无仔猪)Before parturition(without piglet) | 20 | 20 | 100 |
| 分娩后(有仔猪)After parturition(with piglet) | 20 | 20 | 100 |
根据提取的最大连通域图像,提出一种基于团序列检测的母猪目标分割算法,方法如下:逐行扫描最大连通区域图像,将每一行中连续的白色像素组成的序列称为一个团,标记团的起点、终点及其所在行数。记团的起点为Ts,团的终点为Te,对每行中各团序列进行拼接,则有总团序列长度
|
图 5 ΔT-曲线分布 Figure 5 ΔT-curve |
分别绘制分娩前后最大连通区域提取图像y∈ 范围内ΔT的曲线,结果如图 5所示:当y小于280时,ΔT基本稳定在600至700之间,说明280行之前最大连通区域内都是母猪臀部目标的上半部分;随着y的增加,ΔT开始迅速下降,分娩前ΔT迅速下降至0,分娩后ΔT下降至150左右,随后上升至300左右,最后下降至0。说明280行开始分娩前团的变化率不断增大,团值陡降为0,母猪臀部目标扫描结束后没有新的目标出现;而分娩后团值在下降至一定范围后有一段反向增长,母猪目标遍历结束后有新目标出现。现以分娩后曲线图中反向增长前拐点位置横坐标为分割行数,将该行以上部分区域分割,保留剩余部分。对2幅原始图像的分割结果如图 6所示。
|
图 6 母猪目标分割结果 Figure 6 Results of sows target segmentation |
由图 6可以看出,基于团序列检测的算法可有效分割图像中的母猪目标。但是由于母猪臀部部位不是标准的规则形状,母猪身体的其他部位如尾部或腿部等在二值图像中也为白色,会对图像的分割与判定产生干扰。
2.5 新生仔猪目标识别根据图 6中2幅原始图像,对其母猪目标分割后的二值图像进行团变化差分求导,分别绘出其变化趋势曲线,结果如图 7所示。
|
图 7 团变化趋势曲线 Figure 7 Group change trend curve |
由图 7可以看出,2幅图像中均有一段走势变化平稳,说明剩余区域内包含一段相对稳定的团序列。现提取变化率在[-10,10]之间的团序列进行拼接,结果如图 8所示。
|
图 8 团序列拼接结果 Figure 8 Results of group sequence splicing |
由图 8可以看出,在分割母猪目标后通过设定阈值对团序列进行筛选拼接,该方法可以排除干扰,有效识别出新生仔猪目标。
2.6 试验验证对8头长白母猪检测,对每头母猪分别提取仅含有母猪目标的图像10张,含有母猪及新生仔猪目标的图像15张,共提取200张图像。结果如表 2所示,其中仅含有母猪的图像有80幅,检测正确率 96.25%;含有母猪和仔猪的图像有120幅,其中母猪与仔猪未完全分离的图像114幅,检测正确率100%;母猪与仔猪完全分离的图像6幅,检测正确率0。该方法可以准确分割母猪目标,对新生仔猪目标的总体检测正确率达到95.5%;无法检测母猪与仔猪目标完全分离的图像。
| 图像数Image number | 检测仔猪目标数Detection number of piglets | 检测正确率/%Correct rate of detection | 总体检测正确率/%Overall detection accuracy | |
| 母猪 Sows | 80 | 3 | 96.25 | 95.5 |
| 母猪+仔猪 Sows+piglets | 114 | 114 | 100 | 95.5 |
| 母猪+仔猪(完全分离)Sows+piglets(Complete separation) | 6 | 0 | 0 | 95.5 |
1) 本文分析了母猪分娩视频图像中的特征,选取Canny算子对图像进行边缘检测提取,采用Otsu算法对图像进行二值化处理,通过滑动平均算法和形态学开运算对二值化图像滤波与去噪。
2) 提出基于团序列检测算法的分娩母猪目标识别方法,算法提取拐点处横坐标值作为分割行数,对该行以上部分进行分割,设定阈值对团序列进行筛选,测试结果表明该方法能够有效分割出母猪目标,为利用形态学特征对仔猪进行识别奠定基础。
3) 试验结果表明,该方法可以准确识别并分割图像中母猪目标,对于新生仔猪目标检测识别的正确率达到95.5%,可以有效识别新生仔猪目标,为生猪养殖中仔猪的出生预警提供了技术支撑。
| [1] | 刘龙申, 沈明霞, 姚文, 等. 基于加速度传感器的母猪产前行为特征采集与分析[J]. 农业机械学报, 2013, 44(3): 216–221. Liu L S, Shen M X, Yao W, et al. Acquisition and analysis of sows' behavior farrowing based on acceleration sensor[J]. Transactions of the Chinese Society for Agricultural Machinery, 2013,44(3): 216–221. (in Chinese) |
| [2] | Oliviero C, Pastell M, Heinonen M, et al. Using movement sensors to detect the onset of farrowing[J]. Biosystems Engineering, 2008,100(2): 281–285. DOI: 10.1016/j.biosystemseng.2008.03.008 |
| [3] | Labrecque S,Labrecque R,Labrecque G. Birth monitoring system for piglets:US,2008/0266115 A1[P]. 2008-10-30. |
| [4] | Cornou C, Lundbye-Christensen S, Kristensen A R. Modeling and monitoring sows' activity types in farrowing house using acceleration data[J]. Computers and Electronics in Agriculture, 2011,76(2): 316–324. DOI: 10.1016/j.compag.2011.02.010 |
| [5] | Nasirahmadi A, Richter U, Hensel D, et al. Using machine vision for investigation of changes in pig group lying patterns[J]. Computers and Electronics in Agriculture, 2015,119(2): 184–190. |
| [6] | Ahrendt P, Gregersen T, Karstoft H. Development of a real-time computer vision system for tracking loose-housed pigs[J]. Computers and Electronics in Agriculture, 2011,76(2): 169–174. DOI: 10.1016/j.compag.2011.01.011 |
| [7] | 朱伟兴, 浦雪峰, 李新城, 等. 基于行为监测的疑似病猪自动化识别系统[J]. 农业工程学报, 2010, 26(1): 188–192. Zhu W X, Pu X F, Li X C, et al. Automatic identification system of pigs with suspected case based on behavior monitoring[J]. Transactions of the CSAE, 2010,26(1): 188–192. (in Chinese) |
| [8] | Gronskyte R, Clemmensen L H, Hviid M S, et al. Pig herd monitoring and undesirable tripping and stepping prevention[J]. Computers and Electronics in Agriculture, 2015,119(2): 51–60. |
| [9] | Shao B, Xin H W. A real-time computer vision assessment and control of thermal comfort for group-housed pigs[J]. Computers and Electronics in Agriculture, 2008,62(2): 15–21. |
| [10] | 朱伟兴, 纪滨, 秦锋. 基于伪球算子边缘模型的猪前景帧检测[J]. 农业工程学报, 2012, 28(12): 189–194. Zhu W X, Ji B, Qin F. Detection of foreground-frame of pig using edge model based on pseudosphere-operator[J]. Transactions of the CSAE, 2012,28(12): 189–194. (in Chinese) |
| [11] | 杨艳, 滕光辉, 李保明, 等. 基于计算机视觉技术估算种猪体重的应用研究[J]. 农业工程学报, 2006, 22(2): 127–131. Yank Y, Tend G H, Li B M, et al. Measurement of pig weight based on computer vision[J]. Transactions of the CSAE, 2006,22(2): 127–131. (in Chinese) |
| [12] | 刘龙申, 沈明霞, 柏广宇, 等. 基于机器视觉的母猪分娩检测方法研究[J]. 农业机械学报, 2014, 45(3): 237–242. Liu L S, Shen M X, Bo G Y, et al. Sows parturition detection method based on machine vision[J]. Transactions of the Chinese Society for Agricultural Machinery, 2014,45(3): 237–242. (in Chinese) |
| [13] | Otsu N. A threshold selection method from gray-level histograms[J]. IEEE Trans on SMC, 1979,9(1): 62–66. |


