This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-TDA4VM:sk-tda4vm 板、在 test.yaml 中禁用 AI 模型

Guru**** 2463030 points
Other Parts Discussed in Thread: SK-AM68, SK-TDA4VM, TDA4VM, SK-AM69

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1473362/sk-tda4vm-sk-tda4vm-board-disabling-ai-models-in-test-yaml

器件型号:SK-TDA4VM
主题中讨论的其他器件: TDA4VMSK-AM69、SK-AM68

工具与软件:

 尊敬的 TI 支持部门:

为了设置用于接收来自摄像头的视频的流水线、使用 H264编解码器压缩视频、并将其发送到以太网端口、我们使用板上示例随附的 test.yaml 文件。

title: "test"
log_level: 2
inputs:
    input0:
        source: /dev/video-usb-cam0
        #format: jpeg
        format: yuyv # uyuv
        width: 752 # 1920
        height: 416 # 1080
        framerate:  30
    input1:
        source: /dev/video-usb-cam0
        #subdev_id : /dev/v4l-rpi-subdev0
        format: yuyv
        width: 1920
        height: 1080
        framerate: 30
    input2:
        source: /opt/edgeai-test-data/videos/video0_1920_1088.h264
        format: h264
        width: 1920
        height: 1088
        framerate: 30
        loop: True
    input3:
        source: /dev/video-tc-cam0 #/dev/video2
        subdev_id : /dev/v4l-tc-subdev0 # /dev/v4l-subdev2
        #sen_id: tc358743
        #sen_name: tc358743
        format: uyuv
        width: 1280 # 1920
        height: 720 # 1080
        framerate: 60
    input4:
        source: /dev/video-usb-cam1
        format: uyuv
        width : 720
        height: 576
        framerate: 25


models:
    model0:
        model_path: /opt/model_zoo/TFL-OD-2020-ssdLite-mobDet-DSP-coco-320x320
        viz_threshold: 0.6
    model1:
        model_path: /opt/model_zoo/27725f30
    model2:
        model_path: /opt/model_zoo/ONR-OD-8220-yolox-s-lite-mmdet-coco-640x640
outputs:
    output0:
        sink: appsink #kmssink
        width: 1280 # 1920
        height: 720 # 1080
        overlay-perf-type: graph
    output1:
        sink: /opt/edgeai-test-data/output/output_videosony.mkv
        # sink: /opt/edgeai-test-data/output/img/img_%04d.jpg
        width: 1360 # 1920
        height: 768 # 1080
        # bitrate: 1000000
    output2:
        sink: remote
        width: 1920
        height: 1080
        port: 8090
        host: 192.168.168.30
        # host: 192.168.3.31
        # encoding: mp4
        encoding: h264
        bitrate: 2000000 # 4000000
    output3:
        sink: remote
        width: 752 
        height: 416
        port: 8090
        host: 192.168.168.30
        encoding: h264
        bitrate: 2000000

        #encoding: jpeg
        #overlay-perf-type: graph

        # gop-size: 25

flows:
    flow1: [input1,model0,output2]
    #flow1: [input0, model2, output3] # input1 - sony, input0 - web
    # flow2: [input0,model0,output1]
    # flow3: [input1,model1,output0]


    # gst-launch-1.0 udpsrc port=8090 ! application/x-rtp, media=video, clock-rate=90000,encoding-name=H264,payload=96 ! rtph264depay ! avdec_h264 ! autovideosink
    # root@tda4vm-sk:/opt/edgeai-gst-apps/apps_python# ./app_edgeai.py ../configs/test.yaml

但运行大约12分钟后、流量会下降。 在我添加了一个强大的风扇后,流量下降了25分钟的运行。 我觉得最主要的问题是在人工智能开模块的时候、处理器会消耗很多、现在的被动散热系统是没法处理的。 同时、在开始执行 gstreamer 命令的流程时、流程不会下降、因为不使用 AI 模型。 但遗憾的是、此命令不允许 调整输出比特率(在 test.yaml 中可能实现)、这并不适合我们。
如何​​使用 test.yaml 配置文件从流水线中删除 AI 模型? 或者如何采取不同的方式?

期待您的回复

Igor Kovryga

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Igor:

    您可以通过运行应用、用 Ctrl+c 关闭并在终端中向上滚动一个位、提取使用配置文件运行应用程序时生成的 GStreamer 流水线。 配置文件不会 授予您从流程中删除模型的选项、因此您需要更改用例所需的流水线、并直接在命令行中运行 GStreamer 流水线。 请参阅下面链接的常见问题解答中的一些 GStreamer 示例。

    常见问题: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1427869/faq-sk-am69-how-to-stream-from-csi-sensor-and-usb-camera-to-display-using-gstreamer

    谢谢!

    Fabiana

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Fabiana:

    我们是否尝试以这种方式直接使用 Gstreamer 流水线

    gst-launch-1.0 v4l2src 设备=/dev/video-usb-cam0亮度=50对比度=50饱和度=50色调=50 ! capsfilter caps="视频/x-raw、width=(int) 1920、height=(int) 1080;"! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string)NV12"! 队列! tiovxdlcolorconvert out-pool-size=4! capsfilter caps="video/x-raw、format=(string) rgb;"! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12、width=(int) 1920、height=(int) 1080;"! v4l2h264enc extra-controls="controls, frame_level_rate_control_enable=(int) 1、video_bitrate=(int) 3000000、video_gop_size=(int) 30;"! h264parse! RTPH264支付! udpsink sync=False clients=192.168.168.30:8090 host=192.168.168.30 port=8090

    流不遵循建议的比特率。 但是、当使用 test.yaml 文件应用约束时、可以观察到流受比特率的指定上限限制。 该命令与使用 python 应用程序和 TEST.YAML 配置文件时发生的情况几乎相同、因此该命令如何解释。
    这是脚本的输出:

    [PIPE-0]

    v4l2src device=/dev/video-usb-cam0 brightness = 50对比度=50饱和度=50色调=50 ! capsfilter caps="视频/x-raw、width=(int) 1920、height=(int) 1080;"! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12;"! tiovxmultiscaler name=split_01
    SPLIT_01。 ! 队列! capsfilter caps="视频/x-raw、width=(int) 1920、height=(int) 1080;"! tiovxdlcolorconvert out-pool-size=4! capsfilter caps="video/x-raw、format=(string) rgb;"! appsink max-buffers=2 dropp=True name=sen_0
    SPLIT_01。 ! 队列! capsfilter caps="video/x-raw、width=(int)1120, height=(int)700;"! tiovxmultiscaler target=1! capsfilter caps="video/x-raw、width=(int)320, height=(int)320;"! tiovxdlpreproc out-pool-size=4 channel-order=1 data-type=3! capsfilter caps="application/x-tensor-tiovx;"! appsink max-buffers=2 dropp=True name=pre_0


    ==== [输出流水线]====

    appsrc DO-timestamp=True format=3 block=True name=post_0! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12、width=(int) 1920、height=(int) 1080;"! v4l2h264enc extra-controls="controls, frame_level_rate_control_enable=(int) 1、video_bitrate=(int) 3000000、video_gop_size=(int) 30;"! h264parse! RTPH264支付! udpsink sync=False clients=192.168.168.30:8090 host=192.168.168.30 port=8090

    很容易看到、纯 gstreamer 命令省略了多路复用阶段、只是尝试以 h264格式准备输出并通过 UDP 发送。 但是、实际比特率约为5 Mbit/s、而不是3 Mbit/s

    此致

    Igor Kovryga

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Igor:

    您如何测量比特率? 当您 将其设置为管道中的不同值时、您是否发现它仍然为5 MBit/s?

    谢谢!

    Fabiana

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Fabiana:

    我们的管道的配置方式使压缩数据通过以太网端口发送到指定的地址。 Windows 操作系统能够查看端口的加载情况、而我们知道、除了本地模块外、没有其他设备连接到此端口、因此仅显示我们的流。 屏幕截图

    BR

    Igor Kovryga

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Igor:

    您使用的 SDK 版本是什么? 您是否发现比特率保持在5 MBit/s (无论您在额外控件中设置了什么)? 您是否尝试过将其更改为3 MBit/s 以外的值?

    谢谢!

    Fabiana

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Fabiana:

    我们已经对  不同比特率的设置进行了测试。 文件的文件夹。 我们已经看到、文件 test.yaml 中的参数 bitrateхххххххх 正确执行、但在 通过 GStreamer 命令手动设置比特率时、流程比指定的流程大2倍。 因此,如果我们需要2 Mbits,我们将设置 比特率=1000000 ,如果 我们希望比特率不超过3 MBps ,我们将设置比特率 =1500000 。  它的工作原理是这样。

    遗憾的是、在 SK-TDA4VM 电路板上、我们无法同时使用压缩式 AI 模型、因为10-20分钟后电路板会过热并关闭。 因此、我们会开发自己的电路板或者购买 SOM。 我们找到这些人

    https://www.technexion.com/products/robotics/som/rovy-4vm/

    您能否推荐它们或推荐其他制造商?

    我认为案例可以结束-谢谢。

    Igor Kovryga

    e2e.ti.com/.../Gstreamer_5F00_meas.docx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Igor:

    由于美国假期、请预计我的回复会延迟。

    谢谢!

    Fabiana

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Igor:

    很高兴听到您解决了比特率配置问题、很抱歉您遇到了 SK-TDA4VM 过热问题。  这是 我们正在寻找的东西、因为其他客户也遇到了类似的问题。 我会推荐我们的其他入门套件 SK-AM68和 SK-AM69、因为它们的性能优于 SK-TDA4VM、并且附带散热器以避免过热。 请记住、您从 Technexion 链接的器件使用相同的 TI TDA4VM SOC。

    谢谢!

    Fabiana