一句话定位

ViNT(Visual Navigation Transformer)是一个 31M 参数的图像目标(image-goal)视觉导航基础模型:用两个 EfficientNet-B0 编码器把「过去 5 帧 + 当前帧观测」与「当前+目标图的融合」tokenize,喂进一个 4 层 4 头的 decoder-only Transformer,输出到达子目标的时间距离和 5 步未来相对航点(embodiment-agnostic 归一化航点)。它只在已有公开导航数据集拼起来的约 80 小时、8 种机器人本体上训练,却能零样本控制训练里从没出现过的机器人(如 Unitree Go1 四足),配上拓扑图 + 图像扩散子目标提议就能跑 公里级导航,还能用「类 prompt-tuning」的软提示把目标编码器换成 GPS 航点 / 高层路由指令,1 小时数据即可微调到 CARLA 自动驾驶这类完全 OOD 的任务。CoRL 2023 Oral。

背景与定位

论文要回答的问题是:移动机器人的「基础模型」需要什么? 在 NLP/CV 里「大规模弱监督预训练 → 零样本 / prompt-tuning / 微调迁移」的范式已经成立,但机器人因为环境、平台、应用高度异质,难以照搬。作者选了视觉导航作为切入口——机器人仅凭第一视角 RGB 观测导航——因为它对数据假设最少。

关键的建模决策是采用 image-goal navigation(图像目标导航) 作为预训练目标:目标由「机器人在目标处会看到的那张图」指定。相比 PointGoal、GPS 目标或语义目标,图像目标不需要真值定位、语义标注或任何 metadata,任何「有视频 + 有动作」的数据都能拿来训,从而能把大量不同机器人的数据汇成一个大而杂的训练集。

这条路线是作者团队(Sergey Levine 组,BAIR)导航模型谱系的一环:GNM(General Navigation Model,2022/ICRA 2023,首次证明异质 RGB 数据可训跨本体通用导航策略,但只做零样本图像目标这一件事、模型小)→ ViNT(本文,把它做成可适配多任务的高容量基础模型)→ NoMaD(2023,给 ViNT 加目标掩码 + 动作扩散头,把探索和定向导航合并、缩到 19M)。论文自陈最近的对照是 RT-1、I2O、GNM:RT-1 强在指令跟随,I2O 强在 sim-to-real,而 ViNT 的重点是单一模型跨多机器人、并能高效适配到不同下游任务。高层长时程框架(拓扑图 episodic memory + 类 A* 物理搜索 + 卫星图启发式)直接沿用作者此前的 ViKiNG。相关数据谱系可参考 Open X-Embodiment 这类跨本体数据聚合工作,方法论定位见 机器人基础模型综述

范式命名:cross-embodiment foundation model for visual navigation with strong zero-shot generalization——一个「先给任意移动机器人一个通用导航底座、再在其上构建具体应用」的思路。

模型架构

总体数据流:输入当前+过去观测 o_{t-P:t} 和子目标图 o_s,输出 (i) 到达子目标所需时间步数(dynamical / temporal distance),(ii) 长度 H 的未来动作序列。全部网络从零初始化、端到端训练。

Tokenization(观测编码)

  • EfficientNet-B0 编码器 ψ 独立编码当前帧和 P=5 个过去帧,每帧输入分辨率 85×64×3,取最后卷积层的扁平特征向量作为 token。
  • Token 嵌入维度 d_model = 512

Goal fusion(目标融合,关键设计):作者发现直接用 EfficientNet 抽取目标图特征 ϕ(o_s) 效果很差,模型常常完全无视目标。他们的假设是——图像目标任务里有用的特征往往是相对的(当前观测与目标的差异),而非目标的绝对表征。于是用一个单独的目标融合编码器 ϕ(o_t, o_s):把当前观测图和目标图沿通道维拼接,过第二个 EfficientNet-B0,扁平化得到 goal token。附录 Table 5 的消融证实:early fusion 对核心导航任务最好但不支持下游适配;late fusion 利于适配但性能差;这套 goal-fusion 折中——逼近 early fusion 的性能,同时保留适配能力

Transformer:P+2 个 token(5 个过去观测 + 当前观测 + 1 个 goal token = 7 个 token)加位置编码后送入 decoder-only Transformer f,n_L = 4 层多头注意力块,每块 n_H = 4 头,前馈隐藏维 d_FF = 2048。输出序列拼接后过一个 FC 网络(MLP 层 (256, 128, 64, 32))预测距离和动作。整个模型 31M 参数

Embodiment-agnostic action space(本体无关动作空间):动作 â 采用相对航点(relative waypoints);为吸收不同机器人尺寸/速度差异,把航点按机器人最高速度归一化。部署时由各机器人自带的低层控制器反归一化并用低层控制跟踪——这套设计沿用 GNM。

长时程系统(Sec. 4):ViNT 策略本身只做短时程图像目标导航;要跑长距离/无图像目标的任务,外挂:

  • 拓扑图 M 作为在线构建的 episodic memory,节点是子目标观测、边是可达路径(由 ViNT 预测的距离决定连通性)。
  • 图像到图像扩散模型 g(o_s|o_t) 提议多样的短时程子目标候选(详见「训练方法」);这些子目标不带空间信息,再用 ViNT 计算时间距离和动作 rollout 做空间接地(spatial grounding)
  • 类 A* 物理搜索:代价函数 f(s) = d_M(o_t, s⁻) + d_pred(s⁻, s) + h(s, G, C),其中 h 是目标导向启发式,可为 0(纯覆盖探索)、欧氏距离(GPS/2D 位置目标)或基于卫星图训练的学习型启发式(CNN 用对比目标预测子目标是否在通往 G 的轨迹上)。

下游适配(Sec. 5):把目标编码器 ϕ 换成一个小网络 ϕ̃,将新模态目标 σ(2D 坐标 / 高层路由指令)映射到同一 goal token 空间——即「软提示 / soft prompt」,用同样目标做少量数据微调。GPS 适配:切掉目标编码块,学一个 size-3000 固定张量与 ego-坐标 GPS 目标拼接过 2 层 MLP;指令适配:为「left/right/straight」各学一个固定张量,按索引选取。

数据

训练集全部来自已有公开/他人采集的数据集,没有为 ViNT 专门采数。异质导航轨迹,8 种不同机器人本体,速度跨度 0.2–10 m/s,环境含办公室、走廊、郊区、越野小径、校园等。附录 Table 7 逐条列出(Total Hrs = 各数据集总时长,Hrs Used = 实际用于训练的时长):

#数据集平台速度总时长用于训练环境
1GoStanfordTurtleBot20.5 m/s17h14hoffice
2RECONJackal1 m/s25h25hoff-road
3CoryHallRC Car1.2 m/s2h2hhallways
4BerkeleyJackal2 m/s4h4hsuburban
5SCAND-SSpot1.5 m/s8h4hsidewalks
6SCAND-JJackal2 m/s1h1hsidewalks
7SeattleWarthog5 m/s1h1hoff-road
8TartanDriveATV10 m/s7h5hoff-road
9NeBulaATV10 m/s10h10hoff-road
10SACSoNTurtleBot20.5 m/s75h10hoffice
11BDDCar(s)20 m/s10h4hon-road
合计160h80h

口径提醒:正文/摘要对规模的说法不一致——摘要说「hundreds of hours」、正文说「over 100 hours」、Table 7 标题说「over 150 hours」,而表格实际「Hrs Used」加总为 80 小时(160 小时可用)。这里以表格数字为准:约 80 小时用于训练,覆盖 11 个源数据集、8 种本体。平台含 4 个商用(TurtleBot、Jackal、Warthog、Spot)+ 若干自制(Yamaha Viking ATV、RC Car、乘用车)。

动作标注:图像目标是自监督采样的——从轨迹里随机取未来观测 o_s := o_{t+d}(d 从 [l_min, l_max] 均匀采)当子目标,对应的 H 个未来动作与距离 d 直接当标签,无需人工标注。动作统一转成相对航点并按各机器人最高速度归一化,实现跨本体混训。数据「as-is」使用——没有做传感器系统辨识或跨机器人的归一化/同质化,每个平台保留自己的低层控制器与板载栈。

扩散子目标模型的数据:从训练轨迹里取 o_t(随机),o_s 取其后 5–20 个时间步的未来观测,构成图像对训练条件生成。

CARLA 微调数据(下游):用规则化 oracle 自动驾驶 agent 采,起终点随机、最长 900m。Town01 采 181 条轨迹(≈4h) 训练、Town02 采 52 条(1h) 留出测试;再加 4h「偏离后回正车道」的纠偏轨迹。实验用至多 5 小时数据,不到 1 小时即有效果(正文原话 “under 1 hour” / “as little as 1 hour”)。

训练方法

目标函数:最大似然,联合预测动作序列和时间距离(式 1): L = E_τ E_t E_d [ log p(â | f(ψ(o)_{t:t-P}, ϕ(o_t, o_s))) + λ·log p(d | f(…)) ],其中 λ = 0.01 平衡两个损失,最大距离 = 20(时间步)。预测时间上下文 P = 5预测时程 H = 5

ViNT 训练超参(Table 6)

  • 30 epochs,batch size 300,学习率 5×10⁻⁴,优化器 AdamW4 epoch warmup + cosine(周期 10)。
  • 微调学习率 1×10⁻⁴

下游微调 / 适配流程

  • 全模型微调(image-goal):架构不变,LR 1e-4、AdamW、无 warmup/scheduler,不混入先验数据,5 epochs。用最少 1 小时 on-task 数据就能掌握新环境/新本体。
  • GPS 适配 / 指令适配:见「模型架构」的软提示机制,cosine + warmup 到 1e-4、4 epochs;GPS 从未来里程计自监督采目标,指令则按未来位置的横向偏移回溯打「left/right/straight」标签(阈值 0.05 归一化距离)。

扩散子目标模型的训练:图像到图像扩散(318M 参数,独立于 31M 的 ViNT 策略),U-Net(Flax diffusers 实现、去掉文本 cross-attention),图像条件用通道拼接注入;采用 Kingma VDM 的连续时间扩散 + 固定线性噪声调度 + 非加权 L_simple 目标 + classifier-free guidance。训练:dropout 0.1、batch 128、AdamW、1000 步 warmup、LR 1e-4 cosine、weight decay 0.001、EMA、CFG mask 比例 0.2、250,000 步。采样:DDIM(η=0)、200 采样步、guidance weight 1.0。

Infra(训练 / 推理工程)

  • ViNT 训练算力:代表性配置 8× V100,约 30 小时。论文脚注说明整个研究期间用过多种工作站(2×4090 / 3×Titan Xp / 4×P100 / 8×1080Ti / 8×V100 / 8×A100),架构固定但 batch 与时长随设备变化。并行/精度细节未披露
  • 扩散模型训练算力v4-8 TPU board,约 30 小时,250k 步。
  • 推理 / 部署:策略以 4 Hz 运行,用 PD 控制器在 receding-horizon 方式下跟踪预测航点。GitHub 说明模型在 LoCoBot + NVIDIA Jetson Orin Nano 边缘算力上部署;研究者已独立把它跑在 Clearpath Jackal、DJI Tello、Unitree A1、TurtleBot2、Vizbot 及 CARLA 仿真上。论文本身在五种平台上评测,含无人机、四足和两台训练中未出现的新机器人。具体 FPS 上限 / 端侧延迟数字未披露(4 Hz 是运行频率)。
  • 论文自陈局限:Transformer 模型推理开销明显高于简单前馈卷积网络,对四旋翼这类功耗受限平台是挑战。

评测 benchmark

全部为真机(+CARLA 仿真微调)实测。

① 覆盖探索(undirected goal-reaching,成功率,Table 1)

方法IndoorOutdoor
End-to-End BC0.720.44
End-to-End GCG0.61
RECON(VIB 子目标)0.190.23
ViNT-R(随机子目标)0.81
ViNT(扩散子目标)0.941.00

② 有引导的公里级导航(Table 2)

场景方法SuccessSPL无碰撞距离
Indoor: PositionViKiNG0.6056m
ViNT0.9091m
Outdoor: GPSViKiNG0.640.42720m
ViNT0.950.841270m
Outdoor: SatelliteViKiNG0.770.68780m
ViNT1.000.941040m

③ 零样本跨本体(覆盖任务,无干预最大位移 / 米,Table 3)

模型LoCoBotGo1VizbotJackal
Single-Robot(专家)401240184
GNM60820427
ViNT12045110438

其中 Go1 四足训练集中完全没有(虽有 Spot 数据,但两者特性差异大),ViNT 仍零样本控制。更值得注意的是 ViNT 在分布内机器人(Vizbot)上也大幅超过只在该机器人数据上训练的专家模型——即正迁移(positive transfer),作者视之为「基础模型」的关键标志、且小模型(GNM)不具备。

④ CARLA 微调 / 适配(Table 3-右)——perceptually 完全 OOD(真实数据训、仿真测):

方法Images(Success)Images(In Lane)PositionsRouting
Scratch0.450.740.790.43
ImageNet0.220.710.590.45
SimCLR0.210.630.700.64
VC-1(冻结)0.190.650.490.38
GNM0.490.660.450.49
ViNT0.820.820.890.72

ViNT 在 0 微调数据时已 40% success,用 <1 小时数据微调到 80%,且超过用 5× 数据训练的单域专家模型。GNM(8.7M 可训练参数 vs ViNT 31M)在适配任务上明显吃亏,说明 ViNT 的架构与更大容量对广义适配是必要的。

⑤ 冻结编码器消融(Table 8):ViNT-FE(冻结视觉编码器、与 VC-1 同样可训练参数量)在 Images/Positions 上得 0.32/0.78,远超同为冻结通用编码器的 VC-1(0.19/0.49)——即导航相关特征比通用视觉特征更易迁移到 OOD

涌现行为(定性):(a) 隐式碰撞避免——给它无效随机目标仍能 80% 成功探索(ViNT-R);(b) 隐式偏好——户外倾向走铺装路、室内走走廊中线,尽管训练数据含大量歪扭次优轨迹;(c) 对动态行人的鲁棒避让,尽管只用离线自监督目标训练。

创新点与影响

  • 把「基础模型」范式落到移动机器人导航:证明用图像目标这一最弱假设的自监督目标,把一堆异质公开数据集拼起来训一个 Transformer,就能得到跨环境、跨本体的通用导航底座,并支持零样本迁移 + prompt-tuning + 微调三种适配路径。
  • goal-fusion 编码器:指出图像目标任务需要相对(当前 vs 目标)而非绝对目标表征,用通道拼接的第二编码器解决「模型无视目标」的失败模式(Table 5 消融支撑)。
  • 本体无关归一化航点动作空间 + PD 跟踪,使单一策略能驱动尺寸/速度差异巨大的多种机器人,并出现正迁移(跨机器人互相增益、超过单机专家)。
  • 扩散子目标提议 + 拓扑图物理搜索:首次用图像扩散模型在导航里提议多样短时程子目标,配 ViNT 空间接地,实现公里级、无干预的探索式导航;并观察到 ViNT 对低质量/无效子目标鲁棒(因其「默认」无碰撞行为)。
  • 影响:ViNT 是 BAIR「通用导航模型(GNM/ViNT/NoMaD)」谱系的中枢,开源权重 + 训练/部署代码被独立复现到多种机器人;后续 NoMaD 正是把它的探索外挂(300M+ 扩散子目标)换成 19M 的目标掩码动作扩散。
  • 作者自陈局限:(1) Transformer 推理开销大,对功耗受限平台(四旋翼)是负担;(2) 泛化假设一定的结构相似性——无法控制四旋翼高度、无法处理动作表征变化或 LIDAR 等新传感器;(3) 更广的泛化有待更大的多机器人数据集。

原始链接

一手源存档(sources/)