陈乔松,陈鹏昌,李 佩,张亚玲,邓 欣,孙开伟,王 进
(重庆邮电大学 数据工程与可视计算重庆市重点实验室,重庆 400065)
目标检测是计算视觉领域内最主要的任务之一。近年来,随着人工智能理论的蓬勃发展,以卷积神经网络(convolution neural network,CNN)为基础的目标检测方法已经完全取代了靠设计人工特征[1]来进行检测的传统方法。
基于卷积神经网络的目标检测方法一般将目标检测分为定位与分类两个子任务。定位任务负责回归图像中目标的位置和大小,分类任务则需要对相应的目标进行归类。两个子任务的结果合并到一起即最终的任务结果。根据取得结果过程的不同,目标检测有双阶段目标检测和单阶段目标检测两大类方法。双阶段方法会额外进行一次分类与回归,以此区分出前景先验框与背景先验框,然后再对前景先验框中的特征图进行进一步的分类与回归。双阶段目标检测方法起始于R-CNN[2],经历了Fast R-CNN[3]和Faster R-CNN[4]等方法的演进。目前,基于双阶段的目标检测方法都以Faster R-CNN中提出的理论和方法作为基础结构。对比双阶段目标检测器的复杂设计和较高的训练难度,以SSD[5]为代表的单阶段目标检测方法在设计上更加简洁,通过直接在特征图上对先验框进行分类和回归得到检测结果,可以实现端到端的训练。在推理时间上,单阶段目标检测方法也有着较大的优势。
单阶段目标检测器一般采用特征提取网络中有着不同分辨率的特征层级来分别检测不同尺度的目标。典型地,如SSD网络使用VGG-16[6]作为特征提取网络,它使用了Conv4_3层的特征图和额外的网络产生的一共6个特征图来进行检测。这种基于多尺度特征图目标检测方法的基础理论是不同层级特征图的特征感受野不同,某一尺度的特征图只能描述该尺度对应大小的目标。分辨率大的特征图特征感受野较小,检测较小尺寸的目标;而分辨率较小的特征图往往有着更大的特征感受野,用于检测大尺寸目标。不同尺度的特征图共同协作从而覆盖描述图像中大小不一的目标。虽然SSD采用了多尺度的检测方法,但两方面的问题也随之而来。一方面,多尺度特征图有特征混淆问题。根据特征提取网络前向传播的特点和多尺度特征图检测的机制,浅层特征图中不仅需要保持较小目标的特征,同时也要保留较大目标的特征。浅层特征图的目标感受野虽然有限,但是其可以感知较大目标的部分语义特征。由于目标检测任务中不同尺度目标经常存在重叠性,故在同一特征图的特征点向量中往往存在不同尺度目标的特征,从而造成了特征混淆。这种特征混淆往往对该尺度内目标的检测与分类带来干扰,不利于对较浅特征图中较小目标的分类与回归。最终体现在检测结果上就表现为对小目标检测性能较差。另一方面,多尺度特征图中特征信息不足。按照多尺度特征检测的基本理论,浅层特征图有着较大的分辨率,所以有更加多的纹理特征,这有利于边界框的回归;相反,经历了更多层卷积操作的深层特征图有更抽象的语义特征,有利于对目标的分类任务。对于多尺度目标检测任务来说,这两者是相互矛盾的,但有效的特征融合可以有效解决这一问题。
针对以上的问题,本文基于多尺度检测的经典网络架构SSD,提出了一种基于多尺度的特征选择和融合的目标检测网络。本文主要贡献如下。
1)提出了特征选择模块(feature selection module,FSM),通过对特征图使用自适应加权操作,起到尺度感知的特征选择作用,有效做到对混淆特征的分离。本文在引入特征金字塔网络架构[7](feature pyramid network,FPN)的同时,加入了特征选择模块,使FPN网络在向浅层特征图传递高级语义特征时,避免再次引入混淆特征。最终形成了特征选择网络结构(feature selection network,FSN)。
2)针对信息不足的问题,提出了一种浅层特征融合网络模块(lower feature fusion module,LFFM)。在该模块中,通过融合浅层特征到深层特征图,提高了检测性能。在融合过程中,将深度分离卷积[8]作为一种特征图降采样的手段,有效实现对浅层特征图的适应性降采样。
随着2012年AlexNet[9]在ImageNet图像分类挑战赛上的获胜,计算机视觉领域进入了卷积神经网络的快车道。在深度卷积神经网络的发展过程中,研究者们探索出了许多优秀基础网络架构,如VGGNet[6]、ResNet[10]和MobileNet[11]等。这些网络架构可以提取到丰富的图像特征,为以分类和检测为主的计算机视觉任务提供了基础支持。2014年,R-CNN[2]网络架构首次将卷积神经网络方法应用到目标检测上,为目标检测任务提供了全新的研究方向;2015年,S.Ren等[4]提出了Faster R-CNN网络架构,采用了预选区域生成网络来代替传统图像处理方法做区域选择,实现了对全局图像的直接检测,大大提高了检测和训练效率。2016年,随着SSD的问世,目标检测开启了单阶段多尺度检测的新时代。SSD网络架构使用针对不同特征层级的多分支检测器来检测不同大小的物体,从而达到了尺度感知的目的。在同一年,YOLO[12]网络架构的提出为单阶段目标检测网络增添了新的范式,经过几年的发展,大量新的研究成果[13-14]出现,使得YOLO系列已经成为目标检测领域最热门的研究方向之一。近年来,随着基于角点检测的CornerNet[15]和基于关键点检测的FCOS[16]等检测器的出现,目标检测基础网络架构有了更多的方向。
在针对单阶段多尺度目标检测器的研究中,出现了许多改进的方法。以FPN为代表的特征金字塔网络架构通过自上而下的连接,将深层特征图的语义特征传播到浅层特征图,使特征图融合了多个尺度的特征,增强了特征表达力。与FPN网络架构类似,DSSD[17]使用转置卷积作为上采样手段来融合深层特征,相比FPN结构取得了更好的效果。对于类似的网络结构,PANet[18]、M2Det[19]、BiFPN[20]等有更深入的研究和改进。另一方面,不同于特征金字塔结构,RFBNet[21]架构使用了膨胀卷积来获得不同大小感受域的特征,再对特征进行融合得到了不同层级的特征图;类似地,TridentNet[22]也使用了膨胀卷积来提取各层级特征,最终使用多分支网络完成检测。实验证明使用膨胀卷积有效,更加符合人类视觉系统的特点。
为了使多尺度检测器的各层级特征更具表达力,自适应空间特征融合[23](adaptive spatial feature fusion,ASFF)网络将各层级特征使用自适应加权融合的方式生成新的层级特征。ASFF网络的特征融合方式,使得不同层级特征产生自适应的联系,增强了特征的一致性。邻域特征擦除与转换[24](neighbor erasing and transferring network,NETNet)网络为了增强浅层特征图的表达力,在浅层特征图中将来自深层的特征擦除,以此降低干扰,增强特征。
本文方法主要分为两个部分:其一,为了强化特征,本文设计了特征选择模块来分离不同层级特征,并结合FPN网络架构将高阶语义特征传递到底部层级且避免引入混淆特征;其二,本文还增加了浅层特征融合模块,将浅层的特征图通过跳跃连接与深层特征图融合,以此达到特征增强的目的。
根据多尺度目标检测的基础理论,不同大小的目标由不同尺度的特征层级来描述。显然,随着特征图的分辨率由大变小,特征图能表示的目标也越大,而小目标的特征则在此递进中逐渐消失。对于某一层级的特征图来说,其特征表达为
Fs=f(x1,x2,x3,…,xS),s∈{1,2,3,…,S}
(1)
(1)式中:s表示某个特定尺度;F表示该层级特征图的特征表达;f表示该层级的特征提取算法;x表示不同尺度的目标。对于分辨率较大的特征图来说,它提取了来自多个尺度的目标的特征,这些并不需要的目标特征对于后续的分类和回归任务来说是比较严重的干扰项。为了消除干扰特征,本文设计了特征选择模块FSM,如图1所示。对于特征层级Fs,进行一次卷积操作,卷积核大小为3,卷积的结果是一个通道数为1的特征图,最终通过sigmoid函数激活,得到一个二维权值矩阵。特征选择的结果即为原始特征图与此权值矩阵的乘积表示为
(2)
(2)式中,在元素相乘操作之后,还进行了一次卷积核大小为1的卷积操作,作为特征适应层。
图1 FSM结构示意图Fig.1 Feature selection module structure
近年来的研究充分证明了FPN网络结构的有效性,FPN网络的自顶向下结构使得高阶的语义特征能够传播到浅层特征图,有助于较小目标的分类任务。但是,如前文分析中指出的那样,深层特征图向浅层特征图融合时,会增加相应的局部特征到浅层特征图中,而这些局部特征易对浅层特征检测造成混淆。本文设计了特征选择网络结构FSN,在引入FPN网络结构的同时,又在FPN结构中增加了FSM模块,在深层特征图向浅层特征图融合的过程中增加特征的选择步骤,使不必要的局部特征不向浅层特征图传播。为了减小模型复杂度,FSN结构排除了最后一个特征图。
特征图在网络前向计算过程中分辨率逐渐变小,所能容纳的信息也越来越有限。在网络结构的初始阶段,高分辨率的特征图汇聚了大量纹理、轮廓等低阶特征。有不少研究证明了将这些低阶特征图融合到高阶特征的有效性,典型的如FSSD[25]网络结构,它将多个浅层特征图通过元素相加融合在一起,然后再通过卷积操作提取出原尺度特征,这样的方法相比原SSD架构在小目标上获得了更好的检测性能。但FSSD是在原有的特征层级上进行融合操作的,并没有引入新的浅层特征。事实上,在更浅层的特征图中有着更加丰富的细节特征可以被利用。
本文基于SSD架构,设计了一种浅层特征融合模块LFFM。为了利用更浅层的特征图,本文选取了来自Conv3_3层的有着75 × 75分辨率的浅层特征图。该高分辨率特征图相比原图像经过了仅仅两次池化,还有着大量的细节特征。将这样的特征图融合到深层特征图中,可以有效增强深层特征图的特征丰富程度。
LFFM结构由4个特征融合模块(feature fusion module,FFM)组成,FFM将相邻特征图进行融合。基于相邻特征图之间的特征融合,避免了不相邻特征图因为特征差异巨大而无法融合的问题,可以逐级地将浅层特征传递到深层特征图。FFM可表达为
(3)
(3)式中,Fs表示特定层级的特征图。对Fs来说,它与前一层级特征图Fs-1进行融合。特征融合模块要先将浅层特征图进行降采样,降采样后使用激活函数激活,再与深层特征图进行逐元素相加融合。逐元素融合后即为特征融合的结果。
目前大多方法是使用平均池化或者最大池化来进行降采样操作,池化层可以增加网络模型的非线性,提高网络的泛化能力。与一般方法不同,本文使用深度可分离卷积[8]来代替池化层对特征图做降采样。深度可分离卷积由分组卷积和逐点卷积两部分组成。先使用卷积核为3、步长为2的分组卷积进行降采样,再使用逐点卷积适配对应通道数。通过使用上述深度可分离卷积,降采样过程就可以通过网络进行训练,这实现了降采样过程的可学习化。另外,由于卷积层后有激活函数的存在,因而降采样方法并不会减小模型的非线性程度。实验证明,使用深度可分离卷积实现降采样比传统的降采样方法有更好的效果。
本文方法的整体网络结构如图2所示,将LFFM模块放在FSN模块之前,符合前文中特征选择的要求。
图2 本文方法网络架构图Fig.2 Network architecture of the proposed method
根据前面章节提出的网络模型,本文进行了相关的实验来验证模型的有效性。本文实验的机器操作系统为Ubuntu 18.04,CPU为R5-3600X,显卡为GTX-1080,显存8 GB,机器内存为16 GB。实验环境为Python 3.7,深度学习框架为PyTorch 1.6。实验的初始学习率为0.003,训练的批处理大小为24。在其他参数方面,本文与SSD的方法的超参数一致,包括先验框的个数和预设的长宽比。
本文方法基于SSD网络,网络的损失函数由分类损失和先验框回归损失函数两部分组成。其中,分类损失使用了交叉熵损失函数,先验框回归损失使用了Smooth L1[3]损失函数。
本文选用的数据集为PASCAL-VOC2007。大多数研究对于PASCAL-VOC2007数据集的使用方式为将PASCAL-VOC2007和PASCAL-VOC2012的训练集和验证集合并为一个数据集作为完整的训练集,而测试集即为PASCAL-VOC2007的测试集,本文采用相同的数据集形式。
评价指标方面,普遍采用的是AP和mAP。AP是PR曲线中曲线与坐标轴围成的面积,可以客观反映出模型的检测性能。mAP是不同类别目标AP的平均值,可以反映出算法对数据集的整体表现。
本文验证了FSM模块的有效性,结果如表1所示。表1展示了FSM模块在PASCAL-VOC2007测试集上的效果。原SSD网络的mAP为77.2%,对SSD的前5个待检测特征图加上FSM模块后,mAP达到78.0%,有0.8%的提升。将FSN结构整体作用到SSD网络后,可以得到78.7%的mAP。为了进一步证明FSM的有效性,本文将FSN网络中的FSM替换为空间注意力模块[26](squeeze-and-excitation,SE),采用相同的训练方式,最终达到78.3%的mAP,不及使用FSM的FSN网络结构,以此证明了FSM模块的优越性能。
为了证明LFFM的有效性,本文在FSN结构的基础上,设计了浅层特征图融合至不同深层特征的实验,实验结果如表2所示。基础实验数据是SSD组合FSN网络架构,mAP为78.7%。对于输入为300 × 300的SSD网络的6个特征层级,当浅层特征融合到前两个层级特征图时,可以达到79.69%的mAP。逐级融合至前4个层级特征图时,可以得到79.73%的检测结果,相对于融合前两个层级特征图有微弱的提升。由此说明,对过于深层的特征图来说,来自浅层的特征融合并不会带来很大的性能提升,相反,较浅层的特征融合则会有更加明显的效果。
表1 FSM模块实验结果
表2 LFFM消融实验结果
另外,对于浅层特征融合中的降采样手段,本文做了消融实验,实验结果见表2。如表2所示,相比简单的线性插值降采样,本文对比了使用卷积来实现降采样的结果。使用线性插值时,融合前4个层级特征,mAP为79.73%。用步长为2的卷积来代替降采样,得到了微弱的性能提升。最终,使用本文引入的深度可分离卷积,相比一般卷积有着更少的参数和计算量,最终mAP达到了80.1%,获得较大的效果提升。由此证明了将深度可分离卷积应用于降采样的有效性。
表3展示了本文方法与近年来的一些主流算法的对比情况。从表3可以看出,本文算法在检测精度上相较于SSD网络在300 × 300的输入分辨率提高了2.9%,mAP达到了80.1%,优越于大多数的目标检测算法。RFBNet的mAP比本文方法高0.4%,这源于RFBNet基于SSD网络结构且使用空洞卷积[27]增大感受野的同时,又使用了比SSD方法更多的先验框,更多的先验框使RFBNet有0.2%的性能提升。计算性能方面,本文方法在GTX-1080计算卡上达到了每秒48帧的处理速度,输入分辨率为512时也可以达到每秒25帧的计算速度,达到了实时处理视频的要求。
表3 PASCAL-VOC2007数据集的效果结果对比
表4对比了本文方法与其他方法在某些具体类别上的AP表现。在对比类别中,主要选取的是通常以小目标形式出现在图像中的类别,比如鸟、瓶子等。从表4可以看到,本文方法在小目标的检测性能上有一定的提升。但由于输入分辨率的限制,一些小目标在图像变换过程中丢失细节,故在某些类别上提升有限。
表4 小目标类别表现对比
本文从PASCAL-VOC2007数据集中选取了几张具有代表性的图像,来直观地感受本文方法相对于基础SSD网络的优越性,如图3所示。从图3可以很明显看出,本文方法能检测出图像中更多的小目标。对于遮挡目标,在特征选择模块的作用下,前景中的较大目标特征被筛除,使得其特征被增强,从而被检测网络检测出来。
本文针对多尺度目标检测中的特征图特征混淆和特征丰富程度不足问题,提出了一种基于特征选择与特征融合的网络架构。特征选择使得不同尺度目标在同一个特征图中分离开,降低了其他尺度目标的特征干扰。本文为了将高阶语义特征传到浅层特征图,引入了FPN网络架构,与此同时,在FPN架构中加入了特征选择模块来避免不同尺度的特征混淆。为了使特征图获得更多纹理等低阶特征,增强特征丰富程度,本文将基础网络中更加浅层的特征图融合到待检测的特征图中,并使用了可分离卷积来实现降采样。本文通过消融实验和对比实验,证明了相关模块的有效性和本文方法相对于其他方法的优越性。未来的工作是简化网络复杂程度,将特征选择模块和浅层特征融合模块有效地结合起来,探索更加轻量化的解决方案。
图3 文本方法与SSD网络检测效果对比图Fig.3 Comparison of detection effect between the proposed method and SSD