APP下载

基于YOLOv3金字塔切分卷积的路况检测算法

2022-08-23安徽理工大学计算机科学与工程学院周梦广

数字技术与应用 2022年8期
关键词:损失卷积函数

安徽理工大学计算机科学与工程学院 周梦广

行人检测在无人驾驶方面具有极其重要的应用场景,然而在检测的过程中经常忽略图片中的小目标。本文提出一种选择性特征融合的检测算法。通过引入金字塔切分卷积SPC到YOLOv3的主干网中,以获取不同尺度的感受野,提取不同尺度的信息。同时,为了提高特征融合的效率,在特征融合前捕获远程依赖关系。最后,利用焦点损失重构了置信度和目标分类的损失函数,以减轻背景与检测目标不平衡问题。实验结果表明,本文算法在保证速度的同时提高了对道路行人的检测精度,在PASCAL VOC数据集上mAP达到78.23%。与原探测器相比精度提高了1.07%,它在检测精度和速度方面更好的权衡,表明适合道路状况检测的应用。

目标检测作为一种重要的目标检测应用,在道路与行人检测等领域受到了广泛的关注。通过车载摄像头对道路上行人及车辆检测,监控是否有危险情况,及时保证行人及车辆的安全。2014年Ross Girshick提出的卷积神经网络框架(RCNN)成为传统目标检测阶段到深度学习的目标检测阶段的分水岭,传统目标检测不能自适应地处理道路图片上的应用场景,而在深度学习的目标检测阶段图片的处理更加灵活,不需要手动添加特征。YOLO算法的优点是端到端操作,相比于二阶目标检测算法运行速度更快,因此YOLO算法在道路状况的检测的应用广泛,其中YOLOv3就是应用最广泛的检测器之一。但是由于街道图像上的目标密集、图片遮挡、特征提取困难、背景和目标样本不均衡等问题,如果将YOLOv3模型直接应用到路况检测,不能取得良好的检测效果,因此需要对模型进行优化,提高模型检测的精度。在YOLOv3的基础上,2019年J.Choi等人提出检测框的可靠性的问题,通过引入高斯分布的特性重新表示边界框回归损失,提出Gaussian YOLOv3,使得网络能够输出每个检测框的不确定性,从而提升了网络的精度。同年,徐诚极等人在YOLO中引入了注意力机制提出了Attention-YOLO。2020年D.Tian等人将YOLOv3与自注意机制相结合,并且在基于GIoU和焦损失的基础上,重构目标损失函数,然后提出了SA-YOLOv3。2021年Qiang Chen等人根据FPN的分治策略,利用扩张编码器提取多尺寸感受野的特征,替代了FPN,并且利用统一匹配解决Positive Anchor在尺寸不同的目标上分布不均匀的问题,提出YOLOF。魏玮等人先减少部分卷积操作然后引入跳跃连接机制降低特征冗余,将YOLOv3应用到航拍目标检测中。本文贡献如下:

(1)在DarkNet-53上引入了金字塔切分卷积策略改进了主干网,在残差块后采用金字塔切分卷积,利用不同尺度的卷积核扩大了主干网的感受野;

(2)在高层特征融合前利用Global Context模块获取全局语义,并且提取关键特征,增加高级特征的语义信息;

(3)结合了Focal Loss思想平衡了背景与目标样本间的平衡取代传统的边界框损失函数。

1 方法

本文算法框架如图1所示,以基于Darknet-53的改进SPC-DarkNet-53作为骨干网,扩大了感受野。在特征融合前加入了轻量级的全局上下文(Global Context)模块,以便更好地捕获远程依赖关系。最后将得到的特征图传入分支预测网络中得到三个输出,再对输出进行检测时,使用焦点损失处理正负样本平衡的问题。

图1 整体框架Fig.1 The overall frame

1.1 SPC-DarkNet-53结构

YOLOv3骨干网采用了DarkNet-53,借鉴了Resnet中的残差结构,使检测模型具有高效的速度优势。但考虑到模型大量采用1×1或3×3卷积,导致特征图上的感受野比较小,卷积核上的每个元素对应图片的区域范围比较小。因此在骨干网上添加了金字塔分割(SPC)模块,增加特征图上每一个元素对图片的感受野,改进后的骨干网为SPC-DarkNet-53。

SPC模块结构如图2所示,SPC模块把输入的矩阵分成S组,对每组进行不同的卷积操作。分组处理后的结果在通道上进行拼接处理。分组数量G=2/2,其中k是卷积核的大小,G为分组数。SPC操作把输入的数据依照通道平均划分为4组,分别用3×3、5×5、7×7、9×9卷积对不同的组分别处理,提升元素了对图片的感受野,使特征图每个元素含有更多丰富的信息。然后,通过对不同分组结果进行拼接,增强了空间之间的联系,并且关注局部区域中与检测目标相关的信息。最后进行Sigmoid处理,实数值映射到0~1之间。

图2 SPC模块Fig.2 SPC module

1.2 选择性特征融合

特征融合是为了形成一个包含低层与高层特征优点的特征图,但高层次特征的语义信息中每个单元对应图片的内容是局部的,因此我们采用选择性特征融合,具体来说,就是在高层次特征融合前通过Global Context模块选择出比较重要的特征图,然后再获取远程依赖关系,以便有效地获取全局上下文,使其在特征融合前包含更丰富的语义信息。

Global Context模块如图3所示,有两个部分组成,一个是简化的non-local块,另一个是SE块。non-local有很大的感受野,可以考虑全局语义特征。SE可以得出每个特征图的权重。Global Context融合了两个模块的特点,可以更加充分的提取全局信息。Global Context模块可以表示为如式(1)所示:

图3 Global Context模块Fig.3 Global Context module

Global Context模块结构主要包含Context Modeling和Transform两种结构。Context Modeling结构是为了获得全局语义信息,首先采用1×1卷积和Softmax激活函数求取权值,然后再建立全局的长距离依赖关系。Transform用来获通道之间的依赖,使用1×1卷积、LayerNorm和ReLu激活函数实现。最后,进行特征融合,采用原始特征图中每个特征与对应位置的特征进行相加操作。Global Context模块具体表示如式(2)所示:

1.3 重构损失函数

YOLOv3损失函数由检测框置信度损失(L),目标分类损失(L)和检测框定位损失(L)三者构成。YOLOv3中没有考虑目标检测框在回归时出现的背景样本数目远大于目标样本的不平衡问题,本文提出一个新的损失函数,首先使用焦损失函数实现正负样本的平衡。

改进的L损失:为解决正负样本不平衡的问题,本文通过聚焦损失得出置信度损失L,如式(3)所示:

改进的分类损失L,如式(4)所示:

2 实验结果与分析

2.1 数据集

本次实验采用了公开数据集VOC来证明实验的有效性。我们在VOC2007的训练数据集和VOC2012的验证数据集的集合数据集(16551张图片)上进行训练,然后使用VOC2007的测试数据集(4952张图片)做测试样本。本文在VOC数据集上验证改进模型的结果。在实验前把数据集的标签格式转换成YOLO(Darknet)格式,数据处理后的尺寸为416×416,每次分批处理的大小为16。

本次实验的评价指标是mAP@.5和mAP@.5:.95,AP是指PR曲线下面积,其中mAP@.5指预测区域与目标标记区域的交并比IoU>=0.5的mAP值,mAP@.5:.95指从0.5到0.95步长为0.05的IoU阈值上的平均mAP。

2.2 对比实验

本文选择VOC数据集做对比试验,因为VOC数据集种类繁多,高达20个种类,该数据集专门拍摄的道路状况的图片,更贴近路况检测的应用场景,并且单个图片中要检测目标更加密集,遮挡目标比较多,检测难度比VOC更大。如表1所示中对比了其他一些著名的对YOLOV3的改进,其中包括在特征融合处加入SPP模块,比较它的mAP@.5提高了0.29%。

表1 不同算法在VOC数据集上的对比实验Tab.1 Comparative experiments of different algorithms on VOC dataset

2.3 消融实验

本文选择VOC数据集做消融试验,VOC数据集在做YOLO模型检测时使用比较频繁,数据集数量也比较大,就对每个修改部分的优劣性比较上更加充分。

本文算法的改进有三个方面:SPA-DarkNet-53、选择性特征融合、平衡损失函数。如表2所示中的方法1和方法2可以发现在骨干网中加入SPC模块,使mAP@.5提升了0.67%、mAP@.5:.95提高了1.44%,表明通过添加SPC到骨干网可以扩大特征图每个元素的感受野,增强了特征提取。方法3在方法2的基础上在高层特征融合前加入了轻量级Global Context模块,相比之下mAP@.5提高了0.12%,表明对高层特征获取全局语义更有利于特征的丰富。最后引入焦损失重构置信度和目标分类损失时mAP@.5又提高了0.37%、mAP@.5:.95提高了0.20%,综上所述与原模型相比mAP@.5总共提高了1.07%、mAP@.5:.95提高了1.71%。

表2 消融实验Tab.2 Ablation experiment

3 结语

本文提出了基于YOLOv3金字塔切分卷积的路况检测算法,使用了金字塔切分卷积策略改进了主干网的感受野。使用了Global Context模块选择关键特征进行特征融合。最后利用焦损失重构置信度损失函数和目标分类损失函数,该算法可以有效的提高目标检测的精度。

猜你喜欢

损失卷积函数
二次函数
基于3D-Winograd的快速卷积算法设计及FPGA实现
胖胖损失了多少元
二次函数
函数备考精讲
从滤波器理解卷积
玉米抽穗前倒伏怎么办?怎么减少损失?
基于傅里叶域卷积表示的目标跟踪算法
一般自由碰撞的最大动能损失
损失