基于金字塔模型和注意力机制的YOLO V3 目标检测算法

2020-03-24 03:49高建瓴冯娇娇王子牛韩毓璐
智能计算机与应用 2020年11期
关键词:残差金字塔卷积

高建瓴,冯娇娇,王子牛,韩毓璐,孙 健

(贵州大学 大数据与信息工程学院,贵阳 550025)

0 引言

目标检测[1-3]是计算机视觉领域中一个具有挑战性的课题[4],主要目的是从视频或者一些数据集中检测并定位特定的目标。由于目标所在的环境影响,至今还没有一种比较通用且成熟的检测方法。传统的目标检测算法已经难以满足现有数据的处理效率、速度和精度等各方面的要求。

随着网络的发展,陆陆续续出现很多基于深度学习[5]方法思想的目标检测模型。例如,一种是基于区域提取的R-CNN 系列[6-8]为代表的目标检测,其次就是基于回归的目标检测算法,包括YOLO[9](You Only Look Once)和SSD[10](Single Shot Multi-BoxDetector)。在基于回归的方法中,YOLO 第一个采用了回归思想,实现了one-stage 检测的算法[11]。如今该算法已经从YOLO 经YOLO V2 发展到现在YOLO V3[12],不论在检测速度方面还是在精度上,已远远超过第一代的YOLO。相比作为后辈的SSD法,性能也得以超越。但是YOLO 算法依旧存在一些问题,比如定位精度、召回率等较低,且对尺寸较小的物体检测效果欠佳。

YOLO V3 利用特征金字塔[13](Feature Pyramid Network,FPN)的思想,将相邻尺度的特征图通过串联(concat)操作进行特征融合[14],通过特征融合可以有效提高目标的检测精度。

本文基于YOLO 存在的问题,以YOLO V3 模型为主要架构,提出了一种基于金字塔模型和注意力机制的YOLO V3 目标检测算法,建立了多尺度的目标检测算法。通过反卷积和金字塔模型,来融合不同尺度的浅层和高层的信息,从而提升对目标的检测精度。利用注意力机制,使得具有注意力效果的梯度能流入更深的网络中。实验结果表明,改进后的YOLO V3 比原始的YOLO V3 在COCO 2014 数据集上具有更高的目标检测精度。

1 相关工作

1.1 特征金字塔

通过构建特征金字塔网络,解决了众多尺度检测问题,代替了Faster R-CNN 之类的检测模型的特征提取器,生成多层特征映射,信息的质量比普通的用于特征检测的特征金字塔更好。如图1 所示。

图1 预测网络Fig.1 Predicting network

图1 中(a)、(b)、(c)是现在常有的金字塔结构,(d)是本文采用的金字塔结构。图1(a)是检测系统选择使用于更快速检测的单尺度特征,它自底向上卷积,使用最后一层特征图进行预测。如SPPNet、Faster R-CNN 就是采用这种方式,即仅采用网络最后一层的特征。该方式虽然检测速度快,但会造成检测小目标时的精度下降。图1(b)的改进是将图片分成不同尺寸,然后进行不同尺度的预测,有效的改善了图1(a)中的单一预测。图1(c)是自底向上然后自顶向下的线路,横向连接,同时融合了相邻特征之间的信息。通过高层特征进行上采样和浅层特征进行自顶向下的连接,而且每一层都会进行预测。其问题是它忽略了高层和浅层的联系。所以,针对于此提出了图1(d)的改进金字塔结构模型。该模型采用跳跃连接的方式,同时采用4 倍和2 倍的反卷积进行上采样,从而得到相同的特征图大小,有效的解决了图1(c)的问题。改进的金字塔详细结构如图2 所示。

图2 改进的金字塔的细节结构Fig.2 The detailed structure of the improved pyramid

从图2 中可以清晰看到3 个预测层分别来自何处。YOLO V3 的融合通过catenate 进行张量拼接,在进行一个Convolutional Set 操作时,其结构如图3所示。在大小为13*13 和52*52 的特征图之间,采用步长为4 的反卷积进行上采样,使其不同特征层的大小一致,最后输出检测结果。

1.2 注意力机制

注意力机制[15](Attention mechanism)可以按不同的形式分类。按照注意力产生的方式可分为两种:一种是自顶向下的注意力或者称聚焦式注意力,还有一种是自底向上的注意力,称为基于显著性的注意力。若按照注意力作用的特征形式,可分为基于项的注意力和基于位置的注意力。在计算机视觉领域中,基于位置的注意力是与任务相关、作用方法直接的注意力机制,其应用比较广泛。

1.2.1 空间注意力机制[16](Spatial Transformer Network,STN)

STN 网络模型如图3 所示。其中包含3 个部分:定位网络(Localisation network)、网格生成器(Grid generator)、采样器(Sampler)。

图3 STN 模型结构Fig.3 STN model structure

定位网络用来生成仿射变换的系数,其中输入为U,输出为θ,θ是一个可变换参数,其维度大小根据变换类型而定。

网格生成器是根据上面生成的参数ө,对输入进行变换。从而得到原始图像或者是经过平移、旋转等变换的特征图结果。

采样器根据网格生成器得到的结果,生成一个新的输出图片或者特征图V,用于下一步操作。

1.2.2 通道注意力(Channel Attention,CA)

通道注意力可以理解为让神经网络看什么,典型的代表是SENet[17]。卷积网络的每一层都有很多卷积核,每个卷积核对应一个特征通道。相对于空间注意力机制,通道注意力在于分配各个卷积通道之间的资源。网络结构如图4 所示。

图4 SE 块Fig.4 SE block

1.3 YOLO V3 网络

1.3.1 网络结构

相对YOLO V1 和YOLO V2 的特征提取网络,YOLO V3 的网络结构是Darknet-53。对比同期其它的特征提取网络拥有较好的表现。YOLO V3 网络结构如图5 所示。

从图5 中可以看出,YOLO V3 的Darknet-53 网络不同于YOLO V2 的Darknet-19 网络。Darknet-53 网络中连续使用1x1 和3x3 的卷积核,一共有53个卷积层和5 个残差块。其中,YOLO V3 通过卷积层,对输入图片进行了5 次下采样,最后进行了多尺度的预测,处理过程借鉴了残差神经网络的思想[18]。Darknet53 结构单元如图6 所示。

图5 YOLO V3 网络结构Fig.5 YOLO V3 network structure

图6 Darknet53 结构单元Fig.6 Structural unit of Darknet53

图6(a)中,每个残差块由多个残差单元组成,通过输入两个DBL 单元进行残差操作,构建了残差单元。其中,DBL 单元包含卷积、批归一化和leaky relu 激活函数,如图6(b)所示。通过引入残差单元使得网络深度可以更深,避免梯度消失。

1.3.2 k-means 维度聚类算法

通过k-means 聚类算法得到更好的边界框,对网络来说,则能学习到准确的预测方法。所以YOLO V3 继续延用了YOLO V2 的思想,采用kmeans 的方式对训练集的边界框做聚类,找到合适的边界框。YOLO V3 在VOC 和COCO 数据集上聚类,边界框的数量为9。因是对边框做相应的聚类,所以聚类方法中的距离公式定义为:

1.3.3 检测过程

YOLO V3 是基于回归的目标检测,不需要预先生产感兴趣区域。如图7 所示,首先输入尺寸为416x416 的图片,经过Darknet53 网络进行特征提取,可以获得3 个不同尺寸的网格区域,其分别是13×13、26×26、52×52。经过特征金字塔,在网络后两个特征图上采样,与网络前期相应尺寸的特征图聚合,最后再预测输出结果。

图7 检测流程图Fig.7 Detection flow chart

2 本文算法

2.1 加入通道注意力机制

通过对神经网络中传递的特征通道加以不同的权重,网络可以更加重视权重较大的通道进行参数更新。由于全局平均池化[19]不同于平均池化和最大池化,它是一种特殊的池化,通常用来聚集空间信息。它是对特征图全局平均后输出一个值,从而使其具有全局的感受野,使得网络浅层也能利用全局信息。通道注意力机制的用途是通过对特征图的各个通道之间的依赖性进行建模,从而提高对于重要特征的表征能力。

在YOLOv3 的网络结构中含有很多的残差连接,所以在残差块中加入通道注意力机制,它具有挤压(Squeeze)和激活(Excitation)两部分操作。设输入注意力模块的卷积核集合为Y=[y1,y2…,yc],卷积操作为Fconv,前一层的卷积核集为X=[x1,x2…,xc],H、W、C分别为特征图的长度、宽度、通道数。挤压操作为Fsq,也就是全局池化过程。设输出结果为长度为c 的一维数组,具体操作公式如式(2):

然而激励过程就是对各通道间的相关度进行建模,公式如下:

式中,F C1和F C2是全连接层,s 是最终激活操作的输出参数为向量。通过上述2 个公式,在经过特征加权,可以得出最终的输出结果为:Y+yc×sc。

相对之前的YOLO V3,由于引入了注意力机制,增加了两个全连接层和一个全局平均池化以及特征加权,这大大的添加了算法的计算量,在速度上会比原YOLO V3 低。其算法流程如图8 所示。

图8 改进算法流程图Fig.8 Improved algorithm flow chart

2.2 特征金字塔融合的改进

在YOLO V3 中,引入了FPN 网络,将浅层的信息和高层的信息通过使用上采样融合,从而得到3个不同尺度的特征图,再进行检测输出结果。由于原YOLO V3 中忽略了浅层信息和高层信息二者之间的联系,所以本文对网络进行了相应的改进,如图9 所示。

图9 改进的YOLO V3 检测模型图Fig.9 Improved YOLO V3 detection model diagram

在原YOLO V3 的3 个尺度检测上,把浅层的信息和高层的信息进行反卷积。改进的具体细节是:输入图片经过Darknet-53 得到特征图,在输出尺度为13x13 时执行上采样操作,再和26x26 融合,得到新的特征信息,再把融合后的信息与52x52 的输出融合。之后,对13x13 做反卷积与52x52 进行融合,因此实现了浅层和高层二者信息的联系。3 个尺度在经过上采样和反卷积以及特征融合,得到了新的3 组不同尺度的YOLO 特征层,并使用这3 组特征层进行位置和类别的预测。

3 实验结果分析

3.1 实验环境和数据集

实验环境配置见表1。

表1 实验环境配置Tab.1 Experimental environment configuration

本实验的数据采用COCO_2014 数据集,使用该数据进行预训练得到该数据集的预测模型。数据集大约包含16 万张图片,图片包括了动物图片、自然风景图片、生活街景图片和人物图片等。图片中背景都较复杂,目标数量较多,大量图片样本中具有多目标物体。其中用于训练为117 263 张图片,测试集共有5 000 张图片。

3.2 实验结果分析与对比

在COCO 2014 上对已经训练好的网络进行测试,分别计算了YOLO-tiny、YOLO V3 和改进的YOLO V3 模型的平均准确率均值(mAP),作为检测效果评价指标。测试结果见表2。YOLO-tiny 和YOLO V3 模型的mAP 分别是16.3%和31.1%,改进后的YOLO V3 模型的平均精准度为32.4%,提升了1.3%。

表2 COCO 2014 测试集中平均准确率(mAP%)测试结果Tab.2 COCO 2014 test set average accuracy rate(mAP%)test results

本文对特征金字塔融合的改进以及添加的注意力机制,使其对数据集中的小目标有了一定的提升。在80 类中选择了7 类进行做对比,结果见表3。

表3 COCO 2014 测试集中不同目标的平均准确率(mAP%)Tab.3 The average accuracy of different targets in the COCO 2014 test focuses(mAP%)

从表3 可知,改进后的模型对目标的精准度有了相应的提高,对于cat、bird、cow、bed 等目标的精准度均比原来的有所提高。其中每个小目标分别提升了5.1%、0.7%、1.4%、2.7%、3.2%、1.1%、3.3%。相对于YOLO-tiny 来说,提升的较大,因为YOLOtiny 简化了网络架构。

4 结束语

本文提出一种基于金字塔模型和注意力机制的YOLO V3 算法,保留了多尺度检测的特点,同时还把浅层特征图的细节信息和高层的语义特征信息进行融合,从而提高检测效果。外加在残差连接中加入通道注意力机制,整个网络能更好地筛选出有利于后续检测的特征向量。实验结果表明,改进后的YOLO V3 在小目标和精准度上都有提高,但在速率上还不够理想。究其原因,是在特征融合阶段加入了反卷积以及对残差网络的改进所致。下一步的工作是继续研究如何在保持目标精准度的情况下,减轻网络层,降低计算量,提升检测速度。

猜你喜欢
残差金字塔卷积
“金字塔”
基于全卷积神经网络的猪背膘厚快速准确测定
基于残差-注意力和LSTM的心律失常心拍分类方法研究
融合上下文的残差门卷积实体抽取
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
基于残差学习的自适应无人机目标跟踪算法
Great Vacation Places
基于深度卷积的残差三生网络研究与应用