技术领域
本发明涉及一种基于注意力机制的改进YOLOv3目标检测方法,属于图像处理中的目标检测技术领域。
背景技术
目标检测作为图像理解和计算机视觉的基石,它是解决分割、场景的理解、目标的追踪、图像描述、事件检测和活动识别等更具有复杂性和更高层次的视觉任务的基础。目标检测在人工智能和信息技术等很多领域都有广泛的应用,如安保、人机交互、自动驾驶、机器人视觉、消费电子产品、基于内容的图像检索、智能视频监控和增强现实。
目前,基于深度学习的一系列目标检测算法大致可以分为两大流派:
1.两步走(two-stage)算法:先产生候选区域然后再进行CNN分类(R-CNN系列),
2.一步走(one-stage)算法:直接对输入图像应用算法并输出类别和相应的定位(YOLO系列)。
之前的R-CNN系列虽然准确率比较高,但是即使是发展到Faster R-CNN,检测速度也仅为7FPS(原文为5FPS),而YOLO系列则在兼顾准确率的基础上大大提升了检测速度,使得检测的工作能够用到实时的场景。YOLO的检测思想不同于R-CNN系列的思想,它将目标检测作为回归任务来解决。YOLO神经网络在一次预测中,直接从完整图像预测出目标位置和概率,是一种端到端的网络结构。
YOLOv3是当前应用较多的一种目标检测方法,对YOLO做出了很多改进,使得网络在小目标检测和检测精度上都得到了较好的改善,并且检测速度并没有受到太大影响,依然符合检测实时性要求。但YOLOv3仍存在以下问题:目标定位的精度不高;训练收敛速度慢;小目标检测错误率较高。
发明内容
本发明的目的是提供一种基于注意力机制的改进YOLOv3目标检测方法,一定程度上可以有效检测小目标,加快训练的收敛速度,并在检测速度不受太大影响的前提下提高检测精度。
为达到此目的,本发明采用以下技术方案:
本发明所述的一种基于注意力机制的改进YOLOv3目标检测方法,包括以下步骤:
S1:针对一张原始图像,对其进行预处理,并归一化为416×416×3,得到训练样本;
S2:修改Darknet-53的网络结构,在每个残差层Basic Block模块中均引入自适应卷积核大小的注意力机制;
S3:在Darknet-53顶部引入空间金字塔池化模块SPP,以增加特征提取网络的感受野;
S4:用改进后的Darknet-53网络提取图像特征,并从网络的不同深度引出三个尺度的特征图(feature map)至特征融合支路;
S5:在三条特征融合支路中引入通道注意力机制,为通道分配权重,充分提取通道的有效特征信息;
S6:最后在三条支路上分别预测,得到多尺度目标检测结果。
作为本发明的进一步技术方案,所述步骤S1中,预处理方式包括随机旋转、水平翻转和标准化处理。
作为本发明的进一步技术方案,所述步骤S2中,在残差层Basic Block模块中引入自适应卷积核大小的注意力机制的方法为:
S21:在第一个卷积核大小为1×1的卷积层后插入自适应卷积核大小的卷积模块Selective Kernel Networks;
S22:将原先第二个卷积层的卷积核大小由3×3修改为1×1。原3×3卷积由SKNet替代,在SKNet后面插入一个1×1卷积,使修改后的残差结构类似于一个瓶颈块。
作为本发明的进一步技术方案,所述步骤S3中,在Darknet-53顶部引入空间金字塔池化模块SPP的方法为:
S31:从Darknet-53最后一个基本卷积模块的输出引出4条支路;
S32:第一、第二、第三条支路分别通过最大池化层a
S33:将4条支路的输出在通道维度上进行拼接,得到一个新的特征图(featuremap);
S34:将新得到的特征图最后通过一个卷积层,得到原特征的通道数。保持SPP模块的输入和输出特征图维度相等。
SPP模块的设计初衷就是即插即用,因此保持维度不变是很重要的,这样可以保证SPP能在网络任何地方插入而不出错。
作为本发明的进一步技术方案,所述步骤S5中,在特征融合支路中引入注意力机制的方法为:
选择8倍降采样和16倍降采样两条支路,在上采样层Upsample和这两条支路输出的特征图分别按通道维度拼接融合后,插入一个通道注意力机制模块Squeeze-and-Excitation Networks。8倍降采样和16倍降采样这两条支路对应不同大小的特征图,融合不同大小的特征图能充分利用多尺度信息,提升不同尺度下目标物体的检测精度。多尺度特征是按通道维度直接拼接得到的,有些通道的信息可能存在冗余,为通道分配权重,可以充分提取通道的有效信息,减少冗余信息
相对于现有技术,本发明的有益效果如下:本发明公开了一种基于注意力机制的改进YOLOv3目标检测方法,在特征提取网络中引入自适应卷积核大小的注意力机制和空间金字塔池化模块SPP,能根据检测目标的大小自适应地调节感受野大小,更好的聚焦于感兴趣区域,提升了目标的定位精度,降低了小目标检测错误率;在特征融合支路中引入通道注意力机制,聚焦于输入图像中有意义的通道特征信息,降低冗余信息的权重;此外,本发明还在训练过中加快了模型的收敛速度,在检测速度不受太大影响的前提下提升了检测精度。实验结果表明,在模型参数量略微增加的前提下,在VOC数据集和COCO数据集上均有明显的精度提升。
附图说明
图1为本发明的基于注意力机制的改进YOLOv3目标检测方法流程图;
图2为本发明的残差模块结构对比图,其中,(A)是原残差模块,(B)是引入注意力机制后的残差模块;
图3为本发明的使用的Selective Kernel Networks网络结构图;
图4为本发明的引入的空间金字塔池化模块SPP;
图5为本发明的引入注意力机制后的特征融合支路网络结构图;
图6为本发明使用的通道注意力模块。
具体实施方式
下面结合具体实施方式和附图对本发明的技术方案作进一步的介绍。
实施例1:本具体实施方式公开了一种基于注意力机制的改进YOLOv3目标检测方法,如图1~图6所示,包括以下步骤:
S1:针对一张原始图像,对其进行预处理,并归一化为416×416×3,得到训练样本,预处理的方式包括随机旋转(-30°~30°)、水平翻转(50%的概率)以及标准化处理;
S2:特征提取网络Darknet-53由大量残差模块Basic Block构成,并采用卷积来完成下采样,修改Darknet-53的网络结构,在每个残差层Basic Block模块中均引入自适应卷积核大小的注意力机制,使得网络能根据检测目标的大小自动调整感受野大小,更好地聚焦在感兴趣区域;
S3:在Darknet-53顶部引入空间金字塔池化模块SPP,以增加特征提取网络的感受野;
S4:用改进后的Darknet-53网络提取图像特征,并从网络的32倍、16倍以及8倍降采样这三个不同尺度的特征图引出特征至特征融合支路,分别用于检测不同大小的目标,使得检测方法能对不同尺度大小的目标均有较好的检测效果;
S5:在三条特征融合支路中引入通道注意力机制;
S6:最后在三条支路上分别做预测,预测出目标的位置、所属类别的置信度,得到多尺度目标检测结果。
步骤S2中,在残差层Basic Block模块中引入注意力机制的方法为:
S21:在第一个卷积核大小为1×1的卷积层后插入自适应卷积核大小的卷积模块Selective Kernel Networks,引入注意力机制;其中,SKNet的结构图如图3所示,输入首先经过两个不同卷积核大小的卷积层,将两个输出逐点相加后进行全局平均池化,接着通过一个全连接层,然后将得到的通道信息通过Softmax分成A和B两个子向量,这两个子向量分别跟第一步的卷积输出相乘,最后将两个特征向量逐点相加,得到最终的输出结果;
S22:将原先第二个卷积层的卷积核大小由3×3修改为1×1,使得修改后的残差层类似于BottleNeck模块。
如图2所示,图2(A)为原始残差模块Basic Block,图2(B)为引入SKNet后的残差模块,类似于BottleNeck。
步骤S3中,在Darknet-53顶部引入空间金字塔池化模块SPP的方法为:
S31:从Darknet-53最后一个基本卷积模块的输出引出4条支路;
S32:第一、第二、第三条支路分别通过最大池化层a
S33:将4条支路的输出在通道维度上进行拼接,得到一个新的特征图(featuremap);
S34:将新得到的特征图最后通过一个卷积层,得到原特征的通道数;
SPP网络结构如图4所示。
步骤S5中,在特征融合支路中引入注意力机制后的网络结构图如图4所示,即在上采样层Upsample和相应尺度的特征图按通道维度concat拼接融合后,插入一个通道注意力机制模块Squeeze-and-Excitation Networks,调整通道的权重分配,使得特征融合后的通道信息更有效。
图6所示为SENet的结构图,SENet不改变输入特征向量的维度;特征向量首先经由全局平均池化,维度变成1×1×C,获得通道信息;接着经过一个全连接层和ReLU激活函数;然后经过一个全连接层和Sigmoid函数获得通道的权重;最后将通道分配的权重与输入特征向量相乘,得到经过通道注意力后的输出特征。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
机译: 基于注意力机制和相关设备的路图象目标检测方法
机译: 自适应注意力机制的一般目标检测方法
机译: 基于带YOLOv3检测的多伯努利滤波器的可视多目标跟踪