目录

每天一篇目标检测文献一

每天一篇《目标检测》文献(一)

今天看的是《改进 YOLOv8 的轻量化密集行人检测方法》。



一、摘要

针对密集行人检测存在小目标检测精度低、模型复杂的问题,提出一种改进 YOLOv8 的轻量化密集 行人检测方法。引入 DualConv 模块替换原始 Conv 模块,帮助更深的卷积层更有效地提取信息,减少计算  冗余并提高检测精度;通过融合 RepViTBlock 结构和分离与增强注意力机制 SEMA(Separated and Enhancement Attention)改进 C2f,构建 RS-C2f 结构,提升模型的泛化和特征融合能力,并降低参数量;设计全新 的空间金字塔模块 SPPELAN_BiFPN,使模型对小目标行人检测精度显著提高,同时优化计算效率;采用 Focal_Shape-IoU 作为边界框回归损失函数,加快网络的收敛速度,提高对小目标的检测准确率。实验结果  表明,改进模型的 、Precision 和 Recall 在 CrowdHuman 数据集上提升 2.4%、1.1%和 2.1%,在 WiderPerson 数据集上提升 1.3%、1.0%和 1.7%,同时参数量下降 39.6%。在嵌入式设备上单帧图像平均运 行时间为 55.1ms,平均精度为 90.7%,召回率为 82.9%,表明改进模型在保证轻量化的同时提升了检测精度和速度。

二、背景介绍

行人检测是计算机视觉的一项关键技术,随着技术进步,检测技术也不断发展。传统检测主要依靠特征提取和分类器设计,虽然取得不错的成果,但实际应用仍存在问题。近些年,随着深度学习的发展,卷积神经网络(CNN)、区域卷积神经网络(R-CNN)及其衍生模型(Fast R-CNN和Faster R-CNN)都促进了行人检测技术的增长。SSD和YOLO这类实时检测的算法也满足了动态和复杂环境下的检测需求,但在复杂背景且聚集的情况下,检测变得更加困难。

为了解决这些问题,也有许多研究者做出了贡献。尽管效果良好,但仍存在以下的问题:

  1. 模型参数较大,复杂度高,不适合资源受限的设备
  2. 行人等小尺寸目标分布密集且像素面积小,容易漏检
  3. 行人信息容易丢失或特征冗余
  4. 数据集目标尺度差异大,边框可能标注不准确,增加低质量样本对锚框回归的干扰

针对以上问题,本文进行了如下的改进:

  1. 采用DualConv模块替换Conv模块,减少计算冗余
  2. 融合RepViTBlock结构和分离与增强注意力机制SEMA改进C2f,构建RS-C2f结构,降低模型参数量和计算量,实现轻量化
  3. 设计SPPELAN_BiFPN空间金字塔模块,避免信息丢失或特征冗余,提升重要特征的表达能力
  4. 采用Focal_Shape-IoU作为边界框回归损失函数,减少低质量样本对锚框回归的影响

三、YOLOv8介绍

YOLOv8是对YOLOv5的改进,网络结构如下:

https://i-blog.csdnimg.cn/direct/454f4bc007754f29b709839935de14f1.png

相对于yolov5的改进主要有以下几点:

  • 用C2f替代C3模块,减少冗杂参数,具有更少参数量和更强的特征提取能力
  • 引用自适应NMS算法,调整阈值,减少误检和漏检
  • 采用基于Anchor-Free的检测方式,直接预测目标中心和宽高,减少Anchor框的超参数

四 改进结构介绍

针对上述的不足,本文对YOLOv8进行了改进,改进的结构如下:

https://i-blog.csdnimg.cn/direct/2949281346e4406a855880a6ee2aeaba.png

可以看到,相比于原结构,改进的YOLOv8结构中,将Backbone中的第二三四个C2f模块替换成了RS-C2f模块,第四和第五个CBS模块替换成DualConv模块,输出SPPF替换成了SPPELAN_BiFPN。Neck中第一和第三四个C2f模块也被替换成RS-C2f模块,第二个CBS模块替换成了DualConv模块。在Head中没有修改,都是对三个模块产生的结果进行检测任务。

4.1 双卷积内核(DualConv)

双卷积内核配置激活函数和归一化层,增强了网络的非线性表达能力。我们这里假设输出特征图大小为D×D×N,输入特征映射在卷积层通过了N个大小为K×K×M的卷积滤波器进行滤波,则计算量 https://latex.csdn.net/eq?FL_%7BConv%7D 定义如下:

https://latex.csdn.net/eq?FL_%7BConv%7D%3DK%5E%7B2%7D%5Ctimes%20D%5E%7B2%7D%5Ctimes%20M%5Ctimes%20N

K×K是卷积核的大小,D是输出特征图的宽、高的维度,M是输入通道数(输入特征图的深度),N是卷积滤波器数量和输出通道数(输出特征图的深度)。

有了这个公式,我们再来看双卷积内核,其中采用群卷积和对偶卷积中的组数G调节卷积核K×K在卷积滤波器中的占比。对于一个指定的G,带线啊哦为(K×K+1×1)的组合卷积核在通道中的比例为 https://latex.csdn.net/eq?%5Cfrac%7B1%7D%7BG%7D ,而剩余1×1的卷积核比例则为(1- https://latex.csdn.net/eq?%5Cfrac%7B1%7D%7BG%7D )。所以G个卷积滤波器构成的双卷积层中,组合卷积核计算量则为:

https://latex.csdn.net/eq?FL_%7BK+1%7D%3D%5Cfrac%7B%5Cleft%20%28%20K%5E%7B2%7D+1%20%5Cright%20%29%5Ctimes%20D%5E%7B2%7D%5Ctimes%20M%5Ctimes%20N%7D%7BG%7D

剩余1×1的卷积核计算量为:

https://latex.csdn.net/eq?FL_%7B1%7D%3D%5Cfrac%7BD%5E%7B2%7D%5Ctimes%20M%5Ctimes%20N%5Ctimes%20%5Cleft%20%28%20G%20-1%20%5Cright%20%29%7D%7BG%20%7D

总计算量为:

https://latex.csdn.net/eq?FL_%7BALL%7D%3DFL_%7BK+1%7D+FL_%7B1%7D%3D%5Cfrac%7B%5Cleft%20%28%20K%5E%7B2%7D+G%20%5Cright%20%29%5Ctimes%20D%5E%7B2%7D%5Ctimes%20M%5Ctimes%20N%7D%7BG%20%7D

比较一下卷积层和标准卷积层的计算成本(FLOPs):

https://latex.csdn.net/eq?R%3D%5Cfrac%7BFL_%7BALL%7D%7D%7BFL_%7BConv%7D%7D%3D%5Cfrac%7B1%7D%7BG%7D+%5Cfrac%7B1%7D%7BK%5E%7B2%7D%7D

双卷积内核结构如下:

https://i-blog.csdnimg.cn/direct/e68e7f6b67c64e118481d08dcd602584.png

它结合了1×1 和3×3卷积核同时处理相同的输入特征图通道,利用组卷积技术排列卷积滤波器,减少计算成本和参数量。

采用DualConv代替标准卷积,能够使更深的卷积层更有效地提取信息,降低模型参数量和计算量,并在最大程度上减少特征信息丢失。

4.2 RS-C2f模块

分离与增强注意力模块(SEAM)和RepViTBlock的结构如下图所示:

https://i-blog.csdnimg.cn/direct/5d183e5b44614ec1b944def0144e3391.png

左图中左边是CSMM(通道和空间混合模块),右边是SEAM的体系结构。右图中的模块通过结构重新参数化技术将分词混频器和通道混频器分开,SE层在RepViT中是可选的。

整个RS-C2f模块的网络结构图如下所示:

https://i-blog.csdnimg.cn/direct/789db6039b5c4745aab550eb7e87818c.png

行人检测中目标通常较小,为有效提高对小目标的检测能力,作者提出在RepViTBlcok模块的输出操作前面加入了分离与增强注意力模块,融合成RVB-SEAM模块,同时将C2f模块中所有的Bottleneck改为RVB-SEAM,得到了全新的RS-C2f。这样,模型运算效率提升,参数量也减小,行人相应损失也更好地补偿,检测能力得到提升。

4.3 空间金字塔池化改进(SPPELAN_BiFPN)

空间金字塔池化是经典的特征提取方法,通过对输入特征图进行不同尺度的池化操作,可以获取更加丰富和具有代表性的特征信息。然而,在YOLOv8中,空间金字塔池化模块SPPF侧重于加速池化操作,未考虑定位的准确性,对特征的选择关注较少。

本文结合了BiFPN与Concat组成的Concat_BiFPN替换了SPPLELAN中的Concat,形成了新的空间特征金字塔池化模块SPPELAN_BiFPN。结构如下所示:

https://i-blog.csdnimg.cn/direct/29aaa1fb5ee14f368cd9334c7aecea3c.png

SPPELAN充分利用SPP的空间金字塔池化能力和ELAN的高校特征聚合能力。同时BiFPN通过改进特征融合路径来提升效率。BiFPN特征融合和SPPELAN_BiFPN结构图如下:

https://i-blog.csdnimg.cn/direct/4b20cd1d1ec74d0296a681d4ff614152.png

融合过后的模块可以确保各尺度特征之间的平衡,避免信息丢失或特征的冗余,提升重要特征表达能力。

4.4 损失函数优化(Focal_Shap-IoU)

小目标检测在训练期间前景类和背景类之间存在极端不平衡的问题,有人提出一种新的动态缩放的交叉熵损失函数(Focal Loss),通过一个动态缩放因子,以达到动态降低训练过程中易区分样本的权重,公式如下:

https://latex.csdn.net/eq?FL%5Cleft%20%28%20P_%7Bt%7D%20%5Cright%20%29%3D-%5Cleft%20%28%201-P_%7Bt%7D%20%5Cright%20%29%5E%7B%5Cgamma%20%7D%5Ctimes%20log%5Cleft%20%28%20P_%7Bt%7D%20%5Cright%20%29

https://latex.csdn.net/eq?P_%7Bt%7D 代表模型对真实样本的预测概率,γ是控制异常值抑制程度的参数,γ=0时,Focal Loss退化为交叉熵损失,γ>0时,Focal Loss降低易分类样本的权重,使难分类样本得到关注。

同时考虑边框回归样本自身形状与尺度对回归结果产生的影响,有人提出了回归准确性的边界框回归损失函数Shape-IoU,对应损失为:

https://latex.csdn.net/eq?L_%7BShape-IoU%7D%3D1-IoU+d%5E%7BShape%7D+0.5%5Ctimes%20%5COmega%20%5E%7BShape%7D

IoU为交并比,用于衡量预测框与真实框之间的重叠程度; https://latex.csdn.net/eq?d%5E%7BShape%7D 是形状距离,用于衡量预测框与真实框之间的距离; https://latex.csdn.net/eq?%5COmega%20%5E%7BShape%7D 是惩罚项,用于惩罚预测框与真实框之间的形状差异。其定义如下:

https://latex.csdn.net/eq?d%5E%7BShape%7D%3D%5Cfrac%7BHH%5Ctimes%20%5Cleft%20%28%20x_%7Bc%7D-x%5E%7Bgt%7D_%7Bc%7D%20%5Cright%20%29%5E%7B2%7D%7D%7Bc%5E%7B2%7D%7D+%5Cfrac%7BWW%5Ctimes%20%5Cleft%20%28%20y_%7Bc%7D-y%5E%7Bgt%7D_%7Bc%7D%20%5Cright%20%29%5E%7B2%7D%7D%7Bc%5E%7B2%7D%7D

https://latex.csdn.net/eq?%5COmega%20%5E%7BShape%7D%3D%5Csum_%7Bt%3DH%2CW%7D%5Cleft%20%28%201-e%5E%7B-%5Comega%20_%7Bt%7D%7D%20%5Cright%20%29%5E%7B4%7D

https://latex.csdn.net/eq?%5Cleft%5C%7B%5Cbegin%7Bmatrix%7D%20%5Comega%20_%7BW%7D%3DHH%5Ctimes%20%5Cfrac%7B%5Cleft%20%7C%20W-W%5E%7Bgt%7D%20%5Cright%20%7C%7D%7Bmax%5Cleft%20%28%20W%2CW%5E%7Bgt%7D%20%5Cright%20%29%7D%20%5C%5C%20%5Comega_%7BH%7D%3DWW%5Ctimes%20%5Cfrac%7B%5Cleft%20%7C%20H-H%5E%7Bgt%7D%20%5Cright%20%7C%7D%7Bmax%5Cleft%20%28%20H%2CH%5E%7Bgt%7D%20%5Cright%20%29%7D%20%5Cend%7Bmatrix%7D%5Cright.

WW和HH分别代表水平和垂直方向的权重系数,W和H代表锚框的宽和高, https://latex.csdn.net/eq?W%5E%7Bgt%7DH%5E%7Bgt%7D 代表GT框的宽和高, https://latex.csdn.net/eq?%5Cleft%20%28%20x_%7Bc%7D%2Cy_%7Bc%7D%20%5Cright%20%29%5Cleft%20%28%20x%5E%7Bgt%7D_%7Bc%7D%2Cy%5E%7Bgt%7D_%7Bc%7D%20%5Cright%20%29 分别表示真实框和预测框的中心位置。

结合以上两种损失函数,构建了Focal_Shape-IoU损失函数:

https://latex.csdn.net/eq?L_%7BFocal_Shape-IoU%7D%3DIoU%5E%7B%5Cgamma%20%7DL_%7BShape-IoU%7D

该损失函数解决了样本不平衡和边框回归不稳定的问题,减少低质量样本对锚框回归的影响,提高检测稳定性。

五、实验结果

5.1 实验环境

实验环境参数如下:

https://i-blog.csdnimg.cn/direct/3471517a3ef04f10b91a7bada465b85c.png

实验采用的数据集是Wider Person和CrowdHuman。

5.2 对比实验

本文对不同损失函数、不同C2f模块和不同特征金字塔改进模块和不同算法上都进行了实验。实验结果较好:

不同损失函数:

https://i-blog.csdnimg.cn/direct/b13cf788a2f04adaba85818000bfefe2.png

不同C2f模块:

https://i-blog.csdnimg.cn/direct/e1e28bee11274c1cb9ff8e47a7e1fd7d.png

不同空间特征金字塔改进模块:

https://i-blog.csdnimg.cn/direct/9e86c4f752ed4f3a8028468e261fedc2.png

不同算法:

https://i-blog.csdnimg.cn/direct/d6cb00e7a8e849ea9fc5a1b6105f9cbd.png

5.3 消融实验

Crow Human数据集:

https://i-blog.csdnimg.cn/direct/c6a133f393f543c39c2e8cffac00dcd2.png

WiderPerson数据集:

https://i-blog.csdnimg.cn/direct/75c5dc59242f4b73a61039f241e5659a.png