基于深度卷积网络的育肥猪体重估测

2021-07-29 07:58张建龙冀横溢滕光辉
中国农业大学学报 2021年8期
关键词:猪体猪只卷积

张建龙 冀横溢 滕光辉,3*

(1.中国农业大学 水利与土木工程学院,北京 100083; (2.农业农村部设施农业工程重点实验室,北京 10083; (3.北京市畜禽健康养殖环境工程技术研究中心,北京 100083)

畜牧业正在朝着自动化、智能化和精确化的方向发展。对于养猪生产者来说,体重是最重要的参数之一,它可提供有关饲料转化率、生长速度、疫病、猪群生长均匀性和健康状况等信息[1-3]。体重也为调节环境和饲料营养提供了重要依据[4-5]。对育肥猪体重进行无应激、精准地实时估测有利于在提高动物福利的同时为猪场的自动化、智能化和无人化管理提供依据[6]。传统生产中,通过地秤测量猪只体重,测量过程中会造成猪只的应激,同时饲养员的工作强度也大[7]。近年来,已有研究提出了许多利用机器视觉技术无接触地估测育肥猪体重的方法,从而避免直接测量的弊端[8-10]:1)从猪体2D图像中提取猪只体尺、背部面积大小等参数,并通过猪只体重与这些参数间的关系模型来实现体重的估测,其估测的平均误差在3.38%~5.30%[11-14];2)获取猪体3D图像后,从3D图像中提取猪只背部高度、面积大小等参数,并通过这些参数估测猪只体重[4,6-8,15-16],该方法较使用2D图像精度有所提高;3)采用椭圆拟合的方法拟合猪只图像中的背部区域,并根据体重与拟合椭圆的质心、长轴短轴的长度、面积、区域偏心率等参数间关系模型估测猪只体重,采用该方法估测时的平均相对误差为3.0%~3.8%[2,17-18];4)采用带栅格的幻灯片向猪体背部投影,根据立体投影的原理计算猪体高度与面积大小后估测猪只体重[19],但该方法难以实现自动化。在上述研究中,一般需要将猪体图像做如下处理:移除背景、图像增强、图像二值化、滤波去噪、移除头尾和提取体尺、体积、背部面积等参数。整个图像处理过程比较繁琐,所需处理时间较长,难以适用于育肥猪分群饲喂系统、母猪饲喂站等对猪只体重获取速度和实时性要求比较高的场合。深度卷积网络可以从图像中提取多种信息,已经在动物行为识别、身份鉴定等方面得到了广泛的应用[20],并且以端到端的方式实现对图像的识别分析,处理速度快,可以满足实时运行的要求。在育肥猪分群饲喂系统[21]等对体重估测实时性要求严格的场合,可以尝试采用深度卷积网络模型提取猪只轮廓形状等体型特征,进而对猪只体重进行估测,以实现系统的实时运行。

本研究旨在通过深度卷积网络以线性回归的方式对育肥猪体重进行快速、无应激估测,首先于猪舍内搭建育肥猪体重及背部图像采集系统,获取了猪只体重及背部图像数据;将图像数据简单预处理后,通过考察不同深度卷积网络的准确率选取了效果最好的育肥猪体重估测模型;随后采用测试数据从识别速度、准确率等角度对模型的泛化能力进行了测试,旨为猪场的自动化、智能化和无人化管理提供依据。

1 材料与方法

1.1 体重及背部图像采集系统搭建

本研究中搭建了猪体重及背部图像采集系统(简称为系统)获取猪只体重及背部图像数据,系统结构如图1所示,长、宽、高分别为1 500、500、900 mm,顶部的相机安装架上装有骆日公司生产的LRCP10620_1080P型相机,距称重台高度1 650 mm,其分辨率为1 920像素×1 080 像素。系统底部的称重台下面装有4 个称重传感器,其测量范围为0~500 kg,经过标定后测量精度为±0.1 kg。系统两侧的限位栏可以保证称重时猪只整体都位于秤面上,当需要被移动时,可通过端部的两个移动轮方便地将系统移动。

1.相机安装架;2.称重台;3.移动轮;4.限位栏;5.称重传感器1.Camera mounting bracket; 2.Weighing platform; 3.Wheel; 4.Limit bar; 5.Weighing sensors图1 体重及背部图像采集系统Fig.1 Body weight and image acquisition system

系统控制程序基于物联网和LabVIEW V18.0软件开发平台编写,采用C/S架构,具体控制方案及程序界面如图2所示。相机通过USB接口与服务器连接,称重传感器获取的猪只体重数据由串口服务器转换为网络信号,并通过交换机传输至服务器。所有软硬件均由服务器控制,服务器中安装有Mysql 5.5版本的数据库,用于存储猪只体重及图像数据。系统每隔0.1 s读取一次称重数据,当连续读取的4次称重数据均位于猪群体重范围内,且4 个数据中最大值与最小值相差不到0.2 kg 时,认为有猪只到达了称重台且猪只相对安静,此时相机获取1 次猪只背部图像,并将猪只体重和背部图像数据存于数据库中,如此循环往复可以持续获取猪只体重及背部图像数据。所采集的图像为JPEG格式,图像名称为“采集时间_体重.jpg”,如9月23日15:32:52.123采集的体重为64.2 kg的图像名称为“0923153252123_64.2.jpg”。

图2 数据采集方案及程序界面Fig.2 Data acquisition scheme and program interface

1.2 数据采集及预处理

本研究中共采集了两部分数据,分别是建模数据和测试数据。建模数据于2020年7月—2020年10月在重庆市猪营养与环境调控科研基地的3号育肥舍采集,该舍采用半漏缝地板结构,舍内饲喂有300头育肥猪,共分为50栏,每栏尺寸为4 200 mm×2 500 mm,均配备有碗式饮水器。试验期间将体重及背部图像采集系统放置于栏内饮水器前方,猪只每次饮水时会进入系统站在称重台上,这样就可以通过系统自动获取猪只体重与背部图像数据,每隔2 天将系统清洗消毒后移动至下一个猪栏继续采集。试验期间共采集了100头“杜长大”3元育肥猪的数据,其中阉割后的公猪53 头,母猪47 头。试验刚开始时猪只日龄为75~80 d,体重范围为33~39 kg,结束时,猪日龄达到150~155 d,体重在95~111 kg,共获取了24 616 组猪只体重与背部图像数据。试验期间所有猪只都按照猪场防疫标准接种了疫苗,舍内温度在18.1~31.2 ℃,相对湿度范围为64%~93%。采用2019年3月在山东荣昌育种有限公司采集的80 头3元育肥猪(体重范围:40~100 kg)的976 组数据作为测试数据以考察所建立模型的泛化效果。

本研究中所获取的原始图像均为1 920像素×1 080像素,为了提高模型的识别速度与准确率去除了模糊、猪体不全的图像,并对保留下来的23 842 组建模数据和872 组测试数据图像进行了简单预处理,过程如图3所示:先统一在所有图像中央以1 200像素×800 像素大小裁剪图像,在保留猪体区域的同时去除背景、栏杆等无效信息,随后将裁剪后的图像分别缩放为299像素×299像素和224像素×224像素2种不同大小以适应不同网络模型的输入,由于图像整体缩放的过程不会改变猪体在图像中的相对位置,因此对最终估测结果的影响较小。

图3 图像预处理过程Fig.3 Image preprocessing process

1.3 体重估测模型的选取、训练及测试

本研究中采用深度卷积网络模型以线性回归的方式估测育肥猪体重,由于ResNet152V2[22]、Xception[23]、MobileNetV2[24]和DenseNet201[25]4种模型在ImageNet数据集上识别效果极佳,并且采用迁移学习的方式可以大大提高模型的训练效率,本研究中采用事先在ImageNet数据集上预训练(Pre-trained)过的以上4 个模型为基础架构,进一步改造后用于体重估测,具体过程为:分别去掉各个模型顶部的全部全连接层后,首先添加一层全局平均池化层(Global average pooling),再添加一层包含2 048 个节点和ReLU激活函数的全连接层(Dense),最后添加一层只有1 个节点且无激活函数的Dense层直接输出育肥猪体重的估测值。

随后,基于Tensorflow-gpu-2.2.0和Python 3.7.0搭建了各个网络模型,系统运行环境为搭载32 GB内存、Intel i7-9700 处理器、NVidia GeForce GTX 1660 Ti 6 GB显卡和Windows10 64位操作系统的台式计算机。模型训练过程中所用数据为建模数据,每张图像的标签为从各个图像名称中提取出的真实体重数据。将所有建模数据顺序打乱后以7∶3的比例随机分为训练集和验证集,模型训练时以预处理过的猪体背部图像为输入,猪只体重数据为输出。模型训练的过程也就是不断地改进模型参数使得目标损失函数最小化的过程,各个模型所用超参数的配置均相同且如表1所示,以各个模型在验证集上的损失值(Val-loss)为评判指标保留各个模型训练过程中的最佳参数。本研究中所用损失函数为均方误差(MSE),其计算公式如下:

(1)

表1 模型超参数配置Table 1 Hyperparameters of models

模型选定后,采用测试数据对各模型进行了测试,分别从体重估测的均方根误差(Root mean square error, RMSE)、平均绝对误差(Mean absolute error, MAE)、相对平均偏差(Mean relative error, MRE)、平均估测时间等角度考察了模型的估测效果。

2 结果与分析

2.1 模型选取及训练分析

各个深度卷积网络模型的大小、参数量等信息如表2所示,4 个模型中除Pre-trained Xception模型输入图像大小为299像素×299像素大小外,其余3个模型均为224像素×224像素。Pre-trained ResNet152V2模型总体大小、参数量等均为最大,其训练所用时间也最长,共花费了6.8 h,与之相反,Pre-trained MobileNetV2模型总体大小、参数量最小,训练仅花费了2.5 h。

表2 模型信息表Table 2 Information of models

训练过程中各模型对验证集数据的损失值(均方误差)的变化情况如图4,随着训练次数的增加,各个模型的均方误差均呈整体下降趋势,训练到第100 步时已趋于平稳。训练结束时Pre-trained DenseNet201模型均方误差最低,为3.44 kg2,Pre-trained Xception模型最高,为8.24 kg2,Pre-trained MobileNetV2和Pre-trained ResNet152V2模型分别为5.73和7.63 kg2。

图4 各个模型在验证集上损失值的变化Fig.4 Loss change on validation set of each model

Pre-trained DenseNet201模型在建模数据的验证集上的估测结果如图5所示,估测体重与猪只真实体重间的相关系数为0.993 9,均方根误差为1.85 kg,平均绝对误差为1.10 kg,平均相对误差1.57%。

图5 模型在验证集上估测结果Fig.5 Result of estimated weight of test data

2.2 模型的测试分析

采用于山东荣昌育种有限公司采集的测试集数据对各模型估测体重时的效果进行了测试,其结果见表3,其中Pre-trained DenseNet201模型估测效果最好,该模型估测的体重与猪只真实体重间的回归曲线见图6,位于40~55、[55,70)、[70,85)和[85,100) kg的数据分别有221、210、223和218组,数据在各个体重区间内分布均衡,且估测误差相近。估测体重和猪只真实体重间的总体相关系数为0.976 7,均方根误差为2.75 kg,平均绝对误差为2.1 kg,平均相对误差3.03%,估测效果良好,平均估测时间为0.16 s。

表3 各模型对测试集数据的估测效果Table 3 Estimated results on test set of each model

图6 模型在测试数据上的估测效果Fig.6 Estimated weight of test set

2.3 特征图分析

在输入图像经过Pre-trained DenseNet201模型的第1个卷积层后,共输出了64个特征图,图7为其中30个具有代表性的特征图输出。经比较输入图像与特征图发现,经过第1个卷积层后平滑了图像,消除了背景的干扰,提取出了猪体轮廓及边缘特征,并且可以适应不同亮度图像的输入,说明卷积神经网络是根据猪只轮廓等体型特征对其体重进行估测。

图7 模型第1个卷积层部分特征图输出Fig.7 Partial feature maps output of the first convolutional layer of Pre-trained DenseNet 201

3 讨 论

可能由于Pre-trained DenseNet201模型采用密集连接的机制,从猪体背部图像中获取了更多的信息,因此取得了最好的体重估测效果,对测试集数据估测体重和猪只真实体重相关系数为0.976 7,均方根误差为2.75 kg,平均绝对误差为2.1 kg,平均相对误差为3.03%,优于使用2D图像[11-14]和椭圆拟合[2,17-18]估测体重的效果,与通过从3D图像中提取猪只体尺、背部面积、体积等参数后再估测体重的方法[4,6-8,15-16]效果相近。特征图可视化的结果则表明模型从输入图像中提取出了猪体轮廓及边缘特征,说明模型是根据猪只轮廓等体型特征对其体重进行估测。

由于深度卷积网络模型是以“端到端”的方式对猪只体重进行估测,直接以简单预处理后的图像为输入,猪只体重为输出,可以省去传统估测方法中移除背景、图像增强、图像二值化、滤波去噪、移除头尾、提取体尺、体积、背部面积等步骤,因而可以大大提高猪只体重估测的速度。在前人提出的体重估测算法中,平均估测时间往往需要4 s以上,本研究提出的Pre-trained DenseNet201模型平均估测时间仅为0.16 s,该方法更适合用于育肥猪分群系统、母猪饲喂站等对猪只体重获取速度要求严格的场合。猪只体重估测的精度无法进一步提高可能是因为猪只体重会随着采食、饮水、排泄等行为而变化,这种变化很难在猪只背部图像中反映出来,此外,由于瘦肉率不同也会导致相同体积的猪只具有不同的体重,而深度卷积网络模型无法分辨出这两类原因引起的猪只体重变化进而产生体重估测误差。

4 结 论

本研究针对基于深度卷积网络模型估测育肥猪体重开展了试验研究,得出以下结论:

1)基于LabVIEW软件开发平台搭建了育肥猪体重及背部图像采集系统,分别于重庆市猪营养与环境调控科研基地和山东荣昌育种有限公司采集了建模数据与测试数据。选取并改造了在ImageNet数据集上预训练过的ResNet152V2、Xception、MobileNetV2和DenseNet201 4 种模型后,在建模数据上分别考察了各个模型的识别效果,最终选取Pre-trained DenseNet201为本研究使用的育肥猪体重估测模型。

2)在测试集数据上考察了Pre-trained DenseNet201模型的泛化能力,使用该模型估测猪只体重时,估测体重和猪只真实体重的相关系数为0.976 7,均方根误差为2.75 kg,平均绝对误差为2.1 kg,平均相对误差3.03%,估测效果良好,平均估测时间为0.16 s。该模型的估测准确度与前人先从图像中提取猪只体尺、背部面积、体积等参数,而后再根据这些参数估测体重的结果相近,但是其处理速度远快于传统方法,更适合用于育肥猪分群系统、母猪饲喂站等对猪只体重获取速度要求严格的场合。

综上,深度卷积网络模型可用于猪只体重的快速估测,并且可扩展到其他动物。在商业化猪场中,也可以在猪舍顶部架设滑轨并安装摄像头,使摄像头以移动的方式获取猪体图像,从而提高设备的利用率。

猜你喜欢
猪体猪只卷积
降低日粮粗蛋白并添加单体氨基酸对断奶—育肥猪生长性能和营养排泄的影响(中)
夏季养猪要做好防暑降温
基于3D-Winograd的快速卷积算法设计及FPGA实现
猪胃溃疡的病因与防治措施
秋冬季防应激不可忽略饮水消毒
从滤波器理解卷积
猪只硒缺乏症的预防措施和治疗方法
基于傅里叶域卷积表示的目标跟踪算法
基于单视角点云镜像的猪只体尺测量方法
学会8招夏季养猪增膘等4则