摘要
过去的目标检测都严重依赖设置密集的目标候选框(如Faster R-CNN),比如对特征图(HW)每个像素设置k个anchor boxes,这样就会有成千上万个acnhors(HW*k),这样过于低效。因此作者提出一种稀疏的anchor设置方法,设置N个可学习的object proposals,用于检测头的分类和位置检测。Sparse RCNN避免了人工设置候选框的大量超参数以及多对一的正负样本分配。更重要的是,最终的预测结果可以直接输出而不需要NMS(非极大抑制)。 论文地址:Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
方法
网络结构
图1
输入包括一个图像、一组建议框和建议功能,其中后两个是可学习的参数。主干提取特征图,将每个建议框和建议特征输入到其唯一的动态头部,生成目标特征,最后输出分类和定位。 网络公式: image + proposal boxes – (融合) --> ROIs RoIs + proposal features – (融合) --(全连接层)–> predictions
骨干网络Backbone
使用基于ResNet的FPN网络。
可学习的建议框 learnable proposal box
使用一种固定的可学习的建议框
(
N
×
4
)
(N\times4)
(N×4) 提供区域建议,替代RPN网络。 由0到1的四维参数表示,表示标准化的中心坐标
(
x
,
y
)
(x,y)
(x,y)、高度和宽度,使用反向传播算法进行更新。 是训练集中潜在对象位置的统计信息,可以看作是,除开输入的内容的影响,对图像中最可能包含对象的区域的初始猜测。
可学习的建议特征learnable proposal feature
建议框只提供了对对象的粗略定位,并丢失了许多细节的信息,如对象姿势和形状。因此引入建议特征
(
N
×
d
)
(N\times d)
(N×d) ,是一个高维向量(如256),对实例特征进行编码。 数量和建议框相同。
动态实例交互头Dynamic instance interactive head
给定N个提议框,稀疏R-CNN首先利用RoI Align操作为每个框提取特征。然后,每个框特征将用于使用预测头,生成最终预测。
图2 过滤器因不同实例而异,即,第k个建议特征为相应的第k个RoI生成动态参数。
每个RoI特征输入到自己专用的头部,用于对象定位和分类,每个头部以特定的建议特征作为条件。 建议特征和建议框是一一对应的,n个建议框有n个建议特征。 每个RoI特征
f
i
(
S
×
C
×
C
)
f_i(S\times C\times C)
fi?(S×C×C)与相应的建议特征
p
i
(
C
)
p_i( C)
pi?(C)交互,过滤无效的建议框,并输出最终的对象特征
(
C
)
( C)
(C)。
实验
主要结果
两个版本的稀疏R-CNN:
- 采用100个可学习的建议框,无需随机裁剪数据扩充,并用于与主流对象检测器进行比较,例如faster R-CNN和RetinaNet。
- 利用300个可学习的建议框,随机增加作物数据,并用于与DETR系列模型进行比较。
可以看出稀疏R-CNN有很大的优势。
对模块的分析
在faster R-CNN中将FPN替换成稀疏的可学习建议框,性能下降。 迭代架构:由于一个提议框的目标对象通常是一致的。因此,可以重用前一阶段中的对象特征,为下一阶段提供对象特征编码丰富的信息,如对象姿势和位置。在原有级联架构的基础上,这一特性重用的微小变化导致了11.7AP的巨大收益。最后,迭代架构带来了13.7AP的改进。 动态结构:使用自注意力模块进行处理,作为建议特征来实现当前阶段的实例交互,用于推理对象之间的关系,提高了精度性能。
建议框的初始化: 建议的数量: 迭代体系结构中的阶段数: 动态头部和多头注意力:
建议特征和对象查询:
可视化结果
图3 可视化迭代体系结构中每个阶段的预测框,包括学习到的建议框。显示分类得分高于0.2的方框
|