Is Mapping Necessary for Realistic PointGoal Navigation?
现实 点目标导航 是否需要地图?
CVPR 2022
Partsey R, Wijmans E, Yokoyama N, et al. Is Mapping Necessary for Realistic PointGoal Navigation?[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022: 17232-17241.
介绍
目标:证明显式地图不是成功导航的必要条件。
对比实验
数据集(模拟器):无地图导航模型的标准数据集Gibson。
模拟器和现实世界的区别:本体感知(位置和方向)、观测噪声、动力学噪声。
- 理想环境:位置和方向信息 + 没有RGB-D传感器噪声和驱动噪声:100%
- 现实环境:没有位置和方向信息 + RGB-D传感器噪声和驱动噪声:71.7%
- 实验环境:位置和方向信息 + RGB-D传感器噪声和驱动噪声:97%([39])、99.8%(本论文)
证实了唯一的性能限制因素是智能体的自我定位能力。
任务:PointGoal导航
在PointNav中,智能体在以前未见过的环境中初始化,并被分配到相对于其起始位置指定的目标。动作空间是离散的,由四种类型的动作组成:停止(结束episode),向前移动0.25m,以α角向左转弯和向右转弯。
评估指标
智能体通过三个主要指标进行评估。
1)成功,如果智能体在距离目标0.36m (2×agent半径)的范围内发出停止命令,则episode i i i 被认为是成功的。
2)路径长度的成功权重(SPL)。形式上,对于episode
i
i
i,设
S
i
S_i
Si 为成功的二进制指示器,
p
i
p_i
pi 为智能体路径的长度,
l
i
l_i
li 为最短路径(测地线距离)的长度,那么对于N个episode
KaTeX parse error: Undefined control sequence: \label at position 2: \̲l̲a̲b̲e̲l̲{eq:spl} \text …
3)SoftSPL,即二元的成功状态被目标的完成过程所取代。形式上,对于episode
i
i
i,设
d
0
i
d_{0_i}
d0i 为到目标的初始距离,
d
T
i
d_{T_i}
dTi 为episode结束时到目标的距离(包括成功和失败),则
SoftSPL
=
1
N
∑
i
=
1
N
(
1
−
d
T
i
d
0
i
)
(
l
i
max
(
p
i
,
l
i
)
)
(2)
\text {SoftSPL} = \frac {1}{N}\sum \limits_{i=1}^{N}\left (1 - \frac {{d_{T_i}}}{{d_{{0}_i}}}\right )\left (\frac {l_i}{\max (p_i, l_i)}\right ) \tag{2}
SoftSPL=N1i=1∑N(1−d0idTi)(max(pi,li)li)(2)
智能体策略
模块结构
由两个组件组成:
一个导航策略(nav-policy),在时间步骤 t t t 给出观测值 O t O_t Ot,决定采取什么行动来达到目标;
一个视觉测程(VO)模块,输入一对180×360 RGB-D帧,作为两个连续观测值 ( O t − 1 , O t ) (O_{t−1},O_t) (Ot−1,Ot),并输出相对位姿变化( ∆ x ∆x ∆x, ∆ y ∆y ∆y, ∆ z ∆z ∆z, ∆ θ ∆θ ∆θ),其中 ∆ x ∆x ∆x, ∆ y ∆y ∆y, ∆ z ∆z ∆z 表示摄像机中心的三维平移, ∆ θ ∆θ ∆θ 表示围绕重力矢量的旋转。然后用于更新目标相对于机器人的位置,更新后的目标位置将与 O t O_t Ot 一起提供给导航策略,以预测下一个行动。初始目标位置估计等于实际目标位置(根据任务规范)。
- 输入为 g t − 1 g_{t−1} gt−1 :目标前一步的坐标
- O t − 1 O_{t−1} Ot−1 :前一个时间步的观测值
- O t O_t Ot :当前观测值。
网络结构
导航策略的网络结构
我们的导航策略由两层长短期存储器(LSTM)和半宽ResNet50编码器组成。
在每个时间步,策略被给予来自噪声深度传感器(导航策略的常见做法)和位置方向(训练时来自ground-truth,测试时来自视觉测程模块)的输出。
在通过特征编码器之前,视觉观察使用ResizeShortestEdge和CenterCrop观察转换进行转换;前者将输入的最短边调整为256像素,同时保持纵横比,后者将输入的中心裁剪为256 × 256像素。
视觉测程模块的网络结构
视觉测程模块表示为ResNet编码器后加一个压缩块和两个全连接(FC)层。
ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。
网络中的亮点:
1.超深的网络结构(超过1000层)。
2.提出residual(残差结构)模块。
3.使用Batch Normalization 加速训练(丢弃dropout)。
我们将BatchNorm替换为GroupNorm,并使用宽度的一半。压缩块由3×3 Conv2d+GroupNorm+ReLU组成。我们在全连接层之间应用DropOut,概率为0.2。完整的VO管道如图3所示。
训练细节
我们还实现了分布式VO训练管道。在8个节点上训练(每个节点有8个GPU,共64个GPU)比在1个节点上训练快6.4倍。
训练导航策略
我们利用分散式分布式近端策略优化(DD-PPO)和Wijmans等人的奖励结构来训练策略。
奖励函数设置:对于episode i i i,智能体接收终止奖励 r T = 2.5 ⋅ S u c c e s s i r_T = 2.5·Success_i rT=2.5⋅Successi,鼓励它停止在正确的位置,和一个形状的奖励 r T ( a t , s t ) = − ∆ g e o _ d i s t − 0.01 r_T (a_t, s_t) =−∆_{geo\_dist}−0.01 rT(at,st)=−∆geo_dist−0.01,它鼓励向着目标执行动作, ∆ g e o _ d i s t ∆_{geo\_dist} ∆geo_dist 是离目标距离的变化。
我们在Gibson 4+上训练了25亿步,然后在Gibson 0+上训练了25亿步,最后在终止奖励由SPL加权的Gibson 0+上训练了25亿步。在整个实验过程中,每个阶段我们都使用前一阶段中最好的策略开始。
训练视觉测程模块
我们在静态数据集 D = { ( O t − 1 , O t , a t − 1 ,∆ p o s e ) } D = \{(O_{t−1},O_t, a_{t−1},∆pose)\} D={(Ot−1,Ot,at−1,∆pose)} 上训练视觉测程模型。该数据集是通过使用oracle path来创建的,从这些轨迹中对具有关于所采取的行动和自我运动的元信息的RGB-D帧进行统一采样。我们使用Gibson 4+场景(和Gibson-v2 PointGoal导航集)来生成VO数据集。我们通过从训练场景中统一采样20%的观测对(总共500k到5M个训练示例)来收集训练数据集,通过从验证场景中采样75%的观测对(总共34k个)来收集验证数据集。
oracle path指的是一个理想化的路径规划方法,它假设智能体已经知道了完整的环境地图,并且没有任何感知或执行误差。在这种情况下,智能体可以通过简单地计算最短路径来找到目标位置。因此,oracle path可以被认为是一种最优的路径规划方法。
该模型的批处理大小为32,Adam优化器的学习率为 1 0 − 4 10^{−4} 10−4,平移和旋转的均方误差(MSE)损失。
训练视觉测程(VO)模块的优化手段
-
通过action embeddings进行动作调节。视觉测程(VO)模块根据图像和所执行的动作进行测程。我们发现,将动作的one-hot表示转换为continuous embeddings,并将它们连接到VO网络中的最后两个全连接层,显著提高了+8 Success/+5 SPL的性能。
continuous embeddings和one-hot的区别:在one-hot编码中,每个动作都被表示为一个只有一个元素为1的向量,其余元素为0。而continuous embeddings则是将每个动作类型映射到一个固定长度的向量空间中,并使用该向量来表示该动作。相比之下,continuous embeddings可以更好地捕捉不同动作之间的相似性和差异性,并且可以通过embedding层来学习这些特征。因此,在某些情况下,使用continuous embeddings可以提高神经网络的性能。
-
训练时的数据增强。当智能体产生观测值 O t − 1 O_{t−1} Ot−1 和 O t O_t Ot 时,我们可以通过反向姿势和动作创建一个新的训练图像,将 O t O_t Ot 和 O t − 1 O_{t−1} Ot−1 联系起来。我们还提出了一种新的增强,称为Flip。累积起来,它们可以通过+2 Success/+1 SPL来提高性能。
视觉测程模块接收到两个用于向前移动的观测对(原始和翻转)和四个用于转向{左,右}动作的观测对(原始,翻转,交换(原始),交换(翻转))。在聚合阶段,通过对每个增强应用逆变换,将输出转换回原始坐标坐标系,然后求平均值以产生最终的自我运动估计。
图4 数据增强 -
用于集成的测试时数据扩充。为了提高稳健性,我们在测试时执行所有增强,并对所有组合进行汇总预测。这提高了+3 Success/+3 SPL的性能。
-
增加数据集大小和模型大小。最后,我们研究了数据集规模从500k增加到1.5M观测对(+8 Success/+7 SPL),更大的模型规模(+3 Success/+3 SPL),以及数据集规模从1.5M增加到5M (+8 Success/+6 SPL)的影响。
实验
Habitat Challenge 挑战赛2021 PointNav项目
我们在Habitat Challenge 挑战赛基准测试标准中评估了性能最佳的智能体(表1,第16行)。我们的智能体在测试标准拆分中达到94%的成功率和74%的SPL(表3)。与之前发表的最先进技术相比,这增加了+16%的成功率/+15%的SPL。
物体目标导航 (Object Navigation) 是智能机器人的基本任务之一。在此任务中,智能机器人在一个未知的新环境中主动探索并找到人指定的某类物体。物体目标导航任务面向未来家庭服务机器人的应用需求,当人们需要机器人完成某些任务时,例如拿一杯水,机器人需要先寻找并移动到水杯的位置,进而帮人们取到水杯。
Habitat Challenge 挑战赛由 Meta AI 等机构联合举办,是物体目标导航领域的知名赛事之一,已连续举办4届, 此前夺冠队伍出自 CMU、UC Berkerly、Facebook 等知名机构。
2022 年的最新一届比赛共有 54 支参赛队参加,字节跳动 AI Lab-Research 团队的研究者针对现有方法的不足,提出了一种全新的物体目标导航框架。该框架巧妙地将模仿学习与传统方法结合,在关键指标 SPL 中大幅度超过了其他参赛队伍的结果。
虽然我们的结果不能有效地“解决”现实设置下的PointGoal导航,但它们显著地提高了性能,并提供了更多的证据,表明即使在严酷的现实条件下,也可以在不构建显式映射的情况下进行导航。
消融
action embeddings。我们分析了两种可能的整合元信息的方法:将embeddings连接到编码器之后的第一个FC层(表1,将action embeddings到第一个FC层,与基线(第2行与第1行)相比,性能提高了+7 Success/+5 SPL。将action embeddings到所有FC层,性能进一步提高了+1 Success/+1 SPL(第3行与第2行)。我们相信,这允许FC层接收更多的上下文,以使用共享编码器为每个动作类型学习更准确的自我运动。
训练时间。通过应用Flip来丰富VO数据集多样性可以提高+2 Success/+1 SPL(第6行对第3行)的性能。有趣的是,我们发现Swap会降低-2 Success/-2 SPL(第4行对第3行)的性能。
更大的数据集。为了研究大规模训练的影响,我们按照第4.4节所述的相同的数据集收集协议,将训练数据集大小增加了3倍(从500k增加到1.5M训练对)。在没有增强的情况下,增加数据集大小3×可以提高性能+5 Success/+4 SPL(第12行对第3行)和+8 Success/+4 SPL(第14行对第11行)。
我们还使用这个更大的数据集检查了增强的影响。令人惊讶的是,我们发现它们在更大的训练数据集上更有影响力。
更深层次的编码器。我们发现,使用更复杂的编码器架构(ResNet50而不是ResNet18)进行训练,可以进一步提高导航性能+3 Success/+3 SPL(第15行vs第14行)。
sim to sim
我们研究了智能体的两个组件如何从训练数据集Gibson转移到Matterport3D数据集。我们发现在智能体的性能日渐本地化由只有 -6 Success/-6 SPL(表2、行5 vs 行2),智能体的性能与视觉测程法降低更多,-19 Success/-18 SPL(行6 vs 行3)。
这就留下了一个问题——是否存在通用(跨数据集)VO模块?我们预计,创建这样一个系统需要在多个大规模数据集上进行训练。
sim to real
我们在现实中对我们的方法进行了初步探索,并将我们的学习代理部署在没有sim2real适应的LoCoBot上。在9个episodes中,它获得了11%的成功,71%的SoftSPL,并完成了通往目标道路(SoftSuccess)的92%。根据网站上提供的导航视频,该代理可以很好地避开障碍物。这些初步结果显示出希望,适应性方法可以提高性能。
结束语
虽然我们的结果不能有效地“解决”现实环境中的PointGoal导航,但它们显著地提高了性能,并提供了更多的证据,表明即使在严酷的现实条件下,也可以在不构建显式映射的情况下进行导航。
局限性
虽然我们的工作在现实条件下的无地图导航方法方面取得了重大进展,但它有几个局限性。
- 体现特异性。虽然我们的VO模型和训练过程是策略不可知的,但它们不是实现不可知的。action embeddings的重要性意味着放松这将是一个挑战,这意味着VO模型可能需要为每个实施例重新训练,这是浪费的。
- 数据集特异性。同样,我们学习的VO模型在数据集之间不能很好地传输,可能需要为每个数据集重新训练。我们相信大规模多数据集训练可能是一个解决方案,但这仍然是一个悬而未决的问题。
- 计算需求。我们的最佳导航策略使用了总共75亿步的经验。训练我们最好的VO模型首先需要生成5M个训练对,然后在64个GPU上训练(总共约5000个GPU小时)。PointNav-v1[26,32,36]的高计算需求迅速降低,我们预计PointNav-v2的计算需求也会降低,但这仍然是一个开放的方向。
其余细节
确定SPL的上限
为了将导航策略的性能与视觉测程模块隔离开来,我们通过访问ground-truth位置和方向来检查智能体的性能。在Gibson val数据集上,我们的智能体在PointNav-v2设置中实现了99.8%的成功和80%的SPL。这一结果表明,即使有嘈杂的观测和驱动,也可以在不建立明确的地图的情况下实现近乎完美的成功。
为了回答近乎完美的SPL是否也可以实现,我们需要在现实环境中对SPL设置一个严格的上限。回想一下,在现实设置驱动是有噪声的。因此,即使是一个对环境完全了解的oracle智能体也可能无法遵循最短路径并实现100%的SPL。例如如果智能体按照最短路径靠近障碍物,噪声驱动可能会使其与障碍物接触,此时需要进行避让,因此增加了其路径长度。
为了确定SPL的更严格的上限,我们实现了一个启发式规划器,它使用ground-truth映射来选择运动原语(转{左,右}×N,然后向前移动)。规划器选择使用真实地测地线距离(因此使用真实地图)最好地减少到目标的距离的原语,在选定的原语中执行第一个操作,然后重新运行选择过程,直到达到目标。在Gibson验证中,oracle达到84%的SPL。因此,在现实环境中,我们不应该期望100%的SPL。
然后,我们通过考虑给予神谕的特权信息(ground-truth map)来进一步收紧上限。考虑理想的设置,在这种设置中,智能体的挑战是未知环境中的路径规划,而不是额外满足于有噪声的驱动和观察。这种设置也被认为是Gibson数据集上的“解决”,使其成为量化地面真相地图影响的理想设置。在理想的设置中,在Gibson val上,oracle实现了99%的SPL,而对于一个学习智能体,最广为人知的结果是97%的SPL[33]。使用绝对或相对差异,我们预计在现实环境中,当oracle达到84%的SPL时,学习智能体可以达到大约82%的SPL。虽然80%并不是82%,但这表明视觉测程模块是限制因素(视觉测程模块的最佳结果是63% SPL),我们将在本文的其余部分将重点放在这个组件上
Gibson Env Real-World Perception for Embodied Agents
Gibson Env: 对具身智能体的真实世界感知
发表于 CVPR 2018
Xia F, Zamir A R, He Z, et al. Gibson env: Real-world perception for embodied agents[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 9068-9079.
介绍
Gibson是一个用于开发真实世界感知模型的虚拟环境。该环境基于真实空间的虚拟化,而不是人工设计的空间,并包括来自572个完整建筑物的1400个楼层空间。
方法细节
视觉感知
Gibson的基础空间数据库包括572个完整的建筑物,由1447层组成,总面积为211k m 2 m^2 m2。每个空间都有一组带有全局相机姿态和重建的3D网格的RGB全景图。
使用了激光扫描仪和RGB-D相机等传感器对真实世界中的建筑物进行了扫描和建模。保持环境的语义复杂性。在这个虚拟环境中,智能体可以接收来自真实世界的视觉观察,并进行各种感知任务的学习。
但是由于3D输入和点云渲染的所有缺陷,实现完全逼真的渲染是不太可能的。因此,我们转而将渲染问题表述为形成一个连接空间。使用GAN联合训练用于使渲染看起来更像真实图像的网络(正向函数)以及用于使真实图像看起来像渲染的网络(反向函数)。这两个函数被训练成产生相等的输出。部署时把反向函数作为“矫正眼镜”,因此我们称之为护目镜。
除了渲染RGB图像,Gibson还提供了其他通道,例如深度、表面法线和语义。与RGB图像相比,这些通道对输入数据和灯光变化中的噪声更健壮,我们直接从网格文件中渲染它们。
本体感知
我们也提供可配置的本体感觉数据。一个典型的本体感知传感器套件包括关节位置、角速度、机器人相对于导航目标的方向、位置和速度等信息。我们将这种典型的设置称为“非视觉传感器”,以区别于本文其余部分的“视觉”模式。
物理模型
我们将Gibson与基于Bullet Physics的物理引擎集成在一起,该引擎支持刚体和软体模拟,具有离散和连续的碰撞检测。
为希望以更高级的方式处理的任务抽象出低级控制和机器人动力学,我们还提供了一组集成控制器,以降低从头开始学习控制的复杂性。
运行接口
该环境遵循OpenAI Gym的接口:在每个时间步,智能体在环境中执行一个动作;然后环境运行一个向前的步骤(与物理引擎集成),并返回相应呈现的视觉观察、奖励和终止信号。
我们还提供实用程序函数来对智能体进行键盘操作或可视化运行记录。