其实没有NMS检测也可以很强很快 | O2F样本匹配助力目标检测逃离NMS时代(一)

简介: 其实没有NMS检测也可以很强很快 | O2F样本匹配助力目标检测逃离NMS时代(一)

一对一(o2o)标签分配在基于Transformer的端到端检测中发挥着关键作用,最近它被引入到用于端到端密集检测的全卷积检测器中。然而,由于正样本的数量有限,o2o会降低特征学习效率。

尽管在最近的DETR中引入了额外的正样本来缓解这一问题,但解码器中自注意力和交叉注意力的计算限制了其在密集和全卷积检测器中的实际应用。在这项工作中提出了一种简单而有效的一对少数(o2f)标签分配策略,用于端到端密集检测。除了为每个目标定义一个正Anchor和多个负Anchor外,作者还定义了几个Soft Anchor,它们同时作为正样本和负样本。这些Soft Anchor的正负权重在训练过程中被动态调整,以便它们在早期训练阶段为“表征学习”做出更多贡献,并在后期为“重复预测去除”做出更大贡献。

以这种方式训练的检测器不仅可以学习强特征表示,而且可以执行端到端的密集检测。在COCO和CrowdHuman数据集上的实验证明了o2f方案的有效性。


1、简介


目标检测是一项基本的计算机视觉任务,旨在定位和识别图像中预定义类别的物体。由于深度神经网络(DNN)的快速发展,在过去十年中,检测性能得到了显著提高。在目标检测器的发展过程中,一个重要的趋势是去除手工制作的组件,以实现端到端的检测。

目标检测中一个手工制作的组件是训练样本的设计。几十年来,Anchor Box主要用于现代目标检测器,如Faster RCNN、SSD和RetinaNet。然而,基于Anchor的检测器的性能对Anchor Box的形状和尺寸很敏感。为了缓解这个问题,已经提出了Anchor Free和基于Query的检测器,分别用Anchor Point和可学习的位置查询来取代Anchor Box。

另一个手工制作的组件是非最大值抑制(NMS),用于删除重复的预测。NMS的必要性来自于一对多(o2m)标签分配,它在训练过程中为每个GT分配多个正样本。这可能导致推理中的重复预测,并阻碍检测性能。由于NMS具有要调整的超参数并且引入了额外的成本,因此非常需要无NMS的端到端目标检测。

通过Transformer架构,DETR实现了具有竞争力的端到端检测性能。随后的研究发现,DETR中的一对一(o2o)标签分配对其成功起着关键作用。因此,在基于全卷积网络(FCN)的密集检测器中引入了o2o策略,用于轻量级端到端检测。

然而,由于正样本的数量有限,o2o可能会阻碍训练效率。这个问题在密集检测器中变得很严重,因为图像中通常有超过10k个Anchor。更重要的是,两个语义相似的Anchor可以分别被不利地定义为正Anchor和负Anchor。这样的“标签冲突”问题进一步降低了特征表示的歧视性。

因此,端到端密集检测器的性能仍然落后于具有NMS的检测器。最近关于DETR的研究试图通过引入独立的查询组来增加阳性样本的数量,来克服o2o方案的这一缺点。解码器中计算的自注意力确保了不同查询组之间的独立性,然而这对于基于FCN的检测器来说是不可行的。

本文目标是开发一种高效的基于FCN的密集检测器,它不需要NMS,但可以端到端训练。作者观察到,在o2o中,将语义上与阳正样本相似的模糊Anchor点设置为完全负Anchor是不合适的。相反,如果损失权重经过仔细设计,它们可以用于计算训练期间的正损失和负损失,而不会影响端到端的能力。基于以上观察,作者建议为那些模糊的Anchor点分配动态软分类标签。

image.png

如图1所示,与o2o将模糊Anchor点(Anchor点B或C)设置为完全负样本不同,作者将每个模糊Anchor点标记为部分正和部分负。在训练过程中自适应调整正负标签的程度,以在“表示学习”和“重复预测去除”之间保持良好的平衡。特别是在早期训练阶段从大的正度和小的负度开始,以便网络能够更有效地学习特征表示能力,而在后期训练阶段,逐渐增加模糊Anchor的负度,以监督网络学习消除重复预测。

作者将本文的方法命名为一对少数(o2f)标签分配,因为一个目标可以有几个Soft Anchor。将o2f LA实例化为密集检测器FCOS,在COCO和CrowHuman上的实验表明,它实现了与具有NMS的检测器相当甚至更好的性能。


2、One-to-Few Soft Labeling


2.1、Ambiguous Anchors

image.png

密集检测中的标签分配旨在为每个Anchor分配一个分类标签,以监督网络训练。图2说明了“人”实例的o2o和o2m标签分配。可以看出,o2o标记方案只选择一个Anchor作为正样本,而o2m分配了多个正Anchor。在o2o和o2m中,除正Anchor以外的其余Anchor都被定义为负样本。

作者认为,一些Anchor实际上介于正样本和负样本之间,不应该简单地给他们贴上一个正样本或负样本的标签。如图2所示,将在o2o和o2m中都为正Anchor(用红色边框突出显示)命名为“特定Anchor”,因为它通常没有歧义。相比之下,将o2m中为正但在o2o中为负的Anchor(以绿色边框突出显示,因为它们在o2o方案和o2m方案中有冲突标签,所以将其命名为“歧义Anchor”。

现在将Anchor分为3组:1个Certain Positive Anchor,几个 Ambiguous Anchors和剩下的多个Negative Anchors。在o2o中,模糊Anchor被标记为否定,以避免重复预测,而它们可以帮助学习o2m中的鲁棒特征表示。

一个有趣的问题是,能否找到一种方法来整合o2o和o2m方案的优点,从而提高端到端密集检测的性能?作者主张,解决这个问题的关键是如何在o2o中适当引入更多积极的监管信号。为了找到这个问题的解决方案,优先测试两个选项。

第一种选择是通过为每个实例再添加一个正样本,将o2o改为一比二。第二种选择是为每个不明确的Anchor分配一个软标签,其中是它的正数,因此是它的负数。将正Anchor和负Anchor的分类损失分别定义为和,其中是预测的分类得分。那么第二个选项的分类损失将是。

COCO数据集的检测结果如表1所示,从中可以看出,即使只增加了一个正样本,一对二标签分配方案也会显著降低性能。相比之下,为不明确的Anchor点分配合适的软标签可以有效地提高端到端的性能。

image.png

上述结果表明,使模糊Anchor同时为正和负可能是有效的端到端密集检测的可行解决方案。因此,提出了一种一对少数(o2f)标签分配策略,该策略选择一个特定的Anchor为完全正的,选择几个模糊的Anchor为正和负的,并且选择其余的Anchor为负样本。在训练过程中动态调整模糊Anchor点的正负度,使网络能够保持较强的特征表示能力,同时实现端到端的检测能力。

2.2、选择一定的Positive Anchor

在本文的方法中,将为每个实例选择一个特定的正Anchor。以前的基于o2o的检测器都使用了一个预测感知的选择度量,它考虑了分类和回归的成本来选择一个唯一的正样本。遵循这一原则,并将分类得分和IoU都纳入到某个Anchor的选择度量中,其定义为:

image.png

其中表示Anchor 和实例之间的匹配分数,是实例j的类别标签,为属于类别的Anchor 的预测分类分数,为Anchor 的预计边界框坐标,表示实例的坐标,α控制分类和回归的重要度。是当Anchor  的中心点在实例的中心区域内时,输出1;否则输出0。这种空间先验在o2o和o2m方法中都被普遍使用,因为观察到实例中心区域的Anchor更有可能是正Anchor。

可以根据度量以降序对Anchor进行排序。先前的工作通常将正Anchor选择公式化为二分匹配问题,并通过使用匈牙利算法来解决。为了简单起见,在这项工作中,直接选择得分最高的一个作为每个实例的特定正Anchor。

2.3、模糊Anchor的标签分配

除了特定的正Anchor,基于得分选择 Anchor作为模糊Anchor,因为它们与特定的正Anchor具有相似的语义上下文。为了减少重复预测的可能性,为这些模糊的Anchor分配了动态软标签。假设为N个Epoch训练网络,在第个Epoch期间每个模糊Anchor 的分类损失定义为:

其中,是Anchor 的预测分类得分,和分别是该Anchor在第个Epoch的正度和负度(即损失权重)。被动态地定义为:

其中,是时间相关变量,其被分配用于第个Epoch中的所有样本的相同值,并且和分别控制第一个Epoch和最后一个Epoch的模糊Anchor的正程度。将损失权重设置为与分类分数呈正相关,考虑到具有较高预测分数的Anchor应该对积极信号做出更多贡献。直接使用作为权重会使困难样本的训练变得不稳定,因为它们的预测分数比简单样本的预测分数小得多。因此,使用和之间的比率将不同样本的权重归一化为相同的尺度。

动态调整很重要,因为它控制了不同训练阶段“特征学习”和“消除重复”之间的权衡。在早期训练阶段,将设置得相对较大,以引入更多用于表示学习的正监督信号,从而使网络能够快速收敛到鲁棒的特征表示空间。随着训练的进行,逐渐降低模糊Anchor的积极程度,以便网络能够学习去除重复的预测。

2.4、网络结构

将所提出的o2f标签分配策略实例化到FCOS,FCOS是一种典型的全卷积密集检测器。网络结构如图3所示。由2个平行卷积分支组成的检测头连接到每个特征金字塔网络(FPN)层的输出。一个分支预测大小为的得分图,其中是数据集中的类别数量,和分别是特征图的高度和宽度。另一个分支预测大小为的位置偏移图和大小为的中心度。根据之前的工作将中心度与分类分数图相乘,作为最终的分类IoU联合分数。

对于每个实例,选择一个特定的正Anchor和个不明确的Anchor。剩余的Anchor设置为负样本。分类分支针对每个实例的训练目标制定为:

其中,是单个特定Anchor的分类得分,A和B分别表示模糊Anchor和否定Anchor的集合。BCE表示二值交叉熵损失,FL表示Focal Loss。回归损失定义为:

其中,GIoU损失是基于并集上的一般交集的位置损失,是Anchor 的预测位置,是Anchor 对应的GT的位置。注意,将回归损失应用于正Anchor和模糊Anchor。

相关文章
|
3月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
334 1
|
3月前
|
机器学习/深度学习 传感器 自动驾驶
狂风暴雨依旧YOLO | 全新数据集,全新任务,促进极端降雨条件下目标检测的优化和发展
狂风暴雨依旧YOLO | 全新数据集,全新任务,促进极端降雨条件下目标检测的优化和发展
161 0
|
3月前
|
算法 计算机视觉
YOLOv3 的非极大值抑制(NMS)算法是如何工作的,它对最终检测结果有何影响?
YOLOv3 的非极大值抑制(NMS)算法是如何工作的,它对最终检测结果有何影响?
|
3月前
|
机器学习/深度学习 算法 PyTorch
【PyTorch深度强化学习】带基线的蒙特卡洛策略梯度法(REINFOECE)在短走廊和CartPole环境下的实战(超详细 附源码)
【PyTorch深度强化学习】带基线的蒙特卡洛策略梯度法(REINFOECE)在短走廊和CartPole环境下的实战(超详细 附源码)
80 0
|
9月前
|
机器学习/深度学习 自然语言处理 算法
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
【网安AIGC专题11.1】11 Coreset-C 主动学习:特征选择+11种采样方法+CodeBERT、GraphCodeBERT+多分类(问题分类)二元分类(克隆检测)非分类任务(代码总结)
153 0
|
9月前
|
SQL 机器学习/深度学习 开发框架
【网安AIGC专题10.25】8 CoLeFunDa华为团队:静默漏洞检测(识别+多分类)+数据增强、样本扩充+对比学习+微调+结果分析(降维空间,分类错误样本归纳,应用场景优势,有效性威胁分析)
【网安AIGC专题10.25】8 CoLeFunDa华为团队:静默漏洞检测(识别+多分类)+数据增强、样本扩充+对比学习+微调+结果分析(降维空间,分类错误样本归纳,应用场景优势,有效性威胁分析)
209 0
|
算法 测试技术
【语音处理】基于加权压力匹配方法(WPMM)的私人声音系统研究(Matlab代码实现)
【语音处理】基于加权压力匹配方法(WPMM)的私人声音系统研究(Matlab代码实现)
|
数据可视化 计算机视觉
其实没有NMS检测也可以很强很快 | O2F样本匹配助力目标检测逃离NMS时代(二)
其实没有NMS检测也可以很强很快 | O2F样本匹配助力目标检测逃离NMS时代(二)
182 0
|
机器学习/深度学习 编解码 自动驾驶
联合训练2D-3D多任务学习 | 深度估计、检测、分割、3D检测通吃
联合训练2D-3D多任务学习 | 深度估计、检测、分割、3D检测通吃
309 0
|
算法 数据可视化 计算机视觉
再战IOU | 总结分析IOU/GIOU/CIOU局限,提出Focal EIOU进一步提升目标检测性能(二)
再战IOU | 总结分析IOU/GIOU/CIOU局限,提出Focal EIOU进一步提升目标检测性能(二)
298 0