目录
论文:Single-Shot Refinement Neural Network for Object Detection
来源:IEEE 2018
1. Motivation
- 融合two-stage detector准确度高和one-stage detector速度快的优点,设计出了一个新的one-stage detector:RefineDet。RefineDet既有和two-stage detector相媲美的准确度,又具有one-stage detector的检测速度(
RefineDet achieves state-of-the-art detection accuracy with high efficiency
)。
2. RefineDet
2.1 overview
RefineDet包含以下两个有内部联系(inter-connected)的模块:
- Anchor Refinement Module(ARM):(1)粗分类:过滤negative anchor,减小需要head进行分类的样本数量;(2)粗定位:对anchor的位置和形状进行调整,使后续head的回归器更易实现更高精度的定位。
- Object Detection Module(ODM):对ARM得到的anchor再次进行多分类和回归。
- Transfer Connection Block(TCB):将ARM的特征转换成ODM的特征。
RefineDet是以SSD作为baseline的,都是在多尺度特征图的每个位置上设置了多个不同大小不同宽高比的anchor,ARM用来对这些anchor进行二分类和回归(ARM的作用相当于RPN),并将分类和回归后的anchor逐一设置在相对应的转换后的特征图(TCB输出结果)上,再使用ODM模块进行多分类和回归(ODM的作用相当于SSD)。损失函数ARM的损失(二分类损失和定位损失)+ODM的损失(多分类损失+定位损失)
2.2 Anchor Refinement Module(ARM)
- ARM的目的之一就是要过滤well-classified negative anchors,减小样本不平衡。过滤方法是:anchor属于背景类的置信度大于某一阈值(如,0.99)就将其过滤掉。这样,只保留refined hard negative anchor boxes and refined positive anchor boxes,用于ODM的训练。测试时采用相同的做法。
- ARM中anchor的设置:
ARM以VGG-16或ResNet-101为backbone,选取总下采样率分别为8、16、32、64的特征图来设置anchor,不同特征图只设置一种特定的scale的anchor(与FPN相同),其scale分别为32、64、128、256。 - ARM中anchor的label assignment:
与Faster R-CNN中一样:先保证每个gt都有一个anchor负责预测它(最大IoU),再补充一些IoU大于一定阈值的anchor。
2.3 Transfer Connection Block(TCB)
- 这种结构像FPN那样对相邻不同层级的特征进行融合,区别在于高层特征上采样至与低层特征相同分辨率的方式不同:FPN采样最近邻方式,如双线性插值,而TCB采用反卷积(deconvolution,也称转置卷积)
2.4 Object Detection Module(ODM)
ODM的作用相当于SSD,但两者的anchor是不同的:
- SSD的anchor是密集均匀设置的,不同位置之间的anchor的数量和形状是一样的;
- ODM的anchor是由ARM得到的refined anchor,其在特征图上的位置是稀疏且任意的,不同位置之间的anchor的数量和形状也是不定的(这种不确定性指的是需要在得到ARM的输出后才确定)。
3. 实验
(1)验证几种方法的有效性
(2)在VOC数据集上的结果
注:RefineDet320+:采用multi-scale testing。
- 在速度-准确率平衡上做得更好,但并未实现速度和准确度在one-stage中同时获得最佳(RefineDet实际上是two-stage的,还是比较耗时)。
(3)在COCO数据集上的结果
4. 优点
- 借鉴two-stage detector的粗分类和粗回归,过滤掉negative anchor,减小需要head进行分类的样本数量,并对anchor的位置和形状进行调整,使后续head的回归器更易实现更高精度的定位。
- 使用两阶段级联的边界框回归方法,使定位更准确。