当前位置: 首页 > news >正文

IDEA-Research推出的一系列检测、分割模型:从DINO(改进版DETR)、Grounding Dino、DINO-X到Grounded SAM2

前言

本文一开始是属于此文《自监督ViT与目标检测:从基于ViT的DINO、DINOv2,到最新目标检测器Grounding Dino、DINO-X》的后半部分,然因以下两点

  1. 如读者Whynot886所说
    DINOv1和v2是自监督视觉主干DINO
    而GroundingDINO和DINO-X里的DINO是目标检测器,即DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection

    强行把这4个模型放在一篇文章里,容易对不太分得清的初学者产生困扰
  2. 我在解读VideoMimic的时候,遇到了Grounded SAM2,而其是IDEA-Research推出的
    故值得把IDEA-Research推出的一系列目标检测、分割模型——从DINO(基于DETR)、Grounding Dino、DINO-X到Grounded SAM、Grounded SAM2 单独成文

于此,便有了本文

第一部分 DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection

1.1 引言与相关工作

1.1.1 引言

如原DINO论文所说,与传统检测算法相比

  • DETR [3] 是一种新颖的基于Transformer的检测算法。它无需手工设计的组件,并且能够达到与优化后的经典检测器(如Faster RCNN [31])相当的性能

    详见此文《一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、DETR(首发于18年,修订于25年)》的「第五部分 DETR:首次通过结合CNN+Transformer端对端解决object detection」
  • 与以往的检测器不同,DETR将目标检测建模为集合预测任务,并通过二分图匹配来分配标签

    它利用可学习的查询向量探测目标的存在,并结合图像特征图中的特征,这种方式类似于软ROI池化 [21]
    尽管DETR在性能上表现出色,但其训练收敛速度较慢,且查询的含义不明确

为了解决这些问题,已经提出了多种方法,例如引入可变形注意力机制[41]、解耦位置信息与内容信息[25]、提供空间先验[11,39,37]等

  1. 最近,DAB-DETR[21]提出将DETR的查询形式化为动态锚框(DAB),从而弥合了传统基于锚框的检测器与DETR类检测器之间的差距
  2. DN-DETR[17]进一步通过引入去噪(DN)技术,解决了二分匹配过程中的不稳定性。DAB与DN的结合,使DETR类模型在训练效率和推理性能上都能与传统检测器竞争
  3. 目前最优秀的检测模型主要基于改进的经典检测器,如 DyHead [8] 和 HTC[4]。例如,SwinV2 [22] 中展示的最佳结果就是采用 HTC++ [4,23] 框架训练得到的

造成这一现象的主要有两个原因:

  1. 此前的 DETR 类模型在性能上不及经过改进的经典检测器。大多数经典检测器已经被充分研究且经过高度优化后,其性能优于最新开发的DETR类模型。例如,目前表现最好的DETR类模型在COCO数据集上的AP仍低于50
  2. DETR类模型的可扩展性尚未得到充分研究,目前还没有关于DETR类模型在扩展到大型主干网络和大规模数据集时表现的相关报告

对此,2022年3月,来自1 港科大、2 清华计算机科学与技术系、3 International Digital Economy Academy (IDEA)、4 港科大(广州校区)的研究者:Hao Zhang1,3∗†, Feng Li1,3∗†, Shilong Liu2,3∗†, Lei Zhang3‡, Hang Su2, Jun Zhu2, Lionel M. Ni1,4, Heung-Yeung Shum1

  • 通过改进去噪训练、查询初始化和边框预测,且基于DN-DETR [17]、DAB-DETR [21]和Deformable DETR [41]设计了一种新的类DETR模型——即为《DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection》
  • 如下图图1所示,在COCO上的对比结果表明DINO具有卓越的性能

作为一种类似DETR的模型,DINO包含一个骨干网络、多层Transformer编码器、多层Transformer解码器以及多个预测头

  • 借鉴DAB-DETR [21]的方法,作者将解码器中的查询表示为动态锚框,并在解码器各层中逐步细化
  • 参考DN-DETR [17],在Transformer解码器层中加入带噪声的真实标签和框,以帮助训练过程中稳定二分匹配
  • 同时,采用了deformable attention[41],以提升计算效率

此外,作者提出了三种新方法:对比式DN训练、混合查询选择、针对DINO不同部分的双重前瞻机制,具体而言

  1. 首先,为了提升一对一匹配性能,提出了一种对比去噪训练方法,即同时加入同一真实目标的正样本和负样本
    对同一真实框添加两种不同噪声后,将噪声较小的框标记为正样本,另一个为负样本。对比去噪训练有助于模型避免对同一目标产生重复输出
  2. 其次,动态锚框的查询表述将DETR类模型与经典两阶段模型关联起来
    因此,作者提出了一种混合查询选择方法,以更好地初始化查询。他们从编码器的输出中选择初始锚框作为位置查询,类似于[41,39],而内容查询依然保持可学习,以鼓励解码器的第一层关注空间先验
  3. 第三,为了利用后续层中细化的框信息来优化其相邻早期层的参数,作者提出了一种新的“前瞻两次”方案,通过后续层的梯度来修正已更新的参数

1.1.2 相关工作

第一,对于经典目标检测器

早期基于卷积的目标检测器分为两阶段和单阶段模型,这些模型依赖于人工设计的锚框或参考点

  1. 两阶段模型[30,13]通常采用区域提议网络(RPN)[30-Faster r-cnn: Towardsreal-time object detection with region proposal networks]来生成候选框,然后在第二阶段进行精细化
    更多,详见此文《一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、DETR(首发于18年,修订于25年)》
  2. 一阶段模型如 YOLO v2 [28] 和 YOLO v3 [29] 则直接输出相对于预定义锚框的偏移量

近年来,一些基于卷积的模型如 HTC++ [4] 和Dyhead [7] 在 COCO 2017 数据集 [20] 上取得了顶尖性能。然而,卷积模型的性能依赖于其生成锚框的方式

此外,这些模型还需要人工设计的组件(如 NMS)来去除重复框,因此无法实现端到端优化

第二,对于DETR及其变体

Carion等人[3]提出了一种基于Transformer的端到端目标检测器,名为DETR(Detection Transformer),该方法无需使用手工设计的组件,如锚框设计和非极大值抑制(NMS)

许多后续研究致力于解决DETR由于解码器交叉注意力导致的训练收敛缓慢问题

  • 例如,Sun等人[34]设计了一种仅包含编码器的DETR,完全不使用解码器
  • Dai等人[7]提出了一种动态解码器,能够从多个特征层中聚焦于重要区域

另一类研究工作则致力于更深入地理解DETR中的解码器查询,许多论文从不同角度将查询与空间位置相关联

  • Deformable DETR [41]预测二维锚点,并设计了一种可变形注意力模块,仅关注参考点周围的特定采样点
    Efficient DETR [39] 从编码器的密集预测中选择前K个位置,以增强解码器查询
  • DAB-DETR [21] 进一步将二维锚点扩展为四维锚框坐标,用于表示查询,并在每一层解码器中动态更新锚框
    近期,DN-DETR [17] 引入了一种去噪训练方法,加速了DETR的训练过程。该方法将添加噪声的真实标签和锚框输入解码器,并训练模型重构原始信息

本文提出的DINO工作基于DAB-DETR和DN-DETR,同时采用可变形注意力机制以提升计算效率

// 待更

第二部分 Grounding Dino:类似DETR,检测任意对象

2.1 Grounding Dino的提出与相关背景

2.1.1 Grounding Dino:类似DETR

23年3月,清华大学、IDEA-Research等机构「即粤港澳大湾区数字经济研究院(International Digital Economy Academy,简称IDEA研究院,后还于24年1月提出了Grounded SAM,详见此文《SAM(分割一切):从SAM、FastSAM、Grounded SAM到SAM2、SAMURAI——从分割图像到分割视频」推出Grounding DINO

  • 其对应的论文为《Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection》
    作者机构包括清华大学、IDEA、港科大、港中文、微软研究院、华南理工
  • Grounding DINO——类似DETR,通过结合基于Transformer的检测器DINO与基础预训练,可以通过人类输入(如类别名称或指代表达)检测任意对象

    开放集目标检测的关键解决方案是将语言引入闭集检测器以实现开放集概念泛化。为了有效融合语言和视觉模态,他们将闭集检测器概念性地划分为三个阶段,并提出了一种紧密融合的解决方案,包括特征增强器、语言引导的查询选择以及用于模态融合的跨模态解码器

2.1.2 提出背景:将封闭集检测器扩展到开放集场景

首先,对于基于DINO的紧密模态融合

开放集检测的关键在于引入语言来实现对未见物体的泛化[1,7,25]。大多数现有的开放集检测器是通过将闭集检测器扩展到具有语言信息的开放集场景而开发的

如下图图2所示——将封闭集检测器扩展到开放集场景

闭集检测器通常有三个重要的模块

  • 一个用于特征提取的主干
  • 一个用于特征增强的颈部
  • 以及一个用于区域细化(或框预测)的头部

通过学习语言感知的区域嵌入,一个闭集检测器可以被泛化以检测新颖的物体,从而使每个区域可以在语言感知的语义空间中分类为新颖类别。实现这一目标的关键是在颈部Neck和/或头部Head输出的区域输出和语言特征之间使用对比损失——比如contrastive Loss A/contrastive Loss B,为了帮助模型对齐跨模态信息,一些工作尝试在最终损失阶段之前融合特征

特征融合可以在三个阶段进行:颈部(阶段A 即Feature Fusion A)查询初始化(阶段B 即Feature Fusion B)头部(阶段C 即Feature Fusion C)。例如,GLIP [25]在颈部模块(阶段A)中进行早期融合,而OV-DETR [55]使用语言感知查询作为头部输入(相当于在阶段B融合)

总之,作者认为在管道中引入更多的特征融合可以促进不同模态特征之间的更好对齐,从而实现更好的性能

作者在论文中说,尽管概念上简单,但以往的工作很难在所有三个阶段进行特征融合

  • 经典检测器如Faster RCNN的设计使得在大多数模块中难以与语言信息交互
  • 与经典检测器不同,基于Transformer的检测方法如DINO具有与语言模块一致的结构。逐层设计使其能够轻松与语言信息交互

基于后者这一原则,他们在颈部、查询初始化和头部阶段设计了三种特征融合方法,更具体地说

  1. 他们设计了一个特征增强器,通过堆叠自注意力、文本到图像的交叉注意力和图像到文本的交叉注意力作为颈部模块
  2. 然后,开发了一种语言引导的查询选择方法来初始化检测头的查询
    且还为头部阶段设计了一个跨模态解码器,具有图像和文本的交叉注意力层,以增强查询表示

其次,对于大规模的零样本转移基础训练

作者指出,大多数现有的开放集模型[14,21]依赖于预训练的CLIP模型进行概念泛化。然而,CLIP的效力,特别是在图像-文本对上预训练的效力,对于区域-文本对检测任务是有限的——正如RegionCLIP [61]研究所指出的那样

  1. 相比之下,GLIP [25]通过将目标检测重新表述为短语定位任务并在大规模数据上引入对象区域与语言短语之间的对比训练,展示了一种不同的方法
    它在异构数据集上表现出极大的灵活性,并在封闭集和开放集检测上表现出显著的性能
  2. 作者采用并改进了基础训练方法。GLIP的方法涉及将所有类别以随机顺序连接成一个句子。然而,直接的类别名称连接在提取特征时并未考虑不相关类别之间的潜在影响

    为了缓解这一问题并提高基础训练期间的模型性能,作者引入了一种利用子句级别文本特征的技术。它在单词特征提取期间消除了不相关类别之间的注意力。关于这一技术的进一步说明可以在原论文第3.4节中可以找到

总之,他们在大规模数据集上预训练了Grounding DINO,并在COCO [29]等主流目标检测基准上评估性能

2.2 Grounding DINO的整体方法论与架构

Grounding DINO为给定的(图像,文本)对输出多个对象框和名词短语对。例如,如下图图 3 所示

模型从输入图像中定位到一只猫和一张桌子,并从输入文本中提取出单词“猫”和“桌子”作为相应的标签。对象检测和REC 任务都可以与该流程对齐

按照 GLIP [25] 的方法,将所有类别名称连接为对象检测任务的输入文本。REC 需要一个边界框用于每个文本输入。使用得分最高的输出对象作为REC任务的输出

Grounding DINO 是一种双编码器-单解码器架构,它包含

  1. 一个用于图像特征提取的图像骨干网络
  2. 一个用于文本特征提取的文本骨干网络
  3. 一个用于图像和文本特征融合的特征增强器,即a Feature Enhancer for image and text feature fusion
  4. 一个用于查询初始化的语言引导查询选择模块,即a Language-guided Query Selection module for query initialization
  5. 以及一个用于框体细化的跨模态解码器,即a Cross-Modality decoder for box refinemen

对于每个图像-文本对——(Image, Text) pair,首先使用图像骨干网络和文本骨干网络分别提取原始图像特征和原始文本特征。两个原始特征被输入到特征增强器模块中进行跨模态特征融合

在获得跨模态文本和图像特征后,使用语言引导查询选择模块从图像特征中选择跨模态查询。就像大多数类似 DETR模型中的对象查询一样

这些跨模态查询将被输入到跨模态解码器中,以从两个模态特征中探测所需特征并更新自身,最后一个解码器层的输出查询将用于预测对象框并提取相应的短语

2.2.1 特征提取和增强器

给定一个图像-文本对——(Image, Text) pair,使用类似Swin Transformer [32] 的图像骨干网络提取多尺度图像特征,并使用类似BERT [8] 的文本骨干网络提取文本特征

遵循之前类似DETR 的检测器[57,64],多尺度特征从不同块的输出中提取。在提取原始图像和文本特征后,将它们输入到一个特征增强器中进行跨模态特征融合

  1. 特征增强器包括多个特征增强层。在图3 的第2 块中展示了一个特征增强层。利用可变形自注意力来增强图像特征,并使用原始自注意力来增强文本特征

  2. 受GLIP [25] 的启发,添加了一个图像到文本和一个文本到图像的交叉注意力模块用于特征融合。这些模块有助于对齐不同模态的特征

2.2.2 语言引导的查询选择

Grounding DINO旨在检测由输入文本指定的图像中的对象。为了有效利用输入文本指导对象检测,作者设计了一个语言引导的查询选择模块,用于选择与输入文本更相关的特征作为解码器查询 

  1. 令图像特征为\mathbf{X}_{I} \in \mathrm{R}^{N_{I} \times d},文本特征为\mathbf{X}_{T} \in \mathrm{R}^{N_{T} \times d}。这里,N_{I} 表示图像token的数量,N_{T} 表示文本token的数量,d 对应特征维度
    在作者的实验中,作者特别使用了特征维度d = 256。通常,在模型中,N_{I} 的值超过10,000,而N_{T} 保持在256 以下
  2. 作者的目标是从编码器的图像特征中提取N_{q} 个查询,以用作解码器的输入。根据DINO 方法,作者将N_{q} 设置为900。图像特征的前N_{q} 个查询索引,记为\mathbf{I}_{N_{q}},使用以下表达式选择:
    \mathbf{I}_{N_{q}}=\operatorname{Top}_{N_{q}}\left(\operatorname{Max}^{(-1)}\left(\mathbf{X}_{I} \mathbf{X}_{T}^{\top}\right)\right)
    在这个表达式中,\operatorname{Top}_{N_{q}} 表示选择前N_{q} 个索引的操作。函数\operatorname{Max}^{(-1)}-1维度上执行最大操作,符号T表示矩阵转置

作者在算法1 中以PyTorch 风格展示了查询选择过程。语言引导的查询选择模块输出N_{q} 个索引。可以基于选定的索引提取特征来初始化查询。参考DINO [57],使用混合查询选择来初始化解码器查询。每个解码器查询包含两个部分:内容部分和位置部分[33]

  1. 将位置部分表述为动态锚框[31],这些框由编码器输出初始化
  2. 另一部分,内容查询,在训练过程中被设置为可学习的

2.2.3 跨模态解码器、子句级文本特征、损失函数

对于跨模态解码器,作者开发了一个跨模态解码器来结合图像和文本模态特征,如图3的模块3所示

每个跨模态查询被输入到一个自注意力层、一个图像跨注意力层以结合图像特征、一个文本跨注意力层以结合文本特征,以及每个跨模态解码器层中的一个FFN层。与DINO解码器层相比,每个解码器层有一个额外的文本跨注意力层,因为需要将文本信息注入查询以实现更好的模态对齐

对于DINO与Grounding DINO的比较而言,下图用用蓝色标记修改

对于子句级文本特征,在之前的工作中探索了两种文本提示,作者称之为句子级表示和词级表示,如图4所示

  • 句子级表示[35,52]将整个句子编码为一个特征
    如果短语定位数据中的某些句子包含多个短语,它会提取这些短语并丢弃其他词语。通过这种方式,它消除了词语之间的影响,同时失去了句子中的细粒度信息
  • 词级表示[12,18]可以通过一次前向编码多个类别名称,但引入了类别之间不必要的依赖,尤其是在输入文本是多个类别名称以任意顺序串联时
  • 如图4(b)所示,一些不相关的词在注意力机制中发生了交互。为了避免不必要的词语交互,引入了注意力掩码来阻止不相关类别名称之间的注意力交互,称为“子句”级别表示。它消除了不同类别名称之间的影响,同时保留了每个词的特征,以实现细粒度的理解

对于损失函数,继承之前的DETR类工作[2,24,31,33,57,64],作者使用L1损失和GIOU[40]损失进行边界框回归。且遵循GLIP[25]的做法,使用预测对象与语言token之间的对比损失进行分类

具体来说

  1. 将每个查询与文本特征进行点乘,以预测每个文本token的对数几率,然后计算每个对数几率的焦点损失[28]。框回归和分类成本首先用于预测和真实值之间的二分匹配
  2. 然后,使用相同的损失组件计算真实值与匹配预测之间的最终损失。遵循DETR类模型,在每个解码器层之后以及编码器输出之后添加辅助损失

// 待更

第三部分 DINO-X:目标检测和理解的统一视觉模型

24年11月,IDEA-Research提出DINO-X,其对应的论文为《DINO-X: A Unified Vision Model for Open-World Object Detection and Understanding》

// 待更

第四部分 Grounded SAM

24年1月,粤港澳大湾区数字经济研究院(International Digital Economy Academy,简称IDEA研究院)提出Grounded SAM

  • 其对应的论文为《Grounded SAM: Assembling Open-World Models for Diverse Visual Tasks》
  • 其对应的GitHub为:github.com/IDEA-Research/Grounded-SAM-2

// 待更

http://www.lryc.cn/news/613213.html

相关文章:

  • 【SPIE出版| 前4届均已完成EI检索】第五届算法、高性能计算与人工智能国际学术会议(AHPCAI 2025)
  • 解决GitHub push失败-Failed to connect to github.com port 443: Timed out
  • YooAsset为什么要分组
  • 《深入Java包装类体系:类型转换原理与Integer缓存实战指南》
  • jetson上使用opencv的gstreamer进行MIPI和USB摄像头的连接以及udp推流
  • PyTorch RNN 名字分类器
  • 解决 npm i node-sass@4.12.0 安装失败异常 npm i node-sass异常解决
  • QT的拖拽功能
  • vue-plugin-hiprint 打印模版使用
  • DicomObjects COM 8.XX
  • 云平台运维工具 ——AWS 原生工具
  • 008 前端vue
  • 解决React白板应用中的画布内容丢失问题
  • [盛最多水的容器]
  • 【关于Java中==和equals( )和hashCode( )三者异同】
  • Java中接口与抽象类
  • 国内使用 npm 时配置镜像源
  • 2025年 IT 服务管理(ITSM)工具市场分析:选型逻辑与企业适配趋势报告
  • Spring Cloud系列—LoadBalance负载均衡
  • 边缘算力×AI应用:如何在2025年实现爆发式增长
  • 酉矩阵(Unitary Matrix)和随机矩阵
  • “认知裂缝边缘”地带
  • PyTorch LSTM文本生成
  • 基于深度学习的污水新冠RNA测序数据分析系统
  • 进程Linux
  • TSMaster-C小程序使用
  • 深度学习之opencv篇
  • change和watch
  • GPT-5 将在周五凌晨1点正式发布,王炸模型将免费使用??
  • 16.Home-懒加载指令优化