大一统模型 Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记

本文主要是介绍大一统模型 Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记

  • 一、Abstract
  • 二、引言
  • 三、相关工作
    • 实例感知
      • 通过类别名进行检索
      • 通过语言表达式的检索
      • 通过指代标注的检索
    • 统一的视觉模型
      • Unified Learning Paradigms
      • Unified Model Architectures
  • 四、方法
    • 4.1 Prompt 生成
    • 4.2 图像-Prompt 特征融合
    • 4.3 目标发现和检索
    • 4.4 训练和推理
      • 训练
      • 推理
  • 五、实验
    • 5.1 实施细节
    • 5.2 在 10 个任务上的评估
      • 目标检测和实例分割
      • REC 和 RES
      • SOT
      • VOS
      • MOT
      • MOTS
      • VIS
      • R-VOS
    • 5.3 消融和其它分析
  • 六、结论

写在前面

  马上又是一周周末了,开始写论文博客啦。

  这是一篇顶会文章,标题很清楚,就是一个一统的框架用于解决各种任务。这类文章在 21 年的时候挺多的,现在倒是不常见了。因为需要的资源很多,外部数据集也很庞大,一般的小资源团队基本搞不定。但一旦出世,效果必然十分炸裂。

  • 论文地址:Universal Instance Perception as Object Discovery and Retrieval
  • 代码地址:https://github.com/MasterBin-IIAU/UNINEXT
  • 收录于:CVPR 2023

一、Abstract

  所有的实例感知任务旨在发现利用 queries 查询到的目标,例如类别名、语言表达式、目标标注,但这一领域被划分为多个独立的子任务。于是本文提出了一种统一的实例感知模型 UNINEXT。UNINEXT 将多个实例感知任务划分为一个统一的目标发现和检索过程,通过改变输入的 promots 能够弹性地感知不同类型的目标。于是有一些好处:不同任务的数据和标签词汇能够用于训练统一的模型,而且有益于那些缺乏训练数据的任务;参数有效性,能够降低冗余的计算。UNINEXT 在 20 个 数据集,10 种实例级别的任务,6 种视频级别的任务上效果很好。

二、引言

  计算机视觉领域中,以目标为中心的理解是其中一个最关键和挑战性的任务。本文主要讨论其中的 10 个子任务。如下图所示:

在这里插入图片描述
  
  最基础的任务则是目标检测、实例分割、多目标跟踪\分割、视频实例分割。除了这些类别名外,还有一些任务则需要其他的指代信息,例如 Referring Expression Comprehension (REC) /Segmentation (RES)、Referring Video Object Segmentation (R-VOS)、单目标跟踪、视频目标分割等等。这些任务统称为实例感知。

  当前的实例感知方法都是基于一个或一部分子任务开发出的方法,且仅仅在特定的数据集上训练。这一设计有如下缺陷:独立的设计阻止了模型学习和共享不同任务的知识;多个任务间的交互合作可能被忽略掉了。受限于固定范围的类别,传统的目标检测器很难在多个目标类别的数据集上进行训练。于是问题来了:所有的实例感知任务旨在根据一些 queries 发现某些特定的目标,那么有没有可能设计一个统一的模型用于所有主流的实例感知任务呢?

  于是本文提出 UNINEXT,首先根据三种不同的输入 prompt 重新组织 10 种感知任务:

  • 类别名作为 Prompt,包含 Object Detection、Instance Segmentation、VIS,、MOT、MOTS
  • 语言表达式作为 Prompt,包含 REC、RES、R-VOS
  • 指代标注作为 Prompt,包含 SOT、VOS

  然后提出一种统一的,prompt 引导的目标发现和检测方法来解决这些任务。具体来说,UNINEXT 首先在 prompts 的引导下发现 N N N 个目标 Proposals,然后根据实例-Prompt 匹配得分检索出最终的实例。为解决不同的 prompt 模态,采用一种 Prompt 生成模块,由一个指代文本编码器和一个指代视觉编码器组成。然后一个早期融合模块用于增强初始的视觉特征和 prompt embeddings。选择基于 Transformer 的目标检测器作为实例解码器。具体来说,解码器首先生成 N N N 个实例 Proposals,然后这些 Prompt 从这些 Proposals 中检索出匹配的目标。

  在 10 个实例级别的感知任务上,统一使用一个模型,相同的模型参数,UNINEXT 在 20 个 benchmarks 上达到了 SOTA 的性能。本文贡献总结如下:

  • 提出一个统一的 Prompt 框架用于统一的实例感知;
  • UNINEXT 能够在不同的任务和领域上训练,不需要特定的任务头;
  • UNINEXT 在 20 个 benchmarks,10 个实例感知任务上,达到了 SOTA 的性能。

三、相关工作

实例感知

通过类别名进行检索

  目标检测和实例感知旨在找到所有特定类别的目标 boxes 或 masks。早期的目标检测器可以大致划分为两阶段和一阶段的方法。最近是一些基于 Transformer 的检测器开始兴起。同时,实例分割方法也可以根据是否需要 box 级别的检测器划分为基于检测器和无检测器的方法。目标检测和实例分割同时也是 MOT、MOTS、VIS 的基石。主流的方法采用在线 “检测-关联” 的策略。然而最近的一些 VIS 方法采用离线的方式,在 VIS2019 数据集上表现很好,但是在 OVIS 上表现不行。

通过语言表达式的检索

  REC、RES、RVOS 旨在根据一条语言表达式发现一个特定的目标。与目标检测类似,REC 方法同样可以划分为三种类型。两阶段、单阶段和基于 Transformer 的方法。不同于 REC,RES 关注于设计不同的注意力机制从而实现视觉-语言的对齐。最近,SeqTR 提出将 REC 和 RES 视为点预测问题,达到了新的 SOTA。最后 R-VOS 可以视为 RES 在视频领域上的拓展。当前的 SOTA 方法是基于 Transformer 的离线方式。然而,离线方式妨碍了现实世界的应用,例如自动驾驶。

通过指代标注的检索

  SOT 和 VOS 首先在视频的第一帧上面使用 boxes 或者 masks 确定要跟踪的目标,然后要求算法去预测被跟踪目标的轨迹。这一任务核心问题在于:如何提取信息量丰富的目标特征?如何融合目标信息与当前帧的表示?

  对于第一个问题,大部分 SOT 方法通过一个 Siamese Backbone 编码目标信息。而 VOS 方法通常聚合多帧信息与相应的 masks 送入一个 memory 编码器中,提取细粒度的目标信息。对于第二个问题,之前的方法通常采用关联的手段,可能会导致信息丢失。最近的一些工作利用 Transformer 得到更具有区分性的表示。此外,VOS 中的特征融合也被空间-时间 memory 网络采用。

统一的视觉模型

  分为统一的学习算法和统一的模型架构

Unified Learning Paradigms

  通常是一种统一的学习算法用于覆盖尽可能多的任务和模态。例如 MuST、INTERN、Unified-IO、OFA。尽管这些工作在多个任务上的表现很好,但是模态内和模态间的关系还有待探索。

Unified Model Architectures

  通常设计一种统一的框架或者模型结构用于一组密切关联的任务。例如 Mask R-CNN、Mask2Former、Pix2SeqV2、GLIP、Unicorn。而本文提出一种统一的 Prompt 引导的结构用于 10 种实例感知任务。

四、方法

  首先将现有的实例感知任务分为三类:

  • 目标检测、实例分割、MOT、MOTS、VIS,以类别名为 Prompt ,找到所有特定类别的实例。
  • REC、RES、R-VOS,以表达式作为 Prompt,定位到某个特定的目标。
  • SOT 和 VOS,使用第一帧给定的标注作为 Prompt,预测被跟踪目标的轨迹。
    在这里插入图片描述
      UNINEXT 由三个主要模块组成:prompt 生成、image-prompt 特征融合、目标发现和检索。

4.1 Prompt 生成

  首先一个 Prompt 模块将原始的 prompts 输入转化为统一的格式。为解决语言相关的 Prompt,使用语言编码器 BERT,表示为 EncL。具体来说。对于类别引导的任务,将当前数据集内出现的类别名作为语言表达式。以 COCO 为例,表达式可以写作:“person. bicycle. … . toothbrush”。对于所有的类别引导和表达式引导的任务,语言表达式通过 EncL,得到一个 Prompt embedding F p ∈ R L × d F_p\in\mathbb{R}^{L\times d} FpRL×d L L L 为序列长度。

  对于标注引导的任务,采用一个指代视觉编码器 Enc V ref \text{Enc}_\text{V}^\text{ref} EncVref。具体来说,首先在相关帧的指代位置处裁剪出一个 2 2 2^2 22 倍原目标区域的模板。然后将这一模板调整为固定尺寸 256 × 256 256\times256 256×256。接下来添加一个额外的通道,名为目标先验,拼接上去形成一个 4 通道的输入。目标区域先验处的值设为 1,其它为 0。然后这一模板图像与目标先验一起通过 Enc V ref \text{Enc}_\text{V}^\text{ref} EncVref,得到一个级联的特征金字塔 { C 3 , C 4 , C 5 , C 6 } \{C_3,C_4,C_5,C_6\} {C3,C4,C5,C6},相应的空间尺寸为 32 × 32 32\times32 32×32 16 × 16 16\times16 16×16 8 × 8 8\times8 8×8 4 × 4 4\times4 4×4。最后将所有特征上采样到 32 × 32 32\times32 32×32,之后相加。展平后得到最终的 Prompt embedding F p ∈ R 1024 × d F_p\in\mathbb{R}^{1024\times d} FpR1024×d

  Prompt 生成过程表示如下:
F p = { E n c L r e f ( exp ⁡ ression ) expression-guided E n c L r e f ( concat ( categories ) ) category-guided m e r g e ( E n c V r e f ( [template, prior] ) annotation-guided F_p=\begin{cases}\mathrm{Enc}_\mathrm{L}^\mathrm{ref} (\exp\text{ression})~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\text{expression-guided}\\\mathrm{Enc}_\mathrm{L}^\mathrm{ref}(\text{concat}(\text{categories}))~~~~~~~~~~~~~~~~~~~~~~~~\text{category-guided}\\\mathrm{merge}(\mathrm{Enc}_\mathrm{V}^\mathrm{ref}(\text{[template, prior]})~~~~~~~~~~~~~~~~ \text{annotation-guided}&\end{cases} Fp= EncLref(expression)                                     expression-guidedEncLref(concat(categories))                        category-guidedmerge(EncVref([template, prior])                annotation-guided

4.2 图像-Prompt 特征融合

  与 Prompt 并行,整个图像穿过另一个视觉编码器 Enc V \text{Enc}_\text{V} EncV,得到级联的视觉特征 F v F_v Fv,然后采用一个提前融合模块。具体来说。一个双向的 cross-attention(Bi-XAtt)模块用于检索不同输入的信息,然后将检索到的表示添加到原始的特征上。这一过程描述为:
F p 2 v , F v 2 p = B i − X A t t ( F v , F p ) F v ′ = F v + F p 2 v ; F p ′ = F p + F v 2 p \begin{aligned} &F_{\mathrm{p2v}},F_{\mathrm{v2p}}=\mathrm{Bi-XAtt}(F_{v},F_{p}) \\ &F_{v}^{\prime}=F_{v}+F_{\mathbf{p}2\mathbf{v}};F_{p}^{\prime}=F_{p}+F_{\mathbf{v}2\mathbf{p}} \end{aligned} Fp2v,Fv2p=BiXAtt(Fv,Fp)Fv=Fv+Fp2v;Fp=Fp+Fv2p  不同于 GLIP,其采用 6 层的视觉-语言融合层和 6 层外部 BERT 层用于特征增强,本文的提前融合模块则更有效率。

4.3 目标发现和检索

  在提出显著性的视觉和 prompt 表示后,下一个关键步骤则是将输入的特征转化为不同感知任务中的实例。UNINEXT 采用 Deformable-DETR 中的编码器-解码器架构。

  Transformer 编码器以级联的 prompt 感知的视觉特征作为输入。然后采用 Multi-scale Deformable Self-Attention 增强目标信息。此外,添加辅助的预测头用于编码器的结尾,生成 N N N 个初始的参考点作为解码器的输入。

  Transformer 解码器以增强的多尺度特征, N N N 个参考点 和 N N N 个目标 queries 作为输入。本文尝试两种 query 生成策略:静态 query,不随图像或 Prompts 而改变;基于 Prompt 的动态 queries。第一种策略很容易通过 nn.Embedding(N,d) \text{nn.Embedding(N,d)} nn.Embedding(N,d) 实现,而第二种策略则可以通过池化序列维度,增强的 Prompt 特征 F v ′ F_v^{\prime} Fv 得到,之后重复 N N N 次。实验部分表明静态策略通常执行的比动态策略好。原因可能是静态部分包含了更丰富的信息,同时拥有更好的训练稳定性。

  在解码器的结尾,采用一组预测头来得到最终的实例预测,产生目标的 boxes 和 masks。此外,引入一个 embedding 头用于辅助 MOT、MOTS、VIS 所需要的轨迹。

  接下来产生精确的目标。具体来说,给定早期融合后的 prompt embedding F p ′ F_p^{\prime} Fp,对于类别引导任务,将每个名字的 embedding 视为一个权重矩阵 W ∈ R 1 × d W\in\mathbb{R}^{1\times d} WR1×d。此外,对于表达式引导和标注引导的任务,权重矩阵 W W W 通过对聚合的 prompt embedding F p ′ F_p^{\prime} Fp,使用全局平均池化 global average pooling (GAP) 沿着序列维度得到。给出公式描述过程:
W = { F p ′ [ i ] , i ∈ { 0 , 1 , . . . , C − 1 } category 1 L ∑ i = 0 L F p ′ ( i , j ) expression/annotation W=\begin{cases}F_p'[i],i\in\{0,1,...,C-1\}&\text{category}\\\frac{1}{L}\sum_{i=0}^LF_p'(i,j)&\text{expression/annotation}\end{cases} W={Fp[i],i{0,1,...,C1}L1i=0LFp(i,j)categoryexpression/annotation
  最终,实例-Prompt 匹配得分 S S S ,表示为目标特征和转换后的权重矩阵的乘积: S = F ins W T S=F_\text{ins}W^{\text{T}} S=FinsWT,通过 Focal Loss 监督其训练。

4.4 训练和推理

训练

  整体的训练过程包含三个连续阶段:通用的感知预训练;图像级别的共同训练;视频级别的共同训练。第一阶段,预训练 UNINEXT 在大规模目标检测数据集 Objects365 上。由于 Objects365 没有 mask 标注,于是引入 BoxInst 中提出的辅助损失用于训练 mask 分支,于是损失函数为:
L s t a g e 1 = L r e t r i e v e + L b o x + L m a s k b o x i n s t \mathcal{L}_{\mathrm{stage}1}=\mathcal{L}_{\mathrm{retrieve}}+\mathcal{L}_{\mathrm{box}}+\mathcal{L}_{\mathrm{mask}}^{\mathrm{boxinst}} Lstage1=Lretrieve+Lbox+Lmaskboxinst
然后基于第一阶段的预训练权重,在图像数据集 COCO、RefCOCO、RefCOCO+、RefCOCOg 上微调 UNINEXT。使用 Dice Loss 和 Focal Loss 进行 mask 的训练:
L s t a g e 2 = L r e t r i e v e + L b o x + L m a s k \mathcal{L}_{\mathrm{stage2}}=\mathcal{L}_{\mathrm{retrieve}}+\mathcal{L}_{\mathrm{box}}+\mathcal{L}_{\mathrm{mask}} Lstage2=Lretrieve+Lbox+Lmask
  最后在视频级别的数据集上微调 UNINEXT。为防止模型遗忘之前在图像级别上学到的知识,将图像级别的数据集转化为伪视频,和其它视频数据集一起训练。总结下,第三阶段的训练数据包含:伪标签视频、SOT&VOS 数据集(GOT-10K、LaSOT、TrackingNet、Youtube-VOS),MOT&VIS 数据集(BDD100K、VIS19、OVIS),R-VOS 数据集 Ref-Youtube-VOS。同时,一个用于 SOT&VOS 任务的指代视觉编码器和一个外部的 embedding 头用于辅助优化。于是第三阶段的损失如下:
L s t a g e 3 = L r e t r i e v e + L l o o x + L m a s k + L e m b e d \mathcal{L}_{\mathrm{stage}3}=\mathcal{L}_{\mathrm{retrieve}}+\mathcal{L}_{\mathrm{loox}}+\mathcal{L}_{\mathrm{mask}}+\mathcal{L}_{\mathrm{embed}} Lstage3=Lretrieve+Lloox+Lmask+Lembed

推理

  对于类别引导的任务,UNINEXT 预测不同类别的实例并将其与之前的轨迹关联起来,这一过程是在线的方式。对于表达式引导和标注引导的任务,直接选择与给定 Prompt 最高匹配得分的目标作为最终的结果,无需后处理。

五、实验

5.1 实施细节

  尝试不同的视觉 Backbone 作为编码器,如 ResNet-50、ConvNeXt-Large、ViT-Huge。BERT 为文本编码器,其参数在第一个阶段训练而在第二个阶段冻结。Transformer 中的编码器和解码器结构有 6 层的编码器层和 6 层的解码器层。目标 queries 的数量 N = 900 N=900 N=900。优化器 AdamW,权重衰减 0.05。预训练在 Objects365 上采用 32 个 A100 GPU,而在其它阶段则采用 16 块 A100(一般的小作坊就不用尝试啦)。

5.2 在 10 个任务上的评估

目标检测和实例分割

在这里插入图片描述

REC 和 RES

在这里插入图片描述

SOT

在这里插入图片描述

VOS

在这里插入图片描述

MOT

在这里插入图片描述

MOTS

在这里插入图片描述

VIS

在这里插入图片描述

R-VOS

在这里插入图片描述

5.3 消融和其它分析

  所有的模型均采用 ResNet-50 作为 backbone,在五个任务(目标检测、REC、VOS、R-VOS、VIS)的五个数据集 COCO、RefCOCO、Youtube-VOS、Ref-Youtube-VOS、Youtube-VIS 2019 上进行评估。结果如下表所示:
在这里插入图片描述

六、结论

  本文提出 UNINEXT,采用 Prompt 引导的目标发现和检索算法统一了 10 个实例感知任务,大量实验表明 UNINEXT 在 20 个数据集上,同一套模型参数达到了 SOTA 的性能。

写在后面

  附录还有一些内容,关于训练细节、可视化、损失函数啥的,这里就不过多展开了。通篇读下来,是一个以 Prompt 为主要形式的框架,新颖性可能也不算太高吧,毕竟有 SAM 和 Unified 等模型在前面开路,但是这个调参和实验的工作量应该是值得一篇顶会论文的。

这篇关于大一统模型 Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/428343

相关文章

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

深入探讨Java 中的 Object 类详解(一切类的根基)

《深入探讨Java中的Object类详解(一切类的根基)》本文详细介绍了Java中的Object类,作为所有类的根类,其重要性不言而喻,文章涵盖了Object类的主要方法,如toString()... 目录1. Object 类的基本概念1.1 Object 类的定义2. Object 类的主要方法3. O

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学