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.

[参考译文] AM68:YOLOX 在 AM68 上的姿态检测质量较差 (Edge AI 9.2)

Guru**** 2438290 points
Other Parts Discussed in Thread: SK-AM68, TDA4VM, AM68, AM68A

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501919/am68-yolox-pose-detection-quality-poor-on-am68-edge-ai-9-2

器件型号:AM68
主题中讨论的其他部件: TDA4VM、、

工具/软件:

您好:

在采用 Edge AI SDK 9.2 的 SK-AM68 板上使用 YOLOX 姿态模型时、我们的检测结果非常差、而预编译模型在使用 Edge AI 8.2 且采用 TDA4VM 的 BeagleBoard 上表现良好。 该问题会影响 TI 的预编译模型和自编译模型(使用 edgeai-tidl-tools)。

问题描述

  • 消息
    • AM68 :SK-AM68、Edge AI 9.2、YOLOX 姿势(TI 的 r9.2 modelzoo +自编译)。
    • TDA4VM :BeagleBone AI-64、Edge AI 8.2、YOLOX 姿势(TI 的 r8.2 modelzoo +自编译)。
    • 相同的输入数据。
    • 使用 edge-ai-apps / edgeai-gst-apps 进行推理

 

  • 问题 :在 AM68 上,bbox 是不准确的,与非常低的置信度得分,往往人是完全未被检测到。 在假阳性中还原置信阈值、姿态估计也不准确。 TDA4VM 性能与原始.pth 模型检测类似 — 请参阅下图。
  • AM68 上的实验
    • 我们尝试使用 high_resolution、tensorbit、timization_scale_type 和 add_data_convert_ops 等编译参数进行实验、但检测结果仍然非常差。

 

图像比较:

AM68 上的 yolox_s

 

TDA4VM 上的 yolox_s

我们非常感谢您帮助解决此问题。

此致

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

    您好;

    感谢您问这个问题。  

    我尽量更好地理解您的问题。  

    1.  您很难受“我们在 SK-AM68 板上使用 Edge AI SDK 9.2 时、YOLOX 姿态模型的检测结果非常差、而预编译模型在使用 Edge AI 8.2 且具有 TDA4VM 的 BeagleBoard 上表现良好“这意味着 Edge AI 8.2 优于 Edge AI SDK。 或者预编译模型效果更好。 您能否将同一硬件 (SK-AM68) 与 YOLOX 姿态模型与预编译模型的检测测试进行比较?

    2、您对“检测效果很差“的定义是什么? 您的检测准确率是多少。 如果您使用 TI 模型制作/训练工具并向其输入足够的图像、则将获得经过模型训练的精度。 你是这样做的吗? 您的价格是多少? 您可以在 PC/Linux 上执行此操作。

    请查看此链接;其中的一些信息可能对您有所帮助。 您可以根据信息进行一些测试。 并且可以在仿真期间实现的目标。   

    https://dev.ti.com/edgeaistudio/

    此致

    Wen Li

      

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

    您好:  
    感谢您的答复。  

    1. 主要问题是 yolox-human-pose-s 模型、无论是使用 edgeai-yolox 和 edgeai-tidl-tools 进行训练和编译、还是从 Model Zoo 预编译、都会显示:  
    • 在使用 SDK 8.2 的 BeagleBoard BBAI-64 (TDA4VM) 和使用 SDK 8.6 的 SK-AM68 上具有良好的检测精度。  
    • 使用 SDK 9.2 和 10.1 时 SK-AM68 (AM68A) 的检测精度差。  
    1. 这适用于使用 COCO 关键点数据集和自定义数据集进行训练的模型。  
    2. “检测不良“是指:  
    • 有时根本不会检测人员(或自定义数据集中的对象)。  
    • 在其他情况下、检测不准确、例如、边界框无法完全包围人员、漏报和误报、关键点可能放置错误、如上图所示。

    • 以下是两块电路板上的检测视频:

     带有 edgeai gst-apps 的 AM68A 上的人体姿势模型 9.2:

    e2e.ti.com/.../7103.output_5F00_imgs_5F00_coco_5F00_yolox_5F00_s_5F00_prebuilt_5F00_skam68_5F00_9_2D00_2.mp4

    BeagleBoard 上的人体姿势模型(使用 TDA4VM 和 edgeai apps 8.2):

    e2e.ti.com/.../coco_5F00_yolox_5F00_s_5F00_prebuilt_5F00_bbai64.mp4 

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

    嗨、Hans Peter;

    感谢您提供本视频。  

    结束后重新开始。 我想我们首先要确认两个输入视频流的输入帧和分辨率是否相同。 如果它们差别很大、或者我们正在处理不同的带宽要求、则精度可能会受到影响。

    其次、根据您的反馈、影响性能的关键因素是 SDK 的各个版本。 并且您使用的是 Edge AI Studio。 请注意、SDK 与边缘 AI 工具的兼容性。 将应用程序加载到目标板时、请遵循兼容性。 有关详细信息、请参阅以下链接。

    https://github.com/TexasInstruments/edgeai-tidl-tools/blob/10_00_07_00/docs/version_compatibility_table.md

    通常、edge-AI Studio 版本晚于其他 TIDL 工具。 但我们将很快推出新的工作室版本。

    谢谢。此致

    Wen Li

      

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

    嘿、Wen Li、

    至少对于 AM68/j721s2、我可以确认视频以及示例模型和 TI edgeai-gst-apps/model_zoo/test_data 等提供的 YAML 定义的流水线会出现“不良结果“、已下载并使用 meta-edgeai 进行编译。 因此、如果存在“兼容性问题“、则需要在其中进行搜索。 我建议您使用基于 SDK 8.6 和 SDK 9.2 的默认映像使用 SK-AM68 电路板、并且您可能能够完全复制上述两个视频。

    此致

    Steffen

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

    尊敬的 Wen Li:

    感谢您的意见。

    我们已经验证、AM68A (SK-AM68) 在 TDA4VM 上具有 SDK 8.6、9.2 和 8.2、视频流的输入帧和分辨率相同。 此外、根据兼容性表 (github.com/.../version_compatibility_table.md)、SDK 版本还与 Model Zoo 中预编译的 YOLOX 姿态模型兼容。

    正如 Steffen Hemer 所建议的那样、如果您可以像我们那样尝试使用默认设置来重现结果、我们也很感激。  

    谢谢。此致

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

    您好;这是一个很好的建议。 我还将分配一个 AM68A 电路板进行测试。  

    显然、您是使用模型编写器完成了该测试。 您是否使用过模型分析器和/或模型制作器? 我将尝试使用与您完全相同的工具。  

    谢谢。此致

    Wen Li  

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

    尊敬的 Wen Li:

    至少对我来说、我只是使用了这个模型、因为它来自 model_zoo 配方 https://git.ti.com/cgit/edgeai/meta-edgeai/tree/recipes-tisdk/edgeai-components/edgeai-tidl-models.bb?h=kirkstone

    此致

    Steffen

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

    您好、Wen Li、

    我们没有使用 Model Composer、Model Analyzer 或 Model Maker。 我们使用以下存储库 ( github.com/.../edgeai-yolox ) 以及我们的定制训练数据来训练和导出模型。 为了简化并确保可靠的测试、我们建议使用 Model Zoo 中预编译的 YOLOX 姿态模型来重现问题。

    谢谢。此致

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

    你好、彼得;

    我已经设置 AM68 并使用与您使用的模型运行 YOLO 姿势检测。 我相信你的结果

    设置 viz-threshold = 0.3 时、对于版本 10.1。 边界框更稳定。 请观看第一个视频片段。 (viz=0.3)

    是的、版本 8.6。 更稳定/更准确。 请参阅第 2 个版本。 但 10.1 具有红色帧指示功能。

    请看一下、我们稍后再讨论。

    此致  

    e2e.ti.com/.../output_5F00_video0_5F00_viz0p3.mkv

    e2e.ti.com/.../output_5F00_video0_5F00_8_5F00_6_5F00_short.mkv 

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

    针对该问题启动了 TI 内部跟踪:TIDL-7591

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

    您好;  

    您能提供模型的配置信息吗? 就像“model_configs.py"文件“文件中的信息一样、“Create_model_config ()“部分、因此我可以在第一步中执行与您相同的操作。   

    我计划使用的模型位于此链接中。

    https://github.com/TexasInstruments/edgeai-tensorlab/blob/r10.1/edgeai-modelzoo/modelartifacts/AM68A/8bits/kd-7060_onnxrt_coco_edgeai-yolox_yolox_s_pose_ti_lite_640_20220301_model_onnx.tar.gz.link

    谢谢。此致

    Wen Li

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

    您好:

    我们已经测试了我们未使用模型配置的预编译模型。 该模型已经存在检测问题。

    由于此预编译模型已经存在问题、因此我们认为该错误不是由错误的编译设置引起的。

    无论如何、我们使用 edgeai-tidl-tools 编译了模型自己、其中包含从 edgeai-Benchmark (github.com/.../human_pose_estimation.py 中的配置提取的配置和 param.yaml(包含在存档中,也已使用 download_model.sh 脚本下载到目标上)、并获得相同的精度。

    谢谢。此致

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

    您好;

    非常感谢您提供的信息。  

    此致

    Wen Li  

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

    尊敬的 Hans Peter:

    我们已经将此问题归结为预处理模块。
    请使用/opt/edgeai-tiovx-modules 上的附加模块修复此问题

    e2e.ti.com/.../0001_2D00_tiovx_5F00_dl_5F00_pre_5F00_proc_5F00_module_2D00_Use_2D00_DSP_2D00_kernel_2D00_instead_2D00_of_2D00_A.patch

    此致
    Rahul T r

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

    嗨、Rahul、

    我想知道为什么您将第 369 行中的“target_type"字符“字符串修正到 TIVX_target_DSP1、使方法参数“target_string"完全“完全过时。 让我假设这个修复只是暂时的吗? 此外、edgeai-tiovx-apps:modules 处的重复模块还会创建一个类型为“tivxDLPreProcArmv8Node"的“的节点、这是否意味着需要 在该节点进行额外修复?

    总的来说、您能否详细解释一下为什么这是比 8.6 更高的 SDK 版本中引入的问题? 提交 b283ab53d7f77355e56835c1e01b2d73255a08ff 介绍了 Armv8 作为 bugfix 的更改、但没有进一步解释、您能解释为什么您再次恢复它、最初的原因/错误是它应该已修复、等等... 一般来说,最好有一个更 一致的路径,让用户选择一个分支来进行下游开发,所以 提交具有更多解释的消息将是一个开始。

    此致

    Steffen

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

    尊敬的 Steffen:

    很抱歉没有解释更多关于修复的内容

    以下是详细信息

    在 9.0 期间、我们将预处理内核从 DSP 移至 Arm NEON、以提高可扩展性。
    似乎是 Arm NEON 预处理模块中的一些错误、这会降低 DL 输入质量。

    作为临时解决方案 、我为 edgeai-tiovx 模块提供了补丁、以使用 DSP 版本的
    预处理内核。 我们将在即将发布的版本中修复 ARM NEON 内核

    这是一种临时解决方案、可排除 TIDL 模型的问题

    此致
    Rahul T r