基于改进YOLOv3的轻量级目标检测算法

2023-11-07 05:24王燕妮贾瑞英
探测与控制学报 2023年5期
关键词:注意力卷积精度

王燕妮,贾瑞英

(西安建筑科技大学信息与控制工程学院,陕西 西安 710055)

0 引言

目标检测是计算机视觉领域的一个基本问题,旨在对对象进行分类并预测目标所在位置[1]。它的应用十分重要与广泛,比如常见的红外探测技术[2]、智能视频监控[3]、车道线检测[4]等。

传统的目标检测算法主要基于手动提取特征,如常用于行人检测的方向梯度直方图(histogram of ooiented feature gradient, HOG)[5]与支持向量机(support vector machine, SVM)[6]算法。传统算法对滑动窗口的区域选择策略没有针对性,且冗余设计的窗口特征对于多样性的变化未达到较好的鲁棒性,这些任务目前的解决方法是基于卷积神经网络的方法。

基于卷积神经网络的目标检测算法依据速度可分为两阶段目标检测与单阶段目标检测。两阶段目标检测算法先提取出候选目标边界框,然后做分类和边界框回归任务,如经典的Faster-RCNN[7],但该模型检测效率低,速度上无法满足实时的要求。单阶段目标检测算法将两阶段融合在一起,采用了“锚点+分类精修”的实现框架。单阶段检测算法(single shot muitibox detector,SSD)[8]结合了回归思想与anchor box机制,提取到一系列离散化的bounding boxes,但SSD算法对本身较小的目标检测效果较差。快速目标检测算法(you only look once, YOLO)[9]系列算法将目标检测任务转化为一个回归问题,在网络预测窗口使用全局信息,这使得检测精度大大提高。

近些年来,卷积神经网络在计算机视觉领域取得了很大进展,在目标检测领域也取得了一定的成果。Shuffle Netv2[10]与Mobile Netv2[11]网络通过在主干中加入深度可分离积(depthwise separable convolutions, DSCs)[12]或神经搜索结构(neural architecture search, NAS)[13]减小参数模型及运算参数量。轻量化的网络层出不断,文献[14]提出的基于部署的检测网络轻量化程度高,但检测精度有限。文献[15]通过引入ShuffleNet中的通道打乱机制减小识别船舶模型。但上述模型在减小参数量的过程中,网络的一些固有特征被弱化了。VGNetG网络[16]尝试使用边缘检测器替换可学习的深度分类卷积层,通过减少映射中的冗余提高模型参数效率和推理速度。

基于YOLOv3的轻量级检测算法通过低成本操作得到更多的特征图信息,借鉴特征对齐融合网络(feature-align pyramid networks,FaPN)[17]改进的FSSA模块有效融合信息;通过嵌入改进交叉注意力[18](improved criss cross Attention,ICC-Attention),增加模型对空间位置的关注,兼顾检测精度与速度,减少目标物误检,提升检测效率与网络目标定位能力。

1 YOLOv3模型

YOLOv3模型是经典的多尺度目标检测模型,以整张图作为输入,以回归边界框的位置和边界框所属的类别作为输出。模型在检测时首先将输入图片划分为S×S个网格,每个网格负责检测目标物中心点落在网格内部的物体;然后通过计算每个网格中预测框的置信度得分,采用非极大值抑制算法(non-maximum suppression, NMS)[19]选出置信度最高的预测框来实现初步目标的定位与分类;最后利用损失函数训练各类误差并进行最小值寻优,完成目标的精确定位与分类。模型由检测主干、融合网络、检测头三部分组成。

1.1 检测主干Darknet53

YOLOv3模型以Darknet53作为主干网络进行特征提取。主干网络含有5个残差块,每个残差块均使用大量的卷积与跳跃连接有效提取多个尺度的语义信息。每个残差块由图1所示的1×1卷积与3×3卷积及残差边组成。为达到更高效的精度,主干网络制造更深更复杂的网络,但模型规模同时增大,训练参数多,检测速率低下。

图1 残差模块Fig.1 Residual module

1.2 特征融合金字塔

YOLOv3的颈部融合网络(feature pyramid networks, FPN)[20]对主干提取的三个特征层重新处理,将不同感受野的特征图进行信息融合。如图2所示,特征融合金字塔是自顶向下的,采用多尺度融合的方式对浅层和中层目标进行特征融合,构成三个不同尺度的目标定位与语义信息的融合层,增强网络语义信息的表达能力。

图2 FPN特征融合网络Fig.2 Feature pyramid networks

1.3 检测头

YOLO Head由两个卷积组成,卷积核大小分别为3×3与1×1,前者用于特征整合,后者用于调整通道数,最后输出检测目标的位置与类别置信度信息。

2 改进的轻量级检测算法

为改善YOLOv3模型的不足,改进后模型首先使用轻量深度卷积网络VGNetG高效提取特征信息;其次使用特征尺度感知FSSA模块动态融合[21]多尺度上下文信息[22];最后ICC-Attention模块收集给定像素的上下文信息算法,在计算资源较少的情况下提炼关键目标的上下文信息,减少漏检误检情况。算法整体框架图如图3所示。

图3 改进算法整体框架图Fig.3 Overall frame diagram of the improved algorithm

2.1 主干网络

改进算法使用轻量化主干VGnetG模型提取特征。下采样模块与恒等映射模块如图4所示。图4(a)中,下采样模块先通过步长为2的深度可分离卷积(depthwise separable convolutions, DSCs)来加倍通道数、减半分辨率并提取特征,再通过点卷积来扩展通道并重用这些特征。

图4 下采样模块与恒等映射模块Fig.4 Down-sampling module and identity mapping module

深度可分离卷积将标准卷积分解为用于空间滤波的轻量级深度卷积和用于特征生成的点卷积。由于带有深度卷积核卷积会导致特征图重复与计算冗余,因此网络使用恒等映射来代替部分深度卷积。下采样模块中仅扩展通道部分由逐点卷积生成来重用特征,提高推理速率。半恒等模块用恒等映射模块替换一半的深度卷积,且输入的右半部分组成最终输出的左半部分,输出的右半部分由逐点卷积生成,在保持块宽度的同时减少点卷积以更好重用特征。改进后的算法主干中每个stage层由图4(a)与4(b)两个模块叠加而成。VGNetG模型详细网络参数如表1所示。

表1 VGNetG网络结构Tab.1 VGNetG network structure

2.2 嵌入注意力机制

注意力机制指人类在观察周围物体时,选择性地聚焦在关键物体上,同时忽略其他事物的一种策略。

2.2.1改进的交叉注意力

长距离依赖性也叫非局部上下文信息[23]。要准确完成目标检测,获得长距离依赖性非常必要。

图5(a)所示的非局部注意力模块首先使特征图A每个位置生成一个自适应的注意力图B,并对输入特征图A做某种转化C,然后对B和C进行加权和,获得每个位置的上下文信息D,即密集连通注意力,这需要很多计算力,不适合对速度与精度要求较高的YOLO系列算法。

图5 非局部注意力和改进的交叉注意力Fig.5 Non-local block and improved criss cross attention

如图5(b)所示,重复的交叉注意模块只需两次遍历十字位置上的信息便可采样到所有像素的上下文信息F来增强位置表示,且注意力参数都是共享的,模块复杂度小。交叉注意力使用两个连续的注意力取代原有密集通道注意力,仅在十字交叉方向上聚合信息,极大降低了注意力的时间与空间复杂度。

ICC-Attention模块解决了目标检测中语境信息不足的问题,其使用两个连接图来代替常见的单个密集连接图,在提高参数运算效率的情况下,有效获取全图上下文信息,适合改进的算法。

2.2.2微交叉注意力MCC-Attention

组成改进交叉注意力的微交叉注意力如图6所示。首先,输入特征图H∈RH×W×C经过全局平均池化操作,然后进行卷积核大小为k×k卷积操作,并经过Sigmoid激活函数得到各个通道的权重,最后将权重与原始输入特征图对应元素相乘,得到的特征图输入到交叉注意力机制中,沿空间维度展开得到矩阵H′∈RN×C,其中N=H′·W,C表示不同图像区域的高维向量。

图6 微交叉注意力Fig.6 Micro criss cross attention

给局部特征映射H′ 应用两个具有1×1滤波器的卷积层分别生成两个映射Q与K,在Q空间维的每一个位置u上,可以得到一个向量,同时从K中提取与位置u在同一行或同一列的特征。进一步通过Affinity操作,在H′上应用另一个1 × 1滤波的卷积层,生成V∈RC×W×H′进行特征自适应。

Affinity操作指在Q空间维度u的每个位置上,计算与K同行或同列元素的相关性。

2.3 FSSA融合网络

FSSA模块通过计算两组未对齐特征的偏移量,给底层特征提供准确的位置信息与高层特征融合,进而减少目标物漏检。特征尺度感知FSSA模块结构图如图7所示。

图7 FSSA融合模块Fig.7 FSSA fusion module

2.3.1特征选择模块FSM

特征选择模块通过SE注意力(squeeze and excitation)[24]为输入特征建立含有丰富细节语义信息的特征映射,通过全连接来保留高权重噪声点,增强感受野。为减少边界信息损失,FSM模块在计算得到输入重要矩阵U后,继续缩放新特征图并引入特征选择层,完成包含空间细节的重要特征图的精确分配,进而自适应地重新校准通道响应。

图8 图像选择模块FSMFig.8 Feature selection module

首先,输入特征图到注意力模块中,特征重要性建模层fm(·)学习这些信息来建模每个特征图的重要性,并输出重要度矩阵U;其次使用重要度矩阵U得到缩放后的特征图,并将其添加到原始特征图上;最后,在特征映射上引入特征选择层fs(·)(即1×1 conv层以提高效率),用于有选择地维护重要的特征映射和删除无用的特征映射以减少信道。总的来说,FSM的过程可以公式化为

(1)

2.3.2特征尺度感知模块FSA

尺度感知模块(feature scaled aware,FSA)通过研究人类视觉的感受野(receptive fields, RFs[25])结构有效整合错位信息。模块动态选择合适的尺度特征,并通过自学习进行融合。

图9 特征尺度感知模块FSAFig.9 Feature scare aware

尺度感知模块中不同大小的卷积核类似于不同的感受野,不同空洞率的空洞卷积为每个分支分配偏心距可扩大感受野。其完成所有分支拼接与1×1卷积操作后生成感受野空间阵列,模拟人类视觉空间阵列,获取并对齐特征层的上下文信息,捕获多尺度特征信息。

3 实验与分析

3.1 实验数据

基于YOLOv3的轻量级算法使用的是经典的目标检测数据集PASCAL VOC数据集[26],包含20个类别。在训练阶段,算法使用PASCAL VOC2007 trainval与PASCAL VOC2012 trainval作为训练集和验证集,使用PASCAL VOC2007 test作为测试集来测试。数据集中各类目标均匀分布,保证了实验的有效性。

3.2 评价指标

算法的评价指标为mAP(均值平均精度)。在目标检测中,mAP是所有类别的平均精度求和除以所有的类别,取IOU=0.5时的mAP值。P-R曲线即精准率-召回率的关系曲线图,即在坐标系上做以precision和recall为纵、横轴坐标的二维曲线。

3.3 训练过程

实验配置环境如下:CPU为AMD EPYC 7302H、GPU为NVIDIA GeForce RTX3090、CPU显存为24 GB、硬盘内存为50 GB。训练过程的优化参数如下:训练的epoch为140,设置每批次输入网络的图像数为32。训练采用两步骤训练法,首先冻结骨干网络训练前20个epoch,初始学习率为0.001,每迭代一次,学习率下调5%;从第21个epoch开始,解除冻结的骨干网络,初始学习率设置为0.000 1,且每迭代一次,学习率也下降5%。此训练方式有助于保持模型深层的稳定性,提升网络对多尺度目标物的检测能力。

3.4 实验结果

在输入图片尺寸为416×416时, 改进算法的检测精度为84.1%,比SSD算法检测精度提高6.9%,并且检测速度符合实时检测速率。另外, 和两阶段算法的 Faster R-CNN 相比, 算法在输入图片像素尺寸为416×416的情况下, 检测精度超过输入图片像素尺寸为1 000×600的Faster R-CNN算法。

3.4.1检测结果图对比

为更直观地体现本网络的性能,选取了部分图片来展示算法在PASCAL VOC2007 test下的检测结果图如图10所示。可以看出YOLOv3检测中均有漏检,改进后的算法检测出图10(a)中有像素交叉时漏检的person类,和复杂背景下的图10 (c)中的cow类。说明YOLOv3模型对小尺度目标物不敏感,改进后的算法均可以检测出图10(e)中的boat类、图10(g)中的sheep类。从以上结果得知,改进的算法对漏检、小目标的物体检测有一定的泛化能力。

图10 检测算法结果对比Fig.10 Comparison of detection algorithm results

3.4.2消融实验

本文改进方法以YOLOv3为基线做出三个改进:采用轻量化的检测主干、改进的交叉注意力与特征尺度感知模块。为了评估引进的模块在PASCAL VOC 2007 test数据集上的影响,在此数据集上进行消融实验,定性分析各模块的检测性能结果如表2所示。

表2 不同模块精度对比结果Tab.2 Accuracy comparison results of different modules

3.4.3不同算法检测速度与精度对比

为了验证算法的检测性能,将改进算法和SSD、YOLOv3、YOLOv4[27]、YOLOv3-tiny[28]进行实验对比。从表3可以看出,与SSD、YOLOv3相比,基于YOLOv3的轻量级目标检测算法的运算量与参数量都成倍减少。与YOLOv3-tiny相比,虽然运算量与参数量相差不大,但精度mAP增长17%。改进算法精度虽逊色于YOLOv4,但需要的运算力更小。

表3 PASCAL VOC2007 test数据集下检测速度与检测精度对比Tab.3 Comparison of detection speed and detection accuracy in the PASCAL VOC2007 test dataset

图11为6 个算法检测精度的对比折线图,红色折线图表示为改进算法的精度图走向。可以清晰地看出,算法在car、cow、table、dog、mbike、person、sheep、sofa、train、tv这10个类都达到了最高精度。

图11 数据集上20种类别 AP对比Fig.11 AP comparison of 20 categories

综上表明改进后的轻量级算法检测参数量小。若在相同的参数量下,改进算法不仅能准确识别出更多的目标数量,且对相似目标的辨别能力更强,特别是对小目标和密集图像等检测难的目标,效果有显著提升。上述实验充分说明改进后的方法有利于改善小目标、密集目标等的漏检情况。

4 结论

为解决当前检测模型难以适配在便携式移动设备与嵌入式平台的问题,基于YOLOv3的轻量级目标检测算法充分使用丰富的上下文信息来解决困难目标漏检问题。首先使用VGNetG作为主干,并在网络中引入改进的交叉注意力模块以提取更多上下文信息,增强网络对关键信息的辨别能力;其次,对于原网络的融合机制进行改进,引入FSSA网络融合更丰富细节的低分辨率的特征,从而进一步提高网络在密集目标环境下的检测效果。

基于YOLOv3的轻量级目标检测算法在PASCAL VOC 2007测试集上的检测精度达到了84.1%,检测速度达到47帧/s,参数量为5.37 M,证明该算法具有实时性和一定鲁棒性。改进后的算法需要进一步完善算法的速度,可针对各个模块进行优化,全面提升网络在复杂场景下目标检测性能。

猜你喜欢
注意力卷积精度
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于DSPIC33F微处理器的采集精度的提高
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器
一种基于卷积神经网络的性别识别方法