APP下载

基于Ghost-YOLOv3-2算法的2尺度猪目标检测

2022-05-09孙东来王继超陈科孙士尉刘昕彤周闻天

江苏农业科学 2022年7期
关键词:实时性特征提取残差

孙东来 王继超 陈科 孙士尉 刘昕彤 周闻天

摘要:为了提高养殖场猪目标检测的检出率和实时性,提出一种从特征提取骨干网络和特征金字塔网络这2个方面对YOLOv3算法进行改进的猪目标检测算法(Ghost-YOLOv3-2),并与经典YOLOv3、Ghost-YOLOv3、YOLOv3-2 等3种算法进行对比研究。试验结果表明,特征提取骨干网络的残差单元中引入影子块,可以在保留原有信息容量的同时减少计算量,提高网络速度;特征金字塔网络融合低层细粒度信息与高层语义信息,将输出层改为2尺度,可以进一步提高模型的表达能力与网络的实时性;改进的Ghost-YOLOv3-2算法在猪目标检测中平均精度(AP)达到88.03%,较YOLOv3算法提高5.2%;速度达到23.61 f/s,较YOLOv3算法提高34.6%,所提算法对猪检测的检出率和实时性有一定的提高。

关键词:猪目标检测;Ghost-YOLOv3-2;深度学习;特征提取;检出率;实时性

中图分类号: S126;TP18  文献标志码: A

文章编号:1002-1302(2022)07-0189-07

收稿日期:2021-06-28

基金项目:国家自然科学基金(编号:61773242);河北省教育厅青年基金(编号:QN2021228);河北省沧州市重点研发计划指导项目(编号:204102002);河北水利电力学院基本科研业务费专项。

作者简介:孙东来(1990—),男,河北沧州人,硕士,助教,研究方向为深度学习及目标检测。E-mail:598333985@qq.com。

通信作者:王继超,硕士,助教,研究方向为深度学习及智能优化算法。E-mail:491366271@qq.com。

随着养殖业的规模化和人工智能的兴起,实现养殖业的智能化与信息化已经成为目前的研究热点,而猪养殖智能化是实现养殖业智能化最为关键的一步。在現阶段大规模养殖场中,对于病猪的前期征兆和异常行为都是依靠人工观察来完成的,不仅劳动强度大,而且检测不及时[1]。实时、连续、准确地监测猪进食、饮水状况,对预防猪疾病、提高养殖福利具有重要意义[2]。因此,建立智能养殖系统,对猪的日常行为进行观察统计并对异常行为报警,可以极大提高检测效率,降低劳动成本[3]。其中,猪的目标检测十分关键,对后续的个体轨迹追踪以及病态检测等具有重要意义。目前,猪养殖系统最为成熟的是阿里云与特驱集团联合建立的“AI+养殖业”项目,但此项目中对猪目标检测设备要求较高,只适用超大规模的猪养殖场,对中小型猪养殖场没有借鉴作用。

目标检测是计算机视觉领域的主要研究内容,长期以来受到广泛关注。传统目标检测领域使用的区域选择策略时间复杂度高、冗余窗口多且效果差,得到的特征数据对于目标变化缺乏鲁棒性,所以逐渐被基于深度学习的目标检测算法所取代[4]。基于深度学习的目标检测算法主要分为2类:第1类为通过分类区域建议来检测目标算法,如区域卷积神经网络[5]、快速区域卷积神经网络[6]、更快速区域卷积神经网络[7]。这类算法是将目标检测分为2步,首先利用滑动窗法在图片上获得候选区域,然后提取候选区域的特征向量,利用分类器的评分结果判别候选区域的目标类别[8];第2类为基于回归方法的一步式深度学习目标检测算法,这类算法不需要进行候选区域提取,比较典型的代表是SSD[9]、YOLO[10-12]。其中,YOLOv3是在YOLOv2基础上采用新的激活函数和多尺度训练等方法,进一步提高了检测速度[13]。Redmon等的研究表明,在标准数据集上,YOLOv3无论在检测速度还是精度上都优于SSD算法[12]。但是,YOLOv3目标检测算法还主要存在3个问题:一是由于卷积神经网络的复杂性导致需要耗费较多的计算机资源才能实现实时检测的需求;二是面对目标出现大幅度抖动、快速移动、消失等情况时,目标检测算法的精确性和鲁棒性面临巨大的挑战[14];三是在某些特定场景下,YOLOv3算法不能针对某一目标尺度进行调整,从而使检测准确率下降,达不到特定的需求。宦海等提出了一种BR-YOLOv3目标检测算法,解决了目标尺寸差异较大时检测精度低、漏检率高的问题[15];王一婷等提出一种在同一场景下大尺度目标的识别和定位方法[16]。

针对现阶段猪智能养殖系统目标检测对设备要求高、普适性差的问题,本研究对YOLOv3算法进行改进,提出了一种可以实时准确地进行中大尺度的猪目标检测算法(Ghost-YOLOv3-2),同时易于在边缘设备上部署,适用于中小型的猪养殖场。主要工作如下:(1)构建猪数据集,取材于3处中小型猪养殖场约500只猪,共计2 400张照片。(2)针对YOLOv3算法猪检测实时性差的问题,参考2020年IEEE国际计算机视觉与模式识别会议(CVPR)中提出的GhostNet[17],借鉴其核心思想对特征提取骨干网络进行改进,即将影子块引入Darknet-53网络的残差单元中,生成部分“影子”信息,代替原有算法中大量无用的计算,使计算量明显减少,大幅提高网络速度,得到Ghost-YOLOv3算法。(3)针对Ghost-YOLOv3算法检测准确率低且存在较高漏检率的问题,本研究对特征金字塔网络进行改进,即去掉小目标尺寸,将低层细粒度信息与特征金字塔中信息进行融合得到中尺度特征,在进一步提速的同时确保算法准确率,最终得到 Ghost-YOLOv3-2算法。

1 YOLOv3网络介绍

1.1 YOLOv3网络结构

YOLOv3网络主要包括特征提取模块、特征金字塔模块和分支预测模块3个部分。特征提取模块采用的是Darknet-53网络,此网络包含53个卷积层,并引入残差结构,当输入图片像素尺寸为416×416时,输出3个尺度的特征度,大小分别为13×13、26×26、52×52,将3个不同尺度的特征图输入FPN模块,此模块包含3个预测分支结构,依次为大尺寸、中等尺寸、小尺寸目标的检测特征信息[18]。模块通过自顶向下的特征流,将来自高层预测分支中包含强语义特征信息融入到浅层特征中,为浅层预测分支提供更强的语义特征信息。最终将多类信息进行融合,得到模型的3个输出。

1.2 损失函数组成

YOLOv3网络的损失函数(Loss)由3个部分组成,包括目标误差( L  box)、置信度的误差( L  conf)和类别误差( L  cls)。

Loss=L  box+ L  conf+ L  cis。(1)

其中:目标误差损失使用均方误差进行计算,首先计算各预测区域与对应真实区域间的交并比(IOU),公式如下:

IOU=Area(A)∩Area(B)Area(A)∪Area(B)。(2)

式中:Area(A)表示真实区域面积;Area(B) 表示预测区域面积。

通过预先设定好的IOU阈值对预测面积进行筛选,筛选出IOU值大于阈值的区域,计算筛选后的区域( L  box):

L  box= λ  coord∑ S2i=0∑Bj=01obj i,j[(x i-x^ i)2+(y i-y^ i)2+(w i-w^ i)2+(h i-h^ i)2]。(3)

式中:λ  coord表示目標误差系数; S2表示输出尺度,即13×13、26×26、52×52;B表示每个网格所预测的边界框数,个;1obj i,j表示判断边界框里有无目标,有为1,无则为0;x i、y i、w i、h i分别表示预测框的中心点横坐标、纵坐标、宽、高;x^ i、y^ i、w^ i、h^ i分别表示标注框的中心点横坐标、纵坐标、宽、高。

置信度误差(L  con)使用交叉熵进行计算,公式如下:

L  conf=-∑ S2i=0∑Bj =01obj  i,jc^ i( ln  c i)+(1-c^ i) ln (1-c i)-λ  noobj∑ S2i=0∑Bj =01noobj  i,jc^ i (ln  c i)+(1-c^ i) ln (1-c i)。(4)

式中:λ  noobj表示惩罚权重系数;1noobj  i,j表示网格i的第j 个box和目标box的IOU值不是最大值; c i和 c^ i分别表示预测框和标注框的置信度。

类别误差(L cis)同样使用交叉熵进行计算,公式如下:

L cis=-∑S2i=0∑Bj=0{1obj i,jp^ i(c)[ ln  p i(c)]}+[1-p^ i i(c)]{ ln [1-p i(c)]}。(5)

式中:p i(c)和p^ i(c)分别表示预测框概率和标注框概率。

2 Ghost-YOLOv3-2算法的构建

针对YOLOv3算法对中大尺度目标猪检测存在的实时性有待提高和漏检率高的问题,本研究从特征提取骨干网络和特征金字塔网络2个方面对YOLOv3算法进行改进,得到Ghost-YOLOv3-2算法,改进后网络结构如图1所示。

2.1 特征提取骨干网络改进

YOLOv3使用Darknet-53作为特征提取骨干网络,在网络中引入23个残差模块,每个残差模块首先使用步长为1、大小为1×1的卷积核进行信息压缩,输出通道数为输入通道数的一半,然后使用步长为1、大小为3×3的卷积核进行特征提取,最后将2次卷积后的特征与残差单元输入特征按位置相加,得到新的特征。虽然引入残差模块可以使网络提取更深层次的特征并且避免了梯度离散和梯度爆炸的问题,但是模型的参数量也随之急剧增大,对模型的实时性能有很大的影响。本研究通过分析残差单元内的特征图发现,使用感受野较大的 3×3 卷积核进行卷积操作后存在较多的信息冗余。如图2所示,对Darknet-53第1个残差单元第2次卷积后的特征图进行可视化,可以看到在生成的特征图中存在较多相似程度很高的特征图对,其中1个特征图可以看作是另外1个特征图的影子,而使用一定尺寸的单通道滤波器对其中1个特征图进行线性变换即可得到另外1个影子特征图。因此,本研究将影子块[17]引入Darknet-53的残差单元中,用来生成影子特征图,在保证原有特征信息量不变的基础上降低网络的参数量,提高网络的实时性。

图3为原版Darknet-53的残差单元结构图,其中包含2个卷积块,每个卷积块由卷积层、线性变换层和非饱和激活层组成,卷积块中卷积层的参数量( S  1)计算公式为:

S 1=c×h′×w′×n×k×k。(6)

式中:c表示输入特征图通道数;h′、w′分别表示卷积操作输出的特征图高、宽;n表示输出特征图的通道数;k表示滤波器大小;k×k 表示滤波核大小。

如图4所示,使用影子块替换第2个卷积块,影子块首先进行普通卷积操作,然后使用深度可分离卷积对普通卷积得到的特征图进行线性化操作,生成的特征图与输入特征图进行堆叠得到最终特征图,影子块中卷积层的参数量( S  2)计算公式为:

S 2=c×h′×w′×n2×k×k+n2×h′×w′×k×k。 (7)

利用影子块生成与普通卷积块相同数量的特征图,可以轻松地替换原有的残差单元,以减少计算成本,带来内存和计算量的收益。卷积块参数压缩比( r c )可以计算为:

r c=c×h′×w′×n×k×kc×h′×w′×n2×k×k+n2×h′×w′×k×k。(8)

由公式(8)可知,卷积块参数压缩比约为2。从特征提取骨干网络浮点运算次数角度对模型进行空间复杂度对比,YOLOv3、Ghost-YOLOv3-2浮点运算次数(FLOPS)分别为81.7、30.9亿。结果表明,在特征提取骨干网络中引入影子块可以有效减少浮点运算次数,提升模型运行的速度。

2.2 特征金字塔网络改进

特征提取骨干网络中既有浅层的细粒度信息又有深层的语义信息,YOLOv3采用特征金字塔网络结构对浅层特征和深层特征进行信息融合,经过信息压缩和信息提取操作得到13×13、26×26、52×52等3个尺度输出,分别对应检测大目标、中等目标和小目标。本研究检测的养猪场猪普遍具有中等、大尺度的特点,因此去掉检测小目标的尺度,只保留中等、大目标尺度。应用场景中的猪多为中等尺度目标,为了降低中等尺度目标的漏检率,提高目标检测性能,将低层细粒度信息与特征金字塔中信息进行融合得到中尺度特征。如图5所示,卷积集合交替使用1×1和3×3大小的卷积核进行卷积操作,其中1×1卷积操作为信息压缩,3×3卷积操作为信息提取。特征提取骨干网络第23个残差块输出的特征图经过卷积集合后送入输出层,得到13×13的大尺度输出。第23个残差块的特征图经过卷积集合后进行上采样操作与第19个残差块的特征图进行堆叠,卷积集合对堆叠的特征图进行信息压缩和信息提取后与第11个残差块输出经下采样后的特征图进行堆叠,然后再次经过卷积集合后送入输出层得到26×26的中等尺度输出。改进后的特征金字塔网络加入浅层细粒度信息,增加了信息的丰富程度,可以提高对中大目标的检测能力。

3 试验结果与分析

本研究试验环境如下:Intel Core i5-10400F CPU,16 GB内存,NVIDIA GeForce RTX 2070 GPU,TensorFlow版本为2.1.0,TensorBoard版本为2.1.1,CUDA版本为10.2,CUDNN版本为7.6.5,试验操作系统为Ubuntu 20.10,使用python作为程序设计语言。

3.1 试验数据集及训练模型

目前在猪目标检测领域公开的数据集较少且质量较低,因此自行构建了猪样本数据集,数据集取景于河北省海兴县赵毛陶镇3处中小型养猪场,共包含2 400张猪样本图像。最后得到的猪数据集(图6),使用LabelImg打标签工具进行标注。本研究将样本图像按6 ∶3 ∶1比例划分为训练集、验证集和测试集。在训练阶段,应用随机梯度下降对模型参数进行调整,设置初始学习率为0.000 5,批量尺寸为8,试验中迭代次数为150。

3.2 对比试验

本研究分别对经典YOLOv3算法、2尺度YOLOv3算法YOLOv3-2、引入影子块的3尺度YOLOv3算法Ghost-YOLOv3及本研究最终改进的Ghost-YOLOv3-2算法进行训练,训练过程中对算法的指标进行动态记录,平均损失的变化趋势如图7 所示,引入影子块的2尺度YOLOv3算法 Ghost-YOLOv3-2 在第50个epoch收敛,平均损失值为5.86,与其他2种算法相比,收敛速度最快且收敛后的平均损失为4种算法中最低。

试验采用目标检测3种常见指标即精确度(precision)、召回率(recall)和平均精确度(average precision,简称AP)作为算法性能定量评价标准。精确度是指所有检测到的目标中正样本的比例,其公式如下:

precision=TPTP+FP。(8)

式中:TP表示检测出的正样本数量;FP表示检测出的负样本数量;FN 表示没有被检出的正样本数量。

召回率是指所有目标中被正确检测出来的比例,其公式如下:

recall=TPTP+FN。 (9)

平均精确度(AP)是不同置信度评价标准下精确度对召回率的积分,其公式如下:

AP=∫1 0p(r) d r。(10)

式中: p表示精确度;r 表示召回率。

将4种检测模型训练完成后,将猪数据集中的测试集用于检测,4种模型检测结果绘制成为精确度-召回率(PR)曲线(图8)。

在猪检测数据集上对最终改进算法、原版YOLOv3算法及其他改进算法进行测试,性能测试结果如表1所示。在数据集与超参数相同的情况下,提出的改进算法Ghost-YOLOv3-2与YOLOv3算法相比,目标检测平均精度提高5.2百分点,权重参数减少26.37%,实时性(帧率)由17.54 f/s变为23.61 f/s,提升了34.61%;与引入影子块的3尺度Ghost-YOLOv3算法相比,平均精度提高6.0百分点,实时性提高3.2%;与2尺度YOLOv3算法(YOLOv3-2)相比,虽然平均精度下降0.17百分点,但实时性有了大幅度提高,达到17.8%。

3.3 检测结果

如图9-a、图9-b所示,融合多层信息并改为2尺度的YOLOv3-2与经典YOLOv3算法相比,猪检出数目由3只提升到4只,且对于YOLOv3算法未检出的猪检测准确度能达到99.40%。由图9-c、图9-d可以看出,只加了Ghost模块的Ghost-YOLOv3算法漏检率偏高,达到40%,而2尺度的Ghost-YOLOv3-2算法能检测照片上的所有猪,且准确率较高。

4 结论与讨论

本研究提出了一种改进YOLOv3的猪目标检测算法,首先使用聚类算法对锚点尺寸进行优化,然后使用引入影子块的特征提取骨干网络进行特征提取,最后通过改进的特征金字塔网络实现2尺度目标输出。

利用普通卷积方法生成部分特征图,然后利用深度可分离卷积对特征图进行线性变换得到影子特征图,可以在保留原有信息量的基础上有效降低参数量,提高模型实时性;将浅层细粒度信息加入特征金字塔中,并将输出改为2尺度,可以豐富特征图信息量,降低模型漏检率,提高目标检测精度。在相同的条件下,宦海等提出的BR-YOLOv3算法平均检测精度为88.82%[15],与本研究的检测结果相近,但其速度为16.68 f/s,低于本研究结果,原因是宦海等利用空洞卷积,构建多层并行的空洞视野感受模块,提高了模型的表达能力,但是忽略了模型的运算速度。王一婷等提出的同一场景下超大目标尺度差异的目标检测方法对于中大尺度猪目标检测,平均检测精度为85.24%,速度为 19.66 f/s[16],均低于本研究结果,原因是王一婷等引入的动态IOU可以动态调整阈值,解决了样本尺度不均衡的问题,但在固定场景下如养殖场,猪的目标检测尺度相对固定为中大尺度,IOU的调整对检测准确率提升效果不大,并且在检测速度方面也并未改进。

本研究提出的Ghost-YOLOv3-2算法可以部署在嵌入式的边缘检测设备上,造价不高,适用于中小型智能猪养殖场,也可以为后续的猪轨迹追踪及健康状况评价提供有力的数据支撑。由于所提方法在对猪严重遮挡情况下检测具有一定的漏检率,下一步将结合轮廓检测的方法进行深入研究。

参考文献:

[1]党亚男,王 芳,田建艳,等. 面向猪的姿态识别的特征优选方法研究[J]. 江苏农业科学,2016,44(3):448-451.

[2]薛佳俐,杨曙明. 生猪福利养殖系统的研究进展[J]. 农产品质量与安全,2020(2):64-69.

[3]李菊霞,李艳文,牛 帆,等. 基于YOLOv4的猪只饮食行为检测方法[J]. 农业机械学报,2021,52(3):251-256.

[4]宋伟先. 基于深度学习的猪只目标检测及状态分析[D]. 哈尔滨:东北农业大学,2019.

[5]Girshick R,Donahue J,Darrell T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,Columbus,2014:580-587.

[6]Girshick R.Fast R-CNN[C]//Proceedings of IEEE International Conference on Computer Vision. Santiago,2015:1440-1448.

[7]Ren S,He K,Girshick R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence,2017,39(6):1137-1149.

[8]柳长源,王 琪, 毕晓君. 多目标小尺度车辆目标检测方法的研究[J]. 控制与决策,2021,36(11):1-6.

[9]Liu W,Anguelov D,Erhan D,et al. SSD:single shot multibox detector[C]//European Conference on Computer Vision. The Netherlands:Springer,2016:21-37.

[10]Redmon J,Divvala S,Girshick R,et al. You only look once:unified,real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.

[11]Redmon J,Farhadi A.YOLO9000:better,faster,stronger[C]//IEEE Conference on Computer Vision & Pattern Recognition,2017:6517-6525.

[12]Redmon J,Farhadi A.YOLOv3:an incremental improvement[Z/OL]. (2018-04-08)[2021-06-16]. https://arxiv.org/abs/1804.02767

[13]曾镜源,洪添胜,杨 洲. 基于实例分割的柚子姿态识别与定位研究[J]. 河南农业大学学报,2021,55(2):287-294.

[14]Howard A G,Zhu M,Chen B,et al. MobileNets:efficient convolutional neural networks for mobile vision applications[C]//IEEE Conference on Computer Vision and Pattern Recognition.Honolulu,2017:1-9.

[15]宦 海,陳逸飞,张 琳,等. 一种改进的BR-YOLOv3目标检测网络[J]. 计算机工程,2021,47(10):186-193.

[16]王一婷,张 柯,李 捷,等. 同一场景下超大尺度差异物体的识别和定位方法[J]. 计算机应用,2020,40(12):3520-3525.

[17]Han K,Wang Y H,Tian Q,et al. GhostNet:more features from cheap operations[C]//2020 IEEE Conference on Computer Vision and Pattern Recognition. Seattle,2020.

[18]Lin T Y,Dollár P,Girshick R,et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu,2017.

猜你喜欢

实时性特征提取残差
基于双向GRU与残差拟合的车辆跟驰建模
基于规则实时性的端云动态分配方法研究
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
基于Daubechies(dbN)的飞行器音频特征提取
基于虚拟局域网的智能变电站通信网络实时性仿真
航空电子AFDX与AVB传输实时性抗干扰对比
Bagging RCSP脑电特征提取算法
平稳自相关过程的残差累积和控制图
基于MED和循环域解调的多故障特征提取