APP下载

基于改进YOLOv3算法的行人目标检测研究

2022-04-24刘金涛

软件导刊 2022年4期
关键词:行人注意力损失

刘金涛

(山东科技大学计算机科学与工程学院,山东青岛 266590)

0 引言

行人目标检测主要应用于智能视频监控、人体行为分析、智能机器人等领域,是解决城市治安、交通监测、人流量统计等问题的关键技术,因此行人目标检测技术有着广阔的应用前景。传统目标检测算法主要采用人工设计的特征进行检测,需要使用底层信息,运用大量先验知识与技巧设计一个特征提取器,对于行人目标检测精度低,效率也不高。随着计算机硬件计算能力的不断提升以及新一代深度学习技术的发展,基于深度学习的行人检测技术逐渐成为主流。Liao等提出一种用于卷积稀疏编码的无监督模型对车辆或行人进行检测;Yi等首先提出一种复杂的感知级联检测器,使检测精度与速度之间获得最佳平衡;Lecun等结合快速级联与深度互动网络的理念研究如何检测车辆及行人;Ahmad等使用多个内置子网络自适应地检测跨尺度的行人;Li等提出一种改进的组件模型,其对于形变之后的目标对象具有很强的鲁棒性。目前,Xu等采用边界框回归损失方法在行人检测数据集Caltech上取得了最好性能。基于深度学习的目标检测技术主要可分为两类:①基于地理区域卷积的神经网络(Region-convolutional Nerual Networks,R-CNN)系列,例如fast R-CNN和faster R-CNN;②基于端到端检测算法的SSD(Single Shot MultiBox Detector)和YOLO(You Only Look Once)两个系列。

现有方法大多新颖、有效,但也存在小目标检测不够精细、检测速度慢等问题。针对上述问题,本文提出融合CBAM(Convolutional Block Attention Module)注意力机制的YOLOv3模型,能更有针对性地处理行人目标检测问题。本文有3个创新点:一是将YOLOv3的主干网络更换成Darknet-49,并新增一个特征融合层与候选框标记,在加快目标检测速度的同时,可提高YOLOv3网络对小目标的检测精度;二是改进YOLOv3模型的多尺度特征融合结构,在特征融合后引入CBAM注意力机制,以加强网络的特征表达能力,提高目标检测精度;三是置信度损失使用DIOU代替GIOU,使模型训练更稳定,并提高目标检测回归框坐标预测精度。

1 YOLOv3模型基本结构

YOLOv3的骨干网络是Darknet-53网络,用于提取图像特征,并引入残差结构优化网络训练过程。YOLOv3在经过多个卷积与上采样之后最终得到3个卷积结果,每一个卷积结果的长、宽分别为13×13、26×26、52×52,最终提取的图像特征为[4(box信息)+1(物体判别信息)+80(classNum置信度)]*3(每个点上面计算几个anchor)。YOLOv3的检测网络是YOLO网络,YOLO网络的作用是对这些信息进行解码操作。YOLO层对3个anchor box信息不去重,如果3个anchor都满足条件,则会把信息写入到模型进行输出,实现对融合特征进行类别预测与边界框回归。YOLOv3网络结构模型如图1所示。

Fig.1 YOLOv3 network structuremodel图1 YOLOv3网络结构模型

YOLOv3算法采用多尺度预测,将输入图像平均分为

S

×

S

的小网格,每个网格使用3个anchor,每个anchor信息采用

T

(

x

y

w

h

c

)表示。另外,(

x

y

)表示中心坐标,(

w

h

)表示宽与高,

c

表示置信度。每个anchor输出维度为

S

×

S

×3×(4+1+

C

),

C

代表类别种类,由于本文针对单一目标检测任务,因此其取值为1。最终在获取每个边框的置信度评分后设置阈值,使用非极大抑制算法(Nonmaximum Suppression)进行处理,将得分小于阈值的评分置0,将置信度评分较高的anchor作为检测框。

YOLOv3损失函数由3部分组成,分别为:坐标位置损失(coordinate error)、IOU损失(IOU error)、分类损失(classification error)。具体计算公式如下:

2 融合CBAM注意力机制与YOLOv3的目标检测模型

2.1 模型结构

YOLOv3使用传统的Darknet-53网络进行特征提取,因卷积层数过多,导致实时监测效率不高。YOLOv3还使用步长为2、大小为3×3的卷积核进行下采样,视野范围大,但明显降低了空间分辨率,导致对小目标的检测精度偏低。

针对YOLOv3模型的上述问题,本文使用49层网络架构的Darknet降低网络层数,从而提高实时检测效率,并在特征提取网络中新增由两倍下采样得到的特征图,从而形成4个目标检测尺度,分别为13×13、26×26、52×52、104×104。改进后的YOLOv3网络模型结构如图2所示。

Fig.2 Improved YOLOv3 network structure model图2 改进后的YOLOv3网络结构模型

2.2 多尺度检测

YOLOv3采用3层特征输出进行多尺度检测。通过多尺度反馈处理将全局上下文信息驱动到其他尺度分支,不仅可提高对行人的检测识别能力,而且有助于抑制虚假检测。本文基于YOLOv3添加一层用于特征输出,并采用Kmeans聚类算法实现对anchor box的选取。由于网络改进之后,每个框检测3个anchor box,共输出4个目标特征图,所以需要修改K-means聚类算法中的K值。根据模型的复杂性,本文最终选定K值为12,得到的聚类结果如表1所示。

Table 1 Priori box size of improved YOLOv3表1 改进YOLOv3的先验框尺寸

2.3 CBAM注意力机制模块

卷积神经网络的注意力机制(CBAM)由通道注意力与空间注意力模块串联而成,CBAM从通道与空间两个维度对其进行计算,然后把attention map与其输入的feature map相乘,进行物理与化学上的自适应性学习。CBAM模块主要结构如图3所示。

Fig.3 Main structureof CBAM module图3 CBAM模块主要结构

在Concatenate层对特征图进行融合后,加入CBAM以优化特征融合模块。CBAM分别从通道和空间维度两方面对特征图进行选择,从而提高模型对特征提取的准确性。

首先通道注意力模块对特征图F进行全局平均池化(Avgpool)与最大池化(Maxpool),得到两个大小为

C

×1×1的特征描述符,然后将其分别送到一个多层神经网络(MLP)中,将输出特征相加后获得通道注意力权重,与原来的特征图

F

相乘得到新特征

F

′如下:

将通道注意力机制过滤后的特征图

F

′∈

R

传输到空间注意力模块,执行空间维度的平均池化与最大池化,得到两个1×

H

×

W

的特征描述。将其拼接在一起之后,经过7×7的卷积核获得空间注意力权重。通过其相乘输入的特征图

F

′计算得到

F

F

即为融合特征图:

式中,

f

代表拼接,

f

代表使用7×7卷积核过滤,sigmoid是常用的神经网络激活函数之一。

3 损失函数设计与算法训练

3.1 损失函数设计

GIOU计算公式如下:

其中,

A

表示两者之间的最小包含范围,

A

代表两者之间相交的部分。

在实际应用中使用YOLOv3算法进行训练时,一般使用GIOU作为损失函数,然而,GIOU存在损失值相同但会出现不同结果的问题,不能正确反映预测框与正确框的位置情况。主要原因是计算的位置坐标不准确,因此本文使用DIOU代替原本的GIOU作为定位损失函数。该函数可更准确地计算两中心点之间距离,能够正确反映回归框与bounding box之间的位置关系,并且融合了GIOU尺度不变性的优点。

DIOU计算公式如下:

其中,(

b

b

)代表两框之间中心点距离,

c

代表两框对角线之间距离。

3.2 算法训练

优化算法采用小批量随机梯度下降算法(Mini-Bath Gradient Descent,MBGD),MBGD算法有训练次数少、收敛快等优点,因此适用于对本文模型进行优化。模型训练过程如下:

(1)确定网络训练参数

θ

。模型训练参数包括卷积权重、偏置以及CBAM注意力机制的池化算子,如式(6)所示。

(2)随机采样N个图像样本

x

。(3)获取目标检测结果

D

(4)计算模型损失∇

L

(

θ

):

(5)采用MBGD优化模型:

(6)如果网络收敛至最优状态,则训练结束,否则返回步骤(2)。

4 实验结果与分析

4.1 数据集与实验环境

本文实验使用INRIA数据集中的1 500张图片评估模型性能,INRIA数据集中的图片相比于传统行人数据集,无论是密集疏散状态还是光照条件都更加全面,适合于行人检测任务。此外,本研究还添加了从实际生活中拍摄的1 000张图片,这些图片根据Pascal VOC的标签进行标注,通过Labelling标注工具得到训练所需的xml文件,每一个图片名对应一个label.xml。一共2 500张图片,图片中包含明暗图片和目标密集疏散图片。具体方法如下:将两组数据集合成一组数据,并且按照训练集与测试集7:3的比例进行分配;使用混合后的小样本数据集做实验。

本文实验平台配置为:操作系统为Windows10,中央处理器为Inter Core i5-9300H,内存大小为8GB,GPU为NVIDIA GeForce GTX 1650,GPU加速器为CUDA10.0,CUDNN7.6,深度学习框架选用Darknet网络。

4.2 性能评价指标

本文算法测试使用平均准确率Mean Average Precision(mAP)、召回率Recall(R)、准确率(P)、召回率加权平均值(F1)以及平均交并比(IOU)评价算法性能,评价公式分别为:

式中,

AP

表示各目标对应的准确率,

h

表示目标物体类别总数。

式中,

TP

为正检率,即标定为正样本,实际检测也为正样本;

FP

为误检率,即标定为负样本,实际检测为正样本;

FN

为漏检率,即标定为正样本,实际检测为负样本。

式中,

TP

为正检率,即标定为正样本,实际检测也为正样本:

FP

为误检率,即标定为负样本,实际检测为正样本。

式中,真实框记为A,预测框记为B。

S

代表A框面积,

S

代表B框面积,

S

代表A框与B框交集部分面积,IOU值在0~1之间。通常来说,值越接近于1,代表重叠度越高,相应候选框越精确。

4.3 实验与结果分析

4.3.1 实验检测效果与评价

YOLOv3行人目标检测模型比较如图4所示。

Fig.4 Comparison of YOLOv3 pedestrian target detection model图4 YOLOv3行人目标检测模型比较

其中,左侧为原始行人图像,中间为手动标记的行人图像,右侧为模型检测效果图。通过比较图4中的第一行,可发现模型的行人检测框与手动标记的行人检测框在坐标、尺寸上基本相同,表明本文模型的有效性与准确性;通过对比第二行,验证了模型对密集行人优异的检测能力;通过对比第三行,验证了模型对小尺寸行人优异的检测能力。

模型评价指标计算结果如表2所示。由表2可以看出,模型的平均准确率为85.61%,表明对行人的分类识别能力良好;召回率为84%,表明对行人检测的漏检率较低;交并比为83.9%,表明对行人的检测精度良好。

Table2 Model evaluation index calculation results表2 模型评价指标计算结果 (%)

4.3.2 YOLOv3网络结构比较实验

为验证修改后网络的可靠性,对Darknet-53网络与本文改进的Darknet-49网络在同一数据集(INRIA)上的训练时间及实际检测效果进行比较。训练的损失变化曲线如图5所示(彩图扫OSID码可见)。

Fig.5 Losscurve图5 损失变化曲线

由图5可以看出,在相同的参数条件下,改进的Darknet49网络下降速度更快,数据波动范围更小。

为验证改进后的YOLOv3算法在实际应用中的效果,采用相同数据进行两种网络模型的对比实验,分别得到以下两种行人目标检测结果,如图6、图7所示。

Fig.6 YOLOv3 pedestrian target detection results图6 YOLOv3行人目标检测结果

Fig.7 Improved YOLOv3 pedestrian target detection results图7 改进的YOLOv3行人目标检测结果

比较图6、图7可以发现,在光线较暗的场景下,YOLOv3的漏检率较高;在人群比较密集的场景下,YOLOv3识别精度较低;在小目标检测的场景下,YOLOv3对小目标的漏检率较高,而改进后的YOLOv3算法泛化能力与抗干扰能力更强。

4.3.3 损失函数比较实验

为验证改进损失函数的有效性,本文分别使用原始损失函数与改进后损失函数的模型在相同数据集上进行实验,最终得到的不同损失函数比较如表3所示。

由表3可知,相较于GIOU,使用DIOU损失函数后的精确率提高了2.5%左右,召回率也有一定提升。

Table3 Comparison of different lossfunctions表3 不同损失函数比较

4.4 模型比较实验

为对改进后算法的检测精度进行更严谨地评估,将本文算法与经典目标检测算法进行比较实验,结果如表4所示。

Table4 Test results of each algorithm on thetest set表4 各算法在测试集上的测试结果

由表4可知,YOLOv3算法凭借端到端网络结构的优势,检测速度达到了每秒62帧,但平均精确率仅有81.13%;Faster R-CNN依靠生成候选框,检测精度达到86.75%,但由于其结构复杂,检测效率明显偏低;传统的HOG+SVM算法在精度和速度上都不及其他算法;本文改进的算法相较于YOLOv3与HOG+SVM算法,检测精度分别提升了4.5%与23%,检测速度也有明显提升,虽然相较于Faster R-CNN略低,但是明显高于其他算法。

5 结语

针对目前目标检测算法存在的实时性差、检测精度不高、对硬件过度依赖等问题,给出了一系列优化方案。本文使用融合CBAM注意力机制的YOLOv3进行行人目标检测,数据集采用INRIA数据集与自制数据集进行混合实验,在特征融合过程中添加CBAM注意力机制,获取更多特征以提高检测精度。实验结果表明,本文提出目标检测模型的优势在于检测速度以及对小目标物体的检测精度,但该模型也存在目标检测边界不够精确的问题,这将是下一步的研究方向。

猜你喜欢

行人注意力损失
让注意力“飞”回来
胖胖损失了多少元
毒舌出没,行人避让
玉米抽穗前倒伏怎么办?怎么减少损失?
“扬眼”APP:让注意力“变现”
我是行人
一般自由碰撞的最大动能损失
损失
行人流综述