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.

[参考译文] PROCESSOR-SDK-AM69A:使用 Arducam V3Link 摄像头套件读取摄像头

Guru**** 2378650 points
Other Parts Discussed in Thread: AM69A, SK-AM69
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1493345/processor-sdk-am69a-camera-readout-using-arducam-v3link-camera-kitcd

器件型号:PROCESSOR-SDK-AM69A
Thread 中讨论的其他器件:AM69ASK-AM69

工具/软件:

尊敬的 TI:

我使用了 Camera IMX219的部分(Arducam V3Link Camera Kit),并尝试先获取一个相机的基本流媒体设置(本地和 NodeJS 服务器)

AM69A 的 DK (10_00_00)

==

对 IMX219摄像头进行初始配置时、在 /opt/edgeai-gst-apps/configs 下的 imx219_cam_example.yaml 中、我们可以看到 input0 (默认为 kmssink)  

输入0:
资料来源:/dev/video0
subdev-id:/dev/v4l-subdev0
宽度:1920
高度:1080
格式:rggb.
帧速率:30

我们无法查看或访问/dev/video0。 当我们尝试写入 output2时(输出到: edgeai-test-data/output/output_image_%04d.jpg)

其中 video-imx219-cam0 dir/file 也无法访问。  

保存的文件'eg : frame.jpg'是一个0位的文件,不能是 scp'd 不能看一下。 但考虑到文件大小、这可能没有用。

==

当进入 agi-apps

运行后  

源/opt/edgeai-gst-apps/scripts/setup_cameras_v3link.sh (运行成功、即:无输出消息)

使用本地或本地查看输出时会发生这种情况

v4l2-ctl --device /dev/video0 --set-fmt-video=width=1280、height=720、pixelformat=rggb --stream-mmap --stream-to=frame.jpg --stream-count=1

或者串流到列出的 NodeJS 服务器(10.42.0.25:8080/.../jpeg)

我们没有从任何摄像头输出图像。

==

我们还遵循下面的指南在我们的初始配置:  

https://www.arducam.com/wp-content/uploads/2023/10/Arducam_V3Link-Quick_Start_Guide.pdf

在第3.3节中、我们还检查了主机或 AM69A 的 IP 是否正确

===

目前、我们的目标只是将1个摄像头读出为流式输出(例如、video0)。

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

    为了重申一下、我们只想看到摄像头。 因此、我们将 config 目录中的 imx219.yaml 文件更改为/dev 下显示的设备。 它是/dev/video1 、然后转到/dev/video9.

    然后、我们在 Python 目录中运行边缘 AI 应用。 但是、我们看不到任何图片或视频。

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

    尊敬的 Tapan:

    假设您正在为 AM69A 使用最新的 Edge AI SDK 版本、请为 V3Link 融合板和所使用的 imx219传感器启用覆盖层。 SK-AM69上 V3Link 连接到的 CSI 接头和 V3Link 上传感器使用的 FPDLink 端口将让您知道启用哪个 v3link imx219叠加、因为命名约定如下:  k3-v3link-imx219- - .dtbo

    为使操作简单、我建议将带状电缆连接至 CSI0 (在 SK-AM69上)和 CS0 (在 V3Link 上)。 将 IMX219连接到 RX0  (在 V3Link 上)并启用  k3-am68-sk-v3link-fusion.dtbo  k3-v3link-imx219-0-0.dtbo 。 将覆盖层添加到 uEnv.txt 后、重新引导并运行./scripts/ setup_cameras_v3link.sh 您应该能够看到已检测到传感器。

    看看这个 常见问题解答 欲了解更多详情: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1452909/faq-am67a-enabling-csi2-sensors-via-fusion-board-on-am6x

    如果您有任何其他问题、请告诉我。

    谢谢您、

    法比亚纳

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

    尊敬的 Fabian:

    是的。 我做了同样的步骤,如上。 登录时显示  

    检测到 IMX219摄像头0
    Device =/dev/video-imx219-cam0
    名称= imx219
    格式=[fmt:SRGGB8_1X8/1920x1080 ]
    subdev_id =/dev/v4l-imx219-subdev0
    ISP_Required =是

    然后我连接了 HDMI。 我看到了标准 EdgeAi GUI。 在选择自定义选项卡并从输入中选择 CAM00时不显示任何内容。 它挂在那里。

    然后我想保存输出到 JPG。 因此、我更改了 imx219_cam_example.yaml。

    流量:
    flow0:[input0、model0、output2、[320,150,1281280720]]

    并运行以下命令

    ./ app_edgeai.py ./configs/imx219_cam_example.yaml

    它导致了以下错误

    **********************************************************************************************************************************

    / app_edgeai.py ./configs/imx219_cam_example.yaml
    2025年03月27日19:19:07,784信息在模型工件中找不到 libdlr.so。 从/usr/lib/python3.12/site-packages/dlr/libdlr.so 购买 DLR
    应用程序:初始化...!!
    2131.739982 s:app_log:错误:无法映射大小为262144字节的内存@ 0xaf000000!!
    应用程序:错误:日志写入器初始化失败!!!
    app_log:错误:无法映射大小为3288576字节的内存@ 0xb1000000!!
    应用程序:错误:文件 IO 写入器初始化失败!!!
    应用程序:初始化...完成!!
    TIDL_RT_OVX:错误:AppInit 失败
    [19:19:02]/dlr/arch64/neo-ai-dlr /TIDLR/DLR.cc:343:错误:[19:19:02]/dlr/arch64/neo-ai-dlr/3rdparty/tvm src TIDLR/runtime/contrib/tidl/tidl_runtime.cc:264:无法为子图0初始化 src

    堆栈跟踪:
    [BT](0)/usr/lib/python3.12/site-packages/dlr/libdlr.so (+0x13290c)[0xff7890290c]
    [BT](1)/usr/lib/python3.12/site-packages/dlr/libdlr.so (TVM::运行时::detail::LogFatal::条目::finalize ()+0x6c)[0xffff7880dbbc]
    [BT](2)/usr/lib/python3.12/site-packages/dlr/libdlr.so (TVM:::运行时:TIDLJ7Module::GetFunction (std::__cxx11::basic_string<char、std::char_tectors 、std::allocator > CONST&、TVM::runtime::ObjectPtr CONST&)+0x624)[0xff788c70b4]
    [BT](3)/usr/lib/python3.12/site-packages/dlr/libdlr.so (+0x1354bc)[0xff789054bc]
    [BT](4)/usr/lib/python3.12/site-packages/dlr/libdlr.so (TVM:::runtime::ConstLoaderModuleNode:GetFunction (std::__cxx11::basic_string<char、std::char_tectors 、std::allocator > CONST&、TVM::runtime::ObjectPtr CONST&)+0x4e0)[0xffff788206c0]
    [BT](5)/usr/lib/python3.12/site-packages/dlr/libdlr.so (+0x1354bc)[0xff789054bc]
    [BT](6)/usr/lib/python3.12/site-packages/dlr/libdlr.so (+0x1960b0)[0xffff789660b0]
    [BT](7)/usr/lib/python3.12/site-packages/dlr/libdlr.so (+0x19a06c)[0xff7896a06c]
    [BT](8)/usr/lib/python3.12/site-packages/dlr/libdlr.so (+0x19b71c)[0xff7896b71c]


    DLRModel 实例化中出现2025年03月27日19:19:02,281错误
    回溯(最近一次呼叫):
    文件"/usr/lib/python3.12/site-packages/dlr/api.py、第89行、位于__init__
    self._impl = DLRModelImpl (model_path、dev_type、dev_id、error_log_file、use_default_drr)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^μ s
    文件"79"/usr/lib/python3.12/site-packages/dlr/dlr_model.py、位于__init__中
    self._check_call (self._lib.createDLRModel (byref (self.handle)、
    文件/usr/lib/python3.12/site-packages/dlr/dlr_model.py、第160行、位于_check_call 中
    提升 DLRError (self._lib.DLRGetLastError ().decode ('ASCII'))
    dlr.dlr_model.dlrerror
    回溯(最近一次呼叫):
    文件"/opt/edgeai-gst-apps/apps_python/./app_edgeai.py、第67行、在中
    主(sys.argv)
    /opt/edgeai-gst-apps/apps_python/./app_edgeai.py、第46行、位于 main 中
    演示= EdgeAIDemo (配置)
    ^^^^^^^^^^^^^^^^^^μ s
    文件"/opt/edgeai-gst-apps/apps_python/edge_ai_class.py、第108行、位于__init__中
    model_obj.create_runtime()
    create_runtime 中的文件/usr/lib/python3.12/site-packages/edgeai_dl_inferer.py、第315行
    self.run_time =运行时(self.particles、
    ^^^^^^^^^^^^^^^^^^^^^^^μ s
    文件"/usr/lib/python3.12/site-packages/edgeai_dl_inferer.py、第68行、位于__init__
    self.model =_DLRModel (工件、"CPU")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^μ s
    文件"/usr/lib/python3.12/site-packages/dlr/api.py、第92行、位于__init__
    升高幅度
    文件"/usr/lib/python3.12/site-packages/dlr/api.py、第89行、位于__init__
    self._impl = DLRModelImpl (model_path、dev_type、dev_id、error_log_file、use_default_drr)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^μ s
    文件"79"/usr/lib/python3.12/site-packages/dlr/dlr_model.py、位于__init__中
    self._check_call (self._lib.createDLRModel (byref (self.handle)、
    文件/usr/lib/python3.12/site-packages/dlr/dlr_model.py、第160行、位于_check_call 中
    提升 DLRError (self._lib.DLRGetLastError ().decode ('ASCII'))
    dlr.dlr_model.dlrerror
    ***

    输出崩溃。 是否有一个命令可用于 RSTP、通过使用任何 AI 推理/远程托管实时摄像头流

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

    尊敬的 Tapan:

    您能否分享您正在使用的完整配置文件?

    谢谢您、

    法比亚纳

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

    在这里

    标题:"IMX219摄像头"                    
    Log_Level:2.                         
    输入:                                                     
      # RPi 相机仅在入门套件中受支持                                
      #要启用 imx219摄像机、请在/run/media/BOOT-mmcblk1p1/uEnv.txt 中应用覆盖层(请参阅文档)
      输入0:                                     
        资料来源:/dev/video-imx219-cam0                       
        subdev-id:/dev/v4l-imx219-subdev0                     
        宽度:1920                                
        高度:1080                     
        格式:rggb.                                
        帧速率:30                                
    型号:                                      
      模型0:                          
        model_path:/opt/model_zoo/TVM-CL-3090-mobileNetV2-tv            
        TopN: 5.                                   
      型号1:                                    
        model_path:/opt/model_zoo/ONR-OD-8200-yolox-nano-lite-mmdet-coco-416x416
        VIZ_THRESHOLD:0.6                             
      型号2:                                     
        model_path:/opt/model_zoo/ONR-SS-8610-deeplabv3lite-mobv2-ade20k32-512x512
        Alpha:0.4        
    输出:             
      输出0:                           
        Sink:kmssink                      
        宽度:1920       
        高度:1080       
        overlay-perf-type:图形                 
      输出1:                           
        接收器:/opt/edgeai-test-data/output/output_video.mkv
        宽度:1920       
        高度:1080        

      输出2:                                    
        接收器:/opt/edgeai-test-data/output/output_image_% 04d.jpg          
        宽度:1920                                 
        高度:1080                                
      输出3:                           
        接收器:远程                       
        宽度:1920                       
        高度:1080                       
        端口:8081                        
        主机:127.0.0.1                     
        编码:JPEG                      
        overlay-perf-type:图形                 
                                    
    流量:                              
      flow0:[input0、model0、output2、[320,150,1281280720]]   
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Fabian:

    你对错误有任何解释吗?  相反、有一个简单的实用程序可通过 RSTP 查看远程主机中的3台摄像机。

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

    尊敬的 Tapan:

    感谢您的分享。 乍一看、此配置文件没有任何问题。 您可以尝试运行以下命令吗?

    gst-launch-1.0 \
    v4l2src device=/dev/video-imx219-cam0 io-mode=5 ! queue leaky=2 ! \
    video/x-bayer, width=1920, height=1080, framerate=30/1, format=rggb ! \
    tiovxisp sink_0::device=/dev/v4l-subdev2 sensor-name="SENSOR_SONY_IMX219_RPI" \
    dcc-isp-file=/opt/imaging/imx219/linear/dcc_viss_1920x1080.bin \
    sink_0::dcc-2a-file=/opt/imaging/imx219/linear/dcc_2a_1920x1080.bin format-msb=7 ! \
    video/x-raw, format=NV12, width=1920, height=1080, framerate=30/1 ! \
    kmssink driver-name=tidss sync=false

    请参阅以下常见问题解答和文档:

    谢谢您、

    法比亚纳

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

     这是命令的操作。  没有遵循您所做的。 它给出了类似的错误无法映射内存。

    应用程序:初始化...!!
    373072.777244 s:app_log:错误:无法映射内存@ 0xaf000000的大小为262144字节!!
    应用程序:错误:日志写入器初始化失败!!!
    app_log:错误:无法映射大小为3288576字节的内存@ 0xb1000000!!
    应用程序:错误:文件 IO 写入器初始化失败!!!
    应用程序:初始化...完成!!
    **
    错误:../gst-libs/gst/tiovx/gsttiovxcontext.c:146:gst_tiovx_context_init:断言失败:(0 == ret)
    保释! 错误:../gst-libs/gst/tiovx/gsttiovxcontext.c:146:gst_tiovx_context_init:断言失败:(0 == ret)
    已中止(核心已转储)

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

    尊敬的 Tapan:

    除了在 uboot 环境中启用传感器之外、您是否做了任何更改? 您能否共享以下命令的输出?

    ls /dev/dma_heap/carveout_edgeai_shared-memories

    我建议 您尝试使用适用于 AM69A 的最新 Edge AI Linux SDK 重新刷写 SD 卡、看看问题是否仍然存在。

    https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX AM69A

    谢谢您、

    法比亚纳

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

    您好 Fabiana、

    1.我想运行命令"ls /dev/dma_heap/carveout_edgeai_shared-memories "、但/dev/dma_heap 下只有 Linux、CMA 和系统、没有这样的"carveout_edgeai_shared-memory"。

    2.我已经使用了最新的 SDK、即10.01.00.05

    tisdk-edgeai-image-j784s4-evm.wic.xz - 1121949 K

    此致、

    Tapan

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

    尊敬的 Fabiana:

    刷写后、这是操作

    ************************************************************

    orinnano@orinnano-desktop:~$ ssh root@10.42.0.26
    无法设置格式:参数无效(22)
    无法设置格式:参数无效(22)
    检测到 IMX219摄像头0
       Device =/dev/video-imx219-cam0
       名称= imx219
       格式=[fmt:SRGGB8_1X8/1920x1080 ]
       subdev_id =/dev/v4l-imx219-subdev0
       ISP_Required =是
    Root@AM69-SK:/opt/edgeai-gst-apps

    ********************************************************************

    一个简单的事情,如运行一个 V3链接已经花了一个月。 文档中的任何一个都不正确。 我没有看到任何其他问题。

        BTW 我还注意到、在 Arducam 网站上、AM62A 入门介绍了另外几个步骤。 例如、在 i2c 中加载几个内核模块。 在最新的 SDK 中、我没有看到5.10.168..、而是6.**版本。  /kernel/drivers/media/i2c/.中没有 im219.ko   以下 ko 不包含模块/ds90ub90.ko 和 modules/im219.ko、发送至/lib/modules/5.10.168-g2c23e6c538/kernel/drivers/media/i2c

    是否可以进行呼叫。 我正在失去耐心的缓慢流失。

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

    尊敬的 Tapan:

    我目前出差外出。 请预计我的回复会延迟~1-2天。

    谢谢您、

    法比亚纳

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

    尊敬的 Tapan:

    您是否每次启动时都运行 setup_cameras_v3link.sh 脚本? 您能否验证您是否仔细完成了我之前概述的所有步骤?  

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1493345/processor-sdk-am69a-camera-readout-using-arducam-v3link-camera-kitcd/5738070#5738070

    谢谢您、

    法比亚纳

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

    感谢您发送编修。  我们在3月31日之后看到相同的错误消息。

    373072.777244 s:app_log:错误:无法映射内存@ 0xaf000000的大小为262144字节!!
    应用程序:错误:日志写入器初始化失败!!!
    app_log:错误:无法映射大小为3288576字节的内存@ 0xb1000000!!
    应用程序:错误:文件 IO 写入器初始化失败!!!
    应用程序:初始化...完成!!

    Fabiana 将此调试为 uEnv.txt 中的错误初始化

    它是写成的

    name_coverles=ti/k3-j784s4-edgeai-apps.dtbo ti/k3-am68-sk-v3link-fusion.dtbo

    name_coverles=ti/k3-v3link-imx219-0-0.dtbo

    ************************************

    以上行不正确。 它们应位于一行中、如下所示。

    name_coverles=ti/k3-j784s4-edgeai-apps.dtbo ti/k3-am68-sk-v3link-fusion.dtbo ti/k3-v3link-imx219-0.dtbo。

    将它留在这里为子孙后代。

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

    尊敬的 Tapan:

    很高兴我们能找到这个问题! name_overlays 只能在 uEnv.txt 中定义一次 、否则之前启用的覆盖 将被最后定义的覆盖。

    如果您有任何其他问题或遇到任何问题、请在 E2E 上提出新问题或相关问题。 我将结束该主题。

    谢谢您、

    法比亚纳