3. 多摄像头系统架构设计
多摄像头系统架构设计不是把几台相机接到 Jetson 上就结束,而是要在“相机数量、分辨率、帧率、触发方式、数据流拓扑、存储与传输预算”之间做一次完整的资源闭合。任何一项超限,都会在采集阶段表现为丢帧、时间戳抖动、内存耗尽或磁盘写满。本节以 Jetson Orin 平台为例,给出可复用的设计方法与示例参数。
一、先确定相机数量与接口拓扑
Jetson 的 CSI 接口数量有限,Orin NX/Nano 通常提供 2 路 MIPI CSI-2 接口,Orin AGX 可提供 16 路虚拟通道。若相机数量超过物理 CSI 接口,需要选择两种拓扑之一:
- 聚合拓扑:多台相机通过 GMSL2/FPD-Link III 串行器接入同一解串器,再以单路 CSI 输出。优点是节省 CSI 接口,缺点是共享带宽,需确认解串器通道数与聚合帧率。
- 分布式拓扑:每台相机独立占用一路 CSI 或 USB 3.0 接口。优点是互不干扰,缺点是接口数量受限,且 USB 相机难以做到硬件级同步。
对于需要严格同步的 4 相机系统,推荐使用 GMSL2 聚合方案:4 台相机 → 4 个串行器 → 1 个 4 通道解串器 → 1 路 CSI-2。这样既保证同步,又释放 CSI 接口给其他传感器。
二、分辨率与帧率的带宽预算
带宽预算的核心公式为:
单相机带宽 = 宽 × 高 × 位深 × 帧率 × 冗余系数
总带宽 = 单相机带宽 × 相机数量
以 1920×1080、RAW10、30fps 为例,单相机带宽约为 1920×1080×10×30 ≈ 622 Mbps,冗余系数取 1.2 后约 746 Mbps。4 相机聚合后约 2.98 Gbps,需确认解串器与 CSI-2 通道总带宽是否满足。若使用 RAW12 或 60fps,带宽会翻倍,必须重新核算。
三、触发方式与同步精度
触发方式决定同步精度,常见有三类:
- 自由运行:各相机独立曝光,同步精度最差,仅适合非同步场景。
- 软触发:由 Jetson 通过 I2C/GPIO 发送触发信号,精度约毫秒级,受系统调度影响。
- 硬触发:外部信号发生器或解串器同步信号统一触发,精度可达微秒级,是多相机标定与融合的首选。
在 GMSL2 方案中,解串器通常支持外部触发输入,可将同一触发信号分发到所有串行器,实现 4 相机同时曝光。设计时需确认触发信号的电平标准(通常 3.3V LVCMOS)与相机触发延迟参数。
四、数据流拓扑与存储/传输预算
数据从相机到存储的路径为:相机 → 串行器 → 解串器 → CSI-2 → VI(视频输入)→ 内存 → 编码/处理 → 存储或网络。每一级都有带宽上限,需逐级核算。
存储预算方面,若 4 相机以 1920×1080、RAW10、30fps 连续采集 1 小时,原始数据量约为:
4 × 1920 × 1080 × 10bit × 30fps × 3600s ÷ 8 ≈ 1.12 TB
若采用 H.265 编码,压缩比约 50:1,则约 22 GB。因此,架构设计必须明确:是保存原始数据用于标定,还是保存压缩视频用于回放。前者需要 NVMe SSD 阵列,后者可用单块高速 SSD。
五、架构设计检查清单
在完成上述计算后,建议用以下清单逐项确认,避免遗漏:
| 检查项 | 示例值 | 判断依据 |
|---|---|---|
| 相机数量与接口 | 4 台 GMSL2 | 解串器通道数 ≥ 4 |
| 单相机带宽 | 746 Mbps | ≤ CSI-2 通道带宽 |
| 聚合总带宽 | 2.98 Gbps | ≤ 解串器输出上限 |
| 触发方式 | 外部硬触发 | 同步精度 ≤ 10 μs |
| 存储写入速度 | ≥ 350 MB/s | 满足 1.12 TB/h 原始写入 |
| 内存缓冲 | ≥ 2 GB | 容纳 4 相机 3 帧缓冲 |
架构设计的最终输出应是一份明确的参数表:相机型号、分辨率、帧率、触发源、解串器型号、CSI 通道分配、存储介质与写入速度。只有这些参数全部闭合,后续的同步采集与标定才有稳定的基础。