APP下载

基于红外热成像的生猪耳温自动提取算法

2021-08-27肖德琴林思聪黄一桂曾瑞麟

农业机械学报 2021年8期
关键词:耳部猪只红外

肖德琴 林思聪 刘 勤 黄一桂 曾瑞麟 陈 丽

(1.华南农业大学数学与信息学院, 广州 510642; 2.温氏食品集团股份有限公司, 云浮 523700)

0 引言

生猪的体温监测在规模化生猪养殖中有非常重要的作用,一般使用猪的直肠温度表征猪的体温[1-2]。当猪只处于循环衰弱、产后瘫痪、中毒或者临死期时,其体温低于正常体温范围的最低值;当猪只感染某些炎症或传染性疾病时,如猪传染性胸膜肺炎、猪流感等,其体温超过正常体温的最高值。在畜禽养殖中的大部分传染性疾病中,体温升高往往发生的较早[3-4]。因此,对生猪进行体温监测和分析能有效发现疾病早期症状,以便及时通知养殖人员处理,减少养殖企业的经济损失[5-7]。

检测生猪体温的方法主要有传感器法和热红外成像技术。相比于传感器测温要将设备置于生猪体内[8-9],基于热红外成像技术的测温方法具有非接触式的优点,避免了人畜接触交叉感染,也不会引起猪只的应激反应,能更准确地反映猪只体温[10]。SCOLARI等[11]和SKYKES等[12]使用红外热像仪采集发情母猪肛部的热红外图像分析母猪发情行为;秦永孝等[13]利用红外热像仪研究母猪发情状态下体温变化;WESCHENFELDER等[14]通过红外热像仪采集生猪屠宰前的体温,研究分析了生猪体表温度与其屠宰前的心理条件和猪肉品质的相关性。上述研究都表明了基于热红外成像技术提取的猪只体温能够反映猪只生理状况。

近年来随着计算机视觉的发展,基于图像处理技术的生猪热红外图像感兴趣区域测温技术成为研究热点。周丽萍等[15]基于热红外图像提出改进Ostu算法检测生猪耳根区域,但该方法仅能检测完整具有耳根部特征的猪只图像。赵海涛[16]借鉴人脸关键点检测技术对猪脸的红外图像进行关键部位自动识别,该方法适用于人工拍摄的猪脸数据,难以结合自动化设备进行检测。LU等[17]使用SVM识别红外图像中猪只头部,基于头部轮廓定位猪耳,并提取温度,但存在将猪尾部轮廓误识别为猪头,导致耳部定位错误的问题。尽管上述研究一定程度上实现了自动化提取热红外图像中感兴趣部位的温度,但数据来源是人工拍摄,自动化程度较低,而且存在感兴趣部位的定位精度较低的问题。

已有研究表明,生猪热红外图像的耳部区域最大温度及平均温度均保持了与生猪直肠体温较好的相关性[17-18]。本文在前期部署的设施猪场生猪体温红外巡检系统基础上[19],将红外热成像技术与计算机视觉技术结合,选取生猪耳部区域作为其体温的代表区域,提出一种基于红外热成像的生猪耳温自动提取算法(Infrared thermography based pigs’ ear temperature extraction,IT-PETE),自动提取生猪耳部温度,以实现对设施猪场内生猪体温的快速监测,为后期构建猪只健康监测预警模型提供技术支撑。

1 材料与方法

1.1 生猪热红外图像数据的采集

本文数据采集于广东省云浮市新兴县温氏东成种猪场,于2018年7—9月进行了试验,现场装备部署及拍摄效果如图1所示。试验猪舍的限位栏长220 cm、宽75 cm、高106 cm。采集设备为FLIR A310型红外热像仪,并在其内置25°镜头的基础上加装了一个视场角90°的镜头,部署于滑轨移动设备上,距离地面200 cm,可拍摄栏位共计28个。热像仪的红外分辨率为320像素×240像素。红外热像仪在试验环境下进行严格校准,试验猪场内的环境因子数据是可调控的并且相对稳定,但具体拍摄时仍需要对猪只个体辐射率和拍摄距离等参数进行校正优化。根据文献[20]的研究,通过多次拍摄测温,将猪只个体辐射率调准为0.95能够稳定反映生猪的体温。实际拍摄时,猪只姿态变化一定程度上影响拍摄距离。但将拍摄距离从115 cm调整到140 cm后,同一测量点的温度误差不超过0.1℃,测量结果如表1所示,试验结果表明不同拍摄距离对设备测温效果影响不显著。因此,根据猪只大致高度将拍摄距离设置为120 cm。经过试验校准后,本文红外设备获取的温度在误差允许范围内能够反映生猪的体温,能够建立有效的温度分布热像图和获取猪只体温。

表1 不同拍摄距离下部分温度数据

根据采集到的红外热像图,构建包含2 400幅生猪红外热像图的数据集。样本来自于28个栏位不同生猪个体。其中,训练集和验证集共2 000幅图像用于训练和筛选模型,400幅用于验证模型性能。在进行数据集标注前对数据集预处理,再使用LabelImg标注工具对数据集进行猪只个体及耳部区域的标注,如图2所示。为避免非目标区域对目标区域分割和温度提取造成干扰,进行标注时尽可能使包含耳部区域的最小外接矩形作为标注框。

1.2 基于红外热成像的生猪耳温自动提取算法

本文提出的基于红外热成像的生猪耳温自动提取算法包括生猪热红外图像预处理、生猪耳部提取、生猪耳温自动提取3个阶段,其中生猪耳部提取又分为基于YOLO v4[21]的生猪个体和耳部区域检测、生猪个体和耳部判定、基于形态学的生猪耳部区域分割3个步骤,算法流程图如图3所示。

1.3 基于拉普拉斯算子的生猪热红外图像预处理

在训练目标检测模型前,对热红外图像进行裁剪等预处理,可以减少噪声,辅助人工标注数据,同时有助于目标检测器更好地学习特征。对图像裁剪的基本思路是保留图像中间位置限位栏的目标猪只,将短边上下各裁剪30个像素宽度,消除非目标栏位猪只对后续耳部检测的干扰。原始图像由分辨率320像素×240像素变为320像素×180像素。之后使用中心数为5的4邻域拉普拉斯算子对图像锐化处理,使得猪只耳部边缘轮廓信息更加突出明显,以减弱红外热像图存在边缘模糊、对比度较低等问题,有利于人工标注和机器识别。预处理过程如图4所示。

1.4 基于YOLO v4和形态学的生猪耳部检测

在所采集的热红外图像中,生猪由于个体差异、姿态变化等因素导致其耳部形状不规则,如图5所示。使用传统的目标检测算法难以设计出具有高鲁棒性的图像特征用于猪只耳部的检测。相较于人工设计特征,深度学习方法通过深层次的神经网络自动提取目标特征,使其在目标检测领域取得了传统机器学习无法比拟的检测精度。采用基于深度卷积网络的目标检测器YOLO v4识别猪只耳部区域[21]。YOLO(You only look once)是一种一阶段的目标检测器,将目标检测问题转换为回归问题,具有检测速度快的特点[22]。YOLO v4经过改进[21-24],使用CSPDarknet53作为骨干网络,SPP和PAN作为特征融合结构,并使用了如CuMix和Mosaic数据增强、DropBlock正则化、类标签平滑等训练技巧提高了目标检测的精度。

基于耳部区域的图像,采用形态学方法对猪只耳部进行分割,以提取耳部轮廓,去除背景噪声。具体算法过程如下:

输入:经过图像预处理的生猪热红外图像I。

输出:经过分割的耳部区域二值图像Ifinal及该区域在图像I中的左上角坐标(xe1,ye1)、右下角坐标(xe2,ye2)。

(1)将热红外图像I输入到YOLO v4目标检测器。

(2)经过YOLO v4目标检测器处理,得到有且仅有一个分类为pig且置信度最高的目标猪只检测框,若干个(不大于6个)分类为ear的耳部检测框,将检测框坐标由(x,y,w,h)转换为左上角(x1,y1)右下角(x2,y2)表示。

(3)遍历计算每个耳部检测框,判断其质心是否包含于目标猪只检测框,若是则输出此耳部检测框;否则舍弃该检测框。

(4)对输出的每个耳部检测框在图像I上裁剪对应区域图像Iear。

(5)将图像Iear转换成灰度图Igrey。

(6)使用Otsu算法计算图像Igrey的二值分割阈值b,并根据b计算得到二值化图像Ibw。

(7)对图像Ibw进行开操作,消去图像噪点,使轮廓光滑,得到图像Iopen。

(8)基于图像Iopen使用小面积填充方法消除内部孔洞得到图像Ifinal。

步骤(2)使用YOLO v4目标检测器对猪只耳部和猪只个体进行了识别,目的是通过猪只个体区域来确保耳部区域属于目标栏位的猪只,避免其它栏位的猪只耳部对结果造成干扰。

1.5 基于耳部分割图像的生猪耳温自动提取

根据生猪耳部提取算法得到生猪耳部分割图像和原始热红外图像对应的温度矩阵对耳部温度进行自动提取。算法提取的耳部温度包括温度最大值tmax、温度平均值tmean。当猪只呈现不同的姿态或者行为时,耳部区域存在遮挡问题,热像仪捕获的热红外图像中目标栏位猪只耳部区域存在1个、2个或不存在的情况。只考虑检测到耳部区域的情况,设初始热红外图像温度矩阵为M,检测到的耳部区域左上角坐标为(x1,y1),右下角坐标为(x2,y2),耳部温度提取流程如下:

输入:经过分割的耳部区域二值图像Ifinal,耳部区域左上角坐标(xe1,ye1)、右下角坐标(xe2,ye2)和温度矩阵M。

输出:耳部温度集合Tear,耳部温度平均值tmean和耳部温度最大值tmax。

(1)根据耳部区域的左上角和右下角坐标计算其在图像预处理前的实际坐标(x′e1,y′e1)、(x′e2,y′e2)。

(2)将实际坐标(x′e1,y′e1)、(x′e2,y′e2)映射到温度矩阵,提取出耳部区域的温度矩阵T。

(3)遍历耳部区域二值图像Ifinal每个像素点,如果坐标为(x,y)的像素点值为1,则将该点对应的温度添加到耳部温度集合Tear;否则,舍弃该点对应的温度值。

(4)计算耳部温度集合Tear的平均值tmean。

(5)计算耳部温度集合Tear的最大值tmax。

2 试验

2.1 试验配置

试验所用处理平台为台式计算机,处理器为Intel Xeon E7-8870,64 GB内存,GPU采用NVIDIA TESLA K80。运行环境为Ubuntu 16.04LTS 64位操作系统,编程语言使用Python 3.7,深度学习框架使用Pytorch 1.7, 配备CUDA 10.0版本并行计算架构与cuDNN 8.0版本深层神经网络加速库。

2.2 生猪耳部区域检测模型训练结果

本文标注了训练集和验证集共2 000幅图像用于YOLO v4的训练,并采用5折交叉验证的方法筛选模型,将数据随机划分为5份,每份400幅图像,即每次训练有训练集图像1 600幅,验证集图像400幅。生猪耳部区域检测器基于YOLO v4预训练模型进行训练,每次训练迭代1 000个迭代周期,每迭代10个迭代周期保存1次模型。训练设置批尺寸为4,即训练集1 600幅图像,每训练迭代1个迭代周期,需要迭代400次。YOLO v4的初始训练参数设置如表2所示。训练结果如表3所示。

表2 YOLO v4训练参数设置

表3 生猪耳部区域检测模型训练结果

表3中losstrain为训练时模型在训练集上的平均损失值,lossval为在验证集上的平均损失值,括号内数字为迭代周期,lossvalmin为模型在验证集上最小损失值,Epochval为该损失值对应的迭代周期的次数。

进行多次训练后,发现YOLO v4迭代约100个迭代周期时就已经收敛。根据表3可知,第4折交叉验证,训练迭代到740个迭代周期时在验证集上取得最小损失值3.944 5。该次训练损失函数的收敛情况如图6所示,模型在训练集上的损失函数已经收敛。因此选用训练750个迭代周期后得到的模型作为生猪耳部区域检测模型进行后续试验。

2.3 生猪耳部区域检测模型性能分析

为验证生猪耳部检测算法中YOLO v4目标检测器的检测精度和速度,本文标注了测试集400幅图像用于评估,同时训练了Faster R-CNN[25]、SSD[26]检测器进行对比试验。本文检测器的训练和测试都在Pytorch深度学习框架下进行。

试验采用精确率(P)、召回率(R)、平均精度(mAP)、F1值、交并比(IoU)和单帧图像的平均检测时间评估模型性能。

3种检测模型的检测结果如图7所示。3种检测模型均能正确检测出猪只个体,当视野中出现上下栏位的生猪时,当前栏位的生猪个体仍然能被检测出来。在耳部区域检测方面,YOLO v4和Faster R-CNN检测模型能将目标猪只的2个耳朵都检测出来,SSD存在明显的检测丢失现象。同时,YOLO v4的分类置信度明显高于Faster R-CNN和SSD。

3种模型在测试集上的性能如表4所示。在检测精度方面,YOLO v4各项评估指标的得分均优于Faster R-CNN和SSD。Faster R-CNN对猪只个体的检测精度与YOLO v4相当,但猪只耳部的检测精度为95.6%,低于YOLO v4的97.6%。SSD在猪只个体及其耳部区域的检测精度都略显不足。在IoU方面,YOLO v4的评分为90.5%,比Faster R-CNN和SSD高2.9个百分点和8.2个百分点,表明YOLO v4在检测框的预测上更贴近人工标注,有利于后续生猪耳部分割和温度提取等操作的执行。试验表明,YOLO v4检测模型相较于Faster R-CNN和SSD有更强的检测性能,更能满足生猪耳部区域定位识别的需求。

表4 3种模型在测试集上的性能检测结果

在检测速度方面,YOLO v4处理1幅热红外图像的平均时间为12 ms,速度极快,优于Faster R-CNN的处理时间,同时也比SSD快。本研究中,部署于生猪养殖场的红外热像仪拍摄热像图时需要停顿1 s,而生猪耳部分割和温度提取过程处理耗时可忽略不计,YOLO v4检测模型能够满足实时提取耳部温度的需求。

2.4 生猪耳温自动提取性能分析

为评估本文算法的整体性能以及验证其提取的耳部温度最大值和平均值是否能直接代表人工统计数据,从测试集随机选取20头猪的热红外图像,人工提取40个猪只耳部轮廓,基于温度矩阵统计轮廓内部温度的平均值和最大值作为真值,与算法提取的生猪耳温结果进行对比。特别说明,为减少人工提取耳部轮廓时的主观误差,由3人分别对耳部轮廓进行提取,分别计算耳部温度并取其平均值作为真实值。

基于热红外图像的生猪耳部区域检测实例如图8所示,检测到目标猪只的2个耳部区域后,使用生猪耳部区域分割方法提取其耳部像素点,得到耳部轮廓的二值图像,过程如图9所示。结合温度矩阵和耳部轮廓的二值图像,提取耳部温度的最大值和平均值。人工提取的温度数据与算法结果的相对误差计算公式为

(1)

式中T——人工测量温度,作为真实值

t——算法提取温度,作为测量值

e——相对误差

试验结果如表5所示,其中Tmax和Tmean分别是人工提取的耳部区域温度最大值和平均值,emax和emean是本文算法结果与人工测量值取得的最大值与平均值相对误差。

表5 耳部温度提取结果

由表5可知,通过本文算法提取的耳部温度最大值与人工提取的数据一致,而平均值略有浮动,但相对误差在合理范围内。由于耳部分割边缘点选取略有偏差,统计对应温度的平均值时会有偏差,而最大值总能包含在耳部轮廓内,因此取值基本一致。

为评估算法在温度检测上的准确性,统计所有生猪耳部温度数据的算法结果的相对误差。结果表明,算法提取的耳部区域最大温度相对误差最大为1.4%,平均相对误差为0.1%;本文算法提取的耳部区域平均温度相对误差最大为2.8%,平均相对误差为0.6%。该结果为可接受范围,表明本文算法提取的生猪耳部温度有较高的准确性。

进一步将人工提取的温度数据与算法结果进行相关性分析,试验结果如图10、11所示。由图10、11可知,人工统计结果与算法提取的耳部区域温度最大值的决定系数为0.984 9,与温度平均值的决定系数为0.911 9,相关性较好,表明本文算法一定程度上可以替代人工提取生猪红外热像图中的耳温,表明本文算法基于生猪的红外热图像自动提取耳温的可行性。

3 结束语

提出一种基于红外热成像的生猪耳温自动提取算法。算法基于YOLO v4和形态学对热红外图像中的生猪耳部进行提取,并结合耳部分割图像和温度矩阵自动获取耳部区域温度的最大值和平均值。构建了用于热红外图像的生猪个体和耳部区域的YOLO v4检测模型,耳部检测的准确率为97.6%,单幅图像平均检测时间为12 ms。试验结果表明,人工统计耳温和本文算法提取的耳温具有高度相关性,且本文算法提取结果的相对误差在可接受范围内。本文算法能够满足实时检测耳部温度的要求,可为猪只体温自动化监测及预警提供技术支撑。

猜你喜欢

耳部猪只红外
猪气喘病的防治措施分析
深度学习在猪只饲养过程的应用研究进展
基于姿态与时序特征的猪只行为识别方法
网红外卖
猪呼吸道疫病的发生原因与防控方法研究
耳部用药安全须知
闪亮的中国红外『芯』
8路红外遥控电路
TS系列红外传感器在嵌入式控制系统中的应用
右耳撕脱伤再植修复术围手术期护理