CVPR 2024 | 华为诺亚:注入BEV视角的多模态大模型

文摘   2024-07-23 15:04   上海  

 Holistic Autonomous Driving Understanding by Bird's-Eye-View Injected Multi-Modal Large Models
https://github.com/xmed-lab/NuInstruct
本期概述
多模态大语言模型,这个词看过上一篇推送的同学想必有些熟悉,根据可靠信息透漏,特斯拉的FSD v13将多模态指令作为中间数据引入端到端自动驾驶模型中,似乎又要掀起行业界的一股新潮。相似的,本期图文介绍的研究成果将面向指令的BEV特征与现有的MLLM集成,用于提升模型在感知、预测、风险评估、带推理的规划等多项任务上的性能。
提出的基于语言的整体自动驾驶的Nuduct数据集的例子。(a)输入的是多视图的视频。(b)各种任务以指令-响应格式呈现。共有4个任务,共包含17个子任务。
Pipeline
提出的BEV-InMLLM的总体Pipeline。(a)为处理多视图视频而定制的基本多模态大语言模型(MLLM)。(b)鸟瞰图注入模块(BEV-In)将BEV表示注入到基础MLLM中,以提高对自动驾驶的理解
BEV-InMLLM框架包括两个关键模块:基础多视图多模态大型语言模型(MVMLLM)鸟瞰图注入模块(BEV-In)。这些模块通过Transformer结构设计,并使用任务查询作为连接各节点的接口,能够有效地处理和整合输入的多视角视频特征和指令信息,从而提高系统的整体性能和对复杂场景的理解能力。
1.多视图MLLMMVMLLM):现有的多模态大模型 (MLLMs) 通常包含三个部分: 视觉编码器 用于接收视觉输入;连接模块(如 Q-Former) 将视觉表示转化为与语言对齐的视觉令牌;大语言模型 (LLM) 用于接收视觉和语言指令令牌生成响应。由于这些模型只能接收单视角输入,BEV-InMLLM提出了一种基线模型,称为多视图MLLM(MV-MLLM),使当前的MLLMs能够处理多视角视频。
具体而言,对于来自特定视角的视频 BEV-InMLLM将其输入视觉编码器,然后通过连接模块获得视觉令牌,可以表示为
其中, 分别是视觉令牌的数量和维度。然后,引入一个多视图Q-Former(类似于 BLIP-2) 来从 中捕获多视图视觉语义  ,同步将 沿视角维度连接起来,得到:
多视图Q-Former的输入包含一组 个可学习的多视图查询 ,它们通过交叉注意力与 进行交互,公式如下:
然后,输出的 经过线性投影(图中省略),并输入到LLM中。需要注意的是,在BEV-InMLLM的MVMLLM中,只有多视图Q-Former是可训练的(图中有火苗的地方),其他参数都是冻结的,以完全保留预训练模型的知识。
2.鸟瞰图注入多模态大语言模型BEV-Injected MLLM):通过物理变换(例如LSS)从多视角特征构建BEV的过程会受到当前多模态大语言模型 (MLLM) 中视觉变换器(ViTs)感知能力的限制。此外,替换成特定的BEV 主干网络(如ResNet或Swin Transformer)会减弱视觉语言对齐,而有限的输入分辨率会产生难以扩展到高分辨率BEV表示的小特征图 。
为了解决这些问题,使用一个鸟瞰图注入模块 (BEV-In) 以数据高效和资源轻量的方式获取与大语言模型 (LLM) 对齐的BEV信息。BEVInMLLM的架构包括两个关键组件:指令感知的BEV Q-FormerInstruction-aware BEV Q-FormerBEV注入模块injection module
指令感知的BEV Q-Former Instruction-aware BEV Q-Former:用于忽略与给定指令无关的冗余信息。指令感知的BEV QFormer的输入查询包含两部分:与指令相关的指令标记 和用于从BEV特征中提取相关信息的可学习BEV查询。这个过程定义如下:
其中表示拼接, 是BEV查询结果及其数量, 是指令感知的BEV标记。
注入模块injection module通过交叉注意力将多视角特征与指令感知的BEV标记 融合:
增强后 同时包含:(i) 用于场景理解的时序多视角提示和 (ii) 用于精确感知和规划任务的空间感知BEV信息。本文通过仅将BEV Q-Former和注入模块设为可训练(图中有火苗的地方),使得BEV-In模块高效,而 BEV特征提取器保持冻结以维持特征质量。
Experiments
BEV-InMLLM的实验主要在NuInstruct数据集上进行评估。该数据集包含91,000对多视角视频问答,涵盖17个子任务,包括感知、预测、风险评估和带推理的规划。BEV-InMLLM在各项任务上显著优于现有的多模态大语言模型(MLLMs),平均提升了9%。
在NuInstruct数据集上的性能比较。最优得分以粗体标出。注意,所有模型在相同设置下都在NuInstruct的训练集上进行了微调。‘∗’表示使用了时空适配器,使基于图像的MLLM能够接收视频输入。为简洁起见,使用缩写来表示子任务的名称,而不是它们的全称,即Dis = 距离,Sped = 速度,# Ins = 实例数量,Clos = 最近,Sta = 状态,SameR = 在同一条道路上,Mot = 运动,App = 接近,LaneC = 车道变换,Onco = 迎面而来,Cro = 穿越,Over = 超车,Brak = 刹车。最佳结果以粗体报告。
NuInstruct数据集同样是本篇文章重要的贡献点之一,在此小编为大家简单总结一下:
NuInstruct数据集旨在为多视角自动驾驶系统提供高质量的训练和评估数据。该数据集由多视角视频问答对组成,涵盖了自动驾驶中的多种任务场景和需求。
1.数据量:包含91,000对多视角视频问答对。
2.子任务:涵盖17个子任务,包括感知、预测、风险评估和带推理的规划。感知任务:涉及目标检测、多视角感知等。预测任务:涉及对周围物体行为的预测。风险评估:涉及对潜在风险的检测。规划任务:涉及基于多视角和时间数据的安全路径规划。

3.数据集特性多视角视频:数据集中的视频来自不同视角,提供了丰富的空间和时间信息,有助于模型全面理解驾驶环境。多模态数据:数据集包含了视觉、空间和语言信息的结合,能够帮助模型在多模态输入下进行综合判断和决策。高质量标注:每个问答对都经过高质量标注,确保数据的准确性和可靠性。

Nududict与现有的基于语言的驾驶数据集的比较。“Pw/R”表示带有推理的计划。NuDoudult提供各种任务和全面的信息(例如,包括多视图、时间、距离等),以全面了解自动驾驶。
Ideas
小毛觉得这种基于指令的自动驾驶构架确实有一定的合理性,简单的总结了几点,欢迎大佬们批评!
1.增强决策透明性: 传统的Rule_Based方法好处就是case可解,端到端方法很容易造成,明知道在某种场景下系统出错,但是无法解决的尴尬。面向指令的架构允许系统生成可解释的决策步骤。这使得系统能够解释其行为,帮助我们理解系统为何做出某种决策,进而增强系统的可解释性和信任度。
2.处理复杂场景:面向指令的架构能将复杂的驾驶场景分解成一系列可操作的步骤。这有助于系统更好地处理复杂的交通状况,例如多车道变道、避让行人和紧急停车等。
3.高效的数据利用:通过将驾驶任务转化为指令,系统可以利用已有的驾驶数据进行训练。这种方法能够高效地利用数据,提升系统的学习效果和性能。这一点和我们人类学习有点像,对于特定的任务,学习特定的数据。
4.灵活性和适应性:面向指令的架构可以更灵活地适应不同的驾驶场景和需求。例如,不同的驾驶指令可以对应不同的驾驶风格或策略,系统能够根据具体情况选择最优的指令序列。
5.便于扩展和维护:面向指令的架构具有较好的模块化特性,便于扩展和维护。新功能或改进可以通过增加或调整指令模块实现,而不需要对整个系统进行大幅改动。
6.增强的多模态融合能力:面向指令的架构能够更好地结合多模态数据(如视觉、雷达、激光雷达等),提升系统的感知和理解能力。通过统一的指令框架,多模态信息可以更加高效地融合和处理。
如果对你的开发、科研有帮助,拜托拜托关注我们,我们将持续奉上优秀的端到端自动驾驶领域研究的分享干货!

温馨提示:点赞=学会,收藏=精通,点击在看,我们一起充电!



端到端自动驾驶
关注AD(Autonomous Driving)行业最前沿的人工智能解决方案,致力于打造为一个自动驾驶从业者及相关科研学者们的课外充电,技术分享,以及社区交流的服务平台!
 最新文章