欢迎关注我的公众号 [极智视界],获取我的更多笔记分享
大家好,我是极智视界,本文解读一下 一种快速收敛的基于查询的目标检测器 AdaMixer。
传统的目标检测检测器采用密集模式,在图像的位置和尺度上进行扫描。最近的基于查询的目标检测器打破了这个惯例,它们通过一组可学习的查询来解码图像特征。然而,这种模式仍然存在收敛速度慢、性能有限 以及 backbone 和 decoder 之间额外的网络设计复杂性问题。在本文中,作者发现解决这个问题的关键是解码器对不同目标构建查询的适应性。由此提出了一种快速收敛的基于查询的检测器 AdaMixer,从两个方面改进了基于查询的解码器过程的适应性。(1) 首先,每个查询在空间上对特征进行适应性采样,并基于估计的偏移量进行缩放,这使得 AdaMixer 能够有效处理目标的相关区域。(2) 然后在每个查询的指导下,利用自适应MLP-Mixer 对这些采样特征进行动态解码。由于这两个关键的设计,AdaMixer 在结构上非常简单,不需要密集的注意力编码器或显式的金字塔网络。在 MSCOCO 数据集上,以 Resnet50 作为 backbone 的 AdaMixer,训练 12 个 epochs,达到了 45.0 AP,在检测小目标时达到了 27.9 APs。而在较长的训练方案下,具有 ResNeXt-101-DCN 和 Swin-S 的 AdaMixer 分别达到了 49.5 和 51.3 的 AP。
论文地址:https://arxiv.org/abs/2203.16507
代码地址:https://github.com/M CG-NJU/AdaMixer
目标检测一直是计算机视觉领域一个基础任务,它的目标是在一个单一的图像上去定位和识别不同的目标。长期以来,研究人员利用图像网格上的空间密集先验来克服变化较大的潜在目标的难题。这种密集范式可以追溯到滑动窗口方式,而在卷积神经网络时代,基于 anchor 或基于 point 的检测器很流行。尽管密集先验由于其可覆盖潜在目标的可再标记性而能在目标检测中占据主导地位,但他们在许多方面都存在一些缺陷,如 anchor 设计、训练采用选择 以及 潜在冗余检测的后处理操作。
尽管每年都有针对这些问题的解决方案提出来,但长期以来基于密集网络先验的底层检测方案几乎从来没有被触及。最近,基于查询的目标检测器给目标检测带来了一个新的视角,即 使用可学习嵌入 (也成为查询),通过使用类似注意力的操作直接表示潜在的目标。另一方面,该方法要求网络具有很强的表示能力,能够对潜在目标进行有限的查询 以应对 图像中目标的巨大变化。然而,现有的查询解码器无论是对特征空间采样还是对采样特征的处理,都对图像内容的适应性有限。例如,类似于 DETR 的基于注意力的解码器,对于采样哪种特征是自适应的,但对于如何解码是静态固定的,而稀疏 R-CNN 中的动态交互头则相反。由于对于图像的适应能力不足,目前的解码器处于查询能力有限和受限于目标变化太大难以检测 的两难境地。此外,作为补偿,基于查询的检测器通常在 backbone之后 和 查询解码器 之前引入额外的注意力编码器和显式金字塔necks,这是为了涉及更多的语义或多尺度建模,如 TransformerEncoder、Multi-ScaledDeformableTransformerEncoder 和 FPN。这些额外的组件导致了在设计和计算方面构建的检测 pipelines 更加高的复杂性,且需要更多的训练时间和更加丰富的数据增强。
为了解决上述问题,论文提出了一种基于快速收敛和精确查询的目标检测器 AdaMixer,该检测器具有简单的架构。具体来说,为了有效地使用查询来表示目标,AdaMixer 引入了自适应三维特征采样器及通道语义和空间结构的自适应融合。(1) 首先,将 backbone 中的多尺度 feature maps 看作一个三维特征空间,提出的解码器可以灵活地对空间和尺度上的特征进行采样,以根据查询自适应地处理目标的位置和尺度变化。(2) 然后,自适应混合在查询的指导下,对具有动态 kernels 的采样特征进行通道和空间混合。自适应位置采样和整体内容解码显著提高了在变化的图像中检测变化目标时的适应性。AdaMixer 只是由一个 backbone 网络和作者提出的解码器组成,并没有额外的注意力编码器或显式金字塔网络。
实验结果表明,在以随机翻转为唯一增强的标准 12 个 epochs 训练方案中 (1x 训练方案),以 ResNet-50 为 backbone 的 AdaMixer 在 100、300 和 500 次查询的设置下,在 MSCOCO 验证集上分别获得了 42.7、444.1 和 45.0 的 AP,在小目标检测方面获得了 24.7、27.0 和 27.9 的 APs。在和其他基于查询的检测器一样使用 3x 训练时间和更加强的数据增强的情况下,使用 backbone 为 ResNet-101、ResNeXt-101-DCN 和 Swin-S 的 AdaMixer 在单尺度和单模型测试中,分别获得了 48.0、49.5 和 51.3 的 AP,这显著超过了目前最先进的基于查询的检测器。
Dense object detectors 目标检测的密集范式可以追溯到基于滑动窗口的方法,假设潜在目标均匀密集地呈现在图像中 w.r.t 的空间位置。这种关于自然图像的假设,在深度学习时代仍然有效,因为它具有覆盖潜在目标的能力。过去几年中流行的目标检测器,例如 one-stage 检测器、multiple-stage 检测器 或 基于 point 的检测器,在区域建议网络或整个目标检测架构中也根植于这种密集的假设。它们在 feature map 上应用密集的先验,如 anchor 或 anchor points,以穷尽地找到前景目标或直接对其进行分类。
Query-based object detectors 最近,基于 transformer 的目标检测器 DETR 将目标检测定义为集合预测任务,并取得了很好的性能。DETR 通过使用 transformer 解码器对特征映射进行查询来预测一组目标。DETR 的基本结构是基于 Transformer 的,它包含多层注意力编码器和解码器。DETR 集合预测的训练是基于预测与 ground-truth 之间的二分匹配。虽然 DETR 的性能优于 Faster R-CNN baselines,但它仍然存在空间分辨率有限、小目标检测性能差、训练收敛慢等问题。针对这些问题,业内已经提出了一系列的解决方法。Deformable DETR 提出了自然图像中的移位等效性,并在 DETR 的编码器和解码器中引入了多尺度、可变形的注意力算子族。SMCA、Conditional DETR 和 Anchor DETR 显式地对前景目标的位置注意力进行建模,以加速收敛。高效的 DETR 通过 DETR 中密集的先验查询以提高性能。稀疏的 R-CNN 将基于查询的 DETR 范式与 R-CNN 进行级联,引入动态实例交互头及其查询自适应逐点卷积,有效地将查询转换到了潜在的目标。
AdaMixer 通常遵循这一研究路线:通过查询来关注目标检测的特征。然而,作者从一个新的角度改进了基于查询的目标检测范式:跨图像解码查询的适应性。具体来说,从语义和空间两个方面研究了如何使查询的解码方案更加好地适应图像的内容。作者提出了自适应三维特征采样和自适应解码,以提高查询与每张图像关联的灵活性。这让 AdaMixer 成为了一个能够快速收敛的基于查询的目标检测器,而无需引入额外的特征编码器或显式的金字塔网络。
本文重点研究了基于查询的目标检测器中的查询解码器,因为解码器的设计是将学习到的查询转换到每个目标的关键。本文首先从语义适应性和位置适应性的角度对当前流行的基于查询的目标检测器中的解码器进行了研究,然后详细阐述了提出的自适应查询解码器。
Plain attention decoders DETR 在查询和特征之间应用普通的多头交叉注意力机制,将目标查询转换到潜在的目标。如表1所示,交叉注意力解码器可以自适应于解码采样位置,因为它利用目标查询和特征的关系来聚合特征。然而,聚集后的特征线性变换不能根据查询自适应地对特征进行解码。
Deformable multi-scale attention decoders 可变形 DETR 通过引入显式参考点和多尺度特征,从平移等价性和尺度不变性两个方面提高了平移交叉注意力采样数据的解码能力。但与 DETR 一样,对采样特征的解码仍然是静态的线性变换。总体而言,DETR 和 可变形DETR 中的解码器缺乏对查询有条件地推理聚合特征,从而限制了查询对特征的语义适应性。因此,它们都需要额外的注意力编码器来丰富特征语义。
RoIAlign and dynamic interactive head as decoders 稀疏 R-CNN 作为基于区域和基于查询的检测器的交集,使用了 RoIAlign 算子和动态交互头 作为查询解码器。动态交互头采用基于查询自适应的逐点卷积算法对 RoI 特征进行处理,这使得查询对 RoI 特征具有一定的适应性,但这种适应性只是部分的,因为自适应逐点卷积不能从这些特征中推理出自适应的空间结构来构建查询。此外,在 FPN 中,RoIAlign 算子的采样位置被限制在由查询和特定级别 FPN 的box 内,这限制了位置的适应性,并要求显式金字塔网络进行多尺度建模。
Summary 在给定有限数量的查询和图像间潜在目标变化的情况下,理想的解码器应该同时考虑这些查询对图像内容的语义适应性和位置适应性,即如何自适应地解码采样位置和采样内容,这激发了对 AdaMixer 的设计。
从目标查询的定义出发,根据解码器的语义和位置视图,将两个向量与查询关联起来:一个是内容向量 q,另一个是位置向量 (x, y, z, r)。这也符合其他研究中将查询的位置或表示的 bounding box 与其内容分开的定义。向量 (x, y, z, r) 描述了由查询指示的 bounding box 的尺度几何特征,即其中心点的 x 和 y 轴的坐标及其 标度和横纵比的对数。x, y, z 的组合也直接表示查询在三维特征空间中的坐标。
Decoding the bounding box from a query 我们可以简单地从位置向量中解码 bounding box,可以对所指示的 boudning box 的中心 和 宽度、高度进行解码,如公式(1) 和 公式(2)。
解码器应该自适应地决定对于查询来说,需要对哪一个特征进行采样。也就是说,解码器应该考虑位置向量 (x, y, z, r) 和 内容向量 q 来解码采样位置。此外,解码器不仅要在 (x, y) 空间上自适应,而且还要在潜在目标的尺度上更加灵活。具体来说,可以将多尺度特征看作一个三维特征空间,并自适应地从其中采样特征来实现这些目标。
Multi-scale features as the 3D feature space 给定一个 feature map,首先通过线性层将它们转换到相同的通道,并计算其 z 轴坐标,如公式 (3)。
然后,将不同步长的 feature maps 的高度和宽度虚拟地重新缩放为相同的 H/Sbase 和 W/Sbase,其中 H 和 W 是输入图像的高度和宽度,并将它们放在三维空间中的 x 和 y 轴上,如图2所示,这些 feature maps 是三维特征空间的支撑平面。
Adaptive 3D feature sampling process 查询首先生成 Pin 点的偏移向量的 Pin 集,其中每个偏移向量由 i 索引,并依赖于其内容向量 q 的一个线性层,如公式 (4)。
然后,根据每个 i 的查询位置向量,将这些偏移量转换为采样位置,如公式 (5)。
值得注意的是,区域 {∆xi, ∆yi ∈ [−0.5, 0.5]} 描述了从查询中解码的 bounding box。而偏移量不限于这个范围,这意味着查询可以 开箱即用 地对特征进行采样。在当前实现中,对三维空间的插值采用合成的方式:首先通过在 (x, y) 空间中采用双线性插值对给定点的值进行采样,然后通过给定采样的高斯加权在 z 轴上进行插值,其中第 j 个特征映射的权重是公式 (6)。
采样过程通过采样简化了解码器的学习,查询具有显式地、自适应和一致的位置特征。
Group sampling 为了对尽可能多的点进行采样,引入了 分组采样机制,类似于注意力操作中的多头 或 分组卷积中的 groups。分组采样首先将三维特征空间中的通道 dfeat 分成 g 个组,每个组具有通道 dfeat/g,并对每个组独立地进行三维采样。通过分组采样机制,解码器可以为一个查询生成 g*Pin 个偏移向量,以丰富采样点的多样性,可以挖掘采样点更加丰富的空间结构特征。作者将分组采用和混合统一称为分组机制,分组机制也被应用到下述的自适应混合中。
在特征采样的情况下,如何对特征进行自适应解码是 AdaMixer 解码器中的另一个关键设计。为了获取 x 的空间维度和通道维度的相关性,分别对每个维度的内容进行高效解码。具体来说,设计了一种简化的、自适应的 MLP-mixer 变体,称为自适应混合器,其动态混合器权重类似于卷积中的动态滤波器。如图3所示,该过程依次包含自适应通道混合和自适应空间混合,以便在查询的指导下涉及自适应通道语义和空间结构。
Adaptive channel mixing 自适应通道混合 (ACM) 是利用基于 q 的动态权重对通道维度上的特征 x 进行转换,以自适应增强通道语义,如公式 (7) 和 公式 (8)。
层归一化应用于混合输出的两个维度。需要注意的是,在这一步中,动态权重在三维空间中的不同采样点上共享,类似于《Sparse R-CNN: end-to-end object detection with learnable proposals》中关于 RoI 特征的自适应 1x1 卷积。
Adaptive spatial mixing 为了使查询对采样特征的空间结构具有适应性,引入了自适应空间混合 (ASM) 过程。如图3所示,ASM 可以描述为首先转置通道混合特征矩阵,并将动态 kernel 应用于其空间维度上,如公式 (9) 和 公式 (10)。
需要注意的是,动态权重在不同的通道上共享。由于采样点可能来自不同的特征尺度,ASM 自然设计多尺度交互建模,这是高性能目标检测所必需的。
自适应混合过程总体如图3所示,其中自适应空间混合在自适应通道混合后,两种都应用到分组采样中。最后输出的形状跨组被展平,并通过线性层转换到 dq 维,并添加回内容向量。
类似于《End-to-end object detection with transformers》和《Deformable DETR: deformable transformers for end-to-end object detection》中的解码器结构,作者将查询之间的自注意力机制、提出的自适应混合器和前馈网络 (FFN) 按顺序地放在一个解码器中关于查询内容向量 q 的阶段,如图4所示。
查询位置向量在每个阶段结束时由另一个 FFN 进行更新,如公式 (11) 和 公式 (12),其中 (Δx,Δy,Δz,Δr) 是由图4中较低的小 FFN 块产生的。
Position-aware multi-head self-attentions 由于咱们把查询的内容和位置分开了,查询的内容向量之间的原始多头自注意力 不知道一个查询和另一个查询之间的几何关系,这有利于抑制冗余检测。为了实现这一点,作者将位置信息嵌入到自注意力机制中。对正弦形式的内容向量和 (x, y, z, r) 的每个分量的位置嵌入占据了四分之一的通道。作者还将交集嵌入到前景 (IoF),作为查询间注意力权重的一种偏置,以显式地包含查询间的关联关系,每个 head 注意力如公式 (13)。
Overall AdaMixer detector AdaMixer 的检测 pipeline 仅由一个 backbone 和 一个AdaMixer 解码器组成。它避免了在 backbone 和 解码器之间添加显式特征金字塔网络或注意力编码器。AdaMixer 直接收集解码查询的预测作为最终的目标检测结果。
1x 训练方案下,在 COCO minival 数据集上,不同检测器 与 backbone 为 ResNet-50 的 AdaMixer 相比较的表现,如表3所示。
Backbone 为 ResNet-50 的 AdaMixer 在 MS COCO minival 数据集上进行消融实验,数据如表4。
表5中展示了 AdaMixer 的最终结果,并展示了与其他最新的基于查询的检测器之间的性能比较。
本文提出了一种快速收敛的基于查询的目标检测架构 AdaMixer,它能有效地从图像中解码目标。AdaMixer 对基于查询的检测器的解码器进行了改进,采用了自适应三维采样、自适应通道和空间混合,通过改进查询解码器,避免了在 backbone 和 解码器 之间建模额外的网络。与其他基于查询的检测器相比,AdaMixer 以更加少的计算开销获得了更加好的性能,尤其是在小目标检测方面。此外,它还能在有限的训练预算下获得较快的收敛速度。
AdaMixer 的限制是:尽管已经应用了分组机制,但总参数量仍然有点大。这主要是由于在线性层中有大量的参数产生动态混合权重。作者留下的问题是在未来如何进一步降低参数量。
[1] AdaMixer: A Fast-Converging Query-Based Object Detector.
[2] Sparse R-CNN: end-to-end object detection with learnable proposals.
[3] End-to-end object detection with transformers.
[4] Deformable DETR: deformable transformers for end-to-end object detection.
好了,以上解读了 一种快速收敛的基于查询的目标检测器 AdaMixer。希望我的分享能对你的学习有一点帮助。
《AdaMixer | 一种快速收敛的基于查询的目标检测器》
搜索关注我的微信公众号【极智视界】,获取我的更多经验分享,让我们用极致+极客的心态来迎接AI !