Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive Convolution, NIPS, 2019
下载地址:https://arxiv.org/abs/1909.06720
a. 传统RPN启发式定义anchor(在特征图每个像素生成anchor,通过乘步长映射到原图)
b. 传统RPN未将anchor的特征对齐(类似于ROI Align解决的问题,池化或者卷积的时候不能整除,会有小数)
a. 使用骨干网络提取输入图片的特征
b. 在输入图片中随机产生anchors
c. 计算每层级联中anchor的偏移量
d. 将当前层级联输出的预测结果作为下一层的输入
e. 重复c和d直到完成级联
f. 计算目标的得分,使用NMS筛选得到最终的定位框,如下所示
提出目的:anchor-free metric(根据距离判断正负样本)在第二阶段中对正样本的要求过低,会导致误判;anchor-based metric(根据IOU判断正负样本)在第一阶段中无法产生足够的正样本,因为要求过于苛刻
y [ p ] = ∑ o ∈ O w [ o ] ∗ x [ p + o ] y[p] = \sum_{o \in O} w[o]*x[p + o] y[p]=o∈O∑w[o]∗x[p+o]
该过程类似卷积过程,y表示输出的特征图,p表示输出特征图中每个像素的位置(x, y),w表示权重,x表示输入特征图,O表示偏移域,计算方式如下
O = O c t r + O s h p O = O_{ctr} + O_{shp} O=Octr+Oshp
O c t r = ( a ‾ x − p x , a ‾ y − p y ) O_{ctr} = (\overline a_x - p_x, \overline a_y - p_y) Octr=(ax−px,ay−py)
O s h p ∈ { ( − a ‾ w 2 , − a ‾ h 2 ) , ( − a ‾ w 2 , 0 ) , … , ( 0 , a ‾ h 2 ) , ( a ‾ w 2 , a ‾ h 2 ) } O_{shp} \in \{(-\frac{\overline a_w}{2}, -\frac{\overline a_h}{2}), (-\frac{\overline a_w}{2}, 0), \dots , (0, \frac{\overline a_h}{2}), (\frac{\overline a_w}{2}, \frac{\overline a_h}{2}) \} Oshp∈{(−2aw,−2ah),(−2aw,0),…,(0,2ah),(2aw,2ah)}
a ‾ \overline a a表示anchor a在特征图上的映射向量,当出现小数时,使用线性插值补齐
具体过程见下图,蓝点表示卷积时对应的位置,浅色(不知道叫啥颜色好)表示原始位置
该算法分析了RPN中存在的问题,然后在级联RPN使用自适应卷积解决这些问题。不过我感觉他这里的级联和迭代RPN看起来区别不大,只是换了些里面的构件。