基于改进YOLOv5s的猪脸识别检测方法

2023-08-22 13:40李广博查文文陈成鹏时国龙辜丽川
西南农业学报 2023年6期
关键词:注意力准确率生猪

李广博,查文文,陈成鹏,时国龙,辜丽川,焦 俊

(安徽农业大学信息与计算机学院,合肥 230036)

【研究意义】随着现代养殖业的发展,生猪生产管理日趋福利化、系统化、智能化,而精准识别生猪个体是其中重要的一环。传统生猪个体识别主要有涂抹颜料、烙印、佩戴耳标、射频识别(Radio frequency identification,RFID)等方式。其中,涂抹颜料、烙印、佩戴耳标都有标记脱落以及感染等问题,不利于生猪的生产管理。射频识别则成本高并且信号易受到金属物质的干扰。为解决以上问题,当代养殖业逐渐采用基于机器学习的神经网络对生猪个体进行非入侵式识别[1-2]。非入侵的识别方法对生猪个体福利化、智能化养殖具有重要意义,能为从业人员提升工作效率提供参考。因此,有必要研究基于YOLOv5s模型的猪脸识别检测方法,以有效提升生猪个体的识别精准率。【前人研究进展】已知应用到猪脸识别的神经网络主要有:Marsort等[3]搭建的基于卷积神经网络的自适应猪脸识别方法,准确率达到83%;何屿彤等[4]提出的基于改进YOLOv3的猪脸识别方法,准确率达90.12%;Hansen等[5]提出基于卷积、最大池化以及密连等结构的CNN模型,在猪脸识别效果上有所提升。燕红文等[6]提出改进Tiny-YOLO模型的生猪脸部姿态识别方法,准确率达82.38%;Psota等[7]搭建一种全卷积神经网络对生猪进行实例分割,准确率达91%。【本研究切入点】上述非侵入式方法体现了生猪生产的福利化,但是在识别准确率方面有待进一步提升。拟以识别精度更高的YOLOv5算法为基础,并进一步优化算法。【拟解决的关键问题】旨在提升一般情况下的生猪个体识别准确率,改善生猪密集情景下的漏检以及远距离小目标情境下的漏检与分类置信度低。

1 材料与方法

1.1 样本采集与处理

本试验样本采集地为安徽蒙城京徽蒙养猪场(116°57′ E, 33°07′ N),采集工具为罗技C920Pro摄像头。为能够更好采集生猪的面部信息,本试验建立了远程操控采集装置系统,通过控制系统可以远程操控采集装置的摄像头,能够在光线充足的情况下分时进行采集,得到不同特征的生猪面部信息。共采集样本图像2126张,分辨率为1920像素×1080像素。

为确保得到优良的数据集,首先与饲养员进行沟通,得知多只圈养更符合养殖场的经济效益,所以本文主要采集多只圈养样本。同时,为了增强模型的鲁棒性也采集了少量的单只样本。随后对采集的数据进行筛选与整合,又对原数据集进行随机裁剪、随机偏移、Mosaic数据增强,将实验样本扩容到12 756张,其中随机裁剪、随机偏移可以提供生猪面部遮挡、正面、反面等样本数据,Mosaic数据增强,即把4张实验图片拼凑成1张进行训练,一定程度上提高了模型对于小目标的检测能力。试验中的生猪数据集共分为5类,即5个生猪个体,1个生猪个体为一类,使用labelImg手动标框并赋标签名,编号分别为pig1,pig2,…,pig5,其训练集与测试集样本划分比例约为9∶1。其中,保存的XML文件包含样本图像的目标框坐标与类别信息。标注界面如图1所示。

图1 猪脸数据集标注界面Fig.1 Pig face dataset annotation interface

1.2 实验环境

本试验采用16 G内存、NVIDIA GeForce RTX 2080Ti的显卡,Intel i7 9700F 3.0 GHz、内存16 G的处理器,在Pytorch 1.7.1、CUDA 11.1的环境下实现。

通过在大型数据集COCO上训练得到预训练模型的初始化权重,使用SGD优化器优化总体目标,训练批次为16,学习率设置为0.01,模型迭代100次。模型使用的图像尺寸均为640 px×640 px。

1.3 模型评估

本研究使用深度学习中常用的评价指标:召回率(Recall)、准确率(Precision)、平均精度(Average precision,AP)以及对所有类别AP值的平均值(Mean mverage precision,mAP),具体公式如下。

(1)

(2)

(3)

式中,TP(True positives)为正确的猪脸检测个数,FN(False negatives)为漏检的猪脸个数,FP(False positives)为虚检的猪脸个数。

1.4 YOLOv5算法原理

YOLOv5目标检测算法是继承了YOLO系列[9-12]算法精华的新一代算法[22-25],在权重文件、推理时间、训练时间上较YOLOv3[11]、YOLOv4[12]都有不同程度的提升。Yolov5官方代码中,给出的目标检测网络中共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x 4个模型。4个模型都在Yolov5s的基础上进行加深加宽。考虑到猪脸识别应用到项目中,所以本文选择了其中的轻量级网络Yolov5s,其结构主要分为4个部分,Input输入端、Backbone主干网络、Neck网络、Prediction输出端。

输入端主要通过Mosaic数据增强、自适应锚框计算、自适应图片大小3种方式对输入模型的图片进行统一处理。Backbone的作用主要是提取特征,主要包含Focus、BottleneckCSP、空间金字塔池化SPP模块。Focus模块是从输入图片中,周期性地抽出像素点重构到低分辨率图像中,即将图像相邻的4个位置进行堆叠,提高每个点感受野,并减少原始信息丢失,减少计算量加快速度。BottleneckCSP模块主要包括Bottleneck和CSP两部分,有效降低计算量提升速度。SPP[13]模块分别采用5/9/13的最大池化,再进行Concat融合,提高感受野。Neck中的PANET[14]基于Mask R-CNN和FPN框架[15-17],加强了信息传播,具有准确保留空间信息的能力,有助于对像素进行适当的定位形成掩模。Prediction主要是检测部分,它在特征图上应用锚定框,并生成分类概率、置信度和目标锚框最终的向量。完整YOLOv5s模型图如图2所示。

图2 YOLOv5s网络结构Fig.2 Yolov5s network structure

1.5 算法改进

1.5.1 优化目标锚框 目标检测先验锚框的大小对目标检测作用很大,选择合适的先验锚框,网络学习的检测器就精准。确定先验锚框的方式主要有2种:经验确定和聚类确定。YOLOv5采用K均值维度聚类(K-Means)的方式确定先验锚框,本文将K-Means聚类算法所用的欧氏距离改为1-IOU(bboxes,anchors)作为先验锚框的确定方式。为证明改进模型的可行性,本文引入Avg IOU作为评价指标,即先验框与实际目标框最大IOU的均值,Avg IOU越大代表得到的先验框越好。

本试验软硬件同上节1.2,实验样本均使用自制猪脸数据集,先验框的数目均为9个。先验框采用手工设计的记为Anchor Boxes,采用原版K-Means聚类的记为Cluster SSE,采用改进后的聚类记为Cluster IOU。

试验结果(表1)表明:在先验框的确定上,原版聚类算法优于手工设计方法,改进后的聚类算法优于原版聚类算法与手工设计方法,Avg IOU分别提升6.1%和2.1%。从而说明改进后的K-Means算法优于以上先验框确定方法,具有较高的适应度,提高了模型多尺度猪脸图像检测的效果。

表1 Avg IOU对比

1.5.2 引入坐标注意力机制CA 为从输入图片信息中选择出对当前任务更关键的特征信息,本文引入注意力机制,目前注意力机制主要包括空间注意力、通道注意力和自注意力3类。大部分注意力机制用于深度神经网络,可以很好提升性能,但带来的计算开销对于模型比较小的移动网络难以承担,所以本文主要引入SE[18](Squeeze-and-excitation)、CBAM[19](Convolutional block attention module)、CA(Coordinate attention)注意力机制[20-21]进行试验,最终采用新颖且高效的CA注意力机制(图3),通过精确的位置信息对通道关系和长期依赖性进行编码,在保证效率的同时几乎不带来额外的计算。

图3 坐标注意力机制Fig.3 Coordinate attention mechanism

为促使注意力模块能够捕捉具有精确位置的特征信息,对传统全局池化的方式进行分解,转化为2个一维特征编码。具体来说,首先给定输入X,使用尺寸为(H,1)和(1,W)的平均池化分别沿着水平坐标和垂直坐标对每个通道进行编码。因此,高度h和宽度w的第c通道的输出可以分别表示为下式。

(4)

(5)

上述2种变换分别沿2个空间方向聚合特征,得到一对方向感知的特征图。同时也允许注意力模块捕捉到沿着一个空间方向的长期依赖关系,并保存沿着另一个空间方向的精确位置信息,这有助于网络排除图片背景的干扰,更准确地定位感兴趣的目标。

通过信息嵌入中的变换后,将高度和宽度zh,zw进行拼接操作,并通过1×1卷积F1运算,生成空间信息在垂直和水平方向的特征映射图。

f=δ(F1([zh,zw]))

(6)

然后将f沿着空间信息分解为张量fh∈RC/r×H和张量fw∈RC/r×W。其中,r是用来控制采样大小的缩减率。再对Fh和Fw进行1×1卷积变换分别将fh和fw变换为具有相同通道数的张量。

gh=φ(Fh(fh))

(7)

gw=φ(Fw(fw))

(8)

式中,φ是sigmoid激活函数。同时通过合适的缩减比r降低f的通道数,减少模型的计算量和复杂度。最后再将gh和gw进行扩展操作,分别作为注意力权重,以下式作为输出。

(9)

在主干网络引入CA注意力机制前后的网络流程如图4所示。

图4 引入CA注意力模块Fig.4 Introduction of CA attention module

1.5.3 特征融合BiFPN 在神经网络经过主干网络提取特征之后,高层特征与低层特征的使用对提升模型在猪脸检测方面十分关键。原版Yolov5在特征融合使用PANET(图4-a)的双向特征融合,虽然整体提高了特征的使用与融合,但是未能针对性学习贡献量较大的特征并进行融合,并带来了较大的参数量和计算量。

引入轻量级通用上采样算子(CARAFE)特征融合、自适应空间特征融合(ASFF)以及BiFPN特征融合进行实验,最终选择效果较好的BiFPN(图5-b)改进双向跨尺度连接,并进行加权特征融合,具体流程如图6所示。首先,删除P3、P5中融合特征网络中贡献较小的节点,即只有一条输入边而没有特征融合的节点;然后在P4从原始输入到输出节点添加额外的边,以便在不增加太多成本的情况下融合更多的特征;最后将一对路径视为一个特征层,然后重复多次以得到更多高层特征融合。由于不同的输入特征具有不同的分辨率,不同分辨率包含不同的语义信息即特征的贡献量不同,所以通过快速归一化融合(式10)添加额外的权重,让网络通过权重学习到每个特征层的重要性。从而使模型在猪脸检测时有更好的性能。BiFPN特征融合改进前后的网络图如图7所示。

图5 PANET(a)、BiFPN(b)特征融合图Fig.5 Feature fusion graph of PANET(a) and BiFPN(b)

图6 BiFPN特征融合模块流程Fig.6 BiFPN feature fusion module process

图7 改进BiFPN特征融合模块Fig.7 Improved BiFPN feature fusion module

(10)

式中,wi≥ 0是通过在每个wi后应用Relu来确保的,∈=0.0001是避免数值不稳定的小数值。

2 结果与分析

2.1 改进目标锚框的实验对比

为进一步衡量优化目标锚框改进对猪脸识别检测的性能,在自制的猪脸数据集下,采用相同的实验装置与参数进行试验。如表2所示,对K-Means聚类确定目标锚框改进后的模型1相较于原版YOLOv5模型在准确率、召回率以及平均精确率都得到不同程度的提高。同时也为改进后的YOLOv5模型在多尺度猪脸检测的提升提供支持。

表2 目标锚框优化前后的性能对比

2.2 引入注意力机制的实验结果与检测结果对比

如表3所示,引入注意力机制的模型在准确率、召回率以及平均精确率都不同程度优于原模型,其中引入CA的模型在平均精确率和召回率更优于使用SE、CBAM的模型。进一步说明,CA效果优于只考虑内部通道信息而忽略位置信息重要性的SE,也优于在通道上进行全局池化来引入位置信息,但只能捕获局部信息,而无法获取全局依赖信息的CBAM。所以本文引入CA注意力机制,提升模型抗干扰能力与目标特征的提取能力,达到更好的猪脸检测效果。

表3 引入不同注意力机制的性能对比

图8-a为原版YOLOv5检测效果,对于稍微模糊的生猪面部识别存在漏检情况。图8-b为引入CA注意力模块的检测效果,有效提升了模型对位置信息的学习能力,增加了模型的抗干扰能力,较原版模型降低了漏检率,并一定程度提升了分类置信度。

图8 引入CA模块前后检测效果对比Fig.8 Comparison of detection effects before and after introducing CA module

2.3 改进特征融合的实验结果与检测结果对比

如表4所示,与原版YOLOv5模型相比,采用轻量级通用上采样算子CARAFE模型、自适应空间特征融合ASFF模型和BiFPN特征融合模型在准确率、平均精确率及召回率上都有提升,但采用BiFPN特征融合模型在平均精确率和准确率上明显优于前2种改进。所以采用BiFPN特征融合模型,将主干网络提取高层与低层的特征进行有偏重的使用,提高感受野,为模型提升猪脸检测效果提供了较好的数据基础。

表4 改进特征融合算法的性能对比

BiFPN特征融合模块改进前后(图9)均能正确检测出猪脸目标,但是改进后的模型更有针对性地利用高层和低层的信息,增大模型的感受野,使模型的预测边框更加精准、分类置信度更高。

图9 改进BiFPN特征融合模块前后检测效果对比Fig.9 Comparison of detection effects before and after improved BiFPN feature fusion module

2.4 消融实验

如表5所示,引入改进K-Means聚类、CA坐标注意力机制和BiFPN特征融合的模型在准确率、召回率及平均精确率较原模型均有不同程度的提升。说明改进K-Means聚类确定的先验框能够有效提升模型对目标检测框的学习效率;其次,由于CA对位置信息和通道关系具有长期依赖性,所以有效提高了模型对位置信息学习的效率并提升预测效果;最后采用BiFPN特征融合精简了特征融合贡献较小的节点,通过赋予权重等方式加强对贡献较大节点的使用,从而更有效地融合了低层与高层的特征图,提高模型对特征的使用效率,达到更好的检测效果。

表5 消融实验对比

对表5改进纵向对比可知,本研究采用的模型11除了在召回率上稍微低于单独引入CA的模型4与混合引入CA和BiFPN的模型10之外,其他各方面均处于领先。在平均精度mAP上,单独引入1个改进点(模型1、4、7)、引入2个改进点(模型8、9、10)和引入3个改进点(模型11)较原版YOLOv5模型提升幅度依次递增,从而更有力说明本研究改进的3个方式不仅单独对原模型有效,并且分别叠加使用对模型检测效果也是正相关。综合来看,依旧是3处一起改进的模型11效果最优,虽然召回率低于个别方案,但却达到了所有方案中最优的平均精确率(95.5%)和准确率(92.6%),分别比原版YOLOv5提升2.2%和13.2%,进一步说明改进算法的可行性。

2.5 模型11训练结果分析

模型11在训练中损失变化如图10所示,在Epoch为0~15时损失值下降较快,在Epoch为15~75时损失值下降趋于平缓,最后在Epoch为75~99时损失降至基本稳定,损失值收敛至0.01附近,训练过程中未出现拟合和欠拟合现象。

图10 Loss曲线Fig.10 Loss curve

2.6 模型11检测结果分析

在单只圈养目标情况下(图11-a),左侧原版虽然可以检出目标,但是受图片背景影响,目标检测框贴合效果较差,而右侧改进后的模型11不仅目标可以检出且检测框贴合紧凑,同时其分类置信度也有提升。说明,改进后的模型11在干扰背景下依旧保持较强的鲁棒性与精准度。

图11 结果可视化对比Fig.11 Visual comparison of results

在多只圈养目标情况下(图11-b),左侧原版对遮挡与模糊生猪面部识别存在漏检,而右侧改进后的模型11可以成功检出且检出目标分类置信度有一定提升。表明改进后的模型11对位置信息的学习以及高层与低层信息的利用进一步增强,在猪脸模糊与遮挡情况下,依旧可以检出并保持较高的精准度。

在密集和远距离目标情况下(图11-c),原版YOLOv5在密集、有遮挡、远距离小目标的生猪面部检测存在漏检。改进后的模型11可以检出在生猪样本密集环境下有遮挡且目标较小的pig4,有效减少模型漏检率并且分类置信度也有一定提升。表明,改进后的模型在目标较小、密集、有遮挡的场景下,泛化能力较强。

为了更好分析本文改进算法的优劣,在数据集与试验条件相同的情况下,分别对引入的其他改进算法进行试验。由表6可知,本研究采用的模型11除了在准确率上稍微低于模型5,召回率上稍微低于模型3,在其他方面均领先。其中在平均精确率上明显优于其他改进模型,比性能最低的模型2提升2%,比性能最高的模型6提升1.7%。进一步说明本研究算法应用于猪脸识别检测的可行性。

表6 与其他猪脸检测算法性能对比

3 讨 论

针对传统生猪养殖耳标识别存在易脱落、易引起生猪感染且识别难度大、精度低等问题,越来越多的从业者使用基于深度学习算法的非入侵式识别,减少生猪识别的人力投入,为实现生猪生产管理福利化、系统化、智能化提供新的可能。王荣等[26]提出一种开集的猪脸识别算法,在MobileFaceNet网络上通过引入深度可分离卷积、残差模块与注意力机制进行轻量化与模型改进,提升了开集猪脸识别的检测精度,准确率达到94.8%。Wang等[27]提出基于三重边缘损失的两阶段猪脸识别方法,两阶段模型的设计策略在保证非接触式猪脸识别的同时,也提高了猪脸识别的准确率。将迁移学习方法用于猪脸检测器中同时也将行人重识别的三元组边缘损失函数应用于猪脸识别,在保证模型准确性的同时减少了模型参数的数量,平均精准度提升为94.04%。Wang等[28]结合基于归一化的注意模块(NAM)注意机制和ResNet模型,建立了一个改进的ResNAM网络作为猪脸图像特征提取的骨干网络,用于探索非接触式开集猪脸识别,其识别准确率提升3%。上述研究均采用非侵入式识别并在猪脸识别效果上取得一定成效,但是未针对具体的单只、多只、小目标、密集、有遮挡的生猪场景进行创新与改进。本文模型11在YOLOv5s的位置特征提取与高低层特征融合进行改进,改善不同场景下猪脸识别的鲁棒性与精准度,其平均精度均值为0.955,较原模型提升2.2%。

模型11针对生猪个体识别问题,能较准确识别不同场景下多只生猪个体,识别速度快,识别准确率高,一定程度上解决了传统生猪养殖耳标识别的易脱落、易感染且识别难度大、精度低等问题,未来结合生猪检测平台,饲养员可以全天候对生猪进行观察,有利于育种猪、幼猪等重要生猪生长情况的统计与预测,并及时处理撕咬、攀爬等一系列突发问题。

同时由于本研究只采用5类生猪个体样本进行试验,存在一定局限性,为使模型11更好应用在现代化生猪养殖中,下一步将收集更多生猪个体图像并对模型进一步改进与调整,从而提高生猪个体图像识别的实用性与精准率。

4 结 论

本研究基于YOLOv5算法进行改进,采用距离改为1-IOU的K-Means聚类算法确定先验框,和向模型的Backbone模块引入了注意力机制CA以及在模型的Neck模块上提出了新的特征融合BiFPN,并应用到猪脸识别检测。在本试验环境以及猪脸数据集下,不仅对单独改进点进行了对比试验并且对多个改进点的算法也进行了对比试验。其中改进后的模型11最优,mAP达到0.955,较原算法提升2.2%。所以本试验改进后的模型11对猪脸识别的精度有一定提升,为生猪个体管理提供了可行的技术方案。

猜你喜欢
注意力准确率生猪
生猪中暑的诊断及治疗
让注意力“飞”回来
生猪贴“秋膘” 管理要跟上
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
入伏后,怎样防止生猪中暑
高速公路车牌识别标识站准确率验证法
生猪 广西生猪自成一极
“扬眼”APP:让注意力“变现”