目标检测改进 | 如何使用IOU改进自注意力以提升Sparse RCNN目标检测性能

简介: 目标检测改进 | 如何使用IOU改进自注意力以提升Sparse RCNN目标检测性能

dc6eeaab383c1144fc224935c2c388d9.png

在图像中没有密集平铺的 anchor boxes 或 grid points 的情况下,Sparse R-CNN 通过以级联训练方式更新的一组对象 queries 和 proposal boxes 来获得有候选结果。然而,由于 queries 的稀疏性和 queries 与其参与区域之间的一对一关系,它在很大程度上依赖于自注意力,这在早期训练阶段通常是不准确的。


此外,在目标密集的场景中,目标 queries 会与许多不相关的目标进行交互,从而降低其唯一性并损害性能。本文提出使用不同框之间的 IoU 作为 self attention 中的 value routing 的先验。原始注意力矩阵乘以从提议框的 IoU 计算的相同大小的矩阵,它们确定 routing 方案,以便抑制不相关的特征。此外,为了准确提取分类和回归的特征,作者添加了两个轻量级投影头来提供基于目标 queries 的动态通道掩码,并将它们与动态卷积的输出相乘,使结果适用于两个不同的任务。在不同的数据集上验证了所提出的方案,包括 MS-COCO 和 CrowdHuman,表明它显著提高了性能并提高了模型收敛速度。

1、简介

目标检测是计算机视觉中的一项基本任务,旨在通过边界框对语义区域进行定位和分类。传统上,有基于密集平铺 anchors 的两阶段方法或基于 anchors 或  grid points 的单阶段方法。然而,他们都因手工设计而受到抱怨,例如  anchor shapes、正负训练样本分配的标准以及额外的后处理步骤,如非极大值抑制 (NMS)。


DETR 是一个更简单的模型,它利用了 Transformer 的结构。在其解码器中,一组稀疏的可学习 queries 通过交叉注意力从图像中提取目标信息,也通过自注意力从彼此中吸收目标信息。然后二分匹配连接更新的 queries 和 GT,仅将一个 query 分配给 GT 框以进行分类和回归损失。一对一的标签分配规则防止模型输出冗余框。因此,不再需要 NMS。然而,DETR 仍然存在训练收敛缓慢的问题。TSP 从编码器中选择特征来初始化查询集,SMCA 直接预测一个空间掩码来加权注意力矩阵。两者都可以加快训练速度。


上述工作中有一个稀疏的查询集,但必须密集地关注完整的图像。可变形 DETR 将标准注意力更改为可变形注意力,限制每个query关注参考点周围的一小组采样点。它显著减少了注意力模式的计算并提高了收敛速度。Sparse R-CNN 利用 RoI align 为损失Head进行 local object embedding。它有成对的目标查询 1675261221505.png和 proposal box 1675261501937.png1675261221505.png 只通过动态卷积与box1675261501937.png 内对应的图像特征交互,其中1675261739823.png  和 N 是 query slot 和 boxes 的总数。除此之外,它仍然在查询集中执行自注意力,以便一个 1675261221505.png 知道其他 1675261221505.png。Sparse R-CNN 是一个具有多个阶段的级联结构,并且在每个阶段对  进行细化以逐步接近 GT box。


尽管设计简单,但 Sparse R-CNN 依赖自注意力来建模不同目标查询之间的关系。由于 1675261221505.png 为每个 1675261501937.png 提供 kernels,self attention 间接扩大了每个框  内的动态 convs 的感受野。但是1675261221505.png  被概括为一个没有空间维度的向量,self-attention 忽略了  的空间覆盖。换句话说,1675261221505.png 可能会受到其他 1675261221505.png 的强烈影响,因为它们具有相似的 query 和 key 向量,而不考虑 1675261501937.png 和  1675261501937.png的位置。对于 MS-COCO 和 CrowdHuman 数据集中的密集目标检测,图像中有许多相同类别的GT。由于缺乏空间先验的指导,自注意力中的动态路由可能无效,尤其是在早期训练时期。

e049daaf36c6ff92bec2ecf89ca0a5b2.png

在本文中,作者打算通过考虑两个对应框之间的几何关系来增强 Sparse R-CNN 中目标查询的自注意力,如图 1a 所示。Relation Net 也采用了类似的思路。但是,在不添加任何参数的情况下采取了不同的策略。Intersection over Union (IoU) 的通用度量直接用作自注意力期间 value 路由的自然先验。具体来说,在 N 个提议框之间计算大小为 N×N 的矩阵 IoU,其中两个框1675261501937.png  和1675261501937.png  之间的 IoU 度量确定每个元素 1675261766808.png。请注意,IoU 与注意力矩阵 attn 大小相同,因此元素乘法可以将它们组合起来,并将结果用于加权值矩阵以更新目标查询。


为了进一步增强双损失头中的分类和定位功能,作者设计了一个动态通道加权(DCW)模块来为两个任务生成不同且合适的特征。这个想法是在目标查询和 RoI 特征之间添加一个连接,以实现动态交叉加权。它使用目标查询 1675261221505.png 来预测具有 1675261221505.png 精确维度的两个通道掩码。然后应用这两个掩码来对动态卷积给出的输出特征进行加权。因此,对于这两个任务,通道可以以不同的方式突出显示,重点关注分类和回归的相关区域,如图 1b 所示。与动态卷积类似,DCW 模块中有两个轻量级的header,都像SE-Net一样在末尾有sigmoid函数,限制取值范围为0到1。在 DCW 之后,特征为两个任务不再共享,可使双方受益。


我们的贡献总结如下:

  • 在 Sparse R-CNN 中提出了一个 IoU-enhanced self attention 模块,它在注意力矩阵之前引入了空间关系。在这里,两个提议框的 IoU 被用作评估不同目标查询的相似性并指导 self attention 中的value路由的度量。
  • 设计了一个带有交叉加权方案的插入式 DCW 模块,它根据目标查询输出两种类型的通道掩码,然后使用它们对原始动态卷积的特征进行加权。DCW 分离了分类和回归头的 RoI 特征。
  • 在 CrowdHuman 和 MS-COCO 两个数据集上进行了广泛的实验,验证了所提出的方法在不显著增加模型大小和计算量的情况下有效地提高了检测结果的质量。

2、相关工作

2.1、Dense Detector

从 R-CNN、Fast R-CNN 到 Faster R-CNN,两阶段甚至多阶段的方法都与 CNN 紧密贴合,实现了端到端的训练方式。在这些方法中,首先获得目标建议,即大致定位的目标区域。然后,RoI align 从整个图像中提取这些提议区域,使第二阶段只观察 RoI 并专注于提高它们的质量。


单阶段方法在没有 RoI align 的情况下单次检测目标。SSD 和 YOLO 模仿 Faster R-CNN 中的第一阶段,并尝试直接给出最终位置和所属类别。然而,他们的检测质量明显落后于他们的两阶段竞争对手。RetinaNet 将 one-stage 方法的劣势归因于正负训练样本之间的极端不平衡,并设计了一个 Focal Loss 来处理它,在训练过程中降低了容易负样本的权重。基于特征金字塔网络 (FPN) 和样本匹配方案,例如 ATSS、PAA 或 OTA,单阶段方法 RetinaNet 实现了具有竞争力的性能。


除早期版本的 YOLO 外,上述大部分工作都在图像中密集平铺了初始框,称为Anchor。然而,它们的大小和比例很重要,但很难选择。最近的工作表明,单阶段 Anchor-Free 方法取得了有希望的结果。在没有平铺 Anchor 的情况下,这些方法直接对每个网格点进行分类并回归正样本的边界框。已经采用了不同的策略来从网格中定位一个 box。FCOS 将距离输出到GT 框的4个边界。同时,它还预测中心度作为 NMS 的补充质量指标。RepPoints 利用 deformable conv 在物体中心周围散布不规则点,然后收集所有点位置来定位ground truth box。CornerNet 采用自下而上的方案,它估计GT的左上角和右下角的高斯Heatmap,并尝试通过嵌入特征从相同的GT匹配它们。类似的想法也用于预测目标中心的Heatmap。RepPoints-v2 整合了 CornerNet 的思想,通过添加一个分支来预测角点Heatmap,这也有助于在推理过程中从不规则点中细化预测框。

2.2、Sparse Detector

尽管 Anchor-Free 方法大大减轻了复杂性,但它们仍然需要在密集的平铺网格上进行预测。由于一个 GT 可能被分配给许多候选者,因此 NMS 成为减少冗余预测的不可避免的后处理步骤。然而,NMS 因其启发式设计而饱受诟病,许多作品试图改进甚至消除它。但这些作品往往会带来复杂的模块。


DETR 在 Transformer 结构下给出了一个简单的无 NMS 解决方案。它假设一组稀疏的可学习查询由 self 和 cross attention 重复更新。该查询最终用于预测其匹配的GT。请注意,一个GT box仅通过二分匹配分配给其所属查询。因此不再需要 NMS。尽管设置简单,但 DETR 需要很长时间才能收敛。


TSP 发现交叉注意力在早期训练阶段的不稳定行为是导致收敛缓慢的主要原因。因此,它消除了交叉注意力,只在选定的 RoI 中执行自注意力。使用 FPN 作为主干,TSP-FCOS 和 TSP-RCNN 可以在 36 个 epoch 上取得令人满意的结果。SMCA 结合了直接从查询中预测的空间先验来调制注意力矩阵并提高收敛速度。


Deformable DETR 将可变形 conv-v2 中的思想用于 Transformer 的编码器和解码器。与传统的非局部注意力操作不同,可变形注意力中的每个查询直接对参考点周围不规则位置的特征进行采样,并预测动态权重矩阵将它们组合起来。加权特征更新以查询下一阶段,直到它输入损失头。


Sparse R-CNN 可以被视为 DETR 的一种变体,并假设一个更简单的设置。它有一组可学习的目标查询和提案框,查询slots给出的kernel只处理提案框内的区域。

3、本文方法

所提出的方法,主要包括  IoU-enhanced self-attention(IoU-ESA)和动态通道加权(DCW)。该方法的概述如图2所示。在说明设计模块的细节之前,首先回顾和分析 Sparse R-CNN 的初步工作。

1c1fcc922fa4b1aacdacec79b4a95f40.png

3.1、Sparse R-CNN的初步分析

1、基本配置

有关 Sparse RCNN 的详细信息也可以在图 2 中找到。它有一组可学习的目标查询 q 以在其相应的可学习的建议框 b 内提供一对一的动态交互。这些 q 预计将编码GT的内容。建议框 b 代表矩形。他们通过 RoI align 在整个图像的特征上定位区域 RoI r。通过线性投影从目标查询 q 生成的两组参数 (Params1-2) 的动态 convs 在 RoI 特征 r 上执行。然后,可以获得双损失头的目标特征o。请注意,动态卷积直接将目标查询 q 与其对应的 RoI r 联系起来。Sparse R-CNN 是具有多个阶段的迭代结构。特别是,q 和 b 都在中间阶段更新,并可能用于下一个阶段。在初始阶段,q 和 b 是模型参数,可以在训练期间通过反向传播进行调整。


Sparse R-CNN 在以下方面与 DETR 类似:

  1. 它们都有可学习的对象查询,旨在描述和捕捉基本事实。在稀疏 R-CNN 中,它是提议特征,而在 DETR 中,它是位置编码。
  2. 在这两种方法中,在对象查询之间执行自注意力以聚合来自整个集合的信息。
  3. 动态转化和交叉注意力具有可比性。两者都执行对象查询和图像特征之间的交互,改进用于分类和回归的对象嵌入。

综上所述,sparse R-CNN 可以看作是依赖于 RoI align 的 DETR 的一种变体,用不同的方式为 loss Heads 生成目标嵌入。

2、分析Self-Attention

Sparse R-CNN 的独特属性是其在整个处理步骤中的稀疏进Sparse范式。管道中既不存在密集的候选者,也不存在与全局特征的交互。然而,作者发现自注意力起着重要的作用,因为它模拟了 q 之间的关系并扩大了它的感受野。尽管 q 是一个没有空间覆盖的汇总向量,但几何关系也有望在 self attention 中被发现并在 value routing 中考虑。为了验证假设,作者训练了一个没有自注意力的模型,而另一个模型中的自注意力矩阵被直接在提案框之间计算的 IoU 矩阵所取代。它们的性能与 Tab1 中的原始 Sparse R-CNN 进行了比较。这些实验是在 MS-COCO 上进行的。

cf46dbfa22159e3ef3aebc0cdc2c1c36.png

可以看出,AP 为 38.5 的最差性能来自目标查询中没有任何自注意力的模型 w/o MSA。当使用 IoU 矩阵作为注意力矩阵时,IoU-MSA 的结果得到了很大的恢复。但是,原来的 self attention 仍然达到了最优性能。因此,作者打算通过利用 IoU 作为几何图形来增强 Sparse R-CNN 中的自注意力,然后引导自注意力中的路由方案。

3、分析特征的可判别性

正如 TSD 中所述,检测中的两个任务集中在目标的不同部分。分类分支关注语义区域以支持其类类型,而回归分支更多地与对象轮廓相关,以准确定位它。因此,为它们解开特征是有益的。请注意,Sparse R-CNN 对这两个任务使用相同的耦合特征,这可能会得到改进。

a132a65ffe7b4bbd5875b7c2c9814074.png

作者为分类和回归训练了两个具有不同特征和结构的模型,如图 3 所示。它们都在目标查询 q 和 RoI 特征 r 上使用相同的维度(例如,256)设置。图 3b 中的第一个为每个任务分配了一半的维度(例如,128)。因此,动态卷积及其后续层变得完全独立。


请注意,此设置会保存模型参数和计算。图 3c 中的另一个具有类似的意图,但考虑在将特征赋予双头之前补偿损失的尺寸。与 Sparse R-CNN 一样,通道数恢复到原始维度,这是通过额外的投影层实现的。需要提一提的是,虽然新增的 layer 带来了更多的模型参数和计算量,但与原来的模型相比还是有效率的,主要是动态卷积的降维效果显著。他们在 MS-COCO 上的表现列于表 2。

fba9a57c7802f2a550324413a8bae14e.png

与两个任务的特征和结构耦合的原始 Sparse R-CNN 相比,half dim 模型度量没有明显下降,但参数和 Flops 明显减少。full dim 模型比原来的模型稍微好一点,效率仍然略高。这些结果清楚地证明了 Sparse R-CNN 中任务解耦的有效性。然而,作者认为为不同任务划分通道的简单策略并没有充分考虑来自目标查询的动态加权方案。基于这一观察,作者打算通过动态通道加权 (DCW) 模块来增强分类和定位的功能,从而以仅略微增加模型参数的代价更好地解耦这两个任务。

3.2、IoU-Enhanced Self Attention (IoU-ESA)

如第 3.1 节所述,多头自注意力(MSA)应用于目标查询 q 以从彼此获取全局信息。在这里,进一步说明其机制,如公式(1)所示,

6628e8c289f7308469d69f45314b7325.png543c25297cf7c4a603960b9a3a3d0490.png

其中 1675261820811.png 是输入 query、key和value矩阵,由具有不同参数的并行层从目标查询 q 投影。d是投影后的隐藏维度,H是head的总数。Attn(Q,K,V) 表示以 Q、K 和 V 为输入的标准注意力函数,在方程(2)中进一步阐明。1675261839218.png是一组用于组合多个head的可学习参数,下标指定head的索引。请注意,每个head根据 Q 和 K 之间的相似性独立地路由自己的value V。

d9293aea54696d79a8e9dc682280f1b9.png

通过考虑两个对应框之间的几何关系来增强 self attention,细节如图4所示。基本上,IoU-ESA 使用另一种方法来测量 Q 和 K 之间的相似性。与通过 1675261863131.png 穷举测量任何 slots 对之间的相似性相比,IoU 是一个很好的先验,并且更容易计算。IoU-ESA 在不添加任何参数的情况下利用它。具体来说,在归一化之前 attn 的每个元素都乘以它在 IoU 矩阵中的对应元素,该 IoU 矩阵是从建议框对中计算出来的。

IoU-enhanced self attention 表示为:

96e79060130a76bda1838b49b35b51dc.png

其中 i, j 是从 1 到 N 的索引, 1675261888772.png是增强的注意力矩阵,1675261900157.png 是基于 IoU 度量在 N 个提议框之间测量的。

3.3、动态通道加权(DCW)

正如 3.1 节分析的那样,在检测中最好对两个丢失头使用不同的特征。然而,Sparse R-CNN 将相同的特征发送到两个头部,这显然不是最优的。尽管将目标查询 q 和 RoI 特征 r 沿通道维度分离的简单策略可以在不降低性能的情况下减少参数和计算量,但仍然需要更好的、充分利用 q 的动态方案。

c89999ec048170244b50880dfc38c3c7.png

在这里提出了一个动态通道加权(DCW)模块来分离和加强这两个特征。如图 5 所示,两个通道掩码 1675261900157.png 由与动态层并行的线性投影层生成,用于动态转换中的参数。sigmoid 用作激活函数,将1675262065601.png中的每个元素约束在 0-1 之间。与 SE-Net 不同,DCW 实际上是一种动态交叉加权方案。基于目标查询 q,它们生成1675262065601.png,其通道数与 RoI 特征 r 相同,并且它们中的值共享 r 中的每个空间位置。这两个通道掩码突出显示了建议框中的不同区域,从而为分类和回归分支生成更多相关特征。DCW 模块可以表述如下:

193f330d85acfc4a2c01f3d94aacc90c.png

其中 q 和 r 表示动态卷积后的目标查询和 RoI 特征。gm 是一个bottleneck,包括两个连接的线性投影层,基于 q 预测两个掩码。σ(·) 表示 sigmoid 激活。结果 r' 是针对不同任务的增强的 RoI 特征,它可以是1675262096218.png ,如图 5 所示。请注意,单独的 1675262096218.png通过独立的层,这些层将它们投影到对象嵌入 1675262126218.png 中。这些特征最终被赋予两个损失头来计算不同类型的惩罚。

由于原始的 Sparse R-CNN 是在级联结构中构建的,因此需要为下一阶段更新目标查询 q。为简单起见,在实现中,将  和  加在一起形成下一阶段的新 q。

3.4、Training Objectives

在 DETR 之后,采用匈牙利算法来制作预测和GT对。二分匹配方式避免了像 NMS 这样的后处理。匹配成本与训练损失相同,

1675260825375.png

4、实验

1bbffcfb57f497b4c993ce1cd0a46de2.png7c015e90474bf718fa9d2b0654bbe33a.png

5、参考

[1].IoU-Enhanced Attention for End-to-End Task Specific Object Detection.

6、推荐阅读

重参巅峰 | 你喜欢的RepVGG其实也是有缺陷的,RepOpt才是重参的巅峰

Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者

YOLOv6、PP-YOLOE、PicoDet为什么都选择了TOOD?

相关文章
|
9月前
|
机器学习/深度学习 算法 安全
FRCNN来袭 | Faster RCNN与FCN永不遗忘,联邦学习+边缘数据既保护隐私也提升性能
FRCNN来袭 | Faster RCNN与FCN永不遗忘,联邦学习+边缘数据既保护隐私也提升性能
387 0
|
9月前
|
机器学习/深度学习 编解码 算法
助力目标检测涨点 | 可以这样把Vision Transformer知识蒸馏到CNN模型之中
助力目标检测涨点 | 可以这样把Vision Transformer知识蒸馏到CNN模型之中
330 0
|
9月前
|
机器学习/深度学习 编解码 数据可视化
RecursiveDet | 超越Sparse RCNN,完全端到端目标检测的新曙光
RecursiveDet | 超越Sparse RCNN,完全端到端目标检测的新曙光
138 0
|
9月前
|
机器学习/深度学习 监控 算法
【Keras计算机视觉】Faster R-CNN神经网络实现目标检测实战(附源码和数据集 超详细)
【Keras计算机视觉】Faster R-CNN神经网络实现目标检测实战(附源码和数据集 超详细)
195 0
|
9月前
|
机器学习/深度学习 算法 固态存储
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
【计算机视觉】目标检测中Faster R-CNN、R-FCN、YOLO、SSD等算法的讲解(图文解释 超详细必看)
550 0
|
机器学习/深度学习 编解码 缓存
两阶段目标检测指南:R-CNN、FPN、Mask R-CNN
两阶段目标检测指南:R-CNN、FPN、Mask R-CNN
237 0
|
机器学习/深度学习 人工智能 算法
目标检测:RPN — Faster R-CNN 的主干
目标检测:RPN — Faster R-CNN 的主干
267 0
|
算法 计算机视觉 索引
目标检测改进 | 如何使用IOU改进自注意力以提升Sparse RCNN目标检测性能(二)
目标检测改进 | 如何使用IOU改进自注意力以提升Sparse RCNN目标检测性能(二)
381 0
|
机器学习/深度学习 固态存储 计算机视觉
目标检测改进 | 如何使用IOU改进自注意力以提升Sparse RCNN目标检测性能(一)
目标检测改进 | 如何使用IOU改进自注意力以提升Sparse RCNN目标检测性能(一)
176 0
ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP(二)
ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP(二)
144 0

热门文章

最新文章

相关实验场景

更多