技术领域
[0001] 本申请涉及深度学习技术领域,特别涉及一种卷积神经网络的注意力模块、注意力机制及卷积神经网络。
相关背景技术
[0002] 当前深度学习(深度神经网络)在感知算法工业化的过程中,逐渐向着“又好又快”这一目标不断演进,在某款车载芯片上能够实现端到端的神经网络算法部署意义重大,越来越多的方法聚焦于神经网络结构的更改,使得整个主干网络,在宽度和深度上不断缩减,相继带来的却是精度上的损失,对于一些精度要求较高的任务,比如自动驾驶场景里的车辆检测,对于精度的下降几乎无法容忍,出于安全考虑,必须对肉眼可见的所有车辆进行近似100%的检出率。
[0003] 目前卷积神经网络作为深度神经网络的一种,在自动驾驶场景中基于视觉感知的目标检测和识别等领域得到了广泛的应用。且研究表明,将注意力机制引入到卷积神经网络中,能够获得更好的效果。
[0004] 目前,将注意力机制引入到卷积神经网络中,这些方案大致分为以下两类:
[0005] 注意力机制应用于特征图空间维度:人类视觉会关注于图像中的重点区域,忽略图像中不重要的部分。与处理整张图像信息相比,在训练过程中精细处理图像中某一区域的图像信息,计算量及训练检测时间都会显著减少,在图像处理方面可获得特定区域的更多信息,网络模型泛化能力增强。
[0006] 注意力机制应用于特征图通道维度:卷积神经网络中最重要的部分就是卷积操作,卷积核在空间维度和通道维度提取图像特征,将注意力机制应用于通道维度以寻找通道之间的内在联系,可以显著提高卷积神经网络的特征提取性能。
[0007] 在一种将注意力机制引入到卷积神经网络中的现有技术中,例如,申请号为CN201910769868.0的专利公开了一种基于SE模块的SSD目标检测方法,属于上述第二类,其在获取需要进行目标识别的图片或者视频后,将卷积神经网络ResNet18的第一个卷积层替换为3×3卷积层,并在ResNet18的第一个和第二个残差块中添加SE模块,形成SE‑ResNet18网络结构,将SSD目标检测算法中的主干网络替换为所述SE‑ResNet18网络结构,得到检测模型,对所述检测模型进行针对小目标检测的训练,获得训练好的深度神经网络模型,根据训练好的深度神经网络模型对所述图片或者视频的小目标进行检测,得到检测结果。该专利中,通过简单地squeeze每个2维特征图,进而有效地构建通道之间的相互依赖关系,然而,它只考虑通过建模通道关系来重新衡量每个通道的重要性,而忽略了位置信息,但是位置信息对于生成空间选择性attention maps是很重要的。所以,其对于位置的回归精度仍有缺陷。
[0008] 又例如,申请号为202010595050.4的专利公开了一种基于卷积神经网络的无人机实时车辆检测方法,首先聚类出9个锚框,搭建浅层神经网络,添加注意力机制,加入张量自适应模块;在嵌入式设备中训练与测试。构建了一个浅层神经网络,参数量较少,在Jetson tx2适用于无人机的嵌入式设备中运行并且满足实时性的要求。基于特征金字塔网络进行特征融合后,引入自适应张量选择模块,使网络能够根据目标的语义信息选择最合适的检测张量,进一步提升模型检测的准确性。然而,该专利在卷积层之间加入CBAM注意力机制,但是空间注意力与通道注意力彼此分开运算,这降低了目标在空间上的关联性,因此导致精度很难再进一步提升。
具体实施方式
[0049] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0051] 为了便于下文对本申请技术方案的描述,首先对几个基本的概念进行描述。
[0052] 深度神经网络:神经网络的一种,属于机器学习的一个分支。
[0053] 特征(feature):图像的一种表示方法。传统方法用RGB三通道的像素来表示图像。为了更好利用计算机做识别,需要过滤掉RGB中的冗余信息,并提取出更加语义的特征,常常将图像表示成一个向量,这个向量成为特征。图像特征包含了图像中一些突出的信息,例如轮廓边缘、颜色等。
[0054] 卷积神经网络(CNN):卷积神经网络是一种前馈神经网络,训练简单,泛化能力较好。
[0055] 卷积核:卷积核为卷积神经网络的核心,通常被看作是在局部感受野上,将空间上(spatial)的信息和特征维度上(channel‑wise)的信息进行聚合的信息聚合体。
[0056] ReLU(Rectified Linear Unit):修正线性单元,是一种人工神经网络中常用的激励函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。
[0057] 请参阅图1,图1是本申请实施例提供的一种卷积神经网络的注意力模块的示意图,注意力模块包括注意力向量生成单元101;
[0058] 注意力向量生成单元101,被配置为将残差模块输入的特征向量馈送至第一支路和第二支路;其中,第一支路被配置为在水平方向对特征向量进行可形变卷积操作、通道衰减操作以及全局池化操作,第二支路被配置为在竖直方向上对特征向量进行可形变卷积操作、通道衰减操作以及全局池化操作;
[0059] 注意力向量生成单元101,还被配置为将第一支路的输出与第二支路的输出进行拼接处理,得到拼接向量,使用卷积变换函数对拼接向量进行变换处理;将变换处理后的拼接向量馈送至全连接层,将全连接层的输入分别在水平方向和竖直方向上进行卷积操作,得到输入的特征向量在水平方向上的注意力向量和输入的特征向量在竖直方向上的注意力向量。
[0060] 本申请实施例提供的一种卷积神经网络的注意力模块,将可形变卷积用于水平方向与竖直方向特征提取,方便后续编码时更能捕捉到物体的位置信息。具体的,通过第一支路在水平方向对特征向量进行可形变卷积操作、通道衰减操作,得到水平方向上的特征图,如图2(a)所示,图2(a)是本申请实施例提供的一种水平方向上的特征图的示例,通过第二支路在竖直方向上对特征向量进行可形变卷积操作、通道衰减操作,得到竖直方向上的特征图,如图2(b)所示,图2(b)是本申请实施例提供的一种竖直方向上的特征图的示例,即在一条支路上只进行一个方向的可形变卷积,这相较于传统可形变卷积在两个方向同时进行的方式,本申请可以增强特征提取的效果,可以提升卷积神经网络的检测以及识别精度。此外,本申请通过双支路的设计,分别对水平方向特征图和竖直方向特征图进行池化,注意力模块可以沿一个空间方向捕获远程依赖关系,同时可以沿另一空间方向保留精确的位置信息,使得竖直方向和水平方向的信息均得以保留,然后经系列变换后得到注意力向量,并作为权重因子点乘回原特征向量,如此,可以融合空间的注意力和通道的注意力,解决了现有注意力机制在空间和通道上运算统一的问题,且可以提高卷积神经网络的精度。
[0061] 一种可选的实施方式中,如图1所示,注意力模块还包括权重分配单元102;
[0062] 权重分配单元102,被配置为基于水平方向上的注意力向量和竖直方向上的注意力向量,对输入的特征向量进行权重分配,得到加权后的特征向量。
[0063] 一种具体的实施方式中,请参阅图3,图3是本申请实施例提供的一种注意力模块的具体结构示意图;第一支路包括依次连接的第一可形变卷积层、第一卷积层和第一全局池化层;第一可形变卷积层的输出为:
[0064]
[0065] 其中,p0表示输入的特征向量中的每个特征点;y(px)表示p0经过可形变卷积操作后的水平方向上的位置;R表示卷积核,pn是对R中所列位置的枚举;Δpx表示水平方向上的偏移量。
[0066] 对应的,第二支路包括依次连接的第二可形变卷积层、第二卷积层和第二全局池化层;第二可形变卷积层的输出为:
[0067]
[0068] 其中,p0表示输入的特征向量中的每个特征点;y(py)表示p0经过可形变卷积操作后的竖直方向上的位置;R表示卷积核,pn是对R中所列位置的枚举;Δpy表示竖直方向上的偏移量。
[0069] 具体的,可形变卷积的超参分别按水平与竖直方向上,各设置一个,卷积核大小可以设置为3x3;第一支路和第二支路可以是大致相同的结构,以第一支路为例,对于第一可形变卷积层的输出进行Network in Network,与第一可形变卷积层级联的第一卷积层的卷积核大小可以设置为1x1,同理与第二可形变卷积层级联的第二卷积层的卷积核大小也设置为1x1,即利用1x1的卷积实现通道衰减。如此,通过在可形变卷积核中分别加入x与y方向偏移量,配合级联的1x1卷积得到可形变卷积后的特征图。为了降低模型的复杂性和计算开销,这里通常使用适当的缩减比r(如32)来减少原有特征的通道数。
[0070] 如图3所示,残差模块(residual block)输出的特征向量的数据维度为C×H×W,其中C表示通道,H表示高度,W表示宽度;对该特征向量C×H×W进行两路可形变卷积操作,第一可形变卷积层和第二可形变卷积层的输出的数据维度均为C×(W+H);然后在两个支路上分别进行1x1卷积,则,第一卷积层和第二卷积层的输出的数据维度为C/r×(W+H);然后分别在H方向和W方向上进行全局池化操作,即使用尺寸为(H,1)或(1,W)的pooling kernel分别沿着水平坐标和垂直坐标对每个通道进行编码。则,第一全局池化层的输出的数据维度为C/r×H×1,第二全局池化层的输出的数据维度为C/r×1×W;最后,第一支路的输出(即第一全局池化层的输出)中第c/r通道的输出可以通过下述表达式表示:
[0071]
[0072] 其中,xc/r(h,i)表示第一卷积层的输出中高度为h的第c/r通道中的第i个特征点;
[0073] 第二支路的输出(即第二全局池化层的输出)中第c/r通道的输出可以通过下述表达式表示:
[0074]
[0075] 其中,xc/r(j,w)表示第二卷积层的输出中宽度为w的第c/r通道中的第j个特征点。
[0076] 上述2种变换分别沿两个空间方向聚合特征,得到一对方向感知的特征图。这2种转换也配合之前的可形变卷积捕捉到沿着一个空间方向的长期依赖关系,并保存沿着另一个空间方向的精确位置信息,这有助于网络更准确地定位感兴趣的目标。
[0077] 进一步地,第一全局池化层的输出端与第二全局池化层的输出端分别与拼接变换层连接,该层用于将第一支路的输出与第二支路的输出进行拼接处理,得到拼接向量,使用卷积变换函数对拼接向量进行变换处理;如此,可以很好的获得水平方向与竖直方向上的特征并且精确定位位置信息。为了利用由此产生的表征,本申请对第一支路和第二支路得到的编码信息进行表征转换,对于驾驶或者可穿戴的应用场景来说,表征转换应该尽可能地简单;其次,它可以充分利用捕获到的位置信息,使感兴趣的区域能够被准确地捕获;最后,它还应该能够实时的注意水平方向以及竖直方向特征的差异。
[0078] 该拼接变换层变换的结果可以由下述表达式表示:
[0079] f=(F1([zh,zw]))
[0080] 其中,[·,·]为沿空间维数的concate操作;F1为1x1卷积变换函数;f为对空间信息在水平方向和垂直方向进行编码的中间特征映射。
[0081] 对应的,拼接变换层的输出保持当前C/r的通道衰减系数,其数据维度为C/r×1×(W+H);拼接变换层的输出端连接全连接层,通过全连接层进行水平方向和竖直方向信息融合的提取,全连接层的输出依然保持当前C/r的通道衰减系数,对应的,全连接层输出的数据维度为C/r×1×(W+H);将全连接层的输出分别馈送至第三卷积层和第四卷积层进行卷积,对应的,第三卷积层输出的数据维度为C×H×1,第四卷积层输出的数据维度为C×1×W;最后通过第一ReLU层得到输入特征向量在水平方向上的注意力向量,通过第二ReLU层得到输入特征向量在竖直方向上的注意力向量;
[0082] 上述水平方向上的注意力向量可以通过下述表达式表示:
[0083] gh=σ(Fh(fh))
[0084] 上述竖直方向上的注意力向量可以通过下述表达式表示:
[0085] gw=σ(Fw(fw))
[0086] 其中,fh和fw为f沿着空间维数分解成的2个单独的张量,fh∈RC/r×H,fw∈RC/r×W;Fh和Fw为卷积变换函数;σ是ReLU激活函数。
[0087] 最后,可对gh和gw进行扩展,然后根据下述公式得到加权后的特征向量:
[0088] Foutput=Finput×gh×gw
[0089] 其中,Finput为残差模块输入的特征向量;Foutput为加权后的特征向量。
[0090] 综上,本申请实施例提供的一种卷积神经网络的注意力模块,优化了传统注意力机制过程,通道与空间上同时利用可形变卷积进行弹性编码,融合水平方向与竖直方向上的信息,可以更好的定位目标位置,在检测、分类、分割等应用场景中可以提高目标检测准确度。
[0091] 另一方面,本申请实施例还提供了一种卷积神经网络的注意力机制,包括:
[0092] 将残差模块输入的特征向量馈送至第一支路和第二支路;其中,第一支路被配置为在水平方向对特征向量进行可形变卷积操作、通道衰减操作以及全局池化操作,第二支路被配置为在竖直方向上对特征向量进行可形变卷积操作、通道衰减操作以及全局池化操作;
[0093] 将第一支路的输出与第二支路的输出进行拼接处理,得到拼接向量;
[0094] 使用卷积变换函数对拼接向量进行变换处理;
[0095] 将变换处理后的拼接向量馈送至全连接层;
[0096] 将全连接层的输入分别在水平方向和竖直方向上进行卷积操作,得到输入的特征向量在水平方向上的注意力向量和输入的特征向量在竖直方向上的注意力向量。
[0097] 本申请实施例注意力机制与注意力模块实施例基于同样的申请构思。
[0098] 此外,本申请实施例还提供了一种卷积神经网络,包括上述实施例中所述的注意力模块。本申请卷积神经网络可被训练用来进行检测、分类、分割等,例如应用于自动驾驶应用场景中对周围环境车辆进行检测和识别时能够表现出较高的准确度。
[0099] 本申请提供了基于多种不同的模型结构进行实验的结果,如下表1和表2所示:
[0100]Model Params(M) coco mAP(%)
Mobilenetv2 4.3 41.5
Mobilenetv2+SE 4.7 41.6
Mobilenetv2+CBAM 4.7 41.6
Mobilenetv2+CA 4.3 42.8
本申请 4.45 43.4
[0101] 表1检测实验
[0102] Model Params(M) Top‑1 Acc(%)Mobilenetv2 3.5 72.3
Mobilenetv2+SE 3.89 73.5
Mobilenetv2+CBAM 3.89 73.6
Mobilenetv2+CA 3.95 74.3
本申请 4.02 74.8
[0103] 表2分类实验
[0104] 本申请实验中,在轻量级模型Mobilenetv2的基础上分别添加SE Attention、CBAM(Convolutional Block Attention Module)、CA(Coordinate Attention)和本申请实施例中注意力模块,且分别进行了检测、分类实验;表1和表2的第二列为参数量,第三列为性能值。实验结果表明,添加了本申请实施例的注意力模块时,可以取得最好的结果,且在保证参数量的情况下可以提高网络模型精度;显然,本申请实施例的注意力模块相较于SE、CBAM和CA更有助于目标的检测和分类。
[0105] 由上述实施例可见,本申请提供的一种卷积神经网络的注意力模块、注意力机制及卷积神经网络,可以解决注意力机制在空间和通道上运算统一的问题,可以提高卷积神经网络的精度。
[0106] 需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0107] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0108] 以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。