马佳良,陈 斌,孙晓飞
(1.中国科学院成都计算机应用研究所,成都 610041;2.中国科学院大学计算机科学与技术学院,北京 100049;3.哈尔滨工业大学(深圳)人工智能研究院,广东深圳 518055)
(*通信作者电子邮箱chenbin2020@hit.edu.cn)
近年来,随着深度卷积神经网络(Convolutional Neural Network,CNN)的发展,计算机视觉研究人员见证了目标检测技术的快速进步。基于深度学习的目标检测器可分为两类:二阶段检测器[1-5]和一阶段检测器[6-8]。一阶段检测器直接产生目标的类别概率和位置坐标,经过一次检测即可直接得到最终的检测结果。二阶段检测器则首先产生候选框,然后再对每个候选框预测类别和位置。二阶段检测器具备错误率低和漏报率低的特点,因此无论是在工业应用还是学术研究中,针对二阶段检测器的改进都受到广泛关注。
二阶段检测器的检测流程如图1 所示,首先将一张图片输入骨干网络提取特征,然后在图片上均匀铺设矩形锚框,再根据锚框和目标的交并比进行排序筛选,确定训练样本,最后在特征图上裁剪目标特征送至后续的子网络进行训练。这个流程简单有效,几乎成为了所有二阶段检测器的固定范式。基于该范式,检测器训练的成功与否取决于两个关键方面:1)所选区域样本是否具有代表性;2)输入任务网络的视觉特征是否准确。使用物体的最小外接矩形来表示目标的位置虽然很适合卷积运算,但这种形状无关的设计显然弱化了目标的表示能力。这给上述两个方面带来了显著的问题,这些问题不仅阻碍了模型功能的充分利用,还限制了模型的检测性能。
下面详细描述这两个问题:
1)无论是在判断样本正负还是在应用非极大值抑制(Non-Maximum Suppression,NMS)时,交并比(Intersection over Union,IoU)都是评价包围框质量的最重要的标准,高IoU往往代表着优质样本。但实际上,由于物体的形状各不相同,锚框内的特征除了包含物体内的有效信息,还有物体外的背景信息,非目标的背景区域会误导模型的判断。具体来说,如图1 所示,在右下的目标附近预设了包围框A 和包围框B,根据交并比计算公式,包围框A 与真值(Ground Truth,GT)框的IoU 为0.69,包围框B 与GT 的IoU 仅为0.64。但通过观察很容易发现,包围框A 位于有效目标的外部,而包围框B 位于目标的内部,显然包围框B包含更多的有效信息,应当是更有效的样本。
图1 二阶段检测器检测过程示意图Fig.1 Schematic diagram of detection process of two-stage detector
2)为了解决候选区域尺寸各异、数量庞大的问题,Fast R-CNN(Fast Region-based Convolutional Neural Network)[1]首先提出感兴趣区域池化(Region of Interest Pooling,RoI Pooling)操作,RoI Pooling 从分辨率不同的输入特征中获得固定大小的特征图来完成后续任务,这一改进极大地提高了二阶段检测器的效率,成为了往后大部分目标检测器的标配组件。但RoI Pooling 是一种均匀的网格下采样方法,无论候选区域框是什么形状,长宽比例多么悬殊,最后都会被采样成为固定尺寸的、更小的正方形特征图。在这个过程中,目标的几何形状信息会严重受损,特征也会发生扭曲变形,这不利于后续子任务的准确完成。
针对上述问题,在传统Faster R-CNN(Faster Regionbased Convolutional Neural Network)[2]算法基础上,提出了一个改进的二阶段目标检测框架——Accurate R-CNN。在该框架的实现中,首先提出了有效交并比(Effective IoU,EIoU),它基于越靠近目标中心的包围框越有效的启发式认识,以中心度权重衡量有效主要样本。该判别依据使模型对有效样本更加敏感。除此之外,本文还提出了一个上下文内容相关的特征重分配模块(Feature Reassignment Module,FRM)。该组件通过两种内核编码水平垂直方向上的孤立远程关系和全局多尺度上下文,并根据目标的几何信息对特征进行重编码,以弥补常规池化方法引起的特征扭曲变形。
本文在微软多场景通用目标(MS COCO)检测和实例分割数据集上验证了模型的性能。在无需额外技巧的情况下,针对目标检测任务,使用残差网络(Residual Network,ResNet)进行验证,本文实验采用ResNet50 和ResNet101 作为主干,Accurate R-CNN 相较于Faster R-CNN 的平均精度(Average Precision,AP)提高了1.7 个百分点和1.1 个百分点,显著地超越了使用同样骨干网络的基于掩膜的检测器。除此之外,在添加掩膜分支后,使用ResNet50 和ResNet101 作为主干,Accurate R-CNN 相较于Mask R-CNN(Mask Regionbased Convolutional Neural Network)的掩膜平均精度(mask Average Precision,mAP)也能提高1.2 个百分点和1.1 个百分点。最后在更小的PASCAL VOC 检测数据集上进一步验证了Accurate R-CNN 的检测效果,Accurate R-CNN 同样在平均精度上取得了1.4 个百分点的提升,验证了本文方法的通用性。
He等[9]通过在卷积层和全连接层之间加入空间金字塔池化结构,对候选框所对应的特征采用金字塔空间池化,提取出固定长度的特征向量,显著地提高了网络的训练速度。RoI Pooling[1]从深度神经网络提取的特征中获得的固定大小的特征图,在显著地提高了网络训练和推理速度的同时,提高了检测的准确率。RoI Warping Pooling[10]引入了双线性插值来生成更小的感兴趣区域,这使得池化方式对位置信息更加敏感。除此之外,下采样过程也有了梯度的传导,采样结果更加准确。Position-Sensitive RoI Pooling[11]为骨干网络提取的特征设计了一个位置敏感的分数图,人工引入位置信息到通道维度,从而有效改善较深的神经网络对物体位置信息的敏感程度。RoI Align[4]是在Mask R-CNN[4]这篇论文里提出的一种区域特征聚集方式,它很好地解决了ROI 池化操作中两次量化造成的区域不匹配问题,具体来说,RoI Align取消了原来的量化操作,使用双线性插值的方法,对坐标为浮点数的像素取周围的多个近邻像素计算目标采样值,从而将整个特征聚集过程转化为一个连续的操作。Precise RoI Pooling[12]不再有RoI Align中取近邻像素点数目的参数,也不再涉及量化取整操作,该方法针对整个感兴趣区域里的特征图求积分,采样点更密集,同时所有的像素值也都有梯度的传递。Deformable RoI Pooling[13]首先从感兴趣区域中生成池化后的特征图,然后通过全连接层生成对应感兴趣区域采样点的偏移量,扩大池化范围。这种可变形池化技术显著地改善了无人驾驶汽车对鱼眼相机中畸变目标的重建模能力[14]。不同于先前的工作,本文关注的不是更密集的采样点或扩大感兴趣区域的池化感受野,而是提出了一个内容相关的特征重分配模块,它同时考虑目标的孤立区域和全局区域的上下文,对感兴趣区域内的特征重新建模,以减少下采样过程中的目标几何语义的损失。
上下文建模方法被广泛地应用于目前最先进的场景分析(或语义分割)方法中。早期用于场景分析的上下文关系建模技术涉及条件随机场(Conditional Random Field,CRF)[15-16],它们大多是在离散的标签空间中建模的,而且计算量大。对于连续的特征空间学习,先前的工作使用多尺度特征聚合[17-20]来融合上下文信息,通过多个视野的过滤器或池化操作来融合上下文信息。Chen 等[21-22]通过扩张卷积(Dilated Convolution)融合不同的扩张率特征,以增加网络的感受野,获取更多的上下文信息。在后续的改进中[23],作者进一步引入编码器-解码器(encoder-decoder)结构,更好地利用骨干网络提取的低层特征。DenseASPP(Dense Atrous Spatial Pyramid Pooling)[24]使用密集连接的方式将每个扩张卷积的输出结合到一起,通过一系列的扩张卷积组合级联,后面的神经元会获得越来越大的感受野,同时也避免了过大扩张率的卷积导致的卷积退化。除此之外,聚合非局部上下文对模型捕获长距依赖也很有效,CCNe(tCriss-Cross attention Network)[25]对于每个像素使用一个交叉注意力模块来获得其交叉路径上的上下文信息,并通过一个循环操作,使得每个像素可以捕获所有像素的长依赖关系。形状可变上下文算法[26]对于每一个目标像素设置其对应的上下文窗口,利用一个卷积对,计算上下文窗口中所有其他位置的卷积响应与目标像素处的卷积响应之差,根据差的大小确定某位置与目标像素的关联程度。提高感受野的另一个研究方向是空间金字塔池化[27],通过在每个金字塔级别采用一组具有唯一内核大小的并行池操作,网络能够捕获更大范围的上下文。在本文的工作中,为了捕获不同形状的目标的全局和局部依赖,针对目标的几何特点设计了对应的内核,最后结合所有几何特征学习特征图的变形函数。
深度学习中针对包围框采样方法的改进主要分两个方向:第一个方向是从损失函数入手,通过反向传播间接地突出重要的包围框。OHEM(Online Hard Example Mining)[28]在训练的过程中选用损失值最大的前一部分包围框当作困难样例,给这些样例更大的损失权重。聚焦损失函数(Focal Loss)[6]解决了目标检测中正负样本比例严重失衡的问题,降低了大量简单负样本在训练中所占的权重。第二个方向是在交并比的基础上,启发式地选择合适的预设包围框。角度加权交并比[29]利用方向信息和包围框边的空间位置关系改进训练集中包围框的选择。SCSiamRPN(Strong-Coupled Siamese Region Proposal Network)[30]在原始交并比上添加近似约束,通过在包围框回归任务的损失函数中添加以交并比为主变量的加权系数,提高中心样本的贡献,进而提升边框的定位精度。交并比平衡采样(IoU-balanced sampling)[31]在统计了全部锚框和真值的交并比后,针对负样本的交并比分布设计了分层抽样。主要样本注意力(PrIme Sample Attention,PISA)[32]提出了IoU Hierarchical Local Rank,它既反映了局部的IoU 关系(即每个真值目标周围的包围框),又反映了全局的IoU 关系(即覆盖整个图像的包围框)。Dynamic R-CNN(Dynamic Region-based Convolutional Neural Network)[33]根据训练期间感兴趣区域的统计信息自动调整标签分配标准(IoU阈值),逐步提高正样本筛选的阈值。Cascade R-CNN(Cascade Regionbased Convolutional Neural Network)[5]级联不同IOU 阈值来界定正负样本的输出,使不同IOU 值检测与其相对应的IOU 值的目标。不同于之前的工作,本文在IoU 的基础上提出了一种新的样本评价标准——有效交并比(EIoU),该标准针对包围框的几何特点,根据包围框的中心度衡量有效主要样本。
本文提出的Accurate R-CNN 的整体架构如图2 所示。本章首先介绍提出的有效交并比,该评价标准应用于锚框初始化和非极大值抑制中,可以使网络获得更准确的有效样本,学习到更准确的目标特征。然后,介绍提出的特征重分配模块,该模块在检测网络中放置于感兴趣区域池化操作之前,可以根据局部和全局上下文学习一种内容相关的特征变形方法,有效地缓解常规池化导致的特征损失。最后,介绍整个网络的结构和一些实现细节。
图2 Accurate R-CNN示意图Fig.2 Schematic diagram of Accurate R-CNN
交并比作为相似程度的度量,是判断包围框准确与否的关键指标,无论是在感兴趣区域筛选,还是非极大值抑制中,交并比都是判断一个包围框的位置质量的第一标准。由于原始交并比的设计缺陷,一些对检测很重要的包围框被视为冗余而被剔除了。针对第1 章提出的假设,即使交并比值相等,在目标内的包围框应该比在目标外的包围框更重要。受到FCOS(Fully Convolutional One-Stage object detection)[8]的 启发,本文使用“中心度”来衡量一个包围框在目标内的程度,中心度通常用来表示包围框的中心到目标的真值包围框的中心的标准化距离。EIoU 启发式地认为,更靠近真值包围框中心的锚框,可能包含更多的有效目标,应当被认为更重要。
最后使用中心度权重修正原始交并比值得到EIoU:
其中:IoU为包围框B和真值框的交并比值。可以在图3 中看到,使用中心度权重校正包围框的交并比之后,靠近目标内部的包围框得分更高。
图3 EIoU的中心度权重示意图Fig.3 Schematic diagram of centrality weight of EIoU
针对不同目标,感兴趣区域池化操作无差别地将其下采样成正方形。但由于目标的形状各不相同,特征图的长宽比例也没有固定的关系,在这个过程中,特征可避免地会因为变形而损失一些几何特点。为了解决这个问题,本文设计了一个可学习的特征重分配模块,它根据目标的全局上下文和几何结构特点对像素位置进行重分配,以弥补下采样过程中的特征损失。
如图4 所示,提出的特征重分配模块以特征金字塔网络(Feature Pyramid Networks,FPN)[3]提取的目标的分层特征为输入,由分别捕获不同位置之间短距离和长距离依赖关系的两种内核组成。对于一个通道数为C、高为H、宽为W的输入特征图F,首先使用降维卷积压缩输入特征图的通道数。对于长距离依赖,使用水平和垂直的条带池化操作来捕获窄特征,这种条带池化操作使分散在整个场景中的区域之间的连接成为可能。对于语义区域分布紧密的情况,使用轻量级的金字塔池化模块[27]来获取局部上下文信息,并在每个池化层后面接一个3×3的卷积使捕获到的上下文更加精准。该金字塔池化模块总共包含两个后接卷积层的自适应池化层,和一个用于保存原始空间信息的二维卷积层,其中两个自适应池化层的池化因子设置为2×2 和5×5。最后通过连接操作将所有子路径合并,得到特征最终的几何编码信息称之为Fc。
图4 特征重分配模块示意图Fig.4 Schematic diagram of feature reassignment module
接下来根据目标的几何编码信息重分配目标特征,以抵消感兴趣区域池化操作引起的特征损失和变形。具体来说,对于输入特征图F,首先根据其几何编码信息Fc来学习特征图上每一个像素点在水平和垂直方向上的移动量δ∈R2×H×W,这个过程定义如下:
其中:conv1(⋅)是一个输出通道为2的3×3卷积。定义特征图F上的像素的初始位置为p,则该位置的像素值可写为F(p),将归一化后的位置移动量δ(p)加到p上,得到该位置元素的新位置p*为:
其中:H和W表示感兴趣区域特征图的高和宽。
为了解决浮点偏移引起的量化问题,采用双线性机制确定采样值,该机制以采样点最近邻的四个像素的值来近似输出,该过程有如下定义:
其中:N(p)表示位置p的像素周围最近的四个像素点;wP表示根据每个邻近像素和p的距离计算得到双线性核权重。对所有像素应用上述变形函数得到其对应的重分配位置,并将重分配的特征图作为后续RoI池化的输入。
网络的整体结构如图2 所示,把锚框生成阶段和RPN(Region Proposal Network)的NMS 阶段中的IoU 判别标准替换为EIoU。除此之外,为了降低特征金字塔的相邻特征层在合并时存在的语义鸿沟,在FPN的每组相邻特征之间,对上采样后的较粗糙分辨率的特征图应用一个3×3的可变形卷积网络(Deformable Convolution Network,DCN)[13]。
检测网络的分类任务损失函数为:
其中:CE(Pi,Gi)表示交叉熵损失函数,即单一样本分类损失。对于真值标签为Gi,预测标签为Pi的候选框i,其交叉熵损失函数计算如下:
边框回归任务的损失函数如下所示:
其中:smoothL1(di[j])表示smooth L1 损失函数;di为样本i对应的某一个边框的预测值与正则化之后的真值的差(包括边框的中心横纵坐标x和y,边框的宽w和高h);Pos表示正样本。其中smooth L1损失函数的计算方法如下:
总的损失函数的形式如下:
其中:Gi*在对应锚框为阳性时设置为1,否则设置为0。
本文在两个公开数据集上进行了实验:
第一个是包含80 个类别的MS COCO 目标检测数据集和实例分割数据集。MS COCO 包含118 287 张用于训练的图像(train2017),5 000 张用于验证的图像(val2017)和20 000 张用于测试的图像(test-dev)。其中test-dev数据集没有公开标签,因此在MS COCO 官方服务器上测评test-dev 并汇报测试集的结果,使用val2017数据集汇报消融实验的结果。汇报的结果都遵循MS COCO 标准的平均精度(AP)指标,其中AP50表示使用IoU 阈值0.5 来确定预测的包围框或者掩膜在评估中是否为阳性,AP75同理。APS表示面积小于32×32个像素的目标的平均精度值,APM表示面积在32×32个像素到96×96个像素之间的目标的平均精度值,APL表示面积大于96×96个像素的目标的平均精度值。后面不带阈值表示的AP,指IoU 以0.50到0.95区间内每隔0.05作为阈值时的平均结果。
第二个数据集是包含20 个类别的PASCAL VOC 目标检测数据集,其中有用于训练的12 000 张(VOC2007+VOC2012)图像和用于验证的5 000张(VOC2007)图像,在VOC验证数据集上报告的结果遵循VOC style的平均精度指标。
本文中所有实验都是基于MMDetection[34]实现的。为了公平起见,本文使用该检测库重新实现了所有被对比的基线方法,值得注意的是重新实现的基线方法的效果比原始论文提高了超过1 个百分点。本文使用2 个NVIDIA GeForce RTX TITAN GPU 训练,该显卡内存为24 GB。对于COCO 数据集,输入图像的大小被等比例缩放到短边为800 像素的尺寸,将每个GPU的批处理大小设置为8;对于VOC数据集,输入图像的大小被等比例缩放到短边为600 像素的尺寸,将每个GPU的批处理大小设置为16。在两个数据集上初始学习率均设为0.02,总共训练12 轮,在第8 和第11 轮以0.1 的比率下降学习率。所有实验使用设置动量的随机梯度下降(Stochastic Gradient Descent,SGD)优化器训练,动量设置为0.9。
在COCO test-dev 数据集上评估了本文提出的Accurate R-CNN,并与其他最先进的二级检测器进行比较。所有结果见表1。
针对目标检测任务,当使用ResNet50 作为骨干网络时,提出的Accurate R-CNN 的AP比基于ResNet50 的Faster R-CNN 提高了1.7 个百分点。当使用ResNet101 作为骨干网络时,提出的Accurate R-CNN 比基于ResNet101 的Faster RCNN 提高了1.1 个百分点。针对实例分割任务,当在Accurate R-CNN 中添加了掩膜分支后,如表1 所示,使用ResNet50 作为骨干网络时,Accurate R-CNN 的AP相比Mask RCNN(Mask Region-based CNN)在包围框质量上提高了1.5个百分点,在掩膜质量上提高了1.2 个百分点。当使用ResNet101 作为骨干网络时,Accurate R-CNN 相比Mask RCNN,包围框质量提高了1.2个百分点,掩膜质量提高了1.1个百分点。这充分说明了该方法在不同任务上的通用性。
表1 在COCO tes-dev数据集上的检测结果Tab.1 Detection results on COCO test-dev dataset
本文还在PASCAL VOC 的验证数据集上测试了Accurate R-CNN 的性能,如表2 所示:当使用ResNet50 作为骨干网络时,检测性能提高了1.4 个百分点;当使用ResNet101 作为骨干网络时,检测性能提高了1.4个百分点。在图5中可视化了和基线方法相比每一类上的检测效果,可以看到Accurate R-CNN几乎对全部类别的检测都有提升。
图5 PASCAL VOC测试集上的检测表现Fig.5 Detection performance on PASCAL VOC test set
表2 在PASCAL VOC数据集上的检测结果Tab.2 Detection results on PASCAL VOC dataset
由图6(a)和图6(b)可知,在MS COCO 数据集上,针对目标检测的回归和分类任务,本文方法可以稳定地降低训练过程中的损失函数,使检测目标逐渐精准。除此之外,在图6(c)和图6(d)中可以观察到,和基线方法Faster R-CNN 相比,Accurate R-CNN 可以在相同的迭代次数下更快地提升包围框的准确性。当添加了掩膜分支后,和基线方法Mask R-CNN相比,Mask Accurate R-CNN具备更快更好的掩膜分割性能。
图6 训练过程中的损失和精度变化Fig.6 Loss and accuracy change in training process
通过一定的消融实验来分析本文方法,结果如表3 所示。首先对每个单独改进的效果进行了实验验证,然后对不同组件组合后的改进效果进行分析。
表3 在COCO val数据集上基于ResNet-50骨干网络的消融研究结果Tab.3 Ablation study results based on ResNet-50 backbone network on COCO val dataset
在使用EIoU 来代替原来的包围框评价标准IoU 之后,平均精度提高了0.5 个百分点,虽然提升幅度有限,但AP75和APM均提升了超过1个百分点,这说明对于中等大小尺寸的目标,包围框混淆现象是很容易发生的。由于缺乏完全贴合的预设包围框,模型会在真值包围框的附近选择部分次优包围框,EIoU有利于过滤掉质量低的次优包围框。
在将FRM 单独添加到基线检测器中时,模型取得了0.8个百分点的提升,其中大部分指标的提升超过1 个百分点,无论是大目标还是小目标,均受益于FRM 优秀的特征建模能力。这说明FRM 有效地避免了不同形状的目标因为下采样池化而导致的特征畸变。
在特征金字塔的相邻特征层之间添加DCN 后,可以看到平均精度提升了0.8个百分点,其中AP50、AP75均取得了超过1个百分点的提升。这说明特征金字塔的相邻特征层间是存在语义鸿沟的,直接将其放大并相加不够准确。可变形卷积在卷积核中引入偏移量,有效地缓解了特征合并过程中的语义差异,使特征金字塔构建的分层特征更加准确。
当在基线方法中插入提出的FRM,并将IoU 替换为EIoU时,相较于基线方法取得了1.0 个百分点的提升。当在特征金字塔中添加可变形卷积,并在感兴趣区域池化之前插入提出的FRM时,相较于基线方法取得了1.4个百分点的提升,其中AP75取得了超过2 个百分点的提升。当将全部组件添加到基线模型时,可以达到38.8%的平均精度,相较于基线方法取得了1.6个百分点的提升。
在MS COCO 数据集中随机选择了3 000 张图片用于检测结果对比,骨干网络为ResNet50,设置检出分数阈值为0.5。在全部检测结果中挑选了10 对有代表性的对比结果进行可视化,基线方法(Faster R-CNN)和本文方法(Accurate R-CNN with ResNet50)的检测效果如图7 所示。从图7 可看出:本文方法Accurate R-CNN针对尺度差异大的目标具有更高的检出率,针对尺寸较大的目标检测到的边框也更加准确。
图7 包围框检测效果对比(ResNet50)Fig.7 Comparison of bounding box detection effect(ResNet50)
本文方法Accurate R-CNN在实例分割任务上同样表现出了较好的性能。针对添加了掩膜分支的Accurate R-CNN,检测效果如图8 所示。从图8 可看出:对于长宽相差悬殊(如长凳、列车、提包)和由于遮挡而损失特征(如皮椅、纸杯)的两类目标,带掩膜分支的本文方法Accurate R-CNN 比基线方法均实现了更高的检出率和更准确的掩膜分割结果。
图8 掩膜检测效果对比Fig.8 Comparison of mask detection effect
本文从所选区域样本是否具有代表性和输入任务网络的视觉特征是否准确两方面分析了基于深度学习的二阶段检测器的设计缺陷。针对该缺陷,在Faster R-CNN 的基础上作出了几个改进使检测效果会更加准确。具体来说,本文提出了名为Accurate R-CNN 的二阶段检测器,通过有效交并比EIoU和特征重分配模块FRM 两个简单的组成部分,Accurate RCNN 可以在MS COCO 和PASCAL VOC 两个数据集上显著地改善基线方法。目前,本文提出的特征重分配模块虽然可以方便地插入到大部分二阶段检测方法中,但对于不使用感兴趣区域池化操作的单阶段检测器来说尚不适用,后续研究将考虑把特征重分配的思想应用到单阶段检测器中。