logo资料库

论文研究-Attention-YOLO:引入注意力机制的YOLO检测算法.pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
Computer Engineering and Applications 计算机工程与应用 2019,55(6) 13 Attention-YOLO:引入注意力机制的 YOLO 检测算法 徐诚极,王晓峰,杨亚东 上海海事大学 信息工程学院,上海 201306 摘 要:实时目标检测算法 YOLOv3 的检测速度较快且精度良好,但存在边界框定位不够精确、难以区分重叠物体 等不足。提出了 Attention-YOLO 算法,该算法借鉴了基于项的注意力机制,将通道注意力及空间注意力机制加入特 征提取网络之中,使用经过筛选加权的特征向量来替换原有的特征向量进行残差融合,同时添加二阶项来减少融合 过程中的信息损失并加速模型收敛。通过在 COCO 和 PASCAL VOC 数据集上的实验表明,该算法有效降低了边界 框的定位误差并提升了检测精度。相比 YOLOv3 算法在 COCO 测试集上的 mAP@IoU[0.5 :0.95]提升了最高 2.5 mAP,在 PASCAL VOC 2007 测试集上达到了最高 81.9 mAP。 关键词:目标检测 ;YOLOv3 算法 ;Attention-YOLO 算法 ;通道注意力机制 ;空间注意力机制 文献标志码:A 中图分类号:TP391.41 doi:10.3778/j.issn.1002-8331.1812-0010 徐诚极,王晓峰,杨亚东 .Attention-YOLO:引入注意力机制的 YOLO 检测算法 . 计算机工程与应用,2019,55(6):13-23. XU Chengji, WANG Xiaofeng, YANG Yadong. Attention-YOLO:YOLO detection algorithm that introduces attention mechanism. Computer Engineering and Applications, 2019, 55(6):13-23. Attention-YOLO:YOLO Detection Algorithm That Introduces Attention Mechanism XU Chengji, WANG Xiaofeng, YANG Yadong College of Information Engineering, Shanghai Maritime University, Shanghai 201306, China Abstract:YOLOv3 is a real-time object detection algorithm, its speed and accuracy reach good trade-off, but the disad- vantages are that the boundary box positioning is inaccurate and it is difficult to distinguish overlapping objects. For the above problems, this paper proposes the Attention-YOLO algorithm based on the item-wise attention mechanism which embeds channel and spatial attention mechanism in the feature extraction network, uses the filtered weighted feature vec- tor to replace the original residual fusion, and adds a second-order item to reduce the information loss in the process of fusion and accelerate the convergence of the model. Based on the experiments on COCO and PASCAL VOC datasets, the results show that the Attention-YOLO algorithm effectively reduces the boundary box positioning loss and improves the detection accuracy. Compared with YOLOv3, the Attention-YOLO improves at most 2.5 mAP@IoU[0.5∶0.95] on COCO dataset, and reaches 81.9 mAP on PASCAL VOC 2007 test. Key words:object detection; YOLOv3 algorithm; Attention-YOLO algorithm; channel attention; spatial attention 1 引言 目标检测[1]是计算机视觉领域中最具有挑战性的问 题之一,同时它也被广泛应用于人脸检测[2]、自动驾驶[3-4]、 行人检测[5]等许多领域。目标检测任务通常包括标记出 所给图片中待检测物体的边界框,并且判断边界框中的 物体属于哪一类别。传统的目标检测可以分为三个步 骤:首先,选取感兴趣区域,考虑到待检测的物体可能出 现在图片中的任一位置,同时其大小比例也不是固定 的,通常采用多尺度、多长宽比的滑动窗口技术[6]来扫描 整个输入图片。尽管这种技术可以较好地标记出所有 可能出现待检测物体的位置,但是由于扫描时无差别地 对待每一个区域,导致计算量巨大,并且会产生冗余的 标记窗口。其次,从标记的区域中提取特征,常用的有 SIFT[7]、HOG[8]以及 Haar-like[9]等手工特征。但是由于外 基金项目:国家自然科学基金(No.61872231,No.61703267);上海海事大学研究生创新基金(No.2017ycx083)。 作者简介:徐诚极(1996—),男,硕士研究生,研究领域为深度学习与目标检测,E-mail:13761350550@163.com;王晓峰(1958—), 男,博士生导师,教授,研究领域为人工智能,数据挖掘与知识发现等;杨亚东(1990—),男,博士研究生,研究领域为计 算机视觉,图像处理。 收稿日期:2018-12-03 修回日期:2019-01-07 文章编号:1002-8331(2019)06-0013-11 计算机工程与应用www.ceaj.org
14 2019,55(6) Computer Engineering and Applications 计算机工程与应用 形,光照条件以及背景的多样性,手工特征的鲁棒性较 差,无法表征所有情况下的物体特征。最后,对所提取 的特征进行分类[10-11],识别出检测框中物体的类别。 近几年来,随着深度卷积神经网络在计算机视觉领 域的深入应用,以 YOLO 算法 [12-14]以及 SSD[15]算法为代 表的实时目标检测模型在工业领域以及实际应用场景 中[16-17]发挥了很好的检测效果。但是,由于这两种算法 将目标检测过程视作回归问题来处理,不能很好地将前 景区域与背景区域区分开,容易产生误检和漏检。而以 Faster-RCNN[18]为代表的含有 Region Proposal Networks (RPN)的检测算法能在感兴趣区域的生成阶段就将可 能含有待检测物体的区域大致确定下来,在大大提升准 确率的同时也能为之后的分类阶段节省处理时间。 目前对目标检测算法的改进主要包括:采用能够 提取到更丰富特征的基础神经网络、融合多个尺度的 特征来进行检测或是其他对于检测环节改进的方法。 Fu 等人 [19]提出在 SSD 检测框架的基础上,采用更深的 ResNet-101[20]网络来进行特征提取,并且采用了反卷积 层,引入额外的大量语义信息,改进了 SSD 算法对于小 物体的检测能力。Shen 等人[21]同样在 SSD 的基础上借 鉴了 DenseNet[22]的稠密连接,提出了一种能提升检测准 确率的 Stem Block 结构,改善了训练目标检测模型时 往往需要加载预训练权重的情况。Bodla 等人[23]针对非 极大值抑制算法可能导致的漏检情况,提出了一种 Soft- NMS 算法,对于重叠部分超过阈值的得分框,降低其置 信度,而不是直接进行抑制。该算法在不增加训练成本 以及参数量的前提下,获得了平均 1%的 mAP 提升。温 捷文等人 [24]对 YOLOv2 算法的特征提取网络进行批再 规范化的处理,并且移除 Dropout 层,相比较原 YOLOv2 算法取得了更高的检测精度和更快的训练速度。Lin 等 人[25]利用了深度卷积神经网络的多尺度特征,提出了一 个自上而下并且具有横向连接的特征金字塔网络结构, 在不同的尺度上分别进行预测,并将多层的特征图进行 融合。以上这些工作从不同角度提升了检测算法的性能。 在最近的研究中,Hu 等人 [26]将所提出的通道注意 力模块分别应用于 ResNet 及 ResNeXt[27]系列网络上,在 ImageNet 2012 数据集[28]上的 top-1 及 top-5 分类错误率 降低了最多 1.80%和 1.11%,在 COCO 2014 数据集[29]上 的 mAPIoU=0.5提升了 1.6%。此外,Woo 等人 [30]发现,同时 对卷积操作间的通道关系及空间关系进行建模加权,可 以更好地筛选出所需要的特征。在 YOLOv3 检测算法 中,所提取的卷积特征并未对卷积核中不同的位置进行 加权处理,即同等对待整个特征图中的每个区域,认为 每个区域对于最终检测的贡献是相同的。然而在实际 的生活场景中,图中待检测物体的周围往往具有复杂且 丰富的语境信息,对目标区域的特征加以权重,可以使 之能更好地定位在待检测的特征之上,也能在不引入过 多参数量的基础上提升网络的泛化性能。 本文在 YOLOv3 算法的基础上,提出基于注意力机 制的 Attention-YOLO 算法。在特征提取网络的残差连 接中加入注意力机制,使得具有注意力效果的梯度能流 入更深的网络中。此外,改进了残差连接中单一直接的 特征融合方式,加入二阶项及微小的偏置项。实验表 明,在不引入过多额外参数量的前提下,Attention-YOLO 算法相比原始的 YOLOv3 算法有一定的性能提升。 本 文 的 主 要 贡 献 如 下 :提 出 引 入 注 意 力 机 制 的 Attention-YOLO 算法,在特征提取网络中加入通道注意 力及空间注意力机制,最终仅增加 1.4%的参数量,在不 影响实时性的前提下改进了其对于关键特征的提取筛 选能力;修改特征提取网络中残差连接直接线性融合两 层特征图的方法,加入二阶项来更好地保留提取到的深 层及浅层特征并提升结构的非线性程度。其中,Attention- YOLO 算法的纵向性能比较实验在不借助预训练权重 及多尺度训练等技巧的基础上,取得了比原文方法更好 的检测精度。 2 相关工作 2.1 注意力机制 在神经网络中,可以存储的信息量称为网络容量, 网络容量和网络的复杂度成正比[31]。人脑在计算资源 有限的情况下,不能对于过载的视觉信息同时处理每一 位置的视觉图像,而是通过视觉的注意力机制(Attention mechanism)进行处理[32-33]。 按照注意力本身的形式分类,注意力机制可以分为 软性注意力和硬性注意力。按照注意力作用的特征的 形式,注意力机制可分为基于位置 [34]的注意力和基于 项[35]的注意力。基于位置的注意力的输入是具有空间 维度的特征图,基于项的注意力的输入是包含明确的项 的序列性数据。在计算机视觉领域中,基于位置的注意 力是与任务较为相关、作用方法较为直接的注意力机 制,其应用较为广泛。基于项的注意力在很多特殊的模 型中也得到了应用[36],由于其可以直接嵌入目前流行的 诸多卷积神经网络结构中,并且能够在不改动原有结构 的前提下进行端对端训练,因此采用基于项的注意力来 改进卷积神经网络是改动成本最低,且收益较好的选择。 当注意力机制用于图像描述[34]任务中时,注意力机 制 模 块 所 要 处 理 的 信 息 包 含 明 确 的 项 序 列 a ={a1 , },ai ∈ ℝD, 其中 L 代表特征向量的个数,D 代表 a 2 的是维度空间。因此所采用的注意力机制需要计算出 当前时刻 t 每个特征向量 ai ,公式如下: 的权重 α ,⋯,a t,i L (1) (2) = f e ti αt,i = att ,h ) (ai t - 1 exp(eti) ∑ L exp(etk) k = 1 计算机工程与应用www.ceaj.org
徐诚极,等:Attention-YOLO:引入注意力机制的 YOLO 检测算法 2019,55(6) 15 (⋅) 代表多层感知机,e 其中,f t - 1 表的是上个时刻的隐状态,k 代表特征向量的下标。 代表中间变量,h att ti 代 计算出权重后,模型就可以对输入的序列 a 进行筛 选,得到筛选后的项序列 z ,其中: t t = ϕ({αi},{ai}) (3) z 最终,注意力是硬性的或软性的取决于函数 ϕ 的 选取。 当 z t 为线性加权函数时,注意力为软性注意力。 表 表示独热编 被 选 中 ,则 其 对 应 的 视作概率,由其 而硬性注意力对 L 个特征向量进行离散选取,令 st 示模型选取作为注意力关注点的位置,st,i 码 向 量 ,如 果 某 个 特 征 向 量 ai s t,i 构成的多项式分布得到最终选择的 z = 1 。 j 代表某个小于 t 的时刻,将 a t,i ,如下式所示: t t,i i t,i j < t st,iαi ,α) = a (4) (5) p(s = 1|s ẑ t = ∑ 在细粒度图像识别领域中,Fu等人[37]提出的RA-CNN 网络按照由粗及细的过程,使用递归网络依照注意力提 取重要区域,将其进行放大并作为下一级的输入图像。 其中应用的注意力机制结合了硬性注意力和软性注意 力,同时也属于基于位置的注意力方法,将产生的硬性 注意力位置用 k 阶逻辑函数这样的阶梯型函数进行拟 合,从而得到可导的注意力权重,进而构成可端对端训 练的网络模型,在 Stanford Dogs datasets[38]上达到了最 高的 87.3%的分类准确率,但由于其注意力模型复杂, 速度上仍然低于回归型检测算法。 类似的,Hu 等人[26]提出的挤压与激励网络(SENet) 以及 Woo 等人 [30]提出的卷积注意力模块(CBAM)分别 在网络的特征通道维度以及特征空间维度上进行了特 征压缩和生成权重并重新加权的操作,这两种方法可以 看作在特征通道维度及特征空间维度上的基于项的注 意力。本文选取了 ResNet50 分类网络及在此基础上加 入了上述两种注意力机制后的分类网络作为对比,为直 观说明注意力机制对分类结果的影响 ,选用了 Grad- CAM 方法 [39]来进行分类结果依据的可视化。通常,卷 积神经网络的最后一个卷积层具有最丰富的空间及语 义信息,其输出维度与分类的类别数一致,Grad-CAM 方法通过求解全局平均后的梯度来得到每个类别所对 应的特征图所占的权重,最后将得到的权重与对应的特 征图进行加权求和,在每个类别上都能得到一个可视化 的热力图。如图 1 所示,红色部分是特征图中对应类别 置信度较高的地方,也是分类网络在特征图中所集中关 注的部分,其中 P 值为 Softmax 打分。得益于残差结构 和较深的网络层数,ResNet50 网络能较好地专注于目标 类别所在的特征图区域,在此基础上,通道及空间注意 力的作用使得分类网络能更好地区分无关特征,抑制影 响分类结果的其他信息。在检测算法中,选用分类特征 更加精确的特征提取网络将有助于之后的回归预测及 分类训练。 原图 ResNet50 ResNetSENet ResNet-CBAM Broccoli Toaster Traffic light =0.899 33 =0.509 04 =0.886 76 P P P =0.964 76 =0.855 66 =0.963 79 P P P P P P =0.998 26 =0.886 84 =0.997 09 图 1 不同注意力机制分类网络的类别热力图 2.2 YOLOv3 目标检测模型 YOLO 算法将整个检测环节作为一个回归及分类 问题处理,并没有选择 Select Search[40]、Edge Box[41]或 者是 RPN[18]这样的区域生成算法来完成感兴趣区域的 初始标定,而是直接使用原始的输入图像及标注进行训 练,节省了大量计算资源和耗时。 YOLOv2 算法开创性地提出了一种联合训练目标 检测数据集和图像分类数据集的方法,可以使模型预测 没有分类标注过的数据。YOLOv3 算法针对 YOLOv2 算法定位不准确及召回率较低等问题进行了改进,主要 改进点有以下几点:类别预测阶段由原先的单标签分类 改进为多标签分类,改善了其在类别复杂型数据集上的 分类性能;采用了三个尺度上的特征进行预测,相比较 YOLOv2 仅仅使用 13×13 的特征图进行预测,大大地增 加了特征图中保留的信息量;同时也采用了更深且具有 残差连接的网络来进行特征提取。 2.2.1 网络结构 YOLOv3 算法的网络结构主要由 Darknet-53 特征 提取网络以及特征金字塔网络两部分组成。整个特征 提取网络完全由卷积层组成,没有用到池化操作。 如图 2 所示,YOLOv3 中所采用的特征金字塔结构 (FPN)则是直接在原来的单一网络上做修改,在每个分 辨率的特征图上引入后一分辨率缩放两倍的特征图并 做相加(element-wise)操作。 预测 预测 预测 图 2 YOLOv3 的多尺度预测结构 计算机工程与应用www.ceaj.orĝ ̂ ̂ ̂
16 2019,55(6) Computer Engineering and Applications 计算机工程与应用 通过这样的连接,每一层预测所用的特征图都融合 了不同分辨率、不同语义强度的特征,融合的不同分辨 率的特征图分别用作对应分辨率大小的物体检测。这 样保证了每一层都有合适的分辨率以及强语义特征。 同时,由于此方法只是在原网络基础上加上了额外的跨 层连接,在实际应用中几乎不增加额外的时间和计算量。 2.2.2 检测过程 YOLOv3 算法不需要预先生成感兴趣区域(ROI), 而是直接以回归的方式来训练网络,同时对 COCO 2014 训练数据集使用 K-means 算法来进行训练样本边界框 的聚类,最终分别在 3 个尺度大小上预设了 3 组预定义 的边界框大小,之后的定位预测将基于这 9 种大小的边 界框进行,如图 3。首先通过特征提取网络在原始的 416×416 的输入图像上进行特征提取,接着将特征向量 送入 FPN 结构,产生 3 个尺度上的网格区域,分别为 13× 13、26×26 以及 52×52,每个网格区域预测 3 个边界框,共 产生(52×52+26×26+13×13)×3=10 647 个边界框。接着 在每一个边界框中预测一个向量 P ,向量 P 的组成如 下式所示: + t P =(t (6) 向量 P 中前 4 个元素为与边界框有关的 4 个坐标, + ⋯ + P ) + P +(P + P + t + t n) w x h 2 0 1 y 它们的关系如下式所示: h 0 0 y y y y h h x x x x w w 和 b 和 p w × etw × eth x) + C y) + C = Sigmoid(t = Sigmoid(t = p = p 和 C b b b b 其中 C 左上角的偏移,p 大小,b 图片左上角的位置,b (7) (8) (9) (10) 表示的是该边界框所属网格相对于图片 表示的是预定义边界框的长宽 表示的是最终预测结果边界框的中心距离 则是预测边界框的长与宽。 由下式表示: 和 b 向量 P 的第 5 个元素 P P = Prob(object) × IoU gt (11) Prob(object) 表示的是物体处于预测框中的概率, IoU gt 表示的是预测框和真实边界框的交并比。当使 用逻辑斯特回归对预测框进行的打分最高时,物体处于 预测框中的概率为 1,否则为 0。向量 P 中剩余的 n 个 值代表的是预测的物体属于 n 类中某一类的分数,经 Sigmoid 函数得出。最后,对产生的预测框进行非极大 值抑制,得到最终的预测结果。整个检测过程如图 3 所示。 object object w h … 特 征 金 字 塔 检测层 检测层 检测层 输入图像 Darknet53 特征 多尺度检测过程 非极大值抑制 提取网络 图 3 YOLOv3 算法检测流程图 3 Attention-YOLO 检测算法 3.1 基于通道注意力机制的改进网络 YOLOv3 算法的实时检测性能得益于其全卷积网 络结构和较小的卷积核尺寸以及回归边界框的算法 设计,为了在不加深网络深度的前提下提升检测精度, Attention-YOLO 算法仅仅对网络中所有的残差连接进 行替换,通过对于传递特征的筛选,使得残差融合时保 留的信息更加有利于训练损失的降低,有利于定位及分 类的准确。网络在这部分增加的计算量集中在全连接 层部分,通过一定比例的降维可以权衡性能和检测速度 的取舍。 通过对于神经网络中传递的特征通道加以不同的 权重,网络可以更加重视权重较大的通道进行参数更 新。直观来说,在前向传播的过程中,重要的特征通道 将会占有更大的比重,在最终所呈现的输出图像中也能 更加明显地展现出检测网络所重点关注的部分,更好地 分辨出待检测物体“是什么”。 全局平均池化是一种特殊的池化,最初由 Lin 等 人[42]所提出,常被用来聚集空间信息。全局平均池化是 对整个特征图进行平均池化,一张特征图最终得出一个 值。通道注意力模块的作用是通过对特征图的各个通 道之间的依赖性进行建模以提高对于重要特征的表征 能力。首先通过在各层特征图上的全局平均池化获得 各个通道的全局信息。然后使用两个全连接层及 ReLU 非线性激活函数和 Sigmoid 激活函数来自适应地对各通 道间的相关程度进行建模,最后再将原特征通道的信息 与自适应学习建模后的权重进行加权处理,实现特征响 应及特征重校准的效果。通过这样的结构,网络可以有 选择性地加强包含重要信息的特征并抑制作用无关或 较弱关联的特征。 ′ ′, 其中 H 分别表示的是特征图的长度、宽度和 通 道 数 。 设 卷 积 操 作 为 F ,前 一 层 的 卷 积 核 集 为 c] ,且 X ∈ ℝH × W × C ,其中 H 、W 、C 同样 X =[x 表示的是特征图的长度、宽度和通道数。则 F 表示 ,⋯,kc] X → Y 的转变过程,用符号 ⊗ 表示。令 K =[k1 ,k2 表示卷积过程中的参数,c 表示的是第 c 个特征通道, 表 示 的 是 第 c 个 特 征 通 道 上 的 卷 积 核 参 数 ,Y = kc [y1,y2,⋯,yc] 表示卷积操作后的输出,则整个卷积过程 由下式表示: 设输入注意力模块的卷积核集合为Y,且Y ∈ ℝH ,⋯,x 、W 、C ,x ′ ′ conv conv × W × C ′ ′ 2 1 C′ kc ⊗ xc yc = kc ⊗ X = ∑ 从公式(12)中可以看出,所有通过卷积核计算得出 的通道信息都被直接叠加在一起,所有的特征图对于结 果判断都占有同样的比重。 (12) c = 1 计算机工程与应用www.ceaj.org
徐诚极,等:Attention-YOLO:引入注意力机制的 YOLO 检测算法 2019,55(6) 17 对于目标检测任务而言,特征提取网络对于不同的 物体所关注的关键特征区域是不一样的,如果在训练初 期就以同样的关注程度对待每一个特征图,会增加网络 收敛所需的时间。由于定位精确和分类准确是彼此互 相促进的,相比分类网络,检测算法更受益于精准分明 的特征。同时,由于引入的参数量并不影响算法的实时 性,并且获得了良好的 mAP 提升,因此选用通道注意力 机制是个较好的选择。 Darknet53 特征提取网络具有大量的残差连接,因 此加入注意力模块时需要进行一定的结构调整。用于 残差连接的通道注意力模块主要由两部分组成,如图 4 所示,分别是挤压(Squeeze)和激活(Excitation)操作,设 挤压操作为 F ,即全局池化过程。保留输入注意力模 块的卷积集 Y 为残差分支的输入之一,设输出结果为 c], (i,j) 表示的是在 长度为 c 的一维数组 zc 大小为 H × W 的特征图上横纵坐标分别为 i 和 j 的点, 由此可以得到: ,⋯,z =[z ,z sq 2 1 (13) zc = H × W ∑ 1 H ∑ i = 1 W yc(i,j) = Fsq(yc) j = 1 残差模块 全局平均池化 全连接层 ReLU 全连接层 Sigmoid 特征加权 + 图 4 用于残差连接的通道注意力机制结构 ex 设激活操作为 F ,r 为降维的比例,当 r 越小时, 可以更好地保留前一层传入的全局信息,但是相对会增 加计算量,为了达到传播速度和检测准确率的平衡,参 考 SENet[26]中的取值 r = 16 。 ∈ ℝc × c r 为两个不同的全连接层, ∈ ℝ c r × c,FC2 令 FC1 设最终激活操作的输出参数为向量 e ,则: × zc)) × ReLU(FC1 e = Sigmoid(FC2 接着通过特征加权操作: outputc 得到重新筛选过后的特征图向量: ,⋯,output c] = yc × ec =[output ,output (14) (15) (16) output 最 终 ,整 个 通 道 注 意 力 机 制 模 块 的 输 出 结 果 为 ch 2 1 output ch + Y 。 由于引入了新的池化层以及全连接层,在计算量上 相比原 YOLOv3 有所增加,这也是降低部分检测速度的 主要原因。 3.2 基于通道和空间注意力机制的改进网络 通道注意力机制在通道维度上对特征进行了筛选 加权,提升了其检测性能。根据 Woo 等人[30]在 CBAM 中 所提出的观点,除了全局平均池化外,全局最大池化同 样也能对特征的筛选起到帮助,因此引入的通道注意力 机制需要同时考虑两种池化操作。根据 Zagoruyko 等 人[43]的研究发现,沿着通道方向使用池化操作可以突出 有效区域中的信息。除此之外,Woo 等人[30]认为,特征 在空间上的关系同样可以用来进行建模,用以补充通道 注意力机制无法较好获取的位置关系信息。在此基础 上,进一步加入空间注意力机制,整个注意力模块同时 对通道以及空间的特征信息进行筛选。 为了达到最佳的筛选效果,并且为了获得最佳的注 意力模块组合顺序。Attention-YOLO算法参考了 Hu[26]等 人和 Woo 等人 [30]所提出的不同的注意力模块排列顺 序 在 分 类 网 络 ResNet50 上 的 测 试 结 果 ,分 类 实 验 在 ImageNet 进行训练测试。 由表 1 可知,不同的注意力机制模块都能提升分类 的准确率,但性能最佳的组合顺序是 CBAM 中通道注 意力模块直接连接空间注意力模块的方法。首先,这是 由于 CBAM 模型在通道注意力模块中加入了全局最大 池化操作,它能在一定程度上弥补全局平均池化所丢失 的信息。其次,生成的二维空间注意力图使用卷积核大 小为 7 的卷积层进行编码,较大的卷积核对于保留重要 的空间区域有良好的帮助。 表 1 注意力模块排列顺序对分类性能的影响 网络结构 ResNet ResNet+channel(SENet) ResNet+channel+spatial(CBAM) ResNet+spatial+channel ResNet+channel & spatial in parallel Top-1 错误率/% Top-5 错误率/% 24.56 23.14 22.66 22.78 22.95 7.50 6.70 6.31 6.42 6.59 首先改进原有的注意力机制,加入全局最大池化操 作,两种池化操作完成后进行合并送入 MLP 进行通道 信息筛选。接着,沿着通道维度进行平均池化和最大池 化,将两者的输出合并后得到特征描述子。最后,使用 卷积操作来进行编码,得到空间注意力图。以上改进不 但能帮助网络进行更准确的分类,又能更精准地定位物 体所在的位置。通道及空间注意力机制的结构如图 5 所示。 类似的,设输入该注意力结构的卷积集为 X ,保留 作为残差分支的输入之一,且 X ∈ ℝH × W × C ,其中 H、W、 C 同样表示的是特征图的长度、宽度和通道数。随后将 计算机工程与应用www.ceaj.org
18 2019,55(6) Computer Engineering and Applications 计算机工程与应用 残差模块 全局平均池化 全局最大池化 全连接层 ReLU 全连接层 Sigmoid 特征加权 残差模块 通道平均池化 通道最大池化 叠加层 卷积层 Sigmoid 特征加权 + 图 5 用于残差连接的通道及空间注意力机制结构 其分别送入两个独立的分支进行两种不同类型的池化 操作。 ,全局最大池化过程为 avg 设全局平均池化过程为 F 。令 Favg 和 Fmax avg max max max 及 Att 的输出分别为 Att ,且 F Attavg ∈ ℝ1 × 1 × C ,Attmax ∈ ℝ1 × 1 × C 。一维的权重序列 Att avg 可 以 很 好 地 筛 选 出 目 标 物 体 的 全 局 背 景 信 息 ,同 时 可以很好地突出目标物体的显著特征。令 X = Att [x1,x2,⋯,xc],其中 x 表示的是第 c 个卷积核的参数。则: H ∑ H × W ∑ 1 W xc(i,j) = Favg(xc) Attavg = Attmax = argmax(∑ H ∑ W xc(i,j)) = Fmax(xc) (17) (18) i = 1 j = 1 c i = 1 ∈ ℝ c j = 1 r × c 和 FC ∈ ℝc × c 4 接 着 ,令 FC3 r 为 两 个 全 连 接 层,训练时两条分支的输入共享全连接层的参数,其中 r 同 样 为 全 连 接 层 的 降 维 比 例 ,参 考 Woo 等 人 [29] 在 CBAM 模块中的取值,取 r = 16 。设通道注意力模块部 分的输出为: output ch = output avg + output max 其中两条分支的输出分别是: (19) output output avg max = Sigmoid(FC = Sigmoid(FC 4 4 × ReLU(FC3 × ReLU(FC3 × Atten × Atten )) (20) ))(21) avg max 接着通过矩阵乘法完成特征加权操作: W =(xc ) = xc × output ,output ch ch (22) 1 2 avg ,w c] 。 ,⋯,w 得到筛选过的通道特征 W =[w 第一部分的通道特征筛选完成后,需要将 W 输入 至新的空间注意力机制模块中。首先,输入的特征向量 将分别经过 Att ,再沿着通道维度进行特 以及 Att ∈ ℝ1 × 1 × 2c 。为了能得到二维的特征权 征叠加,得到 C 重信息,还需要进行卷积操作来降维,令 F3 × 3 表示的是 输入通道数为 2,输出通道数为 1,卷积核大小为 3×3 的 = 卷积操作,则最后特征加权后的输出向量为 output F3 × 3(Ccon) × W 。 chsp max con chsp 最终,整个通道和空间注意力机制模块的输出为 + X ,且输出的特征图维度与输入的维度一致, output 不需要对于网络结构进行较大的改动,并且根据 r = 16 的降维比例对全连接层参数进行压缩,能权衡性能与传 播速度的平衡。由于引入了更复杂的结构,在速度上会 略微慢于普通的通道注意力机制模块,多引入的计算时 间主要集中于卷积层以及通道池化部分,但整个注意力 结构的计算量最大的部分集中在通道注意力部分。 3.3 加入二阶项融合改进的残差连接 自 ResNet 及其变体网络[19,26]提出以来,许多性能优 异的分类网络都相继借鉴了残差连接结构。由于非线 性激活函数的作用,该结构能够很好地将浅层的特征逐 渐送往深层的网络中,在网络层数较深的情况下,不仅 能最大程度地保留浅层的全局特征,同时对于反向传播 训练时的梯度稳定性也有帮助。 普通的残差连接如图 6 所示。 残差模块 卷积操作 + 图 6 残差连接示意图 ′ 令输入的特征向量为 X ,经过卷积操作后的输出 向量为 X (图中的加号代表的是特征向量矩阵与特征 ′ 向量矩阵之间的逐元素相加),最后融合输出的结果为 f = X + X 。可以看出,普通的残差连接方式为线性连 接,线性结构会限制网络对于特征空间复杂分布的学习 能力,而非线性结构无疑有助于网络的泛化性能。 YOLOv3 中所采用的特征提取网络为 Darknet53, 是一个较深的全卷积神经网络,其采用了大量的残差连接 来帮助浅层特征的传输及梯度的流动。由于 Attention- YOLO 算法采用了注意力模块来完成对特征的筛选,与 原有的单一残差连接有较大的区别。为了缩短新结构 和原有结构在训练过程中分布不一致的过渡时间,同 计算机工程与应用www.ceaj.org
徐诚极,等:Attention-YOLO:引入注意力机制的 YOLO 检测算法 2019,55(6) 19 时 为 了 进 一 步 保 留 之 前 网 络 层 中 有 效 特 征 的 传 递 。 Attention-YOLO算法参考了Wang等人[44]所提出的Second- Order Response Transform(SORT)方法,该种方法对常 见的分支结构及残差连接结构都适用,同时不需要对整 个结构做很大改动,仅增加 5%的前向传播时间,但能有 效提升使用了残差结构或分支结构的网络的分类性 能。考虑到注意力模块产生的筛选后的特征信息更加 ″ 具有意义,在网络的残差连接中进一步加入一个二阶项 F 及一个小偏置量,增加整个结构的非线性程度,而非 线性程度往往与网络的性能紧密相关。改进后的残差 连接示意图如图 7 所示。 残差模块 卷积操作 F + ″ ′ + F ,其中 F 图 7 加入二阶项的残差连接示意图 最终融合输出的结果为 f = X + X ″ = F(X⊙X ′ + ξ) ,⊙ 表示的是矩阵间的逐 元 素相 乘,且 F( )⋅ 必须是可微函数,这样才能够参与梯度求导并进行 反向传播更新参数。参考 SORT 方法中的实验过程,采 用平方根形式作为 F( )⋅ 函数,并且取偏置量 ξ = 0.000 1 , 以维持反向传播时的梯度稳定性,最终改进后的残差连 接输出为: f = X + X 由于 X 和 X ′ + X⊙X + ξ (23) 特征向量矩阵中的元素可能会出现 ′ ) + ξ 负数,因此,需要在进行乘积前进行非负处理。即: + ReLU(X)⊙ReLU(X f = X + X (24) 如图 8 所示,仅仅考虑残差连接及激活函数映射在 二维子空间的情况,图(a)、(b)是不使用非线性激活函 数的残差连接,图(c)、(d)是使用了 ReLU 非线性激活函 数的残差连接,图(e)、(f)是使用了 Leaky-ReLU (a = 0.1) 非线性激活函数的残差连接。其中(a)、(c)、(e)是不增 加二阶项的残差连接,(b)、(d)、(f)则是增加了二阶项 ′ ′ ′ 数 个 例 实 50 000 40 000 30 000 20 000 10 000 0 ) 值 活 激 f( 4 2 0 -2 -4 -2 -1 0 0 1 2 -2 (a)线性激活无二阶项 x ) 值 活 激 f( 2 8 6 4 2 0 -2 y -1 0 x 1 2 -2 2 0 y (b)线性激活加二阶项 4 3 2 1 ) 值 活 激 f( 0 -2 -1 0 1 x 2 -2 (c)ReLU 激活 2 0 y 4 3 2 1 ) 值 活 激 f( 0-2 -1 2 1 2 -2 0 y 0 x 6 4 2 ) 值 活 激 f( 0 -2 -1 0 x 1 2 -2 0 y (d)ReLU 激活加二阶项 6 4 2 ) 值 活 激 f( 0 -2 -1 1 2 -2 0 y 0 x 2 2 (e)L-ReLU 激活 激活方式 线性激活 ReLU Leaky-ReLU (f)L-ReLU 激活加二阶项 X + X′ X + X′+ F″ 图(a) 图(c) 图(e) 图(b) 图(d) 图(f) 图 8 不同残差连接情况下的非线性程度对比图 后的残差连接。曲面的弯曲程度代表了该过程的非线 性程度,可以看出,Attention-YOLO 算法使用了 Leaky- ReLU 激活函数,并且使用了加入二阶项后的残差连接, 在这几种结构中具有最好的非线性特性,当训练时,对 于网络的泛化性能有很好的帮助。 3.4 训练和测试细节 3.4.1 实验准备与超参数设置 实 验 所 用 数 据 集 为 COCO(Common Objects in Context)2014 和 PASCAL VOC,并使用了常用的 2007 和 2012 两个版本进行训练和测试。由图 9 及图 10 可知, COCO 14 VOC 07+12 s u b n i a r t k c u r t t a o b t h g i l r a c e l c y c i b e k i b r o t o m e n a l p o r e a n g i s r e t e m h c n e b t n a r d y h p o t s c i f f a r t e r i f g n i k r a p d r i b t a c g o d w o c e s r o h p e e h s r a e b a r b e z e f f a r i g t n a h p e l e k c a p k c a b a l l e r b m u g a b d n a h e i t s i k s e e b s i r f e s a c t i u s l l a b e t i k t a b d r a o b w o n s s t r o p s e v o l g d r a o b f r u s d r a o b e t a k s l l a b e s a b l l a b e s a b s i n n e t e n i w 类别 p u c k r o f t e k c a r e l t t o b s s a l g l e f i n k n o o p s w o b e l p p a a n a n a b e g n a r o i l o c c o r b h c i w d n a s t o r r a c g o d a z z i p t u n o d e k a c r i a h c a f o s t o h d e b t n a l p d e t t o p t e l i o t r o t i n o m v t e l b a t g n i n i d p o t p a l e s u o m e t o m e r e n o h p d r a o b y e k e v a w o r c i m l l e c k n i s n e v o r e t s a o t k o o b k c o l c e s a v r o t a r e g i r t e r s r o s s i c s r a e b r e i r d r i a h y d d e t h s u r b h t o o t 图 9 COCO 和 VOC 数据集中每个类别的目标数统计 计算机工程与应用www.ceaj.org
20 2019,55(6) Computer Engineering and Applications 计算机工程与应用 COCO 数据集中单幅图片所含的平均目标数是 PASCAL VOC 的 3 倍左右,且小目标居多。在两个数据集共有 的 20 个类别中,COCO 数据集单个类别的样本个数是 PASCAL VOC的数倍,不论是规模还是检测难度,COCO 数据集的训练及检测难度都大于 PASCAL VOC 数据 集。除此之外,以上两种数据集在评估方法上也有较大 差异。 trainvalno5k 5k test 4.1% 07+12 trainval 07 test 23.0% COCO,而在数据量较小时进行随机初始化训练是很难 达到收敛的[46]。因此,使用部分已有的预训练权重来完 成初始化,令其他新加入的部分在训练过程中自适应微 调参数。该组实验训练迭代次数为 120 轮,其余超参数 设置与上一组实验一致。 3.4.2 数据增强 在预处理阶段,对输入模型的图片进行平移、旋转, 尺度变化、左右反转以及 HSV 饱和度及强度的变化,具 体的设置如表 2 所示。 95.9% 77.0% (a)PASCAL VOC (b)COCO 数据集 类别数 训练集 测试集 样本框总数 总样本框/总图片数 COCO 2014 PASCAL VOC 07+12 80 117 264 5 000 902 435 7.4 20 16 551 4 952 52 090 2.4 图 10 数据集的训练和测试图片量对比 COCO 数据集需要在 IoU(交并比)为[0.5∶0.95]这 10 个 取 值 上 分 别 计 算 mAP,最 后 取 平 均 得 到 最 终 结 果。而 VOC 2007 测试集,只需要在 IoU=0.5 时计算相 应的精度和召回率,最后得到相应的 mAP。毫无疑问, COCO 的多 IoU 评估方法更加能反映检测算法的综合 性能,对检测算法的要求更高。 在此基础上,本文分别设计了用于纵向和横向比较 的两组实验。纵向性能比较采用 COCO 2014 数据集, 共 80 类。考虑到 Attention-YOLO 算法增加了新的全连 接层和卷积层,通常要将新的特征提取网络在 ImageNet 数据集上重新进行预训练,整个过程需要耗费大量时 间。但如果直接加载已有的预训练权重进行迁移学习, 没有预训练权重且需要随机初始化的那部分层会与其 他层的分布有一定的差异。因此,该组实验采取了 He 等 人 [45]所提出的 MSRA Initialization 初始化方法,该方法 更加适用于使用了非线性激活函数的网络,由此也可以 加速模型收敛及稳定梯度。由于没有借助预训练权重 进行初始化,需要更加久的训练时间以及更加精细的超 参数设置才能达到原有的效果[46]。该组实验训练迭代 次数为 160 轮,由于没有使用多尺度变化训练的技巧, 网络的输入大小固定为 416×416,参数更新方法为 Adam, 初始学习率为 0.000 1,权重衰减设置为 0.000 5。 横 向 性 能 比 较 采 用 PASCAL VOC 数 据 集 ,共 20 类,并使用了常用的 2007 和 2012 两个版本进行训练和 测 试 。 由 于 PASCAL VOC 的 训 练 集 数 量 远 远 小 于 表 2 训练时采用的数据增强 增强类型 Translation Rotation Shear Scale 参数 +/-20% +/-5 degrees +/-3 degrees +/-20% Reflection 50% probability HSV Saturation HSV Intensity +/-50% +/-50% 3.4.3 网络训练 由于 Attention-YOLO 算法中加入了通道及空间注 意力机制和残差二阶项,算法在判断某个网格;是否含 有待检测物体时更加准确,从图 11 可以看出,特征提取 网络在训练 COCO 数据集的过程中能够更好地定位可 能存在物体的目标像素格。得益于坐标点的定位更加 准确,边界框的长度及宽度损失也相应减少,定位的准 确程度与分类的准确程度之间存在相辅相成的关系,因 此分类损失与置信度损失随着定位损失的减小而相应 减小。仅加入通道注意力机制对于原始算法的各个损 失变化有一定的训练加速效果,而加入两种注意力机制 并加入二阶项进行残差融合的检测模型具有最佳的收 敛速度,也相应具有更好的检测性能。 4 实验结果分析 Attention-YOLO 算法共有两种模型,为了简化名 称,将第一种加入通道注意力机制的 YOLOv3 算法称为 Attention-YOLO-A(以下简称模型 A),将第二种同时加 入两种注意力机制的模型称为 Atten-tion-YOLO-B(以 下简称模型 B)。三种模型的具体指标汇总如表 3 所示。 4.1 纵向对比实验 在纵向对比实验训练的过程中,当模型的各项损失 不再显著下降时,停止训练并进行测试寻找具有最佳性 能的轮数。COCO 2014 测试集共有 5 000 张图片,为了 更好地衡量 Attention-YOLO 模型在各个尺寸各个比例 边界框下的定位及分类精准度,采用 mAP@[0.5∶0.95] 来综合评估模型的检测性能,表 4 的测试结果表明:即 使模型 A 和模型 B 没有采用预训练权重,但是最终仍能 计算机工程与应用www.ceaj.org
分享到:
收藏