【论文解读】CVPR2024-Volumetric Environment Representation for Vision-Language Navigation
论文:https://arxiv.org/abs/2403.14158
摘要:
视觉语言导航(VLN)要求智能体观察周围环境并根据指令在3D环境中导航。显然,成功导航的关键因素在于全面的场景理解。先前的VLN智能体采用单目框架直接提取透视视图的2D特征。虽然直观,但它们在捕捉3D几何和语义方面存在困难,导致了部分和不完整的环境表示。为了实现具有细粒度细节的全面3D表示,我们引入了一种体积环境表示(VER),将物理世界体素化为结构化的3D单元。
对于每个单元,VER通过2D-3D采样将多视图2D特征聚合到统一的3D空间中。借助这种强大的表示,我们的智能体能够通过粗到细的特征提取预测3D占据情况、3D房间布局和3D边界框。基于在线收集的VER,我们的智能体执行体积状态估计并构建用于预测下一步的情节记忆。
实验结果显示,多任务学习产生了有前途的环境表示,从而在VLN上取得了显著的性能提升。我们的模型在VLN基准测试(R2R、REVERIE和R4R)上取得了最先进的性能。我们的代码将会发布。
图1。智能体观察其周围环境并提取候选视图的透视特征(○)。先前的方法基于这些2D特征构建拓扑图或语义空间表示。我们的VER通过2D-3D采样将多视图特征聚合到结构化的3D单元中。VER是一种强大的表示,适用于3D感知任务和VLN,为决策提供了体积状态空间。
1. 引言
视觉语言导航(VLN)要求智能体根据自然语言指令在3D环境中导航。很明显,对环境的整体理解有助于学习导航策略。因此,环境表示学习成为准确导航决策的基础。
早期的VLN方法通常通过序列到序列(Seq2Seq)框架学习环境表示,该框架将指令和多视图透视观察映射到动作。这些基于Seq2Seq的代理将视觉观察嵌入内部循环单元中的隐藏状态。这妨碍了代理直接访问过去的观察并在长时间探索期间检索相关状态。
为了解决这个问题,后来配备了外部内存模块的VLN系统,该模块将环境表示与导航状态明确存储,已被证明在策略学习中是有效的。
它们使用拓扑表示[2, 17, 22, 25, 40, 87]和语义空间表示[1, 4, 18, 33, 42, 47, 76, 104, 117]来建模环境的内容和布局(图1)。
尽管在先进的体系结构中表现出有希望的性能(例如图神经网络[56]和Transformer [108]),这些VLN系统仍然使用单目框架从观察中提取2D特征。虽然直观,但它们将深层信息压缩到透视平面上,牺牲了存在于3D空间中的整体场景结构。
因此,在捕捉复杂场景中的3D几何和语义方面,它们面临挑战。结果,这种不完整的环境表示容易导致次优的导航决策。
在本文中,我们引入了一种体积环境表示(VER),将物理世界量化为结构化的3D单元(图1)。我们采用环境编码器(§3.1)将多视图特征聚合成统一的3D表示。每个单元对应于3D空间中的体积查询,用于2D-3D采样。与抽象的拓扑图和语义地图相比,VER捕捉了探索环境的细粒度几何细节和语义。由于强大的体素描述,VER能够预测3D占用[43, 101, 106, 118]、房间布局[124, 128, 131]和3D框[10, 70, 72]。
考虑到在这些3D感知任务中需要细粒度表示,随着VER分辨率的增加,计算和内存需求呈立方体增长。为此,我们提出了一种自粗到细的VER提取方法,其中包含可学习的上采样操作,逐渐重建细粒度表示。该网络在每个尺度上都进行监督,通过利用粗糙和细粒度表示作为输入来预测多分辨率语义标签。
为了训练这个感知网络,我们在Matterport3D数据集[14]上生成了高质量的注释(§3.4)。在每个步骤中,我们的代理首先观察周围环境并将其编码成VER(§3.2)。通过这种方式,指令可以更好地基于3D世界,建立感知和语言指令与VER中的每个3D单元之间的可靠关联。然后,一个体积状态估计模块计算周围单元的过渡概率。配备了这个模块,我们的代理执行全面的决策过程,然后将体积状态映射到本地动作空间。
此外,我们建立了一个记忆模块,将所有观察到的视点在线收集到拓扑图中,提供全局动作空间(§3.3)。通过与VER中相应的视点的相邻支柱表示更新节点嵌入。在决策制定方面,我们的代理结合了从体积状态导出的本地动作概率和从记忆模块获得的全局动作概率。我们首先在三个VLN基准上评估我们的代理,即R2R [3]、REVERIE [89]和R4R [48](§4.1)。在R2R测试中,我们的代理的成功率(SR)和成功预测长度(SPL)分别比现有方法提高了3%和4%,在REVERIE val unseen上提供了4.20%的SR和3.29%的SPL改进。我们的消融研究证实了我们核心模型设计的有效性(§4.2)。额外的结果表明,我们的VER对于3D感知任务,例如3D占用、3D检测和房间布局,具有准确的预测能力(§4.3)。我们的代码和注释将会发布。
2 相关工作
视觉语言导航VLN
VLN是一项要求代理根据自然语言指令在3D环境中导航的任务。早期的VLN代理[3, 30]基于Seq2Seq框架,以在隐藏状态中保留观察历史。因此,随着路径长度的增加,它们难以捕捉长距离上下文。后来的努力致力于多模态表示学习、导航策略学习和数据生成[34]。作为首要步骤,多模态表示学习帮助代理理解环境,并建立指令与视觉观察之间的关系。受到视觉语言预训练的成功启发[80, 90, 102],最近的方法[20, 41]使用基于Transformer的体系结构[53, 108]进行联合视觉和文本表示。一些尝试进一步利用视觉信息,通过建模语义关系[46]和空间信息[17, 25, 40]。对于导航策略学习,许多VLN模型[112]使用基于模仿和强化学习的训练策略。一些解决方案[58, 111]引入世界模型[37]进行心理模拟和规划。此外,人类指令的稀缺和场景的有限多样性妨碍了代理学习导航策略并在未见过的环境中进行泛化[75]。因此,已经提出了几种VLN数据生成策略,用于从现有数据集创建新的轨迹[21, 35, 92, 116],生成更多指令[51, 103],或创建合成环境[63–65]。此外,受到大型预训练模型的推动[8, 91],一些VLN代理[19, 26, 71, 78, 97, 125]展示了令人期待的零样本性能。
尽管它们做出了杰出的贡献,但大多数VLN代理依赖于透视观察中的2D视觉线索。不幸的是,在复杂场景中,它们建立的环境表示容易受遮挡和有限的几何信息的影响。为了实现整体的3D场景理解,我们提出了VER,即通过多个3D感知任务学习的统一环境表示。在导航过程中,我们的代理基于VER执行体积状态估计,进行在3D空间内的决策。
环境表征
现有的VLN模型引入了各种用于策略学习的环境表示,包括拓扑图[2, 17, 22, 25, 40, 110]和语义空间表示[1, 4, 18, 33, 42, 47, 76, 104, 117]。从更广泛的视角来看,为机器人和自动驾驶引入了多种表示[32, 62, 79, 93, 98, 105]。
在早期阶段,2D占用栅格地图[9, 29, 36]基于贝叶斯估计模拟了机器人导航中环境中的占用和自由空间。经典SLAM系统[5, 7, 28, 96]通过整合来自各种传感器的信息,包括LiDAR和摄像头,直接构建地图。然而,在SLAM中的表示仍然依赖于诸如3D点云和图像补丁等基本元素。
一些努力[13, 15, 39, 129]致力于开发可学习的语义地图表示。为增强空间推理,场景图表示[6, 16, 54, 94, 109]定义了环境空间元素之间的拓扑关系。此外,神经场景表示[59, 67, 81, 86, 100]将图像观察嵌入到对象类别的潜在代码中,展示了对大场景的可扩展性[49, 82]。
为了对周围环境进行显式的3D感知地图,以视觉为中心的BEV感知将原始传感器信息映射到BEV网格表示[44, 62, 68, 70, 79, 88]。与简化垂直几何的BEV网格相反,提出了3D占用预测[45, 98, 107],用于从单色图像[11, 93, 99, 101, 120]或多视图图像[52, 57, 122]中推断3D几何。然而,现有的VLN代理主要集中在抽象关系或压缩语义映射上,缺乏访问整体场景信息的能力。提供更多的世界背景信息对于随后的决策过程可能是有益的。受到这一观点的启发,我们探索了一种完整的环境表示VER,将3D世界体素化为具有几何感知的3D单元。VER有效地捕捉整个场景的语义信息和几何细节。基于VER,我们的代理展示了预测3D占用、房间布局和目标检测的能力。此外,我们提出了用于高效特征提取的自粗到细的VER学习。
3 方法
图2. 我们模型的概览。给定候选视图的透视特征,一组3D查询被用于对它们进行采样并聚合到VER中。为了编码VER,我们采用粗到细的提取并在3D感知上执行多任务学习。基于VER,提出了一个体积状态估计模块,用于预测状态转移。情节性记忆用于使用每个视点的相邻柱表示存储过去的观察。在决策过程中,我们的代理结合了从体积状态导出的局部动作概率和从情节性记忆获得的全局动作概率。
问题公式化
为简洁起见,我们在R2R [3]的背景下提出技术描述。环境的可导航区域被组织成一个无向图,包含一组节点(视点)和连接边。在R2R中,一个具有身体的代理需要根据嵌入为E∈R Dw ×L(其中Dw 是通道维度)的L个单词的人类指令,在3D环境中导航到目标位置。在时间步骤t,代理对其周围环境有一种自我中心的感知。每个视角与2D视觉特征F 2d t ∈R D i ×H×W相关联,其中H和W是图像平面的空间形状,D i 表示通道维度。本地动作空间At ∈ RNt +1由Nt个候选视图定义,每个对应于相邻的可导航节点{v ∗ t,n } Ntn=1,以及一个[STOP]动作。先前的代理直接基于每个候选视图的F 2d t 预测动作概率p 2d t ∈RNt +1。然而,这些带有有限几何信息的2D特征是对3D环境的部分表示,很容易导致次优的决策。
图3展示了我们的粗到细的VER表示提取过程(§3.1)。该过程采用了级联上采样操作,包括3D反卷积(Eq. 2)和3D查询(Eq. 1)。在训练过程中,VER被学习用于预测多分辨率的语义信息。
概述:
我们引入VER,将3D世界体素化为结构化的3D单元(图2)。在步骤t,使用环境编码器对每个视图的多视图特征(F 2d t)进行采样到每个单元中,形成统一的表示F 3d t∈R D e ×X×Y×Z。其中,X和Y是水平平面的形状,Z保留3D空间的高度信息,D e 表示通道维度。VER与基Manhattan假设的世界坐标系中的重力对齐[12]。为了编码VER,我们采用了用于3D占据预测、房间布局估计和对象检测的粗到细的提取方法,使用生成的注释进行训练。基于VER,提出了一个体积状态估计模块,用于预测围绕3D单元的状态转移概率p 3d t∈R X×Y ×Z(§3.2)。借助这个模块,我们的代理进行了全面的决策过程,并将p 3d t映射到p 2d t。在决策过程中,我们的代理结合了从体积状态导出的本地动作概率和从情节记忆获得的全局动作概率。
3.1 环境编码器
2D-3D采样
在时刻t,代理观察其周围环境并获取多视图图像。我们采用跨视图注意力(CVA)将它们的特征(每个视图的F 2d)聚合成统一的体积表示F 3d(为简化起见省略了t)。具体来说,我们首先定义一组可学习的3D体积查询Q ∈ R D e ×X×Y×Z,它们被设计为查询VER中每个3D单元的特征。为了合并位置信息,我们将可学习的3D位置嵌入添加到Q中。单个查询Q(x,y,z) ∈ R D e位于Q的(x,y,z)位置,用于采样每个图像特征F 2d,其公式如下:
其中 F3d(x,y,z) 是在(x, y, z)位置的Q用于采样每个图像特征F 2d的结果。
其中,((h′,w′) 表示相应采样点在图像平面上的位置。请注意,出于简洁起见,我们仅显示了单个采样点的公式。由于标准交叉注意力的采样策略在计算上很昂贵,我们引入了可变注意力 [70, 128] 并在CVA中进行了扩展。Q(x,y,z) 选择性地关注参考点周围一组关键采样点,而不是整个 F2d。
粗到细的VER表征提取
直接从透视视图中恢复细粒度的VER容易导致性能和效率的降低[107, 118]。我们提出了粗到细的提取方法,逐渐重建细粒度的VER。我们的方法涉及级联上采样操作(图3),将这个提取过程分为M个级别。在每个级别,我们利用3D反卷积来提高空间分辨率,然后采用CVA查询多视角的2D特征(公式1)以细化详细几何信息。这使得能够直接学习细节,并避免了插值的不准确性[77, 106, 115]。在输入特征(来自公式1)和目标特征之间,我们将具有不同形状的中间特征表示为:
这里,, 表示不同级别的中间特征,‘↑’表示上采样操作。在每个尺度上,感知网络都会得到监督,通过使用{, }作为输入生成多分辨率的语义标签。
多任务学习
我们的VER为各种3D感知任务提供了统一的场景表示。现有研究强调语义和几何密切相互关联 [23, 93, 101]。我们通过在3D占用预测、布局估计和目标检测的监督下训练我们的3D感知网络来对VER进行编码。对于3D占用预测,解码器采用MLPs结构和焦点损失 [73]。对于3D布局估计,我们使用基于查询的头部生成曼哈顿布局。对于3D检测,我们将3D特征压缩成BEV(沿高度),然后使用检测头部预测3D框 [70]。在布局估计和检测中均采用双向匹配损失 [70]。分别使用权重向量[2.0, 0.25, 0.25]平衡这些损失。然后,代理在不同的视点之间移动,并通过冻结的3D感知网络对VER进行编码。
3.2. 体积状态估计
体积状态
在导航的初始阶段,代理被放置在一个位于 的起始视点。我们定义了一个体积状态空间 ,对应于感知到的3D物理世界,具有初始状态。在第 t 步,利用指令嵌入 EE 和 VER 作为先验(0 < t < T),我们的目标是确定下一个中间状态 以达到目标状态)。由于整个环境只能部分观察到,我们将局部状态转换 在 X 视为行动预测的参考。
状态估计
我们设计了一个体积状态估计模块,用于预测在给定 E 和 的条件下中间状态 的概率分布。我们首先将环境表示重新整形为,然后采用多层transformers(MLT)来建模 EE 和 之间的关系,如下所示
其中,是更新后的表示,表示连接操作。MLT 包括堆叠的自注意力块。然后我们使用MLPs进行状态估计:
高效的高度感知组
由于的 3D 形状(XY Z ≫ L),方程(3)的计算和内存效率受到妥协。受先前的高度建模方法的启发 [50, 119, 121, 123],我们沿着高度轴均匀划分 F 3d t 为不同的组 {F g t,z ∈ 308 R D e ×XY } Z z=1。然后我们对每个组应用 MLT,并将方程(3)重新制定为
其中,MLT的权重在不同组之间共享(见表5)。来自不同组的更新后的特征 沿着高度方向聚合,以利用互补信息。为了简便表示,符号eF 3dt稍微重新用于收集的3D表示。然后,通过方程(4)计算 p 3d t。
3.3. 行动预测
为了预测在整个已探索区域内的下一步,代理通过结合体积状态估计和历史导航记忆进行决策。具体而言,我们的代理首先将当前体积状态空间 X 映射到本地行动空间 A_t。一个拓扑图 被构建并在线更新,用于表示观察场景的历史记忆。其中 v ∈ V_t 表示观察到的视点(所有访问过的视点和它们的候选视点),通过对先前的 VER 进行压缩来进行编码。E_t 表示这些视点之间的可导航连接。
将体积状态映射到行动。
由于相邻的候选视点 位于水平平面上,我们通过减少 z 轴(高度)的自由度,将体积状态空间映射到水平状态空间。具体而言,我们沿着高度轴对 p_3d_t 进行平均,得到 p_h_t ∈ R^{X×Y}。然后,我们对(代表当前视点,即 [STOP])附近的概率值进行求和,然后将其归一化为本地行动概率:
这里,p_h_t(x_n, y_n) 是在 (x_n, y_n) 处的值,Ω_n 是 v*_{n} 在水平平面上的邻域。在训练阶段,使用具有高斯核的热图 [61, 126] 来监督这个行动预测(§3.5)。
全局行动预测。
我们使用记忆模块来存储过去的环境表示,并允许轻松访问它们。为了高效地存储记忆并保留与指令的关系,我们使用当前观察视点 在步骤 t 时对应的邻近 pillar [60, 114] 表示 :
更多推荐
所有评论(0)