APP下载

基于注意力改进的自适应空间特征融合目标检测算法

2023-05-21逄晨曦李文辉

吉林大学学报(理学版) 2023年3期
关键词:注意力损失精度

逄晨曦,李文辉

(吉林大学 计算机科学与技术学院,长春 130012)

目标检测[1]在实际生活中应用广泛,如交通领域[2]的车牌字符识别、无人驾驶[3]、交通标志识别[4]、障碍物检测、肿瘤图像检测[5]、病变检测、健康管理、指纹识别、人脸识别[6]等.传统目标检测算法主要采用HOG(histogram of oriented gradients)[7]和DPM(deformable part model)[8]提取特征.Viola等[9]首次使用滑动窗口检测方法实现了实时人脸检测.HOG特征描述器最初由Dalal等[10]提出,但HOG难以处理遮挡问题,并且DPM无法适应大旋转,稳定性差,过于依赖人工干预,识别率相对较低.

近年来,随着深度学习技术的发展[11-13],目前用于图像识别与分析研究的深度学习模型主要有卷积神经网络(convolutional neural networks,CNN)[14]、深度置信网络(deep belief network,DBN)[15]和堆栈自动编码器(stacked auto-encoders,SAE)[16]等.卷积神经网络在检测精度和速度上优于后两种方法,性能更优,因此受到越来越多的关注.

Girshick[17]提出了Fast R-CNN(faster regions with CNN)探测器; Ren等[18]提出了更快速的区域卷积神经网络探测器.从R-CNN到Faster R-CNN引入了RPN(region proposal network),虽然解决了Fast R-CNN的检测速度缓慢,但在后续的检测阶段仍存在计算问题.Faster R-CNN是两阶段算法中的代表性算法,与单阶段检测方法相比,需要多次运行检测和分类过程,速度较慢.

单阶段检测算法直接从网络中提取特征对对象的分类和定位进行预测处理,代表性的算法有SSD(single shot multiBox detector)[19]和YOLO(you only look once)[20-21].SSD算法是一种通过直接预测目标的包围盒坐标以及类别检测目标的对象检测算法,可通过不同分辨率卷积层的特征图,检测不同大小规格尺度的物体.与Faster R-CNN相比,YOLO未显示区域提取的过程.在Faster R-CNN中,虽然区域建议网络[22]和Faster R-CNN共享卷积层,但在模型训练过程中,需要反复训练RPN网络和Faster R-CNN网络.YOLO[20]由于只扫描一次,所以速度非常快.与先提取后分类的R-CNN系列的候选帧相比,YOLO只需要查找一次即可,同时预测每个区域的边界框和概率,提高了检测速度.但大部分的YOLOv1[20]网格不包含对象,仅提供了损失.没有对象的网格所提供的梯度将远大于包含对象的网格对梯度更新的贡献,这将导致网格变得不稳定.

与YOLOv1相比,YOLOv2[23]采用联合训练算法在检测数据集和分类数据集上同时训练目标检测器,利用检测数据集数据学习目标的准确位置,通过分类数据集的数据增加分类的类别数,提高鲁棒性.YOLOv3[24]引入特征金字塔网络(feature pyramid networks)[25]进行多尺度预测,并对YOLO9000进行改进,使用类似ResNet的基本分类网络加上残差结构Darknet-53.YOLOv3在测试过程中通过查看单一的整个网络评价图像预测,因此其预测使用图像中的全局信息.与R-CNN需要的多个单一目标图像不同,使得YOLOv3比R-CNN和Fast R-CNN更快.YOLOv4[26]提出了一种高效、功能强大的基于改进SOTA方法的目标检测模型,它允许每个人使用小型GPU训练目标探测器,验证了其有效性.与CBN(cross-iteration batch normalization),PAN(path aggregation network)[27],SAM(spatial attention module)[28]等相比,YOLOv4算法在实时目标检测算法中准确率最高,达到了准确率和速度的最佳平衡.

一般深度卷积神经网络中存在池化层,在尺度变化过程中无法兼顾大目标和小目标,从而丢失很多有价值的信息,忽略了整体与部分之间的关联.本文提出一种功能强大、效率高的基于CNN的目标检测算法.该算法首先提出一种引入注意力机制的YOLO算法,并在特征提取网络中加入通道注意力; 其次,通道注意力机制通过保留位置信息,增强特征表示,提高结构的非线性; 最后,使用新的损失函数,通过对损失函数的统一幂化,提高IoU目标的损失值和梯度自适应加权的Bbox回归精度.实验结果表明,基于YOLOv4模型采用注意力机制改进自适应空间特征融合(attention improved adaptive spatial feature fusion,AIASFF)算法与原始YOLOv4模型相比,改进模型具有更优的检测性能.

1 预备知识

1.1 YOLOv4网络

YOLOv4是基于YOLOv3改进的目标检测算法.虽然在目标检测方面没有实质性的变化,但YOLOv4依然将速度和精度很好地结合在一起.经典的YOLOv4网络主要由输入层(Input)、主干网络(Backbone)、特征金字塔(Neck)和预测层(Prediction)四部分组成.传统的YOLOv4网络模型如图1所示.

图1 传统的YOLOv4网络模型Fig.1 Traditional YOLOv4 network model

由图1可见,输入端主要用于预处理数据.采用Mosaic数据增强方法从原始图像中生成样本.通过该方法,将4张训练图片进行随机缩放,然后随机拼接并混合成新图片,不仅丰富了数据集Image,而且在随机缩放过程中加入了大量的小目标,使模型更加稳健.同时,输入端将数据传送到骨干网.骨干网实际上融合了各种新方法.YOLOv4首先在YOLOv3使用的骨干网Darknet-53的基础上,使用Darknet-53上的Reblock_body结构的跨阶段部分Darknet(CSPDarknet)结构.与原始ResBlock相比,交叉阶段部分网络(cross stage partial network,CSP)[29]将输入的特征图按照通道进行裁剪,只将原始特征图的一半输入到残差网络进行前向传播,另一半直接通过通道与残差网络的输出结果进行串联.然后将骨干网络中的Leaky-ReLU激活函数改为Mish激活函数[30],从而将Darknet-53网络结构修改为CSPDarknet-53.YOLOv4的骨干网络Backbone采用CSPDarknet-53网络结构,其优点包括: 首先,增强了卷积神经网络的学习能力,使其在量化的同时也能保持准确性; 其次,减少了计算开销,降低了内存使用成本.在主干和预测之间有一个颈部部分,目的是更好地提取融合特征,提高模型性能.

为增强数据,YOLOv4不仅考虑了目标帧的重叠区域,而且相对于YOLOv3的损失函数考虑了中心点距离和长宽比.预测结束部分,采用CIOU_loss[31]的回归方法,使得预测框的回归速度和精度更高.

基于数据集VOC的目标检测方法性能比较列于表1.由表1可见,基于回归定位的目标检测方法采用单个网络完成对检测框位置和目标分类的回归,与其他单目标检测方法相比,YOLOv4提高了10%的检测速度,通过在数据集VOC2007中引入锚箱,也提高了准确性.

表1 基于数据集VOC的目标检测方法性能比较

1.2 路径聚合网络

路径聚合网络(PANet)是通过促进信息的流动在网络中传递效率的一种提议网络.通过下层的定位增强以增强整个路径上的特征,自底向上的传播与传统传播相比缩短了底层与顶层特征之间的信息路径,又使用了自适应特征池将特征层融合,使子网络保留了更多的信息,从而减少了信息损失.如图2所示,底层信息特征对目标识别有很大影响,但是逐步传到顶层时会损失很多重要的定位信息,所以利用底层存在的精确定位信号增强特征金字塔,创建了自底向上的路径增强.

图2 路径聚合网络Fig.2 Path aggregation network

2 本文算法

2.1 注意力机制

在目标检测领域,空间注意力机制与检测任务具有更高的相关性和更直接的作用方式,因此应用效果显著[32].本文采用通道注意力的方法,将位置信息嵌入到通道注意力中,并将通道注意力分解为两个一维特征编码过程,分别沿两个空间方向聚合特征,对空间的远程依赖关系和精确的位置信息进行编码.

空间注意力机制目的是确定目标位置.将特征图的每个像素作为一个单元,被分配一个权重值.其中,关键部位被分配一个较大的权重,这样模型的注意力更集中,权重文件是一个矩阵,矩阵维度与图片尺寸相同.通道注意力机制确定目标类别,以特征图为单位,聚焦图像的某一部分,并给每个通道分配权值向量.

图3 CA注意力模型Fig.3 CA attention model

本文算法使用的注意力模块如图3所示.输入特征映射分别通过基于宽度和高度的全局池化,转化为一对一维特征编码,然后执行Sigmoid激活操作生成最终的通道注意力特征映射.本文算法使用的注意力方法有效地平衡了位置和通道的关系.通过将二维全局池化操作分解为坐标信息嵌入和坐标注意力生成两个一维编码,本文方法比其他具有轻量级属性的注意力方法效果更优.

坐标注意力模块表示为

(1)

其中gh=σ(Fh(fh))和gw=σ(Fw(fw))分别为高度和宽度的Sigmoid激活函数,fh和fw分别为通过公式f=δ(F1([zh,zw]))得到的两个卷积变换和,分别将和变换为具有相同通道数的张量,自变量zh和zw分别为高度和宽度上的通道输出.信息嵌入过程中一维特征编码公式为

2.2 Loss-PIoU损失函数

为评价模型预测值与真值不一致的程度,原YOLOv4对象检测模型引入了一个损失函数,考虑了边界框宽高比的尺度信息,从重叠面积、中心点距离和长宽比3个角度进行衡量,回归损失函数为

(5)

其中:

α是一个正的权衡参数,v衡量长宽比的一致性,wgt和hgt是真实帧的宽度和高度,w和h是预测帧的宽度和高度;b和bgt分别表示预测帧和目标帧的中心点;ρ是欧氏距离;c是覆盖两个盒子的最小闭盒的对角线长度.

本文使用新的Loss-PIoU回归损失函数:

(6)

图4 第三级的AIASFFFig.4 Level 3 AIASFF

在原来的CIoU及惩罚项表达式中进行了损失的统一幂化,有助于提高IoU目标的损失和梯度自适应加权的Bbox回归精度,为小数据集和噪声Box提供更强的鲁棒性.

2.3 改进的算法设计

目标检测中使用金字塔特征解决目标尺度变化.本文使用一种新的注意力机制改进的AIASFF策略进行金字塔特征融合,解决不同特征尺度之间的不一致性.通过保存沿另一个空间方向的精确位置信息,从而提高注意力生成特征的尺度不变性,并且几乎没有增加复杂度.其核心思想是通过使用注意力模块学习自适应地调整融合各尺度特征的空间权重减少信息的丢失.以图3中的AIASFF-3为例,图4中的绿框描述了如何进行特征融合,其中x1,x2,x3分别为第1级、第2级、第3级的特征,并将不同层的特征乘以权重参数α3,β3,γ3,p3,q3和r3,相加得到新的融合特征AIASFF-3,即特征融合公式为

(7)

由于采用添加的方法,需要添加的1~3层的特征尺寸相同,通道数也应相同.需要对不同层之间的特征进行上采样或下采样,进行通道调整为后续融合做准备.

对于权重参数α,β和γ,通过对缩放后的特征图进行1×1卷积得到,并且参数α,β和γ通过Softmax级联,使其在[0,1]内,和为1:

(8)

对于权重参数p,q,r,与α,β和γ相同,使通道匹配.但p,q和r都通过了CA注意力模型,重新增强了被忽略的信息特征.AIASFF改进后的YOLOv4模型结构如图5所示.

图5 改进的YOLOv4模型结构Fig.5 Improved YOLOv4 model structure

用指数滑动平均的训练方法对模型的参数做平均,即使用梯度历史加权平均值平滑掉难样本或者误差样本导致的梯度抖动,使训练过程更平滑稳定,以提高测试指标并增加模型的鲁棒性.在训练模型时,使用指数滑动平均保持训练参数移动的稳定,促进训练以达到更好的训练结果.

使用Loss-PIoU代替原IoU,增加了IoU目标的损失和梯度,进而提高了目标框的回归精度.经验表明,Loss-PIoU损失函数可以很容易地用于改进检测器的效果.尽管YOLO的检测速度有了很大提高,但其定位精度对于一些多尺度的目标有所下降,因此本文开发了一种功能强大、效率高的基于CNN的目标检测算法.主要体现在两方面: 以YOLOv4[27]作为基线,通过加入AIASFF,增加其提取和过滤关键特征的能力,解决目标检测中因目标尺度变化的影响使精度降低的问题; 更改原损失函数,在原IoU及惩罚项表达式中进行了损失的统一幂化,有助于提高IoU目标的损失和梯度自适应加权的Bbox回归精度,为小目标数据集提供更强的鲁棒性.

3 实 验

3.1 实验环境

为验证本文算法的有效性,进行多次实验.实验平台环境使用Ubuntu 18.04操作系统,选用Pytorch 1.1.0组合编程环境,编程语言为Python 3.6,加速环境为CUDA 11.0,使用NVIDIA GeForce RTX 2080 Ti显卡进行运算,CPU为AMD Ryzen Threadripper 1900X8-Core Processor,内存为31.3 GB.

3.2 数据集预处理

数据集MS COCO是一个常用的图片丰富且数量充足的目标检测数据集.该数据集以场景理解为目标,主要是从复杂的日常场景中截取部分图片,图像中的目标通过精确分割进行标定.该数据集包括超过30万张的图像,标注过的图像超过20万张.存在150万个对象实例,80个目标类别,91个材料类别,以及对25万人进行了关键点标注.

本文利用数据集MS COCO进行实验,验证基于YOLOv4的改进小目标检测算法的性能.为进一步提高算法模型的分类能力,防止由于样本数量过少而出现的过拟合现象,本文在实验过程中利用数据增强,通过对数据集中的表情图像进行旋转、水平翻转和垂直翻转扩充数据集,最终数据集共117 266张图片.

3.3 评价指标

本文采用平均准确率均值(mean average precision,mAP)、平均准确率(average precision,AP)、精确率(Precison)和召回率(Recall)作为目标检测中的评价指标.精确率表示预测为正的样本中真正正样本所占的比例,召回率表示样本中的正样本被预测正确的比例.计算公式分别为

(9)

(10)

其中TP(true positives)表示被正确分类的正样本数量,TN(true negatives)表示被正确分类的负样本数量,FP(false positives)表示被错误分类为正样本的负样本数量,FN(false negatives)表示被错误分类为负样本的正样本数量.精确率随召回率的变化过程构成了PR曲线,平均准确率均值mAP即为该曲线与坐标围成的面积,计算公式为

(11)

3.4 实验结果与分析

将本文算法在数据集MS COCO上进行实验,并与Faster R-CNN,YOLOv2,YOLOv3和原始YOLOv4算法进行对比,实验结果列于表2.改进的AIASFF-YOLOv4模型是对YOLOv4算法进行的改进,基于YOLOv4的结构设计了AIASFF模块,并加入了新的损失函数以及指数滑动平均修改自适应空间特征融合网络中残差连接两层特征映射直接线性融合的方法.

表2 不同算法在数据集MS COCO上的评估结果

由表2可见,改进的YOLOv4算法的检测精度明显优于Faster R-CNN算法,验证了注意力改进的自适应空间特征融合能有效提高大目标的检测精度; 本文算法精度高于AIASFF+YOLOv4算法,尤其在小目标上有所提升,验证了Loss-PIoU对于提升小目标的检测精度有效; 本文算法是在YOLOv4算法的基础上进行改进,检测精度达到41.5%,在目标的检测精度上相比基准算法提高了1.1%.实验结果表明,本文算法相比于基准算法YOLOv4检测效率更高.

图6为本文算法与YOLOv4算法在数据集MS COCO上对部分数据的测试结果.由图6可见: 两种算法在单一目标上的检测效果差异较小,无错检和漏检现象,但如果同一张图片中存在多种尺寸目标时,本文算法相比于YOLOv4算法在漏检问题上有显著改善.对于图中对应目标的尺寸,多类目标的检测效果差异较大是由于目标之间的尺寸形状特征差异较大,目标易受背景区域中相似物体干扰,因此多类目标的检测效果有差异.但综合对比可见,本文算法在检测精度及漏检率上相比于其他算法均有明显改善.因此,本文算法比基准算法在多尺寸多目标的检测上更具优势.本文算法在尺度变化过程中,在不影响小目标识别的前提下提高了中、大目标的精度.

图6 不同算法效果对比Fig.6 Comparison of effects of different algorithms

此外,与原始YOLOv4模型相比,改进的AIASFF-YOLOv4模型在数据集MS COCO上目标检测的检测精度分别提高了2.4%和5.1%.与YOLOv3模型相比,改进的AIASFF-YOLOv4模型在检测准确率和召回率上均有较大提升.

综上所述,针对不同大小目标的检测任务,本文提出了一种基于YOLOv4的空间特征融合目标检测算法.该算法在YOLOv4模型的基础上,利用注意力机制对特征图进行改进,并加入多尺度特征融合、指数滑动平均及新的损失函数,进一步提高了大目标的检测精度.为验证算法的有效性,本文充分利用MS COCO测试集,并与YOLOv4模型和YOLOv3模型进行比较,得出如下结论:

1) 改进的YOLOv4算法能在目标间存在遮挡的情况下实现对空间目标的准确识别;

2) 在相同条件下,改进的YOLOv4模型算法在识别弱目标方面优于YOLOv3和YOLOv4算法; 在目标尺寸发生变化的情况下,改进的YOLOv4算法和原模型算法不能完全准确地识别图像中的所有目标;

3) 在数据集MS COCO上,与YOLOv4算法相比,改进AIASFF-YOLOv4算法的mAP提高了1.1%,AP50提高了2.4%,AP75提高了5.1%.

猜你喜欢

注意力损失精度
让注意力“飞”回来
胖胖损失了多少元
玉米抽穗前倒伏怎么办?怎么减少损失?
基于DSPIC33F微处理器的采集精度的提高
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
GPS/GLONASS/BDS组合PPP精度分析
一般自由碰撞的最大动能损失
损失
改进的Goldschmidt双精度浮点除法器