作者指出,目前主流的目标检测网络都由两步完成:目标分类和目标定位。首先从背景中找出前景的object proposal并将其分配上合适的分类标签,然后通过最大化IOU或者其他检测结果和ground truth之间的度量标准来进行对定位目标的系数回归。最后多余的bounding box会通过NMS去除。
分类和定位在这样的检测流水线上被不同的处理,每种分类标签是proposal的“classification confidence”,然而bounding box的回归模块只预测了针对proposal的变换系数以拟合目标位置,“localization confidence”却在循环中缺失。
这样带来两个问题:
首先,在抑制重复检测时,classification score通常会用作成给proposal排名的标准,可能导致更准确的边界框反而被不准确的抑制的情况。
图片中黄框为ground truth,绿框和红框都是检测结果,绿框定位更准确但cls conf更低。
其次,缺乏localization confidence使得被广泛使用的边界框回归方法缺少可解释性或可预测性。先前的工作曾指出bounding box迭代回归的非单调性,也就是说,应用多次之后bounding box回归可能有损bounding box定位表现(如下图)。
对于以上问题作者提出:
1.IOU是对定位准确度的一个天然准则。作者用预测的IOU替换classification confidence作为NMS中的排名关键依据。称为IOU-guided NMS,有助于消除cls conf误导下的错误。
2.提出了一种与传统的基于回归的方法表现相当的基于优化的bounding box改良流程。使用预测到的IOU优化目标,同时作为定位置信度的可解释性指示量。提出的Precise RoI Pooling layer可以通过梯度上升求解IOU优化。实验表明该方法能与基于CNN的检测器兼容,并且能带来定位准确率的单调上升。
深入目标定位
作者探究目标定位的两个问题
1.Misaligned classification and localization accuracy
当移除重复bounding box时,NMS是不可缺少的步骤。近期有一系列算法对NMS进行了改进,但作者认为这些基于参数的方法需要更多的计算资源,使得其无法进行实时应用。
而在广泛应用的NMS方法中,cls conf被用来给bounding box排名。作者将cls conf和IOU进行可视化,可以看到,定位准确度与cls conf并不是很好的相关联。
对于pearson correlation即
作者指出在传统NMS中,对于同一个单个物体的多重检测,拥有最高cls conf的bounding box会保留下来,而由于这种“misalignment”,拥有更好的位置的bounding box可能会在NMS过程中被抑制。
作者还将使用NMS,IOU-Guided NMS,和不使用NMS进行了对比。作者将bounding box根据与它们对应的ground truth的IOU进行组合。对于同一个ground truth的多重检测匹配中,只有最高IOU的被认为是正样本,那么No-NMS可以被认为是正样本的上限。可以看到在使用NMS之后有超过一半的与ground truth的IOU>0.9的bounding box被抑制,这有损定位表现。
2.Non-monotonic bounding box regression
单一的目标检测可以分为2类:bounding box-based和segment-based。segment-based方法对每个实例生成像素级的分割却不可避免的需要额外的分割注释(这里不太明白)。这次工作集中在bounding box-based方法上。
单一的物体定位一般被公式化地表现为一个bounding box的回归工作。核心是一个网络直接学习bounding box向指定目标拟合的过程。
作者将基于FPN和Cascade R-CNN结构上的bounding box迭代回归表现做了对比。
a中基于回归的方法随着迭代次数增加,在上升之后迅速下降。b中0,1,2代表Cascade R-CNN中的回归阶段,多轮回归之后,基于优化的方法高出0.8%AP。
在此基础上提出IoU-Net
Learning to predict IoU
对训练集中所有的ground truth采用数据增强生成一个candidate box set,去除与ground truth之间IOU<0.5的box,在该集合中选取训练集,实验证明这能够带来更好的表现以及鲁棒性。
IoU-Net结构如下:
输入图像首先输入一个 FPN 骨干网络。然后 IoU 预测器读取这个 FPN 骨干网络的输出特征。研究者用 PrRoI 池化层替代了 RoI 池化层。这个 IoU 预测器与 R-CNN 分支有相似的结果。虚线框内的模块能构成一个单独的 IoU-Net。因为训练过程独立于其他特有分类器,所以对输入的分布具有一定的鲁棒性(比如与不同detectors合作等)。
IOU预测器与大部分现存的RoI-based detector兼容。IOU预测器的表现在下图已给出。
IOU-guided NMS
对于算法IOU-guided NMS,分类置信度和定位置信度是解开的(disentangled)。研究者使用定位置信度(预测得到的 IoU)来给所有被检测到的边界框排名,然后基于一个类似聚类的规则来更新分类置信度。
核心思想是:从bounding box集合B中依次选取预估IOU(localization confidence)最高的bounding box(记为),然后将与其IOU高于一定阈值的bounding box一个个选出来,并将这些bounding box(包括最开始选的)的最高classification confidence记为s。然后将二元组记录到集合D中,本质是将bounding box和cls conf的重新分配。
作者认为,IOU-guided NMS解决了cls conf和localization accuracy不匹配的问题,并取得了超过传统NMS及Soft-NMS等变体的表现。
随后在实验中给出了使用IOU-guided NMS的效果:
对于soft NMS解释核心思想是:M为当前得分最高框,bi 为待处理框,bi 和M的IOU越大,bi的得分si就下降的越厉害。
具体见https://blog.csdn.net/shuzfan/article/details/71036040
AP的下标指IOU阈值,即在bounding box与对应的ground truth之间的IOU大于一个阈值时,这个bounding box就会被标记为正样本。可以看到随着这个IOU阈值的增高,IOU-NMS相对表现越来越好,但是对于较低的阈值,IOU-NMS表现反而不如先前的NMS或者soft-NMS。(为什么?)
随后作者提到对于这个问题,原因在于“IoU estimation error”。当bounding box与GT有一个较低的IOU时,他们在表现上会有更大的方差。如图中接近左下角的部分明显看到点的分布更扩散。之前提到IOU-guided NMS本质是一个bounding box和cls conf重新匹配的过程,那么换句话说,对于与GT之间的IOU较低的bounding box,这个重新匹配的过程得到适得其反的效果。
作者在后文中提出这一问题可以被一些方法例如训练时对更低IOU的bounding box进行采样而“partially solved”。
作者给出了不同NMS和在不同IOU阈值下的recall曲线。raw-detected bounding box由不带有NMS的ResNet50-FPN生成(浅蓝色线条)。可以看到,随着对定位准确率的需求的增加(结合图片即IOU阈值的增加),IOU-guided NMS和其他NMS的表现差距也会变大。
bounding box refinement
作者归纳bounding box refinement可以被公式化地表现为寻找最优:
其中,是检测出的bounding box,是对应的ground truth bounding box,transform是以c为参数的bounding box的transform,crit是测量两个bounding box之间距离的标准。比如在Faster RCNN中,crit是大尺度坐标下的smooth L1距离等等。
随后作者又提出,基于区域的算法直接用前馈神经网络预估最优。然而,迭代bounding box回归方法易受输入分布变化的影响并且可能导致非线性的localization improvement。基于此,作者提出一个利用IOUNet作为鲁棒IOU预测器的基于优化的bounding box refinement方法。
核心思想是:对于检测到的bounding box,利用PrPool提取内部特征并算出IOUnet预测的IOU,记其梯度为grad。而这个IOU记为PrevScore,然后以公式更新bounding box。更新之后重新进行IOU预测结果为NewScore。如果prevscore和newscore相差小于一个early-stop阈值或者newscore比prevscore低于一个“定位退化容忍度”,则认为该bounding box更新完毕。
在作者实验中,取的,,,。
作者给出实验结果如下(应该是用了IOU-guided NMS和optimization-based bounding box refinement两者之后的结果):
至于PrPool,作者随后给出解释Precise RoI Pooling。
对于给出的特征图F上的任意离散位置(i,j)上的特征,使用双线性插值法,可认为在任意坐标下特征图连续:
公式乍一看有些复杂,实际上是考虑周围四个点的双线性插值法,对于更远的点不纳入计算范围。
通过以下公式进行pooling:
作者将PrRoIPooling与其他pooling比较,图例如下:
如图所示,RoI Pooling对框周围及内部所有点取平均。RoI Align对RoI划分为等大小的区域,对每个区域中心取周围四个点进行双线性插值计算平均值,而PrRoIPooling对框内所有位置做积分再求平均值,连续可微。
作者认为,PrRoIPooling重点在于连续性。
IOU预测器可以被整合到标准的FPN流水线中。如图所示,IOUNet采用ResNet-FPN作为主干,采用自顶向下的结构来建立特征金字塔。FPN从特征金字塔的不同层级根据他们的scale提取ROI的特征。而原来的ROI层被替换成了Precise RoI Pooling层。IOU预测器作为“network head”,基于由bankbone传来的相同的视觉特征与RCNN分支平行工作。
joint training
由在ImageNet上预训练的ResNet模型初始化权重,所有的新层由均值为0标准差为0.01或0.001的高斯分布初始化。作者使用smooth-L1 Loss训练IOU预测器,训练用数据如之前所说的方法得到,IOU labels经过归一化处理在[-1,1]之间分布。
对于输入图像resize到长轴不到1200px,短轴800px。分类和回归分支从RPN上每张图采集512个RoI。训练时batch size为16,网络迭代160k次,学习率0.01,在120k次迭代后降为0.001。对于前10k次迭代采用0.004的学习率作为“warm up”,采用作为weight decay,0.9作为momentum。
在前向传播过程中,首先对初始坐标进行bounding box回归。为了加速这一过程,首先对所有检测出的bounding box采用IOU-guided NMS。对处理之后的拥有最高cls conf的前100个bounding box进行optimization-based refinement。
给出总表:
速度如下: