论文:Acquisition of Localization Confidence for Accurate Object Detection(ECCV 2018)
文章目录
针对问题
分类得分不能准确反映框的质量
目标检测算法一般都用NMS算法进行去重,主要依据是分类得分,但分类得分并不能很好地反映预测框的质量,得分高的框不一定比得分低的预测框更精准
如下图:绿色预测框IoU明显更高,但是分类得分低,最后保留下来的反而是红预测框
下图分别给出了IoU(预测框与目标框)与分类得分、回归得分间的关系图:
- (a)中分类得分并没有和IoU呈明显正相关关系
- (b)中回归得分与IoU有较为明显的正相关关系(作为依据)
下图给出了不同NMS算法的影响:
- IOU-guided NMS保留了更多IoU高的预测框,说明NMS算法去掉冗余框的同时,也容易过滤少部分高质量的预测框
回归目标框位置的缺陷
-
传统的思路是:预测框的中心点和宽高与目标框越接近,预测得就越准,但随着迭代的进行,框的准确度并没有一直上升,反而有一个先上升后下降的过程,如下图的上部分所示
-
基于IOU回归:既然IoU可以反映一个框的准确性,那么当然可以用IoU来作为一个指标对预测进行监督,其效果如下图下半部分,随着迭代的进行,预测的框是越来越准确的
改进
IOU-guided NMS
核心:在网络中嵌入 IOU 预测支路(训练标签为目标框和预测框的 IoU ),将预测 IoU 作为 NMS 排序依据,因此预测框有两个得分:预测 IoU 得分和分类得分
修改更新策略:当要剔除一个预测框时,会计算被剔除框的分类得分和之前的计算的最高分类得分的最高值,保留最高分类得分,作为最大预测IoU得分对应的预测框的分类得分
optimization-based bbox refinement
替换传统的regression-based方法,提高了回归部分的可解释性
Precise ROI Pooling(PrROI Pooling)
-
ROI pooling:两次量化操作,一次在Pooling之前,RPN预测经过量化得到候选区(整数坐标);一次是 pooling 过程中将候选区划分为 k × k k\times k k×k个 bins
-
ROI Align:ROI Align 则直接采用浮点坐标计算,在每个bin中均匀取4个点(下图红色点),采用双线性插值法估计该处特征值,最后对四个点求平均作为该bin pooling之后的结果
-
PrROI Pooling:ROI Align仅考虑每个bin中的4个插值点,PrROI Pooling 则将 bin 看作是连续的区域,对其进行积分,然后除以其面积得到该bin的pooling结果,浮点坐标处采用双线性插值 【 10 】 ^{【10】} 【10】。通过积分方式计算ROI特征使得前向计算的误差进一步降低,同时反向传播时基于连续输入值计算梯度使得反向传播连续可导(对bin区域内的数值进行求和,然后除以bin的面积)
IOU-Net
在pooling操作之后另起一条支路预测IoU,类似mask rcnn,这一部分的训练是单独的,通过随机去通过gt构建偏移的框,去训练学习iou,然后再去训练cls 和 reg
实验
参考文献
【1】论文笔记:(IOU-Net) Acquisition of Localization Confidence for Accurate Object Detection
【2】IOU-Net 算法笔记
【3】ROI Align 计算实例
【4】图像处理之双线性插值法
【5】详解 ROI Align 的基本原理和实现细节
【6】Mask R-CNN(论文)
【7】Precise RoI Pooling(PrRoI Pooling)笔记
【8】[论文理解] Acquisition of Localization Confidence for Accurate Object Detection
【9】IoU-Net(Pytorch)
【10】双线性插值
【11】vacancy/PreciseRoIPooling