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-AM62A:Yolov8部署问题

Guru**** 2466550 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1459062/processor-sdk-am62a-yolov8-deployment-issue

器件型号:PROCESSOR-SDK-AM62A

工具与软件:

您好!

我正在生成自定义 yolov8模型、并在 edgeai-tidl-tool 和 edgeai-benchmark 存储库下生成 compliance onnx 和 prototxt 文件。
因为我可以生成文件、所以我可以在 AM62A EVM 下运行自定义模型。 但是、我收到了错误。

这是我的环境。

AM62A Linux SDK :  9.02.00.05.

模型生成环境:
第二百零四章

edgeai-tidl-tools:标记"09_02_09_00"
edgeai-benchmark: r9.2.

这是 EVM 上的错误日志。

——

root@am62axx-evm:/opt/edgeai-gst-apps/apps_python# ./app_edgeai.py ../configs/yolov8.yaml
libtidl_onnxrt_EP loaded 0x31ef6410
ERROR : artifacts_folder not a directory
******** WARNING ******* : Could not open ConstantFolding/allowedNode.txt for reading... Entire model will run on ARM without any delegation to TIDL !
Final number of subgraphs created are : 1, - Offloaded Nodes - 0, Total Nodes - 0
[ 157.245285] usb 1-1: reset high-speed USB device number 2 using xhci-hcd
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=6) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
163.854141 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
163.857993 s: VX_ZONE_INIT:Enabled
163.858035 s: VX_ZONE_ERROR:Enabled
163.858044 s: VX_ZONE_WARNING:Enabled
163.859298 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-0
163.859463 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-1
163.859573 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-2
163.859687 s: VX_ZONE_INIT:[tivxPlatformCreateTargetId:116] Added target MPU-3
163.859703 s: VX_ZONE_INIT:[tivxInitLocal:136] Initialization Done !!!
163.860566 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
==========[INPUT PIPELINE(S)]==========

[PIPE-0]

v4l2src device=/dev/video-usb-cam0 brightness=128 contrast=32 saturation=32 ! capsfilter caps="image/jpeg, width=(int)1280, height=(int)720;" ! jpegdec ! tiovxdlcolorconvert ! capsfilter caps="video/x-raw, format=(string)NV12;" ! tiovxmultiscaler name=split_01
split_01. ! queue ! capsfilter caps="video/x-raw, width=(int)1280, height=(int)720;" ! tiovxdlcolorconvert out-pool-size=4 ! capsfilter caps="video/x-raw, format=(string)RGB;" ! appsink max-buffers=2 drop=True name=sen_0
split_01. ! queue ! capsfilter caps="video/x-raw, width=(int)640, height=(int)640;" ! tiovxdlpreproc out-pool-size=4 scale-0=0.00392200006172061 scale-1=0.00392200006172061 scale-2=0.00392200006172061 ! capsfilter caps="application/x-tensor-tiovx;" ! appsink max-buffers=2 drop=True name=pre_0


==========[OUTPUT PIPELINE]==========

appsrc do-timestamp=True format=3 block=True name=post_0 ! tiovxdlcolorconvert ! capsfilter caps="video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720;" ! queue ! mosaic_0.sink_0

tiovxmosaic target=1 background=/tmp/background_0 name=mosaic_0 src::pool-size=4
sink_0::startx="<320>" sink_0::starty="<150>" sink_0::widths="<1280>" sink_0::heights="<720>"
! capsfilter caps="video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080;" ! queue ! tiperfoverlay title=Object Detection ! kmssink sync=False max-lateness=5000000 qos=True processing-deadline=15000000 driver-name=tidss connector-id=40 plane-id=31 force-modesetting=True



+--------------------------------------------------------------------------+
| Object Detection |
+--------------------------------------------------------------------------+
+--------------------------------------------------------------------------+
| Input Src: /dev/video-usb-cam0 |
| Model Name: yolov8_s_syncbn_fast_8xb16-100e_coco |
| Model Type: detection |
+--------------------------------------------------------------------------+
+--------------------------------------------------------------------------+[ 159.075818] kauditd_printk_skb: 1 callbacks suppressed
[ 159.075837] audit: type=1701 audit(1651172439.240:15): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=1468 comm="app_edgeai.py" exe="/usr/bin/python3.10" sig=11 res=1
[ 159.153624] audit: type=1334 audit(1651172439.316:16): prog-id=13 op=LOAD
[ 159.160519] audit: type=1334 audit(1651172439.324:17): prog-id=14 op=LOAD
[ 177.902456] audit: type=1334 audit(1651172458.068:18): prog-id=14 op=UNLOAD
[ 177.910230] audit: type=1334 audit(1651172458.068:19): prog-id=13 op=UNLOAD
Segmentation fault (core dumped)
root@am62axx-evm:/


——
这是目录信息。

---

root@am62axx-evm:/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco# ls
arfifacts
config.yaml
dataset.yaml
imagedet-custom_cat_onnxrt_DGX_yolov8_s_syncbn_fast_8xb16-100e_coco_best_coco_bbox_mAP_epoch_93_onnx.tar.gz
model
param.yaml
run.log


root@am62axx-evm:/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco# cd arfifacts/
root@am62axx-evm:/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/arfifacts# ls
allowedNode.txt subgraph_0_tidl_io_1.bin
graphvizInfo.txt subgraph_0_tidl_net.bin
onnxrtMetaData.txt subgraph_0_tidl_net.bin.layer_info.txt
runtimes_visualization.svg subgraph_0_tidl_net.bin.svg
subgraph_0_calib_raw_data.bin subgraph_0_tidl_net.bin_netLog.txt
root@am62axx-evm:/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/arfifacts#


---

是否有什么信息可以避免此错误?

BR、

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

    您好、Machida-San、

    我编辑了您的帖子、将代码行放入块中、以便于解析。

    您能  在这里提供您的模型工件 tarball 和 configs/yolov8.yaml 的内容吗?

     您看到的问题的根源是 app_edgeai.py (和支持代码)找不到实际工件文件。 这通常意味着路径设置不正确或某些文件命名错误。  

    我注意到的一点是工件目录名为"arfifacts"、这里可能有一个简单的拼写错误。 通常,工件和模型文件是从 param.yaml 文件读取的。

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的答复。
    >您可以  在此提供您的模型工件 tarball 和 configs/yolov8.yaml 的内容吗?
    由于模型大小太大,所以我通过包含文件传输系统信息的私人消息发送此信息。

    >我注意到的一件事是工件目录命名为"arfifacts"、因此这里可能有一个简单的拼写错误。 通常、>工件和模型文件是从 param.yaml 文件读取的。
    很抱歉、我没有注意到这个拼写错误...
    我修复了它、然后重新尝试运行模型。 但我收到以下错误。

    ——

    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python。app_edgeai.py。。。/configs/yolov8.yaml
    libtidl_onnxrt_EP 已加载0xa032af0
    最终创建的子图数为:2、-卸载节点- 271、总节点- 0
    调用:错误:无法打开网络文件/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/artifacts /_tidl_net.bin
    调用:错误:无法打开网络文件/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/artifacts /'
    _tidl_net.bin
    [ 100.872510] USB 1-1:使用 xhci-hcd 重置2号高速 USB 器件
    应用程序:初始化...!!!
    内存:初始化...!!!
    MEM:已初始化的 DMA 堆(FD=6)!!!
    内存:初始化...完成!!!
    IPC:初始化...!!!
    IPC:初始化...完成!!!
    remote_servic: init…!!
    Remote_servic:初始化...完成!!!
    107.444581s:GTC 频率= 200 MHz
    应用程序:初始化...完成!!!
    107.448576:vx_zone_init:Enabled
    107.448621:vx_zone_error:Enabled
    107.448630 s:vx_zone_warning:Enabled
    107.450135 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-0
    107.450301 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-1
    107.450453:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-2
    107.450606 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-3
    107.450621:vx_zone_init:[tivxInitLocal:136]初始化已完成!!
    107.451090秒:vx_zone_init:[tivxHostInitLocal:101]主机初始化已完成!!!
    ==== [输入流水线(S)]====

    [PIPE-0]

    v4l2src 设备=/dev/video-usb-cam0亮度=128对比度=32饱和度=32 ! capsfilter caps="image/jpeg, width=(int)1280, height=(int)720;"! jpegdec! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12;"! tiovxmultiscaler name=split_01
    SPLIT_01。 ! 队列! capsfilter caps="video/x-raw、width=(int) 1280、height=(int) 720;"! 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)640, height=(int)640;"! tiovxdlpreproc out-pool-size=4 scale-0=0.00392200006172061 scale-1=0.00392200006172061 scale-2=0.00392200006172061! 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) 1280、height=(int) 720;"! 队列! mosaic_0.sink_0

    tiovxmosaic target=1 background=/tmp/background_0 name=mosaic_0 src::pool-size=4
    Sink_0::startx="<320>" sink_0:starty="<150>" sink_0::width="<1280>" sink_0::heights="<720>"
    ! capsfilter caps="video/x-raw、format=(string) NV12、width=(int) 1920、height=(int) 1080;"! 队列! tiperfoverlay title=物体检测! kmssink sync=False 最大延迟=5000000 QoS =真正的处理-最后期限=15000000 driver-name=tidss connector-id=40 plane-id=31 force-modesetting=True

    ----------------------------------------------------------- +
    物体检测|
    ----------------------------------------------------------- +
    ----------------------------------------------------------- +
    |输入 src:/dev/video-usb-cam0 |
    模型名称: yolov8_s_syncbn_fast_8xb16-100e_coco |
    型号类型:检测|
    ----------------------------------------------------------- +
    ----------------------------------------------------------- +[ 102.704846] kauditd_printk_skb:抑制1回调
    [ 102.704868]审核: type=1701审核(1651172685.212:15):auid=4294967295 uid=0 gid=0 ses=4294967295 pid=1450 comm="app_edgeai.py" exe="/usr/bin/python3.10 sig =11 res=1
    [ 102.786374]审计:类型=1334审计(1651172685.296:16):PROG-id=13 OP=LOAD
    [ 102.793319]审核:类型=1334审核(1651172685.300:17):PROG-id=14 op=load
    [128.966763]审核:type=1334审核(1651172711.476:18):prog-id=14 op=unload
    [128.974371]审核:type=1334审核(1651172711.476:19):prog-id=13 op=unload
    分段故障(已转储内核)
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python
    ——

    我刚刚复制了包含在"artifacts"文件夹中的网络文件...
    我不知道为什么这个错误发生。

    BR、

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

    您好!

    看起来模型工件在这里读取不正确--文件名不能正确打印、因此 param.yaml 或文件名本身有问题

    调用:错误:无法打开网络文件/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/artifacts _tidl_net.bin
    调用:错误:无法打开网络文件/opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/artifacts /'
    _tidl_net.bin

    我看到你和我分享的模型工件,我看到证据,编译没有完成。 这可能是分段故障的原因。 runtimes_visualization.svg 不完整、应该有第二个子图用于您的网络。

    我们应该从 edgeai-gst-apps 后退并在目标上运行、然后首先让该模型编译良好并使用 edgeai-tidl-tools 运行 PC 仿真。

    对于您的网络、我使用 model_configs.py 中的以下模型配置

        'yolov8_s_machida' : {
            'model_path' : os.path.join(models_base_path, 'best_coco_bbox_mAP_epoch_93.onnx'),
            'mean': [0, 0, 0],
            'scale' : [0.003921568627,0.003921568627,0.003921568627],
            'num_images' : numImages,
            'num_classes': 80,
            'model_type': 'od',
            'od_type' : 'yolo_v8',
            'meta_layers_names_list' : os.path.join(models_base_path, 'best_coco_bbox_mAP_epoch_93.prototxt'),
            'session_name' : 'onnxrt' ,
            'meta_arch_type' : 8,
            'optional_options': {
                'debug_level': 1,
            },

    对我来说、编译在一次全新安装中完成、但我在使用 PC 仿真运行模型时遇到了挑战。 我看到以下错误

    Traceback (most recent call last):
      File "/usr/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
        self.run()
      File "/usr/lib/python3.10/multiprocessing/process.py", line 108, in run
        self._target(*self._args, **self._kwargs)
      File "/home/reese/1-edgeai/1-ti-tools/1-tidl-tools/9.2-tidl-tools-fresh/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py", line 240, in run_model
        imgs, output, proc_time, sub_graph_time, height, width  = infer_image(sess, input_images, config)
      File "/home/reese/1-edgeai/1-ti-tools/1-tidl-tools/9.2-tidl-tools-fresh/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py", line 129, in infer_image
        output = list(sess.run(None, {input_name: input_data}))
      File "/home/reese/1-edgeai/1-ti-tools/1-tidl-tools/9.2-tidl-tools-fresh/edgeai-tidl-tools/venv-9.2-tools-fresh/lib/python3.10/site-packages/onnxruntime/capi/onnxruntime_inference_collection.py", line 200, in run
        return self._sess.run(output_names, input_feed, run_options)
    onnxruntime.capi.onnxruntime_pybind11_state.RuntimeException: [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Non-zero status code returned while running ReorderInput node. Name:'ReorderInput' Status Message: /onnxruntime/onnxruntime/contrib_ops/cpu/nchwc_ops.cc:17 virtual onnxruntime::common::Status onnxruntime::contrib::ReorderInput::Compute(onnxruntime::OpKernelContext*) const X_rank == 4 was false.
    

    这通常意味着 ONNX 不喜欢 TIDL 为需要在 Arm 上运行的几个图层返回的数据格式。 `的解决方案是 在调用的 Linux 环境中将 TIDL_RT_ONNX_VARDIM=1`导出、但现在不行。  

    在这种情况下、我认为最好的策略是解决无法减轻 TIDL 负载的层。 可解决上述问题。

    TIDL 不接受的层是具有5x5大小内核的 Maxpool 层-我们支持最大3x3内核大小。 您可以按顺序模拟具有2个3x3内核的 maxpool 的5x5内核。

    我试过这个和模型编译通过,就像模型推理在 x86 PC 上一样。 您可以尝试更改上述模型并重试吗?  

    BR、
    Reese

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

    您好!

    感谢您的确认。

    =>以后再试一下。

    我试过这个和模型编译通过,就像模型推理在 x86 PC 上一样。 您可以尝试更改上述模型并重试吗?  
    =>是否可以通过私人消息共享您生成的模型?

    此致、

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

    您好!

    我还有一个问题。

     >可以通过在编译命令末尾传递"-o"标记来使用
    我无法找到如何进行编译以实现"tidl-onnx-model-optimizer"
    是否有描述以上内容的任何存储库?

    此致、

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

    您好!

    Reese 本周就到了、下周才会回复。 关于 ONNX 模型编译的问题、请查看此常见问题 解答:[常见问题解答] EDGE-AI-STUDIO:如何在边缘 AI AM6xA 处理器上使用 TI 深度学习(TIDL)针对我自己的数据集使用 TI Model Zoo 中的 AI 模型并对其进行重新训练?

    此致、

    建中

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

    您好!

    我执行了编译,正如 Reese 所说,我也确认我没有发现错误。
    之后、我在 AM62A EVM 上部署了该模型、并使用在 edgeai-benchmarking 上生成的文件。
    但是、我在显示上没有看到任何图像。 似乎模型工作,但有些东西是错误的。

    你有什么想法,为什么这种现象被观察?

    此致



    e2e.ti.com/.../Log_5F00_for_5F00_E2E.txt

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

    您好!

    我在日志中看到一些错误:

    ******** WARNING ******* : Could not open /opt/model_zoo/yolov8_s_syncbn_fast_8xb16-100e_coco/artifacts/allowedNode.txt for reading... Entire model will run on ARM without any delegation to TIDL !
    
     +--------------------------------------------------------------------------+Exception in thread Thread-1 (pipeline):
                                         Traceback (most recent call last):
                                                                             File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
                                                                        self.run()
                                                                                    File "/usr/lib/python3.10/threading.py", line 953, in run
                                                                 self._target(*self._args, **self._kwargs)
                            File "/opt/edgeai-gst-apps/apps_python/infer_pipe.py", line 121, in pipeline
                            out_frame = self.post_proc(frame, result)
                                                                       File "/opt/edgeai-gst-apps/apps_python/post_process.py", line 225, in __call__
                                                                         bbox[..., self.model.formatter["dst_indices"]] = bbox_copy[
                                                    IndexError: index 5 is out of bounds for axis 1 with size 1
    

    错误。

    此致、

    建中

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

    您好!

    因为我没有将"allowedNote.txt"和"onnxrtMetadata.txt"复制到"artifacts"文件夹、所以我复制了它们并重新运行应用程序。
    然后出现以下错误。

    ——
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python。app_edgeai.py。。。/configs/yolov8.yaml
    libtidl_onnxrt_EP 已加载0x980f6d0
    最终创建的子图数为:2、-卸载节点- 271、总节点- 274
    应用程序:初始化...!!!
    内存:初始化...!!!
    MEM:已初始化的 DMA 堆(FD=5)!!!
    内存:初始化...完成!!!
    IPC:初始化...!!!
    IPC:初始化...完成!!!
    remote_servic: init…!!
    Remote_servic:初始化...完成!!!
    41.756330s:GTC 频率= 200 MHz
    应用程序:初始化...完成!!!
    41.760733 s:vx_zone_init:Enabled
    41.760775 s:vx_zone_error:Enabled
    41.760784:vx_zone_warning:Enabled
    41.762344 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-0
    41.762531 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-1
    41.762982 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-2
    41.763095 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-3
    41.763110 s:vx_zone_init:[tivxInitLocal:136]初始化已完成!!
    41.763488 s:vx_zone_init:[tivxHostInitLocal:101]主机初始化已完成!!!
    41.789012 s:vx_zone_error:[ownContextSendCmd:875]命令确认消息返回失败 cmd_status:-1
    41.789053 s:vx_zone_error:[ownNodeKernelInit:590]目标内核 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败
    41.789064 s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
    41.789076 s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误
    41.789090 s:vx_zone_error:[GraphownNodeKernelInit:608] kernel init for node 0、kernel com.ti.tidl:1:3... failed!!(已失败!)
    41.789108 s:vx_zone_error:[vxVerifyGraph:2159] Node kernel init failed (41.789108 s:vx_zone_error:[vxVerifyGraph:2159]内核初始化失败
    41.789118 s:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
    TIDL_RT_OVX:错误:正在验证 TIDL 图形...失败!!!
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败
    ——

    我参考了以下 URL、但似乎我的问题与它们无关。
    1. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1227571/faq-sk-tda4vm-error-while-running-custom-compiled-model
    我执行了"./vx_app_arm_remote_log.out &"命令、但没有收到任何网络错误。

    2. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1296992/processor-sdk-am68a-tidl_rt_ovx-error-verify-openvx-graph-failed
    我在下面使用的。
    edgeai-tidl-tool: 09_02_09_00
    edgeai-benchmark: r9.2.

    您是否有解决此问题的任何想法?

    此致、

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

    您好!

    以前、我没有正确运行"tidl-onnx-model-optimizer"。 生成"optimized_xxxx"模型后、我在 edgeai-benchmarking 和 edgeai-tidl-tool 上重新编译了模型。
    生成文件后、我将其部署在 AM62A EVM 上并运行应用程序。
    因此、我可以确认显示器上的摄像头图像、并可能达到以下基准。
    ----------------------------------------------------------- +
    物体检测|
    ----------------------------------------------------------- +
    ----------------------------------------------------------- +
    |输入 src:/dev/video-usb-cam0 |
    模型名称: yolov8_s_syncbn_fast_8xb16-100e_coco |
    型号类型:检测|
    ----------------------------------------------------------- +
    | dl-inference : 81.89ms from 83 samples |
    |总时间:101.66ms、从82个样本|
    帧速率: 9.84 fps (来自82个样本)|
    ----------------------------------------------------------- +
    但是、我仍然面临以下问题。

    *我继续观察到以下错误。
    vx_zone_error:[ownNodeKernelInit:590]目标内核 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败

    你可以给你的想法,以解决上述问题吗?

    此致、


    e2e.ti.com/.../Log_5F00_for_5F00_E2E_2D002D00_20250116.txt


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

    您好!

    请给我们几天时间来调查此问题。

    此致、

    建中

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

    尊敬的 Machida-San:

    我无法立即从日志中指明错误。

    我会注意到、如果将"-n"传递给 app_edgeai.py 脚本、将提供更多可读打印内容。 该选项禁用 ncurses、这会使 stdout 难以读取。

    我执行了"./vx_app_arm_remote_log.out &"命令、但我没有收到任何网络错误。
    [报价]

    为了显示更多信息、我们需要通过 TIDL for VX 启用更高的详细度。 这是通过将 DEBUG_LEVEL 设置传递给 TIDL 来完成的。 必须通过 edgeai_dl_inferer.py (SDK /usr/lib/python3.10/site-packages/edgeai_dl_inferer.py 上的路径)进行如下设置:  

                if enable_tidl:
                    runtime_options = { 
                        "tidl_tools_path": "null",
                        "artifacts_folder": artifacts,
                        "core_number": core_number,
    ---->               'debug_level': 2, #Add by RG                                                                 
                    }   
                    sess_options = _onnxruntime.SessionOptions()
                    sess_options.log_severity_level=3
                    ep_list = ["TIDLExecutionProvider", "CPUExecutionProvider"]
    
    

    使用 edgeai-gst-apps 时、这是在9.2 SDK 中传递此选项的理想方法。 我可以分享一些备选方案。

    将 DEBUG_LEVEL 增加到1或2后、/opt/vx_app_arm_remote_log.out 应该会提供更多信息。 使用-n 标签运行 app_edgeai.py 时、请提供此完整日志。

    如果您已在未复位器件的情况下运行了多次应用、最好是这样做。 如果应用程序在内核正常停止之前被终止,则出错的应用程序可能会使 HWA 处于不稳定状态。 我建议在出现此类错误时定期重启。  

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的答复。
    >一旦将 DEBUG_LEVEL 增加到1或2、/opt/vx_app_arm_remote_log.out 应提供更多>信息。 使用-n 标签运行 app_edgeai.py 时、请提供此完整日志。
    附加了 在"edgeai_dl_inher.py"上添加"debug_level : 2"命令时的结果。  

    *$ ./ app_edgeai.py ../configs/yolov8.yaml -n

    >使用 edgeai-gst-apps 时,这是在9.2 SDK 中传递此选项的最佳方式。 我可以>分享一些备选方案。
    是的、我使用的是 SDK 09.02.00.05。

    此致、

    e2e.ti.com/.../Log_5F00_for_5F00_E2E_2D002D00_20250120.txte2e.ti.com/.../4152.vx_5F00_app_5F00_arm_5F00_remote_5F00_log.zip


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

    尊敬的 Reese-San:

    启用 DEBUG_LEVEL 为"2"后、我重新运行"vx_app_arm_remote_log.out"。 那么我得到了以下结果。

    ——
    root@am62axx-evm:/opt/vision_apps #./vx_app_arm_remote_log.out
    [1] 1703
    root@am62axx-evm:/opt/vision_apps [MCU1_0] 0.043794 s:cio:init……done!!
    [MCU1_0] 0.043833 s:应用:初始化...!!
    [MCU1_0] 0.043863 s:MEM:init……!!
    [MCU1_0] 0.043881 s:MEM:已创建堆(DDR_LOCAL_MEM、id=0、flags=0x00000004)@ af000000大小16777216字节!!
    [MCU1_0] 0.043920 s:MEM:初始化...完成!!
    [MCU1_0] 0.043946 s:IPC:初始化...!!
    [MCU1_0] 0.043962 s:IPC:3个 CPU 参与 IPC!!
    [MCU1_0] 0.044264s:IPC:等待 HLOS 准备就绪...!!
    [MCU1_0] 0.048614 s:#Sciserver 版本:v2023.11.0.0REL.MCUSDK.MM.NN.PP.bb
    [MCU1_0] 0.051387 s:#RM_PM_HAL 版本:VMM.NN.PP
    [MCU1_0] 0.054334 s:##Starting Sciserver... 通过
    [MCU1_0] 12.441321 s:IPC:HLOS 已准备就绪!!
    [MCU1_0] 12.441404 s:IPC:初始化...完成!!
    [MCU1_0] 12.441428 s:应用程序:正在与2个 CPU 同步...!!
    [MCU1_0] 12.441449 s:应用程序:正在与2个 CPU 同步...完成!!!
    [MCU1_0] 12.441468 s:remote_service:init……!!
    [MCU1_0] 12.441538 s:remote_service:init……完成!!
    [MCU1_0] 12.441561 s:FVID2:初始化...!!
    [MCU1_0] 12.441589 s:FVID2:初始化...完成!!
    [MCU1_0] 12.441605 s:VHWA:VPAC Init……!!
    [MCU1_0] 12.441619s:SCICLIENT:Sciclient_pmSetModuleState 模块=219状态=2
    [MCU1_0] 12.441705 s:SCICLIENT:Sciclient_pmSetModuleState 成功
    [MCU1_0] 12.441727 s:VHWA:LDC Init……!!
    [MCU1_0] 12.441820 s:VHWA:LDC 初始化...完成!!
    [MCU1_0] 12.441841 s:VHWA:MSC Init……!!
    [MCU1_0] 12.442157 s:VHWA:MSC 初始化...完成!!!
    [MCU1_0] 12.442176s:VHWA:VISS Init……!!
    [MCU1_0] 12.442314 s:VHWA:VISS Init……完成!!
    [MCU1_0] 12.442334 s:VHWA:VPAC 初始化...完成!!
    [MCU1_0] 12.442359 s:vx_zone_init:Enabled
    [MCU1_0] 12.442378 s:vx_zone_error:Enabled
    [MCU1_0] 12.442393 s:vx_zone_warning:Enabled
    [MCU1_0] 12.443309 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MCU1-0
    [MCU1_0] 12.443439 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 VPAC_LDC1
    [MCU1_0] 12.443586 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 VPAC_MSC1
    [MCU1_0] 12.443693 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 VPAC_MSC2
    [MCU1_0] 12.443762s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 VPAC_VISS1
    [MCU1_0] 12.443793 s:vx_zone_init:[tivxInitLocal:136]初始化已完成!!
    [MCU1_0] 12.443814 s:app:OpenVX Target kernel init……!!
    [MCU1_0] 12.447518 s:应用程序:OpenVX 目标内核初始化...完成!!
    [MCU1_0] 12.447545 s:VISS 远程服务:init……!!
    [MCU1_0] 12.447587 s:VISS 远程服务:初始化...完成!!
    [MCU1_0] 12.447605 s:应用程序:初始化...完成!!
    [MCU1_0] 12.447620 s:应用程序:运行...!!
    [MCU1_0] 12.447634 s:IPC:正在启动回声测试...
    [MCU1_0] 12.447741 s:应用程序:运行...完成!!!
    [MCU1_0] 12.448331s:IPC:回波状态:a530-0[.] r5f0-0[s] c75ss0[P]
    [C7x_1 ] 12.071864 s:CIO:init……done!!
    [C7x_1 ] 12.071882 s:应用程序:初始化...!!
    [C7x_1 ] 12.071893 s:SCICLIENT:init ...!!
    [C7x_1 ] 12.071958 s:SCICLIENT:DMSC FW 版本[9.2.7--v09.02.07 (Kool Koala )]
    [C7x_1 ] 12.071977 s:SCICLIENT:DMSC 固件版本0x9
    [C7x_1 ] 12.071991 s:SCICLIENT:DMSC FW ABI 修订版3.1
    [C7x_1 ] 12.072006 s:SCICLIENT:init ... done!!
    [C7x_1 ] 12.072018 s:uDMA:init ...!!
    [C7x_1 ] 12.072030 s:uDMA:初始化...完成!!
    [C7x_1 ] 12.072041 s:存储器:初始化...!!
    [C7x_1 ] 12.072054 s:MEM:已创建堆(DDR_LOCAL_MEM、id=0、flags=0x00000004)@ b2000000、大小为117440512字节!!
    [C7x_1 ] 12.072081 s:存储器:初始化...完成!!
    [C7x_1 ] 12.072093 s:IPC:初始化...!!
    [C7x_1 ] 12.072105 s:IPC:3个 CPU 参与 IPC!!
    [C7x_1 ] 12.072310 s:IPC:等待 HLOS 准备就绪...!!
    [C7x_1 ] 12.078244 s:IPC:HLOS 已准备就绪!!
    [C7x_1 ] 12.078314 s:ipc:初始化...完成!!
    [C7x_1 ] 12.078328 s:应用程序:正在与2个 CPU 同步...!!
    [C7x_1 ] 12.441450 s:应用程序:正在与2个 CPU 同步...完成!!!
    [C7x_1 ] 12.441467 s:remote_service:init ...!!
    [C7x_1 ] 12.442262 s:remote_service:init ...完成!!
    [C7x_1 ] 12.442286 s:vx_zone_init:Enabled
    [C7x_1 ] 12.442300 s:vx_zone_error:Enabled
    [C7x_1 ] 12.442313 s:vx_zone_warning:Enabled
    [C7x_1 ] 12.443024 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1
    [C7x_1 ] 12.443116 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_2
    [C7x_1 ] 12.443217 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_3
    [C7x_1 ] 12.443310 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_4
    [C7x_1 ] 12.443402 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_5
    [C7x_1 ] 12.443495 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_6
    [C7x_1 ] 12.443587 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_7
    [C7x_1 ] 12.443678 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 DSP_C7-1_PRI_8
    [C7x_1 ] 12.443706 s:vx_zone_init:[tivxInitLocal:136]初始化已完成!!
    [C7x_1 ] 12.443722 s:应用程序:OpenVX 目标内核初始化...!!
    [C7x_1 ] 12.443928 s:应用程序:OpenVX 目标内核初始化...完成!!
    [C7x_1 ] 12.443946 s:应用程序:初始化...完成!!
    [C7x_1 ] 12.443958 s:应用程序:运行...!!!
    [C7x_1 ] 12.443971 s:IPC:正在启动回声测试...
    [C7x_1 ] 12.444074 s:应用程序:运行...完成!!!
    [C7x_1 ] 12.448410 s:ipc: echo status:a530-0[.] r5f0-0[P] c75ss0[s]
    [C7x_1 ] 842.534263 s:vx_zone_error:[tivxAlgiVisionCreate:335]调用 ialg.algInit 失败、状态=-1121
    [C7x_1 ] 842.534315 s:vx_zone_error:[tivxKernelTIDLCreate:926] tivxAlgiVisionCreate 返回 NULL
    [C7x_1 ] 913.267666 s:vx_zone_error:[tivxAlgiVisionCreate:335]调用 ialg.algInit 失败、状态=-1121
    [C7x_1 ] 913.267720 s:vx_zone_error:[tivxKernelTIDLCreate:926] tivxAlgiVisionCreate 返回 NULL
    [C7x_1 ] 915.114007 s:vx_zone_error:[tivxKernelTIDLCreate:910]网络版本- 0x00000000、预期版本- 0x20240401
    [C7x_1 ] 915.168162 s:vx_zone_error:[tivxKernelTIDLCreate:910] Network version - 0x00000000、expected version - 0x20240401
    [C7x_1 ] 915.212917 s:vx_zone_error:[tivxKernelTIDLCreate:910] Network version - 0x00000000、expected version - 0x20240401
    [C7x_1 ] 915.242046 s:vx_zone_error:[tivxKernelTIDLCreate:910]网络版本- 0x00000000、预期版本- 0x20240401
    ——

    根据此、"Network version"显示"0x00000000"。 为什么会出现这种情况?

    BR、

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

    您好!

    啊、看起来编译失败了。 该网络版本作为模型编译过程的后期阶段填写。

    您能否提供编译日志? 还请在编译委托选项中传递 DEBUG_LEVEL=2。

    您能否在 x86 PC 上运行模型来模拟 C7xMMA? 我预计这会无法用于您的当前模型工件。

    上周、我还通过私人消息与您分享了我的模特作品。

    对反应缓慢表示歉意--由于培训和当地假期、我的可用性有限。

    BR、
    Reese

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

    您好!

    首先,我使用您通过私人消息发送的"模型工件"文件运行模型。
    但是、我看到了如下所示的相同误差。

    ——
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python ./app_edgeai.py ../configs/yolov8.yaml -n
    libtidl_onnxrt_EP 已加载0x39139a60
    最终创建的子图数为:1、-卸载节点- 277、总节点- 277
    应用程序:初始化...!!!
    内存:初始化...!!!
    MEM:已初始化的 DMA 堆(FD=5)!!!
    内存:初始化...完成!!!
    IPC:初始化...!!!
    IPC:初始化...完成!!!
    remote_servic: init…!!
    Remote_servic:初始化...完成!!!
    105.881719s:GTC 频率= 200 MHz
    应用程序:初始化...完成!!!
    105.881858 s:vx_zone_init:Enabled
    105.881873 s:vx_zone_error:Enabled
    105.881882 s:vx_zone_warning:Enabled
    105.882797 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-0
    105.883097 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-1
    105.883455 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-2
    105.883723 s:vx_zone_init:[tivxPlatformCreateTargetId:116]添加了目标 MPU-3
    105.883756 s:vx_zone_init:[tivxInitLocal:136]初始化已完成!!!
    105.884255 s:vx_zone_init:[tivxHostInitLocal:101]主机初始化已完成!!!
    105.914990 s:vx_zone_error:[ownContextSendCmd:875]命令确认消息返回失败 cmd_status:-1
    105.915031 s:vx_zone_error:[ownNodeKernelInit:590]目标内核 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败
    105.915043 s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
    105.915055 s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误
    105.915070 s:vx_zone_error:[GraphNodeKernelInit:608] kernel init for node 0、kernel com.ti.tidl:1:1... failed!!
    105.915086 s:vx_zone_error:[vxVerifyGraph:2159] Node kernel init failed.(105.915086 s:vx_zone_error:[vxVerifyGraph:2159]内核初始化失败。
    105.915097 s:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
    TIDL_RT_OVX:错误:正在验证 TIDL 图形...失败!!!
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败
    [100.193010] USB 1-1:使用 xhci-hcd 重置2号高速 USB 器件
    ==== [输入流水线(S)]====

    [PIPE-0]

    v4l2src 设备=/dev/video-usb-cam0亮度=128对比度=32饱和度=32 ! capsfilter caps="image/jpeg, width=(int)1280, height=(int)720;"! jpegdec! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12;"! tiovxmultiscaler name=split_01
    SPLIT_01。 ! 队列! capsfilter caps="video/x-raw、width=(int) 1280、height=(int) 720;"! 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)640, height=(int)640;"! tiovxdlpreproc out-pool-size=4 scale-0=0.00392200006172061 scale-1=0.00392200006172061 scale-2=0.00392200006172061! 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) 1280、height=(int) 720;"! 队列! mosaic_0.sink_0

    tiovxmosaic target=1 background=/tmp/background_0 name=mosaic_0 src::pool-size=4
    Sink_0::startx="<320>" sink_0:starty="<150>" sink_0::width="<1280>" sink_0::heights="<720>"
    ! capsfilter caps="video/x-raw、format=(string) NV12、width=(int) 1920、height=(int) 1080;"! 队列! tiperfoverlay title=物体检测! kmssink sync=False 最大延迟=5000000 QoS =真正的处理-最后期限=15000000 driver-name=tidss connector-id=40 plane-id=31 force-modesetting=True

    107.762104 s:vx_zone_error:[ownContextSendCmd:875]命令确认消息返回失败 cmd_status:-1
    107.762161 s:vx_zone_error:[ownNodeKernelInit:590]目标内核 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败
    107.762189 s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
    107.762206 s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误
    107.762227 s:vx_zone_error:[GraphNodeKernelInit:608] kernel init for node 0、kernel com.ti.tidl:1:1... failed!!
    107.762255 s:vx_zone_error:[vxVerifyGraph:2159] Node kernel init failed (107.762255 s:vx_zone_error:[vxVerifyGraph:2159]内核初始化失败
    107.762271 s:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
    107.762464 s:vx_zone_error:[ownScheduleGraphWrapper:885]图未处于需要调度的状态
    107.762482 s:vx_zone_error:[vxProcessGraph:813]计划图失败
    107.762497 s:vx_zone_error:[vxProcessGraph:818]等待图失败
    错误:正在运行 TIDL 图形...失败!!!
    107.832261 s:vx_zone_error:[ownContextSendCmd:875]命令确认消息返回失败 cmd_status:-1
    107.832318 s:vx_zone_error:[ownNodeKernelInit:590]目标内核 TIDLNode 的 TIVX_CMD_NODE_CREATE 失败
    107.832334 s:vx_zone_error:[ownNodeKernelInit:591]请确保已为此内核注册目标回调
    107.832348 s:vx_zone_error:[ownNodeKernelInit:592]如果目标回调已注册、请确保此内核的 create 回调中没有出现错误
    107.832366 s:vx_zone_error:[GraphNodeKernelInit:608] kernel init for node 0、kernel com.ti.tidl:1:1... failed!!
    107.832394 s:vx_zone_error:[vxVerifyGraph:2159] Node kernel init failed.(107.832394 s:vx_zone_error:[vxVerifyGraph:2159]内核初始化失败。
    107.832407:vx_zone_error:[vxVerifyGraph:2213]图形验证失败
    107.832565:vx_zone_error:[ownScheduleGraphWrapper:885]图未处于需要调度的状态
    107.832580 s:vx_zone_error:[vxProcessGraph:813]计划图失败
    107.832593 s:vx_zone_error:[vxProcessGraph:818]等待图失败
    错误:正在运行 TIDL 图形...失败!!
    ——

    >您能提供编译日志吗? 还请在编译委托选项中传递 DEBUG_LEVEL=2。
    您的意思是在我执行"run_python_example.sh"时需要日志吗?

    >您可以在 x86 PC 上运行模型来模拟 C7xMMA 吗?
    我不确定如何更改仿真设备。 你是否知道任何 repo 是关于这方面的描述?

    BR、

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

    您好!

    很抱歉、我从编译日志看到、打印输出的其余部分中隐藏了错误消息。 我在分享的模型中错过了这个。 您的和我的模型版本都 以相同的方式失败。 由于模型编译的最后一部分失败(关于网络编译器的行之后出现 SEG 故障)、输出伪影不完整。  

    请允许我在后端查看此问题、了解可能存在的问题。 我在9.2.9 TIDL 工具和9.2.6上看到了相同的行为

    我还在更新版本的 SDK/工具(即10.1版 TIDL 标签10_01_02_00、SDK 版本10.1.0.5)上尝试了这一点、但获得了更多成功。 您愿意尝试这种方法吗?  

    我将寻求9.2 SDK 的权变措施、但我预计10.1会更直接。

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的答复。

    >我也在更高版本的 SDK /工具,版本10.1 (TIDL 标记10_01_02_00, SDK 版本10.1.0.5)上尝试过这种方法,但取得了更大的成功。 您愿意尝试这种方法吗?  
    好的。 我会尝试它。 但是、我担心的是与 edgeai-benchmark 的兼容性。
    目前,你披露高达"r9.2",是可以使用这个为"ver 10 "?

    此致、

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

    您好、Machida-San、

    目前、您披露的最高为"r9.2"、是否可以将其用于"ver 10"?

    在10.0 SDK 发布之前、edgeai-benchmarking 工具已合并到一个称为 edgeai-tensorlab 的更大存储库中。 请参阅此处: https://github.com/TexasInstruments/edgeai-tensorlab/blob/main/edgeai-benchmark、 其中有 r10.0的分支

    因此、您可以克隆 edgeai-tensorlab 存储库、并在 edgeai-tensorlab/edgeai-tensorlab 目录下使用独立 edgeai-benchmark 存储库中的相同策略。

    您可以尝试使用 tensorlab 执行以下操作:

    • 运行 tensorlab 的设置脚本
    • 设置 TIDL_TOOLS_PATH 和 LD_LIBRARY_PATH 以指向 edgeai-tensorlab/edgeai-benchmark/tools/AM62A/tidl_tools。
    • 然后、您可以使用 r9.2 edgeai-benchmark (原始的)来编译 SDK 10.0

    如文档中所述、9.2 SDK 和10.0 SDK 之间也有一些兼容性: https://github.com/TexasInstruments/edgeai-tidl-tools/blob/10_00_07_00/docs/backward_compatibility.md

    • 按照此处的说明、您可以使用9.2 SDK 之上的10_00_00_07版本。 它需要运行一些脚本来更新一些库、否则您可以在9.2 SDK 中使用10.0工具
    • 如果我们在前面提到的 tensorlab 方法中遇到问题、请务必尝试执行此操作

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的答复。
    我将通过克隆"edgeai-tensorlab"尝试使用 AM62A Linux SDK 10.01.00.05版、"edgeai-tidl-tools"版本10_01_02_00"和"edgeai-benchmark"版本10.0.2。

    此致、  

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

    您好、Machida-San、

    感谢您的回复。
    我将通过克隆"edgeai-tensorlab"来尝试使用 AM62A Linux SDK 10.01.00.05版、"edgeai-tidl-tools"版本10_01_02_00"和"edgeai-benchmark"版本10.0.2。

    听起来不错。 这里我要说明的唯一一点是、您需要使用指向10.1 SDK 工具的 TIDL_TOOLS_PATH 进行编译。 在此处使用 edgeai-tidl-tools ((edgeai-tidl-tools/tidl_tools/)中的工具、因为 edgeai-tensorlab 尚未发布10.1版本。  

    设置这些报告时、请确保  Linux 命令行中未设置 TIDL_TOOLS_PATH 变量。

    BR、
    Reese

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

    尊敬的 Reese-San:

    >我在这里唯一要注意的是,你需要使用指向10.1 SDK 工具的 TIDL_TOOLS_PATH 进行编译。 在此处使用 edgeai-tidl-tools ((edgeai-tidl-tools/tidl_tools/)中的工具、因为 edgeai-tensorlab 尚未发布10.1版本。  
    噢! 我正在尝试创建一个独立于 edgeai-tidl-tools 的新虚拟机环境。 但是、从您的回复中、我知道我应该在同一虚拟机条件下同时创建 edgeai-tidl-tools 和 edgeai-tensorlab。 (但是、应使用 venv 和 docker 等来分隔编译环境。)
    我的理解是否正确?

    BR、

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

    尊敬的 Reese-San:

    还有一点。
    如上所示、我正在尝试使用 AM62A Linux SDK ver 10.01.00.05、但我拥有的"SDK 10.01.00.05"和 AM62A EVM 组合存在问题。
    (这是相关主题。
    (+) PROCESSOR-SDK-AM62A:使用"tiboot3-am62ax-gp-evm.bin"时的引导堆栈-处理器论坛-处理器- TI E2E 支持论坛)
    据我的说法、这个问题与我拥有的更高版本的 SDK 10和 AM62A EVM 相关。 我还需要解决这个问题才能在 EVM 上部署模型。
    因此、我可能需要更多信息来确认模型...

    此致、  

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

    您好、Machida-San、

    好的、请告诉我该线程何时解决、我们可以在这里继续。 从我自己的经验来看、我在使用 SDK 10.x 时没有遇到过这样的困难  

    您使用的是 GP EVM 吗? 这些仍然应该得到支持、但我认为我所有的 FS EVM 现在都已被 HS-EVM 取代、我自己还没有看到。 我还建议尝试第二个 SD 卡,以防 SD 卡发生故障。 我有时不得不替换我的  

    BR、
    Reese

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

    您好、Machida-San、

    我想根据最近的学习情况快速采取后续行动。 据称、9.x SDK 中的 tidl-tools 已经在某些较高版本的 Linux 内核上展示了这种 SEG 错误行为。 我也遇到了这个问题(无法使用9.x 工具编译任何模型,这解释了为什么编译 yolov8在几个月前是工作的,但现在不工作。  

    我尝试将 Linux 内核降级到6.5.5、并能够编译模型。 否则、我运行的是内核6.8.0的 Ubuntu 22.04LTS --在这个版本中、我编译失败了。 这可能是问题的根源--在 x86 PC 中、您的内核版本是什么?

    BR、
    Reese

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

    尊敬的 Reese-San:

    >我尝试将我的 Linux 内核降级到6.5.5,并能够编译模型。 否则、我运行的是内核6.8.0的 Ubuntu 22.04LTS --在这个版本中、我编译失败了。 这可能是问题的根源--在 x86 PC 中、您的内核版本是什么?
    我在 VMware 上创建了 Linux 环境。 我的 Ubuntu 内核版本如下所示。
    * 6.8.0-52-通用

    可能和你的情况一样...

    顺便说一下、我之前编译了 yolox 模型。 当时我使用的是6.5.0- 17通用型。

    此致、

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

    尊敬的 Machida-San:

    可能与您的条件相同...
    [报价]

    是的、这很可能。  

    因此、我认为最简单的做法是更新到10.1 SDK。 为此、降级操作系统内核可能太不方便、但对于虚拟机来说、这可能不是那么困难。 不幸的是、Docker 容器不是可行的解决方案、因为它们与主机操作系统共享内核。

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

    尊敬的 Reese-San:

    我可以使用以下组合和运行模型来避免 openVX 错误。
    >AM62A Linux SDK 版本10.01.00.05、"edgeai-tidl-tools"版本10_01_02_00"和"edgeai-benchmark"版本10.0.2  

    - 1 -
    >我在这里唯一要注意的是,你需要使用指向10.1 SDK 工具的 TIDL_TOOLS_PATH 进行编译。 在此处使用 edgeai-tidl-tools ((edgeai-tidl-tools/tidl_tools/)中的工具、因为 edgeai-tensorlab 尚未发布10.1版本。
    您已在上面进行了介绍、但我是使用 "edgeai-tensorlab"上的"tidl-tools"进行编译的。
    我试图通过修改"run_set_env.sh"来更改环境值以指向"tidl-tools"目录、该目录位于"edgeai-tidl-tools"上
    但我遇到了一些"器件"错误。 (位于"edegeai-tidl-tools"的"tidl-tools"似乎没有位于每个"器件名称"下。)
    >导出 tidl_tools_path=$(pwd)/tools/${target_soc}/tidl_tools  

    因此、我使用了 位于"edgeai-tensorlab"上的"tidl-tools"。 然而、自定义模型运行正确。
    (有关详细信息、请参见附加的"E2E--20250131.txt"。)
    在我的环境之上有任何编译问题吗?

    - 2 -
    如果是上述"1"、正如我所说的、我可以运行模型、但我看不到任何边界框。
    因此、我通过修改 python 脚本来确认"CONFIDENCE"参数。 那么我得到了以下结果。
    (我正在查看"BBOX "变量。)

    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]

    这表明没有信心、因此我更改了定义了 edgeai-benchmark和 edgeai-tidl-tools 的"输入比例"参数
    之后我设定了边界框、但有些奇怪。

    VIZ_THRESHOLD 为[-0.08125 0.50625 0.15625 0.65625 0。 1.]
    VIZ_THRESHOLD 为[-0.16875 0.84375 0.13125 1.11875 0。 1.]
    VIZ_THRESHOLD 为[0.26875 0.85625 0.55625 1.0312499 0。 1.]
    VIZ_THRESHOLD 为[0.29375 0.85625 0.59375 1.11875 0。 1.]
    VIZ_THRESHOLD 为[0.36875 0.85625 0.66875 1.11875 0。 1.]
    VIZ_THRESHOLD 为[0.54375 0.81875 0.84375 1.11875 0。 1.]
    VIZ_THRESHOLD 为[0.6008245 0.85625 0.90625 1.11875 0。 1.]
    VIZ_THRESHOLD 为[0.64375 0.85625 0.93125 1.00625 0。 1.]
    VIZ_THRESHOLD 为[0.71875 0.85625 0.96875 1.03125 0。 1.]
    VIZ_THRESHOLD 为[0.79375 0.85625 1.09375 1.03125 0。 1.]
    VIZ_THRESHOLD 为[0.81875 0.93125 1.11875 1.03125 0。 1.]
    VIZ_THRESHOLD 为[0.86125696 0.81875 1.14375 1.01875 0。 1.]

    推理时间 变得太慢。  

    ----------------------------------------------------------- +
    物体检测|
    ----------------------------------------------------------- +
    ----------------------------------------------------------- +
    |输入 src:/dev/video-usb-cam0 |
    模型名称: yolov8_s_syncbn_fast_8xb16-100e_coco |
    型号类型:检测|
    ----------------------------------------------------------- +
    | dl-inference : 3904.98 ms from 5 samples |
    总时间: 3924.09ms 从4个样本|
    帧速率: 4个样本的0.25 fps |
    ----------------------------------------------------------- +

    "输入比例"的参数差异如下。

    上一页: 0.003921568627
    新: 1.

    我想看到模型参数"yolov8"的参考值、但似乎没有参考...
    您是否有"yolov8"的配置示例?

    此致、

    e2e.ti.com/.../E2E_2D002D00_20250131.txt

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

    您好、Machida-San、

    1)

    但我遇到了各种"device"错误。 (位于"edegeai-tidl-tools"的"tidl-tools"似乎没有位于每个"器件名称"下。)
    >导出 tidl_tools_path=$(pwd)/tools/${target_soc}/tidl_tools [/报价]

    是的、edgeai-tidl-tools 将仅在 edgeai-tidl-tools/tidl_tools 处创建一个 tidl_tools。 TIDL_TOOLS_PATH 变量需要指向此处。 您引用的脚本假定目录结构不同。 这是足够的`导出`变量到这个路径自己-没有魔术超过导出命令:)

    我在这里看不到编译日志--这个日志看起来是 edgeai-gst-apps.这是故意的吗?

    如果您的网络正在初始化并运行加速、那么您使用的工具应该没问题。 考虑到网络的标称运行时间为~60ms、我认为情况就是这样。 这接近于我在目标上的推理延迟(10.1 SDK)

    2)

    [报价 userid="80765" url="~/support/processors-group/processors/f/processors-forum/1459062/processor-sdk-am62a-yolov8-deployment-issue/5635514 #5635514"]
    我想看到模型参数"yolov8"的参考值、但似乎没有参考...
    您是否有"yolov8"的配置示例?

    好的、我来分享一下。 由于原始 MMYOLO 版本的复制许可限制,我们对 yolov8的在线资源/示例有限——这会阻止我们共享模型文件本身。

    输入预处理(包括缩放和均值)将取决于模型训练、而我们的训练基于上游 myolo。

    我在 edgeai-tidl-tools 中使用的配置是 SDK 10.1 (版本10_01_00_02)。 请注意、当我使用此配置时、

     'yolov8_s' : create_model_config(
            source=AttrDict(
                model_url='dummy',
                infer_shape=True,
            ),
            preprocess=AttrDict(
                resize=[640,640],
                crop=[640,640],
                data_layout='NCHW',
                resize_with_pad=False,
                reverse_channels=False,
            ),
            session=AttrDict(
                session_name='onnxrt' ,
                model_path=os.path.join(
                    models_base_path, "yolov8_small_lite_640x640_20231117_model.onnx"
                ),
                meta_layers_names_list=os.path.join(
                    models_base_path, "yolov8_small_lite_640x640_20231117_model.prototxt"
                ),            input_mean=[0,0,0],
                input_scale=[0.003921568627,0.003921568627,0.003921568627],
                input_optimization=True,
                meta_arch_type=8,
                od_type='yolo_v8',
            ),
            postprocess=AttrDict(
                formatter="DetectionBoxSL2BoxLS",
                resize_with_pad=True,
                keypoint=False,
                object6dpose=False,
                normalized_detections=False,
                shuffle_indices=None,
                squeeze_axis=None,
                reshape_list=[(-1, 5), (-1, 1)],
                ignore_index=None,
            ),
            task_type="detection",
            extra_info=AttrDict(
                od_type="YoloV5",
                framework="",
                num_images=numImages,
                num_classes=91,
                label_offset_type="80to90",
                label_offset=1,
            ),
            optional_options = {
             #'debug_level': 2,
            }
        ),

    我在 TI 模型上获得了良好的检测、但当我将相同项应用于您的模型时、就没有检测。 例如、我 通过将-d 传递到 edgeai-tidl-tools/edgeai-tools//examples/osrt_python/ort/onnxrt_ep.py.、使用 CPUExecutionProvider 运行模型 结果是原始图像上没有检测到(在库存图像上、因此您的模型可能有错误)

    [array([[[ 0.,  0.,  0.,  0.,  0., -1.]]], dtype=float32)]
    [array([[[ 0.,  0.,  0.,  0.,  0., -1.]]], dtype=float32)]
    

    我会得到非常不同的值、但在使用 input_scale=1和 mean=0运行时、可能不会以相同的方式来校正这些值。 它与 TIDL 无关。我无法分辨此处的问题是与输入预处理有关、还是与模型训练本身有关。

    这是一个很长的答案;让我退一步总结一下状态:

    • 通过升级到10.x SDK、我们解决了模型无法编译的问题(SEG 故障)。
      • 编译之前失败、因为9.x 工具对较新的 Linux 内核有错误模式(6.8.0上失败、在6.5.5上工作)
    • 现在、该模型在目标上运行
    • 模型结果不正确。 我将其与您的模型进行复制。
      • 在具有相同编译设置的 TI 内部模型上、检测是正确的
      • 在 CPU 上运行时、对模型的检测甚至不正确。 这表明训练或预处理有问题

    要解决该问题、您需要先使该模型在 CPU 上良好运行。 请使用-d 标签来禁用 TIDL 运行模型、并改用 CPUExecutionProvider

    BR、
    Reese

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

    尊敬的 Reese-San:

    对于1:

    是的、edgeai-tidl-tools 将仅在 edgeai-tidl-tools/tidl_tools 处创建一个 tidl_tools。 TIDL_TOOLS_PATH 变量需要指向此处。 您引用的脚本假定目录结构不同。 这是足够的`导出`变量到这个路径自己-没有魔术超过导出命令:)
    =>是的、之前我在更改了包含的"run_set_env.sh"上的"TIDL_TOOLS_PATE"后尝试进行编译 。 但我收到错误(我没有保存它、因此我无法在此时看到。)

    我在这里看不到编译日志--这个日志看起来是 edgeai-gst-apps.这是故意的吗?
    =>是的。

    此致、

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

    尊敬的 Reese-San:

    对于2:

    • 通过升级到10.x SDK、我们解决了模型无法编译的问题(SEG 故障)。
      • 编译之前失败、因为9.x 工具对较新的 Linux 内核有错误模式(6.8.0上失败、在6.5.5上工作)
    • 现在、该模型在目标上运行
    • 模型结果不正确。 我将其与您的模型进行复制。
      • 在具有相同编译设置的 TI 内部模型上、检测是正确的
      • 在 CPU 上运行时、对模型的检测甚至不正确。 这表明训练或预处理有问题

    要解决该问题、您需要先使该模型在 CPU 上良好运行。 请使用-d 标签来禁用 TIDL 运行模型、并改用 CPUExecutionProvider

    =>
    我对模型配置进行了几处更改。
    然后我注意到了以下事情。

    2-1. 如您所述、我执行了以下命令以检查是否可以正确观察边界框。
    案例1:使用我发布的1/31 (文件名:E2E--20250131.txt)相同的设置(设置文件为"E2E_ORG--202502020.txt")
    我执行"python3 onnxrt_ep.py -d "时的结果如下所示。

    没有边界框。 (这似乎与板载(EVM)结果的条件相同。)

    案例2:更改"od_type"和"framework"(在"extra_info"中定义)。(设置文件为"E2E_CH_OD_TYPE--20250204.txt")
    之前:
    OD_TYPE="YOL_V8"
    framework="MMDetection"
    之后:
    OD_TYPE="YoloV5"
    framework=""

    我执行"python3
    onnxrt_ep.py -d "时的结果如下所示。


    我可以看到边界框。
    我把这个"工件"部署到 SD 卡上、并在 EVM 上执行应用。
    但是、虽然我没有看到任何错误、但我无法在 EVM 上看到边界框。
    和"BBOX "变量与前一个(2025/1/31)相同。

    对于2-2
    首先,我试探了你所张贴的设置。
    但是、当我应用以下设置时、我可能会看到错误。

    *在"会话"变量中
    - input_optimization=True
    - od_type='yolo_v8'

    选择区域2-3
    我怀疑"输入均值"和"输入比例"可能会导致这个问题。
    我正在重新检查发布在以下 URL 上的模型配置。
    https://github.com/open-mmlab/mmyolo/blob/main/configs/yolov8/yolov8_s_syncbn_fast_8xb16-500e_coco.py

    根据这一点,"均值"似乎设置为"0 "(这与我的和你的设置相同)。 但是、我不确定"缩放"设置。
    您能告诉我您如何将此值确定为"0.003921568627"吗?

    此致

    e2e.ti.com/.../E2E_5F00_ORG_2D002D00_20250204.txte2e.ti.com/.../E2E_5F00_CH_5F00_OD_5F00_type_2D002D00_20250204.txt

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

    您好、Machida-San、

    让我从这里开始:

    您能告诉我您是如何决定这个值为"0.003921568627"的吗?

    是的、这是1/255。 因此、如果均值和此比例为0、则正在对图像(uint8)进行标准化、使其在间隔[0、1]上具有所有值。

    请参阅以下您建议的链接、均值为0、比例为255。 我认为、这些培训框架中的预处理惯例就是这样  

    Processed_input =(输入-平均值)/标准

    • 在我们的脚本中、我们将 SCALE 值相乘、而不是除以 std。 不过、这个概念是相同的。

    https://github.com/open-mmlab/mmyolo/blob/8c4d9dc503dc8e327bec8147e8dc97124052f693/configs/yolov8/yolov8_s_syncbn_fast_8xb16-500e_coco.py#L100 

    • 它们还使用平均值0和 std=255。 因此、等效标度将为1/255=0.0039215……

    --------------------------------------------------------

    感谢提供测试图像、这实际上非常有用。 这样、mean=0和 scale=1/255、我可以获得一个体面的边界框、其中包含-d (CPU)和 C7xMMA 仿真(无参数)。 检测框略有不同、但名义上覆盖了图像中显示的相同区域。 我的配置与您的配置非常相似、并产生了良好的仿真结果。

    'yolov8_s_machida' : create_model_config(
            source=AttrDict(
                model_url='dummy',  
                infer_shape=True,
            ),
            preprocess=AttrDict(
                resize=[640,640],
                crop=[640,640],
                data_layout='NCHW',
                resize_with_pad=False,
                reverse_channels=False,
            ),
            session=AttrDict(
                session_name='onnxrt' ,
                model_path=os.path.join(
                    models_base_path, "best_coco_bbox_mAP_epoch_93.onnx"
                ),
                meta_layers_names_list=os.path.join(
                    models_base_path, "best_coco_bbox_mAP_epoch_93.prototxt"
                ),            
                input_mean=[0,0,0],
                input_scale=[1/255,1/255,1/255],
                input_optimization=False,
                meta_arch_type=8,
            ),
            postprocess=AttrDict(
                formatter="DetectionBoxSL2BoxLS",
                resize_with_pad=True,
                keypoint=False,
                object6dpose=False,
                normalized_detections=False,
                shuffle_indices=None,
                squeeze_axis=None,
                reshape_list=[(-1, 5), (-1, 1)],
                ignore_index=None,
            ),
            task_type="detection",
            extra_info=AttrDict(
                od_type='YoloV5', #od_type="YoloV5" or yolo_v8
                framework="", #or ''
                num_images=numImages,
                num_classes=1,
                label_offset_type="80to90",
                label_offset=1,
            ),
        }

    在这里、我还可以验证目标上的精度与仿真相匹配。 我将 edgeai-tidl-tools 复制到了目标、并运行了相同的脚本(运行时间接近64ms、其中~50ms 是实际 C7xMMA 卸载时间)。 输出与 x86 PC 仿真相同。  在目标上使用这些相同的脚本 可确保以相同的方式处理预处理。

    对于您的测试、您可以尝试在固定映像上运行此操作吗? 可能也值得打印实际输出、以便您可以自行调查值。 在 edgeai-gst-apps (和其他软件工具)中、通常存在置信阈值。 例如、 configs/object_detection.yaml 中的 viz_threshold。 尝试将其设置为较低的值、如0.1。 对于您的测试图像、我看到的置信度为0.31、这将低于典型默认值0.6

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的确认。

    对于您的测试、您可以尝试在固定映像上运行此操作吗? 可能也值得打印实际输出、以便您可以自行调查值。 在 edgeai-gst-apps (和其他软件工具)中、通常存在置信阈值。 例如、 
    configs/object_detection.yaml 中的 viz_threshold。 尝试将其设置为较低的值、如0.1。 对于您的测试图像、我看到的置信度为0.31、这将低于典型默认值0.6
    =>我将映像复制到 SD 卡、并把"YAML"文件改为引用静态映像。
    并且还将 viz_threshold 更改为"0.1"。 但是、我无法确认 EVM 上的边界框。

    EVM 上显示的置信度为"0.31"吗?
    以下是上述条件下的结果(使用静态图像并将 viz_threshold "0.1"更改为"0.1")
    ---
    root@am62axx-evm:/opt/edgeai-gst-apps。app_edgeai.py。。。/configs/yolov8.yaml
    -sh:./app_edgeai.py:没有这样的文件或目录
    root@am62axx-evm:/opt/edgeai-gst-apps CD apps_python/
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python。app_edgeai.py。。。/configs/yolov8.yaml
    libtidl_onnxrt_EP 已加载0x1fe38c0
    最终创建的子图数为:1、-卸载节点- 277、总节点- 277
    应用程序:初始化...!!!
    350.164317 s:内存:init ...!!
    350.164403 s:MEM:已初始化 DMA 堆(FD=5)!!
    350.164597 s:内存:初始化...完成!!
    350.164629 s:IPC:初始化...!!
    350.181850 s:IPC:初始化...完成!!
    remote_servic: init…!!
    Remote_servic:初始化...完成!!!
    350.186493 s:GTC 频率= 200 MHz
    应用程序:初始化...完成!!!
    350.186657 s:vx_zone_info:全局启用 vx_zone_error
    350.186674 s:vx_zone_info:全局启用 vx_zone_warning
    350.186687 s:vx_zone_info:全局启用 vx_zone_info
    350.187834 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-0
    350.188168 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-1
    350.188503 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-2
    350.188756 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-3
    350.188793 s:vx_zone_info:[tivxInitLocal:126] Initialization done!!
    350.188836s:vx_zone_info:全局禁用 vx_zone_info
    ==== [输入流水线(S)]====

    [PIPE-0]

    multifilesrc location=/opt/edgeai-test-data/images/cat1.jpg loop=True! jpegdec! videoscale QoS =正确! capsfilter caps="video/x-raw、width=(int) 1280、height=(int) 720;"! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12;"! tiovxmultiscaler name=split_01
    SPLIT_01。 ! 队列! capsfilter caps="video/x-raw、width=(int) 1280、height=(int) 720;"! 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)640, height=(int)640;"! tiovxdlpreproc out-pool-size=4 scale-0=0.00392200006172061 scale-1=0.00392200006172061 scale-2=0.00392200006172061! 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) 1280、height=(int) 720;"! 队列! mosaic_0.sink_0

    tiovxmosaic target=1 background=/tmp/background_0 name=mosaic_0 src::pool-size=4
    Sink_0::startx="<320>" sink_0:starty="<150>" sink_0::width="<1280>" sink_0::heights="<720>"
    ! capsfilter caps="video/x-raw、format=(string) NV12、width=(int) 1920、height=(int) 1080;"! 队列! tiperfoverlay title=物体检测! kmssink sync=False 最大延迟=5000000 QoS =真正的处理-最后期限=15000000 driver-name=tidss connector-id=40 plane-id=31 force-modesetting=True fd=35

    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    ---

    此致、  

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

    尊敬的 Reese-San:

    是否可以共享您在"edgeai-tensorlab"上生成的文件(dataset.yaml、config.yaml、param.yaml 和 run.log)?

    BR、

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

    尊敬的 Reese-San:

    作为审判,我在下面执行。

    这里我要说明的唯一一点是、您需要使用指向10.1 SDK 工具的 TIDL_TOOLS_PATH 进行编译。 在此处使用 edgeai-tidl-tools ((edgeai-tidl-tools/tidl_tools/)中的工具、因为 edgeai-tensorlab 尚未发布10.1版本。  

    设置这些报告时、请确保  Linux 命令行中未设置 TIDL_TOOLS_PATH 变量。
    =>首先、我参考了"run_set_env.sh"上的"edgeai-tidl-tools"中包含的"TIDL_tools_path" 。
    然后、我收到以下错误。 (这个错误是我在该线程中所说的前一个错误。)

    ——
    (基准测试) Machida@Machida-VirtualBox:~/ti-processor-sdk-linux-edgeai-am62a-evm-10_01_00_05/edgeai-tensorlab /edgeai-benchmark$./run_custom_pc.sh AM62A
    TARGET_SOC:AM62A
    target_machine:PC
    调试模式:false @ Machida-VirtualBox:5678
    TIDL_TOOLS_PATH=/home/machida/ti-processor-sdk-linux-edgeai-am62a-evm-10_01_00_05/edgeai-tidl-tools/tidl_tools
    LD_LIBRARY_PATH=/home/machida/ti-processor-sdk-linux-edgeai-am62a-evm-10_01_00_05/edgeai-tidl-tools/tidl_tools
    PYTHONPATH=:
    ====================================================================
    work_dir =./work_dirs/modelifacts/AM62A/8bits
    packaged_dir =./work_dirs/modelpackage/AM62A/8bits
    正在将注释加载到内存中...
    完成(t=0.00s)
    正在创建索引...
    索引已创建!
    正在将注释加载到内存中...
    完成(t=0.00s)
    正在创建索引...
    索引已创建!
    回溯(最近的呼叫最后):
    文件"/home/machida/ti-processor-sdk-linux-edgeai-am62a-evm-10_01_00_05/edgeai-tensorlab/edgeai-benchmark/./scripts/benchmark_custom.py、第216行、中
    interfaces.run_accuracy(settings、work_dir、pipeline_configs)
    文件"run_accuracy 中的第43行"/home/machida/ti-processor-sdk-linux-edgeai-am62a-evm-10_01_00_05/edgeai-tensorlab/edgeai-benchmark/edgeai_benchmark/interfaces/run_accuracy.py
    在 OS.ENVIRON['TIDL_TOOLS_PATH']中断言 settings.target_device、\
    AssertionError:在设置中找到 target_device:AM62A、但它似乎与 tidl_tools 路径/home/machida/ti-processor-sdk-linux-edgeai-am62a-evm-10_01_00_05/edgeai-tidl-tools/tidl_tools 不匹配
    ——

    因此、我将"edgeai-tidl-tools"中包含的"tidl-tools"复制到了"edgeai-benchmark/tools/AM62A/FM_edgeai_tensorlab"下的"tidl-tools"中
    ("fm_edgeai_tensorlab"由我自己创建。)
    然后、我可以正确编译(日志为"E2E_Tensorlab--20250206.txt")

    我将这些(config、dataset、param、result.yaml 和 run.log)部署到 SD 卡中。
    但是、静态图像下的结果与上一幅图像下的结果相同...

    ---
    root@am62axx-evm:/opt/edgeai-gst-apps/apps_python。app_edgeai.py。。。/configs/yolov8.yaml
    [43.451666] USB 1-1:使用 xhci-hcd 重置2号高速 USB 器件
    libtidl_onnxrt_EP 已加载0xc30df20
    最终创建的子图数为:1、-卸载节点- 277、总节点- 277
    应用程序:初始化...!!!
    54.848424 s:内存:初始...!!
    54.848501 s:MEM:已初始化 DMA 堆(FD=5)!!
    54.848722 s:内存:初始化...完成!!
    54.848756 s:IPC:初始...!!
    54.865651 s:IPC:初始化...已完成!!
    remote_servic: init…!!
    Remote_servic:初始化...完成!!!
    54.874389 s:GTC 频率= 200 MHz
    应用程序:初始化...完成!!!
    54.878415 s:vx_zone_info:全局启用 vx_zone_error
    54.878464 s:vx_zone_info:全局启用 vx_zone_warning
    54.878474 s:vx_zone_info:全局启用 vx_zone_info
    54.880809 s:vx_zone_info:[tivxPlatformCreateTargetId:134]已添加目标 MPU-0
    54.880996 s:vx_zone_info:[tivxPlatformCreateTargetId:134]已添加目标 MPU-1
    54.881113 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-2
    54.881241 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-3
    54.881256 s:vx_zone_info:[tivxInitLocal:126] Initialization done!!
    54.881278 s:vx_zone_info:全局禁用 vx_zone_info
    ==== [输入流水线(S)]====

    [PIPE-0]

    multifilesrc location=/opt/edgeai-test-data/images/cat1.jpg loop=True! jpegdec! videoscale QoS =正确! capsfilter caps="video/x-raw、width=(int) 1280、height=(int) 720;"! tiovxdlcolorconvert ! capsfilter caps="video/x-raw、format=(string) NV12;"! tiovxmultiscaler name=split_01
    SPLIT_01。 ! 队列! capsfilter caps="video/x-raw、width=(int) 1280、height=(int) 720;"! 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)640, height=(int)640;"! tiovxdlpreproc out-pool-size=4 scale-0=0.00392200006172061 scale-1=0.00392200006172061 scale-2=0.00392200006172061! 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) 1280、height=(int) 720;"! 队列! mosaic_0.sink_0

    tiovxmosaic target=1 background=/tmp/background_0 name=mosaic_0 src::pool-size=4
    Sink_0::startx="<320>" sink_0:starty="<150>" sink_0::width="<1280>" sink_0::heights="<720>"
    ! capsfilter caps="video/x-raw、format=(string) NV12、width=(int) 1920、height=(int) 1080;"! 队列! tiperfoverlay title=物体检测! kmssink sync=False 最大延迟=5000000 QoS =真正的处理-最后期限=15000000 driver-name=tidss connector-id=40 plane-id=31 force-modesetting=True fd=35

    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    VIZ_THRESHOLD 为[-0.0015625 -0.0015625 -0.0015625 -0.0015625 -1。 0.]
    ——

    我想比较您的验证环境...

    此致、

    e2e.ti.com/.../E2E_5F00_Tensorlab_2D002D00_20250206.txt

     

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

    您好、Machida-San、

    我在使用 edgeai-gst-apps 运行你的手工艺品和我的手工艺品时也遇到了困难--这不仅仅是你。 对于您的模型和我的模型、我收到的数组仅为[-1、-1、-1、0、-1](X200次)、即使是静态测试图像也是如此。 它与您的输出不同、但它是类似的。

    • 作为检查、请针对 onnxruntime 以 debug_level=2运行、并在后台运行/opt/vx_app_arm_remote_log.out。 是否有任何警告或错误?

    我不知道原因是什么、因为我可以在目标上使用 edgeai-tidl-tools 来运行图像

    据描述 EVM 上显示的"0.31"可信度?

    是的、完全正确。 我可以通过将 edgeai-tidl-tools 复制到 EVM 来在 EVM 上运行、并从这里运行。 我收到的预期输出结果与基于 PC 的 C7x 仿真相同。

    当我尝试使用 edgeai-gst-apps 运行相同的模型时、我只接收到空检测、即 [-1、-1、-1、-1、0、-1]。 我写的另一个测试应用程序也是如此--我只看到空的检测。 您的模型和 TI 模型是一致的

    我认为这仍然与输入图像预处理有关。 原因如下:

    • 我运行了一个快速而丑陋的测试,在那里我使用了"拾取"库来保存用于 edgeai-tidl-tools 的图像。 这可确保数据100%一致。
    • 然后、我修改了其他一些测试脚本、在使用输入图像时、这些脚本可以实现空检测。
    • 当我替换这些脚本中的输入以使用未拾取的文件时、我得到的结果与 edgeai-tidl-tools 完全相同。 edgeai-gst-apps 也是如此

    这意味着模型本身或模型的调用方式没有问题。 相反、该问题是图像预处理的一部分。 我注意到、我使用了10.1 SDK 进行这些测试。

    换言之、我认为您的模型和 TIDL 不是问题所在。 对图像进行预处理更可能是导致此问题的原因。 我此处仍使用 Mean=0和 Scale=1/255

    如果不花更多时间来处理此问题、我不确定问题、但我有信心进行图像准备/预处理。 由于即将到来的工作差旅、我目前的可用时间有限、因此请预计我的回复会延迟一两周。

    BR、
    Reese

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

    尊敬的 Machida-San:

    我想指出出现空检测的另一个潜在原因:NMS/OD 阈值。  

    我们为边界框置信度设定了一个阈值,在多个地方

    我很有信心,这是你的 prototxt 中的 CONFIDENCE_THRESHOLD。 我注意到、在使用 TIDL 运行的模型中、没有一个输出的可信度大于0.3。 这与 prototxt 是一致的。 我建议降低 NMS 和置信水平的阈值-为了置信、尝试0.1。

    这并不能完全解释为什么您的模型没有通过 edgeai-gst-apps 提供相同的输出。 我目前的想法是您的模型几乎不敏感,预处理的微小变化导致置信值降至0.3以下。 如果您的模型使用小型数据集进行训练和/或进行几个 epoch、这可以解释到对输入微小变化的敏感性。

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的答复。

    我很有信心,这是你的 prototxt 中的 CONFIDENCE_THRESHOLD。 我注意到、在使用 TIDL 运行的模型中、没有一个输出的可信度大于0.3。 这与 prototxt 是一致的。 我建议降低 NMS 和置信水平的阈值-为了置信、尝试0.1。
    =>我的 prototxt 设置 NMS 和信心是下面.

    ——
    detection_output_param{
    NUM_CLASSES:1
    SHARE_LOCATION:真
    background_label_id:-1
    NMS_param{
    NMS_THRESHOLD:0.45
    top_k:200
    }
    CODE_TYPE:CODE_TYPE_DIST2BBOX
    keep_top_k:200
    CONFIDENCE_THRESHOLD:0.3
    }
    ——

    设置似乎与"common_utils.py"的"det_box_overlay "相同。

    我注意到一点。 当我使用的图像被用来推断"edgeai-tidl-tools"时、我得到了 BBOX。 然而,虽然我使用了几个图像,但我得到 BBOX 只在图像后面。 如您所说、该模型似乎能正常工作。  

      

    这并不能完全解释为什么您的模型没有通过 edgeai-gst-apps 提供相同的输出。 我目前的想法是您的模型几乎不敏感,预处理的微小变化导致置信值降至0.3以下。 如果您的模型使用小型数据集进行训练和/或进行几个 epoch、这可以解释到对输入微小变化的敏感性。
    =>是的、我只使用了大约150张图像作为数据集、因此我知道这很小。 我只能看到一个图像的 BBOX ,但我可以看到 BBOX ,所以这个问题可能是由准确度引起的...

    此致、

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

    您好、Machida-San、

    啊、好的。 我想我们已经找到了这个问题的原因。 这是边界框阈值、导致您的检测次数很少、并且模型本身没有高置信度框。 这些共同构成了这一挑战。 我很高兴我们找到了一个解决办法。

    如果您有兴趣了解更多有关此主题的信息,我们的团队在元体系结构 PROTOTXT 中设置不同置信度阈值时对 BBOX 阈值进行了分析

    我会认为这个问题已经解决--我感谢你在这里的努力。 有关此主题的更多信息、请创建一个新主题、因为这个主题已经很长。  

    BR、
    Reese

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

    尊敬的 Reese-San:

    感谢您的支持。
    我非常感谢您的专注响应。 当我遇到另一个问题时、我将打开新主题。

    此致、