德州仪器 AM6x 正在开发多摄像头
规格
- 产品名称:AM6x系列器件
- 支持的相机类型:AM62A(带或不带内置 ISP)、AM62P(带内置 ISP)
- 摄像机输出数据:AM62A(Raw/YUV/RGB)、AM62P(YUV/RGB)
- ISP HWA:AM62A(是)、AM62P(否)
- 深度学习 HWA:AM62A(是),AM62P(否)
- 3-D 图形 HWA:AM62A(否)、AM62P(是)
AM6x 多摄像头应用简介:
- 嵌入式摄像机在现代视觉系统中发挥着至关重要的作用。
- 在系统中使用多个摄像机可以增强功能并实现单个摄像机无法完成的任务。
使用多个摄像机的应用:
- 安全监控: 增强监控覆盖范围、物体跟踪和识别准确性。
- 环绕 View: 实现立体视觉,以完成障碍物检测和物体操纵等任务。
- 客舱记录器和摄像镜系统: 提供更大的覆盖范围并消除盲点。
- 医学影像: 提高手术导航和内窥镜检查的精度。
- 无人机和航空成像: 从不同角度捕捉高分辨率图像,用于各种应用。
将多个 CSI-2 摄像头连接到 SoC:
要将多个 CSI-2 摄像头连接到 SoC,请遵循用户手册中的指南。确保每个摄像头正确对齐并连接到 SoC 上的指定端口。
应用说明
在 AM6x 上开发多摄像头应用程序
徐建中、库泰巴·萨利赫
抽象的
本报告介绍了在 AM2x 系列器件上使用多个 CSI-6 摄像头进行应用开发。报告还介绍了一个基于 AM4A SoC 的 62 个摄像头进行深度学习物体检测的参考设计,并进行了性能分析。该设计的一般原理也适用于其他带有 CSI-2 接口的 SoC,例如 AM62x 和 AM62P。
介绍
嵌入式相机在现代视觉系统中发挥着重要作用。在系统中使用多个相机可以扩展这些系统的功能,并实现单个相机无法实现的功能。以下是一些示例amp使用多个嵌入式摄像头的应用程序:
- 安全监控:策略性放置的多个摄像头提供全面的监控覆盖。它们能够实现全景 view减少盲点,提高物体跟踪和识别的准确性,提高整体安全措施。
- 环绕 View:使用多个摄像头创建立体视觉设置,从而获取三维信息并估算深度。这对于自动驾驶汽车中的障碍物检测、机器人中的精确物体操控以及增强现实体验的真实感等任务至关重要。
- 车内记录仪和后视镜摄像头系统:配备多个摄像头的车内记录仪可以使用单个处理器提供更大的覆盖范围。同样,配备两个或更多摄像头的后视镜摄像头系统可以扩大驾驶员的视野。 view 并消除汽车各侧面的盲点。
- 医学成像:多台摄像机可用于医学成像,执行手术导航等任务,为外科医生提供多个视角,从而提高手术精度。在内窥镜检查中,多台摄像机可以对内脏进行全面检查。
- 无人机和航拍:无人机通常配备多个摄像头,可以从不同角度捕捉高分辨率图像或视频。这在航拍、农业监测和土地测量等应用中非常有用。
- 随着微处理器的进步,多个摄像头可以集成到单个片上系统中。
SoC(系统级芯片)提供紧凑高效的解决方案。AM62Ax SoC 具有高性能视频/视觉处理和深度学习加速功能,是上述用例的理想选择。另一款 AM6x 器件 AM62P 专为高性能嵌入式 3D 显示应用打造。AM3P 配备 62D 图形加速功能,可轻松拼接来自多个摄像头的图像,并生成高分辨率全景图像。 viewAM62A/AM62P SoC 的创新特性已在各种出版物中介绍,例如 [4]、[5]、[6] 等。本应用说明不会重复这些特性描述,而是重点介绍如何将多个 CSI-2 摄像头集成到 AM62A/AM62P 上的嵌入式视觉应用中。 - 表 1-1 显示了 AM62A 和 AM62P 在图像处理方面的主要区别。
表 1-1. AM62A 和 AM62P 在图像处理方面的差异
系统级芯片 | AM62A | AM62P |
支持的相机类型 | 有或无内置 ISP | 内置ISP |
相机输出数据 | 原始/YUV/RGB | YUV/RGB |
ISP HWA | 是的 | 不 |
深度学习HWA | 是的 | 不 |
3D图形HWA | 不 | 是的 |
将多个 CSI-2 摄像头连接到 SoC
AM6x SoC 上的摄像头子系统包含以下组件,如图 2-1 所示:
- MIPI D-PHY 接收器:接收来自外部摄像头的视频流,支持 1.5 条数据通道,每条数据通道最高 4 Gbps。
- CSI-2 接收器 (RX):从 D-PHY 接收器接收视频流,并直接将视频流发送到 ISP 或将数据转储到 DDR 内存。该模块最多支持 16 个虚拟通道。
- SHIM:一个 DMA 封装器,允许将捕获的流通过 DMA 发送到内存。此封装器可以创建多个 DMA 上下文,每个上下文对应 CSI-2 接收器的一个虚拟通道。
即使 SoC 上只有一个 CSI-6 RX 接口,AM2x 也可以通过使用 CSI-2 RX 的虚拟通道来支持多个摄像头。需要一个外部 CSI-2 聚合组件来合并多个摄像头流并将其发送到单个 SoC。可以使用两种类型的 CSI-2 聚合解决方案,如下文所述。
使用 SerDes 的 CSI-2 聚合器
组合多个摄像头数据流的一种方法是使用序列化和反序列化 (SerDes) 解决方案。每个摄像头的 CSI-2 数据由串行器转换并通过线缆传输。反序列化器接收从线缆(每个摄像头一根线缆)传输的所有序列化数据,将数据流转换回 CSI-2 数据,然后将交错的 CSI-2 数据流发送到 SoC 上的单个 CSI-2 RX 接口。每个摄像头数据流都由一个唯一的虚拟通道标识。这种聚合解决方案还具有额外的优势,允许从摄像头到 SoC 的远距离连接,最远可达 15 米。
AM3x Linux SDK 支持的 FPD-Link 或 V6-Link 串行器和解串器 (SerDes) 是此类 CSI-2 聚合解决方案中最流行的技术。FPD-Link 和 V3-Link 解串器均具有反向通道,可用于发送帧同步信号以同步所有摄像机,如 [7] 中所述。
图 2-2 显示了一个 examp使用 SerDes 将多个摄像头连接到单个 AM6x SoC 的例子。
前任amp该聚合解决方案的示例可在 Arducam V3Link 摄像头解决方案套件中找到。该套件包含一个可聚合 4 个 CSI-2 摄像头流的解串器集线器,以及 4 对 V3link 串行器和 IMX219 摄像头,包括 FAKRA 同轴电缆和 22 针 FPC 电缆。稍后讨论的参考设计基于此套件构建。
不使用 SerDes 的 CSI-2 聚合器
这种类型的聚合器可以直接与多个 MIPI CSI-2 摄像头连接,并将所有摄像头的数据聚合到单个 CSI-2 输出流。
图 2-3 显示了一个 examp此类系统的例子。此类聚合解决方案不使用任何串行器/解串器,但受限于CSI-2数据传输的最大距离,最大距离为30厘米。AM6x Linux SDK不支持此类CSI-2聚合器。
在软件中启用多个摄像头
相机子系统软件架构
图 3-1 显示了 AM62A/AM62P Linux SDK 中的摄像头采集系统软件的高级框图,与图 2-2 中的硬件系统相对应。
- 该软件架构使 SoC 能够使用 SerDes 接收多个摄像头数据流,如图 2-2 所示。FPD-Link/V3-Link SerDes 为每个摄像头分配唯一的 I2C 地址和虚拟通道。应为每个摄像头创建一个包含唯一 I2C 地址的唯一设备树覆盖层。CSI-2 RX 驱动程序使用唯一的虚拟通道号识别每个摄像头,并为每个摄像头数据流创建一个 DMA 上下文。每个 DMA 上下文都会创建一个视频节点。然后,系统会接收来自每个摄像头的数据,并使用 DMA 将其存储到相应的内存中。用户空间应用程序使用与每个摄像头对应的视频节点来访问摄像头数据。例如,amp第四章“参考设计”给出了使用该软件架构的文件。
- 任何符合 V4L2 框架的特定传感器驱动程序都可以在此架构中即插即用。有关如何将新的传感器驱动程序集成到 Linux SDK 中,请参阅 [8]。
图像管道软件架构
- AM6x Linux SDK 提供了 GStreamer (GST) 框架,可用于服务空间,集成各种应用的图像处理组件。SoC 上的硬件加速器 (HWA),例如视觉预处理加速器 (VPAC) 或 ISP、视频编码器/解码器以及深度学习计算引擎,都可以通过 GST 访问。 pluginsVPAC(ISP)本身有多个Block,包括视觉成像子系统(VISS)、镜头畸变校正(LDC)、多标量(MSC),每个Block对应一个GST插件。
- 图 3-2 显示了从摄像头到编码或深度
AM62A 上的学习应用程序。有关端到端数据流的更多详细信息,请参阅 EdgeAI SDK 文档。
对于 AM62P,图像管道更简单,因为 AM62P 上没有 ISP。
通过为每个摄像头创建一个视频节点,基于 GStreamer 的图像流水线可以同时处理多个摄像头输入(通过同一个 CSI-2 RX 接口连接)。下一章将介绍使用 GStreamer 实现多摄像头应用的参考设计。
参考设计
本章介绍了在 AM62A EVM 上运行多摄像头应用程序的参考设计,使用 Arducam V3Link 摄像头解决方案套件将 4 个 CSI-2 摄像头连接到 AM62A,并对所有 4 个摄像头运行物体检测。
支持的相机
Arducam V3Link 套件兼容基于 FPD-Link/V3-Link 的相机以及兼容 Raspberry Pi 的 CSI-2 相机。以下相机已测试:
- D3 工程 D3RCM-IMX390-953
- Leopard Imaging LI-OV2312-FPDLINKIII-110H
- Arducam V219Link 相机解决方案套件中的 IMX3 相机
设置四个 IMX219 摄像头
按照 AM62A 入门套件 EVM 快速入门指南中的说明,设置 SK-AM62A-LP EVM (AM62A SK) 和 ArduCam V3Link 摄像头解决方案快速入门指南,并通过 V62Link 套件将摄像头连接到 AM3A SK。确保柔性电缆、摄像头、V3Link 开发板和 AM62A SK 上的引脚均正确对齐。
图 4-1 显示了本报告中参考设计所用的设置。该设置中的主要组件包括:
- 1X SK-AM62A-LP EVM板
- 1X Arducam V3Link d-ch 适配器板
- 连接 Arducam V3Link 和 SK-AM62A 的 FPC 电缆
- 4X V3Link 相机适配器(串行器)
- 4X RF 同轴电缆,用于将 V3Link 串行器连接到 V3Link d-ch 套件
- 4个IMX219摄像头
- 4X CSI-2 22 针电缆,用于将相机连接到串行器
- 电缆:HDMI 电缆、USB-C 为 SK-AM62A-LP 供电以及为 V12Link d-ch 套件供电的 3V 电源
- 图 4-1 中未显示的其他组件:micro-SD 卡、用于访问 SK-AM62A-LP 的 micro-USB 线以及用于流媒体的以太网
配置摄像头和CSI-2 RX接口
按照 Arducam V3Link 快速入门指南中的说明设置软件。运行相机设置脚本 setup-imx219.sh 后,相机的格式、CSI-2 RX 接口格式以及每个相机到相应视频节点的路由都会被正确配置。系统会为四个 IMX219 相机创建四个视频节点。命令“v4l2-ctl –list-devices”显示所有 V4L2 视频设备,如下所示:
tiscsi6rx 下有 1 个视频节点和 2 个媒体节点。每个视频节点对应一个由 CSI2 RX 驱动程序分配的 DMA 上下文。在这 6 个视频节点中,有 4 个用于 4 个 IMX219 摄像头,如下面的媒体管道拓扑所示:
如上所示,媒体实体 30102000.ticsi2rx 有 6 个源焊盘,但仅使用前 4 个,每个焊盘用于一个 IMX219。媒体管道拓扑也可以通过图形方式说明。运行以下命令生成点 file:
然后在 Linux 主机上运行以下命令来生成 PNG file:
图 4-2 是使用上面给出的命令生成的图。图 3-1 的软件架构中的组件可以在该图中找到。
四台摄像机直播
硬件和软件设置正确后,多摄像头应用即可在用户空间运行。对于 AM62A,必须调整 ISP 才能获得良好的图像质量。有关如何进行 ISP 调整,请参阅《AM6xA ISP 调整指南》。以下章节介绍了示例amp将相机数据传输到显示器、将相机数据传输到网络以及将相机数据存储到 files.
将相机数据传输至显示器
该多摄像头系统的一个基本应用是将所有摄像头的视频流式传输到连接到同一 SoC 的显示器。以下是 GStreamer 管道示例amp将四个 IMX219 流式传输到显示器(管道中的视频节点编号和 v4l-subdev 编号可能会随着重启而发生变化)。
通过以太网传输摄像机数据
除了将数据流传输到连接到同一 SoC 的显示器之外,相机数据还可以通过以太网传输。接收端可以是另一个 AM62A/AM62P 处理器,也可以是主机 PC。以下是示例amp通过以太网传输摄像机数据的文件(为简单起见,使用两个摄像机)(请注意管道中使用的编码器插件):
以下是一个示例amp接收摄像头数据并将数据流传输到另一个 AM62A/AM62P 处理器上的显示器的示例:
将相机数据存储到 Files
相机数据可以存储在本地,而不是通过显示器或网络传输 files. 下面的管道将每个摄像头的数据存储到 file (使用两个摄像头作为例子ample 为简单起见)。
多摄像头深度学习推理
AM62A 配备深度学习加速器 (C7x-MMA),最高可达 62 TOPS,能够运行各种类型的深度学习模型,用于分类、目标检测、语义分割等。本节将展示 AMXNUMXA 如何同时在四个不同的摄像头信号上运行四个深度学习模型。
模型选择
TI 的 EdgeAI-ModelZoo 提供数百个先进的模型,这些模型可以从原始训练框架转换/导出为易于嵌入的格式,以便卸载到 C7x-MMA 深度学习加速器。基于云端的 Edge AI Studio 模型分析器提供了一个易于使用的“模型选择”工具。该工具会动态更新,以包含 TI EdgeAI-ModelZoo 支持的所有模型。该工具无需任何经验,并提供易于使用的界面,方便用户输入所需模型所需的特性。
本次多摄像头深度学习实验选择了 TFL-OD-2000-ssd-mobV1-coco-mlperf 模型。该多目标检测模型基于 TensorFlow 框架开发,输入分辨率为 300×300。表 4-1 展示了该模型在包含约 80 个不同类别的 cCOCO 数据集上训练时的重要特征。
表 4-1. TFL-OD-2000-ssd-mobV1-coco-mlperf 型号的突出特点。
模型 | 任务 | 解决 | 第一人称射击游戏 | 平均有效位点 50%
COCO 上的准确率 |
延迟/帧(毫秒) | DDR带宽
利用率(MB/帧) |
TFL-OD-2000-ssd-
mobV1-coco-mlperf |
多目标检测 | 300×300 | ~152 | 15.9 | 6.5 | 18.839 |
管道设置
图 4-3 展示了 4 摄像头深度学习 GStreamer 流水线。TI 提供了一套 GStreamer plugins 可以将部分媒体处理和深度学习推理任务转移到硬件加速器上。例如,amp这些文件 plugins 包括 tiovxisp、tiovxmultiscaler、tiovxmosaic 和 tidlinferer。图 4-3 中的管道包含所有必需的 plugins 用于 4 路摄像头输入的多路径 GStreamer 流水线,每个输入都包含媒体预处理、深度学习推理和后处理。重复的 plugins 为了更容易演示,每个摄像机路径都堆叠在图表中。
可用的硬件资源均匀分布在四条摄像头路径上。例如,AM62A 包含两个图像多尺度器:MSC0 和 MSC1。流水线明确指定 MSC0 用于处理摄像头 1 和摄像头 2 路径,而 MSC1 则专用于摄像头 3 和摄像头 4。
四个摄像头管道的输出经过缩小处理,并使用 tiovxmosaic 插件连接在一起。输出显示在单个屏幕上。图 4-4 展示了四个摄像头的输出,其中深度学习模型正在运行物体检测。每个管道(摄像头)的运行速度为 30 FPS,总计 120 FPS。
接下来是图 4-3 所示的多摄像头深度学习用例的完整流水线脚本。
性能分析
使用 V3Link 板和 AM62A SK 的四台摄像机的设置在各种应用场景中进行了测试,包括直接在屏幕上显示、通过以太网(四个 UDP 通道)进行流式传输、录制到 4 个单独的 file并结合深度学习推理。在每次实验中,我们都监测帧速率和 CPU 核心的利用率,以探索整个系统的功能。
如图 4-4 所示,深度学习流水线使用 tiperfoverlay GStreamer 插件,在屏幕底部以条形图的形式显示 CPU 核心负载。默认情况下,该图表每两秒更新一次,以利用率百分比的形式显示负载。tage. 除了 tiperfoverlay GStreamer 插件之外,perf_stats 工具是第二个选项,可以直接在终端上显示核心性能,并可以选择保存到 file与 tTiperfoverlays 相比,此工具更准确,因为后者会在 ARMm 内核和 DDR 上增加额外负载来绘制图形并将其叠加到屏幕上。perf_stats 工具主要用于收集本文档中所有测试用例的硬件利用率结果。这些测试中研究的一些重要处理内核和加速器包括主处理器(四个 A53 Arm 内核 @ 1.25GHz)、深度学习加速器(C7x-MMA @ 850MHz)、带有 VISS 和多尺度器(MSC0 和 MSC1)的 VPAC (ISP) 以及 DDR 操作。
表 5-1 显示了使用 AM62A 和四个摄像头时的性能和资源利用率,用于三种用例,包括将四个摄像头的视频流传输到显示器、通过以太网进行视频流传输以及录制到四个单独的 files. 每个用例执行两项测试:仅使用摄像头和使用深度学习推理。此外,表 5-1 中的第一行显示在 AM62A 上仅运行操作系统而无任何用户应用程序时的硬件利用率。这用作在评估其他测试用例的硬件利用率时进行比较的基准。如表所示,四个具有深度学习和屏幕显示的摄像头每个以 30 FPS 运行,四个摄像头的总帧率为 120 FPS。仅使用深度学习加速器 (C86x-MMA) 全部容量的 7% 即可实现此高帧率。此外,值得注意的是,在这些实验中,深度学习加速器的主频为 850MHz 而不是 1000MHz,这仅为其最大性能的 85% 左右。
表 5-1. AM62A 与 4 个 IMX219 摄像头配合使用进行屏幕显示、以太网流传输、录制时的性能(FPS)和资源利用率 File并执行深度学习推理
应用 n | 管道(操作
) |
输出 | 第一人称射击游戏 平均管道 | 第一人称射击游戏
全部的 |
MPU A53s @ 1.25
千兆赫 [%] |
单片机R5 [%] | DLA(C7x-MMA)@850
兆赫 [%] |
视觉安全系统 [%] | MSC0 [%] | MSC1 [%] | DDR
路 [MB/秒] |
DDR
写 [MB/秒] |
DDR
总计 [MB/秒] |
没有应用程序 | 基线 无操作 | NA | NA | NA | 1.87 | 1 | 0 | 0 | 0 | 0 | 560 | 19 | 579 |
相机 仅有的 | 溪流 到屏幕 | 屏幕 | 30 | 120 | 12 | 12 | 0 | 70 | 61 | 60 | 1015 | 757 | 1782 |
通过以太网进行流传输 | UDP:4
端口 1920×1080 |
30 | 120 | 23 | 6 | 0 | 70 | 0 | 0 | 2071 | 1390 | 3461 | |
记录 到 files | 4 file1920×1080 | 30 | 120 | 25 | 3 | 0 | 70 | 0 | 0 | 2100 | 1403 | 3503 | |
凸轮 通过深度学习 | 深度学习:物体检测 MobV1-coco | 屏幕 | 30 | 120 | 38 | 25 | 86 | 71 | 85 | 82 | 2926 | 1676 | 4602 |
深度学习:对象检测 MobV1-coco 和 Stream over Ethernet | UDP:4
端口 1920×1080 |
28 | 112 | 84 | 20 | 99 | 66 | 65 | 72 | 4157 | 2563 | 6720 | |
深度学习:MobV1-coco物体检测及记录 files | 4 file1920×1080 | 28 | 112 | 87 | 22 | 98 | 75 | 82 | 61 | 2024 | 2458 | 6482 |
概括
本应用报告介绍了如何在 AM6x 系列设备上实现多摄像头应用。报告提供了一个基于 Arducam V3Link 摄像头解决方案套件和 AM62A SK EVM 的参考设计,其中包含多个使用四个 IMX219 摄像头的摄像头应用,例如流媒体和物体检测。建议用户购买 Arducam 的 V3Link 摄像头解决方案套件,并复制这些示例。amples。该报告还详细分析了 AM62A 使用四台摄像机在不同配置下的性能,包括显示到屏幕、通过以太网传输以及录制到 file它还展示了AM62A在四个独立摄像头流上并行执行深度学习推理的能力。如果您对运行这些示例有任何疑问,amples,请在 TI E2E 论坛上提交询问。
参考
- AM62A 入门套件 EVM 快速入门指南
- ArduCam V3Link 摄像头解决方案快速入门指南
- AM62A 的 Edge AI SDK 文档
- 采用节能 AM62A 处理器的边缘 AI 智能摄像头
- AM62A 上的摄像头镜像系统
- AM62A 上的驾驶员和乘员监控系统
- 四通道摄像头环绕应用 View 和CMS摄像系统
- AM62Ax Linux 学院关于启用 CIS-2 传感器
- 边缘人工智能模型Zoo
- 边缘人工智能工作室
- Perf_stats工具
本应用说明中引用的 TI 部件:
- https://www.ti.com/product/AM62A7
- https://www.ti.com/product/AM62A7-Q1
- https://www.ti.com/product/AM62A3
- https://www.ti.com/product/AM62A3-Q1
- https://www.ti.com/product/AM62P
- https://www.ti.com/product/AM62P-Q1
- https://www.ti.com/product/DS90UB960-Q1
- https://www.ti.com/product/DS90UB953-Q1
- https://www.ti.com/product/TDES960
- https://www.ti.com/product/TSER953
重要通知及免责声明
TI 提供技术和可靠性数据(包括数据表)、设计资源(包括参考设计)、应用或其他设计建议, WEB 工具、安全信息和其他资源“按原样”并带有所有缺陷,并且不提供所有明示和暗示的保证,包括但不限于适销性、针对特定利益相关方的适用性的任何暗示保证.
这些资源适用于熟练使用 TI 产品进行设计的开发人员。您应自行负责
- 为您的应用选择合适的 TI 产品,
- 设计、验证和测试您的应用程序,以及
- 确保您的应用程序符合适用标准以及任何其他安全、安保、监管或其他要求。
这些资源如有变更,恕不另行通知。TI 仅允许您使用这些资源来开发使用资源中所述 TI 产品的应用程序。禁止以其他方式复制和展示这些资源。TI 未授予任何其他 TI 知识产权或任何第三方知识产权的许可。对于因您使用这些资源而产生的任何索赔、损害、费用、损失和责任,TI 不承担任何责任,您将全额赔偿 TI 及其代表。
TI 的产品按照 TI 的销售条款或其他适用条款提供 钛网 或与此类 TI 产品一起提供。 TI 提供的这些资源不会扩展或以其他方式改变 TI 对 TI 产品的适用保证或保证免责声明。
TI 反对并拒绝您可能提出的任何附加或不同条款。
重要通知
- 邮寄地址:Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
- 版权所有 © 2024,德州仪器公司
常见问题
问:我可以将任何类型的相机与 AM6x 系列设备一起使用吗?
AM6x 系列支持不同类型的相机,包括内置或不内置 ISP 的相机。有关受支持相机类型的更多详细信息,请参阅规格说明。
:AM62A和AM62P在图像处理方面的主要区别是什么?
主要差异包括支持的相机类型、相机输出数据、ISP HWA、深度学习 HWA 和 3D 图形 HWA 的存在情况。有关详细比较,请参阅规格部分。
文件/资源
![]() |
德州仪器 AM6x 正在开发多摄像头 [pdf] 用户指南 AM62A、AM62P、AM6x 开发多相机、AM6x、开发多相机、多相机、相机 |