09 // CHAPTER ROUTE

把虚拟世界变成 数据工厂

具身智能 · 第九章

不经过显示器,GPU 在后台沿轨迹连续“拍照”,把场景、位姿与标注组装成可训练的数据包。

00 // COST & SCALE

真实采集很贵,离屏把数据变便宜

真实采集速度 · 约 1 张 / 秒成本 · 人工 + 设备标注 · 另需人工变化 · 受物理环境限制3D 场景+ 相机轨迹GPU 后台批量离屏渲染速度 · 100+ 张 / 秒成本 · 仅电费标注 · 自动生成变化 · 可批量扩展核心价值 · 低成本批量生成训练数据

后台自动批量同时降低采集与标注成本,但渲染产物仍须经过质量检查。

VISUAL RECAP

本节场景补充

READ THE SCENE

真实采集很贵,离屏把 数据变便宜

离屏渲染把可控三维场景批量转换成可用训练画面。

读图顺序:先看对象和环境,再看它们之间的关系,最后回到本节结论。

支持“真实采集很贵,离屏把 数据变便宜”讲解的 ChatGPT 生成教学场景图
教学场景补充 · 真实采集很贵,离屏把 数据变便宜

图片只用于帮助观察本页关系;课程结论仍以正文和逐字稿为准。

01 // OFF-SCREEN

不看屏幕,也能批量拍照

普通渲染取景 → 显示 → 观看GPUMEMORY离屏渲染FRAME 000001FRAME 000002FRAME 000003

离屏渲染直接在 GPU 内存完成图像生成,并把结果写入内存或磁盘。

02 // PIPELINE

五个阶段,把 3D 变成训练样本

场景加载USD相机设置位置 · 角度运动轨迹GPU 渲染逐像素计算数据组装图像 + 位姿深度 + 标注批量导出DISK

先准备场景与相机,再由 GPU 计算,最后把图像和元数据一起组装导出。

03 // TWO AXES

离屏 ≠ 离线:这是两个维度

AXIS A · OUTPUT TARGET图像送到哪里?ON-SCREEN显示器 / 交互视口OFF-SCREENGPU 内存 / 纹理 / 文件AXIS B · TIME BUDGET结果何时必须完成?REAL-TIME每帧必须赶上任务截止时间OFFLINE可按质量或吞吐安排计算预算独立判断

离屏只说明图像不直接送显示器;是否实时、画质高低仍由任务时限和渲染配置决定。

04 // TRAJECTORY MODES

四类轨迹,各自覆盖不同任务

环绕轨迹 · ORBIT物体识别 · 单物体多角度俯视扫描 · TOP-DOWN仓储盘点 · 全局场景理解线性移动 · LINEAR走廊导航 · 管道巡检多点巡检 · WAYPOINTS设备巡检 · 安防监控

看物体用环绕,扫区域用俯视,走廊用线性,关键位置用多点巡检。

VISUAL RECAP

本节场景补充

READ THE SCENE

四类轨迹,各自覆盖 不同任务

关键帧定义路径变化,采样帧决定何时触发渲染。

读图顺序:先看对象和环境,再看它们之间的关系,最后回到本节结论。

支持“四类轨迹,各自覆盖 不同任务”讲解的 ChatGPT 生成教学场景图
教学场景补充 · 四类轨迹,各自覆盖 不同任务

图片只用于帮助观察本页关系;课程结论仍以正文和逐字稿为准。

04 // POSE SAMPLING

关键帧定轨迹,采样帧才触发渲染

KEYFRAMES · DEFINE PATH + POSEK0K1K2采样规则按距离、角度或时间间隔取得相机位姿F000F001F002F003F004F005F006

关键帧定义轨迹形状与相机姿态;系统按采样间隔取得位姿,每个采样位姿生成一帧。

05 // PERFORMANCE

少做重复计算,把 GPU 用在信息增量

帧间隔视角变化 3–5°多 GPU 并行G1G2G3G4增量渲染只重算受影响帧

用 3–5° 帧间隔减少近似帧,再用并行与增量渲染提升吞吐。

06 // OUTPUT STRUCTURE

训练数据不是散图,而是一棵文件树

render_output/rgb/ · PNGdepth/ · 距离segmentation/camera_poses.jsonannotations.jsonrender_config.json连续编号:frame_000000 / frame_000001

完整样本同时保存图像、深度或分割结果,以及位姿、标注和渲染配置。

07 // EXPORT CHAIN

一次渲染,接入四种训练生态

渲染数据包RGB · DEPTHPOSE · ANNOTATIONCONFIG · FRAME ID完整目录结构平台导出格式转换AUTO / MANUALPyTorch自定义 Dataset · 自动LeRobotParquet 轨迹 · 自动TensorFlowTFRecord · 自动ROS 2 Bagbag 文件 · 手动转换

PyTorch、LeRobot 与 TensorFlow 可自动转换;ROS 2 Bag 仍需手动处理。

VISUAL RECAP

本节场景补充

READ THE SCENE

一次渲染,接入 四种训练生态

训练样本要同时保存画面、相机条件和可追溯的组织结构。

读图顺序:先看对象和环境,再看它们之间的关系,最后回到本节结论。

支持“一次渲染,接入 四种训练生态”讲解的 ChatGPT 生成教学场景图
教学场景补充 · 一次渲染,接入 四种训练生态

图片只用于帮助观察本页关系;课程结论仍以正文和逐字稿为准。

07 // METADATA

一张图要可训练,必须知道从哪看见

RGB FRAME 000FRAME ID000POSE · x y zroll pitch yaw · fovANNOTATION · bbox 2Dclass · position 3DDEPTH · pixel distance近亮 · 远暗

帧 ID 把 RGB、深度、相机位姿和对象标注绑定成一个可用训练样本。

10 // QUALITY PARAMETERS

五个参数,决定速度与质量

参数推荐值使用条件分辨率训练 640×480 · 展示 1280×720先按用途选抗锯齿4x MSAA通用推荐光线追踪训练数据建议开启快速模式可关闭烘焙光照场景不变时开启场景变化后重新烘焙纹理质量Medium平衡显存占用

参数没有脱离场景的最优值:先锁用途,再在分辨率、光照与显存之间取舍。

11 // QUALITY STRATEGY

九成求量,一成求关键质量

快速模式初期训练 · 大数据量高质量模式最终训练 · Sim-to-RealMIX90% / 10%快模式 / 关键帧精渲染RTX 4090 · 640×480 · 无光追 · 约 120 FPS

混合策略用 90% 快速数据保数量,用 10% 关键帧精渲染保质量。

12 // TIME ESTIMATE

先写清条件,再估一千帧时间

1000 FRAMES · SOURCE ESTIMATE简单 · 5物体 · 640×480 · 无光追0.01 秒/帧 · 约 10 秒中等 · 20物体 · 640×480 · 无光追0.03 秒/帧 · 约 30 秒中等 · 20物体1280×720 · 光追 · 约 100 秒复杂 · 50+物体1280×720 · 光追 · 约 500 秒平台实测条件:RTX 4090 · 20物体 · 640×480 · 无光追 · 平均 120 fps

估时必须绑定物体数、分辨率与光追条件;平台实测与表中估算不可混为同一口径。

13 // LOAD & PREVIEW

场景与轨迹,先过预览门

5.1 · 加载场景打开场景管理选择 warehouse_v1.usd在视口预览场景显示正常5.2 · 选择轨迹打开轨迹管理选择 orbit_30deg预览动画并检查覆盖轨迹覆盖目标

先确认 USD 场景可见,再预览已保存轨迹;覆盖不足时不要进入批量渲染。

14 // CONFIGURE

一张控制台,锁定输出契约

图像与质量1280×720 · 标准模式4x MSAA光追/全局开 · 反射关输出通道RGB ✓ · 深度 ✓语义 ✓ · 法线 ×三类数据同步轨迹采样每 5° 一帧共 72 帧预计约 15 秒OUTPUT PATHC:/render_output/warehouse_v1/路径、通道与采样共同定义本次数据包

启动前同时核对图像质量、输出通道、保存路径与采样帧数,避免整批返工。

15 // LAUNCH & MONITOR

确认参数后,盯住进度与警告

确认渲染参数分辨率 · 通道 · 路径轨迹 · 72 帧开始渲染PROGRESS · 72%52 / 72 · 最近 frame_000052已用 8.2 秒 · 剩余 3.1 秒速度 6.3 fpsWARNINGS · NONE

确认弹窗是最后一道参数门;运行中同时看帧数、速度、剩余时间与警告信息。

16 // INSPECT

逐帧检查,把异常标出来重渲

黑屏相机被遮挡模糊运动模糊过高缺物体场景不完整正常帧RGB/深度一致全屏 + 方向键逐帧复核标记异常帧 → 批量重新渲染

浏览输出时逐帧核对黑屏、模糊与缺物体;只把标记的异常帧送回重渲。

17 // EXPORT

检查通过后,再选导出格式

结果检查异常帧已重渲标准格式 · 推荐RGB + 深度 + 位姿 + 标注LeRobot 格式直接进入对应数据管线ZIP打包下载

标准格式保留 RGB、深度、位姿和标注;也可选 LeRobot,最后统一打包下载。

18 // TROUBLESHOOT

按症状定位,不要盲目重跑

症状原因处理图像全黑无光源 / 相机被挡检查光照与相机 · 添加环境光速度很慢光追 + 高分辨率 + 复杂场景降分辨率或关闭光追缺少深度未勾选深度通道勾选后重新渲染标注错误VLM 识别错误回 Module A 修正后重渲GPU 显存不足场景过大减少物体或降低纹理质量

先把症状映射到光照、参数、通道、标注或显存,再执行对应的最小修复。

19 // DOMAIN RANDOMIZATION

同一条轨迹,生成十个不同世界

固定核心同一场景同一轨迹RANDOMIZE光照 · 纹理位置 · 旋转10 ROUNDSV1V2V3V4V5–V10

域随机化改变光照、纹理与物体状态,让模型提前见过真实环境中的变化。

20 // PLATFORM CONFIG

十轮随机化,得到七百二十帧

光照位置 0.3m强度 0.6–1.5x色温关闭材质地面纹理随机物体颜色随机物体状态位置 0.1m旋转 0–360°10 轮 × 72 帧 = 720 帧预计约 2 分钟 · 每轮独立子文件夹同一轨迹,十组光照、材质与物体状态

平台把光照、材质和物体状态设为随机变量,十轮分别写入独立子文件夹。

RECAP // CHAPTER 09

从质量配置,到 域随机化

01

离屏五阶段

场景、相机、GPU、组装、导出

02

轨迹与采样

关键帧定轨迹,采样帧触发渲染

03

质量与估时

参数、场景条件和平台实测分开记录

04

Module B 七步

加载、配置、启动、检查、导出与排障

05

域随机化

十轮改变光照、材质与物体状态

离屏渲染不仅生成数据,还要经过质量配置、结果检查、标准导出与域随机化。

SOURCE QUIZ // 10 MCQ

单选题 · 10题

第 1 / 10 题原讲义题库
得分 0 / 10
SOURCE PRACTICE 01

实操一 · 完整离屏渲染

完成一次完整的离屏渲染

任务要求

  • 登录教学实训平台,进入模块 B
  • 加载一个已搭建的 USD 场景(如仓储场景或工厂场景)
  • 选择一条相机轨迹(如环绕轨迹)
  • 配置渲染参数:分辨率 1280×720,标准模式,4x MSAA,输出 RGB + 深度图
  • 启动渲染,等待完成
  • 浏览渲染结果,检查是否有异常帧

提交要求

  • 提交渲染结果中任意 3 帧的 RGB 图像(选择不同角度)
  • 提交一张渲染结果浏览界面的截图
  • 提交 render_config.json 文件
评分标准:
  • 渲染参数配置正确(30%)
  • 输出文件完整(RGB + 深度图 + 位姿 + 标注)(30%)
  • 图像质量合格(无全黑/模糊/物体缺失)(40%)
SOURCE PRACTICE 02

实操二 · 域随机化实验

域随机化渲染实验

任务要求

  • 在模块 B 中启用域随机化
  • 配置 3 轮随机化(光照位置随机 + 纹理随机)
  • 启动域随机化渲染
  • 对比 3 轮渲染结果中同一帧(如 frame_000030)的差异

提交要求

  • 提交 3 轮渲染中同一帧的对比截图(拼成一张图)
  • 写一段 100-150 字的分析,说明:
  • 三轮渲染结果的主要差异是什么?
  • 域随机化对训练模型有什么帮助?
  • 如果让你调参,你会增加或减少哪些随机化?
评分标准:
  • 域随机化正确配置并执行(30%)
  • 对比分析准确,能指出具体差异(40%)
  • 对域随机化价值的理解到位(30%)