面向跌倒行人的MP-YOLOv5检测模型

2023-10-26 05:37丰玉华刘力手丰圆丹
关键词:行人特征模块

丰玉华,魏 怡,刘力手,丰圆丹,李 可

( 1.武汉理工大学 自动化学院,武汉 430070;2.湖北经济学院 金融学院,武汉 430205;3.青岛工学院 食品工程学院,山东 青岛 266300)

0 引 言

对高龄人群[1]及复杂作业环境中工人[2]的跌倒行为进行实时性检测,是有关生命安全的大事,具有重要的研究意义。迄今为止,跌倒行人检测在安全领域甚少受到关注,研究成果较少。文献[3]设计了一种分类3维卷积神经网络(separable 3D convolutional neural network,S3D-CNN),缓解了背景对跌倒姿态检测的干扰,文献[4]使用光流直方图和运动边界直方图特征构建了跌倒运动混合模型的高斯混合模型,能够有效地识别各种场景中的跌倒事件,但这2种方法均未能取得较为理想的识别速度与识别精度;文献[5]提出一种残差神经网络(residual neural network,res2Net)结合YOLO变体网络(you only look at coefficients,YOLACT)以及融合特征的室内跌倒检测算法,其检测准确率高达98.65%,但其检测速度仅有28帧/s;文献[6]采用了一种用于统一目标检测和实例分割的新型网络(a new deep architecture for reciprocal object detection and instance segmentation,RDSNet),检测准确率可达到96.67%,但其检测速度也仅能达到12帧/s。

目前跌倒行人检测的效果不够理想,识别速度和识别精度有待提高。本文将近几年最新的深度学习算法进行对比,将其应用于行人跌倒检测。当前目标检测算法大致分为两大类,一类是Two-Stage算法,先产生候选区域然后再进行分类,标志性模型主要有区域卷积神经网络 (region CNN,R-CNN)[7]、Fast R-CNN[8]、Faster R-CNN[9]等;另一类是One-Stage算法,直接对输入图像应用算法进行处理并输出类别和相应的定位,其代表模型有单发多框检测器 (single shot multiBox detector,SSD)[10]、“你只看一次” (you only look once,YOLO)[11]系列等。针对跌倒检测, CNN系列算法在检测的实时性[12]方面有所欠缺,SSD网络对于小目标的检测效果及精度并未超越YOLOv5,因此,本文选择YOLOv5进行跌倒检测的研究。

近年来,YOLO系列相关算法在不断改进,文献[13]提出在YOLOv3网络中加入自注意力机制,即self-attention,来缓解卷积操作感受野不足的缺陷,但该算法时间复杂度较高;文献[14]提出基于YOLOv5融合SENet的目标检测技术,对通道给予不同“关注度”,解决了特征图的不同通道所占的重要性相同带来的损失问题,但未能考虑特征图位置信息的损失;文献[15]使用基于密度的空间聚类算法(density-based spatial clustering of applications with noise,DBSCAN)结合K均值聚类算法(k-means clustering algorithm,K-Means)选取更合适的锚框以提高小目标检测的精度,但该算法对参数的选取具有依赖性;文献[16]采用D类交并比非极大值抑制(D intersection over union-NMS,DIOU-NMS),考虑了2个预测框中心点之间的距离并对IoU进行了优化,但未能有效改善漏检现象。

以上研究成果虽有成效,但却有各自的缺点,基于YOLOv5的跌倒姿态检测算法仍存在几个方面的问题:网络对小目标不够敏感;遇到与跌倒行人姿态相似的结构时易发生混淆,产生误检;当目标大面积重叠时,会产生漏检现象。

本文在YOLOv5模型的基础上提出一系列改进方法,基于多头注意力的思想,设计了TRC3结构,充分利用显卡的并行性,利用更少的时间复杂度获得更高的检测精度;设计多尺度检测结构,使网络拥有高分辨率的feature map,更敏锐地识别小目标[17],此方法比DBSCAN +K-Means算法更加稳定;提出一种改进SENet注意力机制[18]以减少位置信息的损失;采用Soft-NMS替换原网络的NMS[19]算法,以此降低漏检率。实验表明:MP-YOLOv5检测模型对小目标的检测效果良好,可以有效改善由于跌倒目标重叠和特征不明显导致的误检现象,在精度上相对于基线方法有一定幅度的提升。

1 YOLOv5模型简介

YOLOv5模型的结构如图1所示。该模型由Input、Backbone、Neck、Prediction共 4个模块组成。首先,图像在Input端输入,通过resize、数据增强,统一图片大小、丰富图片背景;其次,通过主干特征提取网络(Backbone),在不同图像细粒度上聚合,得到多种尺度的图像特征;然后,通过特征融合网络(Neck),采用特征金字塔与路径聚合网络相结合的结构,将网络的语义特征和位置特征进行融合,丰富网络提取的特征;最后,进入预测端(Prediction),网络具有3个检测层分别用于不同尺寸目标的检测,采用非极大值抑制算法(non-maximum supression,NMS),删除冗余的预测框,生成最终的检测框。

图1 YOLOv5模型的结构Fig.1 Structure of the YOLOv5 model

图1中,CBS(ConvBNSiLU)结构由卷积层(conv)、标准化层(batch normalization,BN)、激活函数(the Sigmoid linear unit,SiLU)组成;C3结构包含3个标准卷积层;空间金字塔池化结构(spatial pyramid pooling-fast,SPPF)用于实现自适应尺寸的输出;Upsample表示上采样;Concat表示对特征图在通道上进行拼接;Conv表示普通卷积。

尽管YOLOv5的检测精度与实时性能已达到较高水平,但针对跌倒目标,仍存在以下瓶颈:①Backbone中采用了较多的C3结构,虽降低了网络计算量,但是未能建立网络的全局依赖关系,大量基础卷积结构会造成局部信息的丢失;②Prediction模块中3种尺寸特征图的大小分别为80×80、40×40、20×20,分辨率较低的检测层在遇到小目标时,会产生漏检;③在特征融合网络中,底层特征与高层特征融合次数不够,网络对特征的感知力不够;④网络采用的NMS算法,当基准框与预测框IoU值高于阈值时,会直接删除相应的预测框,在目标发生重叠时,会出现漏检现象。

2 MP-YOLOv5网络模型算法

2.1 Backbone区域的改进

YOLOv5的Backbone区域是由一系列卷积模块构成的残差网络,本文在YOLOv5中选用了C3模块,一定程度上减轻了网络计算量,但未能建模网络的全局依赖关系。本文还设计了TRC3结构,采用多头注意力(multi-head self-attention,MHSA)模型,进一步细化了注意力层,扩展了模型专注于不同位置的能力。

2.1.1 Self-Attention结构

SA(self-attention)结构是Q、K、V均为同一个输入向量映射而来的Attention,可以忽略特征之间的距离直接计算依赖关系,能够很好地学习网络内部特征,SA结构原理如图2所示。SA结构操作过程如下。

图2 SA结构原理图Fig.2 Schematic diagram of SA structure

1)进行Embedding操作,将输入矩阵降维。降维的目的是将高维稀疏向量转化为低维稠密向量,以防止过度占用资源。

2)将a1,a2,…,an分别通过3个变换矩阵Wq、Wk、Wv,得到对应的qi、ki、vi(i=1,2,…,n),即

qi=aiWq;ki=aiWk;vi=aiWv

(1)

(1)式中:qi表示query,后续会和每个ki进行匹配;ki代表key;vi代表从a1,…,an中提取到的信息。

3)qi与ki匹配的过程,即计算两者的相关性的过程,经过匹配,得

(2)

(3)

5)综上,令Q=(q1,…,qn)T,K=(k1,…,kn)T,V=(v1,v2,…,vn)T,SA的整体机制可表述为

(4)

通过SA结构,输入为X=[X1,X2,…,Xn],输出为(b1,b2,…,bn),输入转变为输出的过程为特征之间建立了依赖关系,更好地利用了上下文信息。

2.1.2 多头自注意力结构

在SA结构的基础上,MHSA结构能够联合不同head部分学习到的信息,同时计算多个Attention,最终得到合并结果,通过计算多次来捕获不同子空间上的相关信息,其原理如图3所示。

图3 MHSA结构原理Fig.3 Schematic diagram of MHSA structure

(5)

2)将每个head得到的结果进行concat拼接,再将拼接的结果通过Wo(可学习参数)进行融合,得

MultiHead(Q,K,V)=Concat(head1,…,headh)Wo

(6)

相比于SA,MHSA进一步细化了注意力层,为注意力层提供了多个“表示子空间”,扩展了模型专注于不同位置的能力。

2.1.3 TRC3结构

C3与TRC3结构如图4所示。TRC3使用MHSA模块来捕获高层语义信息,对C3模块进行改进,将残差学习单元(ResUnit)中的第2层CBS结构替换为MHSA,进而建模全局依赖关系以充分利用上下文信息。

图4 C3与TRC3结构图Fig.4 Structure of C3 and TRC3

2.2 改进SENet

SENet是一种压缩和激励网络,由Squeeze和Excitation两部分组成。

1)Squeeze部分。原始feature map的维度为H×W×C,经过Squeeze操作将feature map压缩为1×1×C,这1维参数便获得了全局的感受野。采用最简单的求平均的方式,将空间上的点都平均成一个值,即

(7)

(7)式中,ZC∈RC是对特征空间x在空间维度上执行平均池化的结果。

2)Excitation部分。在经过Squeeze操作得到的1×1×C的feature map中加入一个FC全连接层,对每个通道的重要性进行预测,得到不同通道的重要性,再利用全连接层恢复原来的通道数,即

(8)

(8)式中,σ表示sigmoid激活函数,原始SENet只考虑通过建模通道关系来重新衡量每个通道的重要性,忽略了位置信息。

本文对SENet进行改进,使网络在考虑通道间关系的同时关注特征空间的位置信息,改进SENet原理如图5所示。

图5 改进SE模块原理图Fig.5 Schematics of the improved SE modules

将通道注意力通过2个方向的平均池化操作(X Avg Pool,Y Avg Pool)变成2个1维特征,沿其中一个空间方向捕获远程依赖关系,沿另一空间方向对位置信息进行保留,用公式可表述为

(9)

(10)

上述2种变换分别沿2个空间方向聚合特征,得到一对方向感知的特征图,不仅允许注意力模块捕捉沿着一个方向的长期依赖关系,并且保存了沿着另一个空间方向的精确位置信息,有助于网络更准确地定位跌倒特征。

2.3 Neck和Prediction区域的改进

2.3.1 四检测头

在YOLOv5网络中,小目标检测层尺寸是80×80,Input端输入图片尺寸是640×640,网络检测的最小像素值是8×8。当跌倒行人在图片中所占比例较小时,经YOLOv5网络放大后,会出现边缘模糊甚至失真,导致对小目标定位困难,产生漏检。另外,当feature map分辨率不足时,多个跌倒目标的中心点落到同一个网格中,会导致最后只检测出一个目标。

本文基于多尺度检测的思想,在YOLOv5原有的网络上增加一个检测尺度用于小目标的检测,在尺寸为80×80特征层之后,继续对特征图进行卷积和上采样处理,把特征图扩大为尺寸为160×160的特征层,将此特征层与Backbone中160×160的特征层进行融合,得到第4个160×160的检测尺度,网络最小检测像素为4×4。

增加160×160的检测尺度,会使网络预测更加细致,将距离近的小尺寸目标划分开,使其中心落到不同的网格中,有效避免了由于小目标重叠发生的漏检现象,多尺度检测网络在不明显增加计算量的情况下,同时改善了小目标的检测效果。

2.3.2 特征融合的改进

为了提高跌倒行人检测的准确率,弥补高层特征对细节感知能力缺失所带来的信息损失,通过增加检测层及融合次数来增强网络检测性能。在原始YOLOv5网络中,将第2层与第21层进行特征融合后的输出作为小目标检测层。对比原始网络,在第2层与第21层融合之后,增加第20层与第25层的特征融合,将具有较大感受野的特征层与目标检测层之前的特征层进行融合。多次特征融合使得图像通道数增加,达到了信息增广的效果。MP-YOLOv5网络架构如图6 所示。改进后的网络结构拥有更强的细节感知能力,更适用于行人跌倒检测。

图6 MP-YOLOv5网络模型结构Fig.6 Structure of MP-YOLOv5

2.4 NMS的改进

YOLOv5原网络采用的是NMS算法,对于有重叠的候选框,其IoU值若大于设定阈值,NMS算法会将其剔除,反之保留;对于无重叠的候选框,均将其保留。NMS输出矩形框如图7所示。假设网络有6个输出矩形框,NMS工作原理如下。

图7 NMS输出矩形框Fig.7 Output rectangle of the NMS

1)网络将对6个矩形框进行置信度排序,若F为最大概率矩形框,则网络会执行A—E与F的IoU值计算,并判断IoU值是否大于阈值;若F与B、D的IoU值大于阈值,则删除B、D框,并将F框标记并保留。

2)从剩下的A、C、E中选择置信度最高的框,假设E置信度最高,则继续执行A、C与E的IoU计算,重复步骤1)的操作。

在实际检测场景中,当同类别两物体距离很近时,IoU值较大,算法这种情况下可能会将其中一个目标的框过滤掉,从而产生漏检。

为解决该问题,本文在网络中引入Soft-NMS算法。选定基准框后,遍历其他预测框,不再删除IoU值高于阈值的预测框,而是通过衰减函数降低其置信度,将置信度最高的检测框保留,次高的检测框作为基准。按此循环,最后将选出的框进行综合筛选,得到最优预测框,数学表达式为

(11)

3 实验结果分析

3.1 实验数据集的搭建

在目标检测问题中,训练数据集以及训练标签的制作是2个至关重要的步骤,原始图像标签的准确性直接影响训练的效果和测试的准确性。实验数据集选用华录杯比赛中6 000张人体跌倒姿态的开源数据集,以及4 000张日常采集的数据集。图8所示为跌倒行人数据集样本的几种示例。日常采集图片的拍摄场景为工地、车间、交通十字路口等高危环境。训练数据集共10 000张,为保证实验效果,数据集中包含了一定比例的小目标、目标堆叠、目标遮挡的图片。

图8 跌倒行人数据集样本示例Fig.8 Samples of fall dataset

在Python环境下通过开源工具LabelImg对数据集图片目标物体所在区域进行逐一标注,并生成与之对应的标签,本实验对跌倒姿态设置的标签为“down”。

3.2 实验环境的配置

使用Intel(R) Core(TM) i7-10750H CPU处理器,在windows 10系统下进行模型训练。为了提高训练效率,使用NVIDIA GeForce RTX 3090显卡、Cuda11.3和Cudnn10.0调用GPU进行加速。输入图像分辨率为640×640,为了增强模型的抗干扰能力,在训练时使用了Mosaic数据增强的方法,批尺寸为64,训练轮数为100。

3.3 评估指标

为了验证MP-YOLOv5网络的性能,本文采用通用目标检测评价指标,准确率(Precision)P,召回率(Recall)R以及平均精度均值(mean average precision,mAP)VmAP来对模型进行评估。通常使用P和R这2个指标来衡量模型的好坏,P、R越大,表示模型检测的准确度越高。VmAP可以衡量整个模型的性能,VmAP越大,表示模型训练效果越好。各指标计算公式为

(12)

(13)

(14)

训练过程中,对算法的各项指标进行实时记录,MP-YOLOv5网络训练结果见图9。随着迭代次数的不断增加,P、R、VmAP的值逐渐趋于平稳,迭代至100代时各项指标的值在0.01以内浮动,表明模型训练已基本完成。

图9 MP-YOLOv5网络训练结果Fig.9 Training results of the MP-YOLOv5 network

3.4 算法有效性验证

为了验证本文基于YOLOv5算法改进的有效性,以YOLOv4、YOLOv5算法作为对比算法。此外,进一步验证每个改进点的有效性,设TRC3、Four Prediction Head、改进SENet、Soft-NMS分别为改进点①②③④。其中,YOLOv5-①表示在原始YOLOv5模型中应用TRC3模块;YOLOv5-①②表示在YOLOv5-①的基础上采用4个检测头;YOLOv5-①②③表示在YOLOv5-①②的基础上添加改进SENet模块;YOLOv5-①②③④,即MP-YOLOv5,表示在YOLOv5-①②③的基础上采用Soft-NMS。算法识别速度对比如表1所示。

表1 算法性能对比Tab.1 Performance comparison of algorithms %

由表1可见,对比YOLOv4、YOLOv5,MP-YOLOv5网络的P、R指标均有一定幅度的提升。在YOLOv5网络的基础上,逐步增加改进点,P、R指标会逐步提升。使用TRC3模块,相比YOLOv5网络,VmAP提高了0.36个百分点;进一步加入Four Prediction Head,VmAP提高了0. 6个百分点;再叠加改进SENet,VmAP进一步提高了0. 03个百分点;最后一步叠加Soft-NMS,VmAP又提高了0. 19个百分点。最终得到YOLOv5-①②③④,即MP-YOLOv5的P、R、VmAP分别高达97.65%、98.55%、98.87%,这证明了本文改进算法的有效性。

另外,本文针对识别速度进行了对比试验,识别速度越高,代表模型实时监测的效果越好,实验结果如表2所示。

表2 算法识别速度对比Tab.2 Comparison of the recognition speed of the algorithm

由表2可见,相比于YOLOv4,YOLOv5网络在识别速度上提高了20帧/s,达到了85帧/s,而引入TRC3模块后网络的识别速度更是达到了98帧/s,识别速度有了进一步提高。在此基础上,加入Four Prediction Head与改进SENet,识别速度均略有下降,但仍可达到86帧/s,高于YOLOv4和YOLOv5算法。

综上, MP-YOLOv5模型在识别精度与识别速度2个指标上均优于对比模型,综合指标最优,证明了改进算法的有效性。

3.5 算法先进性验证

为了验证MP-YOLOv5算法的先进性,在相同配置条件下,将MP-YOLOv5与Faster R-CNN、SSD、CenterNet-Keypoint、CenterNet-Triplets以及CenterPoint-3D等目前比较流行的几种目标检测网络进行对比实验,实验结果如表3所示。

表3 不同算法识别效果对比Tab.3 Recognition effect of different algorithms

由表3可见,MP-YOLOv5算法的VmAP普遍高于对比算法。其中,Faster R-CNN的VmAP为89.56%,SSD是基于高斯金字塔结构的单阶段目标检测算法,其VmAP为91.23%,2种算法的VmAP均低于MP-YOLOv5;CenterNet- Keypoint、CenterNet-Triplets、YOLOv4都是基于回归思想的最新检测算法,MP-YOLOv5的VmAP值比CenterNet-Keypoint高出6.32个百分点,比CenterNet-Triplets高出5.13个百分点,比YOLOv4高出3.24个百分点;CenterPoint-3D是延续CenterNet-Keypoint思想的3D目标检测算法,检测效果依赖于深度信息和旋转角度的有效学习,MP-YOLOv5算法较其提高了5.94个百分点;最终,将MP-YOLOv5与YOLOv5原始网络进行比较,可以发现其VmAP较原始网络提高了1.25个百分点。

此外,MP-YOLOv5算法相比于其他算法,在识别速度上取得了较优结果,识别速度达到了86帧/s,优于7种对比算法。这证明MP-YOLOv5算法不仅可以提供更优的识别效果,还能提供更高的识别效率,可以满足行人跌倒场景下的实际需要。

为了进一步验证MP-YOLOv5网络在行人跌倒识别场景下的适用性,选取数据集中3组经典示例进行算法识别效果的对比,如图10所示。图10Ⅰ类:图片存在与人体跌倒姿态相似的物体;Ⅱ类:图片中存在跌倒姿态堆叠的情况;Ⅲ类:图片中存在跌倒小目标。观察对比图像,在Ⅰ类图像场景下,YOLOv5原始网络出现了误检的情况;在Ⅱ类图像场景下,由于目标较为密集,并且存在堆叠,使用YOLOv5原始网络发生了漏检;在Ⅲ类图像场景下,原YOLOv5算法对小目标识别并不敏感,识别效果差。MP-YOLOv5网络在这些场景下均能较好地识别图像中的目标。

图10 算法改进前后识别效果对比Fig.10 Comparison of recognition effect before and after improvement of algorithm

4 结束语

本文提出一种面向跌倒行人的MP-YOLOv5检测模型,设计了TRC3模块,运用MHSA模型,丰富了上下文信息,增强了Backbone的特征提取能力;针对小目标检测,在YOLOv5 原有的网络上增加一个prediction head,提高图像的分辨率,使预测网络更加细致,改善了小目标的检测效果;提出改进SENet注意力机制,有助于网络更精确地关注跌倒姿态;采用Soft-NMS替换YOLOv5原始的NMS,降低了漏检率。通过实验,得出以下结论。

1)本文提出的改进方法,将深度学习技术与行人姿态检测问题相结合,实现了对跌倒行人的实时性检测。

2)MP-YOLOv5网络的VmAP值达98.87%,检测速度达86帧/s,均优于原始YOLOv5网络。

MP-YOLOv5模型在检测精度和检测速度方面的效果较为理想,由于要保证识别精度,该模型在轻量化方面有待提高,今后将进一步探索更轻量化的模型,更好地服务于行人跌倒的实时性检测。

猜你喜欢
行人特征模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
毒舌出没,行人避让
如何表达“特征”
不忠诚的四个特征
路不为寻找者而设
抓住特征巧观察
我是行人
线性代数的应用特征
集成水空中冷器的进气模块