年悦, 赵凯旋, 姬江涛. 基于改进DeepLabCut模型的奶牛滑蹄检测方法[J]. 智慧农业(中英文), 2024, 6(5): 153-163.
Citation:NIAN Yue, ZHAO Kaixuan, JI Jiangtao. Cow Hoof Slippage Detecting Method Based on Enhanced DeepLabCut Model[J]. Smart Agriculture, 2024, 6(5): 153-163.
官网全文在线阅读
知网阅读
基于改进DeepLabCut模型的奶牛滑蹄检测方法
年悦, 赵凯旋, 姬江涛*
(河南科技大学 农业装备工程学院,河南洛阳 471000,中国)
摘要:
[目的/意义]为解决奶牛在行走过程中出现滑蹄姿态无法自动识别检测的问题,基于深度学习的方法对奶牛身体关键点进行定位分析,实现对奶牛滑蹄姿态的自动检测。
[方法]选取奶牛四蹄及头部作为奶牛身体关键点,基于DeepLabCut(DLC)对奶牛四蹄及头部关键点进行定位,首先选取ResNet系列、MobileNet-V2系列、EfficientNet系列等10个网络模型替换DLC的主干网络,最终选取准确率最高的ResNet-50作为DLC的主干网络,随后选择轻量级的卷积块注意力模块(Convolutional Block Attention Module, CBAM)嵌入ResNet-50的网络结构中,完成对ResNet-50网络模型的改进。通过改进后的模型得到奶牛身体关键点坐标,绘制奶牛四蹄及头部运动曲线。利用奶牛身体关键点运动曲线进行分析,提取奶牛滑蹄姿态的特征参数Feature1、奶牛滑蹄距离的特征参数Feature2。基于决策树对提取的奶牛滑蹄姿态特征参数进行模型的训练和验证。利用提取的奶牛滑蹄特征参数对奶牛的滑蹄距离进行计算,同时人工对奶牛滑蹄距离进行标定,与预测的滑蹄距离进行比较。
[结果和讨论]改进后的ResNet-50网络相较于ResNet-50在验证集的定位准确率提高了9.7%,相较于YOLOv8s-pose的定位精准度提高了1.06 pixels,与手动标识的身体关键点之间的均方根误差(Root Mean Square Error, RMSE)仅为2.99 pixels。采用10折交叉验证对奶牛滑蹄检测模型的效果进行评估,结果表明,该模型的平均准确率、精确度、召回率和F1分数分别为90.42%,0.943,0.949和0.941。基于特征参数Feature2计算的奶牛滑蹄距离与人工标定奶牛滑蹄距离的RMSE仅为1.363 pixels。
[结论]融合CBAM模块改进的ResNet-50网络模型对奶牛身体关键点定位的准确率较高,基于滑蹄判断特征参数Feature1和滑蹄距离检测特征参数Feature2建立的奶牛滑蹄判断模型和奶牛滑蹄距离预测模型与人工检测的结果相比,都有较小的误差,这表明该方法有较好的准确性,可以为奶牛滑蹄自动检测工作提供技术支持。
关键词: 深度学习;奶牛滑蹄;ResNet-50;决策树;CBAM注意力机制;决策树
0
引 言
奶牛是中国畜牧业的重要组成部分,其生产性能和经济效益关系到畜牧业的发展和现代化水平。奶牛在行走过程中出现滑蹄可能由很多因素引起,其中奶牛的蹄部健康问题最为常见,随着奶牛养殖场集约化程度的提高,奶牛活动空间逐渐减小,活动地面硬化,奶牛蹄肢发病率呈上升趋势。由于大部分奶牛场都采用水泥硬化牛舍,奶牛长时间站立、躺卧在硬度高的地面上,造成蹄部机械性损伤,加之夏季牛舍潮湿,病原菌滋生,奶牛热应激等因素,导致奶牛蹄部皮肤疏松、角质变软而发病。奶牛滑蹄是指奶牛行走过程中蹄部出现滑移的情况。奶牛的蹄部健康状况对其行走能力至关重要。蹄病、蹄间皮炎和其他蹄部疾病都可能导致奶牛行走时出现滑蹄或蹒跚。奶牛蹄踝脱臼、蹄膜炎或蹄角病变都可能会引起奶牛滑蹄的症状。奶牛蹄病会影响奶牛的食欲和行走能力,奶牛摄取饲料减少进而导致产奶量降低,奶牛蹄部疼痛会导致奶牛活动量降低,影响其内分泌系统正常工作,进而产生代谢问题。由于奶牛体型较大,后肢主要承担体重压力,奶牛一旦患蹄病,淘汰率极高,给养殖户带来较大经济损失。饲养环境不合适也会影响奶牛的行走姿态,如地面硬度高、平整度差、湿度高等,环境过于潮湿会使得奶牛蹄部打滑。不论是奶牛蹄部出现病变还是饲养环境不佳,这些因素最终都会影响奶牛的产奶量,给奶牛养殖户造成较大的损失,影响奶牛的经济效益。
近年来,国内外学者中较多人都是使用机器视觉技术在奶牛运动过程提取相关特征参数对奶牛蹄病引起的跛行行走状态进行研究。机器视觉技术具有无接触、免应激等特点。阴旭强提出了一种基于视频分析的无接触奶牛运动行为识别算法,以期实现对奶牛躺卧、站立、行走、饮水和进食五种基本运动行为的识别,最终奶牛行为识别精度为97.87%。康熙等提出了一种基于热红外视频的奶牛跛行运动特征获取与检测的方法,利用热红外相机拍摄奶牛行走视频并进行奶牛跛行运动特征的提取检测,奶牛跛行检测精度达到90.0%。宋怀波等提出了一种基于正态分布背景统计模型、局部循环中心补偿跟踪模型和线性斜率最近邻分类(Distilling Data of K-Nearest Neighbors, DSKNN)技术的奶牛跛行检测方法,利用正态分布背景统计模型(Dormal Background Statistical Model, NBSM)对奶牛序列图像中的目标奶牛像素区域进行分割,通过线性斜率最近邻分类模型提取目标奶牛的头部、颈部,以及与颈连接的背部轮廓线拟合直线斜率数据,发现通过头部、颈部及背部连接处的拟合直线斜率特性可以正确检测奶牛跛行,K邻近算法(K-Nearest Neighbors, KNN)可以取得更好的检测结果。
目前国内外学者对奶牛蹄病引起的跛行行走状态研究较多,而对滑蹄现象研究较少。奶牛出现滑蹄行为代表养殖环境恶化及奶牛运动性的降低,如奶牛挤奶过道上粪污严重或场地湿滑会导致奶牛出现滑蹄乃至摔伤,给农户造成不必要的经济损失。因此,滑蹄检测是一种对奶牛养殖场地的评价指标,是一种预防、避免养殖环境给奶牛造成危险因素的检测手段。同时,奶牛也可能是因为一些蹄部疾病,如蹄膜炎、蹄角病变等导致出现滑蹄现象。本研究基于深度学习的方法,定位奶牛身体关键点,提取奶牛在滑蹄过程中的特征参数,旨在提供一种识别奶牛滑蹄姿态的检测方法,对监测奶牛蹄病、运动状态,以及饲养场地条件具有重要意义。
1
材料与方法
1.1 数据采集与预处理
实验数据采集于2016年8月到11月的美国肯塔基大学奶牛场,采集对象为处于泌乳期的荷斯坦奶牛。采用尼康D5200相机,配备35 mm镜头,感光度设置为400,并采用自动曝光和自动对焦模式。相机被安装在距离地面1.5 m,距离通道3.5 m的三脚架上,拍摄方向垂直于奶牛行走通道,如图1所示。为了保证视频中可以获取奶牛完整的2个运动周期,视频视野宽度约为6.8 m,帧率为59.94 fps,码率为20 Mbps。每帧图像分辨率像素为1 280(水平)×720(垂直)。本研究共采集了115段视频,每段视频的时长约为10~20 s,对应不同的奶牛,每段视频中仅有一头奶牛通过。从采集的视频数据中人工挑选出31段奶牛出现滑蹄现象的视频。从余下的84段视频中选出1 000帧图像进行奶牛头部及四蹄关键点的标注,用于模型训练。
图1 奶牛侧视行走视频示例
Fig. 1 Example of a cow walking in a sideways view
1.2 基于改进DeepLabCut模型的奶牛身体关键点定位
1.2.1 DeepLabCut
DeepLabCut(DLC)是一个用于执行各种动物姿态估计任务的工具箱。它在追踪小鼠和果蝇等动物的行为轨迹中展现出了极佳的能力,并成功应用于人类、多种鱼类、各种机器人等领域。DeepLabCut利用了Insafutdinov等先进的人体姿势估计算法之一的特征检测器。由于迁移学习和其自带的数据增强技术,如旋转、平移、翻转等,DeepLabCut即使使用较少的训练数据也能达到较好的训练效果。除此之外,其还提供了一个易于操作的界面,使用户能够更方便、更快速地训练自己的模型。
为获取最优的奶牛身体关键点检测模型,本研究选用ResNet-50、ResNet-101、ResNet-152、MobileNet-V2-0.35、MobileNet-V2-0.5、MobileNet-V2-0.75、MobileNet-V2-1.0、EfficientNet-b0、EfficientNet-b3、EfficientNet-b6共10个模型替换DeepLabCut主干网络进行模型训练。根据训练结果,从中选取定位效果最优的ResNet-50作为主干网络。ResNet-50网络中包含着49个卷积层和一个全连接层,总共有50个卷积算法,与传统的深度神经网络不同,ResNet-50引入了残差块来实现跨层连接,从而使得训练更加容易和高效。在解决梯度消失的问题上,ResNet-50网络中的残差单元起到了重要作用,在残差网络单元中可以直接将输入跨层传递,进行相同的映射之后,再与经过卷积操作的结果相加,从而避免了梯度在传递过程中的逐层衰减,有利于训练更深的网络结构。
1.2.2 CBAM注意力机制
为提高模型的泛化能力和鲁棒性引入一种轻量级的注意力模块 (Convolutional Block Attention Module, CBMA)对ResNet-50网络结构进行改进。CBAM是一种增强卷积神经网络的表征能力的轻量级注意力机制模块。CBAM包括两个独立的子模块,通道注意力模块(Channel Attention Module, CAM)和空间注意力模块(Spatial Attention Module, SAM),如图2和图3所示。通道注意力模块通过全局平均池化和最大池化提取特征,并通过多层感知机重新加权每个通道的特征,以突出重要的通道特征,抑制不重要的通道特征。空间注意力模块通过对特征图在通道维度上的最大池化和平均池化,并对拼接后的特征图进行卷积操作,重新加权每个空间位置的特征,以突出重要空间位置的特征,抑制不重要空间位置的特征。整个CBAM注意力机制模块是由通道注意力机制和空间注意力机制串连起来组成,如图4所示。
图2 通道注意力机制模块
Fig. 2 Channel attention module
图3 空间注意力机制模块
Fig. 3 Spatial attention module
图4 CBAM注意力机制模块
Fig. 4 CBAM attention mechanism module
1.2.3 融合CBAM注意力机制改进ResNet-50的网络结构
为进一步提高网络性能,本研究将CBAM注意力机制嵌入到ResNet-50网络结构的第一层卷积和最后一层卷积中,添加CBAM注意力机制改进后的网络结构如图5所示。
图5 融合CBAM模块改进后的ResNet50网络整体架构
Fig. 5 Overall architecture of the ResNet50 network improved by integrating the CBAM module
1.2.4 模型训练
使用DeepLabCut自带的标注工具进行奶牛身体关键点的标注,如图6所示。将奶牛身体的关键点定义为奶牛的四蹄及头部,标注过程中分别将奶牛的左前蹄(LF)、右前蹄(RF)、左后蹄(LH)、右后蹄(RH),以及头部(Head)标注出来。采用uniform的方式从每段奶牛行走视频中提取出15帧进行奶牛关键点的标注,总共标注1 000张数据。配置模型训练参数,训练集、测试集和验证集以7∶2∶1的比例进行划分。为改善模型的泛化能力,选用multi-animal-imgaug作为数据增强的方法,包括旋转、缩放、翻转、裁剪、亮度调整、对比度调整等。模型训练过程中,初始学习率设置为0.000 5,在7 500次迭代之后,学习率调整为0.000 1,12 000次迭代后,学习率设置为0.000 05,使用Adam优化器,关键点预测概率阈值设置为0.6,迭代次数为60 000次。DLC算法运行的编程语言是Python 3.7。采用CUDA 11.3和cuDNN 8.2.0作为深度神经网络与GPU加速库的并行计算架构。图形处理器为NVIDIA GeForce RTX 4070,内存为24 GB。中央处理器为Intel(R) Core(TM) i7-12700KF。
图6 奶牛身体关键点的标注界面及坐标轴
Fig. 6 Annotation interface and coordinate axes of cow body key points
1.2.5 评价指标
本研究选择以均方根误差(Root Mean Square Error, RMSE)作为关键点预测质量的评价指标。RMSE衡量的是测量值与真实值之间的偏差,其计算如公式(1)所示。
式中:N代表总观测次数;Xobs,i表示第i次的测量值;Xmodel,i表示第i次的真实值。
1.3 基于运动曲线的奶牛滑蹄特征参数提取
DLC支持将关键点预测的坐标信息以*.csv文件导出,完成模型训练后将奶牛出现滑蹄的视频用模型进行关键点预测,最后导出预测的奶牛四蹄和头部坐标点信息文件。后续数据处理与分析,以及滑蹄分类模型的训练与测试在MATLAB 2023b中完成。以奶牛前进方向为x轴方向,垂直于地面为y轴方向,如图6所示。利用预测的关键点坐标信息,分别绘制奶牛四蹄和头部在x轴和y轴方向上的距离随时间变化的规律,得到奶牛四蹄运动曲线和头部运动曲线。
根据所得奶牛四蹄运动曲线M(x),对其进行求导运算,得到其导函数图像,如图7所示。
图7 奶牛滑蹄蹄部曲线、导函数曲线和导函数局部峰值定位结果
Fig. 7 Curved hoof of cow, derivative function curves and local peak detection results of the derivative
设导函数曲线为G(x),如公式(2)。
在奶牛牛蹄打滑运动曲线相对应的导函数上,出现了一个较小的峰值,所对应的正是牛蹄打滑的时刻。奶牛在牛蹄落地之后,因打滑在x轴上向前突进一小段后停止,对应导函数图像特征是在正常峰值之后紧接着出现一个高度较小的峰值。可以通过导函数曲线上局部峰值之间纵坐标是否异常减小来判断奶牛行走过程中是否发生了蹄部打滑的现象。在提取局部峰值点的过程中,引入参数最小峰值相对高差(MinPeakProminence),峰值的相对高差根据峰值本身高度及其相对于其他峰值的位置衡量其突出程度,它描述了一个峰值相对于其邻近谷值的突出程度。通过设置MinPeakProminence参数大小,可以过滤掉那些高度不足或被噪声影响的峰值,本研究中MinPeakProminence参数大小设置为0.5。设G(x)图像上的局部峰值点为Ni(i=1,2,3,…),如公式(3):
设局部峰值点为Ni(xi,yi),则奶牛滑蹄特征参数Feature1如公式(4)所示。
在对31段奶牛滑蹄视频和84段奶牛正常行走视频的滑蹄曲线导函数进行分析后,选择将yi≤1.37的峰值点剔除。奶牛滑蹄蹄部曲线导函数的异常小峰值范围在1.508~4.428之间,而正常峰值范围在0.878~1.223之间(峰值间的绝对差值在0.63~3.205之间),因此选择将yi≤1.37的数据剔除。
1.4 奶牛滑蹄判断与滑蹄距离检测
1.4.1 决策树原理
决策树属于有监督学习,是一个典型的树模型,它体现了特征与标签的一种函数映射关系。决策树从根节点开始,沿着分支进行判断,并逐步到达叶子节点,最终给出预测结果。决策树的建立过程包括以下几个步骤:特征选择,选择最优的特征作为划分标准,使得划分后各个子集尽可能地纯净;树的生成,按照选定的特征进行划分,并对每个子节点重复执行上述两个步骤,直到满足终止条件为止;树的剪枝,通过降低树的复杂度来避免过拟合。
1.4.2 决策树模型的训练
利用奶牛蹄部曲线导函数局部峰值的纵坐标值作为奶牛是否发生滑蹄的特征参数,由于受到峰值提取算法及奶牛行走速度的影响,不同奶牛不同蹄部提取出的局部峰值个数很难保持一致,因此需要对奶牛滑蹄特征参数进行数据处理。分别对奶牛四蹄提取的四组局部峰值进行标准差计算,得到四个标准差,作为决策树输入特征参数。从奶牛出现滑蹄的31段视频数据中提取出31组滑蹄蹄部特征参数,从剩余的84段奶牛正常行走的视频中提取出84组奶牛自然行走蹄部特征参数,总共115组特征参数,进行数据处理后开始训练,其中,划分训练集为80%,测试集为20%。
1.4.3 奶牛滑蹄距离检测参数提取
奶牛滑蹄曲线及奶牛滑蹄距离如图8中距离D所示。
图8 奶牛滑蹄距离D
Fig. 8 The distance of the cow's feet is D
设滑蹄起始点为P(xs,ys),结束点为P'(xe,ye),则滑蹄距离D的计算如公式(5)所示。
奶牛滑蹄距离特征参数为Feature2:xs和xe如图9所示。
图9 奶牛滑蹄蹄部曲线导函数
Fig. 9 The derivation of the curve of the hoof of the cow
设最低峰值点Nf(xf,yf),其计算如公式(6)所示。
式中:ni为导函数的局部峰值点。以最低峰值点Nf (xf,yf)为中点,向左右两边分别寻找第一个最低点Pg(xs,ys)和Pg'(xe,ye),则奶牛滑蹄距离检测特征参数如公式7所示。
式中:G(x)为奶牛滑蹄导函数曲线。奶牛滑蹄距离D由特征参数Feature2计算,如公式(8)所示。
式中:M(x)为奶牛滑蹄运动曲线。
2
结果与分析
2.1 奶牛身体关键点定位结果
2.1.1 不同主干网络定位结果
选取10个不同的主干网络对模型进行训练,模型训练过程中Loss曲线如图10所示,可知,10个模型在30 000次时全部达到收敛状态,且损失值由小到大的网络分别是EfficientNet、ResNet和MobileNet-V2,其中,EfficientNet-b3的损失值一直保持在最低水平。然后,选用一段11 s的奶牛侧视行走视频作为输入对候选主干网络的性能进行对比分析,关键点定位误差及计算效率如表1所示。其中,MobileNet系列的推理时间最短,但误差较大;ResNet与EfficientNet相比运算速度相当,但是ResNet精度优于其他两种模型。因此,选择ResNet-50作为主干网络进行优化。EfficientNet系列网络虽然模型较小,但在推理速度上却表现不佳,这可能是由于EfcientNet系列网络使用了大量的低FLOPs、高数据读写量的操作,而GPU的访存带宽存在限制,使得模型把大量的时间浪费在了从显存中读写数据上,GPU的算力没有得到充分利用。
表1 奶牛滑蹄检测研究不同主干网络模型性能对比
Table 1 Performance comparison of different backbone network models of detecting cow hoof slippage
图10 最佳主干网络确定研究中不同主干网络模型训练时损失值
Fig. 10 Loss values of different backbone models in optimal backbone network researchs
2.1.2 融合CBAM模块改进ResNet-50网络的定位结果
改进后的ResNet-50模型定位结果如图11所示,可见改进后的模型定位结果较为准确,和手动标注的误差较小。不同光照条件下,改进后算法对奶牛身体关键点定位结果及其对应的概率热图如图12所示,可以看出,在不同光照条件下本研究算法都能准确检测出关键点位置。改进后的ResNet-50模型和未改进的ResNet-50模型在训练集和验证集,以及奶牛身体关键点上的RMSE如表2所示,可知比起原网络ResNet-50,改进后的网络在训练集上的准确率提高了3.7%,在验证集上的准确率提高了9.7%,在奶牛各身体关键点部位右后蹄、右前蹄、左后蹄、左前蹄和头部的定位结果上分别提高了12.1%、44.9%、0.04%、48.2%和39.7%。改进后的网络与YOLOv8s-pose的对比试验结果见表3。改进后的网络比YOLOv8s-pose的定位精准度提高了1.06 pixels,与手动标识的身体关键点之间的均方根误差RMSE仅有2.99 pixels。总体上看,这表明引入CBAM注意力机制模块对改进ResNet-50网络的小目标定位有提升效果。
图11 改进ResNet-50网络的奶牛身体关键点定位结果
Fig. 11 Keypoint localization results for cow body using improved ResNet-50
图12 奶牛滑蹄蹄部曲线及其导函数峰值定位结果
Fig. 12 Curves of cow hoof slippage and peak localization results of its derivative function
表2 改进后的ResNet-50和未改进ResNet-50奶牛身体关键点定位结果对比
Table 2 Comparison of keypoint localization results for cow bodies:Improved ResNet-50 vs original ResNet-50
表3 改进后的ResNet-50与YOLOv8s-pose及其他主干网络的奶牛身体关键点定位结果对比
Table 3 Comparison of the positioning results of the improved ResNet-50, YOLOv8s-pose, and other backbone networks
2.2 奶牛关键点运动曲线分析
2.2.1 奶牛滑蹄关键点运动曲线分析
发生滑蹄的奶牛四蹄及头部在x轴和y轴方向上的运动曲线如图13所示。奶牛在x轴方向上的四蹄运动曲线中,打滑蹄部在发生打滑的时刻出现了一段凹陷的曲线,奶牛蹄部发生打滑时,随着时间的增加,打滑牛蹄突然在地面前进方向上出现一段突进,对应着牛蹄在x轴方向上的位置增加一小段,增加的距离就是牛蹄发生打滑时向前滑动的距离。奶牛在y轴方向上的四蹄运动曲线相较于奶牛在x轴方向上的四蹄运动曲线来说较为复杂,奶牛蹄部发生打滑的时刻并未展示出有效信息,因此不再对奶牛在y轴方向的四蹄运动曲线进行进一步分析。奶牛发生滑蹄时的头部运动曲线无论是在x轴方向还是y轴方向,都没有展示出有效信息,因此不再对奶牛头部运动曲线进行进一步分析。
a. 奶牛四蹄在x轴的运动曲线 b. 奶牛四蹄在y轴的运动曲线 c. 奶牛头部在x轴和y轴上的运动曲线
图13 奶牛四蹄及头部分别在x轴和y轴上的运动曲线
Fig. 13 The movement curves of the cow's four hooves and head on the x-axis and y-axis respectively
2.2.2 奶牛滑蹄特征值有效性分析
由2.2.1分析可知,奶牛滑蹄是对应x轴方向上出现一小段突进的位移,其对应曲线导函数会增加一个异常峰值,由图7b中可知,该异常峰值的大小明显小于奶牛正常行走的峰值。因此,选用导函数曲线局部峰值作为判断奶牛是否发生出现滑蹄现象的特征值Feature1是可靠的。通过判断Feature1中是否出现数据的异常减小,即可判断奶牛是否出现滑蹄现象。
2.3 奶牛滑蹄判断与滑蹄距离检测精度
2.3.1 决策树分类模型的验证
由于受到峰值提取算法和奶牛行走速度的影响,不同奶牛不同蹄部提取出的峰值个数很难统一,因此,对同一奶牛四个蹄部提取出的4组峰值分别进行标准差的计算,得到长度为4的一组标准差,这表明一头奶牛对应的滑蹄特征参数长度为4,将其作为分类模型的输入特征量,模型的输出量为奶牛是否发生滑蹄行为。训练完成后,采用10折交叉验证对奶牛滑蹄分类模型性能进行评估,其准确率(Accuracy)、精确度(Precision)、召回率(Recall)和F1分数(F1-Score)如表4所示。准确率衡量模型正确预测滑蹄和非滑蹄的能力,从表4中可以看出,平均准确率为90.42%,这表明模型在识别奶牛滑蹄时具有相当高的准确性。精确度指模型在预测为滑蹄的样本中实际为滑蹄的比例,在表4中,精确度的平均值为0.943,高精确度表明模型很少将非滑蹄误判为滑蹄。召回率表示模型能够正确预测出所有滑蹄样本的能力,表4中平均召回率为0.949,说明模型能够有效捕捉到实际存在的滑蹄情况。F1分数综合考虑了精确度和召回率,是综合评估模型预测能力的重要指标,平均F1分数0.941体现出该模型在平衡预测的准确性和全面性方面表现良好。不同折间也存在差异,如第8折和第9折表现较为出色,而第6和第10折表现则一般。这种差异可能与数据集的特定分布有关,但整体数据展示出该模型具有稳定性和一致性,且都在一个较高的水平上。
表4 奶牛滑蹄分类模型性能评估结果
Table 4 The evaluation results of the cow lameness classification model performance
2.3.2 奶牛滑蹄距离精度
对31段奶牛滑蹄视频中奶牛的滑蹄距离进行人工标定。确定奶牛发生滑蹄的起始时刻和结束时刻,选定奶牛发生滑蹄的蹄部区域,人工标注奶牛滑蹄的移动距离(单位:pixel),如图14所示。图14a为奶牛滑蹄起始时刻的关键帧,图14b为奶牛滑蹄结束时刻的关键帧,在图14a选定奶牛滑蹄蹄部的顶点A,图14b选定奶牛滑蹄蹄部的顶点B,将图14a A点坐标映射至图14b成为A'点,A'与B之间的横坐标之差则为人工标定的奶牛滑蹄距离。随机挑选10个人工标定结果和预测结果如表5所示。仍然选择RMSE作为滑蹄距离质量的评价指标。经过计算发现RMSE的大小为1.363 pixels,这表明预测距离与人工标定距离之间的误差大约在1.363个像素单位。通过人工标注奶牛滑蹄距离的结果可知奶牛滑蹄距离一般在10~20个像素单位之间,由此可见,该误差相对于奶牛滑蹄距离较小,对于滑蹄距离检测较为精准。
a. 奶牛开始滑蹄时 b. 奶牛结束滑蹄时
图14 人工标定奶牛滑蹄距离
Fig. 14 The manually labeled distance between a cow's hooves
表5 部分人工标定奶牛滑蹄距离和预测距离
Table 5 Comparison of manually calibrated and predicted slipping distances for cows
3
结 论
本研究基于深度学习方法定位奶牛身体关键点,通过奶牛身体关键点运动曲线,提取奶牛滑蹄姿态特征参数及奶牛滑蹄距离特征参数,并进行建模和验证,得出以下结论。
1)为提取奶牛身体关键点的运动曲线,本研究采用基于DLC的奶牛身体关键点检测方法,为实现对奶牛四蹄和头部关键点的精准定位,首先选取ResNet系列、MobileNet-V2系列、EfficientNet系列等10个网络模型替换DLC的主干网络,最终选取准确率最高的ResNet-50作为DLC的主干网络,随后选择轻量级的CBAM注意力机制嵌入ResNet-50的网络结构中,完成对ResNet-50网络模型的改进。定位结果表明改进后的ResNet-50网络相较于ResNet-50在验证集的定位准确率上提高了9.7%,相较于YOLOv8s-pose的定位精准度提高了1.06 pixels,与手动标识的身体关键点之间的均方根误差RMSE仅有2.99 pixels。
2)奶牛四蹄运动曲线对于反映奶牛是否有滑蹄姿态的判断是至关重要的,相比于奶牛头部运动曲线,四蹄运动曲线更加直观地反映了奶牛滑蹄的姿态情况。
3)通过奶牛四蹄运动曲线提取出的奶牛滑蹄姿态特征参数Feature1为蹄部运动曲线导函数峰值纵坐标。利用特征参数Feature1对奶牛是否出现滑蹄姿态进行判断,基于决策树训练分类模型,采用10折交叉验证对奶牛滑蹄检测模型的精确度进行评估,结果表明该分类模型的平均准确率、精确度、召回率和F1分数分别为90.42%,0.943,0.949和0.941,模型在四个指标上表现的都比较稳定,且都在一个较高的水平上。通过提取出的奶牛滑蹄距离检测特征参数Feature2:xs和xe,对奶牛的滑蹄距离进行计算。结果表明,与人工标定的滑蹄距离相比,预测距离与手动标定距离的均方根误差RMSE仅为1.363 pixels,对滑蹄距离的检测较为精准。
本研究对奶牛滑蹄的检测准确率在奶牛中、低速行走的情况下较高。一旦奶牛在前进过程中出现跑跳或速度较快的行走,奶牛四蹄关键点的定位效果会变得很差,从而影响奶牛四蹄运动曲线,进而影响奶牛滑蹄检测准确率。这可能是因为模型在训练过程中奶牛跑跳的数据集较少导致的,未来可以补充奶牛跑跳的数据集,用来完善整个滑蹄检测。同时,对奶牛滑蹄距离的估计也只是以像素为单位的预估,由于每头奶牛与相机的距离总会有偏差,如何统一奶牛的滑蹄距离也是未来工作需要探索的问题。
推荐阅读
智慧农业微信交流服务群
发布征集
欢迎在我公众号发布科研团队介绍、创新科研成果及相关活动等信息。