会议:CVPR 2021
论文:https://arxiv.org/pdf/2012.03544.pdf
代码:https://github.com/Megvii-BaseDetection/DeFCN
创新点:
- 基于FCOS,首次在dense prediction上利用全卷积结构做到E2E,即无NMS后处理。
- 提出了POTO,实现了one-to-one的label assignment。
- 提出了3D Max Filtering以增强feature在local区域的表征能力,并提出用one-to-many auxiliary loss加速收敛。
Abstract
最近,DETR引入了一种基于二分图匹配的训练策略,并将transformer与并行解码器结合起来,实现了end2end的检测。它实现了与许多最先进的探测器相比具有竞争力的性能。然而,目前DETR的训练时间较长,在小目标上的性能相对较低。为此,本文探索了一个新的视角:FCN能否实现端到端目标检测?
作者从两个角度来解决这个问题:label assignment & 网络结构。
大多数基于全卷积的detector都采用了one-to-many的label assignment,也就是对一个目标生成多个预测,这样做可以提供足够的前景样本,以获得强而健壮的特征表示。然而大量的前景样本会导致单个实例的预测框重复,后续还要进行去重(many-to-one),从而妨碍end2end的检测。所以作者设计了一个prediction-aware one-to-one (POTO) label assignment,同时根据分类质量和回归质量动态分配前景样本。
基于FPN的detector,重复的框往往产生于——置信度最高的区域附近,因此作者设计了一个3D Max Filtering(3DMF),它是一个可以嵌入到FPN中的非线性滤波器。它在相邻尺度上使用一个简单的3D-max滤波算子,提高了卷积在局部区域的可分辨性。此外,为了对特征表示学习提供足够的监督,作者修改了one-to-many的assignment作为一部分loss。
效果:采用了FCOS和ResNeXt-101的框架,在COCO上比NMS检测器提高了1.1%的mAP;此外,该模型在拥挤场景中同样表现不错,在Crowd Human数据集上,使用ResNet-50,比FCOS with NMS提高了3%的AP 50 _{50} 50和6%的mMR。
One-to-many vs. one-to-one
从RPN、SSD、RetinaNet等开始,大家一直遵循着这样一个流程:先对每个目标生成多个预测(one-to-many),再将多个预测去重(many-to-one)。所以,如果不对前一步label assignment动刀,就必须要保留去重的环节,即便去重的方法不是NMS,也会是NMS的替代物。
Prediction-aware One-to-one Label Assignment
令 Ψ \Psi Ψ表示所有预测的索引集。 G G G和 N N N分别对应ground-truth实例和预测的数量,在密集预测中,通常有 G ≪ N G \ll N G≪N。 π ^ ∈ ∏ G N \hat{\pi} \in \prod_G^N π^∈∏GN表示 N N N个预测的 G G G个排列。POTO旨在生成预测的合适排列 π ^ \hat{\pi} π^作为前景样本。训练损失如式(1),其包含前景损失 L f g \mathcal{L}_{fg} Lfg和背景损失 L b g \mathcal{L}_{bg} Lbg:
L = ∑ i G L f g ( p ^ π ^ ( i ) , b ^ π ^ ( i ) ∣ c i , b i ) + ∑ j ∈ Ψ / R ( π ^ ) L b g ( p ^ j ) , (1) \mathcal{L} = \sum_{i}^G \mathcal{L}_{fg}(\hat{p}_{\hat{\pi}(i)}, \hat{b}_{\hat{\pi}(i)}|c_i,b_i) + \sum_{j \in \Psi / \mathcal{R}(\hat{\pi})}\mathcal{L}_{bg}(\hat{p}_j),\tag{1} L=i∑GLfg(p^π^(i),b^π^(i)∣ci,bi)+j∈Ψ/R(π^)∑Lbg(p^j),(1)
其中 R ( π ^ ) \mathcal{R}(\hat{\pi}) R(π^)表示已分配的前景样本的相应索引集。对于第 i i i个ground-truth, c i c_i ci和 b i b_i bi分别为类标签和边界框坐标。同时,对于第 π ^ ( i ) \hat{\pi}(i) π^(i)个预测, p ^ π ^ ( i ) \hat{p}_{\hat{\pi}(i)} p^π^(i)和 b ^ π ^ ( i ) \hat{b}_{\hat{\pi}(i)} b^π^(i)分别对应其预测分类得分和预测边界框坐标。
为了end2end,需要找出合适的标签分配 π ^ \hat{\pi} π^。如式(2),以前的工作通过使用前景损失作为匹配成本将其视为二分匹配问题,可以通过匈牙利算法快速解决:
π ^ = arg min π ∈ ∏ G N ∑ i G L f g ( p ^ π ^ ( i ) , b ^ π ^ ( i ) ∣ c i , b i ) . (2) \hat{\pi} = \arg\min_{\pi \in \prod_G^N}\sum_i^G\mathcal{L}_{fg}(\hat{p}_{\hat{\pi}(i)}, \hat{b}_{\hat{\pi}(i)}|c_i,b_i).\tag{2} π^=argπ∈∏GNmini∑GLfg(p^π^(i),b^π^(i)∣ci,bi).(2)
然而,前景损失通常需要额外的权重来缓解优化问题,例如不平衡的训练样本和多任务联合训练。如表1所示,这种特性使训练损失不是匹配成本的最优成本。因此,如式(2)和式(4),我们提出一种更干净而有效的方式(POTO)来寻找更好的分配:
π ^ = arg max π ∈ ∏ G N ∑ i G Q i , π ( i ) , (3) \hat{\pi} = \arg\max_{\pi \in \prod_G^N} \sum_i^G Q_{i,\pi(i)},\tag{3} π^=argπ∈∏GNmaxi∑GQi,π(i),(3)
其中
看起来稍微有点复杂,但其实就是用网络输出的prob代表分类,网络输出和gt的IoU代表回归,做了加权几何平均,再加一个类似于inside gt box的空间先验。
这里,KaTeX parse error: Undefined control sequence: \Q at position 1: \̲Q̲_{i,\pi(i)}\in …表示第 i i i个ground-truth与第 π ( i ) \pi(i) π(i)个预测的所提出的匹配质量。它同时考虑空间先验、分类置信度和回归质量。 Ω i \Omega_i Ωi表示第 i i i个ground-truth的候选预测集,即空间先验(spatial prior)。训练阶段广泛使用空间先验。例如,FCOS采用中心采样策略,其仅ground-truth实例中央部分的预测作为前景样本。我们也在POTO中使用它以获得更高的性能,但是它不是丢弃NMS的必需的。为了获得平衡,我们通过式(4)中的分类得分 p ^ ( π ( i ) ) ( c i ) \hat{p}_{(\pi(i))}(c_i) p^(π(i))(ci)和回归质量KaTeX parse error: Undefined control sequence: \mbox at position 1: \̲m̲b̲o̲x̲{IoU}(b_i, \hat…的加权几何平均。超参数 α ∈ [ 0 , 1 ] \alpha \in [0,1] α∈[0,1]调整分类和回归之间的比例,其中默认使用 α = 0.8 \alpha = 0.8 α=0.8。POTO不仅弥补NMS的差距,还提高性能。
POTO提升了无NMS下的性能,但仍不能匹敌one-to-many+NMS,作者认为问题在于:
- one-to-one需要网络输出的feature非常sharp,这对CNN提出了较严苛的要求(这也是Transformer的优势);
- one-to-many带来了更强的监督和更快的收敛速度。
所以提出了3D Max Filtering和one-to-many auxiliary loss来缓解如上问题。
3D Max Filtering
卷积是具有平移不变性的线性运算,可在不同位置为相似模式产生相似输出。然而,这种特性对于去重来说是很大的障碍,尤其是密集检测。
作者通过实验发现重复的预测主要来自最置信预测的相邻空间区域,基本是5×5领域内,所以嵌入了一个最常见的非线性滤波器max pooling。
如上图,作者将max filter扩展到了多尺度,也就是在FPN的每个尺度都进行特征的变换,3D Max Pooling分别作用于feature map的每个通道(每个尺度、每个location)。其中GN是做了一个group normalization, σ \sigma σ是sigmoid激活。
在局部区域中,这种模块利用max filtering来选择具有最高激活值的预测,并可以提高与其他预测的区别,来精炼粗糙的密集预测,并抑制重复预测。此外,计算开销也比较小。
Auxiliary Loss
实验表明,POTO+3DMF仍然不能匹敌FCOS with NMS,原因在于one-to-one的label assignment监督较弱,网络难以学习到强壮且鲁棒性强的特征。所以作者对loss函数进行了改进,加入了one-to-many的loss来提供更强的监督。
具体地,根据公式(4)中的quality,one-to-many label assignment分配选择前9个预测作为每个FPN阶段的候选。然后,把质量超过阈值的样本作为前景样本,阈值是通过所有候选匹配质量的均值和标准差之和计算的。