文章信息
- 施宏, 沈明霞, 刘龙申, 陆明洲, 孙玉文, 刘志刚
- SHI Hong, SHEN Mingxia, LIU Longshen, LU Mingzhou, SUN Yuwen, LIU Zhigang
- 基于Kinect的哺乳期母猪姿态识别算法的研究
- Study on recognition method of lactating sows' posture based on Kinect
- 南京农业大学学报, 2019, 42(1): 177-183
- Journal of Nanjing Agricultural University, 2019, 42(1): 177-183.
- http://dx.doi.org/10.7685/jnau.201803025
-
文章历史
- 收稿日期: 2018-03-14
2. 南通科技职业学院, 江苏 南通 226007
2. Nantong Vocational College of Science and Technology, Nantong 226007, China
伴随养殖产业向集约化、规模化方向发展, 母猪的行为信息逐渐成为研究热点。哺乳期母猪的活动姿态体现了其哺乳能力与健康状况。乳房外露侧卧在产床上以便小猪吮吸是哺乳期母猪的频繁行为, 但哺乳会消耗母猪大量的体力, 长时间站立的母猪会因为得不到充足休息而降低哺乳意愿[1-3]。因此无接触, 精确识别哺乳期内母猪的行为姿态具有重要意义。
目前动物姿态识别的研究方式主要依靠传感器检测技术与图像监测技术[4]。Cornou等[5]利用皮带将节点固定在猪身上, 通过基于卡尔曼滤波的识别算法实现了姿态识别。但是接触式的测量方法不仅会引起母猪的应激反应, 导致节点因摩擦而损坏, 在母猪哺乳期间, 仔猪的啃食节点行为也会导致节点数据的可信度降低。经过不断试验, 在佩戴的舒适度等方面取得了较大的改善, 减少了外部原因引起的干扰, 但是长期高效工作的传感器节点技术有待突破[6-8]。Lao等[9]使用Kinect每隔6 s获取深度图像, 通过判断母猪在每个设定区域的像素点数与其深度信息来识别母猪的姿态, 并且取得了较为理想的识别率。但是猪场环境中的粉尘会干扰Kinect对于深度信息的采集, 当镜头前漂浮有微小粉尘时, 其深度图像并不能提供可靠的深度信息。张光跃等[10]提出了采用超声波传感器测定传感器与母猪头部、背部和尾部的距离, 每隔10 s判断1次母猪的行为, 实现了母猪筑窝、站立与躺卧的识别, 但仅从头部、背部和尾部的距离信息无法识别同一高度域内的母猪姿态。
本文提出了一种基于Kinect的哺乳期小梅山母猪的姿态识别算法。该方法运用Kinect获取点云数据, 基于DBSCAN密度聚类算法, 采用非接触方式提取脊背信息用于姿态识别, 为母猪哺乳能力的判定与健康状况的分析提供了技术支撑。
1 材料与方法 1.1 母猪姿态点云数据采集试验于2017年12月12日在江苏农博园的小梅山猪国家育种中心进行。试验对象为体长约1.15 m的小梅山母猪, 各试验对象均位于2.2 m×0.8 m的产床中, 采用Microsoft公司的体感器设备Kinect 2.0拍摄母猪个体, 分辨率为512×424, 镜头离产床塑料隔板距离为1.5 m, 采样时间间隔为1 s, 测量误差保持在4 mm以内[11]。借助SDK for Kinect 2.0开发图像采集程序, 将每个深度数据的横坐标X、纵坐标Y和对应位置的深度数值d以[X,Y,d]的格式保存为文本文档。开发语言为C#, 中间过程矩阵用Matlab显示成图片。
1.2 哺乳期母猪特征信息与姿态分类小梅山猪是梅山猪三大类群之一, 具有体型小、四肢结实以及身体细致紧凑的特点。成年小梅山母猪的体型较小, 其体长(两耳根连线中点沿背线至尾根的距离)为(122.56±5.01)cm, 体高(肩胛至地面的垂直距离)为(66.88±4.94)cm[12]。小梅山母猪的初配年龄为6个月, 初情期平均日龄为(73.4±7.5)d[13], 初产母猪平均窝产仔数为(9.85±3.21)头, 经产母猪平均窝产仔数为(14.87±2.34)头[14]。小梅山母猪凭借产仔多、性成熟早、母性好的特征闻名世界。
在集约化程度较高的猪场内, 母猪在其哺乳期均转移至产床的限位栏内。由于空间狭小, 限制了母猪的转身和翻滚等行为, 只表示出站立、坐立、趴卧、侧卧这4种有限姿态[15]。1)侧卧:母猪哺乳期间侧躺在产床的塑料隔板上, 乳头外露以便小猪寻找吮吸位置。2)趴卧:母猪的四肢蜷曲, 为了不受小猪主动吮乳的干扰, 腹部贴在产床的塑料隔板, 因此母猪可以得到较好的休息。3)坐立:母猪前肢与臀部支撑于产床的塑料隔板上, 该姿态的母猪大多处于休息阶段。4)站立:母猪四肢支撑在塑料隔板上, 母猪的进食、饮水、排泄都在该姿态下完成。
1.3 母猪姿态识别方法 1.3.1 数据预处理Kinect采集得到的深度数据是实时采样得到拍摄区域内目标的距离值[16]。读取每一帧深度数据文件, 将每个深度数据按照对应的横坐标X与纵坐标Y加载到大小为512×424矩阵D中。由于Kinect 2.0自身拍摄精度的局限性, 数据中均出现少量噪点, 当环境中粉尘浓度过大时, 会出现大量无效数据, 由此本文只选取无效数据比例小于5%的深度数据作为处理样本。对于样本数据中出现的无效数据, 用最邻近点有效数据填补[17]。将处理后的深度数据矩阵D(X, Y)转换为母猪的高度信息矩阵H(X, Y), 转换关系由式(1)与式(2)确定。
(1) |
(2) |
式中:D(x, y)表示内存数据, d(x, y)表示文本文档中的数据, 此处做了2组数据的映射。Hkinect表示Kinect 2.0离产床的塑料隔板高度, 本文中取1 500 mm; Rmin表示Kinect 2.0能识别的最近距离, 本文中取500 mm。
由于限位栏中的塑料底板上常存在残留粪便等杂物, 为了减少干扰, 提高计算效率, 本文将高度小于100 mm的数据点剔除, 只截取哺乳母猪所在限位栏中的高度并将其转存至新矩阵DH(X, Y)并进行平滑, 结果表明可有效去除无关区域, 提高后续步骤的处理效率。
1.3.2 母猪姿态立卧区分方法通过分析可知, 站立和坐立姿态下的身躯高度与侧卧和趴卧的身躯处于不同的高度域中。直方图(Histogram)具有图像平移旋转缩放不变性, 能够反映颜色在图像中的整体布局, 在图像分割与图像检索等方面得到了广泛的应用。基于直方图的思想, 现随机选取每种姿态的1个深度数据文本文档, 计算并统计母猪高度, 结果如图 1所示。
从图 1可知, 站立和坐立2种姿态的高度大多位于500 mm以上, 而趴卧与侧卧2种姿态的高度大多位于500 mm以下, 该特征明显且具有普遍性, 可作为区分立卧2种姿态的依据。Kinect 2.0获取的深度数据存在边缘噪声, 边缘的深度会出现奇异数据, 为了避免其影响, 本文选取数量最多的高度Hnmax为特征值来区分立卧2种姿态。当Hnmax大于500 mm, 则认为母猪的姿态为站立或坐立, 当Hnmax小于500 mm时, 则认为母猪的姿态为侧卧或趴卧。
1.3.3 基于DBSCAN密度聚类的侧卧与趴卧区分方法如图 2所示, 母猪处于侧姿状态时小猪会出现在母猪周围且位置随机, 运用简单的图像切割已经不能获取较好的分离效果。观察母猪的三维模型, 相比趴卧状态, 侧卧状态下母猪的前肢、躯干、后肢与腹部都有明显的区域。为了提高运算效率, 减小小猪的干扰, 本文提出了基于DBSCAN(density-based spatial clustering of applications with noise)密度聚类算法的侧卧与趴卧的区分方法。DBSCAN密度聚类算法跟传统基于层次聚类和划分聚类的凸形类簇不同, 该算法可以处理除2个簇之间呈哑铃状的任意形状的簇[18-19]。
DBSCAN关键参数定义如下:
1) 扫描半径R的定义:2个样本之间的最大距离。
2) 最小数目Nmin的定义:作为核心点的邻域(即以其为圆心, R为半径的圆, 含圆上的点)中的最小样本数(包括点本身)。
3) E领域的定义:在给定半径为R内的区域称为该对象的E领域。
4) 核心对象的定义:如果给定对象E领域内的样本点大于或等于Nmin, 则称该点为核心对象。
DBSCAN实现方法如下:
1) 任选1个未被访问过的点为开始, 找出与其距离S在R之内(包含半径R)的所有附近点, 其中任意2点a和b之间距离由公式(3)确定。
(3) |
式中:k表示像素与距离的转换系数, 与Kinect的拍摄高度Hkinect及视觉角度θ有关,
(4) |
本文中:Hkinect取1 500 mm, 视觉角度θ取60°, 通过计算k的取值为16.69。
2) 如果附近点的数量大于或等于Nmin, 则当前点与其附近点形成一个簇, 并且出发点被标记为已访问, 并以相同的方法处理该簇中所有还未被访问的点, 进而对该簇进行扩展。
3) 如果附近点的数量小于Nmin, 则该点暂时标记为噪声点。
4) 当簇充分扩张, 簇内的所有点都被访问, 则用相同的方法处理簇外未被访问的点。
5) 当所有点被访问, 将没有被归入簇的点标记为噪点。
DBSCAN对于R与Nmin的参数设定较为敏感。通过理论计算与多次试验, R取3.3, Nmin取7, 聚类效果如图 3所示。
观察图 3可得, 当母猪处于侧卧状态下, 待哺育的小猪被标记为噪点, 躯干、腹部与前肢的部分被标记为不同的簇; 而趴卧状态下只有包含躯干信息的1个簇, 其余被标记为噪点。这说明母猪的侧卧与趴卧可以通过比较DBSCAN密度聚类算法得到的簇的个数来区分。当只有1个簇时, 判定母猪处于趴卧状态; 当有2个及以上簇时, 判定母猪处于侧姿状态。
1.3.4 基于脊背提取的站立与坐立区分方法如图 4所示, 当母猪坐立休息时, 臀部贴近塑料隔板, 前肢支撑在塑料隔板上, 头部会伸向附件栏杆或低头摸索, 背部整体呈下降趋势。站立状态下的母猪四肢支撑在塑料隔板上, 当母猪进食或饮水时, 由于嘴部靠近食槽与饮水装置, 因此头部处于较低位置; 当母猪排泄时, 头部与背部大致处于同一高度, 因此背部整体呈略微上升趋势。为了减少计算量, 母猪的背部高度变化可以用母猪的脊背高度变化来表示, 本文提出了基于脊背提取的站立与坐立区分方法。在传统的图像处理中, 母猪脊背线大多依靠多个目标轮廓上的特征点来计算[20-21], 不仅计算过程复杂, 而且脊背线拟合度不高。使用Kinect 2.0获取的深度数据包含了整个背部的高度信息, 可以从高度数据入手获取母猪脊背线。为了减少小猪高度信息的干扰, 将高度小于400 mm的高度数据全部设置为0。
提取方法如下:
1) 将DH(X, Y)中的高度数据逐列求出最大值Hmax, 将每个Hmax所对应的横坐标X与纵坐标Y记录在新的矩阵JH(X, Y)。
2) 将JH(X, Y)中的X, Y进行曲线拟合, 代入每个X坐标值计算得到新的拟合高度值Y1, 将Y1四舍五入求得近似整数Y2。
3) 根据新坐标(X, Y2)获取脊背线所对应的高度信息存入JH1(X)。
母猪处于坐立姿态与站立姿态下JH1(X)中的高度数据如图 5所示。
由于哺育期母猪处于限位栏内, 无法完成转向等复杂动作, Kinect 2.0垂直安装在限位栏的右侧, 所以可确定母猪的臀部始终保持在一个方向内, 文中脊背线从左到右表示的是头部到尾部。由于母猪在限位栏中身体常呈现弯曲状态, 为计算脊背线的长度, 本文通过计算脊背线中相邻2个坐标点之间的欧氏距离, 采用累加2点之间欧式距离的方法计算出脊背线理论长度, 再将脊背线的高度数据分为JH1 before(X)和JH1 after(X)2部分, 其分割点xd由式(5)确定。
(5) |
xd为符合式(5)的最大值, 并用Ab与Aa表示其前、后脊背线平均值, 前、后脊背线平均值由式(6)与式(7)确定。
(6) |
(7) |
如果Ab大于Aa, 则母猪的姿态为坐立, 如果Ab小于Aa, 则母猪的姿态为站立。
2 结果与分析选取3头符合试验要求的小梅山母猪作为试验对象。将Kinect 2.0用不锈钢支架固定在产床限位栏的右侧。为减少粉尘浓度对于深度数据的影响, 选取12:00至16:00这个时间段作为试验时间。每隔1 s采集1次深度数据, 采集后得到60 000多试验数据, 以文档格式进行保存。由于母猪的姿态大多处于静止状态, 为了验证本文算法的实用性, 先对姿态进行人为分类, 获取母猪在限位栏内尽量不同位置的数据, 每种姿态样本容量为4 000, 再将本文识别方法与人眼观察结果对比。结果(表 1)显示:本文提出的哺乳期母猪姿态识别方法对于站姿与坐姿的正确识别率均在90%以上, 证明经脊背线特征判别母猪站姿与坐姿的有效性。然而当哺乳期母猪处于趴卧状态时, 本文提出的识别方法正确识别率相对略低, 这可能是由于母猪趴卧的位置不同, 母猪所表现出的趴卧姿态有所不同。当母猪趴卧于产床正中央, 与左右限位栏两边的栏杆距离较远时, 母猪的趴卧姿势无明显的左右倾斜, 识别率较高; 当母猪趴卧于产床的左右两侧, 躯干贴在限位栏两边的栏杆, 母猪的趴卧姿势出现倾斜姿态并且裸露出部分腹部, 当腹部面积出现较大时, 基于DBSCAN密度聚类的识别算法会将背部与腹部区分为2个不同的簇, 从而造成错误的识别。相比趴卧, 侧卧的姿态除去小猪的干扰都较为类似, 因此识别率较高。
母猪姿态 Sow posture |
识别结果Results | 总计 Total |
正确率/% Accuracy |
|||
站立 Standing |
坐立 Sitting |
趴卧 Sternal lying |
侧卧 Lateral lying |
|||
站立Standing | 3 771 | 229 | 0 | 0 | 4 000 | 94.3 |
坐立Sitting | 291 | 3 704 | 5 | 0 | 4 000 | 92.6 |
趴卧Sternal lying | 0 | 0 | 3 368 | 632 | 4 000 | 84.2 |
侧卧Lateral lying | 0 | 0 | 252 | 3 748 | 4 000 | 93.7 |
总计Total | 4 062 | 3 933 | 3 625 | 4 380 | 16 000 |
为了监测母猪的整个哺乳过程, 现选取1头母猪在12:53至13:13的深度数据。该时间段包含了母猪哺乳的完整过程, 分别用1、2、3、4来表示母猪哺乳中的侧卧、趴卧、坐立以及站立, 而识别行为中的侧卧、趴卧、坐立以及站立分别用3、4、5、6表示。由图 6可见:当母猪处于一个姿态时, 本文算法能够较为准确地识别母猪的姿态; 当母猪从一个姿态转换成另一个姿态时, 母猪的高度信息在过渡期内会发生巨大的变换, 从而导致有些姿态识别错误。
3 结论1) 针对穿戴式传感器对哺乳期母猪产生的不适感, 选用Kinect 2.0垂直拍摄处于限位栏中的哺乳期小梅山母猪, 通过非接触的方式获取母猪的深度信息, 从而获取哺乳期小梅山母猪更加贴近自然的行为姿态数据。
2) 提出了母猪姿态立卧分类方法, 基于DBSCAN密度聚类的侧卧与趴卧区分方法和基于脊背提取的站立与坐立区分方法, 结果表明该方法能够有效识别哺乳期母猪在限位栏中站立、坐立、趴卧与侧卧4种主要姿态。
3) 由于在母猪转换姿态的过渡期内, 出现了少量其他姿态, 为了提高本文算法的识别率, 将进一步细化母猪在哺乳期内的姿态分类以提高识别的正确率。
[1] |
陶源栋, 沈明霞, 刘龙申, 等. 基于Kinect的母猪呼吸频率测定算法[J]. 南京农业大学学报, 2017, 40(5): 921-927. Tao Y D, Shen M X, Liu L S, et al. Study on measurement algorithm of sow respiratory frequency based on Kinect[J]. Journal of Nanjing Agricultural University, 2017, 40(5): 921-927 (in Chinese with English abstract). DOI:10.7685/jnau.201701032 |
[2] |
郁厚安, 高云, 黎煊, 等. 动物行为监测的研究进展——以舍养商品猪为例[J]. 中国畜牧杂志, 2015, 51(20): 66-70, 75. Yu H A, Gao Y, Li X, et al. Research review of animal behavior monitoring technologies:commercial pigs as realistic example[J]. Chinese Journal of Animal Science, 2015, 51(20): 66-70, 75 (in Chinese with English abstract). DOI:10.3969/j.issn.0258-7033.2015.20.013 |
[3] |
刘龙申, 沈明霞, 姚文, 等. 基于加速度传感器的母猪产前行为特征采集与分析[J]. 农业机械学报, 2013, 44(3): 192-196, 191. Liu L S, Shen M X, Yao W, et al. Acquisition and analysis of sows ' behavior before farrowing based on acceleration sensor[J]. Transactions of the Chinese Society for Agricultural Machinery, 2013, 44(3): 192-196, 191 (in Chinese with English abstract). |
[4] |
汪开英, 赵晓洋, 何勇. 畜禽行为及生理信息的无损监测技术研究进展[J]. 农业工程学报, 2017, 33(20): 197-209. Wang K Y, Zhao X Y, He Y. Review on noninvasive monitoring technology of poultry behavior and physiological information[J]. Transactions of the Chinese Society of Agricultural Engineering, 2017, 33(20): 197-209 (in Chinese with English abstract). DOI:10.11975/j.issn.1002-6819.2017.20.025 |
[5] |
Cornou C, Lundbye-Christensen S. Classifying sows ' activity types from acceleration patterns:an application of the Multi-Process Kalman Filter[J]. Applied Animal Behaviour Science, 2008, 111(3/4): 262-273. |
[6] |
宋迪迪, 王修远, 屈敏直, 等. 基于SVM-HMM混合模型的生猪姿态识别方法研究[J]. 电子世界, 2017(19): 9-11. Song D D, Wang X Y, Qu M Z, et al. Research on pig posture identification method based on SVM-HMM hybrid model[J]. Electronics World, 2017(19): 9-11 (in Chinese with English abstract). DOI:10.3969/j.issn.1003-0522.2017.19.004 |
[7] |
李哲, 田建艳, 郑晟, 等. 基于MPU6050和HMC5883L的猪的姿态检测[J]. 江苏农业科学, 2016, 44(2): 434-437. Li Z, Tian J Y, Zhen S, et al. Posture detection of pigs based on MPU6050 and HMC5883L[J]. Jiangsu Agricultural Sciences, 2016, 44(2): 434-437 (in Chinese). |
[8] |
闫丽, 沈明霞, 姚文, 等. 基于MPU6050传感器的哺乳期母猪姿态识别方法[J]. 农业机械学报, 2015, 46(5): 279-285. Yan L, Shen M X, Yao W, et al. Recognition method of lactating sows ' posture based on sensor MPU6050[J]. Transactions of the Chinese Society for Agricultural Machinery, 2015, 46(5): 279-285 (in Chinese with English abstract). |
[9] |
Lao F, Brown-Brandl T, Stinn J P, et al. Automatic recognition of lactating sow behaviors through depth image processing[J]. Computers and Electronics in Agriculture, 2016, 125: 56-62. DOI:10.1016/j.compag.2016.04.026 |
[10] |
张光跃, 刘龙申, 沈明霞, 等. 基于超声波的母猪产前行为监测系统设计[J]. 中国农业大学学报, 2017, 22(8): 109-115. Zhang G Y, Liu L S, Shen M X, et al. Monitoring system design of sow ' s antenatal behavior based on ultrasonic[J]. Journal of China Agricultural University, 2017, 22(8): 109-115 (in Chinese with English abstract). |
[11] |
Yang L, Zhang L Y, Dong H W, et al. Evaluating and improving the depth accuracy of Kinect for Windows v2[J]. IEEE Sensors Journal, 2015, 15(8): 4275-4285. DOI:10.1109/JSEN.2015.2416651 |
[12] |
邢军. 小梅山猪生长发育性状的观察[J]. 中国畜禽种业, 2007(10): 35-37. Xing J. Observation of growth and development characters of Xiaomeishan pig[J]. The Chinese Livestock and Poultry Breeding, 2007(10): 35-37 (in Chinese). DOI:10.3969/j.issn.1673-4556.2007.10.014 |
[13] |
邢军, 陈军, 吴井生, 等. 小梅山猪种质特性保存与利用的研究进展[J]. 中国猪业, 2013, 8(S1): 79-81. Xing J, Chen J, Wu J S, et al. Research progress on preservation and utilization of germplasm properties of Xiaomeishan pig[J]. China Swine Industry, 2013, 8(S1): 79-81 (in Chinese). |
[14] |
凌天星, 丁威, 陈军, 等. 小梅山猪种质资源的保护[J]. 中国畜禽种业, 2006(5): 42-45. Ling T X, Ding W, Chen J, et al. Protection of germplasm resources of Xiaomeishan pig[J]. The Chinese Livestock and Poultry Breeding, 2006(5): 42-45 (in Chinese). DOI:10.3969/j.issn.1673-4556.2006.05.027 |
[15] |
闫丽, 沈明霞, 谢秋菊, 等. 哺乳母猪高危动作识别方法研究[J]. 农业机械学报, 2016, 47(1): 266-272. Yan L, Shen M X, Xie Q J, et al. Research on recognition method of lactating sows ' dangerous body movement[J]. Transactions of the Chinese Society for Agricultural Machinery, 2016, 47(1): 266-272 (in Chinese with English abstract). |
[16] |
Lachat E, Macher H, Mittet M A, et al. First experiences with Kinect v2 sensor for close range 3D modelling[C]//The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. Avila, Spain, 2015. https://www.researchgate.net/publication/274352936_First_experiences_with_kinect_V2_sensor_for_close_range_3D_modelling
|
[17] |
Song W B, Le A V, Yun S, et al. Depth completion for kinect v2 sensor[J]. Multimedia Tools & Applications, 2017, 76(3): 4357-4380. |
[18] |
伍育红. 聚类算法综述[J]. 计算机科学, 2015, 42(6A): 491-499, 524. Wu Y H. General overview on clustering algorithms[J]. Computer Science, 2015, 42(6A): 491-499, 524 (in Chinese with English abstract). |
[19] |
金建国. 聚类方法综述[J]. 计算机科学, 2014, 41(11A): 288-293. Jin J G. Review of clustering method[J]. Computer Science, 2014, 41(11A): 288-293 (in Chinese with English abstract). |
[20] |
李卓, 杜晓冬, 毛涛涛, 等. 基于深度图像的猪体尺检测系统[J]. 农业机械学报, 2016, 47(3): 311-318. Li Z, Du X D, Mao T T, et al. Pig dimension detection system based on depth image[J]. Transactions of the Chinese Society for Agricultural Machinery, 2016, 47(3): 311-318 (in Chinese with English abstract). |
[21] |
刘同海, 滕光辉, 付为森, 等. 基于机器视觉的猪体体尺测点提取算法与应用[J]. 农业工程学报, 2013, 29(2): 161-168. Liu T H, Teng G H, Fu W S, et al. Extraction algorithms and applications of pig body size measurement points based on computer vision[J]. Transactions of the Chinese Society of Agricultural Engineering, 2013, 29(2): 161-168 (in Chinese with English abstract). |