本报告介绍了在 AM6x 系列器件上使用多个 CSI-2 摄像头进行的应用开发。文中介绍了在 AM62A SoC 上使用 4 个摄像头通过深度学习进行物体检测的参考设计以及相应的性能分析。该设计的一般原理适用于具有 CSI-2 接口的其他 SoC,例如 AM62x 和 AM62P。
HDMI™is a TM ofHDMI Licensing LLC.
USB-C®is a reg TM ofUSB Implementers Forum.
Ethernet®is a reg TM ofXerox Corporation.
Other TMs
嵌入式摄像头在现代视觉系统中发挥着重要作用。在一个系统中使用多个摄像头可以扩展这些系统的能力,并实现单个摄像头无法实现的功能。以下是一些使用多个嵌入式摄像头的应用示例:
安全监控:有策略地布置多个摄像头可以提供全方位的监控覆盖。这些摄像头可以实现全景视图,减少盲区,并提高物体跟踪和识别的准确性,从而改善整体安全措施。
环视:使用多个摄像头可以搭建立体视觉系统,从而提供三维信息和深度估算。对于自动驾驶车辆中的障碍物检测、机器人中的精确对象操作以及增强现实体验的逼真度等任务,此功能至关重要。
车厢记录仪和摄像头后视镜系统:具有多个摄像头的车厢记录仪可以利用单个处理器提供更全面的监控。同样,具有两个或更多摄像头的摄像头后视镜系统可以扩大驾驶员的视野,消除汽车四周的盲区。
医疗成像:医疗成像应用可以使用多个摄像头执行手术导航等任务,为外科医生提供多个视角,以提高手术精度。在内窥镜检查中,利用多个摄像头可以实现对内部器官的全面检查。
无人机和航空成像:无人机通常配备多个摄像头,以便从不同的角度拍摄高分辨率图像或视频。这在航空摄影、农业监控和土地测量等应用中非常有用。
随着微处理器的发展,可将多个摄像头集成到单个片上系统 (SoC) 中,从而提供紧凑高效的设计。AM62Ax SoC 具有高性能视频和视觉处理以及深度学习加速功能,非常适合上述用例。另一款 AM6x 器件(即 AM62P)专为高性能嵌入式 3D 显示应用而构建。AM62P 配备 3D 图形加速功能,可以轻松地将来自多个摄像头的图像拼接在一起,形成高分辨率的全景图。AM62A/AM62P SoC 的出色功能在各种出版物中都有介绍,比如 [4]、[5]、[6] 等。本应用手册不再重复介绍这些特性,而是重点介绍如何将多个 CSI-2 摄像头集成到 AM62A/AM62P 上的嵌入式视觉应用中。
表 1-1 展示了 AM62A 和 AM62P 在图像处理方面的主要差异。
SoC | AM62A | AM62P |
---|---|---|
支持的摄像头类型 | 具有或不具内置 ISP | 具有内置 ISP |
摄像头输出数据 | 原始、YUV、RGB | YUV、RGB |
ISP HWA | 是 | 否 |
深度学习 HWA | 是 | 否 |
3D 图形 HWA | 否 | 是 |
如图 2-1 所示,AM6x SoC 上的摄像头子系统包含以下元件:
即使 SoC 上只有一个 CSI-2 RX 接口,也可以通过使用 CSI-2 RX 的虚拟通道在 AM6x 上支持多个摄像头(相同或不同)。需要一个外部 CSI-2 聚合元件来整合多个摄像头数据流并发送到单个 SoC。有两种类型的 CSI-2 聚合设计可供使用,具体如以下各节所述。
要将多个摄像头流进行组合,一种方法是使用串行和解串设计。来自每个摄像头的 CSI-2 数据由串行器转换,然后通过电缆进行传输。解串器在收到通过电缆(每个摄像头一根电缆)传输的所有串行化数据后,将流转换回 CSI-2 数据,然后将交错 CSI-2 流发送到 SoC 上的单个 CSI-2 RX 接口。每个摄像头流由一个唯一的虚拟通道标识。该聚合设计提供了一个额外的优势,即允许在摄像头到 SoC 之间进行长达 15m 的长距离连接。
FPD-Link 或 V3-Link 串行器和解串器(在 AM6x Linux SDK 中受支持)是此类 CSI-2 聚合设计中的常用技术。FPD-Link 和 V3-Link 解串器都有反向通道,该通道可用于发送帧同步信号来同步所有摄像头,如 [7] 中所述。
图 2-2 展示了使用串行器和解串器将多个摄像头连接到单个 AM6x SoC 的示例。
在 Arducam V3Link 摄像头解决方案套件中可以找到这种聚合设计的示例。该套件具有一个可聚合 4 个 CSI-2 摄像头流的解串器集线器,以及 4 对 V3link 串行器和 IMX219 摄像头,其中包括 FAKRA 同轴电缆和 22 引脚 FPC 电缆。后面讨论的参考设计就是在该套件上构建的。
此类聚合器可直接与多个 MIPI CSI-2 摄像头连接,并将来自所有摄像头的数据聚合到单个 CSI-2 输出流。
图 2-3 展示了此类系统的一个示例。此类聚合设计不使用任何串行器或解串器,但受到 CSI-2 数据传输最大距离(最远 30cm)的限制。AM6x Linux SDK 不支持此类 CSI-2 聚合器。
所有已连接摄像头支持的总数据吞吐量取决于 CSI-2 带宽和 ISP 带宽。