APP下载

基于EfficientNet与点云凸包特征的奶牛体况自动评分

2021-06-09赵凯旋刘晓航姬江涛

农业机械学报 2021年5期
关键词:体况体素奶牛

赵凯旋 刘晓航 姬江涛

(河南科技大学农业装备工程学院,洛阳 471003)

0 引言

奶牛产犊前储备一定的脂肪是其安全渡过能量负平衡期的重要保证,对其体脂储量进行评测是保证围产期奶牛营养与健康的重要前提[1]。体况评分(Body condition score, BCS)是指对动物脂肪保有量进行定量评价,已成为衡量动物能量储备、健康状况和饲喂管理水平的有效工具[2-3]。体况评分对奶牛产前和产后管理非常重要,体况异常和突变是奶牛代谢紊乱的主要表征之一[4-5]。定期评估奶牛体况是预防代谢疾病、保障个体福利、增加经济效益的有效途径。

目前,奶牛体况评分主要采取人工方法,根据一定的规则,对腰、骶骨等关键区域进行肉眼观察,主观评估奶牛的脂肪富积程度[6-7]。受人工主观性影响,评分结果的重复性和可靠性较低,评定过程耗时、费力,并严重依赖于评估人员的经验。人工体况评分方法难以满足规模化养殖对奶牛个体营养状态实时监测的需求[8-10],亟需一种长期、连续对奶牛体况进行精准评分的自动化系统。

机器视觉技术应用于体况评分的研究已逐渐成为研究热点,这对于降低主观性、提高评估效率具有重要意义[6,11]。使用机器视觉进行体况评分反演时通常基于“特征提取-模型分析”的评分方法[12-15],即从低成本2D相机拍摄的RGB图像中提取与体况相关的体表几何特征(轮廓、形状、曲线等),建立特征值与人工评分值回归关系,以此实现奶牛体况的评估,这种方法能够达到0.5步长内96.7%的体况识别率[15]。通过RGB图像虽然初步实现了体况的自动评价,但提取的体表几何特征主要为相关性较弱的间接特征。并且受环境对图像采集质量的影响,系统的自动化程度较低,且在体况评分实时性、识别准确率及可靠性方面难以满足实际养殖的管理需求。

随着三维机器视觉技术的发展,深度图像包含更多与动物体况直接相关的特征,且在降低评分主观性、提高评估效率与精度、加速系统商业化等方面表现出极大潜力[16-17]。但深度图像中所含奶牛三维结构特征较为复杂,传统手工构建的特征提取器存在有效性缺失、鲁棒性差、过程繁琐等问题[18]。为此研究者提出采用深度学习技术替代特征构建与提取,从而实现直接由图像到体况得分的体况评估方法,大大提高了体况评估的效率与精度,且0.25步长内评分准确率可达到82%[19-21]。深度学习与3D技术的使用使自动体况评分精度有了进一步提升,但在实际生产中,为满足奶牛不同生长阶段的营养管理需求,奶牛体况值与理想值差距应始终维持在0.25步长内[6,12],现有自动评分系统的精度与实际养殖管理标准仍具有一定差距。

为进一步提高奶牛体况自动评分精度,本文根据采集的奶牛背部深度图像,提出一种基于EfficientNet网络和凸包特征的体况自动评分方法。首先对获取的奶牛背部深度图像进行预处理,提取含有主要体况信息的奶牛后躯背部点云数据;其次通过对点云进行体素化及凸包化处理获取其凸包特征图像;最后构建EfficientNet模型,对特征图像进行分类,以期实现养殖环境下奶牛个体体况的精准高效评分。

1 材料与方法

1.1 图像采集系统

研究数据采集于美国肯塔基大学研究奶牛场。研究对象包括77头处于泌乳期的荷斯坦奶牛,每天05:00和16:00进行挤奶,挤奶完成后经由室内窄道返回牛舍。窄道左右两侧墙壁相距1.03 m,能够有效限制奶牛的活动幅度,便于图像采集与处理。

图像采集系统[6]如图1所示,主要由3D摄像机、补光灯、光线传感器及安装底座组成。其中3D摄像机(PrimeSense Carmine 1.08,Tel Aviv, 以色列)用来捕获奶牛经窄道返回牛舍时的背部深度图像,补光灯(60 W泛光照明灯)用于拍摄RGB图像时的照明与补光。采集系统安装在距离混凝土地面高3.05 m的天花板上,其视野能够完全覆盖窄道宽度。摄像机同时获取彩色和深度图像,并通过USB延长线连接牛场办公室计算机,深度图像的分辨率为320像素×240像素,帧率为30 f/s。图像处理平台处理器为Intel i5-8400,主频为2.80 GHz,内存容量为8 GB,操作系统为Windows 10,算法开发平台为Matlab 2020b。

设计的图像采集与控制软件,用以检测场景中是否出现奶牛,并控制摄像机进行图像采集。如图2所示[20],奶牛由左侧进入窄道后,会依次触发4条检测线。当仅触发检测线②、③、④时,说明奶牛背部区域完整地呈现在采集视野中,此时摄像机同时拍摄彩色图像和深度图像。

1.2 数据采集

数据采集于2014年4—6月,泌乳期奶牛每天在挤奶后采集2次数据。在试验数据采集阶段,由3名经验丰富的专业评分人员按照相同的评分标准(5分制),每周对所有试验奶牛进行一次体况评分,并以3个评分值的中值作为奶牛在对应周次内的体况得分,以减小人工评分的主观差异。研究表明,正常情况奶牛体况得分在一周内的变化不超过0.25[6],因此按照此规则,对每头奶牛体况得分的时间序列进行分析,剔除人工评分时间序列中的异常值。最终构建的数据集包含77头奶牛的5 119幅深度图像及对应的人工评分值。随机选取2 560幅图像用于后续模型的训练,剩余的1 536幅和1 023幅图像用于模型的验证与测试,三者的比例为5∶3∶2,3个数据集的BCS分布如表1所示。3个数据集在随机选取过程中均涵盖所有的BCS值,且保留了整体数据集的样本分布特性。

表1 不同BCS对应的数据集图像分布

1.3 图像预处理

为便于后续的算法开发及特征提取,对原始深度图像进行目标提取、目标旋转、后躯图像获取等预处理操作[22-23],以提取含有主要体况信息的奶牛后躯背部点云,具体步骤如图3所示。

1.3.1目标提取

为提高目标提取质量,采用1 200幅深度背景图像进行背景建模,并利用实际采集中未检测到目标奶牛的图像对其进行更新,以避免任意单个深度背景图像存在潜在错误。将捕获的深度图像与建模所得背景图像进行差分运算,并对差值结果进行阈值处理,即可得到不含背景的奶牛深度图像。背景去除后,将相机与地面的距离(3.05 m)与奶牛图像各像素值相加即可将图像像素的深度转换为与地面的距离。

1.3.2目标旋转

为降低因采集过程奶牛身体倾斜对数据一致性造成的影响,对提取的目标奶牛图像进行旋转,使其脊柱方向与图像横轴平行,以便于后续算法沿脊柱方向对两侧作对称性处理。选取奶牛深度图像中每列的最高值作为脊柱点,采用线性拟合方法对其拟合以获取脊柱线,依据脊柱线与图像横轴的夹角进行旋转即可得到沿脊柱对称分布的奶牛深度图像。并通过计算奶牛脊柱线两侧相较于脊柱线的二阶矩对旋转后图像进行对称度检验。

1.3.3后躯图像获取

由于体况评分的考察区域(腰角骨、臀骨、脊柱、短肋骨、髋骨、尾骨)均位于奶牛后躯,因此对不含体况信息的前躯图像进行删除以减少图像信息的冗余,且为提高奶牛后躯图像的获取质量,对离散像素点及尾巴(影响评分)进行了剔除,结果如图4所示,具体步骤如下:

(1)尾巴去除与滤波

定位图像最左侧像素点所在列,并从此列开始,当某列所有非0像素点的跨度Wj(j=1,2,…,n)大于阈值Tt(试验中设为200)时,将此列的像素值修改为0使得图像一分为二(图4a),并依据图像区域的连通域属性,滤除尾巴区域及后腹部的离散像素点(图4b、4c)。

(2)图像修剪

采用深度阈值DT对滤波后的奶牛深度图像(图4d)进行高度方向的修剪,以分割出深度图像中与体况评分相关的考察区域。即剔除图像中各列像素点与该列像素点深度最大值Hspj(即脊柱点深度)的差大于深度阈值DT的像素点,并保留其余像素点。经反复试验与验证发现DT=100 mm时图像修剪效果最佳。

(3)腰角骨定位及后躯图像获取

由图4e可知,修剪后奶牛图像的前后躯以腰角骨连线为明显界限,因此可通过定位腰角骨来实现后躯图像的获取。即以10列为一个滑动窗口,步长为1,从左到右依次计算掩模矩阵Mask中各滑动窗口所含列的元素值之和,取其中的最大值作为腰角骨所在的列,并通过定位该列中远离奶牛对称线的A、B两点的X坐标值来标识左右腰角骨所在的行。保存A、B两点连接线左侧的像素点即可得到奶牛后躯图像(图4f)。为便于后续特征提取,将奶牛后躯图像转换为点云图。

1.4 凸包特征提取

奶牛体况评分主要是对各考察区域皮下脂肪厚度的综合评测,而胖瘦程度不同的奶牛在不同考察区域的脂肪填充度是不同的,因而与其周围骨骼包络线所形成的凹陷度(空间大小、距离)也不同,如图5所示[6]。对于胖奶牛而言,由于脂肪堆积,各区域凹陷较小且后躯整体以脊柱为中心,向两侧呈平坦过渡状;而瘦奶牛由于其脂肪含量少,骨骼(脊柱)较为突出,整体凹陷明显,且后躯呈倒V形。

奶牛由瘦到胖的过程是脂肪在骨骼间区域的富积填充过程,因此基于包络线原理及奶牛由瘦到胖后躯外形的渐变特性,提出基于奶牛后躯凸包化的三维凹陷度特征提取方法。步骤如下:

(1)统计滤波

如图6所示,采用统计滤波方法对奶牛后躯两腹侧稀疏离群点云进行滤除,以获取服从高斯分布的紧凑点云。其中高斯分布的平均值由任意一点与其200个临近点的平均距离决定,并将标准差系数设为3。

(2)体素化

受奶牛个体差异及拍摄过程奶牛身体晃动等因素的影响,所获取的后躯点云在数量级及各坐标值所含信息量上均不具备可比性。因此,基于组成图像像素小方格的位置标号与定量特性,对已滤波的后躯点云进行体素栅格化(图7),使其初步具备图像特性。其中,初始体素的长宽高(l,w,h)由X、Y、Z3个方向点云数据坐标的最大值与最小值之差决定,体素分辨率设为(10,10,Zmax-Zmin),体素重心坐标为体素内所有点的坐标均值。由于栅格化后,体素编号均为(i,j,1)且每个体素内仅含1个点,若以体素编号代替各体素重心的X、Y坐标值,以其Z坐标值为像素值,则体素云将初具图像特性,并通过后续的像素值替换与尺寸变换使其在X、Y、Z方向上均具有可比性。

(3)凸包特征提取

基于奶牛生长过程中体脂在各骨骼间区域富积程度对其后躯外形的影响特性,计算后躯区域体素化后点云的三维凸包,得到外围体素到最近凸包面之间的距离并投影至XY平面上,最终得到凸包特征图,以达到依据不同奶牛完整后躯的凹陷度差异鉴别其胖瘦程度的目的。完整后躯的凹陷度由凸包多面体内部各点(包含边界点)与其表面最近距离(特征距离)所组成的特征向量表示。无效体素的特征距离设为0。将各体素重心的X、Y、Z坐标值依次替换为其体素编号i、j和特征距离,并形成特征图像。坐标值的替换使得其在Z轴方向具备了可比性与体况评价意义,但受初始体素的长宽差异影响,在体素分辨率相同时,不同后躯点云所形成的特征图像尺寸也不尽相同。因而采用最邻近插值法对其进行尺寸变换,使得不同点云的特征图像具备可比性,试验过程中特征图像的尺寸均统一为60像素×60像素。凸包的计算使用了Matlab中的convhulln 函数,其核心思想基于Quickhull算法[24],该算法无需设置参数数值,具有良好的鲁棒性和效率。对于任一三维点集Q(点数大于4),均能通过Quickhull算法实现凸包化。由凸包概念可知,三维凸包是由集合Q内一系列已知顶点组成,因此在形成凸包的过程中,并不受数据自身特性(是否为随机数据、是否有噪声)的影响。而数据自身特性仅会影响算法的计算耗时,相较于gift-wrapping、Clarkson和Shor算法,Quickhull算法的效率更高。而本文在凸包计算前进行滤波是为了滤除后躯点云中噪声,避免因潜在的噪声点导致凸包的某一面极其突出进而影响最终凸包的质量。图8给出了凸包计算结果及凸包特征图。通过人工检查,所有点云数据的凸包和特征图均得到正确的计算结果。

1.5 模型构建与优化

1.5.1模型构建

为避免传统图像分类算法中存在的特征尺度单一、信息丰富度低、分类效果差、特征依赖性强等问题,选取优势明显且应用广泛的卷积神经网络对获取的特征图像进行分类,以简化特征设计、提取及分类的繁琐过程[25-27],减少人工构建特征的有效性、鲁棒性对分类精度的影响,提高BCS评定过程的自动化水平与精度。为此,本文依据网络模型参数量、准确率等指标从现有分类网络中选取在标准图像集ImageNet下分类性能最优的EfficientNet网络进行图像分类。

EfficientNet网络采用简单高效的复合缩放方法,在预先设定的内存和计算量的限制下,通过网格搜索找到一组固定缩放系数(α、β和γ)对基线网络维度(深度d、宽度w、分辨率r)进行统一缩放,以实现网络维度的平衡及模型整体性能的提升[28]。此外,该网络通过使用多目标神经结构搜索开发了基线网络EfficientNet-B0,以进一步提升模型性能及其扩展的有效性。其结构如图9a所示,在内部结构上基线网络主要由7个区块(block)组成,凸包特征图像在经过3×3卷积层提取其局部特征后,进入多个block结构中进一步提取并丰富用于预测的特征细节,最后经过卷积-池化-全连接操作来替代分类器,实现由特征图像所代表的BCS值的分类。其中3种block结构均由多个相同的移动翻转瓶颈卷积(Mobile inverted bottleneck conv, MBConv)模块前后连接组成,并在MBConv模块中引入挤压、激发模块(Squeeze-and-excitation, SE)进行优化,使得浅层网络同样能够通过全局感受野来捕获图像特征对图像进行描述。此外,为增强高维空间内特征的非线性与网络表达能力,避免模型训练时的梯度消失问题,选用ReLU函数作为网络的激活函数,并采用Softmax回归函数和交叉熵损失函数用于全连接层输出的归一化及损失值计算。其中,H、W、F分别表示输入图像的高度、宽度和通道数。

1.5.2复合参数优化

表2 WOA算法参数的初始化设置

1.6 模型评价指标

对于多分类而言,混淆矩阵作为分析给定分类器识别不同类组能力的有力工具,可提供比单一评价指标更多的信息,而被广泛应用于分类方法的评估中。因此本文采用混淆矩阵来显示模型对各BCS类别的分类详情,并基于此提出以下度量指标:准确率(Accuracy,A)用于衡量分类器的有效性,即正确预测分类的样本数占总体预测样本的比例。精度(Precision,P)反映分类器的查准率,由于奶牛体况为多分类问题,因此采用各类别精度的平均值作为最终度量指标。召回率(Recall,R)反映分类器的查全率,以各类别召回率的平均值作为最终度量标准。F1值是精度与召回率的调和平均值,用以衡量存在罕见类别时分类器的性能。

此外,为消除人工评分误差对模型性能的影响,统计BCS误差小于等于0.25与小于等于0.50时的上述指标值,以实现准确评估模型性能并便于与其他研究做对比分析。

2 结果与讨论

2.1 混淆矩阵

为提高模型泛化能力,避免过拟合,采用验证集对训练过程中的模型参数进行调整,并使用测试集对模型进行评估。EfficientNet网络评分结果的混淆矩阵如图11所示,红、橙、黄3种颜色分别表示精准预测、BCS误差在0.25内和BCS误差在0.50内的预测结果。尽管与理想混淆矩阵的主对角线分布有所差异,但可以看出,除3.25这一类别外,各BCS类别均实现了70%以上样本的主对角线分布(与RODRIGUEZ等[21]研究相比提升了50%)及95%以上样本沿主对角线及其两侧分布,这表明本文所提出的基于凸包特征的模式识别方法能够有效区分与BCS变化相关的奶牛变异性。极端BCS值下的优越性为提高规模化养殖中大多数奶牛及个别病牛的体况检测精度提供了可能。3.25类别呈现的主对角线低样本分布问题可能与其处于胖瘦分界线、受该类训练样本大小影响、模型难以提取与之相关的信息并形成区别于相邻类别的有效判据有关。

2.2 模型评价

表3为不同误差范围内不同BCS对应的模型精度、召回率及F1值。对于精度而言,BCS误差为0和误差小于等于0.25时中间BCS对应的模型精度比极端BCS低,这一结果也验证了HUANG等[11]的结论,BCS在3.25时分别取得最低精度61%和91%,扩大误差范围至0.50时,BCS仅在2.75、3.00、3.25时实现了精度提升,分别提升1、1、7个百分点。对于召回率而言,除3.25外,其余BCS均实现了71%及以上的召回率(0误差),其中极端BCS(2.25、4.00)的高查全率(召回率大于等于86%)能够及时发现奶牛健康管理问题,以便采取应急措施,减少经济损失。BCS在0.25和0.50误差均实现了不小于94%和98%的召回率,并以3.75和4.00为最优,达到了100%。F1值在0误差内波动较大且整体得分先减后增,并在BCS为4.00时取得最大值100%,当考虑不同误差范围(±0.25、±0.50)时,BCS波动均较小,且F1值的最小值分别为92%和97%。BCS误差在0.25以内时模型平均精度、召回率及F1值均为98%,与现有研究相比取得了一定进展。表4显示了不同误差范围内现有评分方法的识别准确率,与其他基于模式识别的智能体况评分方法相比[10,19,21,30-31],本文方法的精准识别率提高了62.5%,误差在0.25内的识别准确率提高了20%。作为评价模型精度的关键指标,误差0.25内的模型精度大幅提升,为集约化牧场提高体况评估效率与精度、实时监测牛群营养健康水平及生产繁殖性能、实现精细养殖管理提供了有力工具。误差由小于等于0.25扩大至小于等于0.50时模型精度提升了0.71个百分点,表明凸包特征与EfficientNet网络的组合能够精准复现具有特定BCS(2.25~4.00)的奶牛体况且误差小于0.25,优势明显且满足实际需求。

表3 不同误差范围内不同BCS的精度、召回率及F1值

表4 基于监督学习的体况评分方法识别准确率

2.3 模型对比

为验证不同模式识别网络对最终评分结果的影响,在凸包特征图像数据集的基础上对比分析了4种网络模型(LeNet-5、XceptionNet、MobileNet-V2、EfficientNet)的分类性能,其混淆矩阵如图12所示。整体而言,4种模型的混淆矩阵差异较小,样本整体预测值与真实值误差分布集中在0.25以内,但对于个别BCS,4种模型表现出不同的特性。4种模型均在BCS为3.25时识别准确率最小;BCS在3.50和2.50时,4种模型的识别准确率从高到低依次为LeNet-5、EfficientNet、XceptionNet、MobileNet-V2;在BCS为2.25和2.75时该排序相反,即LeNet-5模型表现最差,并远低于最优的EfficientNet;而在BCS模型为3.00和3.75时,EfficientNet和XceptionNet模型均优于LeNet-5和MobileNet-V2。除此之外,除MobileNet-V2外,其他3类模型均在BCS为4.00时识别准确率达到100%。模型自身的结构差异导致对特征图像具有不同的学习能力,是造成各BCS间识别准确率存在差异性的主要原因。

为进一步分析4种网络的模型性能,依据测试集样本分类的混淆矩阵,采用1.6节定义的指标对4种网络进行综合评估,评估结果如图13所示。由图13a可知,误差为0时,EfficientNet与XceptionNet对特征图像的识别速率分别为0.007 25 s/f和0.007 59 s/f,但EfficientNet网络的整体检测性能明显优于XceptionNet,且与XceptionNet相比,其整体识别准确率与召回率分别提高2.29、2.31个百分点。与EfficientNet相比,尽管MobileNet-V2与LeNet-5识别速率(分别为2.74倍和5.99倍)大幅提升,但两者均牺牲了识别准确率(分别下降8.93、5.28个百分点),且在精度、召回率及F1值指标上,LeNet-5网络比MobileNet-V2网络分别提高6.84、4.81、5.44个百分点。除此之外,BCS评分的高效便捷不仅是实际生产中的核心需求,也是制约现有研究商业化的关键因素,尤其是系统对单帧图像的评分速率。而本文中图像预处理、凸包特征提取、特征图像生成等步骤所需时间分别为0.116、3.00、0.325 s,由于室内通道单次仅容一头奶牛通过,两头奶牛触发拍摄的时间间隔与由原始图像生成特征图像所用时间相同,在特征提取阶段,是FISCHER等[16]关键点标识所用时间(3 min)的1/60,且系统平均识别速率为3.441 s/f,接近刘燕[32]使用首个商用全自动体况评分系统时的检测水平(3 s/f)。由于4种模型均使用相同特征图像集,因此结合上述分析可知,BCS误差为0时模型的优劣顺序为EfficientNet、XceptionNet、LeNet-5、MobileNet-V2。

图13b、13c分别为误差小于等于0.25及小于等于0.50时4种模型评分性能的对比结果。由图中准确率可知,不同步长时4种模型的最低识别准确率分别为96.2%和98.7%,并均在EfficientNet模型上取得最高值即98.6%和99.31%。考察模型精度、召回率及F1值时,除MobileNet-V2模型外,3种指标受模型类别的影响均较小,且这种趋势并不受误差的影响,即BCS误差在0.25和0.50以内时3种指标波动范围分别为0.01~0.93个百分点、0.28~0.93个百分点和0.18~0.61个百分点。除此之外,误差对模型的影响也较小,即BCS误差由小于等于0.25增至小于等于0.50时,任一模型的任一指标的提升均不超过1.68个百分点,MobileNet-V2模型提升了4个百分点左右。上述两种趋势的出现可能与凸包特征的高效性及EfficientNet、XceptionNet、LeNet-5这3种模型在BCS误差为0时的高准确率及分类误差小而紧凑有关。综合上述分析可知,尽管模型类别会影响最终的评分精度,但凸包特征是保证奶牛体况评分精度的关键,且4种模型中EfficientNet模型具有更高的体况识别准确率,可实现奶牛体况的精准高效识别。

3 结束语

提出一种从深度图像中提取凸包特征并用于体况评分的方法。该方法从奶牛行走过程中的顶视深度图提取其后躯,并作为体况评定区域,对后躯点云进行体素化与凸包化,得到特征图像,采用EfficientNet模型对其进行分类,以确定其BCS。所提出的凸包特征与体况得分之间具有较高的相关性,对个体差异具有良好的鲁棒性,BCS识别误差在0.25以内时EfficientNet模型精确识别图像占比达到98.6%,识别效果优于MobileNet-V2、XceptionNet和LeNet-5网络模型,平均识别速率为3.441 s/f,显著提高了养殖场奶牛体况评分的精度与效率。

猜你喜欢

体况体素奶牛
胸部CT AI获批NMPA三类证,体素科技加速商业化进程
乍暖还寒时奶牛注意防冻伤
瘦体素决定肥瘦
Dividing cubes算法在数控仿真中的应用
夏季奶牛如何预防热应激
骨骼驱动的软体角色动画
种猪系统营养解决方案
根据体况改变日粮饲喂量对妊娠期母竹鼠繁殖性能的影响
如何更好地管理母猪的妊娠期
不同补饲水平对甘肃高山细毛羊繁殖性能及生产性能影响