| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection翻译 -> 正文阅读 |
|
[人工智能]DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection翻译 |
点击下载代码下载摘要????我们提出了 DINO(是DETR with Improved deNoising anchOr boxes中的大写字母的缩写),一个目前最好的端到端的目标检测模型。 DINO通过在降噪训练上使用对比方法、锚框初始化的混合查询选择方法、盒子预测的前看两次方法,提高了以前基于DETR的模型的性能和效率。 DINO在COCO上使用 ResNet-50作为骨架和多尺度的特征用了十二轮的训练达到了48.3AP和三十六轮达到了51.0AP,与以前最好的基于DETR的DN-DETR模型相比分别高出了 +4.9AP和 +2.4AP。DINO的尺度在模型大小和数据大小上都很好。在Objects365数据集上使用 SwinL作为骨架预训练后的DINO在 COCO val2017 (63.2AP) 和 test-dev (63.3AP)上都达到了最好的结果。与leaderboard上的其他模型相比,DINO大大减小了它的模型大小和预训练数据大小并且达到了最好的结果,代码开源了请看 https://github.com/IDEACVR/DINO。 关键字:目标检测;检测Transformer;端到端检测;1、引言????对计算机视觉来说目标检测是一个基础任务。传统的基于卷积的目标检测算法取得了显著的进展。尽管这些算法通常包括手动设计的组件,如锚框生成和非最大抑制,他们产生了最好的检测模型比如:DyHead和用 HTC++的 Swin和SwinV2。如在leaderboard上的 COCO test-dev所示。 2、相关工作2.1、传统目标检测????早期的基于卷积的目标检测要么是两阶段要么是一阶段模型都是基于手动锚框和参考点的。两阶段模型,通常使用一个区域选择网络来选择潜在的盒子,然后这些盒子在第二阶段被精心筛选。一阶段模型比如YOLO v2 和YOLO v3直接输出相对偏移去来预定义锚框。最近一些基于卷积的模型像HTC++ 和 Dyhead在 COCO 2017数据集上的性能已经达到了顶峰。然而,基于卷积的模型的性能依赖于生成锚框的方式。而且他们需要手动设计组件像NMS去删除重复的盒子,因此不能执行端到端优化。 2.2、DETR和它的变种????Carion et al提出了基于Transformer的端到端的目标检测并命名为DETR (DEtection TRansformer前两个字母的缩写)它没有使用像锚框设计和NMS这种手动设计的组件。很多后续的论文试图通过解码器跨注意力解决DETR的训练时慢收敛的问题。例如Sun et al设计的只有编码器没有解码器的DETR。 Dai et al提出让动态编码器聚焦多特征层次的重要区域。 2.3、大规模目标检测预训练????大规模预训练已经拥有很大的影响在自然语言处理和计算机视觉中。当今最好的性能的检测器几乎都是使用大的骨架在大规模数据上完成的。例如, Swin V2延伸它的骨架大小到30亿个参数并且用7千万私人收集的图片预训练它的模型。 Florence第一次用9亿个私人策划的图片文本对预训练它的骨架然后用9百万个带标注的或者伪盒子的图片预训练它的检测器。相比之下,DINO达到目前最好的结果只用了一个公开可用的 SwinL作为骨架和公开的 Objects365数据集(170万个带标注的图片)。 3、DINO:改进的去噪锚框DETR3.1、准备工作????正如 Conditional DETR和DAB-DETR中研究的那样,很明显DETR中的查询由两部分组成:一个位置部分,一个内容部分,他们在本篇论文中被描述为位置查询和内容查询。DAB-DETR明确的将DETR中的每个位置查询表示为一个4D锚框 (x, y, w, h),其中x和y是盒子的中心点,w和h是相应的宽和高。这种明确的锚框使得在解码器中动态的逐层改进锚框变得更容易。DN-DETR引入了一个去噪的(DN)训练方法,来加速基于 DETR模型的训练收敛速度。这表明DETR中的慢收敛问题是由二分图匹配中的不稳定造成的。为了减小这个问题,DN-DETR提出了将带噪的真实 (GT)标签和盒子填充到Transformer的解码器中,用重构的真实标签训练模型。添加的噪音
(
?
x
,
?
y
,
?
w
,
?
h
)
(?x, ?y, ?w, ?h)
(?x,?y,?w,?h)是被限制在
∣
?
x
∣
<
λ
w
2
|?x| < \frac{λw}{2}
∣?x∣<2λw?,
∣
?
y
∣
<
λ
h
2
|?y| <\frac{λh}{2}
∣?y∣<2λh?,
∣
?
w
∣
<
λ
w
|?w| < λw
∣?w∣<λw, 和
∣
?
y
∣
<
λ
h
|?y| < λh
∣?y∣<λh。其中 (x, y, w, h)意思是一个真实的盒子的坐标信息,
λ
\lambda
λ是一个超参数用来控制噪音的比例。因为DNDETR 按照 DAB-DETR将解码器查询视为一个锚框,带噪的真实盒子可以被视作真实盒子临近的一个特殊的锚框因为
λ
\lambda
λ通常很小。除了原先的DETR的查询, DN-DETR增加了一个 DN部分,它将带噪的真实标签和盒子送入解码器来提供附加的DN损失,DN损失有效的稳定和加速DETR训练并能被插入到任何基于DETR的模型中。 3.2、模型总览????作为基于DETR的模型, DINO是一个端到端的架构,它包含了一个骨架,一个多层Transformer编码器,一个多层Transformer解码器和多个预测头。整体框架看图二。给定一个图片我们用 ResNet或者 Swin Transformer作为骨架来提取多尺度特征,然后结合相应的位置嵌入,将他们放到Transformer编码器中,在编码器层特征增强后,我们提出了一个新的混合查询选择策略来初始化锚框作为解码器的位置查询。注意这种策略没有初始化内容序列但是让他们变得可学习。在3.4部分会介绍更多的混合查询选择的细节。结合初始化锚框和可学习的内容查询,我们用可变注意力逐层的结合编码器输出的特征并更新查询,最终的输出是用精炼的锚框形成的,分类结果是从精炼的内容特种中预测的。正如DN-DETR,我们有一个额外的DN分支来执行去噪训练。超过了标准的DN方法,我们通过考虑硬负样本提出了一个新的对比去噪训练训练方法,这将在3.3部分讲解。为了充分利用从最后一层提炼的盒子信息来帮助优化他们早期临近层的参数,一个新颖的向前看两次的方法是被提出来来传递相邻层之间的梯度,这将在3.5部分进行描述。 3.3、对比去噪训练????DN-DETR在稳定训练和加速收敛上是非常有效的。在DN查询的帮助下,在有 GT盒子的附近的锚框的基础上学着去做预测。然而它在没有物体在附近的锚框缺乏预测没有物体的能力。为了解决这个问题,我们提出了对比去噪 (CDN)方法来拒绝无用的锚框。 ????实现 DN-DETR有一个超参数
λ
\lambda
λ来控制噪声比例,生成的噪声不大于
λ
\lambda
λ,因为DN-DETR希望模型从中等噪声的查询中重建真实(GT)。在我们的方法中,我们有两个超参数
λ
1
\lambda_1
λ1?和
λ
2
\lambda_2
λ2?其中
λ
1
<
λ
2
\lambda_1<\lambda_2
λ1?<λ2?。如图三中的同心正方形,我们生成两个类型的 CDN序列:正序列和负序列,正序列在内部正方形中有一个比
λ
1
\lambda_1
λ1?大但是比
λ
2
\lambda_2
λ2?小的噪音比例,他们是被期望用来预测‘没有目标’。我们通常采用小的
λ
2
\lambda_2
λ2?因为硬的负样本更接近于真实盒子更有利于提高性能,如图三所示,每个CDN组有一个正的和负的查询集合,如果一个图片有n个GT盒子,一个 CDN组将会有2 x n个查询即每个 GT盒子将会生成一个正的和负的查询。与DN-DETR类似,我们同样用多个CDN组去提高我们方法的效率。盒子回归的重构损失是
l
1
l_1
l1?和 GIOU损失,分类的重构损失为聚焦损失。将负样本分类为背影的损失也是聚焦损失。 分析我们的方法有效的原因是它能抑制不确定性,并为预测边界框选择高质量锚框(查询)。当多个锚框是接近一个目标时不确定性将发生。这种情况下,对模型来说很难决定选择那个锚框。不确定性可能导致两个问题。第一个是重复预测,尽管基于DETR的模型在基于集合的损失和自注意力的帮助下能抑制重复的盒子,但是能力是有限的。如在图8左边的图,当用DN查询取代我们的CDN查询时,箭头所指的孩子有三个重复的预测。在CDN查询下,我们的模型能区分锚框和避免重复预测上的轻微的不同,如图8的右图。第二个问题是可能会选择离GT框更远的不需要的锚框。尽管去噪训练已经改善了模型选择临近锚框的问题,CDN通过教模型拒绝更多锚框来进一步提高了这一能力。 有效性:为了说明CDN的有效性,我们定义了一个称为平均Top-K距离的指标 (ATD(k))并使用它在匹配部分来评估锚框与他们的目标真实盒子的距离有多远。正如在DETR中的,每个锚框对应一个预测,该预测可能与GT框或背景相匹配。这里我们只考虑具有GT盒子的匹配。假设我们在验证集中有N个GT边界框
b
0
,
b
2
,
.
.
.
,
b
N
?
1
b_0, b_2, ..., b_{N-1}
b0?,b2?,...,bN?1?其中,
b
i
=
(
x
i
,
y
i
,
w
i
,
h
i
)
b_i= (x_i, y_i, w_i, h_i)
bi?=(xi?,yi?,wi?,hi?)。对于每一个
b
i
b_i
bi?,我们能找到它的相应的锚框并标注为
a
i
=
(
x
i
′
,
y
i
′
,
w
i
′
,
h
i
′
)
a_i = (x^′_i, y^′_i, w^′_i, h^′_i)
ai?=(xi′?,yi′?,wi′?,hi′?)。
a
i
a_i
ai?是解码器的初始化锚框盒子,在匹配时它的精选盒子在最后一层解码器之后被分配给 3.4、混合查询选择????在 DETR和DN-DETR中解码器查询是没有用任何来自单独图片的编码特征的静态嵌入,如图五(a)所示,他们直接从训练数据中学习锚框 (在DN-DETR 和 DAB-DETR中)和位置查询(在DETR中)并将内容查询都设置为0向量。Deformable DETR学习位置和内容查询,这是静态查询初始化的另一种实现。为了进一步提高性能,Deformable DETR有一个查询选择变量(叫做‘两阶段’),它从最后一个编码器层中选择前K个编码器特征作为优先级,以增强解码器查询。如图五(b)所示,位置和内容查询都是由被选中的特征的线性变换生成的。除此之外,这些被选中的特征被添加一个辅助检测头来获得预测框,这被用做初始化参考框。同样,Efficient DETR还根据每个编码器特征的客观性(类)得分选择前K个特征。 3.5、前看两次????在本节中,我们提出了一种新的框预测方法。Deformable DETR中的迭代框细化阻止梯度反向传播以稳定训练。我们将该方法命名为向前看一次,因为 i 层的参数仅根据盒子
b
i
b_i
bi?的附加损失进行更新的。如图六(a)所示,然而,我们推测来自后一层的改进盒子信息可能更有助于纠正其相邻前层的盒子预测。因此我们提出了另一种叫做前看两次的方法来执行盒子更新,其中第 i 层的参数是受第 i 层和第 i+1 层损失的影响,如图六(b)。对于每个预测的偏置
?
b
i
?b_i
?bi?它将用于更新盒子两次。一次是
b
i
′
b^′_i
bi′?,另一次是
b
i
+
1
p
r
e
d
b^{pred}_{i+1}
bi+1pred?。因此我们将我们的方法取名为前看两次。 4、实验4.1、设置数据和骨干: 我们在COCO 2017目标检测数据集上进行评估,它被分成 train2017 和 val2017(也称为minival)。我们报告了使用两个不同骨架的结果:ResNet-50在 ImageNet-1k上的预训练结果和SwinL在 ImageNet-22k上的预训练结果。使用ResNet-50的DINO是在train2017上训练没有额外的数据。然而使用SwinL的DINO是先在 Object365上预训练,然后在train2017上微调。我们报告了在val2017上使用不同IoU阈值和目标尺度下的标准平均精度(AP)的结果。我们也报告了DINO使用 SwinL在test-dev上的结果。 4.2、主要结果12轮的设置: 用我们的改进过的锚框的去噪和训练损失,可以显著加快训练过程。如表1所示,我们将我们的方法和具有较强基准的方法比如基于卷积的方法和基于DETR的方法进行比较。为了公平起见,我们在表一种列出了所有模型在A100 NVIDIA GPU上测试的 GFLOPS 和 FPS的报告。除了DETR 和 DAB-DETR所有方法都用多尺度特征。对于这些没有多尺度特征的,我们报告了带有 ResNet-DC5的结果, ResNet-DC5有一个更好的性能,因为它使用更大分辨率的特征图。因为一些方法采用了5个尺度的特征图,一些采用4个,因此我们报告我们的结果也用4个和5个尺度的特征图。 用ResNet-50作为骨架和最好的模型相比: 为了在收敛速度和性能上验证我们的模型的有效性,我们都用ResNet-50作为骨架将我们的方法和几个强基准模型进行了比较。尽管最常见的是设置50轮,我们采用设置24(2倍)和36(3倍)轮,因为我们的方法收敛的更快,50轮训练只会产生较小的额外增益。表2 中的结果显示,只用24轮训练,我们的方法用4和5个尺度分别达到了 +1.3 AP 和 +1.6 AP的提高。而且用36轮在3倍设置,用4和5个尺度分别增加了 +1.9 和 +2.4 AP,在图七中展示了详细的收敛比较曲线。 4.3、与目前最好的模型进行比较????为了与目前最好的结果进行比较,我们用开源的 SwinL作为骨架在ImageNet-22K上进行预训练,首先,我们在Objects365数据集上预训练DINO,然后在COCO上微调。如表三所示,DINO在 COCO val2017 和 test-dev上分别达到了最好的63.2AP 和 63.3AP的结果。这说明了它在更大的模型和数据大小上具有很强的可扩展性。注意,在表三中所有以前最好的模型都没有用 Transformer基于解码器的检测头 (HTC++ [4] 和 DyHead [7])。这是首次一个端到端Transformer解码器在leaderboard上达到了最好的模型。与以前最好的模型相比,我们用了一个更小的模型大小(是1/15的SwinV2-G的参数量),骨干预训练数据大小(是Florence的1/60个图片),检测预训练数据大小(是Florence的1/5个图片),然而达到了更好的结果。除此之外,我们报告的性能没有增加测试时间(TTA),是干净的结果没有啥花里胡哨的东西。结果的有效性表明 DINO与传统的检测方法相比具有较高的检测性能。 4.4、消融实验新算法组件的有效性:为了验证我们所提方法的有效性,我们使用优化的DN-DETR和纯查询选择构建了一个强大的基线,如第3.1节所述。我们将所有管道优化和工程技术(见第4.1节和附录D)纳入强基线。强基线的结果见表4第3行。我们在表四第二行展示了没有使用来自 Deformable DETR的纯查询选择,优化DN-DETR的结果。尽管我们强基线性模型能优于以前所有的模型,但我们在DINO中的三种新方法进一步显著提高了性能。 5、结论????在本篇论文中,我们展示了一个强大的端到端的Transformer解码器的具有对比去噪训练、混合查询选择、前看两次的DINO,它在训练效率和最终的检测性能上都具有重大的提升。因此,DINO在COCO val2017上在12轮和36轮的设置中使用多尺度特征胜过了以前最好的基于ResNet-50的模型。受到改进的激励,我们进一步探索用更强大的骨干在更大的数据集上训练DINO,并在COCO 2017 test-dev上达到了一个新的目前最好的 63.3 AP。这一结果确立了基于DETR的模型作为主流检测框架,不仅因为其新颖的端到端检测优化,而且因为其优越的性能。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:57:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |