论文信息

题目:Few-Shot Object Detection with Foundation Models
基于基础模型的少样本目标检测

论文创新点

  1. 使用DINOv2作为视觉骨干:论文首次将DINOv2模型应用于少样本目标检测(FSOD)任务。DINOv2是一个仅视觉的自监督学习模型,通过全局图像级和局部补丁级的自监督目标进行预训练,具备强大的跨语义概念的判别能力局部空间定位能力:
  2. 引入大型语言模型(LLM)进行上下文少样本学习:论文创新性地将大型语言模型(LLM)引入FSOD任务,用于上下文少样本提议分类:
  3. 支持类别感知的提议生成:论文提出了一种新的支持类别感知的提议生成方法,通过交叉注意力机制将查询图像特征与类别原型相结合,生成更具判别性的目标提议。
  4. 基于Transformer的检测框架:论文采用了Deformable DETR作为检测框架,结合DINOv2骨干,构建了一个全Transformer的检测系统:

摘要

少样本目标检测(FSOD)旨在通过少量训练样本检测目标。视觉特征提取和查询-支持相似性学习是两个关键组件。现有的工作通常基于ImageNet预训练的视觉骨干网络,并设计复杂的度量学习网络进行少样本学习,但精度仍然较低。在本工作中,作者研究了使用现代基础模型的少样本目标检测。首先,使用仅视觉对比预训练的DINOv2模型作为视觉骨干,该模型在不调整参数的情况下表现出强大的可迁移性能。其次,使用大型语言模型(LLM)进行上下文少样本学习,输入所有类别和查询图像提议。精心设计的语言指令提示LLM在上下文中对每个提议进行分类。上下文信息包括提议-提议关系、提议-类别关系和类别-类别关系,这些信息可以极大地促进少样本学习。作者在多个FSOD基准上全面评估了所提出的模型(FM-FSOD),取得了最先进的性能。

关键字

少样本目标检测,基础模型,DINOv2,大型语言模型,上下文学习

3. 提出的方法

任务定义

在少样本目标检测(FSOD)中,作者有两组类别,且,其中基类每个类别有大量的视觉训练样本,而新类(即支持类)每个类别只有很少的视觉训练样本(即支持图像)。对于-shot(例如)目标检测,每个新类恰好有个边界框注释作为训练数据。FSOD的目标是使用少样本视觉示例检测新类,并在数据丰富的基类训练数据的帮助下,保持对基类的强大性能。

模型架构

作者在本工作中提出研究基于基础模型的FSOD。其思想是充分利用预训练的大规模视觉/语言基础模型中的知识,简化模型设计的人工努力。

img

如图2所示,作者的模型主要由以下三个子模块组成:(1)视觉特征提取,用于提取查询图像和少样本支持图像的特征表示;(2)提议生成,用于从查询图像生成支持类别感知的目标区域;(3)少样本提议分类,用于根据类别及其视觉原型的映射对每个提议进行分类。以下详细介绍了每个组件的架构和模型设计。

视觉特征提取: 在FSOD中,作者有一个查询图像和-way -shot支持集作为输入,且。对于查询图像,作者使用视觉Transformer(ViTs)提取特征表示,并保留所有局部补丁表示以进行后续目标定位。然后对于支持集,作者同样使用相同的ViTs提取每个支持图像的特征表示。在实践中,支持图像围绕目标对象裁剪,并包含一些图像上下文像素。作者使用RoIAlign根据对象的边界框注释计算对象的表示。然后每个类别的原型是-shot支持特征的平均值。

在本工作中,作者使用预训练的冻结DINOv2作为特征骨干,原因如下:(1)DINOv2是一个仅视觉的自监督学习模型,在大规模精选图像数据集上进行训练。全局图像级和局部补丁级的自监督目标共同用于训练特征骨干。局部补丁损失可以强制模型对定位敏感,这对下游检测任务友好。(2)DINOv2模型在大规模图像数据集上进行预训练。为了保留DINOv2中的原始知识,作者在训练期间冻结特征骨干。实验表明,微调DINOv2的某些层不会提高性能。此外,冻结骨干允许作者预先计算每个类别的支持特征,从而可以在更广泛的类别集上进行上下文少样本分类。(3)使用DINOv2的一个潜在问题是,测试中使用的少样本新类可能在DINOv2预训练期间已经见过。作者认为,预训练仅学习图像表示。如何有效地将基础模型迁移到下游任务仍然具有挑战性,特别是当预训练的自监督学习任务与下游检测任务存在较大差异时。

提议生成: 在使用DINOv2提取视觉特征后,作者使用Transformer编码器-解码器架构进行提议生成。具体来说,作者首先在DINOv2提取的查询图像补丁标记上使用多层Transformer编码器。通过Transformer编码器模块,每个补丁标记的特征都丰富了全局上下文信息。为了快速收敛,作者使用了多尺度可变形注意力。

为了生成支持类别感知的提议,作者计算从DINOv2骨干提取的类别原型与Transformer编码器细化的查询图像特征之间的交叉注意力,生成支持类别感知的查询图像特征。

然后在Transformer解码器中,随机初始化的对象查询序列与支持类别感知的查询图像特征一起作为输入。使用多个自注意力和交叉注意力层来细化对象查询的表示,逐渐将它们收敛到相应的对象。每个对象查询的边界框位置通过Transformer解码器顶部的简单线性层计算。通过这种方式,作者可以为后续的少样本分类模块生成少量()支持类别感知的对象查询(或提议)。

少样本提议分类: 在从查询图像中获取提议以及每个类别的原型表示后,少样本分类是另一个关键模块,用于将提议分类为支持类别之一或“空”类别。先前的方法设计了复杂的深度神经网络,用于噪声提议和支持类别之间的相似性学习。在本工作中,作者提出利用LLM的强大上下文学习能力进行上下文少样本提议分类,这可以通过引入上下文信息提高少样本分类的准确性,并简化设计复杂度量学习网络的人工努力。

具体来说,作者首先向LLM分词器添加几个类别标记(例如,在MSCOCO数据集中从 到)和背景类别标记。然后作者设计以下语言指令,提示对每个提议进行分类:请对 . . . 中的每个提议进行分类。类别包含 : . . . : 。如果提议不属于任何这些类别,则将其分类为。然后,作者将替换为相应的提议特征,并通过可训练的投影层将其维度转换为中的词嵌入维度,并将 到)和背景类别标记。然后作者设计以下语言指令,提示对每个提议进行分类:请对...中的每个提议进行分类。类别包含:...:。如果提议不属于任何这些类别,则将其分类为。然后,作者将替换为相应的提议特征,并通过可训练的投影层将其维度转换为中的词嵌入维度,并将 到)和背景类别标记。然后作者设计以下语言指令,提示对每个提议进行分类:请对...中的每个提议进行分类。类别包含:...:。如果提议不属于任何这些类别,则将其分类为。然后,作者将替换为相应的提议特征,并通过可训练的投影层将其维度转换为中的词嵌入维度,并将标记。此外,提议分类的输出标记保持与输入指令中提议相同的顺序。在解码LLM生成的标记后,作者通过融合LLM的分类结果和提议生成模块的预测来获得最终检测结果。

通过提供上述语言指令并提示LLM对每个提议进行分类,作者的方法设计简单。更重要的是,作者的模型将所有提议与所有类别的类别映射表一起作为输入,可以自动利用提议和类别之间的多种关系,包括提议-提议关系、提议-类别关系和类别-类别关系。提取的上下文信息可以极大地促进来自同一查询图像的少样本提议分类。

最近,有大量并发工作提出将空间定位能力引入LLM,以实现区域级细粒度图像理解。这些方法在简单的定位任务(如RefCOCO)上表现良好,但在MSCOCO和LVIS上的复杂密集检测任务中表现不佳。与这些方法不同,作者以不同的方式使用LLM进行检测任务,仅提示LLM对提议进行分类。这将生成无序边界框(分类标记+空间位置标记)的问题简化为仅为提议查询生成有序分类标记: 因此,作者的方法大大简化了LLM的学习。

训练框架

作者的模型训练分为以下三个步骤。

在第一步中,作者在基类上使用冻结的DINOv2骨干对提议生成模块Deformable DETR进行预训练。作者遵循DETR中定义的原始损失函数,首先在预测对象集和真实对象集之间找到最佳二分匹配,然后优化模型以实现此最佳分配。

在第二步中,作者在基类上学习整个模型。提议生成模块从第一步中训练的模型初始化。LLM从Vicuna模型初始化。为了获得LLM训练的提议的真实标签,作者使用DETR中的二分匹配为提议分配标签。然后,作者可以使用下一个标记预测损失端到端训练LLM,该损失在真实提议标签上计算。在此步骤中,提议生成模块也使用DETR损失进行微调。

在第三步中,作者在新类上微调模型。与第一步和第二步类似,作者首先使用下采样的基类和新类微调提议生成模块。然后,作者使用基类和上采样的新类微调LLM,因为微调LLM需要更多的训练数据。

4. 实验结果

imgimg

img

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐