论文: Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
论文认为,目前的目标检测算法可以按预设框的多少分为两种:
上述两种方法都会预测大量的结果,需要进行NMS后处理,而在训练的时候会存在many-to-one的问题,并且anchor的设置对性能的影响很大。 于是,很多研究开始探讨稀疏(sparse)检测,比如近期的DETR算法。该算法不需要预设anchor,并且预测的结果可直接输出,不需要后处理。但论文认为DETR并不是真正的稀疏检测,因为DETR在各位置提取特征时,需要与全图的上下文进行交互,而真正的稀疏检测应该满足sparse boxes和sparse features,即较少的初始框设定以及框之间不需要过多的特征互动。 为此,论文提出了Sparse R-CNN,如图1c所示,仅需设定少量anchor即可进行检测,而且能够进行set prediction,免去NMS等后处理,其核心主要包含以下几点:
Sparse R-CNN的推理流程如图3所示,输入图片、可学习的proposal boxes以及可学习的proposal features,根据proposal boxes提取对应的RoIAlign特征,dynamic head将proposal features转换为卷积核参数,对RoIAlign特征进一步提取特征,再进行后续的分类和回归。整体的思想和Fast RCNN很像,将selective search替换为proposal boxes,再增加其它更强的模块。
论文采用FPN-ResNet作为主干网络,输出多层特征,每层特征的维度都是256。采用更复杂的主干网络可以获得更好的性能,但论文与Faster R-CNN对齐,采用标准的实现。
Sparse R-CNN的核心是采用数目固定的小批量可学习proposal boxes( )作为region proposal,而非RPN。每个box为4-d参数,在0~1范围内,值为归一化的中心点坐标、宽度和高度。这些参数在训练过程中通过反向传播进行更新,包含了训练集目标位置的统计信息,可用于推理时的初步目标位置猜测。
尽管4维的proposal box能够直观地表示目标的定位,但缺少了目标的信息,比如目标的姿态和形状,所以论文引入proposal feature( )进行补充。proposal features是高维的可学习向量,与proposal boxes一一对应,用于丰富目标的RoIAlign特征。
Dynamic instance interactive head的结构如图4所示,每个proposal box都有一个专属的预测head。给定 个proposal boxes和 个proposal features,先通过RoIAlign提取每个box的 维特征,Dynamic instance interactive head将其对应的 维proposal feature转换为卷积参数,使用这个卷积参数对RoIAlign特征进行提取,得到目标的 维特征,最后经过简单的3层感知机进行分类与回归。 Dynamic instance interactive head也可以使用类似Cascade R-CNN那样的级联模式进一步的提升性能,将输出的新回归框和 维特征作为下一次迭代的proposal box和proposal feature即可。
Sparse R-CNN的训练采用set prediction的形式,将固定数量的预测结果与GT之间进行二分图最优的匹配,然后计算损失值,完整的损失函数为:
各模块对比实验。
性能与收敛性。
在COCO上进行对比。
Sparse R-CNN贯彻了稀疏的思想,只提供少量初始框,可进行Set prediction,颠覆了当前密集预测的检测思路,整体框架十分简洁,跟Fast RCNN有点像,十分值得大家阅读。