基于改进YOLOv5的动物检测方法研究
作者: 赵小伟
关键词:YOLOv5;剪枝;知识蒸馏;轻量化;目标检测;野生动物
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2024)21-0031-05
野生动物的目标检测不仅能够提升野生动物保护和研究的效率和质量,还有助于推动生态保护的科学化、数据化,对维持生物多样性和生态平衡具有重要意义。
传统野生动物目标检测方法主要依赖于手工特征提取和简单的机器学习算法,这些方法在面对复杂多变的自然环境时展现出了低准确性、实时处理困难以及环境适应性差等明显局限性。基于深度学习的目标检测算法能够处理大量数据并提高检测的准确性和效率。而对深度学习目标检测算法的轻量化研究进一步扩展了其优点[1]。
野生动物目标检测模型的轻量化研究对于适应野外环境的资源限制、满足实时监控需求、提高部署灵活性、减少网络带宽和成本消耗至关重要,它使得这项技术能够在更广泛的场景中得到高效、经济的应用,从而更好地服务于野生动物保护和生态研究工作。张凡等[2]使用基于批标准化层的通道剪枝算法对目标检测算法进行进一步压缩。其实验结果表明算法模型参数数量降低了52.37%,计算次数降低了54.55%,[email protected]:0.95仅降低了约2个百分点。杜德峰[3]采用MobileNetv3作为骨干网络实现特征提取的工作,对YOLOv4目标检测算法进行轻量化设计,使模型参数量减少了87.25%,浮点计算量减少了89.86%,在基于GPU的Jetson设备中采用Tensor RT模型部署的推理时间为26.76ms。袁姣[4]将YOLOv5s的主干网络替换成ShuffleNetV2和RepVGG以实现轻量化,实现对密集场景的猪只盘点计数,实验结果证明了其所提出算法的有效性。王蕊等[5]使用非对称卷积和Ghost模块对网络进行轻量化,并在网络的第四阶段引入联合金字塔上采样模块实现对鸟类目标检测。刘雨青等[6]采用通道剪枝算法对YOLOv5s的主干网络进行修剪,实现对金枪鱼渔获数量的实时检测,结果表明,剪枝后的模型检测精度基本不变,模型的参数量、模型大小和计算量分别减少了67.2%、66.4% 和42.5%。于文华等[7]通过筛选无锚框算法,对YOLOX 算法进行轻量化实现对东北虎的检测,模型总参数量为8.938×106,减少18.47%。
以上轻量化目标检测研究在动物目标检测领域已经卓有成效,但主要是基于模型结构设计的轻量化,不同模型结构学习不同特征的能力不一样,因此可能会导致缺乏普遍性,并且以上研究中的场景和物种比较单一,对大中型野生哺乳动物的轻量化目标检测研究较少。因此,本研究通过自建大中型野生哺乳动物数据集,结合LAMP剪枝技术和知识蒸馏对YO⁃ LOv5n模型做进一步优化,探索对大中型野生哺乳动物的轻量化目标检测研究。
1 YOLOv5工作原理
YOLOv5(You Only Look Once V5) 是Ultralytics公司于2020年推出的目标检测算法,是继YOLOv4之后的更新版本,以其高度准确性和快速检测能力而闻名。YOLO系列目标检测算法是一种广泛使用的单阶段检测算法。这类算法在整幅图像基础上直接预测出不同目标的类别与位置坐标,在识别速度上相较两阶段检测算法更快。
YOLOv5的结构可分为主干网络、颈部以及检测头三个部分。YOLOv5采用CSPDarknet53作为主干特征提取网络,对目标图像进行特征提取。提取到的特征称为特征层,在主干部分定义80×80、40×40和20× 20大小的三个特征层为有效特征层,提供不同尺度的特征信息。YOLOv5通过将图像输入一个深度卷积神经网络来提取特征,并使用特征金字塔网络(FPN) 和路径聚合网络(PAN) 增强对小目标的检测能力。
该算法预定义一系列锚框来捕捉不同尺寸的目标,并直接从图像中预测目标的位置、大小和类别。通过非极大抑制(NMS) 处理预测结果,YOLOv5能够快速且准确地输出目标的边界框和类别信息。其核心优势在于将目标检测任务视为一个单一的回归问题,大幅提高了处理速度和准确性。
2 野生动物目标检测算法
2.1 剪枝
本研究采用LAMP(Layer-Adaptive Magnitude- based Pruning)剪枝方法[8]。LAMP分数提出了一种新型的计算权重并进行剪枝的计算方法,它通过计算目标连接的权重幅值的平方,并将其归一化为同一层中所有“幸存权重”的平方权重幅值之和,具体的得分公式如式(1)所示。该方法的核心思想是识别并保留那些对模型性能最为关键的参数,同时去除相对不重要的参数。不同于传统剪枝方法采取固定的稀疏率对所有层一视同仁,LAMP考虑到不同层在网络中的作用和贡献是不同的,因此为每一层动态地分配稀疏率。
其工作流程为:1) 首先加载经过YOLOv5n模型训练得到的权重文件,并对模型进行初始化;2) 对于每个连接的权重,计算其幅值的平方,并将这个值相对于同一层内所有保留(即非零)权重的平方幅值总和进行归一化,得到每个连接的LAMP分数;3) 根据计算得到的LAMP分数,选出那些具有较低分数的连接作为剪枝目标;4) 根据上一步的选择,将低分数连接的权重在模型中设置为零,实现对模型的物理剪枝。这一步骤完成后,模型的结构被实际修改,一些连接被永久移除;5) 为了补偿剪枝过程中可能出现的性能下降,对剪枝后的模型进行重新训练。这个阶段通过细微调整剩余连接的权重,旨在恢复甚至提升模型的性能;6) 重新评估训练后的模型性能,包括准确率、推理速度和模型大小等指标。
本研究的检测对象是大中型野生哺乳动物。由于被检测对象物种多样、姿态多变以及背景复杂等特征会产生大量信息,YOLOv5模型各个层或模块对信息的不同处理会对最终性能产生不同的贡献,因此采取局部剪枝的策略以保持模型结构的多样性。在对YOLOv5n进行剪枝时,设置加速比为2,设定了一个明确的性能优化目标,即期望模型推理速度提升2倍。通过动态调整正则化强度来帮助YOLOv5n模型在训练过程中保持良好的泛化能力,同时避免因剪枝而可能导致的过拟合问题。
LAMP分数衡量了目标连接在同一层中所有"幸存"连接中的相对重要性,并修剪每一层LAMP分数最低的权重直至达到修剪要求。这种修剪方法可以确保每一层至少保留一个权重,同时保留的是每一层最重要的权重。这种方式可以更精细地平衡模型的压缩率和性能,避免因盲目剪枝而对关键特征造成破坏,其修剪方式如图1所示。
2.2 知识蒸馏
知识蒸馏最初由Hinton 等人[9]在分类任务中提出。知识蒸馏的核心是通过教师模型来指导学生模型进行训练,使得学生模型在原有的准确率基础上有较大的提升,达到教师模型性能的水平。其目的是使学生模型能够在保持轻量化的同时,显著提升其准确率,尽可能达到或逼近教师模型的性能水平。其工作流程为:1) 训练教师模型:训练一个性能较好的大型教师模型;2) 生成软目标:使用教师模型对数据集进行预测,生成软目标;3) 训练学生模型:使用生成的软目标以及原始的硬目标来共同训练一个更小的学生模型。
该技术的关键是通过教师模型的软目标(soft tar⁃ gets) 来指导学生模型的学习。软目标是指教师模型输出层的激活值,它包含了关于类别之间关系的丰富信息,比硬目标(即真实标签)提供的信息更多。通过学习这些软目标,学生模型可以学到教师模型的一些细微的决策边界,从而在减小规模的同时尽可能保持其性能。
在动物目标检测的场景中,由于面临图像背景复杂、物种相似等挑战,以及模型剪枝后可能导致的准确率降低问题,知识蒸馏技术尤为关键。本研究将YOLOv5s设为教师模型,将剪枝后的YOLOv5n设为学生模型。图2为知识蒸馏的网络结构图。
大中型野生哺乳动物最为显著的特征是纹理和形状。在YOLOv5系列模型中,中间特征层捕获了从低级到高级的抽象特征,直接关系到模型对不同尺寸、形状和类别的对象的识别能力。因此,本研究设置知识蒸馏损失类型为特征蒸馏,即学生模型将尝试学习教师模型的中间特征表示。
3 实验结果分析
3.1 实验环境与参数设置
本研究的硬件实验环境为Intel(R) Xeon(R) Gold 5F2or1c8e处 R理TX器 3、06840G TBi 显RA卡M的、8高核性心能CP计U算以机及。NV该ID系IA统 G运e⁃行在64 位的Windows 10 操作系统下。实验构建在PyTorch 1.7深度学习平台上,并在Python 3.8的开发环境中执行,借助CUDA 10.2及cuDNN 7技术实现了对GPU的加速处理。
在训练过程中,输入图像的尺寸设定为640×640 像素,每个批次(batch) 的训练数据量为64。训练持续进行了300个周期(epoch) 。
3.2 数据集
本研究所用的数据集是一个自行收集的野生动物数据集,收集方式主要通过网络爬取。本数据集包括814张精选图像,涵盖野猪、猎豹、象、狐狸、猴子和熊猫。数据集经过预处理和标记,每张图片均配有标签,标识出图片中的野生动物种类及位置。图3展示了数据集中不同种类的野生动物图像。
具体数量分布见表1。
数据集被划分为训练集、验证集和测试集,比例为8:1:1。这种划分方式旨在保证模型在训练过程中能够充分学习到数据的特征。通过上述设计的数据集构建策略,为本研究轻量化YOLOv5的野生动物目标检测提供一个坚实、广泛且深入的数据基础,确保所提出的改进措施能在实际应用中获得有效验证和广泛应用。
3.3 评价指标
模型评价指标包括模型大小、参数量、GFLOPs (浮点运算次数),mAP@50(平均精度均值)。这些指标共同构成了本研究评估模型性能的框架,旨在提供一个全面和深入的性能分析。
式中:N 为目标类别数,P(R)是指基于Precision和Recall的曲线,AP为曲线下的面积,对所有类别的AP 值求平均得到mAP。
2) GFLOPs。GFLOPs指标衡量了模型的计算复杂度,即完成一次前向推断所需的浮点运算次数(以十亿次计)。这一指标是评估模型运行效率的关键,低GFLOPs值意味着较低的能耗和更快的推断速度,对于实时应用尤为重要。
4.1 实验结果与分析
本研究通过比较YOLOv5n-improve 与YOLOv3、YOLOv5s、YOLOv5m以及YOLOv5n模型的各项评价指标,进而全面评估改进算法在动物目标检测任务上的准确性、检测速度、模型效率和适用性。性能比较的结果如表2所示,以便直观地展示各算法间的性能差异和YOLOv5n-improve的优势。
通过表2可以发现,对YOLOv5n模型进行剪枝和知识蒸馏后得到的YOLOv5n-improve模型,相较于基准YOLOv5n在模型大小和计算量上均有所减少,分别下降了46%和50%,但检测精度([email protected]) 仅轻微下降0.2%,表现出更高的效率。相比之下,YOLOv3的模型尺寸为YOLOv5n的30.58倍,计算量为YOLOv5n 的35.81倍,但精度提升不明显。YOLOv5s在保持相对较低计算量(增加2.76倍) 的同时,[email protected]有轻微提升;而YOLOv5m在精度上有最显著提升(约3%) ,但伴随模型尺寸和计算量的大幅增加(分别上升9.85 倍和10.40倍) 。总体而言,YOLOv5n-improve在资源效率和精度之间提供了较好的折中方案,这对部署在计算资源受限的环境中极为有利。
以YOLOv5n的FPS(帧数)、推理时间以及训练时间为基准(100%) ,计算YOLOv5n-improve在这三项指标上相对于YOLOv5n的百分比,并用柱状图表示,如图4所示。
从图4中可以看出,与YOLOv5n相比,YOLOv5n- improve的FPS高于基准值100%,表明其在图像处理速度上有显著提升。FPS越高,意味着模型处理图像的速度越快,这对需要实时处理的应用尤为重要。