ZHCADU3 February   2024 AM62A3 , AM62A3-Q1 , AM62A7 , AM62A7-Q1 , AM62P , AM62P-Q1 , DS90UB953A-Q1 , DS90UB960-Q1 , TDES960 , TSER953

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2将多个 CSI-2 摄像头连接到 SoC
    1. 2.1 使用 SerDes 的 CSI-2 聚合器
    2. 2.2 不使用 SerDes 的 CSI-2 聚合器
  6. 3在软件中启用多个摄像头
    1. 3.1 摄像头子系统软件架构
    2. 3.2 图像流水线软件架构
  7. 4参考设计
    1. 4.1 支持的摄像头
    2. 4.2 设置四个 IMX219 摄像头
    3. 4.3 配置摄像头和 CSI-2 RX 接口
    4. 4.4 从四个摄像头进行流式传输
      1. 4.4.1 将摄像头数据流化传输到显示器
      2. 4.4.2 通过以太网流式传输摄像头数据
      3. 4.4.3 将摄像头数据存储到文件
    5. 4.5 多摄像头深度学习推理
      1. 4.5.1 模型选择
      2. 4.5.2 流水线设置
  8. 5性能分析
  9. 6总结
  10. 7参考资料

配置摄像头和 CSI-2 RX 接口

按照 Arducam V3Link 快速入门指南 中的说明设置软件。运行摄像头设置脚本 setup-imx219.sh 后,摄像头格式、CSI-2 RX 接口格式以及从每个摄像头到相应视频节点的路由都将得到正确配置。为四个 IMX219 摄像头创建了四个视频节点。运行命令“v4l2-ctl --list-devices”会显示所有 V4L2 视频设备,如下所示:

root@am62axx-evm:~# v4l2-ctl --list-devices
j721e-csi2rx (platform:30102000.ticsi2rx):
        /dev/video2
        /dev/video3
        /dev/video4
        /dev/video5
        /dev/video6
        /dev/video7
        /dev/media0

wave5-dec (platform:wave5-dec):
        /dev/video0

wave5-enc (platform:wave5-enc):
        /dev/video1

tiscsi2rx 下有 6 个视频节点和 1 个媒体节点。每个视频节点对应于 CSI2 RX 驱动器分配的一个 DMA 上下文。在 6 个视频节点中,4 个节点用于 4 个 IMX219 摄像头,如下面的媒体管线拓扑所示:

root@am62axx-evm:~# media-ctl -p

Device topology
- entity 1: 30102000.ticsi2rx (7 pads, 7 links, 4 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        routes:
                0/0 -> 1/0 [ACTIVE]
                0/1 -> 2/0 [ACTIVE]
                0/2 -> 3/0 [ACTIVE]
                0/3 -> 4/0 [ACTIVE]
        pad0: Sink
                [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                [stream:1 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                [stream:2 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                [stream:3 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                <- "cdns_csi2rx.30101000.csi-bridge":1 [ENABLED,IMMUTABLE]
        pad1: Source
                [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                -> "30102000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE]
        pad2: Source
                [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                -> "30102000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE]
        pad3: Source
                [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                -> "30102000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE]
        pad4: Source
                [stream:0 fmt:UYVY8_1X16/640x480 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                -> "30102000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE]
        pad5: Source
                -> "30102000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE]
        pad6: Source
                -> "30102000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE]

如上所示,媒体实体 30102000.ticsi2rx 有 6 个 source pad,但仅使用前 4 个 source pad,每个 source pad 对应于一个 IMX219。媒体管线拓扑也可以用图形方式表示。运行以下命令以生成 dot 文件:

root@am62axx-evm:~# media-ctl --print-dot > media.dot

然后在 Linux 主机 PC 上运行以下命令以生成 png 文件:

$ dot -Tpng media-top.dot -o media-top.png

图 4-2 是使用上述命令生成的图片。图 3-1 软件架构中的组件可在该图中找到。

GUID-20240205-SS0I-ZSJ5-RX37-TGDG2C4KGQRJ-low.svg图 4-2 多摄像头系统的媒体拓扑