一句话定位

用非真实的随机纹理、随机光照、随机相机与随机干扰物在 MuJoCo 里渲染几十万张低保真图像训练物体检测网络,只用仿真数据、零真实图像微调,就让 CNN 在真机上把物体定位到约 1.5 cm——这是”域随机化”(domain randomization)作为 sim-to-real 通用配方的奠基工作,其核心直觉”仿真里变化足够大,真实世界就只是又一种变化”后来成为几乎所有仿真训练机器人的默认底座。

背景与定位

论文要解决的是机器人学里的”现实差距”(reality gap):物理仿真器与真实世界之间的差异,使得在仿真里学到的行为难以迁移到真机。作者把差距拆成两类:一是物理层面(非刚性、齿轮回差、磨损、流体动力学等未建模效应),二是传感器层面(低保真渲染器无法复现真实相机的丰富度与噪声)。传统做法是系统辨识(system identification)——精调仿真参数去匹配真机——既耗时又易错,且强系统辨识也补不了未建模物理。

本文提出的思路与系统辨识相反:不去让单一仿真环境逼近真实,而是随机化仿真器,在训练时把模型暴露给足够宽的环境分布。作者聚焦于最容易产生现实差距的一环——低保真相机图像,任务选为单目物体定位(object localization),把它当作通用机器人操作的踏脚石。

在相关工作谱系里,本文与 Sadeghi & Levine 的 (CAD)²RL 四旋翼避障最接近,但有三点关键差异:(1) 后者做的是碰撞回避这类低精度任务,本文首次证明域随机化能用于需要精度的机器人任务(cm 级定位 + 抓取);(2) 后者从约 200 个多为真实的预生成材质里选纹理,本文首次只用简单随机生成过程产生的非真实纹理,因而能训练几十万种独一无二的场景纹理化;(3) 本文首次证明只用仿真 RGB 图像、无真实图像预训练即可迁移到真机做机器人控制。它同时区别于域适应(domain adaptation,需要目标域数据或奖励)与迭代学习控制(用真机数据改进动力学模型),强调自己”无需任何真实世界额外训练”,且可与大多数域适应技术叠加。

范式命名:domain randomization / sim-to-real zero-shot transfer

模型架构

这是一个”视觉感知策略”的前身——严格说是一个物体定位检测器 d(I₀),把单张单目相机帧 I₀ 映射到每个物体的笛卡尔坐标 (xᵢ, yᵢ, zᵢ)。

  • Backbone:改造版 VGG-16(Simonyan & Zisserman)。用标准 VGG 卷积层,但把全连接层改小为 256 与 64 两层,且不用 dropout。选 VGG 是因为它在多种视觉任务上表现好且有大量预训练权重。
  • 卷积特征图尺寸(论文 Fig. 2 标注):224×224×64 → 112×112×128 → 56×56×256 → 28×28×512 → 14×14×512 → 1×1×256 → 1×1×64,最终输出 (x, y, z)。每组卷积层之间做 max pooling,全程 ReLU 非线性。
  • 输入:外接 webcam 图像下采样到 224×224
  • 输出:目标物体质心的 (x, y, z) 世界坐标。
  • 权重初始化:多数实验用 ImageNet 预训练权重初始化卷积层(作者原本假设这对迁移是必需的);但消融发现随机初始化在多数情况下同样好(详见评测)。

由于用未标定的单目相机估位,作者固定仿真里桌面的高度,从而把问题实质上简化为 2D 位姿估计。

Action-conditioning / memory:本工作只做感知(定位),不含动作头;真机抓取由现成运动规划软件(MoveIt! [41])根据检测出的坐标规划一条简单抓取轨迹完成,检测器本身不闭环控制。

数据

全部训练数据来自仿真,零真实图像参与训练。

  • 渲染器:MuJoCo 物理引擎自带渲染器(非照片级真实,作者明确指出不需要物理上可信的纹理与光照)。
  • 规模:论文正文与图注给出的量级为几十万张低保真渲染图;消融显示 5,000 张即可起步,性能在约 50,000 张处趋于饱和;真机对比实验(Table II)各模型用 20,000 张训练样本。
  • 每样本随机化的域元素(对每个训练样本独立采样):
    • 桌面上干扰物(distractor)的数量与形状(每场景 0–10 个干扰物)
    • 所有桌面物体的位置与纹理
    • 桌面、地板、天空盒、机器人的纹理
    • 相机的位置、朝向、视场角
    • 场景中光源数量
    • 光源的位置、朝向、镜面反射特性
    • 加到图像上的随机噪声类型与强度
  • 随机纹理生成(三选一,均算法生成、非真实):(a) 随机 RGB 值;(b) 两个随机 RGB 值之间的渐变;(c) 两个随机 RGB 值构成的棋盘格。所有物体纹理均匀随机选取——检测器训练时无法获知目标物体的颜色,只知其尺寸与形状
  • 相机随机化的具体范围:手动在仿真里放一台大致匹配真实相机视角与视场的相机;每个训练样本把相机随机放在该点周围一个 (10 × 5 × 10) cm 的盒子里;视角解析地指向桌面某固定点,再在各方向偏移最多 0.1 弧度;视场角相对初值缩放最多 5%
  • 物体集:8 个几何体(cone / cube / cylinder / hexagonal prism / pyramid / rectangular prism / tetrahedron / triangular prism),各自构建 mesh 用于渲染。每样本 = (a) 目标物 + 一个或多个干扰物(也取自几何体集)在仿真桌面上的渲染图,(b) 目标物质心在世界坐标系下的 Cartesian 坐标标签。
  • 非均匀纹理泛化数据:为测试真实物体,额外训练检测器定位 YCB 数据集里的一罐 Spam;训练时桌上用几何体作干扰物,测试时改用 YCB 里其它食品作干扰物。
  • 真机评测集(非训练数据):480 张 webcam 图像,物体距相机 70–105 cm,相机位置固定;不控制光照与桌周环境(画面里含机器人、地上的胶带与线缆)。8 个几何体每个 60 张:20 张单物体、20 张含干扰物、20 张部分遮挡。ground truth 用桌面网格对齐单物体测得。

训练方法

  • 目标函数:网络估计的物体位置与真实位置之间的 L2 损失,用 SGD(Adam 优化器)训练。
  • 学习率:约 1e-4(而非 Adam 常用的 1e-3),作者发现更小的学习率改善收敛并帮助避开一个常见局部最优——“把所有物体都映射到桌面中心”。
  • 超参搜索:每个实验做小规模网格搜索,扫两个学习率(1e-4 与 2e-4)× 三个 batch size(25 / 50 / 100),报告最优网络。
  • 无 RL / 无真机微调:整体是纯监督回归 + 零真实数据迁移;没有强化学习,没有真实世界任何额外训练。
  • 随机噪声的作用:作者发现训练时加少量随机噪声改善收敛、降低陷入局部极小的概率(尽管消融显示它对最终精度影响可忽略,见评测)。

Infra(训练 / 推理工程)

  • 仿真 / 渲染:MuJoCo 物理引擎及其内置渲染器([45]);渲染器为速度优化、非照片级真实,作者强调这是相对系统辨识路线的优势——可以用低质量、未精心匹配真实纹理/光照/场景配置的渲染器。
  • 真机平台Fetch 机器人([49]);抓取轨迹由现成运动规划软件 MoveIt!([41])规划。
  • 相机:外接 webcam,图像下采样到 224×224 输入网络。
  • GPU 数量 / GPU-hours / 并行策略 / 精度未披露
  • 推理 FPS / 控制频率 / 时延 / 边缘硬件未披露(论文为感知精度与抓取成功率导向,未报告运行时性能指标)。

评测 benchmark

全部结果取自论文一手数据。

真机定位精度(Table I,单位 cm,均值 ± 标准差)——8 个几何体在三种评测条件下:

物体仅物体含干扰物遮挡
Cone1.3 ± 1.11.5 ± 1.01.4 ± 0.6
Cube1.3 ± 0.61.8 ± 1.21.4 ± 0.6
Cylinder1.1 ± 0.91.9 ± 2.81.9 ± 2.9
Hexagonal Prism0.7 ± 0.50.6 ± 0.31.0 ± 1.0
Pyramid0.9 ± 0.31.0 ± 0.51.1 ± 0.7
Rectangular Prism1.3 ± 0.71.2 ± 0.40.9 ± 0.6
Tetrahedron0.8 ± 0.41.0 ± 0.43.2 ± 5.8
Triangular Prism0.9 ± 0.40.9 ± 0.41.9 ± 2.2

平均可将物体在真实世界定位到 约 1.5 cm 以内,在杂乱与部分遮挡下仍表现良好。注意仿真训练集上误差仅 0.3–0.5 cm,即模型仍在过拟合仿真数据;即便如此,精度已与传统单目位姿估计技术(用更高分辨率图像)在相近距离下的平移误差相当。

消融——各因子敏感性(Table II,20,000 样本,单位 cm)

方法仅物体含干扰物遮挡
完整方法1.3 ± 0.61.8 ± 1.72.4 ± 3.0
不加噪声1.4 ± 0.71.9 ± 2.02.4 ± 2.8
不随机化相机2.0 ± 2.12.4 ± 2.32.9 ± 3.5
训练时无干扰物1.5 ± 0.67.2 ± 4.57.4 ± 5.3

结论:训练时引入干扰物对真机抗干扰至关重要(去掉后含干扰/遮挡误差飙到 7 cm+);随机化相机位置持续带来小幅精度提升,但去掉后仍可接受;训练时加噪声对最终精度影响可忽略。

其它消融(正文,非表格):

  • 训练样本量(Fig. 4):预训练模型 5,000 张即可较准,约 50,000 张后提升趋缓。
  • 预训练 vs 随机初始化(Fig. 4):作者”预训练是迁移必需”的假设被证伪——数据量大时随机初始化几乎追平 ImageNet 预训练,且给定物体的最优检测器往往来自随机初始化;但数据少时预训练能显著提升。
  • 纹理数量(Fig. 5,固定 10,000 训练样本):唯一纹理少于 1,000 种时性能明显退化,说明大量随机纹理对迁移是必要的;且在低数据区,纹理随机化比物体位置随机化更重要。

真机机器人实验

  • 用两个最稳的检测器,在 20 个逐渐变杂乱的场景里做定位 + 预设抓取,部分测试放入训练时未见朝向的干扰物(如侧放的六棱柱)。40 次试验成功 38 次(含高度杂乱、目标被显著遮挡的场景)——检测器无目标颜色先验,只知形状尺寸,仍能在与目标同色物体紧邻时检出。
  • YCB Spam 罐(非均匀纹理真实物体):测试时用训练未见的其它食品作干扰物,10 次抓取成功 9 次

创新点与影响

  • 贡献:提出并验证域随机化——通过在仿真里随机化纹理、光照、相机、干扰物等渲染因素,把现实世界变成模型眼中”又一种训练分布变化”,从而实现无真实数据、零微调的 sim-to-real 迁移。首次证明:(1) 只用非真实随机纹理的仿真 RGB 图像即可训练出 cm 级精度、抗杂乱抗遮挡的真机物体检测器;(2) 域随机化能胜任需要精度的机器人任务并驱动真机抓取;(3) 无需真实图像预训练(甚至无需 ImageNet 预训练)。
  • 改变了什么:它把 sim-to-real 从”努力缩小仿真与现实差距”(系统辨识、照片级渲染)反转为”努力扩大仿真内部方差”,成为后续大量仿真训练机器人(含 OpenAI Dactyl 灵巧手、四足/人形运动、机械臂操作)以及自动驾驶感知的默认底层技巧。
  • 作者自陈局限 / 未来方向:模型仍过拟合仿真数据;未来需提升到能做接触密集操作或更高精度的任务。改进方向包括:用更高分辨率相机帧、优化模型架构选择、引入更多纹理/光照/渲染随机化并训练更多数据、纳入多相机/立体/深度信息、把域随机化与域适应结合。作者展望:深度强化学习可在仿真里通过大规模探索学到更复杂策略,而域随机化可能是让这类策略在真机可用的关键工具。

原始链接

一手源存档(sources/)

  • domain-randomization—project-page — 项目主页快照(sources/embodied/2017/domain-randomization—project-page.md;仅摘要 + arXiv 链接,无额外方法披露)
  • arXiv 原文 PDF(1703.06907v1,不入 git):正文六维数字均取自该 PDF,引用 arXiv URL。