添加噪聲以改進(jìn)檢測(cè)效果——去噪機(jī)制的作用
现代视觉变换器通过加入噪声来提升2D和3D物体检测的性能。本文将学习这一机制的工作原理并讨论这一机制的贡献。
早期的视觉Transformer模型
DETR(DEtection TRansformer,Carion, Massa 等人 2020),作为首批用于目标检测的 transformer 架构之一,使用了从图像 token 中提取检测信息的解码器查询项。这些查询是随机初始化的,并且架构没有施加任何约束来强制这些查询学习类似于锚点的内容。虽然与 Faster-RCNN 相比,DETR 达到了相当的性能,但其缺点在于收敛速度较慢,需要 500 个 epoch 才能完成训练(DN-DETR,Li 等人 2024)。最近基于 DETR 的架构使用了变形聚合,使查询能够专注于图像中的特定区域(Zhu 等人,Deformable DETR:用于端到端目标检测的可变形 transformer,2020),而其他架构(Liu 等人,DAB-DETR:动态锚框作为 DETR 的更好查询,2022)则使用了空间锚点(通过 k-means 生成,与基于锚点的 CNN 方法类似),并将这些锚点编码到初始查询中。跳层连接使得 transformer 的解码器块从锚点中学习边界框作为回归值。变形注意力层使用预编码的锚点从图像中采样空间特征,并使用它们构建用于注意力的 token。在训练过程中,模型学习使用最佳锚点。这种方法教会了模型在查询中显式使用诸如框大小之类的特征。
图1. DETR,基本图示。黄色和紫色的查询路径最有可能导向置信度非常低的检测或检测类别为“无对象”的检测。来源:笔者。
预测与实际结果的匹配
为了计算损失值,训练者首先需要将模型的预测与真实标签(GT)框匹配。虽然基于锚点的CNN在这方面有相对简单的解决方案(例如,在训练期间,每个锚点只能匹配所在体素的GT框,在推理时,使用非极大值抑制(NMS)去除重叠检测),但对于基于Transformer的标准方法,DETR采用了一种称为匈牙利算法的二分图匹配算法。每次迭代中,该算法通过优化成本函数都找到最佳预测和GT的匹配(优化成本函数,比如所有框角点的均方距离之和)。然后计算每对预测和GT框之间的损失值,并可以进行反向传播。未匹配的预测会产生一个单独的损失值,促使它们降低置信度。
一个问题
匈牙利算法的时间复杂度是O(n³)。有趣的是,这不一定是在训练质量上的瓶颈:研究表明(从物理学家的角度看稳定婚姻问题综合回顾,Fenoaltea等人,2021),该算法是不稳定的,即其优化目标稍作改变可能会导致匹配结果的显著变化——导致训练目标不一致。在Transformer训练的实际应用中,查询对象可能在不同对象之间跳跃,需要长时间才能学习到最佳特征以达到收敛。
DN-DETR
李等人提出了一种解决不稳定的匹配问题的优雅方法,该方法后来被许多其他研究采用,包括DINO、Mask DINO、Group DETR等在内的研究。
DN-DETR的主要思想是通过创建假的但是容易回归的锚点来增强训练,这些锚点可以跳过匹配过程。在训练期间,通过向GT框增加少量噪声并将这些增加噪声后的框作为锚点输入给解码器查询来实现这一点。DN查询和有机查询之间被分开,以避免相互干扰的交叉注意力。这些查询生成的检测结果已经与它们的源GT框匹配,不需要进行匹配。DN-DETR的作者表明,在每个训练周期结束时验证阶段(去噪关闭时),与DETR和DAB-DETR相比,这种方法提高了模型的稳定性和一致性,即在连续的验证阶段中,更多的查询能稳定地匹配GT对象。(见图2)。
作者表明,使用DN不仅加快了收敛过程,还获得了更好的检测效果。(见图3)。他们在使用ResNet-50作为骨干网络时,在COCO检测数据集上,与之前的最佳方法(DAB-DETR,AP 42.2%)相比,AP提高了1.9%。
图2. 训练过程中通过验证测量到的不稳定性示意图。基于DN-DETR(李等,2022)提供的数据。图片来源:作者。
图3. DN-DETR的性能在1/10的训练周期数内迅速超过了DETR的最佳性能。数据来自Li等(2022)的DN-DETR研究。图片来源:作者。
DINO(迪诺),对比降噪
DINO 进一步推进了这一想法,将对比学习添加到了去噪机制中:除了正面样本之外,DINO 还为每个 Ground Truth (简称 GT) 创建了另一个加噪版本,该版本通过数学方法使该版本与 GT 更加远离,相较于正面样本(参见图 4)。该版本用作训练中的反面样本:模型学会了接受更接近真实目标的检测结果,而拒绝那些更远的(通过学习预测“无物体”)。
另外,DINO还支持多个对比去噪(CDN)组——每个GT对象对应多个噪声增强的锚点——从而在每次训练迭代中获得更大的效益。
DINO的作者报告,在使用CDN,在COCO val2017数据集上的AP为49%。
最近的一些时空模型,像Sparse4Dv3这样的模型,使用CDN,新增了时间去噪组,在这些去噪锚点存储在其中,与其他锚点一起,以便在后续帧中应用,从而提高模型的对象跟踪性能。
图4. 去噪过程的示意图。训练过程中的快照图。绿色框是当前的锚点(这些锚点或者是从之前的图像中学习到的,或者是固定的)。蓝色框为鸟的物体的真实框(GT)。黄色框为通过在真实框上添加噪声生成的正例(这会改变位置和尺寸)。红色框为负例,确保它在(x, y, w, h)空间上比正例离真实框更远。注:作者。
讨论区
去噪(DN)技术似乎能够加快视觉变压器检测器的收敛速度和最终性能。回顾这些方法的发展,引发了一些疑问?
- DN 改进了使用可学习锚点的模型的性能。但是,可学习的锚点真的那么关键吗?DN 是否也能改进使用不可学习锚点的模型?
- DN 对训练的主要贡献在于通过绕过二部图匹配来增强梯度下降过程的稳定性。但二部图匹配的主要作用是遵循Transformer的标准,即避免对查询施加空间限制。因此,如果我们手动将查询限定在特定的图像位置,并放弃使用二部图匹配(或者使用简化版的二部图匹配,对每个图像块单独运行)——DN 是否依然能改善结果?
我找不到能明确回答这些问题的作品。我的假设是,使用不可学习的锚点(前提是锚点不要太稀疏)并且空间受限的查询的模型,1——不需要二分匹配算法,2——在训练中也不会从动态锚点中获益,因为锚点已经是已知的,所以从其他瞬时的锚点回归也没有什么好处。我认为这样的模型在训练中也不会从动态锚点中获益,因为锚点已经是已知的。如果这里的DN是指“Dynamic Normalization”,那么应该直接标注出DN的全称并解释。
如果锚点是固定的但比较稀疏,那么我就能明白,使用易于撤回的临时锚点可以作为训练过程的一个良好开端。
Anchor-DETR(Wand等人,2021年)比较了可学习的锚点和不可学习的锚点在空间上的分布以及相应模型的表现,我认为可学习性并未为模型性能增加太多价值。值得注意的是——他们在两种方法中都使用了匈牙利匹配算法,因此不清楚他们是否可以在放弃二分匹配的情况下保持性能。
需要考虑的一点是,可能因为生产原因不使用NMS,所以在训练时使用匈牙利算法。
降噪真正重要的是在哪里?在我看来,是在跟踪场景中。在跟踪场景中,模型接收视频流输入,不仅需要在连续帧之间检测多个对象,还要保持每个检测到的对象的独特身份。时序变换器模型,即利用视频流序列性质的模型,并不会单独处理每一帧。相反,它们会维护一个存储先前检测结果的库(或缓冲区)。在训练过程中,跟踪模型被鼓励从与对象先前检测相关的锚点回归,而不是从最近的锚点回归。由于先前的检测结果未受固定锚点网格的约束,因此DN引入的这种灵活性可能是有益的。我非常期待看到更多关注这些问题的研究。
关于去噪及其对视觉变压器的贡献,就到这里啦!如果觉得我的文章不错,不妨来看看我写的其他文章哦。
YOLO V3 解读
在这篇文章,我们将讨论 YOLO 检测网络及其版本 1、2 和特别是版本 3。
Transformer 注意力块,简单解释 近几年,大型语言模型(LLMs,简称大模型)领域发生了两个重要事件。比如,第一个事件是……
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章