论文部分内容阅读
奶牛跛行问题会对规模化奶牛养殖业起到不良影响,早检测、早预防是解决在规模化养殖奶牛中减少奶牛淘汰率的有效手段之一。为了解决规模化养殖条件下人工跛行检测不够及时,难以发现轻度跛行及突发中、重度跛行行为等问题,本研究以陕西杨凌科元克隆股份有限公司奶牛养殖场饲养的奶牛为研究对象,开展了基于计算机视觉与深度学习的奶牛跛行行为检测方法研究,以满足奶牛养殖业现代化水平提升的需求。本文主要研究内容与结论如下:(1)针对接触式奶牛跛行行为检测方法在实际检测时耗时、耗力等问题,提出了一种基于双正态分布背景统计模型的奶牛跛行检测方法。为了验证本研究所提出的跛行检测算法的有效性,采用全正确率、跛正确率及常正确率等指标对奶牛视频集进行了跛行检测试验,结果表明,本研究检测奶牛跛行检测的全正确率为93.75%,跛正确率为90.00%,常正确率为100%。与经典GMM算法相比,本文方法对目标奶牛检测效果更完整,对抗环境的鲁棒性更强,目标奶牛平均误检率降低了18.71%。该方法可为奶牛跛行行为的快捷、高精度检测提供新的借鉴。(2)针对跛行奶牛与正常奶牛在背部、头部、腿部的动作区别,提出了一种基于Filter Layer的YOLOv3(Fliter Layer YOLOv3,FLYOLOv3)深度学习网络,并开展了复杂场景下奶牛关键部位检测方法研究。为了验证算法的有效性,与Faster R-CNN算法、YOLOv3算法进行了对比,同时利用precision(准确率)、recall(召回率)、平均帧率、m AP(平均检准率)等指标进行了评价。试验结果表明,FLYOLOv3算法的precision为98.21%,recall为96.32%,平均帧率为35 f/s,m AP为92.17%,Faster R-CNN算法的precision为95.64%,recall为94.17%,平均帧率为10 f/s,m AP为91.49%,YOLOv3算法的precision为93.13%,recall为76.34%,平均帧率为85 f/s,m AP为86.89%。针对奶牛的关键部位,所提出的FLYOLOv3算法检测效果是有效的、可行的。(3)针对跛行奶牛的头颈部在运动过程中的变化特点,提出了一种基于正态分布背景统计模型(normal background statistical model,NBSM)与局部循环中心补偿跟踪模型(local circulation center compensation track,LCCCT)和线性斜率最近邻分类(distilling data of KNN,DSKNN)技术的奶牛跛行检测方法。试验结果表明,在未清洗的数据集上,分别利用SVM、Naive Bayes以及KNN分类算法进行了奶牛跛行的分类检测试验,试验结果表明,SVM与Naive Bayes跛行分类检测正确率均为82.78%,奶牛轻度跛行检测正确率分别为83.33%、66.67%、83.33%;将数据清洗后3类算法的结果表明,KNN分类算法的跛行检测正确率达94.44%,高于SVM分类算法的91.11%及Naive Bayes分类算法的86.11%。上述结果表明通过头部、颈部及背部连接处的拟合直线斜率特性可以正确检测奶牛跛行,数据经数据清洗后,KNN分类算法可以取得更好的检测结果。(4)针对跛行奶牛的背部曲率在行进过程中的变化特点,提出了一种融合机器视觉技术与深度学习算法的奶牛跛行检测方法。通过检测视频中奶牛的背部区域,提取目标奶牛背部拟合曲线的曲率数据,并将其放入基于递归神经网络的分类器中检测奶牛的跛行。为了验证算法的有效性,使用567段视频分别在LSTM模型、Bi LSTM模型、Noise+LSTM模型以及本模型上进行了训练,并使用243段视频进行了验证与测试。利用文中算法获取到的奶牛背部拟合曲率数据,通过在奶牛跛行的分类检测对比试验发现,本研究所提出模型的平均分类精确度为96.61%,分别比LSTM、Bi LSTM、Noise+LSTM模型提高了8.04%、2.09%、5.78%,表明通过奶牛背部的曲率特征可以正确检测奶牛跛行。该研究结果对于奶牛跛行疾病的预防、诊断具有重要意义。(5)利用Matlab R2019b中GUI编译工具箱,设计了非结构化环境下的奶牛跛行行为检测系统。该软件系统主要包括基于双正态分布背景统计模型的奶牛跛行检测算法、基于Filter Layer的奶牛关键部位检测算法、基于奶牛头颈部斜率的奶牛跛行行为检测算法、基于奶牛背部曲率的奶牛跛行行为检测算法。经过试验验证,该软件系统可实现通过上述检测方法对奶牛跛行行为进行检测等功能,系统具备操作简单、处理过程及结果显示直观、具体等优点。