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:PROCESSOR-SDK-AM69A:在配有 TIDL 的 AM69A 上部署经过自定义 Yolov8s 模型时遇到问题

Guru**** 2415590 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1523500/processor-sdk-am69a-processor-sdk-am69a-issue-deploying-custom-yolov8s-model-self-trained-on-am69a-with-tidl

器件型号:PROCESSOR-SDK-AM69A

工具/软件:

我按照与 resnet101.onnx 示例中相同的过程导入定制训练的 yolov8s.onnx 模型。 但是、在使用导入过程中、我遇到了以下错误日志 tidl_model_import.out

[TIDL Import]警告:无法读取   Add/Mul  运算符变量输入的 DIM... 无法在   节点/model.22/Slice_1 [TIDL Import]的索引–1 中找到初始化  器不支持:层层:无法找到浮点初始化器... [TIDL Import]致命错误:ONNX 模型 导入 失败...

这是指向 YOLOv8s 模型的链接、该模型在套件上运行成功、但当前在 CPU 上运行 100%。

https://drive.google.com/file/d/118MAtNP7NhmTVkG37ZhY8LyynUdLcCbp/view?usp=sharing
您能帮助我们了解这些错误的原因以及如何解决这些错误吗?


2、要求从源代码构建进行评估:

我注意到、您的指南通常侧重于使用预构建的可执行文件以及用于推理的输入文件。 但是、我们的目标是从源代码构建工具链、以便我们可以集成除推理时间之外的其他评估、例如精度和自定义指标。

您能指导我们如何从源头正确构建必要的组件、从而满足这些需求吗?

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

    您好、

    请将 E2E 限制为一个主题、因为线程会令人困惑。  在这种情况下:

    1.有一个模型问题,我会很快研究一下。

    2.从此处开始了解一般说明,而对于特定组件,请参阅组件说明:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-j721s2/latest/exports/docs/psdk_rtos/docs/user_guide/overview.html

    此致、

    Chris

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

    尊敬的 Chris:  
    1. 你有任何更新吗?

    2.好的,我会检查文档并查看它。 我稍后再更新您。
    谢谢 Anh 最好的照顾。

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

    您好、

    我已经按照以下步骤来设置和运行 TIDL 运行时示例:

    1. 克隆了存储库: Git 克隆 https://github.com/TexasInstruments/edgeai-tidl-tools.git

    2. 已检出分支 10_01_00_02
    3. 将我的代码添加到: /opt/edgeai-tidl-tools/examples/tidlrt_cpp

    构建运行 CMC ResNet-101 模型的应用程序。 我之前成功地测试了 TI_DEVICE_ARMv8_TEST_dl_algo_host_RT 目标。

    但是、当我重新构建并执行示例时、会遇到随附日志中显示的错误。 您能否检查附加的源文件是否有任何问题、重新编译示例并验证其是否正确运行?

    提前感谢您的帮助

    .e2e.ti.com/.../log_5F00_eror.txte2e.ti.com/.../resnet.zip

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

    我还遵循了用于的相同导入程序resnet101.onnx、以便引入我们经过定制训练的 YOLOv8s ONNX 模型。 期间 tidl_model_import 步骤、我看到:
    [TIDL Import]警告:无法读取   Add/Mul  运算符变量输入的 DIM... 无法在   节点/model.22/Slice_1 [TIDL Import]的索引–1 中找到初始化  器不支持:层层:无法找到浮点初始化器... [TIDL Import]致命错误:ONNX 模型 导入 失败...
    您可以在此处下载 ONNX 文件:
    drive.google.com/.../view

    您能否帮助我了解导致这些导入错误的原因并就如何解决这些错误提供建议?

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

    您好!

    如果您使用的是 TI.com 中的标准.wic 映像、请尝试执行此操作并重新引导设备。

    VI /run/media/BOOT-mmcblk1p1/uEnv.txt

    并更改

    name_overles=ti/k3-j784s4-edgeai-apps.dtbo

    收件人:

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

    确保正确无误、否则您的设备将无法从该卡启动。

    此致、

    Chris

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

    您好、Chris、

    感谢您之前的指导。 我已经确认name_overlays DTBO 文件没有问题—我能够按照您所述在器件上成功地运行 ResNet-101 模型推理。
    但是、当我切换到使用时 tidlcpp 库 (TIDL C++ API) 若要加载模型并执行推理、我会遇到以下错误:

    root@AM69-sk:/opt/edgeai-tidl-tools/bin/Release #./tidlrt_ResNet -f /opt/arrow/out -i face_aligned_1.jpg
    模型文件名称:/opt/arrow/out/tidl_net.bin、/opt/arrow/out/tidl_io_buff1.bin
    应用程序:初始化...!!
    18753.543247 s:内存:初始化...!!
    18753.543309 s:MEM:初始化的 DMA 堆 (FD=5)!!!
    18753.543457 s:内存:初始化...完成!!!
    18753.543479 s:ipc: init ...!!
    18753.574032 s : ipc:初始化...完成!!
    remote_service:初始化...!!</s>!
    remote_service:初始化...完成!!!
    18753.581335 s:GTC 频率= 200MHz
    应用程序:初始化...完成!!
    18753.581420 s:vx_zone_info:全局启用 vx_zone_error
    18753.581432 s:vx_zone_info:全局启用 vx_zone_warning
    18753.581450 s:vx_zone_info:全局启用 vx_zone_info
    18753.581986 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-0
    18753.582115 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-1
    18753.582219 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-2
    18753.582339 s:vx_zone_info:[tivxPlatformCreateTargetId:134]添加了目标 MPU-3
    18753.582351 s:vx_zone_info:[tivxInitLocal:126]初始化完成!!!
    18753.582364 s:vx_zone_info:全局禁用 vx_zone_info
    18753.749631 s:vx_zone_error:[ownContextSendCmd:912]命令 ack 消息返回失败 cmd_status:–1
    18753.749666 s:vx_zone_error:[ownNodeKernelInit:604]针对节点 TIDLNode 的目标内核、TIVx_CMD_NODE_CREATE 失败
    18753.749673 s:vx_zone_error:[ownNodeKernelInit:605]请确保已为此内核注册目标回调
    18753.749684 s:vx_zone_error:[ownNodeKernelInit:606]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
    18753.749696 s:vx_zone_error:[ownGraphNodeKernelInit:690]节点 0 的内核初始化、kernel com.ti.tidl:1:1 ...失败!!!
    18753.749742 s:vx_zone_error:[ TIDL subgraph 1332 ]节点内核初始化失败
    18753.749753 s:vx_zone_error:[ TIDL 子图 1332 ]图形验证失败
    TIDL_RT_OVX:错误:验证 TIDL 图形...失败!!!
    TIDL_RT_OVX:错误:验证 OpenVX 图形失败
    已调用
    18753.810931 s:vx_zone_error:[ownContextSendCmd:912]命令确认消息返回失败 cmd_status:–1
    18753.810973 s:vx_zone_error:[ownNodeKernelInit:604]针对节点 TIDLNode 的目标内核、TIVx_CMD_NODE_CREATE 失败
    18753.810985 s:vx_zone_error:[ownNodeKernelInit:605]请确保已为此内核注册目标回调
    18753.811000 s:vx_zone_error:[ownNodeKernelInit:606]如果目标回调已注册、请确保此内核的创建回调中没有发生错误
    18753.811014 s:vx_zone_error:[ownGraphNodeKernelInit:690]节点 0 的内核初始化、kernel com.ti.tidl:1:1 ...失败!!!
    18753.811032 s:vx_zone_error:[ TIDL subgraph 1332 ]节点内核初始化失败
    18753.811042 s:vx_zone_error:[ TIDL subgraph 1332 ]图形验证失败
    18753.811111 s:vx_zone_error:[ownGraphScheduleGraphWrapper:944]图形未处于需要安排的状态
    18753.811122 s:vx_zone_error:[vxProcessGraph:868]计划图失败
    18753.811133 s:vx_zone_error:[vxProcessGraph:873]等待图形失败
    错误:运行 TIDL 图形...失败!!!
    平均时间:49.384 毫秒
    特征矢量统计信息:
    尺寸:512
    最小值:0
    最大值:0
    平均值:0
    特征向量已保存到 face_aligned_1.jpg.features.txt
    应用程序:Deinit ...!!
    REMOTE_SERVICE:取消初始化...!!!
    REMOTE_SERVICE:取消初始化...完成!!!
    18753.828821 S: IPC: Deinit ...!
    18753.829796 s: IPC: DeInit ...完成!!
    18753.829828 s:MEM:Deinit ...!!
    18753.829842 s:DDR_SHARED_MEM:Alloc's:8 alloc's、共 135423796 字节
    18753.829852 s:DDR_SHARED_MEM:free's:8 free's of 135423796 bytes
    18753.829861 s:DDR_SHARED_MEM:open's:0 个 0 字节分配
    18753.829876 s:内存:Deinit ...完成!!!
    应用程序:Deinit ...完成!!

    您能否分享一个简短的示例或详细步骤、说明如何:

    1. .onnx.tflite使用 tidlcpp 加载转换的(或)模型

    2. 初始化 TIDL 上下文并分配输入/输出张量

    3. 运行推理并读回输出张量数据

    将 tidlcpp 集成到应用程序的任何示例代码或指针都将非常有用。

    提前感谢!

    此致、

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

    尊敬的 Chris:
    我错误地将问题标记为已解决。 请帮助重新打开案例。
    谢谢和最好的照顾。

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

    您好、

    请打开新问题的新主题。

    此致、

    Chris

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

    尊敬的 Chris:  
    我已经创建了一个关于 YOLOv8s 模型的新案例,请帮助我检查它。

    e2e.ti.com/.../processor-sdk-am69a-processor-sdk-am69a-processor-sdk-am69a-issue-deploying-custom-yolov8s-model-self-trained-on-am69a-with-tidl