点击下方
卡片
,关注
「3DCV」
公众号
选择
星标
,干货第一时间送达
来源:3DCV
添加小助理:cv3d001,备注:方向+学校/公司+昵称,拉你入群。文末附3D视觉行业细分群。
扫描下方二维码,加入「
3D视觉从入门到精通
」知识星球
,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:
近20门独家秘制视频课程
、
最新顶会论文
、计算机视觉书籍
、
优质3D视觉算法源码
等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
作者 | 同屿Firmirin 编辑 | 自动驾驶Daily
原文链接:https://zhuanlan.zhihu.com/p/5260450123
文章:VisionLLM v2: An End-to-End Generalist Multimodal Large Language Model for Hundreds of Vision-Language Tasks
GitHub:https://github.com/OpenGVLab/VisionLLM
keypoints
引入了super-link超链接技术,用于融合MLLM和各种下游任务的编码器,可以实现端到端训练;
文章写的比较细致,能当MLLM如何解决难点视觉任务的综述了。
精读
1. background&motivation
本文的Introduction写得很好,用MLLM做各种下游任务,特别是较难任务的同学们可以看一下原文。
当前的 MLLM 输出以文本形式,这极大地限制了它们表示结构化或视觉信息的能力。现在的一些MLLM工作没有很好解决密集目标检测、姿态估计和图像生成等实际需求。
一系列研究通过将任务信息通过
文本消息
传输到专业小模型来增强 MLLM 的能力,如图所示。尽管取得了这些进展,但这些基于文本的方法受到文本可以传达的信息的限制。而且它们不是端到端的,来自工具的反馈梯度不能中继回 MLLM。
这刺激了另一方向的研究:它使用
可学习的嵌入
作为中介,将MLLM与一个特定的任务解码器连接起来(如图b)。然而,这种naive的嵌入不能很好地用于多种下游任务。联合多任务训练产生的任务冲突问题也是一个需要考虑的问题。
因此,为文本输出之外的各种视觉和语言任务开发一个端到端的 MLLM 通才仍然是一个重大挑战。
鉴于这些挑战,开发端到端的通才MLLM 需要比传统的文本消息和朴素嵌入更有效的信息传输方法。这种方法应该确保任务信息和反馈梯度在中央 MLLM 和多任务解码器之间准确灵活地通信,同时防止任务在各种视觉域和输入/输出格式之间的冲突。
在这项工作中,VisionLLM v2,这是一种端到端的通用 MLLM,专为广泛的视觉和视觉语言任务而设计。该模型不仅执行典型的视觉问答,而且扩展到不同图像域的图像生成、图像编辑和开放式对象检测/实例分割/姿态估计。为了便于 MLLM 和多个下游任务解码器之间的信息传输,我们引入了
超链接技术
,它由两个组件组成:1. Routing Token MLLM会输出[DET][POSE]等特殊token,这些token被预先添加到词表中。能触发正确选择下游decoder。2. Super-Link Queries randomly initialized learnable weights bound to the routing tokens. 这些查询附加在路由token之后,由MLLM处理以提取特定于任务的信息,然后将这些信息发送到目标解码器。该方法支持灵活的任务信息传输,允许解码器梯度反向传播到MLLM,并通过确保查询绑定到路由令牌而不是跨任务共享来避免任务冲突。
此外,我们从数百个公共视觉和视觉语言任务中仔细收集和策划的训练数据,以支持各种任务。这些数据包括来自自然场景、遥感图像、医学图像和工业图像等各种来源的视觉问答、视觉感知、识别和理解任务的高质量示例。为了确保使用这些广泛的数据集进行有效训练,我们还实施了多阶段联合训练策略,整合新能力和达到与专家模型相当的性能,同时保持 MLLM 的基础 VQA 能力。
这些设计赋予 VisionLLM v2 三个不同的特征:(1)通用性。有了一套参数,我们的模型可以使用不同的文本和视觉提示推广到不同的任务。据我们所知,这是第一个支持数百个视觉语言任务的端到端模型,同时实现与专家模型相当的性能。(2) 开放性。通过使用开放式解码器,我们的模型允许用户通过多模态提示自由定义任务,打破了仅限于预定义任务或类别的封闭集模型的约束。此外,用户可以通过多轮对话灵活地将各种任务组合成更复杂的任务。(3) 多模态上下文能力。通过多模态输入和输出,我们的模型展示了广泛的多功能性,并且比以前的具有单模态输出的上下文模型具有优势
2. related work
2.1 Multimodal Large Language Mode
Conventional MLLMs GPT-4V、LLaVA、Qwen-VL、InternVL等
Extension of MLLMs' Text Output 为了将 MLLM 扩展到下游任务,Kosmo2、Shikra、VisionLLM等模型使用专门设计的令牌或编码坐标作为文本令牌来实现这一点。尽管有这些进步,仅使用 LLM 作为视觉解码器并不能解决精确检测和分割所需的细粒度视觉上下文。
MLLMs w/ Downstream Tools 一些研究集成了以视觉为中心的任务的外部工具,并通过文本消息将任务信息传递给这些工具。然而,llm和工具之间的这种基于文本的通信阻碍了端到端的优化。另一类方法将llm的输出嵌入输入到一个特殊的解码器中,并对它们进行端到端训练,以增强信息通信。然而,它们只支持语义分割或图像生成任务。
2.2 Vision Generalist Model
Unified Vision Model 统一多种视觉任务的模型,例如Semantic-SAM、Grounding-DINO。他们的结果证明了单一模型执行多种任务的可行性。
Visual Prompting 视觉提示通过在输入指令中提供视觉标记而成为一种新的提示范式。它要求模型在回答问题时关注图像上的特定区域。
Diffusion Model as Interface 扩散模型是用户和可视化任务之间的灵活接口,促进了更直观的交互范例。Pix2Seq v2展示了扩散模型在生成视觉标记序列方面的潜力,弥合了视觉和语言之间的差距。
3.method
主要有四个组成部分:1. 一个image encoder和一个region encoder分别编码整图和图片的局部区域;2. LLM 3. 一系列专业模型作为编码器;4. a super link
对于文本输入,使用一个text tokenizer to tokenize them into distinct vocabulary indices;
对于图像输入,使用CLIP的预训练编码器,并使用了动态分辨率以提高处理图像的分辨率。沿用了常见做法,先预设很多分辨率比例,为输入图像选择最合适的,再根据所选长宽比进行缩放,再切割成很多336*336的patch,和resize后的图像一起输入到CLIP。
对于视觉提示,采用二进制mask灵活地表示视觉提示,如点、框、涂鸦和mask。为了提取region embed,首先沿着通道维度将二进制mask与输入图像连接起来,然后用三个卷积层对其进行处理,以14的倍数进行下采样(详见附录)。再和全局图像add。最后,通过网格采样提取被遮挡区域内的特征,并对这些特征进行平均,形成视觉提示特征。
Grounding DINO for object-level localization
并选择性地为其输入添加一个mask decoder用于segmentation。
UniPose as the keypoint decoder
Stable Diffusion and InstructPix2Pix as the image decoders
放弃这些解码器的文本编码器,并通过超级链接技术将它们与MLLM链接起来。这样,解码器可以与整个网络端到端进行训练。
对于纯文本输出任务,如图像级和区域级VQA,我们直接将LLM生成的纯文本作为最终输出。对于视觉感知和视觉生成任务,我们提出了超级链接技术来解决选择合适的解码器,避免任务冲突。主要包括两部分:
例如[DET], [POSE], [SEG], [GEN], [EDIT],作为特殊token添加到原始LLM词汇表中。当模型打算使用其中一个解码器完成下游任务时,LLM将在其文本输出中包含相应的路由token。为了使模型能够辨别要执行哪些任务以及要输出哪些路由令牌,我们使用ChatGPT为不同的任务构造了一系列指令模板。
对于每个解码器,我们将超级链接查询定义为一组固定的嵌入。它们是随机初始化的,并作为LLM和特定任务的解码器之间的桥梁。只要LLM输出了路由token,超级链接查询就会自动添加到路由token的输入嵌入之后。然后提取它们对应的最后一层的隐藏状态H_link,并应用MLP投影得到
。最后被发送到特定的解码器,作为执行下游任务的条件。下面,我们将说明如何将
Hlink
集成到解码器中,分别用于视觉感知和生成。
Visual Perception
包含一系列任务:开闭集目标检测、实例分割、姿态估计等。例子如图,
and 表示占位符,进入LLM之前会被image and region embeddings替换掉。举例: 以交互式分割的例1为例进行说明。用户提示模型在问题中分割特定区域。MLLM在响应中顺序列出区域名称,后跟路由令牌[SEG]。请记住,模型自动将超级链接查询附加在路由令牌之后。这样,我们可以通过从相应的超链接查询中提取MLLM的输出隐藏状态并将它们池化到一个嵌入中来获得每个区域的表示。这些嵌入作为条件特征被送入分割解码器,只需要一个前向就可以产生所有区域的分割结果。
Visual Generation
视觉生成包含很多任务,本文专注两个任务:文生图和基于指令的图像编辑。使用Stable Diffusion v1.5 (SD)作为文生图编码器。放弃了它的文本编码器,使用MLLM的输出隐藏状态作为SD的图像生成条件。图像编辑任务也可以通过使用图像和文本提示作为输入来完成。
当前的MLLM在增加了额外的能力后,会面临会话能力下降的问题。为了创建一个能够在不影响视觉理解的情况下处理数百个任务的通才模型,我们提出了一个三阶段的训练策略,其中第一阶段侧重于构建具有强大图像级和区域级视觉理解的MLLM。在随后的阶段,我们添加特定于任务的解码器,并继续训练以使模型具有高级功能。
tage-1: Mutimodal Training
遵循LLaVA的训练设定,包含预训练和指令微调。预训练主要是为了实现image和region,与LLM的对齐。这一阶段只训练region encoder、image和region的projections。指令微调阶段在一系列高质量指令数据上微调LLM。stage1后就得到了一个强大的通用MLLM,命名为VisionLLM v2-Chat.
Stage-2: Multi-capacity Fine-tuning
这一阶段是为了训练多种下游任务的能力,进行多任务训练。除了阶段1中使用的指令数据外,我们还纳入了广泛的视觉数据集,如COCO, ADE20K,用于其特定任务。我们为这些视觉数据集构建了一系列指令模板来执行指令调优,确保LLM能够准确地调用下游解码器。在这一阶段,region encoder和所有decoders会被训练,LLM则会进行LoRA微调。
Stage-3: Decoder-only Fine-tuning
由于decoder不能在一个epoch内收敛,又另外对这些decoders训练了12个epoch。这一阶段使用视觉数据集,其他部分都被冻结。值得注意的是,超级链接查询在此阶段继续进行训练。在完成三个阶段的训练后,我们的模型在保持全局视觉理解的有效性的同时,具有不同的视觉任务能力。得到的模型叫做VisionLLM v2。
4.experiment
4.1 Implementation Details
在第一阶段的训练中,我们利用大量高质量的指令数据进行图像级和区域级的视觉问答:
阶段2中使用的数据集是阶段1和阶段3数据集的组合,这使得模型能够在不影响其会话能力的情况下学习多种能力。
此外还收集了一个名为MMIC的多模态数据集,专注于视觉提示和上下文学习。数据来自各种来源,包括细粒度视觉识别、对象检测、实例分割和姿态检测:
CLIP-L/14 + Vicuna-7B-v1.5 解码器:Grounding-DINO、UniPose,这俩的backbone用的Swin T Stable Diffusion v1.5、InstructPix2Pix。除了region编码器需要随机初始化,其他模块都有预训练参数直接加载。对于视觉感知和视觉生成任务,超级链接查询的数目N分别设置为4和64。
Region Recognition and Visual Commonsense Reasoning
SS和S-IoU分别代表语义相似性和语义IoU,Q、A和R分别表示问题、答案和理由。X→Y表示模型需要在X条件下选择选项Y, *表示模型在数据集上进行微调。
4.3 Visual Perception Tasks
Object Detection and Instance Segmentation.
4.4 Visual Generation Tasks
包括超链接数量的消融和是否share超链接query的消融。
任务的性能随着查询数量的增加而不断提高。这是合理的,因为更多的查询可以产生更丰富和更强的表示。
为了确定一组超级链接查询是否对所有解码器都足够,我们进行了一项消融研究,要么为所有解码器使用共享查询,要么为每个解码器定义单独的查询。在这个消融中,我们只训练解码器和超级链接查询,而将所有其他组件冻结为阶段3的训练设置。观察到,当使用共享查询时,关键点AP会随着训练而减少,这可能是由于大多数数据用于对象解码器。此外,具有共享查询的框AP也不如解耦的框AP。因此,我们为模型中的每个解码器定义了单独的超级链接查询。
5 Conclusion & Limitation
模型的训练包括三个阶段,这是相对复杂的。此外,下游工具的集成仅得到初步验证。未来的工作将进一步探索这些问题的解决方案,旨在提高模型的性能和效率。更广泛的影响:我们设想这项工作将进一步促进视觉和语言任务的融合。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉交流群,成立啦!
目前我们已经建立了3D视觉方向多个社群,包括
2D计算机视觉
、
最前沿
、
工业3D视觉
、
SLAM
、
自动驾驶
、
三维重建
、
无人机
等方向,细分群包括:
工业3D视觉
:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。
SLAM
:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。
自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。
三维重建