文章目录
文章基本信息
来源:CVPR2018
方向:目标检测
论文地址:https://arxiv.org/abs/1807.11590
代码地址:https://github.com/vacancy/PreciseRoIPooling(仅为PrROI pooling)
存在的问题
核心问题: 由于常用的目标检测框架被分为定位和分类两个任务,定位通常通过回归来实现,而分类则比较简单,这其中对于定位的效果的评定其实出现了缺失,引起了许多问题。
1. 简单的采用分类的结果来做NMS是不合理的:
黄色为GT,绿色框拥有更好的定位信息但是却被抑制——从图上可以看到分类的结果用于后处理反而使一部分拥有很好效果的bounding box被抑制。
2. 定位置信度缺失导致回归过程出现问题
主要体现在回归的迭代过程中性能不稳定/下降(Cascade指出回归过程中迭代是非单调的)的问题:
解决的方法
- 提出IoU-Net 与 IoU-guided NMS,解决由于缺失定位置信度带来的问题;
- 提出c改进传统回归优化过程,并将IoU作为优化过程中的目标;提出Precise RoI Pooling,这种ROI pooling支持gradient ascent,支撑optimization-based bounding box refinement的实现。
详细解决方案
1. predict iOU
IOU net整体架构如下: 基本是在原来的检测框架上多增加了一个预测 IOU 的任务,任务整体处理方式与原来的检测分支中的分类与回归的方法一样,都是经过两层全连接层后输出结果。为了效果,论文中采用了class-aware IoU 预测。
需要注意的是这里的IoU-predict 分支是单独训练的!!!
对IOU预测分支的训练与其他并行任务的训练不同,这里训练并未采用RPN预测出来的proposals,而是之间通过对GT进行手动的变换生成一个训练集从而完成训练。具体流程如下:
a. 对训练集的GT使用随机的参数进行手动变换,产生一组候选的BB;
b. 去除与相应的GT的IOU低于0.5的候选的BB;
c. 我们根据IoU从这个候选集合中统一采样训练数据。
2. IoU-guided NMS
普通的NMS与soft-NMS:
修改后的NMS:
可以看到的除了将NMS的classfication score 替换为 IoU score,IoU-NMS 的之处所示的部分,可以IoU-score 修正classification .
3. Bouding box refinemetnt(待补充)
a.Precise RoI Pooling.
特点: 没有量化,连续的梯度
b. Bouding box refinemetnt
论文效果
由此结果可以看出来,IoU-NMS 对于高的IOU阈值影响较大,另外作用在cascade上效果不明显,应该是cascade 结构上已经一定程度的弥补了论文中提到的问题。
召回率曲线依旧反映我们上述说明IoU-NMS对高的阈值影响更大。
optimization-based bounding box refinement带来的增益更大,说明这种优化方式对原来的单纯的回归的方式的改进巨大,也反映了对bounding box单纯回归依然具有很大的改进空间与余地。
最终结果:
速度:
总结与思考(个人理解,欢迎交流)
传统的检测已经发展的很好了,但是框架中针对分类与定位两个子任务的处理还是存在相应的问题,针对这个方向的论文已经出现了一些,但是依然没有解决痛点,本文从IoU的角度进行处理,算是平衡两个子问题的一种方式?但是个人认为如何解决两个子问题之间的耦合才是解决的痛点。或许anchor free 已经在尝试解决这个问题了,但是anchor free 和 现有的方法在此处的工作应该还要解决很多。