南京农业大学学报  2017, Vol. 40 Issue (5): 921-927   PDF    
http://dx.doi.org/10.7685/jnau.201701032
0

文章信息

陶源栋, 沈明霞, 刘龙申, 陆明洲, 许佩全, 施宏
TAO Yuandong, SHEN Mingxia, LIU Longshen, LU Mingzhou, XU Peiquan, SHI Hong
基于Kinect的母猪呼吸频率测定算法
Study on measurement algorithm of sow respiratory frequency based on Kinect
南京农业大学学报, 2017, 40(5): 921-927
Journal of Nanjing Agricultural University, 2017, 40(5): 921-927.
http://dx.doi.org/10.7685/jnau.201701032

文章历史

收稿日期: 2017-01-17
基于Kinect的母猪呼吸频率测定算法
陶源栋, 沈明霞 , 刘龙申, 陆明洲, 许佩全, 施宏    
南京农业大学工学院/江苏省智能化农业装备重点实验室, 江苏 南京 210031
摘要[目的]呼吸频率是评价母猪健康的重要指标。针对目前畜牧业对母猪呼吸频率无接触测定的需求,提出一种基于Kinect的无接触测量算法。[方法]使用Kinect采集梅山母猪侧卧时的深度图像。通过动态区域检测算法确定腹部区域,采用DBSCAN密度聚类算法得到腹部区域质心进行局部深度图像提取。最后基于腹部区域局部深度图像的深度均值,使用离散傅里叶变换得到深度-时间拟合曲线,通过极值点确定1次呼吸过程的周期进而求出监测时间段内母猪的呼吸频次,最后转化成母猪的呼吸频率(RF)。[结果]将检测结果与人工计数结果做比较,呼吸频率正确率为85.3%,该呼吸频率测定算法是有效的。[结论]提出了一种呼吸频率测定方法,该方法实现无接触测量,准确率高,为定位饲养条件下的梅山母猪呼吸频率的测定提供了理论支撑。
关键词Kinect   母猪   呼吸频率   动态区域检测算法   DBSCAN密度聚类算法   离散傅里叶变换   
Study on measurement algorithm of sow respiratory frequency based on Kinect
TAO Yuandong, SHEN Mingxia , LIU Longshen, LU Mingzhou, XU Peiquan, SHI Hong    
College of Engineering/Jiangsu Key Laboratory for Intelligent Agricultural Equipment, Nanjing Agricultural University, Nanjing 210031, China
Abstract: [Objectives] Respiratory frequency is an important health condition indicator in sows. According to the breeding industry, there is a need for non-contact methods of determining sow's respiratory rate. This study introduces a novel non-contact method to estimate respiration frequency algorithm based on Kinect. [Methods] Kinect was used to collect Meishan sow abdomen depth images at the time of side lying. Dynamic region detection algorithm determines the abdomen region, then the centroid of the abdomen was obtained by DBSCAN density clustering algorithm to extract the local depth image. Finally, after obtention, the Depth-time fitting curve by the discrete Fourier transform based on average depths of depths image of abdomen region was used to calculate the respiratory frequency of sow during the monitoring period through cycle calculated by the distance of extreme points. [Results] Compared to the manual counting, the correct rate of the respiratory rate calculated by proposed algorithm was 85.3%. Thus, the respiratory rate measurement algorithm worked efficiently. [Conclusions] A highly accurate respiratory frequency measurement method that can provide academic support for Meishan sow during feeding condition is proposed.
Key words: Kinect    sow    respiratory frequency    dynamic region detection algorithm    DBSCAN density clustering algorithm    discrete Fourier transform   

猪肉是我国居民重要的消费肉类, 随着自动化、信息化技术在养殖领域中的应用, 传统的养殖方式将向福利养殖、精细养殖方式转变。目前的规模化养殖条件下, 呼吸系统疾病在母猪中发病率高、致死率高。在母猪的产前行为中, 其分娩前呼吸速率会明显加快, 因此母猪的呼吸速率是评价母猪健康、产前预测的重要指标[1-5]。目前, 母猪呼吸速率的测量主要靠人工观察计数, 人力负担重, 主观性强, 且增加了人畜疾病感染的概率, 因此无接触、精确地测量母猪的呼吸频率具有重要意义。

Chen等[6]使用超宽带收发模块向人体胸腔发射超宽带脉冲, 通过模型评估反射脉冲中由空气、皮肤、脂肪、肌肉反射的信号比重来测定人体呼吸频率。但猪舍中, 猪的胸腔朝向地面, 直接将超宽带收发模块置于塑料漏缝地板容易受到母猪啃咬、水分渗入等不利因素影响, 造成元器件损坏, 因此该方法运用到猪呼吸检测上有一定难度。Min等[7]将超声波模块正对人体腹部, 通过测量呼吸过程中因腹部体积变化而产生的距离变化间接测量呼吸频率。但由于猪腹部朝向地面, 实际测量中需要将超声波模块固定于塑料漏缝地板, 无法保证测量阶段能够正对猪腹部, 因此该方法难以精确测量猪的呼吸频率。高小强等[8]提出了一种基于霍尔传感器微阵列的呼吸频率检测方法, 将内置永磁铁的腹带系在人体腹部位置, 通过呼吸过程中由于永磁铁位置变化而产生的霍尔效应间接测量人体的呼吸频率。该方法为接触式测量方法, 实际应用中不仅会引起猪的应激反应, 而且也不适用于规模化养殖。唐亮等[9]设计了一种基于面积特征算子的检测方法, 通过检测猪脊腹部的面积变化规律来反映猪的呼吸频次。该方法精确度较高, 但是该方法采集的彩色图像易受猪舍光照环境和脏污的影响, 且算法较为复杂。

为满足实际生产中测定母猪呼吸频率的需求, 本文提出了一种基于Kinect的呼吸频率检测方法, 测定定位饲养条件下梅山母猪侧卧时的呼吸频率, 该方法将动态区域检测、DBSCAN密度聚类算法、曲线拟合、周期测定分别应用于图像预处理及曲线分析部分。该方法实现无接触测量, 为建立基于机器视觉技术的呼吸频率检测系统提供了理论支撑。

1 材料与方法 1.1 母猪侧卧腹部图像采集

试验于江苏农博园小梅山猪国家级育种中心(南京农业大学教学科研基地, 江苏农林职业技术学院猪场)进行, 采用微软公司研发的Kinect 3D体感摄像机拍摄母猪侧卧深度图像, 图像像素为512×424, 帧速为10帧·s-1。选用10头30月龄的梅山母猪作为试验对象, 所有的试验母猪均位于2.2 m×0.8 m的限位栏内, 猪栏床面为塑料漏缝地板。拍摄时间选取在喂食时间06:00、14:00后的2 h。为保证照片拍摄高度一致, Kinect放置在限位栏正中央相对地面高1.3 m处, 最大测量误差为3 mm。采用PC机进行图像处理和数据分析, 开发环境分别为Visual Studio 2015和Matlab 2016a, 开发语言采用C++。

1.2 侧卧腹部深度图像特征分析

为了精确、实时测定母猪呼吸频率, 需要准确提取深度图像中的腹部区域以提升测定精度, 减少后续图像处理中的运算量。因此需要根据深度图像的特征, 确定有效的提取方案。现选取深度图像中随机一幅图像进行特征分析。从图 1可以看出, 前景目标为母猪的腹部区域, 背景为限位栏及漏缝塑料地板。拍摄的深度图像已经过灰度化处理, 深度图像中前景和背景的颜色相近, 难以确定阈值对图像二值化处理, 因此无法通过轮廓准确提取获得腹部区域。

图 1 母猪侧卧图像 Figure 1 Sow image in lateral position

本文在此基础上提出利用动态区域检测算法提取腹部区域, 整体呼吸频率测定方法分为以下4步:1) 基于动态区域检测算法提取图像中的腹部区域并标记其中所有像素点的坐标, 有效排除图像中无关区域的干扰; 2) 使用DBSCAN密度聚类算法计算步骤1中像素点的质心, 并以该质心为中心点从后续图像中分割出分辨率为30×30的局部图像; 3) 计算步骤2中腹部局部图像深度均值, 使用离散傅里叶变换得到拟合曲线并在Matlab中绘制深度-时间曲线; 4) 确定步骤3中曲线的极值点, 求出1次呼吸过程的周期, 进而得到检测时间段内母猪的呼吸频率。

2 结果与分析 2.1 动态区域获取

为了准确提取母猪腹部区域, 笔者首先采用动态区域检测算法对母猪侧卧深度图像进行预处理, 方法如下:

1) 提取4帧图像I0I1I2I3, 每帧图像之间采样间隔为0.5 s。使用式(1) 将每帧图像中所有像素点灰度值G转化成深度值D放入对应的数组A0A1A2A3中保存, 数组长度与深度图像像素点数目一致。

(1)

式中:K为固定值31.25。

2) 设定阈值TH, 将A0A1A2A3分为A0A1, A1A2, A2A3这3组, 每组数组之间进行差值运算, 将结果保存至数组R0R1R2中。依次遍历R0R1R2, 当Rk中角标为i的元素绝对值大于阈值时, 则认为该元素所对应的深度图像中的像素点在空间上产生距离变化, 并将此元素值赋值为1, 反之则认为该元素对应的像素点未产生距离变化, 将其赋值为0, 见式(2)。

(2)

式中:abs表示对括号内元素进行绝对值运算; otherwise表示其余情况。

3) 记录所有R0(i)、R1(i)、R2(i)均为1的角标i, 并将角标值转换为深度图像中对应像素点的坐标值保存, 得到点集X={X(1), X(2), …, X(n)}。

为验证该算法的有效性, 将步骤3中的坐标点绘制成轮廓图。由图 2可见:图像经过该算法处理后能够准确提取腹部轮廓, 但也存在部分噪点, 对后续识别产生干扰。

图 2 基于动态区域检测算法的母猪腹部区域提取 Figure 2 Extraction of sows′ abdominal region by dynamic region detection algorithm
2.2 基于DBSCAN密度聚类算法的腹部质心提取 2.2.1 算法流程及聚类结果

为了提高图像运算效率同时排除图 2中噪点的干扰, 采用DBSCAN密度聚类算法提取腹部区域质心。DBSCAN密度聚类算法常用于数据挖掘[10], 能够基于密度进行任意形状的空间聚类并有效排除噪声点的干扰[11]。DBSCAN密度聚类算法以扫描半径r和最小点包含数mc为参数[12], 其中心思想是将样本中满足如下2个条件的点集归为1个簇:1) 点集中任意一点与周围点的欧氏距离小于等于扫描半径r; 2) 该点集的元素数目大于等于最小点包含数mc。簇内的点称为核心点, 以核心点为圆心, 扫描半径r为半径的区域称为邻域, 簇边界上的点称为边界点, 不属于任何簇的点称为噪点[13]。本文采用C++实现算法, 方法如下:

1) 从点集X中任选一点X(k), 如果X(k)尚未归为某个簇Ci或未被标记为噪点, 则将X(k)邻域内的点归为点集T中。如果T的元素数目小于mc, 则将X(k)标记为噪点, 反之新建簇C并将X(k)归入该簇中。

2) 选取T中未被处理的点p, 如果其邻域内的点数目小于mc, 则将p标记为噪点, 反之则将p归为C中并将p领域内的点归为T中。

3) 重复步骤二, 直至遍历点集T

4) 重复上述步骤, 直至遍历点集X

分析DBSCAN密度聚类算法的实现步骤可知, 聚类结果对扫描半径r、最小点包含数mc的选取十分敏感。当扫描半径r较大或最小点包含数mc较小时, 簇的数量少, 聚类效果好, 但簇内包含噪点。而当扫描半径r较小或最小点包含数mc较大时, 簇的数量多, 聚类效果差, 但能有效排除噪点干扰。经过理论计算, 分别选取1.43、8作为扫描半径r和最小点包含数mc, 聚类结果如图 3所示。

图 3 基于DBSCAN密度聚类算法的聚类结果 Figure 3 Result of clustering by DBSCAN density clustering algorithm

图 3可见:点集X经算法聚类后, 效果明显。图中红色区域代表簇中元素数量最多的簇, 黑色代表噪点及其余簇。经对比可知, 红色区域为母猪腹部区域且该簇面积最大, 元素数量最多, 可由此特性确定腹部区域簇Cb及该簇包含的点集Xb

2.2.2 腹部区域质心提取

腹部区域质心p(x, y)是点集Xb中所有点的坐标值均值运算后的结果, 质心坐标可由式(3) 确定。

(3)

确定质心p(x, y)的坐标后, 以p为中心点, 从剩余深度图像中截取分辨率为30×30的局部图像并将其余像素点灰度值设置为255, 结果如图 4所示。

图 4 局部深度图像提取 Figure 4 Extraction of local depth image

图 4可见:DBSCAN密度聚类算法可有效确定母猪腹部区域质心, 进行局部图像提取, 排除图像中噪点的干扰, 并将图像处理的像素点个数减少至900个, 能够显著提高后续步骤图像运算效率。

2.3 连续母猪呼吸信号的获取 2.3.1 基于离散傅里叶变换的曲线拟合

在质心提取的基础上, 遍历局部深度图像并结合式(3), 将每个像素点对应的深度值经均值运算后可得到深度均值点集D={D(1), D(2), …, D(n)}, D中相邻两点的采样间隔为0.1 s。在测定母猪呼吸频率时, 需要根据深度-时间曲线确定1个完整呼吸过程的周期进而得到呼吸频率。但由于通过试验采集的深度数据由离散点组成, 无法通过试验数据确定曲线的极值点进而求出呼吸周期, 因此需要将离散的深度信息转换为连续信息。

曲线拟合的核心思想是用连续曲线刻画离散点集的函数关系, 拟合原理是通过构造解析函数y=f(x, c)反映点集D中元素的变化规律。式中:x, y代表元素的坐标值; c=(c1, c2, …, cn)为待定参数。当y=f(x, c)呈线性关系时称为线性模型, 反之称为非线性模型[14]。为确定可以通过已有曲线模型进行拟合, 随机从点集D中选取50组连续的数据绘制散点图, 结果如图 5所示。

图 5 深度-时间散点图 Figure 5 Depth-time scatter plot image

图 5可见:散点的分布呈非线性关系且存在周期性, 符合周期性离散信号的特征, 因此采用离散傅里叶变换进行曲线拟合。傅里叶变换是数字信号处理领域一种重要算法[15], 其原理为任何连续测量的时序或信号, 都可以表示为不同频率的正弦波信号及余弦波信号的无限叠加[16], 因此在实际应用中对离散原始信号的处理只需通过累加的方式计算原始信号中不同正、余弦波信号的频率、振幅和相位, 将信号从时间域转变为频率域进而研究信号的频谱结构和变化规律。曲线拟合的具体步骤如下:

1) 将所求函数表示为如下形式:

(4)

式中:Xk表示傅里叶幅度。

2) 通过观察图 5可得1个周期的散点数目为40, 由傅里叶变换的特点:1个长度为N的信号可以分解成N/2+1个正余弦信号可知, 所求函数可表示为21个正弦波和21个余弦波叠加的形式。

(5)

式中:ReX[k]、lmX[k]为不同频率正、余弦波的频率。

3) 通过式(6)、(7) 计算式(5) 中ReX[k]和lmX[k]的取值, 式中x[i]代表输入信号。

(6)
(7)

通过以上步骤可以求出叠加正、余弦函数的频率、振幅和相位值, 因此也就得到拟合函数具体的表达式。从深度均值点集D中随机选取连续的200个点并在Matlab中使用该表达式绘制拟合曲线, 结果如图 6所示。

图 6 深度-时间拟合曲线图 Figure 6 Depth-time fitting curve image
2.3.2 连续呼吸信号频率计算

图 6可知:曲线拟合效果较好, 深度-距离曲线有明显的周期性且选取的母猪基本保持匀速呼吸。该曲线共含有5个峰值点p1(0.604 3, 870.5)、p2(4.952, 870.9)、p3(9.675, 875.1)、p4(13.5, 864.9)、p5(17.7, 874.6), 表示在20 s内母猪至少经过5次完整的呼吸过程, 1次完整呼吸过程的周期T可用式(8) 计算得到。式中:Δyi代表相邻峰值点y坐标之差的绝对值, 代入峰值点坐标可得T=4.27 s, 再将T代入式(9) 计算得到母猪每分钟的呼吸频率F为14 min-1

(8)
(9)
2.4 试验验证

选取10头梅山母猪为试验对象, 在母猪侧卧并保持静止状态时分别对每头母猪不间断采集1 min的深度图像, 根据不同的处理方式分为两部分:1) 用于提取腹部质心的完整深度图像100张。2) 经腹部质心提取后用于计算深度均值的局部深度图像500张。在图像采集过程中同时进行人工计数, 通过记录1 min内母猪的吸气次数确定呼吸频率。将本文方法计算出的呼吸频率与人工计数得到的呼吸频率绘制成表格, 结果如表 1所示, 其中相对误差以人工计数为真值计算得到。试验结果表明:通过本文方法测定的呼吸频率最大相对误差为-27.3%, 最小相对误差为-6.3%, 平均相对误差为14.7%, 测定准确率达到85.3%。

表 1 母猪呼吸频率和识别精度 Table 1 Sow respiratory frequency and recognition accuracy
母猪编号
Sow No.
人工计数
Manual counting
本文方法
Proposed method
相对误差/%
Relative error
1 14 17 -21.4
2 14 15 -7.1
3 19 22 -15.8
4 13 12 +7.7
5 11 14 -27.3
6 16 14 +12.5
7 18 15 +16.7
8 24 19 +20.8
9 16 17 -6.3
10 18 16 +11.1
平均相对误差/% Average relative error +14.7
检测正确率/% Correct rate of detection 85.3
3 结论

1) 提出了一种基于Kinect的梅山母猪呼吸频率测定方法, 该方法实现无接触测定定位饲养条件下梅山母猪呼吸频率。

2) 提出了基于动态区域检测算法、DBSCAN密度聚类算法的腹部质心提取方法, 测试结果表明该方法能够有效提取梅山母猪腹部区域的局部深度图像, 排除图像噪点的干扰并提高图像处理效率。

3) 试验结果表明:该方法正确率达到85.3%, 可以测定定位饲养条件下梅山母猪呼吸频率, 为建立基于机器视觉技术的呼吸频率检测系统提供了理论支撑。

参考文献(References)
[1] 徐亚妮, 沈明霞, 闫丽, 等. 待产梅山母猪咳嗽声识别算法的研究[J]. 南京农业大学学报, 2016, 39(4): 681–687.
Xu Y N, Shen M X, Yan L, et al. Research of predelivery Meishan sow cough recognition algorithm[J]. Journal of Nanjing Agricultural University, 2016, 39(4): 681–687. DOI: 10.7685/jnau.201510035 (in Chinese with English abstract)
[2] 刘龙申, 沈明霞, 姚文, 等. 基于加速度传感器的母猪产前行为特征采集与分析[J]. 农业机械学报, 2013, 44(3): 192–196.
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. DOI: 10.6041/j.issn.1000-1298.2013.03.035 (in Chinese with English abstract)
[3] 柏广宇, 刘龙申, 沈明霞, 等. 基于无线传感器网络的母猪体温实时监测节点研制[J]. 南京农业大学学报, 2014, 37(5): 128–134.
Bai G Y, Liu L S, Shen M X, et al. Design of sow body temperature monitoring node based on wireless sensor network[J]. Journal of Nanjing Agricultural University, 2014, 37(5): 128–134. DOI: 10.7685/j.issn.1000-2030.2014.05.021 (in Chinese with English abstract)
[4] 汤丽平, 张健, 任羽. 基于无线传感器网络的咳嗽音检测系统研究[J]. 传感器与微系统, 2011, 30(12): 25–27.
Tang L P, Zhang J, Ren Y. Research on detection system of cough sound based on wireless sensor networks[J]. Transducer and Microsystem Technologies, 2011, 30(12): 25–27. DOI: 10.3969/j.issn.1000-9787.2011.12.008 (in Chinese with English abstract)
[5] 张弛, 沈明霞, 刘龙申, 等. 基于机器视觉的新生仔猪目标识别方法研究与实现[J]. 南京农业大学学报, 2017, 40(1): 169–175.
Zhang C, Shen M X, Liu L S, et al. Newborn piglets recognition method based on machine vision[J]. Journal of Nanjing Agricultural University, 2017, 40(1): 169–175. DOI: 10.7685/jnau.201602017 (in Chinese with English abstract)
[6] Chen Y F, Rapajic P. Human respiration rate estimation using ultra-wideb and distributed cognitive radar system[J]. International Journal of Automation and Computing, 2008, 5(4): 325–333. DOI: 10.1007/s11633-008-0325-3
[7] Min S D, Kim J K, Shin H S, et al. Noncontact respiration rate measurement system using an ultrasonic proximity sensor[J]. IEEE Sensors Journal, 2010, 10(11): 1732–1739. DOI: 10.1109/JSEN.2010.2044239
[8] 高小强, 刘洪英, 朱兰, 等. 基于霍尔传感器微阵列的呼吸频率检测系统设计[J]. 传感器与微系统, 2013, 32(5): 121–123.
Gao X Q, Liu H Y, Zhu L, et al. Design of respiratory frequency detecting system based on Hall sensor micro-array[J]. Transducer and Microsystem Technologies, 2013, 32(5): 121–123. (in Chinese with English abstract)
[9] 唐亮, 朱伟兴, 李新城, 等. 基于面积特征算子的猪呼吸频率检测[J]. 信息技术, 2015(2): 73–77.
Tang L, Zhu W X, Li X C, et al. Identification and detection of swine respiratory frequency based on area feature operator[J]. Information Technology, 2015(2): 73–77. (in Chinese with English abstract)
[10] 荣秋生, 颜君彪, 郭国强. 基于DBSCAN聚类算法的研究与实现[J]. 计算机应用, 2004, 24(4): 45–46.
Rong Q S, Yan J B, Guo G Q. Research and implementation of clustering algorithm based on DBSCAN[J]. Computer Applications, 2004, 24(4): 45–46. (in Chinese with English abstract)
[11] Mahesh Kumar K, Rama Mohan Reddy A. A fast DBSCAN clustering algorithm by accelerating neighbor searching using Groups method[J]. Pattern Recognition, 2016, 58: 39–48. DOI: 10.1016/j.patcog.2016.03.008
[12] Mimaroglu S, Aksehirli E. Improving DBSCAN's execution time by using a pruning technique on bit vectors[J]. Pattern Recognition Letters, 2011, 32(13): 1572–1580. DOI: 10.1016/j.patrec.2011.06.003
[13] 王雅光. 基于Hadoop平台的DBSCAN算法应用研究[D]. 广州: 广东工业大学, 2013: 20-22.
Wang Y G. Application and research of DBSCAN based on hadoop platform[D]. Guangzhou:Guangdong University of Technology, 2013:20-22(in Chinese with English abstract). http://cdmd.cnki.com.cn/Article/CDMD-11845-1013214822.htm
[14] 唐冲, 惠辉辉. 基于Matlab的高斯曲线拟合求解[J]. 计算机与数学工程, 2013, 41(8): 1262–1263.
Tang C, Hui H H. Gaussian curve fitting solution based on Matlab[J]. Computer and Digital Engineering, 2013, 41(8): 1262–1263. (in Chinese with English abstract)
[15] 杨丽娟, 张白桦, 叶旭桢. 快速傅里叶变换FFT及其应用[J]. 光电工程, 2004, 31(suppl): 1–3.
Yang L J, Zhang B H, Ye X Z. Fast Fourier transform and its applications[J]. Opto-Electronic Engineering, 2004, 31(suppl): 1–3. (in Chinese with English abstract)
[16] Mondal A, Banerjee P, Somkuwar A. Enhancement of lung sounds based on empirical mode decomposition and Fourier transform algorithm[J]. Computer Methods and Programs in Biomedicine, 2017, 139: 119–136. DOI: 10.1016/j.cmpb.2016.10.025