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参考资料

通过以太网流式传输摄像头数据

摄像头数据还可以通过以太网流式传输,而不是流式传输到连接到同一 SoC 的显示器。接收端可以是另一个 AM62A/AM62P 处理器,也可以是主机 PC。以下是通过以太网流式传输摄像头数据的示例(为简单起见,示例中使用了两个摄像头)(请注意流水线中使用的编码器插件):

gst-launch-1.0 \
v4l2src device=/dev/video2 io-mode=5 ! video/x-bayer,width=1920,height=1080,framerate=30/1,format=bggr ! queue leaky=2 ! \
tiovxisp sensor-name=SENSOR_SONY_IMX219_RPI dcc-isp-file=/opt/imaging/imx219/dcc_viss_1920x1080.bin \
sink_0::dcc-2a-file=/opt/imaging/imx219/dcc_2a_1920x1080.bin sink_0::device=/dev/v4l-subdev9 ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink port=5000 host=<receiving IP address> \
v4l2src device=/dev/video3 io-mode=5 ! video/x-bayer,width=1920,height=1080,framerate=30/1,format=bggr ! queue leaky=2 ! \
tiovxisp sensor-name=SENSOR_SONY_IMX219_RPI dcc-isp-file=/opt/imaging/imx219/dcc_viss_1920x1080.bin \
sink_0::dcc-2a-file=/opt/imaging/imx219/dcc_2a_1920x1080.bin sink_0::device=/dev/v4l-subdev5 ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! v4l2h264enc ! rtph264pay ! udpsink port=5001 host=<receiving IP address>

以下是接收摄像头数据并流式传输到另一 AM62A/AM62P 处理器上的显示器的示例:

gst-launch-1.0 -v \
udpsrc port=5000 ! 'application/x-rtp, encoding-name=H264, payload=96' ! rtph264depay ! avdec_h264 ! queue ! videoconvert ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080 ! queue ! mosaic.sink_0 \
udpsrc port=5001 ! 'application/x-rtp, encoding-name=H264, payload=96' ! rtph264depay ! avdec_h264 ! queue ! videoconvert ! queue ! \
video/x-raw,format=NV12,width=1920,height=1080 ! queue ! mosaic.sink_1 \
tiovxmosaic name=mosaic \
sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<960>" sink_0::heights="<540>" \
sink_1::startx="<960>" sink_1::starty="<540>" sink_1::widths="<960>" sink_1::heights="<540>" ! \
queue ! kmssink driver-name=tidss sync=false