作者单位:香港大学、同济大学、字节跳动、加州伯克利分校
Paper: https://arxiv.org/abs/2011.12450
Code: https://github.com/PeizeSun/SparseR-CNN
背景
目标检测是指同时定位图像中各个目标及识别出其具体类别。当前目标检测领域主流的方法主要有两大类:
第一大类是从非Deep时代就被广泛应用的dense detector,例如DPM、YOLO、RetinaNet、FCOS。在dense detector中,大量的object candidates例如sliding-windows、anchor-boxes、 reference-points等被人为手动预设在图像网格或者特征图网格上,然后直接预测这些candidates到ground truth的scaling/offest和物体类别。
第二大类是dense-to-sparse detector,例如R-CNN家族。这类方法的特点是对一组sparse的candidates预测回归和分类,而这组sparse的candidates来自于dense detector。
这两类框架推动了整个领域的学术研究和工业应用。目标检测领域看似已经饱和,然而dense属性的一些固有局限总让人难以满意:
- NMS 后处理
- many-to-one 正负样本分配
- Prior candidates 的设计
所以,一个很自然的思考方向就是:能不能设计一种彻底的sparse框架?最近,DETR给出了一种sparse的设计方案。 candidates是一组sparse的learnable object queries,正负样本分配是one-to-one的optimal bipartite matching,无需nms直接输出最终的检测结果。然而,DETR中每个object query都和全局的特征图做attention交互,这本质上也是dense的。而作者认为,sparse的检测框架应该体现在两个方面:sparse candidates和sparse feature interaction;基于此,本文提出了Sparse R-CNN。
Sparse R-CNN抛弃了anchor boxes或者reference point等dense概念,直接从a sparse set of learnable proposals出发,没有NMS后处理,整个网络异常干净和简洁,可以看作是一个全新的检测范式。
方法
Sparse R-CNN的proposal boxes是一组可学习的参数,N*4,N代表object candidates的个数,4代表物体框的四个边界。这组参数和整个网络中的其他参数一起被训练优化。这组学习到的proposal boxes可以理解为图像中可能出现物体的位置的统计值,这样coarse的表征提取出来的RoI feature显然不足以精确定位和分类物体。于是,一种特征层面的candidates被引入,称为proposal features,这也是一组可学习的参数,N*d,N代表object candidates的个数,与proposal boxes一一对应,d代表feature的维度,一般为256。这组proposal features与proposal boxes提取出来的RoI feature做一对一的交互,从而使得RoI feature的特征更有利于定位和分类物体。
Sparse R-CNN的两个显著特点就是sparse object candidates和sparse feature interaction,既没有dense的成千上万的candidates,也没有dense的global feature interaction。Sparse R-CNN可以看作是目标检测框架从dense到dense-to-sparse到sparse的一个方向拓展。
性能
与主流目标检测器性能比较:速度和精度都是comparable的
与主流目标检测器收敛速度比较:收敛速度是comparable的
可视化:可以同时检测稀疏和密集场景
总结
R-CNN/Fast R-CNN出现后的一段时期内,目标检测领域的一个重要研究方向是提出更高效的region proposal generator。Faster R-CNN作为其中的佼佼者展现出广泛而持续的影响力。Sparse R-CNN首次展示了简单的一组可学习的参数作为proposal boxes即可达到comparable的性能。作者希望Sparse R-CNN能够带给大家一些关于end-to-end object detection的启发。