基于改进YOLO v5s的轻量级奶牛体况评分方法

2023-06-20 04:41黄小平郭阳阳
农业机械学报 2023年6期
关键词:体况轻量化奶牛

黄小平 冯 涛 郭阳阳 梁 栋

(1.安徽大学互联网学院, 合肥 230039; 2.农业生态大数据分析与应用技术国家地方联合工程研究中心, 合肥 230039)

0 引言

近年来,畜牧养殖业逐渐成为我国农业的支撑产业之一,规模化养殖逐渐取代了小型零散型养殖方式[1]。在规模化养殖中,动物的身体健康信息不仅有利于智慧养殖、提高动物福利,还有利于提高产品的品质。其中,奶牛作为畜牧养殖中的代表,其体态健康状况与牛奶品质直接相关[2]。体况评分(Body condition score, BCS)作为评价动物体态健康的重要措施,是对奶牛脂肪沉积程度和能量代谢状况的综合评估,也是检验和评价牧场饲养管理水平的一项实用指标[3-5]。

传统的奶牛体态监测往往通过人工观察测量的手段,易引起牛只应激反应,且主观性强、误差大,无法满足规模化养殖实时高效的发展需求[6-7]。随着深度学习技术的发展,其在视频图像处理过程中实现了快速、批量化处理,可满足现代化牧场的需求[8]。目前,在规模化养殖中,将基于深度学习框架以及衍生的改进方法应用于实际饲养环境中已成为研究趋势[9-10]。在动物体况评价研究中常采用3D或2D传感器设备来获取奶牛躯体图像,通过深度学习技术提取与体态相关区域特征,并构建和生成评价模型。文献[11]在通道上方安装Kinect v2来获取奶牛行走的3D图像,采用SqueezeNet模型来估计BCS,结果表明,在实际BCS的0.50点偏差内实现了97%的整体准确度。文献[12]基于3D特征图提出了一种EfficientNet网络的奶牛体况评分方法,试验结果表明,该模型的识别分类准确率为73.12%,识别误差在0.25内的图像占比为98.6%。上述相关研究中实现了奶牛体况评价,但3D设备成本高,3D数据处理耗时且对设备性能要求较高,这导致在实际农场中推广有较大难度。基于2D设备的体况评分工作取得了重大进展。文献[13]采用R-CNN算法构建奶牛体况评价模型,对奶牛尾部图像进行评估,试验结果表明,采用VGG19作为R-CNN特征提取层的性能最高,总体准确率为67.39%。文献[14]采用Faster R-CNN网络对奶牛体况相关的尾部图像进行识别定位与分类,相比SSD算法其检测精度略高,检测准确率为84%,BCS平均准确率为70%。在奶牛体况评分中采用2D摄像机虽降低了成本,但传统深度学习模型复杂度较高,故对计算设备的算力有较高的要求。此外,实际环境复杂,存在光照变化、运动模糊、遮挡等因素,模型的实际应用仍需要进一步评估。故在饲养环境中,实现实时高效检测奶牛身体区域并获取BCS值仍具有难度,且检测算法部署于低算力设备的可行性和应用性仍需要进一步探索。

模型轻量化处理可减小网络模型的占比和模型参数量,提高模型的执行效率,因此得到了广泛关注[15]。其中相关学者在YOLO系列模型中进行轻量化处理,实现了果实目标区域的检测[16-18],大幅降低了计算量和模型体积。此外,为提高复杂环境下目标区域的检测准确率,区域特征的有效表达是重要前提。针对图像样本中含有大量无关信息问题,目前常采用引入注意力机制方式,以提高模型对目标区域的关注。该模式在畜牧目标检测中得到了应用[19]。综上可知,对深度学习模型轻量化处理并引入注意力机制的方案是可行的,但针对于奶牛体况评价模型仍需进一步研究可部署于实际饲养环境并推广的模型。

根据现代牧场发展需求,本文采用2D摄像机获取奶牛尾部区域,并基于YOLO v5s模型提出一种轻量级奶牛体况评分方法。首先,针对轻量化的需求,采用融入坐标注意力机制的MobileNetV3网络来替代YOLO v5s的主干网络,在降低模型复杂度的同时增强模型对牛尾区域特征的提取能力。其次,YOLO v5s预测层采用高效交并比损失,以提升模型回归速度和目标预测框精度,实现模型整体性能的优化。为了进一步验证本研究方法的鲁棒性和应用性,在构建的复杂多样性的样本集下进行验证分析,并在实际牧场中进行应用评估。

1 材料与方法

1.1 数据采集

图像视频采集于安徽省六安市华好生态养殖有限公司与江苏省淮安市盱眙卫岗牧业有限公司,采集平台如图1所示。将海康威视网络相机安装在挤奶通道上方,距地面2.4 m,记录奶牛通过通道的俯视视频。采集视频分辨率为1 297像素×720像素,存储格式为MP4。通道宽度为1 m,有利于奶牛排队通过,避免了视频中奶牛拥挤、关键部位遮挡等问题。采集样本示例如图1c所示。

1.2 数据集构建

相关研究表明,奶牛尾根区域是其体膘储备的主要部位,该部位的体况评估有利于判断奶牛的脂肪储备和健康状况[20]。故以奶牛尾部区域为研究区域,结合规模养殖环境中奶牛体况生长发育周期,构建了奶牛BCS数据集。泌乳期的奶牛最优体况评分在3.25~3.75之间[21]。由于泌乳期的奶牛会消耗其体内能量储备来增加产奶量,导致体况评分出现0.5~0.75的浮动,故将BCS间隔设置为0.25进行分类。

评分为1.0和2.0的奶牛,其营养缺乏且体况极差,在当下规模化养殖场中很难找到;此外,体况评分在4.5~5.0之间的奶牛属于高危牛群,易引发多种疾病,严重降低牧场经济效益。故规模化养殖场中的奶牛体况评分数值通常分布在3.25~4.25之间。通过对视频数据筛选,最终获取包含300头奶牛在自然环境下的体况图像,共8 972幅。结合动物医学专家的评分经验,采用LabelImg软件对奶牛尾部区域进行标注,按BCS为3.25、3.50、3.75、4.00、4.25共5个样本类别进行分类,样本类别数据集如图2所示。

奶牛BCS类别示例如图3所示,可见随着BCS的递增,其尾部的形状逐渐趋于饱满。数据集中的5个类别数据分别按照8∶2的比例随机划分为训练集和测试集,其中训练集样本为7 178幅,测试集样本为1 794幅。

图3 奶牛BCS类别示例Fig.3 Example of BCS category for dairy cow

为进一步验证本文模型的鲁棒性和泛化性,从测试集中的5个类别中分别按50%比例随机抽取图像做模糊化处理(模糊核K=32),常规与模糊效果如图4所示。

图4 图像变换效果对比Fig.4 Comparison of image transformation effects

2 奶牛体况评分方法

2.1 YOLO v5s目标检测模型

YOLO v5为一种单阶段目标检测算法,主要包括4部分:① Input输入层:采用Mosaic数据增强,提高训练样本量,增加样本多样性。② Backbone主干网络层[22-24]:采用多种特征提取模块对奶牛区域进行特征提取并生成目标的语义信息等。③ Neck特征融合层[25]:降低网络深度同时加强奶牛尾部特征信息的融合能力。④ Prediction输出层:采用边界框回归损失和非极大值抑制算法来提高模型对牛尾的识别准确度。其中,YOLO v5s网络是YOLO v5系列中深度最小、特征图宽度最小的网络,可应用于轻量化研究。YOLO v5s网络结构如图5所示。

图5 YOLO v5s网络结构Fig.5 YOLO v5s network structure

2.2 YOLO-MCE改进模型

针对模型轻量化的需求,本研究对YOLO v5s模型进行轻量化处理,以减小网络模型内存占用量、参数量和计算量。此外,由于样本图像中存在背景干扰信息,以及牛只背部部分区域与尾部区域的特征具有相似性,模型实际评估能力较低。故本研究在MobileNetV3网络(一种轻量化网络)中引入了坐标注意力机制(Coordinate attention network, CANet)[26]构建M3CA网络,并将M3CA作为YOLO v5s模型的轻量化主干网络,优化了模型处理速度,增强了模型对奶牛尾部区域坐标位置信息的提取能力。其次,YOLO v5s预测层采用EIoU Loss(高效交并比损失)来融合更多边界框信息,以优化收敛速度和边界框回归精度。基于YOLO v5s改进的YOLO-MCE模型网络结构如图6所示。

图6 YOLO-MCE模型网络结构Fig.6 YOLO-MCE network structure

2.2.1模型轻量化改进

MobileNet系列网络由Google团队在2017年提出,是专注于低算力设备的轻量级卷积神经网络。其中,MobileNetV3[27]结合了深度可分离卷积和倒残差结构,删除计算成本较高的网络层,融入了通道注意力机制网络SENet(Squeeze-and-excitation network)[28]。此外,MobileNetV3网络采用结构重参数化方法融合了卷积层和批量归一化层,引入易于量化模型的H_Swish激活函数,使得模型具有参数少、推理时间短等优势,使网络适用于存储空间和算力受限的设备。主干网络中的MobileNetV3结构如表1所示。

(4)

深度可分离卷积(Depthwise separable convolution, DSC)是MobileNet系列的主要特点,网络结构如图7所示。深度可分离卷积操作中采用深度卷积(Depthwise convolution, DW)和逐点卷积(Pointwise convolution, PW)对图像进行特征提取。例如,输入特征图尺寸为DF×DF×M,M为特征图通道数,卷积核尺寸为DK×DK×1,卷积核数量为N。首先输入特征图经过深度卷积操作(卷积核的数量与输入特征图通道数一致)减少了模型参数量,并生成M个特征图。其次经过逐点卷积操作(卷积核尺寸:1×1×M)将特征图进行组合,生成N个特征图,加深模型通道。可见,该卷积运算会将特征图在深度方向上进行加权组合,生成新的特征图。

图7 深度可分离卷积Fig.7 Depthwise separable convolution

深度可分离卷积参数量PD和计算量QD的计算公式分别为

(1)

(2)

常规卷积参数量PR和计算量QR的计算公式分别为

(3)

深度可分离卷积与普通卷积参数量比值RP与计算量比值RQ的计算式为

(5)

(6)

2.2.2坐标注意力机制

通道注意力机制网络仅考虑了通道之间的信息,忽略了位置信息。而坐标注意力机制网络注重特征图像中坐标信息提取。基于以上两点考虑,本方法采用高效的CANet替换MobileNetV3中的SENet构建M3CA模块,其结构如图8所示。

CANet通过把坐标位置信息嵌入通道注意力,对输入尺寸为C×H×W的特征图X,采用平均池化处理生成水平方向尺寸为C×H×1和垂直方向尺寸为C×1×W的特征图,C为特征图通道数,H为特征图高度,W为特征图宽度,xc为在第c个维度的特征输入,即高度h和宽度w在第c个维度的特征输出,计算式分别为

(7)

(8)

由式(7)、(8)分别沿两个空间方向进行聚合,可计算输出一对方向可知的特征图。对比SENet中全局池化压缩方式,该方式可获取单方向上的长距离关系,同时保留另一个方向上的空间位置信息,有利于网络更准确地定位牛尾区域。

随后将特征图在空间方向进行拼接,使用1×1卷积、BN进行归一化处理,再通过非线性激活函数δ(·)进行特征转化,即

f=δ(F1((z(h),z(w))))

(9)

将f拆分为两个独立的特征矩阵f(h)和f(w),采用 1×1卷积和Sigmoid激活函数将特征矩阵维度转化为与输入X的维度一致。得出横纵2个方向上的分量,即

g(h)=σ(Fh(f(h)))

(10)

g(w)=σ(Fw(f(w)))

(11)

最终将输出的g(h)和g(w)合并成权重矩阵,计算输出式为

(12)

yc(i,j)强调了水平与垂直坐标编码相关的位置信息,将奶牛尾部特征横纵方向的位置信息精确保留,有助于模型更好定位和识别牛尾区域,使得特征提取网络获取更大区域的信息且避免了更大的计算开销。

2.2.3边界框回归损失函数

EIoU Loss[29]将纵横比的影响因子拆开,分别计算目标框和锚框的宽高,考虑了重叠面积、中心点距离以及宽高边长真实差异问题。EIoU Loss对宽高预测结果进行惩罚的损失函数式为

(13)

式中IoU——边界框与真实边界框的交并比

b、b(gt)——预测边界框、真实边界框的中心点坐标

ρ2(·)——欧氏距离

cw、ch——包围两个边界框的最小的矩形框的宽度、高度

由3部分组成,包括重叠损失LIoU、中心距离损失Ldis、宽高损失Lasp。本方法在预测层采用EIoU Loss,使模型在回归过程专注于高质量锚框,加速收敛提高回归精度。

3 试验平台及模型评价指标

3.1 试验平台与对比模型

本试验在Ubuntu 20.04操作系统和NVIDIA RTX3080显卡下,通过Pytorch深度学习框架来实现模型的搭建、训练和验证,使用CUDA 11.3计算架构,同时将CUDNN添加到环境中加速计算机计算能力。改进模型试验过程中样本图像分辨率为640像素×640像素,训练批次为16,初始学习率为0.01,初始动量为0.937,所有参照模型均按此参数训练300个epoch。测试阶段参数交并比(IoU)设置为0.5,置信度阈值设置为0.5。试验过程中采用Mosaic数据增强,扩充试验样本同时增强模型的鲁棒性和泛化能力。同时,为了验证YOLO-MCE算法的性能,与Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s进行对比分析。试验平台如表2所示。

表2 试验平台Tab.2 Experimental platform

3.2 评价指标

本研究选择目标检测模型中常用的评价指标:精度(Precision,P)、召回率(Recall,R)、平均精度(Avarge precision, AP)、平均精度均值(Mean avarge precision, mAP)、模型内存占用量、参数量和计算量,对改进后的模型进行综合评价。

精度和召回率衡量了模型对奶牛尾部样本BCS分类的能力。AP为不同BCS类别的平均精度;mAP为BCS类别下的AP值总和的平均值,衡量模型在所有BCS类别上的检测精度。

模型内存占用量、参数量和计算量是深度学习训练中衡量模型复杂度的指标。模型内存占用量是衡量模型所占用存储空间的参数。三者数值越小,越容易移植模型到低算力设备中。

4 结果与分析

4.1 轻量化处理对比

为验证改进模型轻量化处理后的性能,在奶牛BCS数据集基础上,将改进模型YOLO v5s-MobileNetV3-CA-EIoU(YOLO-MCE)与YOLO v5s、YOLO v5s-MobileNetV3和YOLO v5s-MobileNetV3-CA模型进行了对比试验分析,其中对比模型采用CIoU Loss。由表3(表中mAP@0.5表示IoU为0.5的平均精度均值)得知,在主干网络中引入MobileNetV3网络后,YOLO v5s-MobileNetV3模型相较于原YOLO v5s模型,其复杂度大幅度下降,模型内存占用量为2.95 MB,计算量为2.3×109,但其检测精度、召回率和平均精度均值均有所降低,其原因在于轻量级网络参数较少且模型深度较低,导致对奶牛尾部特征细节提取能力较低,即损失部分检测精度换取了模型的轻量化。故为了进一步提高模型检测性能,将引入坐标注意力机制的M3CA网络融入YOLO v5s主干网络,YOLO v5s-MobileNetV3-CA模型内存占用量为2.28 MB,计算量为2.0×109,相较YOLO v5-MobileNetV3,该模型的复杂度得到进一步下降,其检测精度和mAP@0.5均有所改善。预测层采用EIOU Loss后,YOLO-MCE模型与YOLO v5s-MobileNetV3-CA模型的复杂度一致,YOLO-MCE模型的检测精度为93.4%,召回率为85.5%,mAP@0.5为91.4%,较原YOLO v5s模型,其检测精度降低0.2个百分点,召回率提升3.7个百分点,平均精度均值提升2.1个百分点,模型内存占用量压缩83.4%。由此得知,YOLO-MCE模型实现了模型的轻量化,并在保持较高检测精度的同时大幅降低了模型的复杂度。

表3 消融试验Tab.3 Ablation experiment

4.2 不同模型下奶牛体况评分对比

本研究在奶牛BCS数据集上进一步将YOLO-MCE与Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s模型进行对比分析。由表4可以得知,YOLO-MCE模型mAP@0.5为91.4%,模型内存占用量为2.28 MB,相比Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s模型,其mAP@0.5分别提升22.4、9.8、15.6、2.1个百分点;其模型内存占用量分别缩小1/137.5、1/45.6、1/141.7和1/6.0。由此可知,YOLO-MCE模型相比Faster R-CNN、SSD、YOLO v3-SPP和YOLO v5s模型,其在奶牛BCS数据集上的整体性能最优,且模型复杂度最低,有利于改进的奶牛体况评分模型部署于低算力设备。

表4 各模型检测性能对比Tab.4 Comparison of detection performance of different models

4.3 不同BCS类别下检测结果

本研究选取置信度阈值为0.5,IoU阈值为0.5。YOLO v5s和YOLO-MCE模型的精度-召回率曲线如图9所示。可见在BCS为3.75、4.00、4.25的类别下YOLO-MCE(88.2%、92.2%、95.5%)的分类效果优于YOLO v5s(86.4%、89.1%、88.5%);BCS为3.25、3.50的类别下,YOLO-MCE(92.1%、89.0%)的结果略低于YOLO v5s(92.5%、90.2%)。改进后的模型在类别识别分类的总体性能得到了改善。

图9 YOLO v5s与YOLO-MCE 的精度-召回率曲线Fig.9 P-R curves of YOLO v5s and YOLO-MCE

为验证模糊数据集下模型的检测性能,分别对比分析了BCS不同类别下的YOLO v5s和YOLO-MCE的检测效果。各类别模糊样本下的BCS检测结果如图10所示。由图10得知,引入坐标注意力机制和EIoU Loss的YOLO-MCE模型,更好地结合了牛尾区域的位置信息,从而具有良好的特征提取、特征融合以及高质量锚框生成能力。降低了漏检率、提高了运动模糊状况下的检测性能以及目标边界框定位能力,在牛尾区域模糊的识别分类精度上有所改善。针对YOLO v5s在模糊样本下出现的漏检(图10a、10c、10g)和误检(图10e、10i)情况,改进模型均有所改善,如图10b、10d、10f、10h、10j所示。试验结果表明,改进模型相较原模型在模糊样本下具有更好的检测和泛化能力。

图10 YOLO v5s和YOLO-MCE在模糊样本下 各BCS的检测效果Fig.10 Detection results of YOLO v5s and YOLO-MCE in each BCS value under motion blur sample

为了更直观体现模型的注意区域,本研究借助梯度加权类激活映射方法(Gradient-weighted class activation map, Grad-CAM)[30]对牛尾重要特征区域进行颜色可视化。在模型预测层中的最后一个卷积层后引入Grad-CAM方法,直观展示了模型在牛尾检测中注意力关注区域的分布情况,如图11所示。奶牛尾部沟壑区域的凹陷程度对奶牛尾部识别分类做出了关键决策。而在BCS为3.25、3.50和3.75时,原模型对牛尾特征感兴趣区域较为集中,BCS为4.00和4.25时,感兴趣区域较为分散,未能正确学习到牛尾关键特征。而改进模型的感兴趣区域覆盖范围更广,针对牛尾关键特征区域的定位更加精准,使模型对牛尾特征信息的学习更加充分,从而提升了实际检测效果。

图11 YOLO v5s和YOLO-MCE的Grad-CAM热力图对比Fig.11 Comparison of Grad-CAM heat maps of YOLO v5s and YOLO-MCE

4.4 应用案例

本模型已部署于盱眙卫岗牧业有限公司奶牛养殖场,其工控机配置为CPU:Intel12thGenIntel(R)Core(TM)i5-12400F;GPU:NVIDIA GeForce RTX 3060, Microsoft Basic Render Driver;内存:16 GB;Windows 11系统。工控机现场测试如图12所示。监视界面中可实时监测奶牛BCS数值。此外,牧场电子耳标记录奶牛ID信息,可进一步将ID信息与个体BCS数值相关联。

图12 工控机现场测试图Fig.12 Field test diagram of industrial computer1.挤奶通道 2.2D摄像机 3.硬盘录像机 4.工控机 5.监控界面

5 结论

(1)提出了一种轻量化奶牛体况评价模型。将融入坐标注意力机制的MobileNetV3网络作为YOLO v5的主干网络,优化了目标检测模型的处理速度,并加强了模型对奶牛尾部区域空间和位置信息的提取能力。预测层采用EIoU Loss来融合更多的边界框信息,优化了收敛速度和边界框回归精度。整体提高了模型在奶牛体况评分领域的检测性能和实用性。

(2)改进模型的目标检测精度为93.4%,召回率为85.5%,mAP@0.5为91.4%,模型内存占用量为2.28 MB,参数量为1.02×106,计算量为2.0×109。改进的检测模型具有较低的模型复杂度,同时具备较高的牛尾区域识别与体况评估性能。

(3)所提方法在检测精度与实时性较高的情况下,可极大程度地降低模型对硬件设备算力的依赖。通过在实际场景中的测试,本文方法可实现对奶牛体况的高效评分。

猜你喜欢
体况轻量化奶牛
乍暖还寒时奶牛注意防冻伤
汽车轻量化集成制造专题主编
夏季奶牛如何预防热应激
奶牛产后不同体况对产奶量和亚临床酮病的影响
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
奶牛吃草
母猪体况卡尺的开发
藏母羊妊娠后期补饲时间对其体况和羔羊初生重的影响分析
瞄准挂车轻量化 锣响挂车正式挂牌成立