(IOU-Net)《Acquisition of Localization Confidence for Accurate Object Detection》论文笔记


论文链接:https://arxiv.org/abs/1711.07767
论文代码:https://github.com/ruinmessi/RFBNet

  目标检测框架中目前主要依靠边界框回归和非极大值抑制来定位对象,并且非极大值抑制算法去除重复框的依据是候选框的分类置信度,在这个过程中缺少了一个边框筛选的重要参考——定位置信度。因此这篇文章提出IOU-Net,IOU-Net具有以下优点:

  • 通过在网络中加入定位置信度,在NMS算法中用定位置信度代替分类置信度作为去重复框的参考
  • 提出了一种基于优化的边界框修正算法

绪论

  作者先根据实验定性的分析了仅用分类置信度评估检测框是否准确不太合适,缺少分类置信度回带来两个缺点

  1. 分类置信度被用作对检测框排序的度量标准,并且在NMS算法中忽略了定位的精度
  2. 缺少定位置信度,使得广泛使用BBox回归缺少可解释性,这点在《cascade r-cnn》中也有提到多次使用BBox回归可能导致检测框的局部退化。

enter description here

  上图中,黄色框表示gt,绿色和红色都是是模型预测得到的检测框。如图(a)所示,绿色检测框与红色检测框相比更适合作为最终的预测结果,绿色框与gt的IOU(交并比)更高,定位置信度也更高,但分类置信度却低于红色的检测框,在以往NMS算法中以分类作为检测框排序标准,会保留红色的框,而滤去绿色的,这显然是不够合理的。图(b)比较的是基于优化的边界框修正比基于回归的边界框修正有更好的效果(多次应用基于回归的边界框修正,会导致检测框退化)
基于上图中目前目标检测框架的不足,作者IOU-Net所做的两点改进:

  1. 通过在目标检测框架中引入定位置信度。在NMS算法中,预测检测框与gt之间IOU的顺序,代替原来的以分类置信度排序
  2. 提出了一种基于优化的边界框修正算法

  IOU-Net中的IOU指的就是网络预测到的检测框与gt之间的IOU

深入研究目标定位

  作者在绪论中提到了所作的两点改进,绪论中定性的用图表表明了缺少定位置信度带来的缺点,接下来分别做了几个实验定量的验证所提出方法的有效性。以下实验所采用的训练集是MS-COCO trainval35k,测试集用minival,检测框架用FPN网络。

类别不匹配和定位精度

  作者先简单介绍了NMS算法的原理,及关于这方面的研究进展。随后指出NMS算法中,以分类置信度作为检测框的度量标准不太合理。

enter description here

  如上图所示,(a)横轴是预测的检测框与gt之间的IOU,纵轴是分类置信度。(b)横轴同样是预测的检测框与gt之间的IOU,纵轴是定位置信度。若以检测框与gt之间的IOU大于0.5作为是否检测到的阈值,作者计算了两张图横纵轴的Pearson correlation(皮尔森相关系数[wiki百科]),结论是(a)的相关的相关系数为0.217,而(b)的相关性为0.617。
  作者也总结了分类置信度与定位是否准确关系不大的原因:目标检测框架中分类和定位的相关性不强的原因在于正样本和负样本的选取方式,例如获取正样本只用其与gt之间的IOU大于指定阈值即可。关于正样本的生成方式,之前我也想过为什么这样生成,如此的生成方式一定程度上会带来定位不准确的问题。但是相比较于完全使用标注的gt这种方式具有以下的优点:

  • 可以生成多个比例的候选框,覆盖样本的不同尺度,正样本会更好的回归
  • 样本均衡一直是目标检测算法的一个难题,这种方式一定程度上可以生成更多的正样本

  很明显正样本的选取方式带来的好处远大于其缺点,作者也表明,定位不准主要是缺少定位置信度的原因

enter description here

  传统NMS算法中由于用分类置信度作为MNS算法中检测框的度量标准,会导致与gt有更大IOU的检测框被抑制。如上图所示,蓝色代表传统的NMS算法;黄色表示以定位置信度作为度量标注的NMS算法;绿色表示不用NMS时,理论能生成的最多检测框数量。可以看到,在传统的NMS算法中由于缺少定位置信度,保留的检测框中与gt的IOU在0.9以上的会被抑制。

BBox回归的非单调性

  faster rcnn中使用了两次边界框回归,以达到位置精修的目的。但位置精修的次数是不是越多越好,《cascade r-cnn》中也提到了这样的疑惑,作者做了个实验。

enter description here

  上图中,横轴代表边界框回归结构的迭代次数,纵轴代表检测精度。从上图可以看到,无论是FPN网络还是Cascade R-CNN网络,在多次使用边界框回归之后,都会出现退化现象。作者解释出现这种情况的是由于缺少定位置信度,对模型不能进行细粒度(fine-grained)的控制,例如对不同的检测框采用不同的迭代次数

IOU-Net

  为了定量分析IOU-Net的有效性,接下来作者给出了IOU-Net的框架和NMS算法中怎样用IOU进行预测以及基于回归的边界框精修算法。

IOU-Net架构

enter description here

  如上图所示,IOU-Net框架中提特征的网络部分与FPN网络一致,并估计每个边界框的定位精度(IOU),通过数据扩充生成用于训练IOU-Net的边框和标签,而不是接受来自RPN的建议(说实话这里有点奇怪,RPN网络作用之一是用来位置精修的,不用之前RPN网络中的建议,这个没太理解作者的意思)。细节实施上,作者表明在生成正样本时,从候选集中移除与gt的IOU小于0.5的样本,然后对所有样本统一采样训练,据作者所说这样可以获得更好的性能和鲁棒性

使用IOU度量的NMS

  这里作者主要介绍了在NMS去除重复框时,如何使用IOU作为度量标准。伪代码如下所示:

enter description here

  特点是采用了基于聚类的规则来更新分类置信度。具体实施过程是当boxi将boxj移除了,会更新boxi的分类置信度为max(si,sj)

将边界框精修作为一个优化过程

  边界框精修的数学公式定义如下:

enter description here

  其中 $box_{det}$是检测到的边界框,$box_{gt}$是实际的边界框.trainsform是用参数c对边界框变换的转换函数。$crit$是两个边界框的度量标准(这个标准在faster rcnn中是smooth-L1)

  基于回归的算法用前馈神经网络直接估计最优解c* 。 然而,迭代边界框回归方法易受输入分布变化的影响,并可能导致非单调的回归退化,如图4所示。为了解决这些问题,作者提出一种基于优化的边界框精修方法。 利用IoU-Net作为鲁棒定位精度(IoU)估计器的方法。 此外,IoU估计器可以用作早期停止条件,以通过自适应步骤实现迭代精修。

  IoU-Net直接估算IoU。 虽然所提出的精确RoI池化层能够计算关于边界框坐标的IoU的梯度,我们可以直接使用梯度上升方法找到方程1的最优解。在算法2中,将IoU的估计视为优化目标,我们迭代地使用计算的梯度更新边界框坐标和最大化检测到的边界框与其匹配的真值之间的IoU。 此外,预测的IoU是每个边界框上的定位置信度的可解释指示符,并且有助于解释所做的转换。

enter description here

  关于算法2中的初始坐标,初始化采用了一次边界框回归。

precise ROI Pooling

  为了细粒度的修正边界框,作者引入了一种新的ROI Pooling方法,以代替之前的ROI Pooling和ROI Align。关于ROI Pooling到PrROI Pooling我会专门写一篇博文比较其区别,这里就先简单介绍下。

enter description here
  如上图,绿色的点代表特征图(feature map)的值,虚线代表目标在映射在特征图中实际的位置。
RoI Pooling:ROI Pooling的弊病,在于其在特征图中的边界框只能取整数,因此会从虚线取整到实线,映射回原图时,会带来误差。
ROI Align:为了避免ROI pooling中取整带来的误差。ROI Align中会保持浮点数边界不变,将特征图中的值用双线性插值,由绿色的点映射到图中的4个红点。然后再做池化
PrRoI Pooling: 如果付出浮点数边界内固定的点来做池化,这样对于目标实际的映射大小不具有适应性。PrRoI Pooling则使用二阶积分来做池化

实验

  针对作者提到的几个方法,分别做了几组实验。

  • 下面的表1总结了在不同检测框架中,使用不同NMS算法性能上的变化。可以看到IOU指导的NMS算法,在高IOU指标上性能会优于其他算法

enter description here

  • 基于优化的边界框精修

enter description here

  • 耗时实验:耗时还在可以接受的范围

enter description here

欢迎关注我的公众号

enter description here

-------------本文结束感谢您的阅读-------------