ZHCADU3A February   2024  – November 2024 AM62A1-Q1 , 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 聚合器
    3. 2.3 支持的摄像头数据吞吐量
  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参考资料
  11. 8修订历史记录

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

适用于 AM62A 的 Processor SDK Linux 支持 V3Link 板。要启用 4 个 IMX219 摄像头,请在 /run/media/BOOT-mmcblk1p1/uEnv.txt 中使用以下覆盖层 dtbo 文件:

k3-am62x-sk-csi2-v3link-fusion.dtbo  
k3-v3link-imx219-0-0.dtbo  
k3-v3link-imx219-0-1.dtbo  
k3-v3link-imx219-0-2.dtbo  
k3-v3link-imx219-0-3.dtbo

要配置摄像头和 CSI-2 Rx 接口,请运行脚本 /opt/edgeai-gst-apps/scripts/setup_cameras_v3link.sh。此脚本的运行结果如下所示:

root@am62axx-evm:/opt/edgeai-gst-apps# ./scripts/setup_cameras_v3link.sh
IMX219 Camera 0 detected
    device = /dev/video-imx219-cam0
    name = imx219
    format = [fmt:SRGGB8_1X8/1920x1080 field: none]
    subdev_id = /dev/v4l-imx219-subdev0
    isp_required = yes
    ldc_required = yes
IMX219 Camera 1 detected
    device = /dev/video-imx219-cam1
    name = imx219
    format = [fmt:SRGGB8_1X8/1920x1080 field: none]
    subdev_id = /dev/v4l-imx219-subdev1
    isp_required = yes
    ldc_required = yes
IMX219 Camera 2 detected
    device = /dev/video-imx219-cam2
    name = imx219
    format = [fmt:SRGGB8_1X8/1920x1080 field: none]
    subdev_id = /dev/v4l-imx219-subdev2
    isp_required = yes
    ldc_required = yes
IMX219 Camera 3 detected
    device = /dev/video-imx219-cam3
    name = imx219
    format = [fmt:SRGGB8_1X8/1920x1080 field: none]
    subdev_id = /dev/v4l-imx219-subdev3
    isp_required = yes
    ldc_required = yes

运行此脚本后,摄像头格式、CSI-2 RX 接口格式以及从每个摄像头到相应视频节点的路由都会得到正确配置。总共创建了 6 个视频节点。每个视频节点对应于 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 软件架构中的组件可在该图中找到。

 多摄像头系统的媒体拓扑图 4-2 多摄像头系统的媒体拓扑