精确的帧同步是多相机感知系统的关键需求之一。无论是构建 3D 重建管线、多视角 AI 应用、传感器融合系统还是大规模相机阵列,每个相机都需要在同一瞬间捕获场景。
随着最新版 DepthAI 和 OAK 4 软件的发布,PTP(精确时间协议)帧同步现已支持整个 OAK 4 相机产品线。虽然最初仅在搭载OG05B10 全局快门传感器的 OAK4-CS上引入,但该功能现已扩展至所有 OAK 4 相机。
本文中,我们将解释 PTP 帧同步为何重要、如何评估同步性能,并分享多个真实测试配置的精度测试结果。
为什么需要 PTP 帧同步?
传统上,多相机同步使用专用的FSYNC 硬件信号分发到每个设备。硬件同步精度出色,但需要额外布线,对于分布式部署或现成的以太网系统来说并不总是实用。
PTP(IEEE 1588 精确时间协议)通过以太网同步时钟来解决这一问题。一旦每台 OAK 4 设备共享统一的时间基准,相机就可以安排同时捕获图像,而无需专用的同步线缆。
这使得以下场景成为可能:
• 多相机 AI 部署
• 立体视觉和环视系统
• 大规模分布式相机安装
• 利用标准以太网基础设施简化安装
对于许多部署场景,省去同步布线可显著简化安装,同时仍能提供远低于毫秒级的同步精度。
软件要求
PTP 帧同步需要:
•DepthAI 3.8.0或更高版本
•OAK OS 1.35.0或更高版本
网络设备的重要性
PTP 同步取决于网络基础设施的质量。交换机必须正确支持 PTP 流量,最好能提供硬件时间戳或数据包优先级处理。
以下交换机已经过 OAK4 PTP 同步测试验证:
•MikroTik CRS312-4C+8XG(我们所有测试中使用,但需要额外的 PoE+ 供电模块)
•TP-Link TL-SG1005P
•Ubiquiti Flex 2.5G PoE(4 端口)
•TP-Link TL-SG1008P
使用不支持 PTP 的非管理型交换机会显著降低同步性能。为了获得更好的同步性能,请使用支持 PTP 的交换机,它能够优先处理 PTP 数据包,并通过更新数据包在交换机内的驻留时间校正值来重新打时间戳。详情请参阅我们的。
测试方法
为了评估同步精度,我们在所有测试配置中采用了相同的方法。
每个测试设置按以下步骤进行:
1. 等待 PTP 达到稳定同步状态。
2. 从所有设备流式传输同步帧。
3. 收集每台相机的时间戳。
4. 计算所有 CAM_A 流(或适用时所有相机流)之间的时间戳差值。
5. 忽略初始稳定期。
6. 计算:
7. 平均时间戳差值
8. 中位数
9. P99
10. 平均帧率
11. 生成同步图表。
虽然平均同步值能提供参考,但P99能更好地反映应用实际经历的最差情况下的时序变化。
测试 1 —— 两台 OAK 4-CS 相机(OG05B10)
我们的首次验证使用了两台配备OG05B10 全局快门传感器的OAK4-CS相机。
测试结果
•平均同步差值:64.12 µs
•P99:237.00 µs
这展示了通过以太网连接的两台独立相机之间实现了亚 100 µs 的平均同步精度。
测试 2 —— 八台 OAK 4 D 相机在不同网络负载下的表现
第二个实验主要研究网络流量如何影响同步质量。
八台配备IMX586 传感器的OAK 4 D设备通过一台配置了 PTP 流量优先和硬件重打时间戳功能的MikroTik CRS312-4C+8XG交换机连接。
▲ 八台 OAK4-D 设备 PTP 同步测试设置
测试中使用不同的编码模式来有意改变以太网带宽占用率。
如预期所示,网络拥塞加剧导致额外的延迟变化,同步精度降低。测试结果也突出了一个重要的部署建议:
对于多设备 PTP 部署,强烈推荐使用压缩视频(H.264/H.265)而非流式传输原始帧或 MJPEG 帧,因为较低的网络带宽占用有助于保持同步精度。
结果显示,H.264 和 H.265 即使在八台相机同时工作的情况下也能保持出色的同步性能,而较高分辨率下的 MJPEG 会显著增加网络负载和同步误差。
测试 3 —— 同步所有相机流
最后,我们在给网络施压的同时,评估了八台 OAK 4 D设备上全部三个相机流(CAM_A、CAM_B 和 CAM_C)的同步情况。
不同于仅评估每台设备的一个相机,此测试测量了整个相机阵列的同步精度。
测试结果
•平均同步差值:195.89 µs
•P99 差值:504.05 µs
考虑到该设置在重网络负载下同步了24 路同时工作的相机流,实测性能表明 PTP 即使在严苛的部署场景中也能保持稳定。
关键发现
•网络负载很关键随着相机数量和以太网流量的增加,PTP 同步精度会因数据包延迟变化增大而逐渐降低。
•支持 PTP 的交换机具备 PTP 流量优先级和硬件重打时间戳功能的交换机(如 MikroTik CRS312-4C+8XG)能通过最小化交换机引入的时序误差来显著提升同步精度。
•使用视频编码对于较大规模的多相机部署,流式传输 H.264 或 H.265 而非原始帧可降低网络负载并改善 PTP 性能。在我们的测试中,H.265 取得了最佳综合效果。
上手运行
PTP 同步使用与外部 FSYNC 相同的多设备同步示例。
首先,将 RVC 和 depthai 更新到最新版本:
oakctl device update # 安装最新 RVC 到设备启用主/从模式。
SSH 登录主设备并启用主模式:
ssh root@IP_ADDRESS # SSH 登录主设备 luxonis-ptp-config enable luxonis-ptp-config mode masterSSH 登录从设备并启用从模式:
ssh root@IP_ADDRESS # SSH 登录从设备 luxonis-ptp-config enable luxonis-ptp-config mode slave然后回到主机端,按照depthai-core示例的 中的设置说明操作,随后使用 --ptp-sync 选项运行示例:
git clone https://github.com/luxonis/depthai-core.git nano depthai-core/examples/README.md # 按 README 准备环境,然后 python3 examples/python/Misc/MultiDevice/multi_device_frame_sync.py --ptp-sync # 运行 PTP 示例该示例会自动配置跨多台 OAK4 设备使用 PTP 进行同步帧捕获。
OAK 4 PTP 同步的当前状态
PTP 同步现已支持整个 OAK 4 系列,使得无需专用同步布线即可构建同步多相机系统。
我们的测试表明:
• 支持所有 OAK 4 相机型号
• 在推荐的网络条件下,典型的同步精度远小于 100 µs
• 在八相机部署中展现出出色的可扩展性
• 使用 H.264 或 H.265 视频编码以最小化网络拥塞时可获得最佳性能
对于已依赖以太网基础设施的部署,PTP 为外部硬件同步提供了一种实用且高精度的替代方案,能够以显著简化的安装方式实现大规模同步相机系统。
【End~】