2. 郑州大学 网络空间安全学院 河南 郑州 450002
2. School of Cyber Science and Engineering, Zhengzhou University, Zhengzhou 450002, China
随着我国交通事业的发展,交通事故发生率在不断上升,其中因行人违规违章穿越道路而造成的交通事故也相当严重。行人作为道路交通环境中的参与者,其行为将直接影响交通环境秩序。因此,通过对交通场景下的行人进行实时检测,规范行人交通行为,对于保障道路交通安全具有重要意义。
现阶段基于深度学习的目标检测方法[1]主要有两种:一种是二阶段的R-CNN[2]、Faster R-CNN[3]等;另一种是一阶段的YOLO[4]、SSD[5]系列。目前,这些方法已经被用于解决行人检测问题。例如,陈泽等[6]通过改进Faster R-CNN算法,有效解决了小尺度行人在深层特征图中特征信息不足的问题,提高了小尺度行人的检测性能。钱惠敏等[7]通过改进YOLOv3网络模型,提高了对遮挡目标、密集小目标的检测效果。上述算法虽然在一定程度上解决了行人检测算法中遮挡目标和小目标行人的问题,但是依然存在计算量较大、模型网络复杂以及在一些低性能设备上难以部署等问题。因此,为了降低模型的复杂程度、减少计算量,本文对YOLOv5s网络进行了改进。首先采用轻量化模块Ghost重构YOLOv5s网络,通过廉价的线性操作生成更多的特征图,降低模型的复杂程度,减少参数量和计算量,提高模型的推理速度;其次,将坐标注意力机制引入YOLOv5s主干网络,提高目标特征的提取能力,提升对小目标行人的检测效果;最后,将边界框回归损失函数改为SIoU损失函数,考虑真实框与预测框之间方向不匹配的问题,加快网络的收敛速度,提升检测精度。在自制数据集和BDD100K行人数据集上的测试结果表明,相比原始YOLOv5s算法,改进后的算法在保持较高检测精度的情况下有效地降低了模型的参数量和计算量,提升了检测速度。
1 YOLOv5s网络结构YOLOv5[8]算法是YOLO算法的第五代,具有推理速度快、训练时间短、检测精度高等优点。YOLOv5s模型主要由Input、Backbone、Neck和Head组成。Input是网络的输入端,用于输入原始图像;Backbone为主干网络,用于提取目标特征;Neck是网络的颈部,用于实现对不同尺寸特征层的融合;Head为网络的头部,输出3个尺度的特征图,不同尺度的特征图用于检测不同尺寸的目标对象。YOLOv5s网络结构如图 1所示。
![]() |
图 1 YOLOv5s网络结构 Fig. 1 YOLOv5s network structure |
本文在YOLOv5s网络模型的基础上进行改进,可以实现交通场景下行人的实时检测。
2.1 重构YOLOv5s网络Ghost模块[9]是一种模型压缩方法,其核心思想是将原有的卷积操作分成两步:首先使用少量卷积生成特征图,在这部分特征图上通过线性操作生成更多的特征图,再将这两部分进行拼接。普通卷积与Ghost模块的对比如图 2所示。
![]() |
图 2 普通卷积与Ghost模块的对比 Fig. 2 Comparison between ordinary convolution and Ghost module |
对于普通卷积,给定输入为X∈Rc×h×w,输出为Y = X*f+b。其中:c为输入通道数;w和h为输入数据的宽度和高度;*为卷积运算;b为偏差项;f∈Rc×k×k×n表示卷积核大小为k×k的c×n个卷积运算;Y∈Rh′×w′×n表示输出的n个特征图,其高度为h′,宽度为w′。所需的浮点运算数(floating point operations,FLOPs)为n×h′×w′×c×k×k。对于Ghost模块,第一步使用少量普通卷积生成m个特征图,计算公式为
$ \boldsymbol{Y}^{\prime}=\boldsymbol{X} * \boldsymbol{f}^{\prime}, $ | (1) |
其中:f′∈Rc×k×k×m是使用的卷积核,m≤n;Y′∈Rh′×w′×m为生成的m个原始特征图,此处省略了偏置参数。然后,对输出的原始特征图集合Y′进行线性变化,以生成Ghost特征图,计算公式为
$ \boldsymbol{y}_{i, j}=\boldsymbol{\varPhi}_{i, j}\left(\boldsymbol{y}_i^{\prime}\right), \forall i=1, 2, \cdots, m, j=1, 2, \cdots, s \text {, } $ | (2) |
其中:y′i是原始特征图集合Y′中第i个特征图;Φi, j是用于生成第j个Ghost特征图所进行的线性运算,最后的Φi, s为恒等映射,用来保留原始的特征图。通过上述操作,最终获得n=m×s个输出特征图。
设线性运算卷积核大小为d×d,则使用普通卷积与Ghost模块的模型理论加速比为
$ \begin{aligned} & r_s=\frac{n \times h^{\prime} \times w^{\prime} \times c \times k \times k}{\frac{n}{s} \times h^{\prime} \times w^{\prime} \times c \times k \times k+(s-1) \times \frac{n}{s} \times h^{\prime} \times w^{\prime} \times d \times d}= \\ & \frac{c \times k \times k}{\frac{1}{s} \times c \times k \times k+\frac{s-1}{s} \times d \times d} \approx \frac{s \times c}{s+c-1} \approx s。\end{aligned} $ | (3) |
参数压缩比为
$ \begin{aligned} & r_c=\frac{n \times c \times k \times k}{\frac{n}{s} \times c \times k \times k+(s-1) \times \frac{n}{s} \times d \times d}\approx \\ & \frac{s \times c}{s+c-1} \approx s。\end{aligned} $ | (4) |
当k与d大小相等时, 使用Ghost模块进行特征提取所需要的参数量和计算量约为传统卷积的1/s。以Ghost模块为基础,重构YOLOv5s网络, 得到的GhostConv和GhostBottleNeck的结构如图 3所示。其中GhostConv首先采用1×1的标准卷积获得一部分通道,再在这部分通道上使用5×5的深度卷积获得另一部分通道,最后将这两组特征进行拼接。GhostBottleNeck结构中DWConv是卷积核为3×3的深度卷积。使用GhostConv替换YOLOv5s网络结构中的CBS模块,使用GhostBottleNeck替换YOLOv5s中BottleNeck生成的GhostCSP模块,并替换YOLOv5s中所有的CSP模块,降低网络模型的参数量和计算复杂度,在不改变输出特征图大小的情况下实现模型的轻量化,减少了推理时间。
![]() |
图 3 Ghost模块结构 Fig. 3 Ghost module structure |
坐标注意力机制(coordinate attention, CA)[10]是一种新颖且高效、适合轻量级网络的注意力机制。针对通道注意力机制(squeeze-and-excitation,SE)[11]只考虑内部通道信息而忽略位置信息以及通道-空间注意力机制(convolutional block attention module,CBAM)[12]在通道上进行全局池化捕获局部信息而无法获取长范围依赖信息的问题,坐标注意力机制通过两个互补的一维全局池化操作来编码全局信息,不仅能捕获跨通道信息,还能用精确的位置信息捕捉远程依赖关系,有利于网络更准确地关注感兴趣的目标。
具体操作为:首先利用两个一维全局平均池化将输入特征图分别沿着垂直和水平方向聚合为两个独立方向的感知特征图,接着将生成的特征图进行拼接,并使用卷积核为1×1的卷积进行信息交互。然后经过批量归一化和非线性激活函数处理,分别得到高度和宽度两个方向的空间信息,再分别经过卷积核为1×1的卷积得到通道数与原来一样的特征图。经过Sigmoid激活函数,得到输入特征图在高度和宽度方向的注意力权重,与输入特征图进行乘法加权运算,得到带有注意力权重的特征图。坐标注意力机制结构如图 4所示。
![]() |
图 4 坐标注意力机制结构 Fig. 4 Coordinate attention structure |
通过在YOLOv5s主干网络Backbone的CSP1模块后引入坐标注意力机制模块,使网络能够充分考虑目标的通道关系和空间位置信息,提高特征感受度,强化小目标行人的相关特征信息,提升对小目标行人的检测效果。
2.3 优化损失函数YOLOv5s采用CIoU损失函数[13]作为边界框回归的损失函数, 计算公式为
$ Loss_{\text {CloU }}=1-I o U+\frac{\rho^2\left(b, b^{g t}\right)}{C^2}+\alpha v, $ | (5) |
$ I o U=\frac{\left|B \cap B^{g t}\right|}{\left|B \cup B^{g t}\right|}, $ | (6) |
$ \alpha=\frac{v}{1-I o U+v} \text {, } $ | (7) |
$ v=\frac{4}{{\rm{ \mathsf{ π} }}^2}\left(\arctan \frac{w^{g t}}{h^{g t}}-\arctan \frac{w}{h}\right)^2, $ | (8) |
其中:ρ为欧氏距离;b为预测边界框中心点;bgt为真实边界框中心点;C为框之间最小外接矩形框的对角线距离;B为预测边界框;Bgt为真实边界框;w和h分别为预测边界框的宽和高;wgt、hgt分别为真实边界框的宽和高。
CIoU损失函数从预测框与真实框之间的重叠面积、中心点距离和长宽比三个角度来衡量两者之间的差距,没有考虑预测框与真实框之间方向不匹配的问题。针对以上问题,SIoU损失函数[14]通过引入所需回归之间的向量角度,重新定义了距离损失,有效降低了回归的自由度。本文采用SIoU损失函数替换CIoU损失函数,改善模型的回归精度,加快网络的收敛速度。
SIoU损失函数由4个成本函数组成,分别是角度成本、距离成本、形状成本和IoU成本,其角度成本如图 5所示。
![]() |
图 5 SIoU函数角度成本 Fig. 5 Angle cost of SIoU function |
在训练过程中当α为π/2或0时,角度损失为0。若α < π/4,则最小化α,否则最小化β。为此,引入了损失函数的组件,
$ \mathit{\Lambda }=1-2 * \sin ^2\left(\arcsin (x)-\frac{{\rm{ \mathsf{ π} }}}{4}\right), $ | (9) |
其中:
根据角度成本重新定义了距离成本,计算公式为
$ \mathit{\Delta }=\sum\limits_{t=x, y}\left(1-\mathrm{e}^{-\gamma \rho t}\right)=2-\mathrm{e}^{-\gamma \rho_x}-\mathrm{e}^{-\gamma \rho_y}, $ | (10) |
其中:γ=2-Λ;
形状成本定义为
$ \mathit{\Omega }=\sum\limits_{t=w, h}\left(1-\mathrm{e}^{-w_t}\right)^\theta=\left(1-\mathrm{e}^{-w_w}\right)^\theta+\left(1-\mathrm{e}^{-w_h}\right)^\theta, $ | (11) |
其中:
最终得出SIoU损失函数的计算公式为
$ L o s s_{\text {SloU }}=1-I o U+\frac{\mathit{\Delta }+\mathit{\Omega }}{2} \text { 。} $ | (12) |
采用SIoU损失函数作为边界框的损失函数,通过引入所需回归之间的向量角度,解决了预测框与真实框之间方向不匹配的问题,提升了行人检测的精度。
3 实验分析 3.1 环境配置及数据集实验使用Windows 10操作系统,Pytorch深度学习框架,编译语言为Python3.7,CUDA版本为11.3,GPU为Tesla T4,训练最小批次为16。初始学习率设置为0.01,动量设置为0.937,权重衰减设置为0.000 5。训练过程均不使用预训练权重。
实验在自制数据集上进行训练测试,在BDD100K[15]行人数据集上进行泛化性测试,以此来验证模型的有效性和鲁棒性。虽然现有的公开数据集在行人检测研究中做出了巨大的贡献,但是在工程应用中存在因不符合实际场景而出现漏检、误检的现象。为了更好地契合交通环境状况,通过拍摄和搜集道路交通场景下的图片,用labelImg软件对其进行标注,与计算机视觉数据集PASCAL VOC[16]中部分行人图像相结合形成自制数据集,共得到4 082张图片,包含12 405个行人标签,按8∶2的比例划分训练集和验证集,训练轮次为200。
BDD100K数据集是目前规模最大、内容最为丰富的自动驾驶数据集,该数据集中行人目标较小,环境复杂,含有遮挡和模糊的图片,在BDD100K数据集上进行行人检测具有一定的挑战性。从BDD100K数据集中选取8 523张含有行人的图片,作为模型泛化性测试数据集进行对比实验,共包含26 349个行人标签,按8∶2的比例划分训练集和验证集,训练轮次为300。
3.2 评估指标使用模型参数量、计算量、模型体积来衡量网络模型的复杂程度。参数量和浮点运算量数值越小,网络复杂度越低。模型体积表示训练完成后生成模型的权重大小。
此外,从平均推理时间、精确率、召回率、平均精度等方面对模型性能进行比较。其中,平均推理时间是指GPU推理一张图片所用的时间[17],平均精度是指在不同召回率下精确率的均值。精确率(P)、召回率(R)、平均精度(AP)的计算公式分别为
$ P=\frac{T P}{T P+F P}, $ | (13) |
$ R=\frac{T P}{T P+F N}, $ | (14) |
$ A P=\int_0^1 P(R) \mathrm{d} R, $ | (15) |
其中:TP表示实际是行人预测为行人的个数;FP表示实际不是行人预测为行人的个数;FN表示实际是行人预测为不是行人的个数。
3.3 消融实验使用自制数据集进行消融实验来验证改进后的算法对模型性能的影响,结果如表 1所示。其中YOLO-GCS表示改进后的本文算法模型。
![]() |
表 1 消融实验结果 Tab. 1 Results of ablation experiment |
由表 1可知,使用Ghost模块重构YOLOv5s网络之后的模型与原始YOLOv5s算法相比,参数量减少47.5%,计算量减少48.7%,模型体积减少45.8%,平均推理时间减少0.5 ms,平均精度下降0.4%,有效降低了模型的参数量和体积,提升了检测速度。
加入坐标注意力机制(CA)后引入了少量的参数,导致平均推理时间有0.2 ms的增加,但计算量和模型体积基本保持不变,对于检测精度有0.6%的提升,提高了对小目标行人的检测效果。
引入SIoU损失函数之后,因为没有改变网络模型的结构,所以对模型体积和复杂度没有影响,加快了网络的收敛速度,提升了检测精度。
改进后的算法YOLO-GCS相对于原始YOLOv5s算法,参数量和计算量分别减少47.1%和48.7%,但仍保持了较高的检测精度,减少了模型的推理时间。
3.4 不同算法的对比实验分别在自制数据集和BDD100K数据集上进行了不同算法的对比实验,进一步评估改进后算法的性能。对比实验结果如表 2、表 3所示。
![]() |
表 2 在自制数据集上的对比实验结果 Tab. 2 Comparative experimental results on self-made dataset |
![]() |
表 3 在BDD100K数据集上的对比实验结果 Tab. 3 Comparative experimental results on BDD100K dataset |
由表 2、表 3可知,与主流检测网络YOLOv3和YOLOv3-Spp相比,改进后的算法大大降低了模型的参数量和计算量,提升了检测速度。
相较于YOLOv3-Tiny,虽然改进后算法的推理时间增加了,但是在大幅度降低模型体积的情况下,在自制数据集和BDD100K数据集上的平均精度分别提升4.9%和10.6%。
ShuffleNetV2[18]和MobileNetV3[19]均为现阶段流行的轻量级网络,分别将YOLOv5的主干网络更换为ShuffleNetV2和MobileNetV3进行对比实验,结果表明,在参数量和计算量相差不大的情况下,改进后算法的平均精度更高。
在BDD100K数据集上的对比实验结果显示,改进后的算法较原始YOLOv5s算法检测精度下降0.9%,但是相比仅使用Ghost模块重构YOLOv5s网络的算法,检测精度提升1.1%,且参数量、计算量、模型体积分别为原始YOLOv5s算法的52.9%、51.3%、54.2%,在检测精度损失很小的情况下有效降低了模型的复杂程度,证明改进后的算法在复杂的任务中也能保持较好的性能。
与最新的YOLOv7-Tiny算法相比,虽然检测速度有所下降,但是在参数量和模型体积较小的情况下,改进后的算法有更高的检测精度。
综上所述,相比现阶段流行的轻量级网络算法和主流检测算法,改进后的算法模型具有良好的性能。
3.5 检测效果对比使用原始YOLOv5s算法和改进后的算法,分别对比了在实际场景下和在BDD100K数据集上的检测效果,结果如图 6和图 7所示。
![]() |
图 6 在实际场景下的检测效果 Fig. 6 Detection effect in the actual scenario |
![]() |
图 7 在BDD100K数据集上的检测效果 Fig. 7 Detection effect on BDD100K dataset |
由图 6、图 7可知,改进后的算法在实际场景下有较好的检测效果,且对于小目标行人的识别效果比原始YOLOv5s算法要好;在BDD100K数据集上的检测结果显示,改进后的算法在密集有遮挡环境下的漏检情况相对减少。通过对比原始YOLOv5s算法和改进后算法的检测效果,表明改进后的算法在参数量和计算量大幅下降的情况下达到了较好的检测结果,可以满足交通场景下一些低性能设备部署的需求。
4 结语针对现有行人检测模型参数量和计算量较大,难以在一些低性能设备上部署的问题,本文提出了一种改进YOLOv5s算法的轻量级行人检测模型。首先采用轻量化模块Ghost重构YOLOv5s网络,降低模型复杂程度,实现模型的轻量化;然后引入坐标注意力机制,利用通道关系和空间位置信息,提高对目标特征的感知程度,从而提升检测效果;最后使用SIoU损失函数解决预测框与真实框之间方向不匹配的问题,在提升模型检测精度的同时加快了模型的收敛速度。实验结果表明,改进后的算法提高了对小目标的检测效果,减少了推理时间,且在保持较高平均精度的同时,模型体积、参数量和计算量大幅下降,可以满足在一些低性能设备上部署的要求。下一步的研究将通过改进本文提出的轻量级行人检测模型实现行人闯红灯行为检测,完成行人危险交通行为的识别任务。
[1] |
王阳, 袁国武, 瞿睿, 等. 基于改进YOLOv3的机场停机坪目标检测方法[J]. 郑州大学学报(理学版), 2022, 54(5): 22-28. WANG Y, YUAN G W, QU R, et al. Target detection method of airport apron based on improved YOLOv3[J]. Journal of Zhengzhou university (natural science edition), 2022, 54(5): 22-28. ( ![]() |
[2] |
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. New York: ACM Press, 2014: 580-587.
( ![]() |
[3] |
REN S Q, HE K M, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 ( ![]() |
[4] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE Press, 2016: 779-788.
( ![]() |
[5] |
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector[C]//European Conference on Computer Vision. Cham: Springer International Publishing, 2016: 21-37.
( ![]() |
[6] |
陈泽, 叶学义, 钱丁炜, 等. 基于改进Faster R-CNN的小尺度行人检测[J]. 计算机工程, 2020, 46(9): 226-232. CHEN Z, YE X Y, QIAN D W, et al. Small-scale pedestrian detection based on improved Faster R-CNN[J]. Computer engineering, 2020, 46(9): 226-232. ( ![]() |
[7] |
钱惠敏, 陈纬, 马宜龙, 等. 基于ResNet34_D改进YOLOv3模型的行人检测算法[J]. 控制与决策, 2022, 37(7): 1713-1720. QIAN H M, CHEN W, MA Y L, et al. Pedestrian detection based on developed YOLOv3 with ResNet34_D[J]. Control and decision, 2022, 37(7): 1713-1720. ( ![]() |
[8] |
ZHU X K, LYU S C, WANG X, et al. TPH-YOLOv5: improved YOLOv5 based on transformer prediction head for object detection on drone-captured scenarios[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision Workshops. Piscataway: IEEE Press, 2021: 2778-2788.
( ![]() |
[9] |
HAN K, WANG Y H, TIAN Q, et al. GhostNet: more features from cheap operations[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE Press, 2020: 1577-1586.
( ![]() |
[10] |
HOU Q B, ZHOU D Q, FENG J S. Coordinate attention for efficient mobile network design[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE Press, 2021: 13708-13717.
( ![]() |
[11] |
HU J, SHEN L, SUN G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE Press, 2018: 7132-7141.
( ![]() |
[12] |
WOO S, PARK J, LEE J Y, et al. CBAM: convolutional block attention module[C]//European Conference on Computer Vision. Cham: Springer International Publishing, 2018: 3-19.
( ![]() |
[13] |
ZHENG Z H, WANG P, LIU W, et al. Distance-IoU loss: faster and better learning for bounding box regression[C]//Proceedings of the AAAI Conference on Artificial Intelligence. Palo Alto: AAAI Press, 2020: 12993-13000.
( ![]() |
[14] |
GEVORGYAN Z. SIoU loss: more powerful learning for bounding box regression[EB/OL]. (2022-05-25)[2022-08-09]. https://doi.org/10.48550/arXiv.2205.12740.
( ![]() |
[15] |
YU F, CHEN H F, WANG X, et al. BDD100K: a diverse driving dataset for heterogeneous multitask learning[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway: IEEE Press, 2020: 2633-2642.
( ![]() |
[16] |
EVERINGHAM M, ESLAMI S M A, GOOL L, et al. The PASCAL visual object classes challenge: a retrospective[J]. International journal of computer vision, 2015, 111: 98-136. DOI:10.1007/s11263-014-0733-5 ( ![]() |
[17] |
李鑫, 汪诚, 李彬, 等. 改进YOLOv5的钢材表面缺陷检测算法[J]. 空军工程大学学报(自然科学版), 2022, 23(2): 26-33. LI X, WANG C, LI B, et al. Steel surface defect detection algorithm based on improved YOLOv5[J]. Journal of air force engineering university (natural science edition), 2022, 23(2): 26-33. ( ![]() |
[18] |
MA N N, ZHANG X Y, ZHENG H T, et al. ShuffleNet V2: practical guidelines for efficient CNN architecture design[C]//Proceedings of the European Conference on Computer Vision. New York: ACM Press, 2018: 122-138.
( ![]() |
[19] |
HOWARD A, SANDLER M, CHEN B, et al. Searching for MobileNetV3[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. Piscataway: IEEE Press, 2020: 1314-1324.
( ![]() |