2. 哈尔滨工业大学 电子与信息工程学院, 黑龙江 哈尔滨 150006
2. School of Electronics and Information Engineering, Harbin Institute of Technology, Harbin 150006, China
随着"网易"、"阿里"、"京东"等互联网企业强势进入农业生产领域,人工智能技术开始广泛应用于动物养殖领域[1-4]。生猪的体重信息是生猪体况的重要参数。传统的生猪体重测量方法是磅秤测量或者悬挂称重,不仅不能实现体重实时监控以实现精细化饲养;而且会造成猪只应激反应,严重影响其生长速度。因此,无接触式测重方式一直是生猪养殖产业的一个热点以及难点问题。目前比较常见的非接触式体重测量方法多是基于机器视觉方法。学者利用视觉图像分析方法发现了猪体背部面积与体重参数之间具有很强的相关性[5];随后,证明了猪体背部面积和体高参数与体重的相关性最高[6];学者利用视觉图像分析方法进行了实际生猪体重的测量,并且取得了较好的精度;胡英新等[8]对单体生猪的体重参数以及体尺参数进行线性回归分析研究,利用体尺参数成功预测出体重数据。李卓等[9-10]利用立体视觉方式实现了生猪体尺参数的测量,通过SPSS软件处理体尺和体重数据,建立体重预估的数学模型,其研究重点是如何通过的精准的体尺参数,包括体长、臀围、胸围等参数,分析这些参数与体重之间的关系,同时加入品系影响因数,从而实现体重的预测。论文中利用人工测量的体尺参数作为模型校准参数,样本数据量比较少,很难确定精确的模型关系。深度学习算法恰恰能够在"大数据量"的驱动下,挖掘数据的潜在特征,从而实现精准预测。
近年来,基于深度学习的目标检测算法快速发展。Girshick等[11]提出R-CNN(regions with CNN features)算法,使用卷积神经网络(convolutional neural network, CNN)处理目标检测问题,基于数据集VOC2012平均准确率为53.3%。2014年,He等[12]提出了SPPNet,用于解决CNN输入图片尺寸不固定的问题,进一步推动了基于深度学习的目标检测算法的发展。Girshick[13]又推出了Fast RCNN算法,大幅提升了目标检测的速度。然而,应用此类算法进行目标检测依然存在一个瓶颈问题,即目标候选区域提取计算量大,候选区域提取复杂等问题。针对此问题,Ren等[14]对Fast R-CNN算法进行了改进,将候选区域提取部分也使用CNN来完成,并与后续目标检测网络参数共享设计了Faster R-CNN算法,大大减少了计算量。至此,Faster R-CNN算法成为这一系列算法中最为常用的主流算法。此外,一些研究人员将目标检测问题看成回归问题,也实现了较好的目标检测效果。2016年,一种新的目标检测方法YOLO(you only look once)使用一个神经网络,直接从整张图像来测量出边界框的坐标、物体的置信度[15]。在此基础上,又陆续推出了YOLOv2[16]和YOLOv3[17],进一步提升了网络的检测性能。Liu等[18]提出了一种与YOLO思想一致但效果更好的算法SSD(single shot multibox detector, SSD)。基于深度学习的回归拟合方面,Dai等[19]设计了一种多线性回归测量模型,专门用于分析和测量对尺度时序交通数据。Lu等[20]提出了一种Lasso和梯度增强混合的回归模型用于房价的预测,具有很好的检测精度。
综上,基于深度学习模型的目标检测算法以及参数预测的回归算法,都具有很高的精度,具有实际应用条件。本文算法的实际应用背景中,需先通过深度学习网络实现图像中目标的检测,将图片中的生猪目标识别出来,即首先完成分类任务,并对目标进行定位,而后利用深度学习网络进行回归计算,预测体重参数。若采用2个深度学习网络级联结构,虽然也可以完成任务,但特征提取层出现冗余,模型结构复杂度高,训练耗时。针对这一问题,本文提出一个多任务并行处理的端对端的深度神经网络,能够同时完成目标识别、定位以及参数测量。目标识别与定位网络使用联合训练方式进行训练,与目标参数测量网络之间进行交替训练,多个任务之间网络参数独立学习。
1 改进算法原理本文针对实际应用场景,通过将回归网络与Faster R-CNN算法融合,构建了一个端对端的多任务并行处理网络结构,实现对目标的识别、定位和参数测量。改进后的网络总体可以划分为2个部分,一是原始Faster R-CNN基本结构,它包含2个输出分别为目标候选窗口分类和窗口坐标偏移量回归;另一个是新添加的回归网络层,输出的是目标的参数归一化测量值。目标的参数回归部分网络与Faster R-CNN网络通过2个全连接层并行连接,构成了一个端对端的多个任务处理的网络。具体改进后的网络如图 1所示。
![]() |
Download:
|
图 1 改进后的网络结构 Fig. 1 Improved network structure figure |
原始Faster R-CNN网络包含3个部分,分别为基础特征提取网络、候选区域生成网络(region proposal networks,RPN)和Fast R-CNN输出网络。其网络框架如图 2所示。
![]() |
Download:
|
图 2 Faster R-CNN网络框架 Fig. 2 The framework of Faster R-CNN network |
回归网络分为特征提取部分和回归输出2个部分网络。其具体框架如图 3所示。
![]() |
Download:
|
图 3 回归网络基本框架 Fig. 3 The framework of the regression network |
2个网络均需要进行特征提取,共享2个部分网络的特征提取网络层可以减少网络需要训练的参数,且可以将2个网络通过特征提取网络层的共享而结合成一个统一的网络。原始Faster R-CNN网络经过RPN网络处理后可以得到目标的大致候选区域,这些候选区域经过ROI(region of interesting)池化处理后得到固定尺寸为7×7×512的特征向量。每个候选区域的特征向量使用ReLU函数和2个全连接层激活处理后,连接3个并行的全连接层分别输出目标的类别置信度、定位框坐标的偏移量和目标的参数归一化测量值。其中,新添加的分支是一个简单的回归网络,具体通过一个全连接层与Sigmoid函数结合的方式实现,全连接层和Sigmoid函数输出神经元个数均设置为1。具体改进部分的网络结构如图 4所示。通过添加这一分支,扩展了Faster R-CNN算法的功能,使网络可以对每一个候选区域进行进一步的参数测量,解决了一个图像中有多个目标时的参数测量问题。
![]() |
Download:
|
图 4 改进部分的网络结构图 Fig. 4 Image of improved partial network structure |
为了使网络测量值与目标的参数的真实标签一一对应,需要在图像真实参数标签输入到网络训练之前对其进行归一化处理,使其映射到[0, 1],具体为:
$ {\hat Y^{(i)}} = \frac{{y(i) - {y_{{\rm{min}}}}}}{{{y_{{\rm{max}}}} - {y_{min}}}} $ | (1) |
参数测量值为网络输出层测量值经过反归一化计算所得的数值:
$ {\tilde y^{(i)}} = {\hat Y^{(i)}}({y_{{\rm{max}}}} - {y_{{\rm{min}}}}) + {y_{{\rm{min}}}} $ | (2) |
式中:Y(i)为第i个样本的真实参数标签的归一化值;y(i)为原始真实参数标签;ymin和ymax分别为所有目标参数真实标签中的最小值和最大值;
与Faster R-CNN算法一样,当真实标签与测量候选区域的IOU(intersection over union)至少为0.5时,认为ROI是正例,目标的参数测量的损失函数只针对正例的ROI进行计算。原始Faster R-CNN目标检测的损失函数定义不变[8],新添加的回归测量分支的损失函数定义为[21]:
$ {L_{{\rm{new}}\_{\rm{eg}}}} = \frac{1}{{2m}}\mathop \sum \limits_{i = 1}^m {({\hat Y^{(i)}} - {Y^{(i)}})^2} $ | (3) |
式中:m为测量样本总数;
本文所提出网络的输入是一幅图像,目标类别、位置和参数的测量值是网络的输出。通过将目标识别和目标定位结合一起,利用联合训练方式进行权重参数更新。目标参数测量任务,则作为一个单独的任务使用独立的优化器优化。从整个网络表现上看,训练方式为交替训练方式。但是从内部任务来看,目标检测任务使用联合训练方式, 其损失函数继承了Faster R-CNN的结构[21]:
$ L(\{ {p_i}\} , \{ {t_i}\} ) = \frac{1}{{{N_{cls}}}}\mathop \sum \limits_i {L_{cls}}({p_i}, p_i^*) + \lambda \frac{1}{{{N_{reg}}}}\mathop \sum \limits_i p_i^*{L_{reg}}({t_i}, {t^*}_i) $ | (4) |
式中:加权求和的2项分别为交叉熵损失函数和SmoothL1损失函数,分别对应目标识别和目标定位框预测任务。λ为2个损失函数的平衡参数,依据经验设置为10。
本文目标参数测量网络损失函数为欧氏距离损失函数。交替训练过程中,每次优化只针对当前的学习任务,而不考虑另一个任务,故本文多个任务的整体训练方式如图 5所示,是联合训练方式与交替训练方式的混合训练方法。
![]() |
Download:
|
图 5 改进网络整体训练方式 Fig. 5 Training scheme of improved network |
原始Faster R-CNN参数利用Momentum优化参数,在利用该优化器对本文网络进行测试的过程中发现目标参数测量网络长时间不收敛,预测相对误差较大,因此本文尝试使用Adam优化器。它针对不同的参数计算不同的自适应学习率,每一次迭代学习率都有确定范围,参数比较平稳,所需内存资源少,收敛速度快,是目前最好的优化算法。具体为:
$ {m_t} = \mu {m_{t - 1}} + \left( {1 - \mu } \right){g_t} $ | (5) |
$ {n_t} = v{n_{t - 1}} + \left( {1 - v} \right)g_t^2 $ | (6) |
$ {{\hat m}_t} = \frac{{{m_t}}}{{1 - {\mu ^t}}} $ | (7) |
$ {{\hat n}_t} = \frac{{{n_t}}}{{1 - {v^t}}} $ | (8) |
$ \Delta {\theta _t} = - \frac{{{{\hat m}_t}}}{{\sqrt {{{\hat n}_t}} + \varepsilon }}\eta $ | (9) |
式中:mt是对梯度的一阶矩估计;nt为二阶矩估计;
网络参数优化过程如下:
$ {\alpha _t} = \alpha \sqrt {1 - \beta _2^t} /\left( {1 - \beta _1^t} \right) $ | (10) |
$ {\theta _t} \leftarrow {\theta _{t - 1}} - {\alpha _t}{m_t}/\left( {\sqrt {{v_t}} + \hat \varepsilon } \right) $ | (11) |
式中:β1为一阶动量衰减系数;β0为二阶动量衰减系数;α为步长;θ为模型参数;ε为网络模糊因子。本文使用优化器的默认参数为:
$ {\beta _1} = 0.9, {\rm{ }}{\beta _2} = 0.999, {\rm{ }}\varepsilon = 1 \times {10^{ - 8}} $ | (12) |
在数据和网络参数都相同的条件下,对比Momentum和Adam这2种优化器的目标参数测量损失函数变化曲线,如图 6所示。从图中可以看出,Adam优化器收敛速度比Momentum更快,且收敛平稳,损失函数一直在收敛数值附近轻微波动,并且收敛数值较小。测量值与真实值互相之间接近程度较高,Adam优化器对本文网络优化效果更好。
![]() |
Download:
|
图 6 2种优化器下的损失函数变化 Fig. 6 The loss function of two optimizer |
本实验所用数据为使用图森科技3D摄像头在吉林省某猪场现场采集的生猪背部深度图像,采集周期为1个月。本文共标注图像12 718张,其中训练集以及验证集图像共有9 989张,测试集图像2 729张,数据划分比例为8∶2,将划分好的图像索引分别写入trainval.txt和test.txt文档中,图像索引只包含图像名称,不包含图像扩展名。
2.2 实验参数设置1) 本文所提出的网络对图像输入大小没有任何限制,输入图像的大小不影响参数测量精度。输入图像经过基础特征提取网络后,图像尺寸进行归一化处理,长边设置为800 pixels,短边设置为600 pixels。
2) 本实验增加了数据增强以防止网络发生欠拟合现象。本文采用的方法是对输入图像进行水平镜像翻转,其中,镜像的对称轴是图像的中心线。经过数据增强操作后,数据集数量较原始数据集增长一倍,变为19 978张,大大增加了训练图像的数量。由于对图像进行翻转时,相应的感兴趣区域也进行相同的翻转操作,因此翻转后的图像目标候选区域能够与标签依然一一对应。
3) 训练图像中目标的体重参数范围为159.27~ 167.27 kg。在本文提出的网络训练之前,将目标的体重标注信息进行归一化处理,将其映射到[0, 1],与Sigmoid函数构成一一对应关系。
4) 网络初始化参数。待测图像分为2个类别,分别为"pig"和"pig_bad",算法默认的背景类为"background",因此本实验需要进行3个类别的目标分类识别。将目标分类识别网络的输出层类别参数设置为3,定位框坐标的输出单元个数设置为3×4,体重参数测量输出层的神经元个数设置为1,输出体重参数的归一化数值。训练网络使用ImageNet预训练的网络模型进行迁移学习微调操作。网络只使用了VGG16的前13层网络结构,故只迁移预训练网络的前13层参数,跳过其他层参数。其中,底层特征提取层参数不进行更新,具体指的是网络的前4层(conv1_1、conv1_2、conv2_1和conv2_2)的参数固定,其他层参数根据本实验图像数据内容进行学习微调,通过此方式进行训练可以有效减少总体需要训练的参数,RPN网络层以及Fast RCNN网络卷积层参数使用零均值、标准差为0.01的高斯函数随机初始化。
5) 网络训练相关参数设置。每批次送入网络训练的数据量为256。使用9 989张深度训练图像,训练迭代参数设置为20 000次,将初始学习率步长设置为0.000 1,经过4 000次训练,学习率依次衰减为原来学习率的1/10。网络训练利用GPU处理模式处理。网络其他参数从原始Faster R-CNN网络迁移过来。
6) 网络总体训练方式设置为交替训练。首先进行特征提取完成目标检测任务和目标体重参数测量2个任务的并行前向传播,随后共享特征提取部分网络参数,目标检测网络进行反向传播时,目标体重参数测量网络依然进行前向传播。反之亦然,总体上,目标检测任务和体重参数测量任务表现为交替进行,反向传播微调整体网络权重参数。
2.3 实验结果及分析改进网络的目标检测部分损失函数以及目标体重参数测量部分的损失函数,表征测量值与真实值之间的接近程度。经过20 000次迭代,2个任务的损失函数均达到1×10-10数量级,本文提出的网络已经成功收敛。对训练好的网络,利用测试图片进行测试。测试集中包含2 729张图像,用来验证模型性能。为了证明本文所提出的网络具有很好的泛化性,测试图片与训练图片之间没有重复。
为了更清晰地描述体重测量值与真实值之间的接近程度,本文随机选取1 000张图像的体重测量数值,体重参数测量误差曲线,如图 7所示。图中实线表示测量的绝对误差,虚线表示测量的相对误差。图 7表明,体重测量的绝对误差大部分小于0.8 kg,仅有少数测量误差较大,但也小于3 kg。测量结果表明,本网络的预测体重的相对误差较低,在0.5%附近有轻微波动。通过计算2 729张测试图像的测量结果,绝对误差的平均值为0.644 kg,相对误差的平均值为0.374%。实验结果表明本文所提出网络的预测体重参数与实际体重真实值相近,模型测量精度较高。
![]() |
Download:
|
图 7 测量误差变化 Fig. 7 Image of measurement error variation |
图 8为本文所提出的网络输出的结果图,其中类别为"pig"表示待测对象的类别,数值显示测量结果。无论获取到的待测对象身体角度如何变化,本文所提出的网络均能准确的检测出目标类别,并对其定位,以及预测出目标的体重参数值。图中所显示的矩形框左上角区域表示待测对象的类别、及其概率,以及相应的体重参数测量值。本文所提出的网络检测结果的mAP为0.909,通过与真实数值对比可以发现本文所提出的网络体重参数测量较准确。
![]() |
Download:
|
图 8 类别为"pig"的样本测试结果 Fig. 8 The test results of sample for category "pig" |
1) 本文通过改进Faster R-CNN目标检测算法的网络结构,扩展了网络的功能,成功设计并实现了2个网络的融合并使网络兼具目标识别、定位和相关参数测量等多个任务同时并行处理的功能。
2) 提出使用整体交替训练的方式,可以实现网络的快速收敛,同时将改进的Faster R-CNN算法应用于限位栏条件下单个猪体的体重的测量。
3) 实验结果表明,本文改进网络在限位栏有遮挡的条件下,目标体重参数测量的平均绝对误差为0.644 kg,相对平均误差为0.374%。测量效果好,可以满足实际应用的精度要求。
[1] |
李茜萌, 陈春雨, 何恒翔. 弹性部署的分布式AI计算架构研系统研究[J]. 应用科技, 2020, 47(5): 64-69. LI Ximeng, CHEN Chunyu, HE Hengxiang. Research on distributed AI computing architecture system with flexible deployment[J]. Applied science and technology, 2020, 47(5): 64-69. ( ![]() |
[2] |
熊梓奥, 苍岩. 育肥猪舍中得猪叫声端点检测算法[J]. 应用科技, 2020, 47(5): 79-86. XIONG Ziao, CANG Yan. The voice activity detection for oink in fattening pig houses[J]. Applied science and technology, 2020, 47(5): 79-86. ( ![]() |
[3] |
苍岩, 罗顺元, 乔玉龙. 基于深层神经网络的猪声音分类[J]. 农业工程学报, 2020, 36(9): 195-204. CANG Yan, LUO Shunyuan, QIAO Yulong. Classification of pig sounds based on deep neural network[J]. Transactions of the Chinese society of agricultural engineering, 2020, 36(9): 195-204. ( ![]() |
[4] |
苍岩, 胡云鸽, 乔玉龙. 基于改进实例分割算法的智能猪只盘点系统设计[J]. 农业工程学报, 2020, 36(19): 177-183. CANG Yan, HU Yunge, QIAO Yulong. Design of intelligent pig counting system based on improved instance segmentation algorithm[J]. Transactions of the Chinese society of agricultural engineering, 2020, 36(19): 177-183. DOI:10.11975/j.issn.1002-6819.2020.19.020 ( ![]() |
[5] |
SCHOFIELD C P. Evaluation of image analysis as a means of estimating the weight of pigs[J]. Journal of agricultural engineering research, 1990, 47: 287-296. DOI:10.1016/0021-8634(90)80048-Y ( ![]() |
[6] |
MINAGAWA H, MURAKAMI T. A hands-off method to estimate pig weight by light projection and image analysis[C]//Livestock Environment Ⅵ: Proceedings of the 6th International Symposium. Louisville, Kentucky, 2001.
( ![]() |
[7] |
PARSONS D J, GREEN D M, SCHOFIELD C P, et al. Real-time control of pig growth through an integrated management system[J]. Biosystems engineering, 2007, 96(2): 257-266. DOI:10.1016/j.biosystemseng.2006.10.013 ( ![]() |
[8] |
胡英新, 芦春莲, 褚素乔, 等. 深县猪早期体重、体尺变化研究及最优回归模型的建立[J]. 黑龙江畜牧兽医, 2015(2): 80-82. HU Yingxin, LU Chunlian, CHU Suqiao, et al. Study on changes of body weight and body size in early stage of Shenxian pig and establishment of optimal regression model[J]. Heilongjiang animal science and veterinary medicine, 2015(2): 80-82. ( ![]() |
[9] |
李卓. 基于立体视觉技术的生猪体重估测研究[D]. 北京: 中国农业大学, 2016. LI Zhuo. Research on pig weight estimation based on stereo vision technology[D]. Beijing: China Agricultural University, 2016. ( ![]() |
[10] |
刘同海, 李卓, 滕光辉, 等. 基于RBF神经网络的种猪体重预测[J]. 农业机械学报, 2013, 44(8): 245-249. LIU Tonghai, LI Zhuo, TENG Guanghui, et al. Prediction of pig weight based on radical basis function neural network[J]. Transactions of the Chinese society for agricultural machinery, 2013, 44(8): 245-249. ( ![]() |
[11] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH, USA, 2014: 580-587, DOI: 10.1109/CVPR.2014.81.
( ![]() |
[12] |
HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916. DOI:10.1109/TPAMI.2015.2389824 ( ![]() |
[13] |
GIRSHICK R. Fast R-CNN[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago, Chile, 2015: 1440-1448, DOI: 10.1109/ICCV.2015.169.
( ![]() |
[14] |
REN Shaoqing, HE Kaiming, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[C]//International Conference on Neural Information Processing Systems. MIT Press, 2017: 91-99, DOI: 10.1109/TPAMI.2016.2577031.
( ![]() |
[15] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA, 2016: 779-788, DOI: 10.1109/CVPR.2016.91.
( ![]() |
[16] |
REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA, 2017: 6517-6525, DOI: 10.1109/CVPR.2017.690.
( ![]() |
[17] |
REDMON J, FARHADI A. YOLOv3:an incremental improvement[J]. arXiv: 1804.02767, 2018. ( ![]() |
[18] |
LIU Wei, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector[C]//Proceedings of the 14th European Conference on Computer Vision. Amsterdam, The Netherlands, 2016: 21-37, DOI: 10.1007/978-3-319-46448-0_2.
( ![]() |
[19] |
DAI Liang, QIN Wen, XU Hongke, et al. Urban traffic flow prediction: a MapReduce based parallel multivariate linear regression approach[C]//Proceedings of the 17th International IEEE Conference on Intelligent Transportation Systems. Qingdao, China, 2014: 2823-2827.
( ![]() |
[20] |
LU Sifei, LI Zengxiang, QIN Zheng, et al. A hybrid regression technique for house prices prediction[C]//Proceedings of 2017 IEEE International Conference on Industrial Engineering and Engineering Management. Singapore, Singapore, 2017: 319-323.
( ![]() |
[21] |
王婷婷. 改进的Faster R-CNN在目标参数测量方面的研究与应用[D]. 哈尔滨: 哈尔滨工程大学, 2018. WANG Tingting. Research and application of improved faster R-CNN in object parameter measurement[D]. Harbin: Harbin Engineering University, 2018. ( ![]() |