一句话定位
在 RVT 的”渲染成虚拟正交视角图像再喂多视角 Transformer”路线上加一个由粗到细的第二阶段——先用固定视角粗定位感兴趣区域,再对该区域放大 4 倍重渲染、用同一个网络精修姿态;配合参数取整、卷积上采样换成凸上采样、旋转预测换成局部特征、自研 CUDA point-renderer 替换 PyTorch3D、混合精度+8-bit LAMB+xFormers 等一揽子系统级优化,在 RLBench 18 任务上把成功率从 RVT 的 62.9% 推到 81.4%(对比 SOTA Act3D 的 65.0% 提升到约 82%),训练速度快 6 倍(2.4M→16M samples/day),推理速度快 2 倍(11.6→20.6 fps),在真实世界只用 10 条示范就能做毫米级精度的插销/插头任务。
背景与定位
RVT(CoRL 2023)确立了”渲染解耦”范式:不直接吃传感器相机图像,而是把 RGB-D 重建的点云重渲染成围绕机器人底座的虚拟正交视角图像,交给多视角 ViT 联合处理,以此绕开 PerAct 体素方法的立方级算力开销。但 RVT 的固定视角分辨率(220×220)在需要毫米级精度的任务(插销、拧灯泡)上力有不逮——虚拟图像里目标物体只占很小一块像素区域,heatmap 定位精度自然受限。RVT-2 的核心问题意识是:“阻止 RVT 达到更高性能的是什么?“答案是精度不够、渲染器太慢。
RVT-2 沿用 RVT 的 keyframe-based 行为克隆范式和多视角渲染骨架,但引入了受 Act3D、C2F-ARM 等工作启发的”由粗到细”(coarse-to-fine)两阶段推理:第一阶段用固定视角定位感兴趣区域,第二阶段把摄像机”放大”(zoom in)到该区域重新渲染,在更高有效分辨率下做精修预测。同时论文强调它的贡献不在提出新技术,而在于把一系列已有但分散的架构/系统改动(凸上采样源自 RAFT 光流的做法、8-bit 优化器、xFormers 快速注意力)组合进一个具体的 3D 操作系统里,并证明这样组合确实能同时提升速度、精度、少样本学习能力。RVT-2 与 RVT 共享同一个 GitHub 仓库(NVlabs/RVT),仓库向后兼容,切换配置文件即可在两版之间切换。
模型架构
总体:与 RVT 一样基于 keyframe 预测——给定语言指令和当前场景点云,预测下一个末端执行器 keypose(6-DoF 位姿 + 夹爪开合 + 避障标志位),交给运动规划器执行。核心改动分”架构”与”系统”两类。
多阶段(coarse-to-fine)设计:第一(粗)阶段用固定虚拟视角预测感兴趣区域;第二阶段把相机”放大”重新渲染该区域再做精修预测。放大倍数为 4(zoom-in 后相机覆盖的区域面积是粗阶段相机覆盖区域的 1/4)。这一由粗到细的两阶段设计是精度提升的最大来源(消融中贡献 17.5 个百分点)。
虚拟视角数量:RVT 用 5 个正交视角(top/front/left/back/right);RVT-2 发现只用 3 个视角(front, top, right)即可,不损失性能——因为第二阶段的放大重渲染已经补上了信息,消融显示 3→5 视角反而降 1.7 个点、训练变慢 2 倍。
参数取整(Parameter Rationalisation):RVT 的虚拟图像尺寸 220、patch 尺寸 11 不是 2 的整数次幂,对 GPU 不友好;RVT-2 改用类 ViT 的图像尺寸 224、patch 尺寸 14,减少 token 总数(= (image_size/patch_size)²)并提速,且不影响精度。
凸上采样(Convex Upsampling):RVT 用转置卷积把 ViT 的 token 网格上采样到图像分辨率再出 heatmap,中间产生的 h×w×d 特征显存开销大;RVT-2 借用 RAFT(Teed & Deng, ECCV 2020)的凸上采样层,直接从 token 分辨率的特征学一个凸组合权重来预测更高分辨率 heatmap,省显存且不掉点,用 PyTorch 原生 fold 函数即可实现。
局部特征旋转预测(Location Conditioned Rotation):RVT/PerAct 用全局池化特征预测末端执行器旋转,无法处理”同一场景有多个朝向不同但都合法的抓取目标”这种情况(如两个朝向不同的相似方块);RVT-2 改用预测位置处的局部池化特征做旋转预测,使旋转预测依赖于选中的位置。
自研 Point-Renderer(系统级,非网络结构):用 CUDA 实现自定义投影式点云渲染器替代 PyTorch3D,分三步:①投影(相机内外参把 3D 点转成像素坐标+深度,GPU 矩阵乘加速);②Z-ordering(把每点的深度和索引打包进一个 64-bit 整数,深度占高 32 位、索引占低 32 位,用 atomicMin 原子操作在并行 CUDA kernel 里为每个像素选出深度最小的点,再解包出该点特征——这一打包技巧借鉴自 Schütz et al. 用于渲染彩色点云的做法,RVT-2 把它扩展到任意通道数的图像特征);③屏幕空间splatting(每点视为面向相机的圆盘,半径 r,在投影+z-order 之后于屏幕空间里补洞,避免点云稀疏区域出现噪声)。
配置数字:放大倍数 4x;虚拟视角数 3(消融也测了 5);图像尺寸 224、patch 尺寸 14(RVT 为 220/11);具体自注意力层数、隐藏维度、语言编码器等 Transformer 内部维度本文未重新披露(继承自 RVT 架构,本文未在附录中重列)。仅支持单臂 Franka Panda 平行爪,无跨本体(cross-embodiment)设计,与 RVT 一致。
数据
仿真(RLBench,与 PerAct、RVT 完全同数据):18 个任务、每任务 2–60 个变体,每任务 100 条训练示范,25 条未见测试示范;4 个无噪声 RGB-D 传感器相机(前/左肩/右肩/腕部),128×128 采集分辨率;CoppeliaSim 仿真的 Franka Panda。数据增强:平移 ±12.5cm(xyz)、绕 z 轴旋转 ±45°。
真实世界:静态第三人称 Azure Kinect RGB-D 相机(比 RVT 中的机位更靠近工作台,以提升高精度任务的点云质量)+ 静态 Franka Emika Panda。共 8 个任务、16 个变体:沿用 RVT 的 5 个任务(stack blocks / press sanitizer / put marker in mug or bowl / put object in drawer / put object in shelf,各 ~10 条训练示范)+ 新增 3 个来自 IndustRealKit 的高精度任务(pick and insert 16mm peg、pick and insert 8mm peg、pick and insert plug,各 10 条训练示范)。全部任务合计 84 条训练示范、80 条测试(16 变体)。测试时随机化拾取/放置位置。仿真与真实世界分开训练各自的单一多任务模型。
训练方法
纯行为克隆,损失与 RVT 一致(平移 heatmap 交叉熵、欧拉角旋转分类交叉熵、夹爪/避障二值交叉熵)。
仿真训练超参:batch size 192(24×8 卡),学习率论文原文写作 2.4×10³(正文 LaTeX 源码两处均如此写,怀疑是指数处漏写负号的笔误——RVT 在同样 8×V100 设置下 batch 24 用的是 2.4×10⁻⁴,RVT-2 batch 放大 8 倍后学习率同比放大到 2.4×10⁻³ 更符合常见的线性缩放经验,但论文没有对此勘误,故如实记录原文数值并标注疑点),cosine 学习率衰减 + 2000 步 warmup,正文写约 80K 步、脚注给出精确值 83.3k 步(对应”16M samples in 20 hours”的训练吞吐换算);GitHub 仓库发布的权重文件名为 model_99.pth,README 注明对应”trained for 99 epochs or ~80K steps with batch size 192”。8 卡上每卡等效 batch 24。
真实世界训练:RVT-2 与 RVT(对照组)在同一份数据上各训 10 epoch,cosine LR 调度,与仿真相同的数据增强;RVT-2 沿用仿真的 batch size/学习率,RVT 因显存无法吃下同样大的 batch,用 RVT 论文官方训练参数——batch 24、学习率同为原文写作的 2.4×10³(同上,怀疑漏写负号)。
改进训练管线(系统级):混合精度训练 + 8-bit LAMB 优化器(Dettmers et al., ICLR 2022)+ 基于 xFormers 的快速注意力层实现。消融显示这些改动本身单条收益不大,但组合起来对训练速度贡献明显(详见 Infra 节)。
Infra(训练 / 推理工程)
- 训练硬件:仿真实验用 8× NVIDIA V100 16GB,与 RVT、PerAct 严格同硬件对比。RVT-2 完整配置训练 19.5 小时(论文摘要报为约 20 小时 / 0.83 天),RVT 同硬件需 24 小时(1.0 天),PerAct 需 16 天,Act3D 需 5 天。
- 训练吞吐:RVT 每天训练 2.4M samples(batch 24、100K 步 ≈ 24 小时);RVT-2 每天训练 16M samples(batch 192、83.3k 步 ≈ 20 小时)——6 倍吞吐提升。
- 推理硬件:单张 NVIDIA RTX 3090,RVT-2 20.6 fps vs RVT 11.6 fps(2 倍)vs PerAct 4.9 fps;Act3D 推理速度论文未披露(表中为”-”)。
- 消融拆解各改动对训练时间/速度的贡献(Table III,全量配置为 19.5h/100%/81.4% 成功率为基准,下同):
- 去掉多阶段设计:13.0h(67%),成功率 63.9%(-17.5)——变快但精度大跌。
- 去掉参数取整:26.7h(137%),成功率 77.2%(-4.2)。
- 去掉局部特征旋转:19.3h(99%),成功率 78.9%(-2.5)。
- 去掉自研 Point-Renderer(即换回 PyTorch3D):71.1h(366%,约 3.6 倍变慢),成功率 79.3%(-2.1)。
- 去掉凸上采样(在均不用混合精度的前提下对比):79.2h vs 用凸上采样的 58.5h,即去掉凸上采样多花 20.7 小时。
- 去掉混合精度训练(保留凸上采样/8-bit优化器):58.5h(300%),成功率 81.2%(-0.2)。
- 再去掉 8-bit 优化器+快速注意力:62.4h(320%,多 20%),成功率 81.3%(-0.1)。
- 视角数 3→5:40.3h(207%,慢 2 倍),成功率 79.7%(-1.7)。
- 论文特别指出:去掉凸上采样但保留混合精度会导致训练梯度出现 NaN(undefined gradients),因此凸上采样消融只能在都不用混合精度的两行间比较。
评测 benchmark
RLBench 18 任务多任务平均成功率(Table I,与 PerAct/RVT 同一套 25 个未见变体上评测;除 Act3D 用 256×256 输入外,其余均用 128×128):
| 方法 | 平均成功率 | 平均 Rank | 训练时间(天) | 推理速度(fps) |
|---|---|---|---|---|
| Image-BC (CNN) | 1.3 | 7.4 | - | - |
| Image-BC (ViT) | 1.3 | 7.7 | - | - |
| C2F-ARM-BC | 20.1 | 5.8 | - | - |
| HiveFormer | 45.3 | 5.2 | - | - |
| PolarNet | 46.4 | 4.8 | - | - |
| PerAct | 49.4 | 4.4 | 16.0 | 4.9 |
| Act3D | 65.0 | 2.8 | 5.0 | - |
| RVT | 62.9 | 2.8 | 1.0 | 11.6 |
| RVT-2 | 81.4 | 1.5 | 0.83 | 20.6 |
RVT-2 在 18 个任务里的 13 个拿到最优结果,唯一明显落后的任务是 open drawer(作者发现更早的 checkpoint 在该任务上能到 86%,怀疑多任务训练后期过拟合/任务间此消彼长导致最终 checkpoint 变差)。
高精度任务对比(本文与此前最佳方法):screw bulb 88.0%(RVT-2)vs 48.0%(RVT,此前最佳);stack cups 69.0% vs 26.4%(RVT);insert peg 40.0% vs 27.0%(Act3D,此前最佳)。
真实世界结果(Table II,RVT-2 vs RVT 同一模型跑全部 8 任务/16 变体):
| 任务 | 变体数 | 训练/测试 | RVT | RVT-2 |
|---|---|---|---|---|
| Stack blocks | 3 | 15/10 | 80% | 80% |
| Press sanitizer | 1 | 7/10 | 90% | 80% |
| Put marker in mug/bowl | 4 | 12/10 | 20% | 50% |
| Put object in drawer | 3 | 12/10 | 30% | 50% |
| Put object in shelf | 2 | 8/10 | 100% | 100% |
| RVT 五任务合计 | 13 | 54/50 | 64% | 72% |
| Pick and insert 16mm peg | 1 | 10/10 | 50% | 60% |
| Pick and insert 8mm peg | 1 | 10/10 | 40% | 50% |
| Pick and insert plug | 1 | 10/10 | 10% | 50% |
| 三个高精度任务合计 | 3 | 30/30 | 33.3% | 53.3% |
| 全部 8 任务合计 | 16 | 84/80 | 52.5% | 65% |
真实世界失败模式统计(按任务归类主因):pick and insert plug 100% 归因于插入时的小幅位置误差;put marker in mug/bowl 80% 归因于抓错颜色的记号笔(细长物体点云信息稀疏);put object in shelf 无失败案例。
创新点与影响
贡献:(1)在 RVT 的渲染解耦范式上引入”由粗到细”两阶段推理——固定视角粗定位 + 放大区域精修,把虚拟视角渲染的”分辨率-覆盖范围”矛盾用自适应渲染解开,这是本文最大的精度增益来源;(2)证明局部(而非全局)特征足以支撑位置相关的旋转预测;(3)自研 CUDA point-renderer 把渲染这一此前的性能瓶颈砍掉 3.6 倍时间,证明渲染开销此前被通用微分渲染器(PyTorch3D)严重浪费;(4)系统性验证了参数取整、凸上采样、混合精度、8-bit 优化器、xFormers 等一系列”非新颖但组合有效”的工程改动对少样本精确操作系统的实际收益,并给出逐项消融量化每个改动的时间/精度贡献。
改变了什么:把”渲染再多视角”这条路线从”能做基础操作”推进到”能做毫米级精度操作”,且训练/推理成本比同期 SOTA(Act3D)低一个数量级(0.83 天 vs 5 天),第一次证明少样本(10 条示范/任务)视觉策略可以在真实世界完成插头插座这类需要 3D 精确对准的任务,仅用单个第三人称相机、无需力/触觉反馈。
作者自陈局限(论文第 V 节):(1)与 RVT/PerAct 一样只能操作训练时见过的物体实例,泛化到未见物体实例是待解决方向;(2)高精度任务下 RVT-2 仍会因插入时的细微位置误差失败,作者认为加入力反馈做闭环微调是有前景的扩展;(3)多任务联合优化会导致个别任务(如 open drawer)随训练推进反而变差,需要专门的策略缓解;(4)尽管整体提升 17 个百分点,任务远未被”解决”——论文结论原文写”RVT-2 achieving a success rate of 82% in simulation and 72% in the real world”(真实世界 72% 对应的是与 RVT 共有的 5 个任务子集,而非含 3 个新高精度任务的全部 8 任务合计 65%),仍有明显失败率。
原始链接
- arXiv:https://arxiv.org/abs/2406.08545 (PDF:https://arxiv.org/pdf/2406.08545)
- 项目页:https://robotic-view-transformer-2.github.io/
- 代码:https://github.com/NVlabs/RVT (与 RVT 共享同一仓库,向后兼容)
- 预训练权重:https://huggingface.co/ankgoyal/rvt/tree/main/rvt2 (
model_99.pth,仅权重文件,无正式 model card 正文)
一手源存档(sources/)
- rvt-2—project-page — 项目主页快照(摘要 + 真实世界实验视频列表,fetched 2026-07-16)
- rvt-2—github-readme — GitHub
NVlabs/RVTREADME 快照(含 RVT/RVT-2 训练评测命令、FAQ,fetched 2026-07-16) - 论文全文见上述 arXiv 链接(arXiv 原文 PDF,不入 git;已读 v1 全文 HTML,含正文与参考文献,无附录)