相机(针孔 / 鱼眼 / 全景)
一台相机可在单次渲染中同时导出多种视觉与几何模态,所有模态逐像素对齐、共享同一时间戳。

单帧全模态输出示例(针孔相机 1280×720)。 深度、法线、热红外、光流在磁盘上存储为浮点数组(NPY / EXR),上图为可视化色带渲染结果,训练时请直接读取 NPY / EXR 原始数值。
1. 支持的相机模态
在 sensors.camera.modalities 中按需开启:
| 模态名称 | 默认格式 | 输出目录名 | 内容说明 |
|---|---|---|---|
RGB | jpeg | RGB/ | 彩色图像(可附带 detection 输出 3D BBox) |
Depth | npy | GPlanarDepth/ | 线性平面深度(cm,仅不透明表面) |
EuclideanDepth | npy | GEuclideanDepth/ | 径向欧氏深度(cm,仅不透明表面) |
DepthFull | npy | PlanarDepth/ | 平面深度(cm,包含半透明表面) |
EuclideanDepthFull | npy | EuclideanDepth/ | 径向欧氏深度(cm,包含半透明表面) |
WorldNormal | exr | WorldNormal/ | 世界空间单位法向量 |
SemanticSegmentation | png | SemanticSegmentation/ | 语义类别 ID 掩码(配合 SemanticMapping.json) |
InstanceSegmentation | png / npy | InstanceSegmentation/ | 逐组件 24-bit 实例 ID 掩码 |
MaterialSegmentation | png / npy | MaterialSegmentation/ | 逐材质 ID 掩码(配合 MaterialIdMapping.json) |
OpticalFlow | npy | OpticalFlow/ | 动态物体自身屏幕位移速度 |
GlobalOpticalFlow | npy | GlobalOpticalFlow/ | 相机 + 物体的合成光流及非遮挡有效性掩码 |
GBufferC | exr | GBufferC/ | 无光照基础反照率(BaseColor)+ AO(Alpha 通道) |
ObjectEdge | png | ObjectEdge/ | Canny 边缘检测图像 |
ThermalLWIR / ThermalMWIR | npy | ThermalLWIR/ / ThermalMWIR/ | 长波 / 中波热红外温度场(详见热红外相机) |
2. 放置与多相机同步
- 根据投影类型在关卡中放置对应 Actor:
- 针孔相机:
AIASDGCameraSensor - 常规鱼眼(FOV ≤ 170°):
AIASDGFisheyeSensor - 360° 全景 ERP / 超广角鱼眼(FOV > 170°):
AIASDGPanoramaSensor
- 针孔相机:
- 在 Details 面板为每台相机设置唯一的
SensorName(例如front_cam、left_cam、panorama)。 - 在
capture_config.json的sensors.camera.instances[]中配置各台相机:
"sensors": {
"camera": {
"fps": 10,
"instances": [
{
"name": "front_cam",
"type": "pinhole",
"resolution": [1280, 720],
"fov": 90.0
},
{
"name": "fisheye_front",
"type": "fisheye",
"projection_model": "equidistant",
"resolution": [1024, 1024],
"fov": 160.0
}
],
"modalities": {
"RGB": { "enabled": true, "format": "jpeg" },
"Depth": { "enabled": true, "format": "npy" },
"GlobalOpticalFlow": { "enabled": true, "format": "npy" }
}
}
}
3. 360° 全景相机(ERP)配置
放置 AIASDGPanoramaSensor 后,在 instances[] 中使用 "type": "equirectangular":

{
"name": "panorama",
"type": "equirectangular",
"cubemap_face_size": 1024,
"render_mode": "cubemap",
"exposure_bias": 4.0
}
| 字段 | 默认值 | 说明 |
|---|---|---|
cubemap_face_size | 512 | 单面采样分辨率;交付全景图尺寸默认为 4×face 宽 × 2×face 高(1024 对应 4096×2048) |
output_width | 4×face | 可选,指定交付图宽度(高度为其一半);小于 4×face 时生效空间超采样 |
render_mode | "cubemap" | "cubemap"(默认,速度最快)或 "panes"(6 个 120° 重叠视窗加权融合,彻底消除面边界接缝) |
pane_fov | 120 | 仅 "panes" 模式有效,单视窗视场角(需 > 90) |
exposure_bias | 0.0 | 手动曝光补偿(EV,每 +1 亮度翻倍;室外森林/街道常用 1.0 ~ 4.0) |

可通过顶层 rendering 段调整全景画质档位:
| 档位 | rendering 配置 | 适用场景 |
|---|---|---|
| 预算档 | "prewarm_cube_sensor_renders": 4, "lumen_radiance_cache_probe_budget": 800 | 快速预览与路线验证 |
| 推荐档(默认) | "prewarm_cube_sensor_renders": 8, "lumen_radiance_cache_probe_budget": 800 | 常规批量生产(不填即为此档) |
| 高画质档 | "prewarm_cube_sensor_renders": 12, "lumen_radiance_cache_probe_budget": 1500 | 最终高标准交付数据集 |
注意:全景路径支持的模态为
RGB、EuclideanDepth、DepthFull、WorldNormal、SemanticSegmentation、InstanceSegmentation、MaterialSegmentation、OpticalFlow、GBufferC、ObjectEdge。平面Depth、GlobalOpticalFlow与 3D BBox 检测仅适用于针孔相机。
4. 针孔镜头畸变(Brown-Conrady)
针孔相机实例可配置径向与切向畸变系数,GPU 会对该相机的所有启用模态同步施加畸变,并将畸变参数写入逐帧 metadata/frame_*.json 的 intrinsics.distortion(可直接传入 cv2.undistort 复原):
{
"name": "front_cam",
"type": "pinhole",
"resolution": [1280, 720],
"fov": 90.0,
"distortion": {
"k1": -0.12,
"k2": 0.03,
"k3": 0.0,
"p1": 0.001,
"p2": -0.001
}
}
5. 物理成像特效(camera.effects)
在 JSON 顶层配置 camera.effects,可为针孔相机的 RGB 输出开启 GPU 实时曝光、辉光(Bloom)、运动模糊(Motion Blur)与镜头光晕(Lens Flare):
"camera": {
"effects": {
"enabled": true,
"value": "sensor",
"exposure": { "enabled": true, "method": "auto", "bias": 0.0 },
"bloom": { "enabled": true, "intensity": 1.0, "threshold": 1.0 },
"motion_blur": { "enabled": true, "amount": 0.5, "max": 5.0 },
"lens_flare": { "enabled": true, "intensity": 1.0 }
}
}
"value": "sensor":输出包含上述成像特效的 RGB 图像。"value": "gt":忽略成像特效,输出干净的参考 RGB 图像。