【目标检测】|End-to-End Object Detection with Fully Convolutional Network

引言

主流目标检测算法dense predict需要人工设计的NMS后处理,使之不能成为完全的端到端算法。

本文通过分析发现one-to-many(指GT和多个Prediction)的label assignment是导致模型依赖NMS的关键。

适当的标签分配策略即one-to-one对于模型抛弃NMS起着决定性的作用。
但是,手工设计的一对一分配仍会存在缺点。固定的分配可能会引起歧义问题并降低特征的可辨性,因为实例的预定义区域可能并不是用于训练的最佳选择。因此作者引入了一种叫做感知预测“一对一”(POTO)的标签分配策略以进行分类实现端到端检测,获得与NMS相当的性能。

此外,作者还提出了一种简单的3D Max 滤波(3DMF)以利用多尺度特征并提高局部区域卷积的可辨性。借助这些技术,作者的端到端框架可与许多sota检测器相媲美。

简介

当前多数的主流检测器都使用了一些手工设计的操作,如基于anchor的标签分配和非极大值抑制。最近,一些方法开始通过使用距离感知和基于分布的标签分配来消除预定义的anchor框集。
尽管它们取得了显著进步,但去掉手工设计的NMS后处理仍是个极大的挑战,它极大阻碍了完全的端到端训练。

从RPN、SSD、RetinaNet等开始,大家一直遵循着这样一个流程:先对每个目标生成多个预测(one-to-many),再将多个预测去重(many-to-one)。
为解决这个问题,后续提出了Learnable NMS,Soft NMS和CenterNet等用于改进重复框删除,但它们都没有给出一个有效的端到端训练策略。
同时,还提出了许多基于循环神经网络的方法,通过使用自回归解码器对每个实例预测一个边界框。这些方法对边界框的预测提供自然序列建模。但它们只在一些小数据集上进行了评估,而且迭代方式使推理过程效率低下。

最近DETR引入了一种基于二分匹配的训练策略,通过并行解码器实现了端到端检测。与许多检测器相比都具有竞争优势。但DETR目前所需的训练时间较长,而且覆盖范围较小,在小目标上的检测性能也相对较低。为此,本文探讨了一个新的视角:全卷积网络能否实现具有竞争性的端到端目标检测。

直接做one-to-one assignment的方法是否存在呢?其实是有的。上古时代有一个方法叫MultiBox,对每个目标和每个预测做了bipartite matching,DETR其实就是将该方法的网络换成了Transformer。此外还有一个大家熟知的方法:YOLO,YOLO也是对每个目标只匹配一个grid,只不过它是采用中心点做的匹配,而且有ignore区域。

在本文中,作者从标签分配和网络架构两个维度回答了这个问题。
大多数全卷积检测器都采用的一对多标签分配规则,即对于一个GT实例分配许多预测框作为前景样本。这种规则提供了足够多的前景样本,能够获得强大且鲁棒的特征表示。 然而太多的前景样本会导致单个实例存在很多的重复预测框,阻碍了端到端检测。

为证明这一点,作者首先对现有的手工设计标签分配策略进行了比较。作者发现一对一标签分配策略在消除删除重复框的后处理操作中起至关重要的作用。但是,手工设计的一对一分配仍会存在缺点。固定的分配可能会引起歧义问题并降低特征的可辨性,因为实例的预定义区域可能并不是用于训练的最佳选择。具体表现就是网络的收敛会更困难,也会导致更多的虚警。

提出问题:

1)当应用one-to-one标签分配时,有NMS和没有NMS的检测器之间的性能差距仍然不可忽略。

2)由于对每个真实目标的监督较少,one-to-one标签分配策略的性能仍然不如FCOS基线。

Our Methods

为解决问题,作者提出了一种感知预测“一对一”(POTO)标签分配方法,该方法动态地根据分类和回归的质量分配前景样本。

此外,对于基于fpn的检测器,广泛的实验表明,重复的边界框主要来自相邻尺度中置信度最高的预测的邻近区域。因此作者设计了一个3D最大滤波(3DMF),将其作为一个可微分的模块嵌入到fpn头中。该模块通过在相邻尺度上使用一个简单的3D最大滤波算子来改善卷积在局部区域的判别力。为了对特征表示学习提供足够的监督,作者又对一对多分配进行了修改以作为辅助损失。

端到端框架可以丢掉NMS的后处理,保留较强的特征表示。

POTO

以Ψ作为所有预测的序号集。
G和N对应于GT实例和预测的数量,在密集检测器中一般G<<N。

π ^ \hat{π} π^ 表示N个预测的G排列。

POTO的目标是对预测框产生一组合适的排列 π ^ \hat{π} π^ 来作为前景样本。
训练loss如下
包括前景损失 L f g L_{fg} Lfg 和背景损失 L b g L_{bg} Lbg

在这里插入图片描述
其中 R ( π ^ ) R(\hat{π}) R(π^) 表示前景样本所对应的索引集。

对于第i个GT, c i c_i ci为其类别标签, b i b_i bi为其边界框坐标。
对于第 π ^ ( i ) \hat{π}(i) π^(i)个预测 p b分别对应其预测分类分数和预测框坐标。

为实现较优的端到端检测,作者想要找到一个合适的标签分配策略 π ^ \hat{π} π^

之前的工作是将其视为二元匹配问题处理,以前景损失作为匹配代价,通过匈牙利算法快速求解。
在这里插入图片描述

但是前景损失通常会需要额外的权重来缓解优化问题,如训练样本不平衡、多任务联合训练等。该属性使训练loss不是匹配成本的最优选择。

提出了一个更干净有效的公式(POTO)来寻找更好的分配:
在这里插入图片描述

Q表示作者所提出的第i个GT与第π(i)个预测的匹配质量,同时考虑到空间先验、分类置信度和回归质量

Ω i Ω_i Ωi表示第i个GT的候选预测集,即空间先验。空间先验通常在训练阶段被广泛应用。例如FCOS采用的中心采样策略,即只考虑GT实例中心部分的预测作为前景样本。实验中发现只要α设的好也可以不要空间先验。
为达到平衡,作者用分类得分和回归质量的加权几何平均来定义质量。超参α∈[0,1]用于调整分类和回归之间的比率,默认采用α=0.8。

3D Max Filtering

对于基于FPN的检测器,当将NMS分别用于每个尺度时,性能会出现明显的下降。此外作者发现重复预测主要来自于置信度最高的预测的邻近空间区域。因此作者提出使用3DMF来抑制重复的Predictions
作者这里的3DMF思路来自于CornerNet和CenterNet中max filter,最大滤波是一种基于秩的非线性滤波器,可用于补偿卷积在局部区域的判别力。但这种方法不可训练也阻碍了其的有效性和端到端的训练。并且最大滤波器只考虑单尺度的特征,不适用于基于FPN的检测器。

将其从single-scale扩展到多尺度版本。它能够变换FPN多个尺度的特征,特征图中的每一个通道分别采用3D最大值滤波。
在这里插入图片描述
给定一个尺度为s的输入特征 x s x^s xs首先采用双线性算子将相邻尺度τ上的特征插值到输入特征 x s x^s xs的相同大小。然后对尺度s及其相邻尺度τ的特征图的空间位置i的φ*φ空间范围各自求最大值,然后再各尺度最大值作比较取最大。这个操作可由3d最大池化操作实现。

此外,为了将3D最大滤波嵌入到现有的框架并实现端到端训练,作者提出了一个新模块,如图3所示。该模块利用max滤波来选择局部区域中激活值最高的预测,并增强与其他预测的区别。由此特性,如图2所示,作者采用3DMF来细化粗糙密集预测,抑制重复预测。此外所有的模块都是由简单的可微算子构造的,计算开销很小。

Auxiliary Loss
在使用NMS时,如表1所示,POTO和3DMF的性能仍然不如FCOS。这可能是因为一对一的标签分配提供的监督较少,使网络难以学习到强且鲁棒的特征表示。它可能会进一步减少分类的判别性,从而导致性能下降。为此,作者引入了一种基于一对多的标签分配以提供更加充分的监督,如图2所示。
与ATSS类似,作者的辅助loss采用了使用改进后的一对多标签分配的focal loss。具体来说,一对多标签分配首先根据Eq. 4中提出的匹配质量在每个FPN stage将前9个预测作为候选。然后将匹配质量超过统计阈值的候选样本分配为前景样本。统计阈值是通过所有候选框的匹配质量的均值和标准差的总和来计算。

REF
https://zhuanlan.zhihu.com/p/332281368

https://blog.csdn.net/qq_40056173/article/details/111086360?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值