APP下载

基于Cow-DETR与深度图像的非接触式奶牛体质量评估

2023-08-22沈维政戴百生王鑫杰赵凯旋

农业机械学报 2023年8期
关键词:奶牛深度预测

沈维政 张 哲 戴百生 王鑫杰 赵凯旋 李 洋

(1.东北农业大学电气与信息学院, 哈尔滨 150030; 2.河南科技大学农业装备工程学院, 洛阳 471023;3.东北农业大学动物科学技术学院, 哈尔滨 150030)

0 引言

体质量是体现奶牛健康状况的重要参数,奶牛体质量为评估奶牛个体的健康和生长状态、判断牧场环境的适宜性及饲料营养分配的合理性提供了一个重要依据[1-5]。及时关注体质量变化,调整饲料分配,对于降低成本,增加产奶量具有重要的实际意义[6]。

目前国内牧场多采用传统称量方式进行奶牛体质量测量,评测效率较为低下,容易造成奶牛应激反应,影响产奶量[7]。随着智慧牧场概念的提出和计算机视觉的发展,基于计算机视觉的非接触式牲畜体质量评估受到研究人员广泛的关注。在非接触式体质量评估方面,国内外研究学者早期多基于二维RGB图像进行分阶段的非接触式奶牛体质量评估[8-15],通过奶牛RGB图像提取奶牛体长、体斜长、胸围、肩高、臀高和背部面积等体型数据,基于体型数据建立回归方程预估牲畜体质量。然而,二维图像不包含深度数据,不易获取奶牛背部曲面变化的信息,导致体质量评估精度不高。

视觉传感器技术的发展和三维相机的低成本化,使其逐渐应用于智慧畜牧。部分学者开始研究应用含有深度信息的点云数据进行分段式奶牛体质量评估[16-20],通过采集奶牛俯视和侧视深度数据,进行三维点云重建,进而利用通过点云提取到的奶牛体尺数据评估奶牛体质量。但是,三维重建对奶牛位姿要求较高,而奶牛的位置和姿态是动态变化的,需要人工参与挑选位姿合格的数据进行重建,导致重建精度无法保证,难以获取体尺数据,同时,分段式提取的体尺特征,会产生不可避免的误差,影响奶牛体质量评估的精度。

为解决这一问题,更多学者开始研究基于对牲畜站立姿势要求较低,但与体质量相关性较高的背部视角的深度图像数据和深度神经网络的端到端式牲畜体质量评估模型[21-22]。文献[23]提出一种改进的Faster R-CNN目标检测网络的端到端式牲畜体质量评估方法,对猪只体质量进行评估,该方法对猪只的站立姿势和图像采集环境没有限制。然而,传统目标检测的检测结果框中含有除牲畜背部以外的其他杂物,比如通道栏杆、地面上的粪便和其他障碍物等,容易影响奶牛背部数据中体质量相关特征提取的有效性,进而影响模型体质量评估的性能[24]。

为此,本文提出一种改进DETR(Detection transformer)网络的端到端式牲畜体质量评估方法——Cow-DETR,利用奶牛的背部深度图像,对奶牛体质量进行评估。通过DETR网络的注意力机制[25],更加关注奶牛背部深度信息,减少除奶牛背部外的栏杆、粪便、地面等杂物信息对体质量评估的干扰。此外,本研究在DETR原结构的基础之上,在预测模块中添加含有交替全连接层(Alternate fully connected,AFC)的体质量预测单元,更好地提取奶牛体质量相关特征信息,进行体质量评估,以实现在检测奶牛个体的同时对奶牛体质量进行评估。

1 材料和方法

1.1 数据采集

为了获取奶牛的体质量数据和对应的背部深度图像,本文设计了一套采集装置,如图1所示,包括深度相机(距地面约2.5 m)和带围栏的体重秤(长约2.5 m,宽约0.9 m,围栏高约1.5 m,整体高约2.5 m)。本研究将采集装置安装在奶牛采奶后必经区域,体重秤两侧围栏仅允许奶牛逐头单向通过数据采集装置,进行无接触式奶牛图像和体质量数据采集。经过多种深度相机对比,本文最终选择使用成本可控,室内外成像效果都较好的Intel RealSense D435深度相机进行数据采集,将深度相机架设在数据采集装置的顶部,与地面平行,同时与PC端直连,以Visual Studio 2017为开发平台并基于RealSense SDK 2.0 进行奶牛背部深度视频流数据采集,分辨率为848像素×480像素,帧率为30 f/s,在2021年9月和2022年7月于黑龙江省大庆市林甸县晟康牧业有限公司的奶牛养殖场,共采集139头体型不一、体质量从206 kg到781 kg不等的奶牛背部深度图像序列,整理得到共计14 421幅图像。

图1 奶牛数据采集装置图Fig.1 Cow data acquisition device diagrams

1.2 数据补全处理

由于牧场环境强光和奶牛背部黑色花纹对光线的吸收等影响,奶牛背部数据产生部分不规律的残缺。如图2a所示,奶牛臀部和肩部出现不同大小和形状的残缺,其包含错误的深度信息,会严重影响模型的体质量评估精度[26-28]。针对这一问题,本文利用RealSense SDK 2.0提供的边缘平滑滤波器和孔洞填充滤波器对深度图像数据进行补全处理[29]。首先采用边缘平滑滤波器对采集图像深度噪声进行平滑处理,确保图像保持较为合理且稳定的边缘。该滤波器通过对x轴和y轴进行扫描,获取目标像素深度值,计算一维指数移动平均线(Exponential moving average,EMA)以确定合适的平滑量,计算公式为

图2 深度图像滤波效果Fig.2 Depth image filtering effect diagrams

(1)

式中α——加权减少程度系数

Yt——新记录的瞬时值(视差或深度)

St-1——时间段t-1的EMA值

δthresh——深度阈值

接下来进行空间域的孔洞填充,由于D435深度相机采用左成像器作为立体匹配算法的参考,因此本研究采用左侧有效像素(Left valid pixel)对深度数据缺失部分进行空间域的孔洞填充;最后进行时间域的孔洞填充,采用与边缘平滑滤波器相同类型的指数移动平均线滤波器,通过对深度图像的像素在时间域上应用指数滑动平均来进行孔洞填充,经过多次试验,系数α取0.5、阈值参数δthresh取20时可取得较好效果。最终补全效果如图2b所示,图2a中背部缺失部分得到有效填充,取得较完整的奶牛背部深度数据。运用上述方法对所有采集到的原始图像进行处理,得到用于模型训练的深度图像数据集。

1.3 数据标注与数据增强

为了提升本实验算法的可重复性和实验结果的可信度,本研究模型均采用5倍交叉验证的方式进行训练和测试。将采集到的139头奶牛数据,共计14 421幅图像,根据奶牛数量平均分成5份,每份包含约20%样本。选择其中4份约111头奶牛作训练集,其余作测试集,为方便网络模型训练,本实验将体重秤采集到的体质量数据写入文件名中,文件命名格式为:index_weights_.png,如:000001_596_.png。本实验需要进行两个类别的目标分类检测,分别为奶牛“cow”和默认背景类“background”,采用LabelImg标记软件进行标注,为了减少奶牛头部对实验结果的影响,标注时标注框不包含牛头部,并将图像标注内容记录到XML格式文件中,包括图像索引、图像大小、对象类别、位置坐标和体质量真值。

为了丰富训练集的图像数据,避免过拟合现象的发生,本文通过镜像和旋转来扩大训练数据集,其中镜像的对称轴为图像中心线。经过镜像和旋转处理后,训练集图像总数扩大近一倍。将训练集和测试集名称写入TXT格式文件中,用于后续奶牛体质量评估模型的训练。

1.4 Cow-DETR奶牛体质量评估模型

为了实现奶牛目标检测的同时进行奶牛个体体质量评估,并且减少检测框内除奶牛背部外的背景等杂物对体质量评估的影响,本研究提出一种改进的DETR网络的端到端式奶牛体质量评估模型——Cow-DETR。该网络包含3个模块,分别为骨干网络模块、Transformer编码器与解码器模块、预测模块。其中骨干网络模块为基础特征提取模块,负责对图像进行特征提取;Transformer编码器与解码器模块采用注意力机制,对骨干网络模块的输出进行特征提取,通过注意力机制,能够关注奶牛背部区域,减少背景中栏杆、粪便等杂物信息的干扰,提高后续预测模块的预测精度;预测模块在DETR网络原有基础之上,增加了含有交替全连接层的体质量预测单元,接受Transformer编码器与解码器模块传来的Token,对其进行检测框预测、类别预测和体质量预测,实现了高精度牛背目标检测的同时预测奶牛体质量。整体网络结构如图3所示。

图3 整体网络结构Fig.3 Structure of neural network

1.4.1骨干网络模块

骨干网络为基础特征提取模块,通过对深度图像进行卷积,获得图像特征向量。为了更好地提取特征同时避免随机梯度爆炸、消失等问题,本研究选用ResNet-50作为基础特征提取网络,具体结构如表1所示。

表1 ResNet-50网络结构Tab.1 ResNet-50 network structure

1.4.2Transformer编码器与解码器

图4 编码器与解码器结构图Fig.4 Image of transformer encoder and decoder

解码器结构和编码器类似,通过对编码器输出的特征图进行特征提取,将编码器的输出和N个查询对象作为输入,同时将固定数量的位置编码嵌入到N个查询对象中,对N个查询对象根据编码器提取到的特征进行重构。输出N个包含不同信息的Token,通过将N个Token输入后续的预测模块,进行检测框预测、目标分类预测和体质量预测,结构如图4右侧所示。

1.4.3预测模块设计

预测模块部分由3个并行的全连接模块构成,其共享输入特征,分别输出检测框坐标,类别置信度和奶牛体质量归一化值。该模块接受编码器解码器输出的N个Token,对不同Token分别进行预测,具体网络结构如图5所示。其中检测框预测单元通过多层感知机(Multilayer perceptron,MLP)与Sigmoid函数结合的方式实现,输出神经元个数设置为4,最终输出检测框的中心坐标(x和y)以及检测框的长和宽(h和w)。目标分类预测单元通过单个全连接层(Fully connected,FC)实现,由于本研究是背景和奶牛背部的二分类预测,预测单元输出维度设置为2,最终输出的类别为奶牛或背景。

图5 预测模块网络结构图Fig.5 Image of prediction module network structure

对于体质量预测单元,本研究引入全连接层构建回归分支进行体质量预测,为了更好地提取奶牛体质量相关特征信息,以提高体质量预测的精度,本文构建了一个全新的交替全连接层,用于体质量预测,如图5中体质量预测单元所示,模块输入是256维数据,首先分为2个分支,一个分支是256维作为输入、64维作为输出的单全连接层,另一个是256维作为输入、64维作为输出的双全连接层。然后将双全连接层的输出作为输入,输入到64维作为输入、16维作为输出的单全连接层。同时将2个64维的输出进行结合,作为后续128维作为输入、16维作为输出的双全连接层的输入。最后将2个输出为16维的全连接层的输出结合,输入到最后一个全连接层,进行归一化奶牛体质量的预测。与单个全连接层直接预测归一化奶牛体质量相比,交替全连接层可以分层次进行特征提取,同时结合上层特征,有利于得到准确的回归预测。

由于本研究采集的奶牛体质量数据范围跨度较大,这样未经处理的数据输入到神经网络会对体质量评估造成干扰。为了减少干扰,加快网络的收敛速度,提高模型训练效率,本研究将奶牛图像对应的真实体质量标签输入到网络训练之前,对其进行归一化处理,使其映射到[0,1],计算公式为

(2)

式中Y(i)——奶牛i真实体质量归一化值

常见的液氨、液氯和液化石油气均属于液化气体,液化气体充装量通常不得大于气瓶容积与充装系数乘积的计算值。因液化气体可压缩性较小而膨胀性又较大,所以气瓶因超装造成气瓶内“满液”时,满液钢瓶的温度只要上升1℃,瓶内压力就可增加1~2 MPa,若温度升高 5~15℃,则瓶内压力会急剧增加,导致钢瓶爆炸。

y(i)——奶牛i的体质量真值

ymin——测试集奶牛体质量最小值

ymax——测试集奶牛体质量最大值

体质量估计值为网络输出层输出值经过反归一化计算所得的数值,计算公式为

(3)

1.5 损失函数设计

损失函数L主要由检测框预测损失Lbox、目标分类预测损失Llabel和体质量预测损失Lweight组成。本研究的体质量评估模型采用联合训练方式,当真实标签和候选区域之间的IOU(交并比)大于0.7时,该Token被认为是正例。当且仅当Token为正例,该特征值才会进行损失函数计算,计算公式为

L=λ1Lbox+λ2Llabel+λ3Lweight

(4)

式中λ1、λ2、λ3——损失函数权重

1.5.1检测框预测损失

本研究的检测框损失函数由损失函数L1和Liou组成,L1不仅提高检测准确率、避免梯度爆炸还可以快速收敛到更高的精度,提高模型的鲁棒性。但是L1在求解预测框时仅关注4个点的损失值,并没有关注4个值之间的关联性,不能反映真实框和预测框之间的包含关系,为此本研究引入损失函数Liou,将预测框作为一个整体进行回归。具体损失函数计算公式为

Lbox(bσ(i),i)=λiouLiou(bσ(i),i)+λL1‖bσ(i)-i‖1

(5)

Liou(bσ(i),i)=

(6)

式中λiou、λL1——权重参数

bσ(i)——第i个索引的真实框

B(bσ(i),i)——bσ(i)和i的最小包围矩形

B(bσ(i),i)σ(i)∪i——B(·)中没有覆盖bσ(i)和i的面积

1.5.2目标分类预测损失

本研究的目标分类损失Llabel采用交叉熵损失函数,交叉熵损失函数可以很好地描述输出值与真实值之间的距离,通过不断学习、优化模型预测的每个类别的概率与真实标签类别之间的距离,以达到正确分类的目的,具体计算公式为

(7)

式中n——测量样本总数

ci——真实类别输出

1.5.3体质量预测损失

体质量预测损失采用传统的损失函数L1,该损失函数有稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解,常用于回归预测。具体损失函数计算公式为

(8)

2 实验设置

2.1 实验环境

实验在Linux系统环境下运行,采用能够支持 GPU 加速和动态神经网络的深度学习开源框架Pytorch 1.10,配合 CUDA 11.0 进行训练。服务器搭载的处理器为 Intel Xeon E5-2678V3 CPU,2.50 GHz,48核,内存为270 GB,显卡为RTX3090×8。

2.2 参数设置

本研究通过解析视频流文件,获取到848像素×480像素、16位、单通道、PNG格式的图像数据作为数据集,将采集到的139头奶牛数据,按奶牛头数平均分成5份,选择其中4份作为训练集,其余奶牛数据组成测试集,采用5倍交叉验证的方式进行训练和测试。批量大小(Batch size)在显卡内存允许范围内设置得尽可能大,模型迭代次数共计60周期。优化器为Adam,其中骨干网络模块的学习速率为1×10-5,其他模块学习速率为1×10-4,权值衰减为1×10-5,解码器的查询对象设为100。根据经验损失函数的权重λ1、λ2、λ3分别设置为5、1、1。

训练网络使用在COCO数据集上预训练的网络模型进行迁移学习,参数在预训练模型的基础上根据本实验图像数据进行微调,通过此方式进行训练可以有效减少总体需要训练的迭代次数,大约在40次迭代后,模型收敛。

2.3 评价指标

为了评估本文方法并与其他非接触式体质量评估模型进行对比,本文采用平均绝对误差(Mean absolute error,MAE)和平均相对误差(Mean relative error,MRE)作为判断标准。此外,本文还利用单幅图像平均预测时间,来评估算法的时效性。

2.4 交叉验证

为了评估本文模型的性能,提升本文实验算法的可重复性和实验结果的可信度,本文模型均采用5倍交叉验证的方式进行训练和测试,首先将采集到的139头奶牛数据,共计约14 421幅图像,按奶牛头数平均分成5份,每份包含大约20%的样本。每次实验顺序选择其中4份约111头奶牛作为训练集,其余作为测试集,数据集划分结果如图6所示。利用训练集对模型进行训练,并在对应的测试集中进行测试,共进行5次训练和测试,将5次测试集的测试结果的平均值作为该模型的最终预测结果,就可以得到整个数据集的预测结果。

3 结果与分析

3.1 交替全连接层有效性验证

为了验证本文提出的交替全连接层对奶牛体质量评估精度提升的有效性,使用本文实验构建的数据集对以下模型进行训练和测试:体质量预测模块为交替全连接层的Cow-DETR模型、体质量预测模块为单全连接层的Cow-DETR (w/o AFC)模型、文献[23]所提出的基于Faster R-CNN的体质量评估模型与其体质量预测模块替换为交替全连接层的改进Faster R-CNN (w/AFC)体质量评估模型,文献[24]所提出的基于BotNet的体质量评估模型与其体质量预测模块替换为交替全连接层的改进BotNet (w/AFC)体质量评估模型。测试比对结果如表2所示。

表2 不同体质量评估模型性能对比Tab.2 Results of test dataset

从表2可以看出,交替全连接层可以大大减少MAE,有效提高体质量评估精度,其中Faster R-CNN (w/AFC)的MAE为24.32 kg,相比Faster R-CNN提升9.36%,MRE为5.04%,相比Faster R-CNN减少0.95个百分点;BotNet (w/AFC)的MAE为20.51 kg,相比BotNet提升10.32%,MRE为4.21%,相比BotNet减少0.54个百分点;体质量预测模块为交替全连接层的Cow-DETR体质量评估效果最好,MAE为17.21 kg,与Cow-DETR (w/o AFC)相比,精度提升22.16%,MRE为3.71%,相对于Cow-DETR (w/o AFC)减少0.82个百分点。Cow-DETR与Faster R-CNN (w/AFC)、BotNet (w/AFC)相比,MAE分别提升约29.24%和16.09%;MRE分别减少1.33、0.5个百分点,主要原因是本文提出的Cow-DETR模型采用注意力机制,可以更加关注奶牛背部深度信息,有效地避免除目标奶牛背部外的栏杆、粪便等杂物信息对体质量评估精度的影响。

综上,交替全连接层可以提升奶牛特征提取的能力,有效地提高体质量评估精度,本文提出的Cow-DETR在4种网络模型中具有最低的MAE和MRE,单幅图像平均预测时间为0.026 s,可以实现奶牛体质量实时且较高精度评估。

3.2 与分段式体质量评估模型对比

为了对比端到端的体质量评估方法与分段式的体质量评估方法的效果,本研究设计了分段式体质量评估模型对比实验,首先通过单独训练DETR目标检测网络进行个体目标检测,进而基于目标检测结果手工截取检测框内的奶牛深度图像;然后基于截取得到的深度图像数据集,设计单独的回归神经网络,预测奶牛体质量。与本文提出的Cow-DETR端到端式奶牛体质量评估模型进行对比,经过5倍交叉验证,在测试集中对比结果如表3所示。

表3 与分段式体质量评估模型性能对比Tab.3 Comparison with segmented weights evaluation model performance

从表3可以看出,Cow-DETR与DETR+Regression Network相比,其MAE提升39.61%,MRE减少2.25个百分点。主要原因是,本文提出的Cow-DETR奶牛体质量评估模型,采用含有注意力机制的端到端的预测方式,相比于分阶段式体质量评估模型单独训练的DETR目标检测网络,本文方法可以利用体质量信号对DETR网络进行监督训练,使网络的注意力模块更加关注奶牛体质量之间的差异,更好地对奶牛特征进行提取和对体质量进行预测,且单幅图像平均预测时间更短,符合牧场实际需求[30]。

3.3 与现有其他体质量评估模型对比

为了体现本文提出的Cow-DETR相比现有奶牛体质量评估模型的优势,将本文模型与现有奶牛体质量评估模型进行对比,对比结果如表4所示。

表4 与其他奶牛体质量评估模型对比Tab.4 Comparison with other cow weights evaluation models

由表4可以看出,文献[10]和文献[19]相对于其他现有体质量评估模型,其预测精度较高,但是其采集奶牛数据集数量相对较少,本实验使用的数据集共计139头奶牛,并采用5倍交叉验证的方式进行训练和测试,将5次测试集的测试结果的平均值作为该模型的最终预测结果,可以得到整个数据集的测试结果,且本研究在测试集中的MAE为17.21 kg,与文献[10]和文献[19]提出的方法相比分别提升1.66%和5.44%。

值得注意的是,表4中的现有体质量评估模型[9-10,18-20]都使用了分阶段的方式预测奶牛体质量,该方式首先通过第1阶段的网络预测对奶牛体尺或面积等特征值进行提取,之后利用上述特征值单独训练体质量回归模块进行奶牛体质量评估。但是,前段网络提取的特征容易产生不可避免的误差,影响后续体质量评估精度。而本文提出的Cow-DETR奶牛体质量评估模型,采用端到端的预测方式,避免了分段式的误差问题,再次验证了本文所提出的奶牛体质量评估模型可以进行较高精度的奶牛体质量评估。

3.4 Cow-DETR体质量评估模型评估结果与分析

为了进一步分析本文所提出的体质量评估模型的预测精度,对该模型在5个不同测试集上的5次评估结果进行分析。本研究采用5倍交叉验证的方式进行训练和测试,可以得到整个数据集的测试结果,因此测试集共139头牛,共计14 421幅图像。本研究给出数据集中每头奶牛的体质量估计值和真实值,如图7所示。为了更清楚地描述本实验模型体质量评估值和真实值之间的接近程度,本研究在测试集中随机选取800幅图像,并给出了每幅图像体质量评估值和真实值之间的绝对误差和相对误差,误差曲线如图8所示。图8表明,体质量评估的绝对误差一般小于23 kg(用红线标注),仅有少数测量误差较大,但也小于29 kg;体质量评估的相对误差较低,一般小于4.8%(用红线标注),主要在3.6%上下浮动,绝对误差较大的图像对应的相对误差也不超过5.2%。通过计算14 421幅测试图像的体质量评估结果,平均绝对误差为17.21 kg,平均相对误差为3.71%,结果表明,本文所提出的奶牛体质量评估模型的体质量评估值与真实值相近,模型预测精度较高。图9显示了本文模型在真实奶牛活动场景中目标检测和体质量评估效果,其中“Cow”表示待测对象的类别,类别对应的数值表示类别预测的概率,最后数值表示体质量评估结果。本文提出体质量评估模型对待测对象站立姿势和奶牛站立方向要求较低,仅需奶牛完整的出现在摄像区域,就可以检测出目标类别,并对其进行定位,以及预测出目标的体质量参数。待测对象的类别及其概率以及相应体质量评估值在图中目标检测框的左上角区域进行显示。通过与真实值进行对比证明,本文所提出的模型可以同时实现奶牛背部定位和体质量评估且评估结果较为准确。

图7 测试集检测结果Fig.7 Detection results of test set

图8 相对误差和绝对误差Fig.8 Relative error and absolute error

图9 实例结果Fig.9 Results of example

4 结论

(1)提出了一种基于奶牛背部深度图像和改进DETR算法的端到端式奶牛体质量评估方法(Cow-DETR),利用奶牛背部曲面变化的信息,在实现了非接触式端到端的高精度奶牛体质量评估的同时减少对奶牛位姿的要求,以及避免分阶段的体质量评估方式对奶牛体质量评估精度的影响。

(2)设计了一种深度图像补全处理方法,通过边缘平滑滤波器和孔洞填充滤波器,对奶牛背部深度图像进行补全处理,有效降低深度图像缺失对体质量评估的影响。

(3)引入了DETR网络,借助其注意力机制,更加关注奶牛背部,减少背景杂物信息对体质量评估的影响;同时在DETR网络预测模块中添加了含有交替全连接层的体质量预测单元,能够对奶牛体质量相关特征信息进行更好的提取,实现了在检测奶牛个体的同时对奶牛体质量进行预测。

(4)与现有其他体质量评估模型对比,本文体质量评估方法在奶牛数量更多的预测集中取得了更好的效果,其中MAE为17.21 kg,MRE为3.71%,单幅图像平均预测时间为0.026 s。结果表明,本文提出的Cow-DETR体质量评估方法可以利用奶牛背部深度图像对奶牛的体质量进行较高精度的非接触式评估,符合规模化牧场对奶牛体质量评估的实际需求。

猜你喜欢

奶牛深度预测
乍暖还寒时奶牛注意防冻伤
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
夏季奶牛如何预防热应激
深度理解一元一次方程
深度观察
奶牛吃草
深度观察
深度观察