Dynamic Sparse R-CNN
date
Jun 2, 2022
Last edited time
Mar 27, 2023 08:52 AM
status
Published
slug
Dynamic_Sparse_R-CNN
tags
DL
CV
summary
type
Post
Field
Plat
1 简介主要贡献:2 相关工作2.1 General Object Detection2.2 Label Assignment2.3 Dynamic Convolution3Dynamic Sparse R-CNN3.1 回顾 Sparse R-CNN3.2 Dynamic Label Assignmentunits增加策略3.3 Dynamic Proposal GenerationStaircase Structure4 实验4.1 消融实验1、不同匹配器的影响2、q 的影响3、Experts 数量的影响4、可视化4.2 SOTA 对比
Sparse R-CNN是最近的一种强目标检测Baseline,通过对稀疏的、可学习的proposal boxes和proposal features进行集合预测。在这项工作中提出了 2 个动态设计来改进Sparse R-CNN。首先,Sparse R-CNN
采用一对一标签分配
方案,其中匈牙利算法对每个Ground truth
只匹配一个正样本。这种一对一标签分配
对于学习到的proposal boxes
和Ground truth
之间的匹配可能不是最佳的。为了解决这一问题,作者提出了基于最优传输算法的动态标签分配
(DLA),在Sparse R-CNN
的迭代训练阶段分配递增的正样本。随着后续阶段产生精度更高的精细化proposal boxes
,在后续阶段对匹配进行约束,使其逐渐松散。其次,在Sparse R-CNN
的推理过程中,对于不同的图像,学习到的proposal boxes
和proposal features
保持固定。在动态卷积的驱动下提出了Dynamic Proposal Generation
(DPG) 来动态组合多个Proposal Experts
,为连续的训练阶段提供更好的初始proposal boxes
和proposal features
。因此,DPG
可以导出与样本相关的proposal boxes
和proposal features
来进行判断。实验表明,Dynamic Sparse R-CNN
可以增强具有不同Backbone
的强Sparse R-CNN
Baseline
。特别是,Dynamic Sparse R-CNN
在 COCO 2017 验证集上达到了最先进的 47.2% AP,在相同的ResNet-50
Baseline
下比Sparse R-CNN
高出 2.2% AP。
1 简介
近年来,目标检测得到了快速的发展,从卷积神经网络 (CNN) 到 Transformer,特征提取的
Backbone
各不相同,检测Pipeline
的设计也各不相同。根据回归次数的不同,检测器主要可分为One-Stage
、Two-Stage
和Multi-Stage
。One-Stage
检测器直接预测给定图像中的回归目标和类别,而不需要进行细化步骤。Two-Stage
检测器首先生成有限数量的前景候选proposal
(例如,区域建议网络 (RPN)),然后将proposal
传递到检测网络以细化位置和类别。Multi-Stage
检测器可以多次细化位置和类别,从而提高性能,但通常需要大量的计算开销。One-Stage
检测方法一般可分为Anchor-Base
检测器和Anchor-Free
检测器。Anchor-Base
检测器在图像中设计密集的预定义Anchor
,然后直接预测类别并细化Anchor
的坐标。然而,手动Anchor
配置可能不是最终性能的最佳选择。为了克服这一问题,提出了Anchor-Free
检测器。Anchor-Free
检测器通常使用中心点或区域内的Ground truth
来定义正样本的proposal
和预测偏移,以获得最终的边界框。最近,基于
Transformer
的检测器被提出,通过使用Transformer
编码器和解码器架构将目标检测定义为一个集合预测问题。这些方法用少量可学习的目标查询代替Anchor
机制,可以对目标和全局图像上下文之间的关系建模,输出最终的预测结果。匈牙利算法
是一种基于分类和回归的组合损失,用于寻找Ground truth
和预测之间的匹配。但是这些检测器中的标签分配
是一对一的方式,在训练期间只有一个单一的检测器匹配一个Ground truth
。现有的基于 CNN 的方法,使用多对一的标签分配方案,假设分配多个阳性的
Ground truth
可以更有效地优化proposal
,可以促进检测器得到更好的性能。因此,针对
Sparse R-CNN
的强 Baseline,提出了基于最优传输算法的多对一
的动态标签分配
(DLA)。在Sparse R-CNN
的迭代阶段,也采用了逐渐增加的正样本分配给 GTs。由于每个阶段都会为下一个阶段产生精细化的proposal boxes
和proposal features
,作者希望限制Ground truth
和预测框之间的匹配,在前期阶段更严格,在后期阶段更宽松,因为在后续阶段的预测精度越来越高。此外,在
Sparse R-CNN
中,目标查询 (即proposal boxes
和proposal features
) 在训练过程中是可学习的,但在推理过程中对不同的图像保持固定。在动态卷积的驱动下提出了动态proposal
生成 (DPG),以在第一个迭代阶段提供更好的初始proposal boxes
和proposal features
。与固定proposal
相比,DPG
可以聚合多个与样本相关的并行Proposal Experts
,输出动态proposal
进行推理。作者将该方法命名为Dynamic Sparse R-CNN
,Dynamic Sparse R-CNN
在 COCO 2017 验证集上达到了最先进的 47.2% AP,在相同的ResNet-50
Backbone
下相对Sparse R-CNN
提升了 2.2% AP。主要贡献:
- 指出在基于
Transformer
的检测中,多对一标签分配
比一对一标签分配
更合理有效。将最优输运分配方法应用到Sparse R-CNN
中,并在迭代阶段将逐渐增加的正样本分配给 GTs。
- 设计了一个动态
proposal
生成机制来学习多个Proposal Experts
,并将他们组合起来生成动态proposal
和特征进行推理。
- 将这两种动态设计集成到
Sparse R-CNN
中,得到的Dynamic Sparse R-CNN
检测器,获得了 2.2% 的 AP 增益,使用 ResNet-50 Backbone 在 COCO 验证集上达到了最先进的 47.2% AP。
2 相关工作
2.1 General Object Detection
基于
CNN
的检测器由于各种特征提取Backbone
和Pipeline
设计的发展而取得了很大的进展。One-Stage
检测器可以直接预测给定图像中物体的位置和相关类别,而不需要区域建议和细化组件,包括Anchor-Base
检测器和Anchor-Free
检测器。Two-Stage
检测器首先用区域建议网络 (RPN) 生成固定数量的前景proposal
,然后将proposal
传递给检测网络,以细化目标的位置和类别。最近,基于
Transformer
的检测器利用Transformer
编码器和解码器的体系结构,将目标检测重新表述为一个集合预测问题。他们设计了少量的可学习的目标查询来建模目标和全局图像上下文之间的关系,并得到了很好的性能。解码器中的目标查询是 DETR 的必需组件。条件DETR
提出了一种快速训练收敛的条件空间查询方法。AnchorDETR
提出了一种基于Anchor
的查询设计,并以较少的训练时间实现了接近于DETR
的性能。Sparse R-CNN
提出R-CNN
中可学习的建议框和建议特征,并将特征图上提取的RoI
特征和相关的建议特征
传递到迭代结构(即动态头)进行预测。2.2 Label Assignment
标签分配
在目标检测器中占有重要地位。Anchor
检测器通常采用一定阈值的IoU
作为赋值标准。例如,RetinaNet
将 IoU 得分高于 0.5 的Anchor
定义为正样本,其他定义为负样本。YOLO
只采用与Ground truth
相关联的最大 IoU 得分的Anchor
作为正样本,这种标签分配
是一种一对一匹配
的方法。Anchor-Free
检测器将Ground truth
中心点或缩小的中心区域定义为正的,将其他区域定义为负的。ATSS
表明,Anchor-base
检测器与菲Anchor-base
检测器的本质区别在于标签分配
,于是提出了一种自适应训练样本选择方法,根据目标的统计特征划分正样本和负样本。PAA
提出了一种基于正、负样本联合损失分布为高斯分布的概率Anchor
分配方法。OTA
通过定义Ground truth
和background
为供应者
,定义Anchor
为需求者
,将标签分配
定义为一个最优运输问题,然后利用Sinkhorn-Knopp
迭代对问题进行高效优化。基于
Transformer
的检测器将目标检测视为集合预测问题,并将Ground truth
和目标查询之间的标签分配视为双边匹配
。匈牙利算法通过最小化全局损失来优化Ground truth
与目标查询之间的一对一匹配。在本文中,假设了基于Transformer
的检测器中一对一的标签分配是次优的,并探索了一种基于OTA
的Sparse R-CNN
的多对一匹配
的动态标签分配
。2.3 Dynamic Convolution
动态卷积
是一种动态结合多个卷积核与可学习的样本相关权值的技术,以增强模型表示能力的技术。Softmax
中的Temperature annealing
有助于提高训练效率和最终性能。CondConv
提出了有条件的参数化卷积,它为每个输入图像学习专门的卷积核。它将多个卷积核与子网生成的权值相结合,构造了一个图像指定的卷积核。DyNet
设计了几种基于动态卷积的动态卷积神经网络,包括Dy-MobileNet
、Dy-ShuffleNet
和Dy-ResNet
网络等。在本工作中,分析了
Sparse R-CNN
中对推理过程中不同输入的固定建议框和特征是次优的和不灵活的。基于动态卷积
,通过在推理过程中生成动态样本相关的建议来改进Sparse R-CNN
。3Dynamic Sparse R-CNN
3.1 回顾 Sparse R-CNN
Sparse R-CNN
是一个比较强的目标检测Baseline
,通过对稀疏可学习目标建议进行预测,然后再使用一个迭代结构(即dynamic head
)来逐步完善预测。每个迭代阶段的输入由 3 个部分组成:- Backbone 提取的 FPN 特征
Proposal Boxes
和Proposal Features
- 输出包括预测的 box、相应的类以及目标特征
将一个阶段输出的预测框和目标特征分别用作下一阶段的改进
Proposal Boxes
和Proposal Features
。Proposal Boxes
是一组固定的区域建议 (Np×4),指定目标的潜在位置。Proposal Features
是潜在向量 (Np×C),以编码实例特征(例如,姿态和形状)。在
Sparse R-CNN
中,Proposal Boxes
在训练期间学习并固定用于推理。Proposal Boxes
应用基于 Set 的损失对预测和Ground truth
进行双边匹配
,与匈牙利算法的一对一匹配。下图明了Sparse R-CNN
的设计。作者分析了
Sparse R-CNN
的 2 个主要局限性:- 首先,
Sparse R-CNN
采用检测预测与Ground truth
一对一匹配的方法,这种方法容易出现次优,训练效率低。
- 其次,
Ground truth
中学习到的Proposal Boxes
和Proposal Features
代表了训练集的统计量,它们对特定的测试图像不具有自适应性。
在本文的工作中,设计了 2 个方案来改进
Sparse R-CNN
。分别是:- Dynamic Label Assignment
- Dynamic Proposal Generation
3.2 Dynamic Label Assignment
在
Sparse R-CNN
中,使用匈牙利算法进行一对一匹配,即每个Ground truth
与一个预测框匹配。假设这种一对一匹配
可能不是最优的。给Ground truth
分配多个预测框可以更有效地优化Proposal
,促进检测器的训练。为了实现
多对一匹配
,遵循基于CNN
的方法,并将最优传输分配
(OTA) 应用于Transformer
。具体来说,OTA
是一个探索如何将检测框与Ground truth
相匹配的公式。该公式将Ground truth
作为供应者提供分配配额,将检测框作为需求方寻求分配。背景类也被定义为提供默认赋值的供应者。数学上,假设在一幅图像中有 个
Ground truth
,每个Ground truth
都提供了 的赋值,这些赋值称为units
。 个检测框中的每一个尝试得到一个units
,成功的匹配称为positive assignment
。背景提供了 个units
来满足没有分配任何Ground truth
的检测框,这称为negative assignments
。优化目标可定义为:其中, 是
Ground truth
的编号, 是检测框的编号 , 是一个平衡分类和回归损失的系数。每个positive assignment
的代价是分类损失 和回归损失 的总和,而每个negative assignments
的代价只是分类损失 。 表示Ground truth
和检测框 之间需要优化的匹配结果。每个供应者提供的
units
数量 可以是固定的或动态的。根据OTA
中的动态 估计方法,本文的工作基于预测和Ground truth
前 个IoU 值
汇总作为 值的估计。在该策略中,选择每个Ground truth
的Top-q
IoU
值,并将其求和作为 值的估计。如果总体预测得越准确, 那么应该增多作为正样本的数量
基于
标签分配
的最优传输理论 ( ),每个Proposal
(即需求方)只需要Ground truth
(即供应方)提供的一个units
标签单元。因此,一个
Proposal
将不会被分配给不同的Ground truth
。动态估计方法一般适用于 。假设 是 Ground truth 的数量, 是总Proposal
的数量,如果 ,将为每个Ground truth
减少 个相同的比例因子,以确保至少有 的positive assignment
。意为一个Proposal
只能对应一个gt
意为一个gt
对应 个Proposal
意为gt
和背景总共匹配 个Proposal
, 意为第 个gt
与第 个Proposal
相匹配
units
增加策略
Sparse R-CNN
采用了迭代架构,逐步提高预测精度。作者提出了一种简单的units
递增策略来促进迭代结构的训练。当前期Dynamic head
的预测不够准确时,希望供应方 (Ground truth
) 提供少量的units
,这使得匹配更加严格。当后期Dynamic head
的预测越来越准确时,逐渐放松约束,让供应方 (Ground truth
) 提供更多的units
进行匹配。简单的
units
增加策略可以定义如下:在本文中使用默认的迭代阶段数 (T=6)。
3.3 Dynamic Proposal Generation
在
Sparse R-CNN
中,将一组Proposal Boxes
和Proposal Features
连同从 FPN Backbone( 到 ) 所提取的特征一起送入Dynamic head
。这些Proposal
在训练期间是可学习的,但在推断期间是固定的。在动态卷积的驱动下,针对输入图像生成Proposal Boxes
和Proposal Features
可以提高检测的性能。在图 3(a),
Proposal Boxes
和Proposal Features
是 个不同的Proposal Boxes
和Proposal Features
集的线性组合,每个集合被称为一个Experts
。由Experts
权重生成网络生成组合Experts
的系数 (称为expert weight
)(图 3(b))。DPG 模块可以制定如下。 其中为输出的
Dynamic Proposal Boxes
,为输出的Dynamic Proposal Features
, 为expert weight
生成网络 学习到的Proposal expert weight
, 为从 FPN Backbone( 到 ) 所提取的特征。Staircase Structure
expert weight
生成网络遵循动态卷积结构的基本设计,如图 3(b) 所示还使用了 softmax 中的temperature annealing operation (tao)
来控制expert weight
,使训练过程更加有效。作者还构造了一个
Staircase Structure
来聚集来自不同金字塔层的特征。 到 的特征在尺度上是依次下降的: 的宽和高是 的 1/2。最后,将连接的数据插值到一个 特征图 (每个金字塔层的 ) 中。然后,将 通道通过求和进行融合,得到的 特征图被
Flatten
到 个 FC 层。第 个 FC 的尺寸是 ,第 2 个的尺寸是 。这里作者构建了 (expert
数量),(Proposal Boxes
和Proposal Features
数量)。才4个?
4 实验
4.1 消融实验
1、不同匹配器的影响
如表 3 所示,具有固定 值 () 的
OTA匹配器
与Baseline
相比,AP 的提升率为 0.9% AP。在动态 估计中使用 的OTA匹配器
增加了 1.1% AP,这证明了使用动态 k 的有效性。units
增加策略进一步将 AP 提高到 46.7% AP,说明这种简单的设计是有效的。此外,具有 和
units
增加策略的OTA匹配器
AP75 和 APs 都增加了近 3 个百分点。可见动态多对一匹配方案产生了更多样化的预测框选项,以匹配Ground truth
。该方案特别适用于对小物体的检测。2、q 的影响
如表 4 所示,在 Dynamic k Estimation 中尝试了 的不同选择,发现 效果最好。值得注意的是,表 4 中的所有结果都优于一对一匹配 (45.0%),这验证了动态多对一匹配方案的有效性。
3、Experts 数量的影响
如表 5 所示尝试了不同数量的 Experts,并在该方法中使用 4 个 Experts 作为默认值可以得到最好的性能。
所以不解释两句Expert数量这么少的原因吗? 瞎扯两句丫 好歹
4、可视化
图 4 可视化了通过
Dynamic Sparse R-CNN
进行的采样检测结果。Dynamic Sparse R-CNN
可以正确地检测不同尺度、外观等的目标。