时间:2024-05-24
郭阳阳 洪文浩 丁 屹 黄小平
(1.安徽大学互联网学院, 合肥 230039;2.农业生态大数据分析与应用技术国家地方联合工程研究中心, 合肥 230039)
随着居民生活水平的不断提高和消费主体的不断转变,羊肉的需求也日益增加,但当下肉羊养殖方式较为传统,产业化进程较缓慢[1]。现代化农业的发展,促进了畜牧业向规模化、智能化、现代化方向发展,而信息化是重要标志[2],其中动物的目标区域精准检测对牧场信息化具有重要意义[3-4]。在目标检测基础上可进一步挖掘动物的深层次信息(体况、行为、疾病等),对实现动物生长信息和健康状况监测提供了数据支撑。
传统的动物检测方法常通过电子耳标、项圈等集成传感器设备给定动物标号来实现动物个体检测与识别。但随着时间延长,传感器设备会出现脱落、标签模糊等现象,从而造成目标信息丢失、误检测等情况[5],此外,长时间的佩戴会导致牲畜感染或患上某些疾病,影响动物福利[6-7]。而计算机视觉作为一种非接触式无创伤的目标检测方法在智慧畜牧业中得到广泛应用。计算机视觉技术主要从图像或视频中提取生物视觉相关特征(例如,形状、颜色、纹理等),在此基础上通过机器学习等算法实现动物区域检测,但检测效果依赖于相关特征提取的是否充分[8-10]。
深度学习技术的发展,使其特征的提取能力提高,有效解决外界因素带来的干扰,满足现代化畜牧业的需求[11-12]。目前,深度学习技术已被应用到动物目标检测中,其中基于面部特征的目标检测是热门研究点之一[13-14]。秦兴等[15]在双线性卷积神经网络(Bilinear-CNN)的基础上提出了一种非侵入式的猪面部检测识别模型,猪面部检测识别准确率达到了95.73%。XU等[16]提出了一种孪生密集胶囊网络(Siamese DB capsule network,SDBCN)对牛脸图像进行了检测,检测准确率达到93%。张宏鸣等[17]将通道注意力算法(Efficient channel coalesce spatial information attention,ECCSA)融入到MobileFaceNet的深度卷积层和残差层中,并采用余弦退火进行动态学习率调优,构建了羊脸检测识别模型(ECCSA-MFC)。试验结果表明,该方法在人工筛选的数据集中准确率达到96.73%。SONG等[18]提出了一种基于YOLO v3模型修剪的羊脸检测方法(YOLO v3-P)。通过使用羊脸数据集对YOLO v3中的锚帧进行聚类,mAP从95.3%增加到96.4%,模型尺寸也缩小到原始模型尺寸的1/4。上述研究表明,高质量面部数据集对面部检测识别模型的性能提升有至关重要的作用,但并没有提升模型在更加复杂多变的现实环境中的检测性能。此外,羊只通常遍体纯色,羊头灵活,给脸部检测识别增加了一定难度;羊养殖环境较为复杂,遮挡、重叠、光线干扰等会造成漏检、误检问题的发生,在保证所构建模型检测准确率的前提下,也应满足牧场实时性的需求。
本文以黄淮山羊为研究对象,构建具有多样性的数据集(包含舍内、舍外、单头以及多头的山羊图像)。基于YOLO v5s检测模型,提出一种引入坐标注意机制的山羊面部检测识别方法。即在YOLO v5s模型的主干网络中引入坐标注意力机制,以充分利用山羊脸部的位置信息,从而提高遮挡、小目标、多视角样本的识别准确率和快速性,改善整体模型的性能。为进一步验证本研究方法的鲁棒性和应用性,构建模拟相机抖动和不同光照(白天、夜间)下的数据集,并对模型进行测试。
山羊图像采集于安徽省合肥博大牧业科技开发有限公司。在实际饲养环境下,通过手机拍摄并获取自然状态下的黄淮山羊图像。每幅图像中包含1~20只山羊不等。图像格式为jpg格式。数据集中包含不同角度、不同场景(舍内、舍外)、遮挡、单头以及多头等纯白色山羊,以充分模拟羊场的复杂性。采集的部分山羊图像如图1所示。
图1 采集的山羊图像
为了检测本研究采用模型的泛化性,从拍摄的图像中选取400幅作为样本数据集,其中存在遮挡且多头羊只的样本量约为300。数据集按4∶1分配为训练集与测试集。使用Labelme图像标注工具对羊脸进行标记,并将得到的json文件转化为txt形式,制作YOLO v5s模型所需格式数据集。YOLO v5s的作者在其源代码中添加了大量的数据增强策略,本研究基于Mosaic数据增强方式[19],选择图像色度、饱和度、亮度随机调整,以及图像翻转、错切、缩放、平移等数据增强方法,并将由4幅随机图像按照一定的概率转换成单幅图像作为每次的输入图像,从而扩大数据的多样性。最终样本数据集扩充为4 000幅。从图2中可知,与单幅图像的增强变换结果相比(图2c~2i),Mosaic图像增强(图2b)不仅扩充了样本数量,也进一步丰富了多场景多尺度信息。
图2 增强图像示例
YOLO v5属于轻量级模型,运行速度快,可满足牧场实时准确的需求,且模型内存占用量小,保证了该模型可移植到移动设备中,应用更加便携灵活。YOLO v5具有YOLO v5s、YOLO v5m、YOLO v5l、YOLO v5x共4个模型,网络宽度和深度依次增大。本研究选择YOLO v5s作为基础模型。
YOLO v5s网络架构由Input、Backbone、Neck、Output 组成,各部分具体组成如下。
Input:采用 Mosaic数据增强方式[19],对图像进行缩放、翻转、马赛克、色彩变化等操作,并自动计算数据集的最佳锚框值。
Backbone:由CSPNet[20]模块和SPPF[21]模块组成。CSPNet将基础层的特征映射成两部分,并通过局部跨层结构融合,获取不同层更丰富的特征图。SPPF模块进行最大池化操作并进行张量拼接。
Neck:由PANet[22]模块组成。PANet自顶向下将高层特征图中的语义信息与不同层CSP模块的输出特征进行有效聚合,再采用自底向上路径聚合结构聚合浅层特征。
Output:采用GIOU_Loss[23]为损失函数,增加了相交尺度的衡量,采用非最大抑制算法去除损失函数中贡献值较小的预测结果,生成边界框和预测类别。
针对实际饲养环境下羊只多角度、多尺度等特点,且为了进一步在山羊图像中精确地检测出脸部区域,本研究在YOLO v5s的基础上引入坐标注意力机制(Coordinate attention,CA),即YOLO v5s-CA模型,使模型关注于目标区域位置信息,以提高对遮挡和小目标区域的检测精度。改进后的山羊脸部检测网络结构图如图3所示,在主干网络每个C3模块后加入坐标注意力机制模块。
图3 改进的YOLO v5s结构
注意力机制作为提升卷积神经网络模型性能的一种有效方法,得到了广泛的应用[24-26]。其中,坐标注意力(Coordinate attention,CA)[27]是一种新的高效注意力机制,其结构图如图4所示。其通过精确的位置信息对通道关系和长期依赖性进行编码,第1步将坐标信息嵌入通道注意力中,对输入X,采用尺寸(H,1)和(1,W)的池化核沿着水平坐标方向和竖直坐标方向对每个通道进行编码,H、W分别为输入特征的高度和宽度,因此,高度为h的第c个通道的输出表达式为
图4 坐标注意力模块结构
(1)
xc(h,i)——第i行特征向量
同理,宽度为w的第c个通道的输出表达式为
(2)
xc(j,w)——第j列特征向量
利用一维全局池化操作将2个空间方向进行特征聚合,使得注意力模块捕捉到沿着一个空间方向的相关关系,并保存沿着另一个空间方向的位置信息,这有助于网络更准确地获取感兴趣的目标。第2步生成坐标注意力,首先将两个空间方向的输出张量进行拼接,使用1×1卷积进行F1变换操作,表达式为
f=δ(F1([zh,zw]))
(3)
式中f——在水平方向和竖直方向上编码空间信息的中间特征图
δ——非线性激活函数
F1——1×1卷积变换
zh、zw——编码输出
然后将f切分为2个单独的张量,再分别利用1×1卷积变换成X相同的通道数,最后利用Sigmoid激活函数得到注意力权重矩阵为
gh=σ(Fh(fh))
(4)
gw=σ(Fw(fw))
(5)
式中fh、fw——f在水平方向和竖直方向的切分张量
Fh、Fw——1×1卷积变换
gh、gw——水平、竖直方向的注意力权重矩阵
σ——Sigmoid激活函数
最终输出量yc(i,j)为
(6)
式中xc(i,j)——输入特征图
最后获取的yc(i,j)增强了目标位置信息的敏感度,通过自顶向下将改进后获取的各层yc(i,j)进行聚合,采用非最大抑制算法去除贡献值较小的预测结果,生成边界框和预测类别,实现羊脸区域检测。
本研究试验平台配置:操作系统为Windows 10;CPU为Intel(R)Core(TM)i5-10200H 2.4 GHz;GPU为NVIDIA GeForce RTX 1650 Ti;CPU显存为4 GB;内存为16 GB;加速环境为CUDAv10.2;Pytorch 版本为1.9.1;Python 版本为3.9.0。
为了验证YOLO v5s-CA模型的检测速率和轻量化,将YOLO v5s和YOLO v5s-CA主干网络替换成轻量级网络MobileNet v3,即构建YOLO v5s-MobileNet v3和YOLO v5s-MobileNet v3-CA模型,并与YOLO v5-CA模型进行对比分析。此外,为了验证本研究方法的整体性能,选择Faster R-CNN、YOLO v4和YOLO v5s模型作为对比模型。
采用mAP0.5、mAP0.5:0.95、精确率、召回率、帧速率和内存占用量作为模型评价指标,精确率(Precision,P)表示预测正样本中为正样本的比例,召回率(Recall,R)表示所有正样本中预测正确的比例。mAP0.5表示交并比(IOU)为0.5时平均精度均值,mAP0.5:0.95表示IOU从0.5到0.95、间隔为0.05时平均精度均值。帧速率表示目标网络每秒可以检测的图像数。
在构建的数据集基础上,将YOLO v5s-CA与YOLO v5s、YOLO v5s-MobileNet v3和YOLO v5s-MobileNet v3-CA模型进行对比研究。由表1可知,将主干网络替换成轻量级网络MobileNet v3后,模型内存占用量明显下降,检测速率有所提升,但检测精度低于原模型(YOLO v5s 94.3%,YOLO v5s-CA 95.6%)。YOLO v5s-CA的帧速率为69 f/s,模型内存占用量为13.2 MB,可满足轻量化实时性检测的需求。此外,在YOLO v5s主干网络融入坐标注意力机制(CA)后,较YOLO v5s模型的准确率提升1.3个百分点,召回率下降1.1个百分点,mAP0.5提升0.8个百分点,帧速率下降8 f/s。可见,YOLO v5s-CA模型融合坐标注意力机制牺牲了较小的帧速率但提升了检测精度。
表1 轻量级网络对比
以YOLO v5s为基础网络的模型采用Mosaic数据增强方式,图像输入尺寸为640像素×640像素,批量大小为8,最大迭代次数为300,使用随机梯度下降(Stochastic gradient descent,SGD)作为优化器,权重衰减为0.000 5,动量为0.937,初始学习率设置为0.01,训练过程中采用余弦退火算法进行学习率更新。训练过程中各模型验证集损失值及mAP0.5变化如图5所示。
图5 训练过程中损失值和mAP0.5变化曲线
可以看出,YOLO v5s-CA与YOLO v5s基础网络收敛速度相近,且二者收敛速度明显优于将主干网络替换成MobileNet v3的模型,在mAP0.5方面,YOLO v5s-CA最终超过了YOLO v5s,表现最优,约100个迭代周期后趋于平稳,而基于MobileNet v3模型的效果明显不佳。综上可知,轻量级网络MobileNet v3对于模型性能提升效果不大,在帧速率略高的情况下,检测精度反而降低,由此可见,YOLO v5s-CA的整体性能在检测精度和检测速度方面均取得了不错的效果。
为了验证本文方法的有效性,与Faster R-CNN、YOLO v4和YOLO v5s模型在测试数据集上进行了检测对比分析,结果如表2所示。由表2可知,YOLO v5s-CA 与Faster R-CNN相比,其检测精确率提高17.3个百分点,召回率提高0.1个百分点,mAP0.5提高5.4个百分点,帧速率是Faster R-CNN的8.63倍;与YOLO v4相比,其检测精确率提高27.5个百分点,召回率提高10.7个百分点,mAP0.5提高21.0个百分点,帧速率是YOLO v4的2.03倍。可以看出,YOLO v5s-CA相比Faster R-CNN和YOLO v4,其检测精确率及性能均更优,且在检测速度上有明显的提升。此外,YOLO v5s-CA和YOLO v5s均取得了较优的检测结果,本研究对YOLO v5s-CA和YOLO v5s的检测性能结合检测结果图像进一步对比分析,检测结果如图6所示。
表2 不同模型检测结果
图6 YOLO v5s和YOLO v5s-CA的检测结果对比
从图6中可以看出,YOLO v5s和YOLO v5s-CA模型在单只羊的脸部检测效果均较好,没有较大差异。而对于多只羊图像中的羊脸检测,由于图像中存在头部区域重叠和小目标,YOLO v5s模型会重复检测或漏检;YOLO v5s-CA融入坐标注意力机制,更好地利用了坐标信息从而更精确地获取感兴趣的特征,在检测多目标重叠或小目标情况上效果有所提升。
为了适应不同光照以及摄像机抖动带来的检测干扰,选择100幅图像分别进行Gamma(γ=0.5~0.7;γ=1.5~3.5)亮度调整和采用PIL库中的BLUP进行模糊处理,构建数据集来模拟不同光照和相机抖动的情况。在光照增强、光照减弱、模糊3种数据集上,对已构建的YOLO v5s-CA模型进行可行性分析,结果如表3所示。
表3 不同光照和模糊条件下的检测结果
从表3中可以看出,在光照增强和减弱情况下,YOLO v5s-CA的检测精度略高于YOLO v5s,但在模糊化中略低于YOLO v5s。模糊化后可能导致目标区域边界不明显,从而获取的位置信息略有偏差,但目前硬设备已较好地解决了抖动问题。图7为不同情况下的检测结果。可以看出,对于单只山羊,模型均得到了较好的检测结果。而对于多只山羊,在不同光照情况下,YOLO v5s会出现漏检而YOLO v5s-CA的检测结果有所改善。在模糊化情况下,两个模型检测结果相差不大。
图7 YOLO v5s和YOLO v5s-CA在不同光照和模糊条件下检测结果对比
4.4.1数据集对检测结果的影响
模型检测效果主要依赖于脸部特征,故脸部特征的有效获取直接影响检测的性能。YOLO v5s-CA在引入坐标注意力机制基础上更加充分地获取脸部区域特征。数据集中包含多角度、多尺度以及多目标等纯白色山羊图像。纯白色山羊不具有明显的花纹和斑块等特征,给山羊脸部检测增加了一定的难度。羊头部存在多角度的现象,当头部扭转、低头造成的头部特别是脸部特征的大量丢失,该情况下不能很好地检测出目标区域;此外,遮挡(外物遮挡、种间遮挡)造成脸部信息的丢失时检测效果较差。但相对于YOLO v5s模型,YOLO v5s-CA在该数据上的检测效果有所提升。
4.4.2模型应用性分析与展望
本研究中的YOLO v5s-CA模型内存占用量为13.2 MB,帧速率为69 f/s,检测精确率为95.6%,故可移植到移动平台实现便携灵活操作。此外,在检测到羊群的脸部区域的基础上,可以作为个数统计的辅助手段;其次,羊群中存在攻击、爬跨等社会行为,这也是生产者比较关注的行为。攻击行为存在安全隐患;爬跨行为对应发情行为,这对于生产者都是重要的信息。而这些行为可通过脸部区域与身体区域的相对位置关系来进行判断,例如攻击行为(图8黄色框对应攻击行为):羊头低下准备攻击,头部位置相对较低;爬跨行为(图8红色框对应爬跨行为):头部区域远高于身体区域。下一步可进一步检测获取身体区域来实现社会行为的识别,但对于密集性羊群、多角度、多尺度的数据集中,关联同一只羊的脸部区域与身体区域仍具有较大的挑战。
图8 羊群社会行为示例
(1)在YOLO v5s的主干网络中加入坐标注意力机制,充分获取目标区的位置信息,提高了对重叠区域和小目标区域的检测性能。改进YOLO v5s模型的检测精度为95.6%,召回率为83.0%,mAP0.5为90.2%,帧速率为69 f/s,模型内存占用量为13.2 MB。
(2)将YOLO v5s中的主干网络替换为MobileNet v3进行轻量级网络对比分析,结果表明轻量级网络对于模型的整体性能提升不大,其检测速度有所提升但检测精度明显下降,而YOLO v5s-CA在检测精确率和检测速度上均较优。
(3)改进YOLO v5s模型的检测精确率分别比Faster R-CNN、YOLO v4和YOLO v5s高17.3、27.5、1.3个百分点,可以有效改善漏检、误检问题。但在羊群过于拥挤、头部区域重叠严重、头部扭转等造成脸部信息大量丢失时,检测效果较差,仍有待提高。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!