无人机视觉仿真的 8 道鸿沟:从理想相机到真实传感器的差距与弥合
一个 YOLO 模型在仿真里 mAP 92%,部署到实机上直接跌到 55%。根本原因不是 UE5 渲染不够逼真——Lumen + Nanite 已经足够好看了——而是仿真相机从来就不是一个真实传感器。渲染引擎追求的是”视觉上令人信服”,而真实 CMOS 传感器的输出充满噪声、畸变、动态范围截断和 ISP 链路的各种非线性变换。这两者之间的差距,才是 Sim-to-Real 视觉迁移失败的主因。
本文系统梳理仿真相机与真实传感器之间的 8 个关键差距维度,给出 AirSim/Colosseum、Cosys-AirSim、Project AirSim、Isaac Sim、Gazebo 五个主流平台的建模能力对比,以及工程实践中缩小差距的方法。
一、问题:为什么仿真图像”看起来对”但”用起来不对”
一个典型场景:在 AirSim + UE5.7 的城市环境里训练了一个 YOLOv8 目标检测模型,用于检测低空截击任务中的目标无人机。仿真验证集上 mAP@0.5 达到 92%,信心满满地拿去实机测试——Intel RealSense D455 彩色流 + NVIDIA Jetson Orin Nano 推理——mAP 直接跌到 55%。
这个 37 个百分点的落差从何而来?
Sim-to-Real Gap 通常被分为两个维度:
| 维度 | 含义 | 典型表现 |
|---|---|---|
| 动力学差距 | 仿真飞行器的物理模型与真实飞行器不一致 | 仿真中悬停稳定,实机上有 5cm 漂移 |
| 视觉差距 | 仿真传感器的输出与真实传感器不一致 | 仿真中检测稳定,实机上漏检/误检暴增 |
动力学差距已有大量研究(PID 调参、系统辨识、域随机化动力学参数),本文聚焦的是视觉差距。
视觉差距的根源很简单:渲染引擎的目标函数是让人眼觉得好看,而不是让输出像真实传感器拍的。Lumen 全局光照可以骗过人眼,但骗不过一个在真实噪声图像上训练过的卷积核。
具体差距可以拆成 8 个维度。
二、鸿沟 1:成像几何——从理想针孔到真实镜头
问题本质
仿真渲染器默认使用理想针孔模型:光线通过一个无穷小的孔投射到像平面上,成像严格遵循线性透视投影。数学表示为内参矩阵 K:
1 | K = [ 0 fy cy ] |
真实镜头不可能是完美的。光线通过多组玻璃透镜时,径向畸变(barrel / pincushion)和切向畸变不可避免。标准的 Brown-Conrady 畸变模型引入 5 个额外参数:
1 | 径向畸变: |
一个典型的广角无人机相机(如 DJI Mavic 3 的 Hasselblad 镜头),k1 在 -0.3 左右,画面边缘的像素偏移量可达 10-20 pixel。如果仿真中不加畸变,检测框在边缘区域的定位误差会显著放大。
各平台支持情况
| 平台 | 畸变仿真能力 | 配置方式 |
|---|---|---|
| AirSim/Colosseum | 不支持(仅理想针孔) | 无 |
| AirSim 原版 | 有 Programmable Camera Distortion PR(2020),Colosseum 继承 | 需自行编译 |
| Cosys-AirSim | 支持径向畸变 | LensDistortionEnable, LensDistortionAreaFalloff, LensDistortionAreaRadius, LensDistortionIntensity, LensDistortionInvert |
| Project AirSim | 部分支持 | horz-distortion-contrib 等参数 |
| Isaac Sim | 支持完整 Brown-Conrady | Replicator API 配置 |
| Gazebo | 插件支持 | <distortion> SDF 标签 |
Cosys-AirSim 的畸变配置示例(settings.json):
1 | { |
实践建议
如果实机相机是广角或鱼眼(FOV > 90°),仿真中不加畸变几乎必然导致边缘检测框偏移。两条路径:在仿真端加畸变(Cosys-AirSim),或者在训练管线中对仿真图像做离线畸变增强。后者更灵活,因为可以按照实机标定结果精确配置 k1-k3, p1-p2。
三、鸿沟 2:传感器噪声——完美像素 vs 噪声世界
问题本质
仿真渲染输出的是浮点精度的”完美”像素值,经过 Tone Mapping 后量化为 8-bit RGB。整个过程没有任何物理噪声。
真实 CMOS 传感器的每个像素值都叠加了多种噪声源:
| 噪声来源 | 物理机制 | 统计特性 | 主导场景 |
|---|---|---|---|
| 光子散粒噪声 | 光子到达的量子不确定性 | Poisson 分布,σ² = 信号值 | 低光/暗区 |
| 暗电流 | 半导体热激发产生的电子 | 与温度、曝光时间正相关 | 长曝光、高温环境 |
| 读出噪声 | ADC 转换 + 放大器电路噪声 | 固定模式噪声 + 随机高斯 | 所有场景 |
| 量化噪声 | ADC 有限位深 | 均匀分布,幅度 = 1 LSB | 10-bit 及以下 |
在 ISO 800、室外自然光条件下,一个典型无人机相机(如 Sony IMX477)的信噪比约 30-35 dB。这意味着每个像素值有 ±2-5 个灰阶的随机波动。
AirSim 的 NoiseSettings:名不副实
AirSim 提供了一组 NoiseSettings 参数:
1 | { |
这些参数通过 PostProcess Shader(CameraSensorNoise material)实现,产生的效果是水平扫描线干扰和波纹——更接近老式模拟电视的信号干扰,而不是数字 CMOS 传感器的物理噪声。HorzWave、HorzNoiseLines、HorzDistortion 这些命名本身就暴露了其模拟信号的设计意图。
Cosys-AirSim 在此基础上增加了 Gaussian Blur 和 Fake Motion Blur,但仍然不是物理噪声模型。
物理正确的噪声模型
如果需要物理正确的噪声仿真,应该在 linear 空间(gamma = 1.0)操作:
1 | import numpy as np |
实践建议
对于目标检测任务,比起 AirSim 的 NoiseSettings,在训练增强管线中加随机高斯噪声 + 随机亮度/对比度扰动反而更有效。原因:YOLO 类检测器对高频纹理噪声有一定鲁棒性,但对全局亮度和对比度变化敏感——后者才是真实相机自动曝光波动带来的主要影响。
四、鸿沟 3:曝光与动态范围
问题本质
UE5 的渲染管线在内部使用 HDR(每通道 16-bit float 或更高),动态范围远超真实相机。渲染结果经过 Tone Mapping 压缩到显示器可呈现的范围,再输出 8-bit RGB。这个 Tone Mapping 是为了”好看”,而不是为了模拟真实相机的 12-bit ADC + ISP 压缩。
真实相机的自动曝光(AE)系统有明确的行为特征:
- 曝光决策延迟:场景亮度突变后需要 200-500 ms 收敛
- 过曝/欠曝:AE 窗口内的平均亮度决定曝光,局部高光或暗部会被牺牲
- 曝光补偿偏差:不同相机厂商的 AE 算法倾向不同
AirSim 的曝光参数
AirSim 通过 UE4/5 的 PostProcessSettings 暴露了部分曝光控制:
1 | { |
| 参数 | 作用 | 真实相机对应 |
|---|---|---|
AutoExposureSpeed |
AE 收敛速度 | AE 响应时间 |
AutoExposureBias |
曝光偏置(EV) | 曝光补偿 |
AutoExposureMaxBrightness |
AE 上限 | ISO/快门上限 |
AutoExposureMinBrightness |
AE 下限 | ISO/快门下限 |
TargetGamma |
输出 gamma 曲线 | ISP gamma 校正 |
运动模糊
运动模糊是曝光时间内物体位移的积分效应。仿真中无人机高速飞行时图像默认清晰无比,但实机上因为快门速度限制(如 1/120s @ 30fps),相对速度 10m/s 的目标在像平面上会产生约 3-5 pixel 的拖影。
| 参数 | AirSim/Colosseum | Cosys-AirSim |
|---|---|---|
MotionBlurAmount |
0-1(0 = 关闭) | 0-1 |
MotionBlurMax |
不支持 | 支持 |
MotionBlurTargetFPS |
不支持 | 支持 |
| Fake Motion Blur | 不支持 | FakeMotionBlurEnable, FakeMotionBlurSize, FakeMotionBlurAmount |
Cosys-AirSim 的 Fake Motion Blur 通过后处理实现,无需真正降低渲染帧率即可模拟运动模糊效果,对帧率的影响比真实运动模糊小得多。
实践建议
将 AutoExposureSpeed 调低(如 2-5)可以模拟真实相机 AE 的延迟效果,但这会导致快速场景切换时出现明显的亮度突变帧——这恰恰是实机上的真实行为。训练时不要跳过这些”坏帧”,它们是模型鲁棒性的重要来源。
五、鸿沟 4:色彩还原
问题本质
UE5 的渲染管线在 linear 空间计算光照,输出时经过 Tone Mapping(默认 ACES Filmic)+ sRGB gamma 转换。这个链路产生的色彩分布与真实相机的差异不容忽视。
真实相机有自己的 ISP(Image Signal Processor)处理链路:
1 | 光子 → CMOS → 原始 RAW(Bayer) → 去马赛克 → 白平衡 → |
每个环节都引入非线性变换。不同厂商的 ISP 倾向完全不同:DJI 偏暖色饱和,Intel RealSense 偏冷色低饱和,GoPro 偏高对比度。
TargetGamma 参数直接影响输出色彩分布:
| TargetGamma 值 | 含义 | 色彩表现 |
|---|---|---|
| 1.0 | Linear 输出(无 gamma 校正) | 暗部细节丰富,整体偏暗 |
| 1.5 | 折中 | 适合后期处理 |
| 2.2 | 标准 sRGB | 接近显示器显示效果 |
对 Sim-to-Real 的影响
色彩分布偏移对特征提取有直接影响。CNN 的低层卷积核对色彩统计量(均值、方差、通道间相关性)敏感。仿真图像的 ACES Tone Mapping 产生的色彩分布,与实机 ISP 输出的色彩分布之间存在系统性偏移,这种偏移无法通过简单的亮度/对比度调整消除。
解决方案
三条路径,成本和效果递进:
方案 1:训练时域随机化
在数据增强管线中加 ColorJitter:
1 | import torchvision.transforms as T |
成本低,效果稳定,推荐作为基线方案。
方案 2:Style Transfer 域自适应
用 CycleGAN 或 Neural Style Transfer 将仿真图像转换为”看起来像实机拍的”。效果好但训练成本高,且可能引入伪影。
方案 3:仿真端 ISP 仿真
在渲染输出后加一个 ISP pipeline,模拟目标相机的去马赛克、白平衡、色彩矩阵。需要对目标相机做色彩标定(拍摄 ColorChecker 色卡),工程量大但效果最精确。
六、鸿沟 5:深度传感器的”完美深度”陷阱
问题本质
仿真深度 = Z-Buffer 的精确浮点值。每个像素都有值,没有噪声,没有空洞,没有范围限制。这在真实世界中不存在。
真实深度传感器各有各的失效模式:
| 传感器类型 | 代表产品 | 典型失效场景 | 噪声特性 |
|---|---|---|---|
| 结构光 | Intel RealSense D435/D455 | 反射面(金属、水面)、透明物体(玻璃)、室外强光干扰 | 距离²相关噪声,近处 ±1-2mm,远处 ±10-50mm |
| ToF | Azure Kinect DK, PMD | 多路径干扰(multipath interference)、黑色吸收面 | 固定偏置 + 距离相关噪声 |
| 双目立体 | ZED 2, OAK-D | 弱纹理区域匹配失败、重复纹理误匹配、边缘飞点 | 距离²相关,基线越短噪声越大 |
一个具体的量化对比:在 3m 距离上,仿真深度误差 = 0,RealSense D455 的深度误差约 ±15mm(0.5%),双目 ZED 2 约 ±30mm(1%)。看起来不大,但在边缘区域、反射面和远距离处,真实深度传感器会产生大面积空洞——这些空洞在仿真中完全不存在。
Hosseinzadeh 等人(2024)[1] 的 Depth Transfer 工作直接量化了这种差距:仿真深度与真实深度之间的分布差异大到需要专门训练一个 VAE 做域自适应才能弥合。
各平台深度仿真能力
| 平台 | 深度输出 | 噪声模型 | 空洞仿真 |
|---|---|---|---|
| AirSim/Colosseum | 完美 Z-Buffer 浮点深度 | 无 | 无 |
| Cosys-AirSim | 同上 | 无 | 无 |
| Project AirSim | 同上 | 无 | 无 |
| Isaac Sim | 支持物理噪声模型 | 距离相关高斯 + 结构化噪声 | 支持 |
| Gazebo | 支持高斯噪声插件 | 可配置高斯噪声 | 插件支持 |
实践建议
在 Python 后处理端给仿真深度加噪声模型:
1 | import numpy as np |
核心思路:距离相关高斯噪声 + 随机空洞 + 边缘膨胀误差。比修改引擎代码灵活得多。
七、鸿沟 6:语义分割真值的”免费午餐”隐患
问题本质
仿真语义分割 = Stencil Buffer 的像素级精确标注。每个像素严格归属于一个 Mesh 的 Stencil ID,边缘锐利到亚像素级别,标注覆盖率 100%,没有歧义。
这种精度在真实世界的标注数据中不可能实现:
| 差异维度 | 仿真标注 | 真实标注 |
|---|---|---|
| 边缘精度 | 亚像素级 | 1-2 pixel 人工误差 |
| 透明/半透明物体 | 按 Mesh 归属,无歧义 | 玻璃、烟雾、雨滴的标注存在主观分歧 |
| 小物体/远距离目标 | 只要 Mesh 存在就标注 | 标注者容易遗漏 <5 pixel 的小目标 |
| 反射面 | 只标注几何表面 | 镜面中的物体是否标注?标注标准不统一 |
| 遮挡边缘 | 精确到像素 | alpha blending 区域标注模糊 |
如果用这种”完美标注”训练分割模型,模型会学到一个过于严格的决策边界,在真实数据的模糊标注上表现不佳——尤其是边缘 IoU 会显著下降。
实例分割 vs 语义分割
| 能力 | AirSim/Colosseum | Cosys-AirSim |
|---|---|---|
| 语义分割 | 支持(Mesh ID → RGB 颜色映射) | 支持 |
| 实例分割 | 不支持 | 支持(每个实例独立 ID) |
| 多层标注 | 不支持 | 支持(RGB / 灰度 / 纹理多通道) |
AirSim/Colosseum 的语义分割通过 simSetSegmentationObjectID API 设置物体的 Stencil ID,所有同类物体共享一个 ID。Cosys-AirSim 扩展了这一机制,支持实例级独立 ID。
实践建议
对分割标签做”退化增强”来模拟真实标注的不完美:
1 | import cv2 |
八、鸿沟 7:时间维度——帧率、延迟与同步
问题本质
仿真时间是可控的:可以暂停、可以单步、可以加速。渲染帧率 = 传感器帧率,时间戳精确对齐,端到端延迟为零。
真实世界的时序完全不同:
| 时序特性 | 仿真 | 真实 |
|---|---|---|
| 帧率 | 等于渲染帧率或 API 请求频率 | 固定(30/60 FPS),受带宽/算力限制 |
| 端到端延迟 | 0(同步 API)或网络 RTT | 曝光时间 + 读出时间 + USB/MIPI 传输 + ISP 处理,典型 30-80 ms |
| 多传感器同步 | 时间戳精确对齐 | 相机间存在时钟漂移(μs~ms 级),需要硬件同步触发 |
| 时钟连续性 | 可 pause/step | 不可暂停,实时流 |
多传感器时间同步是 VIO(Visual-Inertial Odometry)和 SLAM 系统的核心难题。IMU 通常 200-1000 Hz,相机 30-60 Hz,两者的时间戳对齐误差如果超过 1ms,VIO 的位姿估计就会出现明显漂移。仿真中这个问题根本不存在——AirSim 的 simGetImages 和 getImuData 返回的时间戳完美对齐。
实践影响
一个在仿真中完美运行的 VIO 算法,部署到实机上后可能因为 IMU-相机时间戳偏移而漂移严重。仿真中对齐是”免费”的,实机上需要:
- 硬件同步触发(GPIO trigger)
- 时间戳插值和校正
- 在线时间偏移估计(如 Kalibr 的 td 参数)
帧率不匹配的隐含问题
仿真中可以轻松跑到 60+ FPS(尤其是用了 NVENC 之后),但实机上的算力预算可能只允许 15-20 FPS 的处理帧率。如果训练时用 60 FPS 采样,模型会学到帧间高度相关的特征;部署时降到 15 FPS,帧间运动幅度变大,遮挡/外观变化更剧烈,检测稳定性下降。
实践建议
训练时用与实机一致的帧率采样仿真数据。如果实机是 30 FPS,仿真渲染可以跑 60 FPS(保证流畅性),但采样到训练集时每隔一帧取一帧。
九、鸿沟 8:环境与光照
问题本质
UE5 的 Lumen 动态全局光照系统在视觉质量上已经非常出色,但与真实世界的光照环境仍有系统性差异:
| 维度 | UE5 Lumen | 真实世界 |
|---|---|---|
| 天空光 | HDR 天空盒或程序化天空 | 连续变化的大气散射,云层遮挡不规则 |
| 阳光 | 平行光 + 可选体积云阴影 | 大气湍流导致的光照闪烁 |
| 反射 | Screen Space Reflection + Lumen Reflection | 真实反射包含复杂的 BRDF 和环境遮蔽 |
| 半透明物体 | 有限的半透明渲染(排序问题) | 真实的烟雾、雨滴、雾气、灰尘粒子散射 |
| 植被 | Subsurface Scattering 近似 | 真实叶片的光透射和风中运动 |
| 地面 | 纹理贴图 | 真实地面的微观几何和光泽变化 |
无人机低空飞行场景中,光照差异尤为明显:
- 逆光:真实相机会出现严重的 lens flare 和光晕,UE5 的 lens flare 是后处理近似
- 阴影:UE5 的阴影有分辨率限制(Shadow Map Cascades),远处阴影边缘模糊,而真实世界的阴影边缘由光源角直径决定
- 大气散射:远距离目标在真实世界中受大气散射影响显著(蓝色偏移、对比度下降),UE5 的 Exponential Height Fog 只是粗略近似
域随机化策略
环境和光照差距是 8 个维度中最难精确建模的,但也是域随机化最有效的领域。核心思路:既然无法精确模拟真实光照,就让模型在训练时见到尽可能多的光照变化,从而学到光照不变的特征。
具体随机化参数:
| 随机化维度 | 参数范围 | 实现方式 |
|---|---|---|
| 光照方向 | 太阳方位角 0-360°,仰角 10-80° | UE5 DirectionalLight Actor |
| 光照强度 | 0.5-3× 基准值 | Light Intensity |
| 天气 | 晴天、多云、阴天、雾天 | 程序化天空参数 + 雾浓度 |
| 时间 | 清晨、正午、黄昏、夜间 | Sun Position 插件 |
| 纹理 | 地面/建筑纹理随机替换 | Material Instance Dynamic |
| 后处理 | 随机对比度、饱和度、色温 | PostProcessVolume |
十、各仿真平台相机建模能力对比
综合 8 个维度,各平台的建模能力汇总如下:
| 能力 | AirSim/Colosseum | Cosys-AirSim | Project AirSim | Isaac Sim | Gazebo |
|---|---|---|---|---|---|
| 理想针孔模型 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 径向畸变 | ❌(有 PR 未入主线) | ✅ | 部分 | ✅ | ✅(插件) |
| 色差 | ❌ | ✅ | ❌ | ✅ | ❌ |
| 运动模糊 | 基础 | ✅(含 Fake) | 基础 | ✅ | ❌ |
| 传感器噪声 | 视觉效果模拟 | 视觉效果 + Gaussian Blur | 基础 | 物理噪声模型 | 高斯噪声(插件) |
| 自动曝光 | ✅ | ✅ | ✅ | ✅ | ❌ |
| 深度噪声 | ❌(完美深度) | ❌ | ❌ | ✅(带噪声) | ✅(高斯) |
| 语义分割 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 实例分割 | ❌ | ✅ | ❌ | ✅ | ❌ |
| 多层标注 | ❌ | ✅(RGB/灰度/纹理) | ❌ | 部分 | ❌ |
| 事件相机 | ❌ | ❌ | ❌ | ✅ | ✅(插件) |
| 可编程畸变 | 有 PR(2020) | ✅ | 部分 | ✅ | 插件 |
| 光流 | ❌(UE5 后移除) | ❌ | ❌ | ✅ | ❌ |
几个关键观察:
- Isaac Sim 在传感器物理建模上最完整,但它绑定 NVIDIA Omniverse 生态,UE 用户迁移成本高
- Cosys-AirSim 是 AirSim 系列中建模能力最强的分支,对畸变、运动模糊、实例分割的支持填补了原版的多处空白
- AirSim/Colosseum 的传感器建模能力相当有限,噪声模型尤其薄弱,主要依赖后处理效果而非物理模型
- Gazebo 本身能力有限,但插件生态弥补了部分差距,ROS 集成是其最大优势
十一、缩小差距的工程实践
11.1 域随机化(Domain Randomization)
域随机化的核心假设:如果模型在训练时见过足够大的视觉变化范围,真实世界的视觉分布就会落在这个范围之内。
视觉随机化
| 随机化类型 | 参数 | 推荐范围 |
|---|---|---|
| 纹理随机 | 替换地面/建筑/目标纹理 | 每 episode 随机 |
| 光照随机 | 方向、强度、色温 | 方向 360°,强度 0.3-3× |
| 天气随机 | 晴/阴/雨/雾 | 均匀采样 |
| 色彩抖动 | brightness, contrast, saturation, hue | ±30%, ±30%, ±30%, ±0.1 |
相机参数随机化
在仿真端或后处理端随机化传感器参数:
1 | import random |
实际效果参考
FalconGym [2] 使用 NeRF 场景重建 + 零样本 Sim-to-Real 迁移,在真实无人机上实现了 95.8% 的穿越门任务成功率。其关键不是渲染逼真度,而是足够大的视觉随机化范围。
SOUS VIDE [3] 使用 Gaussian Splatting 重建真实环境 + 动力学域随机化,训练出的策略在实机上能承受 30% 的质量变化和 40 m/s 的阵风干扰。
11.2 域自适应(Domain Adaptation)
域自适应的目标是直接学习一个从仿真域到真实域的映射,而非靠随机化覆盖。
图像级域自适应
| 方法 | 原理 | 优势 | 劣势 |
|---|---|---|---|
| CycleGAN | 无配对图像的风格转换 | 不需要配对数据 | 可能引入伪影,小目标易丢失 |
| Neural Style Transfer | 内容-风格分离 | 实现简单 | 效果依赖风格图选取 |
| FDA (Fourier Domain Adaptation) | 交换低频傅里叶分量 | 快速、无需训练 | 仅处理全局色调 |
深度域自适应
Hosseinzadeh 等人(2024)[1] 提出的 Depth Transfer 方法训练一个 VAE,将仿真深度图的分布对齐到真实深度图的分布,在障碍物检测任务上将碰撞率从 34% 降到 12%。
11.3 混合数据训练
纯仿真数据训练的模型迁移性差,但仿真数据的获取成本极低(无需标注)。最务实的策略:
1 | 训练数据 = 大量仿真数据 (80-90%) + 少量真实数据 (10-20%) |
具体执行:
- Phase 1 — 仿真预训练:用大规模仿真数据 + 域随机化训练基础模型
- Phase 2 — 真实数据微调:用少量(几百到几千张)真实标注数据做 fine-tune,学习率降 10×
- Phase 3 — 持续迭代:实机部署后收集 hard case,回流到训练集
11.4 后处理管线
在 Python 端对仿真图像做后处理,比修改引擎代码更灵活、迭代更快:
1 | import cv2 |
这条管线的优势:
- 不需要重新编译仿真引擎
- 可以针对不同目标相机配置不同参数集
- 每次实验可以快速调整参数
- 可以和现有的数据增强管线(Albumentations、torchvision)无缝集成
十二、总结
8 道鸿沟的影响程度、弥合难度和推荐方案汇总:
| 鸿沟 | 影响程度 | 弥合难度 | 推荐方案 |
|---|---|---|---|
| 1. 成像几何(畸变) | 高 | 易 | 后处理加畸变 / Cosys-AirSim 内置 |
| 2. 传感器噪声 | 中 | 易 | 后处理加高斯噪声 + 亮度扰动 |
| 3. 曝光与动态范围 | 高 | 中 | 调低 AE 速度 + 训练时保留过曝/欠曝帧 |
| 4. 色彩还原 | 中 | 中 | ColorJitter 域随机化 |
| 5. 深度传感器 | 高 | 中 | 后处理加距离相关噪声 + 空洞 |
| 6. 语义分割真值 | 低 | 易 | 标签边缘扰动 + label noise |
| 7. 时间维度 | 高 | 难 | 匹配实机帧率采样 + 硬件同步 |
| 8. 环境与光照 | 高 | 难 | 大范围域随机化 |
仿真相机的核心价值不在”拍得像真的”,而在”用于训练时效果和真的一样”。前者是渲染问题,后者是传感器建模 + 域迁移问题。两者的区别,决定了工程投入应该放在提升渲染品质还是缩小传感器差距上——对大多数 Sim-to-Real 视觉任务而言,后者的 ROI 远高于前者。
参考
- Hosseinzadeh, M. et al. “Depth Transfer for Sim-to-Real Obstacle Avoidance.” arXiv:2505.12428, 2024.
- Hanover, D. et al. “FalconGym: A NeRF-based Gym Environment for Visual Drone Racing with Sim-to-Real Transfer.” IEEE RA-L, 2025.
- Ubellacker, W. et al. “SOUS VIDE: Cooking Visual Sim-to-Real Transfer Policies in Gaussian Splats.” CoRL, 2024.
- Tobin, J. et al. “Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World.” IROS, 2017.
- AirSim/Colosseum Documentation. https://microsoft.github.io/AirSim/
- Cosys-AirSim Documentation. https://cosys-lab.github.io/cosys-airsim/
- Project AirSim Documentation. https://github.com/microsoft/ProjectAirSim
- NVIDIA Isaac Sim Sensor Documentation. https://docs.omniverse.nvidia.com/isaacsim/latest/features/sensors/index.html
- Brown, D. C. “Decentering Distortion of Lenses.” Photogrammetric Engineering, 1966.
- Hoffman, J. et al. “CyCADA: Cycle-Consistent Adversarial Domain Adaptation.” ICML, 2018.