← 返回知识体系
11 合成数据 物理仿真 PBR Sim-to-real 数据工程

Simulation & Synthetic Data Generation

不只是把 CAD
放进渲染器

合成数据的核心价值不是“无限图片”,而是可控地采样场景状态,并从同一几何事实导出精确、可追溯的多通道标签。可靠生产线必须分别回答四个问题:分布对不对、资产和物理对不对、传感器像不像、标签能不能被证明正确。

01 · Generation Contract

渲染之前,先定义要采样的世界

生成器不是图片函数,而是从带版本的随机变量 θ 采样 scene state,再经渲染器与传感器模型输出观测和标签。任务、资产、相机、通道、来源与验证必须成为同一份契约。

01

Task support

部署对象、姿态、视点、遮挡和故障分布

→
02

Scene state

资产、物理、相机、光源、轨迹与 seed

→
03

Clean renderer

同一 z-buffer 的 RGB、Z、normal、ID、XYZ

→
04

Sensor layer

曝光、畸变、噪声、孔洞、量化与时序

→
05

Audit & export

分布、标签、真实 holdout、manifest 与 shard

Synthetic training distribution
θ∼psim(θ∣task),(x,y)=G(θ),min⁡ϕ Eθ∼psim[ℓ ⁣(fϕ(x),y)]\theta \sim p_{\mathrm{sim}}(\theta \mid \text{task}),\quad (x,y)=G(\theta),\qquad \min_\phi\ \mathbb E_{\theta\sim p_{\mathrm{sim}}}\left[\ell\!\left(f_\phi(x),y\right)\right]
θ 不只是材质颜色,它应包含资产、pose、camera、scene、visibility、motion 与 sensor state。目标不是让 p_sim 任意地宽,而是在任务相关维度覆盖真实部署分布,并对未知 nuisance 保持鲁棒。
Contract layer必须冻结的字段可验证交付物
Task distribution对象实例、场景、姿态、尺度、距离、遮挡、截断、运动、传感器状态synthetic support 与部署 support 的覆盖报告
Asset contractmesh / collision mesh、object frame、单位、材质、纹理、物理参数、license、hash资产可追溯且与真实实例语义一致
Camera contractoptical frame、K / D、resolution、shutter、exposure、spectral response、timestamp每个 raster 和 pose 都能回到同一相机状态
Scene state对象/相机/光源/背景的 transform,contact、velocity、random seed可以重建任一 frame,而非只有渲染结果
Clean labelspose、clean Z / range、normal、ID、full / visible mask、object coordinate、flow来自同一 z-buffer / scene snapshot
Sensor outputsRGB response、distortion、blur、noise、quantization、invalid / confidence带版本的观测层,不覆盖 clean truth
Provenancecode commit、engine/version、config、asset hash、seed、host、shard、checksum失败可重现,生产可断点续跑
Validationsynthetic unit tests、distribution audit、真实 holdout、downstream ablation证明标签正确且生成分布对任务有用
四个质量轴不要合并成一个“realism score” Sampling fidelity 判断任务分布;physical / rendering fidelity 判断几何和光学;sensor fidelity 判断测量形成机制;label integrity 判断坐标、单位、可见性和同步。它们需要不同的诊断实验和 release gate。

02 · Digital Assets

视觉 mesh、碰撞体、材质与 object frame 是一个资产包

真实数据章节已经冻结实物—数字资产语义;合成管线还要让这个资产在光学、接触和版本治理中可用。高面数视觉网格不一定是好碰撞体,漂亮纹理也不保证色彩空间正确。

资产阶段冻结决策准入检查
几何导入固定 m / mm 转换、object frame、up/front、原点、winding、normal、UV;视觉 mesh 与简化 collision mesh 分开bbox、diameter、质量尺度、正反面和投影轴在渲染器与 BOP / OpenCV 侧闭环
拓扑与接触清除孤立片、重复面、自交和非流形;为 thin shell、concavity 与 support face 选择合适 collision representation掉落不穿透、不悬浮;stable pose 与真实支持面一致,不由过粗 convex hull 改写
材质语义区分 base color、roughness、metallic、normal、transmission、IOR 与纹理色彩空间数值贴图标记 Non-Color;材质随机化不生成物理不可能组合
实例差异将制造公差、磨损、贴纸、污染和 texture symmetry 作为有证据的变量,而非随意换色训练标签、评测 symmetry 与真实物体身份仍一致
物理属性记录 mass、center of mass、inertia、friction、restitution、damping 和关节限制落下时间、反弹、静止姿态、堆叠稳定性与真实量级一致
版权与版本保存 source、author、license、允许的修改/再分发范围和 content hash数据发布时能逐资产生成清单;替换资产不会静默改变旧数据
Visual geometry

为成像服务

保留轮廓、孔洞、细薄结构、surface normal 和纹理坐标;LOD 变化也必须保持 object frame 与 metric scale。

Collision geometry

为接触求解服务

convex decomposition、SDF 或 triangle mesh 的选择会改写 stable pose。碰撞近似必须成为可审计资产,而非引擎隐藏选项。

Semantic geometry

为任务和标签服务

symmetry、canonical axes、grasp affordance、articulation 与 instance identity 需要独立元数据,不能从 mesh 文件名猜测。

03 · Pose, View & Scene Sampling

参数均匀、群上均匀与任务分布是三件事

姿态生成必须先说明采样空间和测度。均匀 pitch 会在视向球面两极堆积;Haar-uniform SO(3) 给出无偏旋转,却仍不包含重力、支持面、相机可达性和真实遮挡。

Shoemake · uniform unit quaternion
u1,u2,u3∼iidU(0,1),q=[1−u1sin⁡2πu2, 1−u1cos⁡2πu2, u1sin⁡2πu3, u1cos⁡2πu3]\begin{aligned}u_1,u_2,u_3&\overset{\mathrm{iid}}{\sim}\mathcal U(0,1),\\ q&=\left[\sqrt{1-u_1}\sin 2\pi u_2,\ \sqrt{1-u_1}\cos 2\pi u_2,\ \sqrt{u_1}\sin 2\pi u_3,\ \sqrt{u_1}\cos 2\pi u_3\right]\end{aligned}
此处四元数顺序写作 [x,y,z,w]。q 与 −q 表示同一旋转;不要再把四个分量各自均匀采样后直接使用。
View sphere factorization
R=Rlook(v,uref) Rz(γ),v∈S2, γ∈[−π,π)R = R_{\mathrm{look}}(\mathbf v,\mathbf u_{\mathrm{ref}})\,R_z(\gamma),\qquad \mathbf v\in\mathbb S^2,\ \gamma\in[-\pi,\pi)
view direction v 表达 out-of-plane 视向,γ 表达相机光轴上的 in-plane roll。look-at 必须定义 up/reference 和退化处理;否则同一视向的 roll 零点不确定。
Sampler采样对象边界适合场景
独立均匀 Euleryaw/pitch/roll 各自均匀实现简单,但不均匀覆盖 SO(3),视向在球面极区偏置只用于已知就是角度盒分布的任务
Haar-uniform SO(3)Shoemake quaternion / 正态四元数归一化全旋转群无偏;没有重力、可达性或稳定支持先验通用 orientation coverage 与消融基线
View sphere + roll等面积视向 + 独立 in-plane roll + distance能分开控制 out-of-plane 与 in-plane;需约定 look-at roll 零点模板库、相机标定板、系统视球采集
Stable-pose prior支持面枚举或物理掉落后聚类贴近桌面任务,但受 collision、摩擦、重心与仿真步长影响桌面检测、抓取前感知
Physics scene sampling多物体 joint distribution、接触、遮挡与相机可见性约束最贴近 clutter;昂贵且容易产生穿透/爆炸/隐式筛选偏差料箱、堆叠、机器人操作
Empirical task prior从真实部署日志拟合分层或条件分布最相关,但日志本身可能有策略偏置、漏检和长尾不足正式生产与 active data generation
Coverage

在正确空间画直方图

方向用等面积 z–azimuth bins;完整旋转用 SO(3) 距离/网格;距离与尺度按对数或任务分层。

Joint distribution

不要拆散相关性

距离、对象像素尺寸、遮挡、blur、depth validity 往往相关;独立随机化会生成不可能组合。

Quota

覆盖长尾但记录权重

可以过采样低可见率和罕见姿态,但训练采样权重与评测真实频率必须分开保存。

Split

按生成谱系隔离

同一场景 seed、asset variant、texture 或 trajectory 的近重复帧不能跨 train/test。

04 · Physics & Layout

物理掉落是在采样 joint scene,不是随机旋转的装饰

料箱、堆叠和桌面场景中的 pose、遮挡与接触彼此相关。物理引擎能生成这种联合结构,但只有尺度、碰撞、质量、求解器和静止判据同时受控时,结果才有任务意义。

INIT

无重叠初态

投放区域、朝向、速度、实例组合

→
SIMULATE

固定动力学契约

gravity、dt、substeps、contact、solver

→
SETTLE

按状态停止

‖v‖、‖ω‖、contact duration、penetration

→
CONSTRAIN

任务条件验收

可见率、截断、相机可达、对象数量

Settling gate
∥vi∥<εv,∥ωi∥<εω∀ifor Nstable steps,dpenetration<εd\|\mathbf v_i\|<\varepsilon_v,\quad \|\boldsymbol\omega_i\|<\varepsilon_\omega\quad \forall i\quad \text{for }N_{\mathrm{stable}}\text{ steps},\qquad d_{\mathrm{penetration}}<\varepsilon_d
阈值应随单位和对象尺度定义;超过最大模拟时间的样本需记录 timeout,而不是直接当作“稳定”。接触求解通常不是跨硬件 bit-exact,因此重放用容差和统计指纹。
01

Scene scale

重力、物体尺寸、质量、碰撞 margin、solver tolerance 必须处于一致量级;cm mesh 当 m 会彻底改变动力学。

02

Initial placement

先做 broad-phase overlap test;随机悬空位置、初速度和朝向应符合投放机构,而非从不可达区域瞬移。

03

Time integration

固定 time step / substeps、solver iterations 与 determinism 设置;不同 GPU/后端不能默认 bit-exact。

04

Contact model

静/动摩擦、restitution、damping、contact offset 与 collision mesh 共同决定 stable pose 和遮挡。

05

Settling criterion

不能只跑固定帧数;应同时检查线速度、角速度、接触持续时间与最大穿透,并设置 timeout / reject reason。

06

Constraint filtering

相机 near/far、可见率、截断、碰撞、抓取可达性等筛选要统计 reject rate,防止 rejection sampling 偷改分布。

07

Dynamic scenes

曝光窗口内保存 object/camera trajectory;rolling shutter、motion blur 和 optical flow 不能只用帧中心 pose。

08

Reproducibility

物理 seed 之外还需保存引擎版本、线程/GPU、asset hash 与 solver config;重放时比较容差内状态。

05 · PBR, Lighting & Camera

照片级外观来自一条可校准的辐射与相机链

PBR 不是“多加几盏灯”,而是几何、BRDF、照明、光传输、曝光与色彩管理共同定义的成像模型。随机化要作用在有语义的物理参数上,并保存 scene-linear 与 display output 的边界。

Rendering equation · surface point x
Lo(x,ωo)=Le(x,ωo)+∫Ω+fr(x,ωi,ωo) Li(x,ωi) (n ⁣⋅ ⁣ωi) dωiL_o(\mathbf x,\omega_o)=L_e(\mathbf x,\omega_o)+\int_{\Omega^+} f_r(\mathbf x,\omega_i,\omega_o)\,L_i(\mathbf x,\omega_i)\,(\mathbf n\!\cdot\!\omega_i)\,\mathrm d\omega_i
材质随机化影响 BRDF f_r,HDRI / light 影响入射辐亮度 L_i,geometry / normal 决定可见性和余弦项。它们不是一张背景图与一个 RGB 乘法因子。
Finite exposure
I(u)=1Δt∫t0t0+ΔtR ⁣(L ⁣(u,t; TC(t),TO(t)))dtI(\mathbf u)=\frac{1}{\Delta t}\int_{t_0}^{t_0+\Delta t}\mathcal R\!\left(L\!\left(\mathbf u,t;\,T_C(t),T_O(t)\right)\right)\mathrm dt
相机或物体运动时,像素是曝光窗口内轨迹的积分。rolling shutter 还使 t₀ 随图像行变化,因此单一帧中心 ᶜTₒ 只是约定的参考 pose。
变量族可采样因素必须保持的契约典型失败
Geometrymesh detail、normal / displacement、support、background geometryobject frame、metric size、collision/visual correspondence用不匹配 CAD 做再真实的材质,轮廓和接触仍系统性错误
Material / BRDFbase color、roughness、metallic、specular、transmission、IOR、texture材质参数范围和组合具有物理/产品依据无界随机颜色破坏对象身份;镜面/透明只改颜色而没改光路
IlluminationHDR environment、area/point light、intensity、CCT、size、shadowscene-linear radiance、单位/曝光与 color management 有版本把亮度增强当光照,缺少阴影、互反射和饱和机制
Camera responseexposure、white balance、tone mapping、vignetting、noise、compressionclean linear render 与 display-ready RGB 分开训练 PNG 经一种 tone map,真实流经另一 ISP,却只比较“颜色像不像”
Temporalshutter、trajectory、rolling readout、frame interval、light flickerpose、flow、blur 与 timestamp 对同一曝光模型模糊图像配瞬时 pose;动态遮挡与 rolling shutter 几何不一致
颜色数据与数值数据分流 RGB 可经过 scene-linear → view transform / tone mapping → display encoding;depth、normal、object coordinate、ID 和 flow 是 Non-Color Data,不应经过白平衡、gamma 或压缩色彩变换。用于审计的 float pass 建议保留无损中间表示。

06 · Ground-truth Render Passes

每个通道都必须回答 frame、单位、可见性和采样规则

“能输出 depth 和 mask”还不是数据契约。同一像素位置的 RGB、Z、normal、ID、object coordinate 与 flow 必须来自同一 scene state 和 visibility test,并明确抗锯齿、透明、运动和背景处理。

Pass严格语义实现注意
RGB / radiancedisplay RGB 或 scene-linear HDR;写明 color space、view transform、exposure 与 alpha不要对 normal、ID、depth 套颜色管理
Z-depth / range相机 optical frame 的 Z 或 ray length,单位、near/far、background invalid 明确渲染 clean float,再派生传感器量化和孔洞
Surface normalcamera / world / object frame;方向、handedness、是否单位化normal map 纹理扰动与几何法向可分别保存
Instance / semantic ID每个像素稳定整数 ID,背景/ignore 保留值固定颜色预览不能作为标签;抗锯齿会产生不存在的混合 ID
Full / visible maskamodal full silhouette 与 z-buffer visible region 分开透明、半透明与 motion blur 的 mask 语义需任务定义
Object coordinate每个可见像素对应的 object-frame XYZ / NOCS,单位和 canonical frame 固定插值需 perspective-correct;不可经过 display color transform
Optical flow / motion vector像素位移的方向、时间跨度、遮挡/出界 validity 与 rolling-shutter 约定后处理 vector blur 不等于真实曝光积分
Pose / camera默认 ᶜTₒ、每帧 K/D、timestamp、velocity / trajectory;保存 inverse 需另命名相机/物体 motion 都进入相对 pose
Pose and per-pixel object coordinate
CP(u,v)=CRO OP(u,v)+CtO,z(u,v)=[CP(u,v)]z{}^C\mathbf P(u,v) = {}^C R_O\,{}^O\mathbf P(u,v)+{}^C\mathbf t_O,\qquad z(u,v)=\left[{}^C\mathbf P(u,v)\right]_z
object-coordinate pass 给出可见表面在 object frame 中的点;clean Z 是同一点在 camera optical frame 的第三分量。将 XYZₒ 经 ᶜTₒ 变换并投影,应回到同一像素和 clean depth,这是极强的自动 QA。
Pixel oracle

XYZ → pose → pixel

随机抽可见像素,object coordinate 经 pose 与 K 重投影,误差应在 raster 约定容差内。

Visibility oracle

ID、Z 与 mask 同源

visible mask 必须等于该 instance 赢得 z-buffer 的像素集合;full mask 另行渲染或几何计算。

Frame oracle

normal 与 pose 一致

object normal 经 R 变到 camera frame,应与 normal-C pass 对齐,并满足单位长度和朝向约定。

Temporal oracle

flow 与轨迹闭环

把 t 时刻表面点推进到 t+Δt 后投影,比较 optical flow,并显式标记遮挡和出界。

07 · Sensor Simulation

真实噪声通常是结构化失效,不是独立高斯抖动

噪声幅度会随距离、入射角、亮度、材质和运动变化;孔洞、飞点、多路径、饱和与 rolling shutter 具有空间和时间结构。应从真实原始流估计机制,再以独立、可关闭的 sensor layer 实现。

模态应模拟的形成机制校准证据常见错误
RGB / ISPshot/read noise、exposure、white balance、vignetting、bloom、demosaic、tone map、compressionraw / linear capture、flat-field、dark frames、color chart、MTF / blur target在 sRGB 上加同方差 Gaussian;忽略饱和、光子统计和 ISP 顺序
Passive stereocorrespondence ambiguity、disparity quantization、left-right occlusion、baseline/calibration error真实 disparity residual 随纹理、边缘、距离和曝光分层先渲染完美 Z 再加白噪声,无法得到空洞和遮挡带
Structured / active stereoprojector pattern、IR response、环境光、speckle、左右遮挡、设备互扰IR left/right、confidence、invalid patterns 与多距离标定板不模拟投影器,只对 Z 做随机 dropout
ToFphase noise、amplitude、multipath、mixed pixel、wrap-around、temperature不同材质、入射角、距离和多路径场景的 amplitude / residual单一 σ(z) 无法表示边缘飞点、反射率与多径偏差
Rolling shutter逐行曝光时间、相机/物体连续轨迹、光流与遮挡变化已知运动轨迹、闪光/转台或高帧率参考相机整帧一次 warp;标签仍使用帧中心 global-shutter pose
Event / LiDAR / tactile阈值触发与 refractory、扫描时序与 beam pattern、接触形变与噪声原始时间戳/packet/contact 标定,而非只看最终 raster先生成静态图再套随机滤镜,丢失测量形成过程
CLEAN

几何/辐射真值

linear RGB、Z / range、normal、ID、pose、trajectory

+
OPTICS

镜头与快门

distortion、PSF / DoF、vignetting、rolling shutter、blur

+
MEASUREMENT

模态机制

stereo / ToF / projector / event / scan / contact process

+
READOUT

读出与 ISP

shot/read、quantization、demosaic、tone map、compression

不要用真实测试集反复手调 sensor model 应划分 sensor-calibration subset、model-selection validation 和最终 untouched test。传感器残差拟合与下游网络评测使用同一批真实帧,会把 sim-to-real 结论变成隐性测试集调参。

08 · Interactive Lab

从采样覆盖,到多通道真值,再到发布门禁

先比较 Naïve Euler、Haar SO(3)、视球和稳定姿态先验;再改变 PBR 与 sensor layer;最后故意注入四类 sim-to-real gap,观察为什么标签缺陷必须先阻断生产。

Interactive · Sampling, Rendering & Sim-to-real

合成数据采样、传感器与生产审计实验室

比较姿态分布,观察同一场景的多通道输出,再把外观、几何、传感器和标签差距拆开审计。所有数值都是可复算的教学代理量,不冒充真实模型精度。
distribution before volume labels before beauty real holdout decides
object viewing direction 12 × 6 equal-area bins 纵轴是 z = sin(elevation),不是等距纬度

Sampler semantics

—

——

Equal-area coverage

occupied bins

—72 个等面积方向格;数量相同才可比较

Distribution entropy

normalized H

—1 表示落格均匀,不代表符合部署任务

Directional bias

‖mean direction‖

——

Task interpretation

—

——
均匀欧拉角不等于均匀旋转。 独立均匀采样 yaw、pitch、roll 会在球面方向上产生极区偏置;若目标是 Haar-uniform SO(3),应直接采样单位四元数。桌面或料箱任务反而不应追求全局均匀,而应显式保存经过真实部署统计验证的任务先验。

09 · Domain Randomization & Sim-to-real

DR、照片级仿真与真实微调不是互斥流派

它们作用于不同知识状态:已知且可测的部分应提高物理一致性;未知但任务无关的 nuisance 可随机化;少量真实数据用于校准和选择。最终标准始终是未参与调参的真实任务表现。

01 · Domain Randomization

覆盖比真实域更宽的 nuisance 分布,使任务线索保持稳定

适合
真实外观分布难精确建模、需要长尾和鲁棒性压力测试
风险
随机变量无因果依据、范围过宽、变量相关性被打散,模型学到渲染器伪迹
验证
逐变量 ablation + 真实 holdout;比较窄/宽范围与相关采样
02 · Photorealistic / calibrated simulation

提高资产、光传输、相机响应和传感器机制的物理一致性

适合
可测量场景、工业数字孪生、render-and-compare 与传感器残差研究
风险
高成本资产仍可能错误;“好看”容易掩盖分布、标签和 ISP 差距
验证
像素/特征/几何残差分层 + 真实任务指标,不用主观截图判断
03 · Hybrid

在可信几何与相机上做 PBR,再对不确定 nuisance 做受约束随机化

适合
多数正式 6D pose 生产线;兼顾标签精度、覆盖与可解释性
风险
层级与变量归属不清时难做消融;版本组合爆炸
验证
冻结 base scene,逐层开启 material / light / sensor / compositing
04 · Real fine-tune / adaptation

用少量部署域真值校准 feature、score、normalization 或 sensor statistics

适合
存在小规模可标注真实集,且部署域相对稳定
风险
real calibration set 与 test 泄漏;只适配常见样本而损失长尾
验证
按 scene / instance 分组的 untouched holdout + 多 seed 学习曲线
05 · Image translation / generative augmentation

改变外观或补长尾,同时尽量保持几何标签

适合
背景、天气、纹理和照明变化;生成 hard negatives
风险
几何、边界、ID 或 pose 与生成图不再一致;生成器带来新偏差
验证
cycle / geometry checks、mask edge audit、人工 spot-check 与任务 ablation

Minimum sim-to-real experiment matrix

Real-onlySynthetic-onlyMixedPretrain → real FT − material DR− lighting DR− physics− sensor layer wrong sampling controlclean-label oracle3+ train seedsuntouched real holdout
任务指标之外还要看 gap 诊断 分别比较 low-level image statistics、feature distance、pose / visibility 条件分层和最终机器人成功率。某个 proxy 变小但任务变差,说明它不是当前主导因果;不要继续优化一个易看的“域差距分数”。

10 · Toolchains

工具负责执行,数据契约负责可比较性

Blender、BlenderProc、Isaac Sim、Unity 和自研渲染器各有优势。工具名称不能替代 frame、unit、render pass、sensor、version 与 validation 的明确定义。

Blender + Python

通用建模、Cycles/EEVEE、compositor、动画和脚本

灵活但需自己冻结坐标、passes、版本和大规模调度契约

BlenderProc

模块化场景采样、物理、渲染、BOP loader/writer 与可复现配置

适合 6D pose / CV 合成管线;仍要审计模块参数和资产来源

Isaac Sim Replicator

USD 场景、PhysX、机器人/传感器、随机化与 annotators

适合机器人闭环和数字孪生;注意版本、USD layer 与 GPU determinism

Unity / 自研实时引擎

实时交互、game-engine 资产生态、定制 shader 和大规模帧生成

需要验证物理、相机、色彩和标签 pass 是否满足研究契约

Offline ray tracer

高质量光传输、材质/相机可控、reference render

慢但适合校准与 oracle;不天然包含机器人/传感器时序

Dataset compositor

真实背景 + 渲染前景、copy-paste、mixed reality

成本低;接触阴影、遮挡、颜色、景深和边缘是主要域线索

11 · Scalable Production

可复现 sample ID、原子 shard 与幂等重试比“多 GPU”更先

规模化会把偶发错误变成成千上万条脏标签。每个样本必须能由冻结输入重建,每个 shard 必须在完整校验后原子发布,局部失败重跑不能改变已发布样本身份。

01

Plan

冻结 schema、分层 quotas、config ID 和成本预算;在小样本上先跑所有 unit / visual checks

02

Sample

seed → scene graph;记录 proposal 与 rejection reason,避免 rejection sampling 静默改分布

03

Simulate

物理 settle / trajectory;保存状态摘要、contact、timeout、penetration 和 determinism fingerprint

04

Render

clean passes 与 sensor passes 分阶段;每帧使用同一 scene snapshot / exposure trajectory

05

Validate

矩阵、投影、ID、mask、depth、finite、range、distribution、asset/license 与 round-trip checks

06

Shard

原子写临时 shard → 完整校验 → rename;manifest + checksums + counts,支持幂等重试

07

Export

内部 schema → BOP / COCO / WebDataset 等;显式单位、frame、depth_scale、channel dtype

08

Benchmark

固定真实 holdout、real-only / synth-only / mixed baselines、多 seed 和逐层消融

Per-sample manifest

sample_id: sha256(config_id | scene_index)
generator: {git_commit, engine, version}
random: {root_seed, sampler_streams}
assets: [{asset_id, geometry_hash, material_hash}]
scene: {transforms, velocities, contacts}
camera: {frame, K, D, shutter, timestamp}
passes: [{name, dtype, frame, unit, checksum}]
sensor_model: {name, version, parameters}
qa: {status, checks, reject_reason}

BOP export boundary

internal scene state
  ├─ metric mesh + object frame
  ├─ camera optical K / D
  ├─ ᶜTₒ at reference time
  ├─ clean + sensor depth
  └─ full / visible masks
          ↓ explicit conversion
BOP scene_camera / scene_gt / scene_gt_info
  ├─ cam_R_m2c / cam_t_m2c
  ├─ cam_K / depth_scale
  ├─ px_count_all / valid / visib
  └─ mask / mask_visib
导出不是复制字段要同时转换 mesh、translation、diameter、bbox、depth_scale 和 symmetry,并 round-trip 回内部 schema 做投影与 mask counts 比较。

12 · Quality Assurance

先验证解析真值,再抽样看图,最后用真实任务裁决

合成数据最大的优势是拥有生成状态,因此应建立比真实标注更严格的自动 oracle。只有所有数学和 schema 检查通过后,视觉 spot-check 与真实 holdout 才有解释意义。

失败模式表象检测修复
Uniform Euler bias顶部/底部视向过密,赤道附近不足等面积 z–azimuth histogram、SO(3) bin、任务条件覆盖改用 Haar quaternion;若是任务先验则显式命名
Hidden rejection bias“随机采样”经过可见率/碰撞筛选后只剩容易样本保存 proposal / accept counts,按条件画 rejection heatmap约束采样或 importance weighting;把 reject 机制纳入分布
Physics explosion穿透、弹飞、悬浮、极端角速度和不可重放penetration/contact/energy/settle timeout 断言修单位、collision、time step、solver 和初始 overlap
Pretty but wrong asset照片感强但轮廓、尺寸、孔洞或 object frame 错真实 silhouette/depth/卡尺与 frame overlay先修资产契约;不要用材质随机化掩盖
ID / mask antialiasing实例边缘出现混合颜色或未知 IDunique ID set、mask counts、z-buffer consistency整数 pass / cryptomatte 后按任务定义离散化
Depth semantics mismatchZ-depth、ray range、clip value 或单位混用已知平面/球体解析测试、反投影再投影字段命名携带语义;clean float 与 sensor integer 分开
Motion-label mismatch模糊/rolling shutter 图像配单一瞬时 pose高速边缘、flow 与曝光轨迹重投影检查保存 trajectory / per-row time;定义评测参考时刻
Synthetic leakage同一 asset/seed/scene 变体跨 train/test,或调参看了 real test按 generator lineage 分组去重与 split audit按 asset/scene family 切分;真实 holdout 只用于最终协议
More data, worse transfer合成量增加而真实指标下降固定训练预算和采样权重的 learning curve / stage oracle先找主导 gap,缩窄无益随机变量,再调整混合课程
Non-reproducible shards局部失败重跑后内容/ID 漂移,结果无法对应 configmanifest、content hash、sample ID 幂等检查sample ID 由冻结输入派生;原子 shard 与版本化 RNG

Release gate · 生成一百万张之前

  1. 任务 support、split claim 与真实 holdout 是否冻结?
  2. 每个 asset 的 frame、单位、尺寸、collision、材质、license 与 hash 是否通过?
  3. SO(3) / view / stable pose 的采样测度和 joint distribution 是否可视化?
  4. 物理穿透、settle、timeout、rejection 和跨版本重放是否记录?
  5. RGB、Z / range、normal、ID、mask、XYZ、flow 与 pose 是否逐像素闭环?
  6. clean truth 与每一层 sensor effect 是否独立保存、可关闭、可消融?
  7. train/test 是否按 asset、scene、seed 和 generator lineage 防泄漏?
  8. shard 是否原子、带 checksum、可幂等重试并能从 manifest 重建?
  9. real-only、synth-only、mixed、fine-tune 与逐层 ablation 是否同协议比较?
  10. 真实 holdout 是否完全不参与资产、随机范围、sensor 参数与模型选择?
合成数据、域随机化、渲染/物理工具链与数据格式来源展开查看 BlenderProc、Domain Randomization、Falling Things、Blender、Isaac Sim、PhysX 与 BOP 原始资料