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-AM62A-LP:如何在此电路板上运行 yolov8/v11

Guru**** 2482035 points
Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board

器件型号:SK-AM62A-LP
主题中讨论的其他器件:TDA4VM

工具与软件:

大家好、我参考了 主 TexasInstruments/edgeai-tidl-tools··GitHub 上的 edgeai-tidl-tools/docs/custom_model_evaluation.md   和 edgeai-tidl-tools。edgeai-tidl-tools/examples/osrt_python/README.md 位于主 TexasInstruments/edgeai-tidl-tools··GitHub 上

在 x86 PC 中编译

我试图  在   edgeai-tidl-tools/examples/orst_python/model_configs.py 中添加新参数

models_configs ={
######################## ONNx 型号############
'yolov8n-ori':{
'model_path': os.path.join(models_base_path,'yolov8n.onnx'),
'MEAN':[0、0、0]、
'scale':[0、0、0]、
'num_images': numImages,
'NUM_CLASSES_':80、
"odel_type":"detection"、

#'od_type':'YoloV'、
'Session_name':'onnxrt',
"框架":""
}、

}

edgeai-tidl-tools/examples/orst_python/ort/onnxrt_ep.dl py的

模型=[
#"cl-ort-resnet18-v1"、
#"od-ort-ssd-lite_mobilenetv2_FPN"
'yolov8n-ori'
]

这是误差:

==============================================================================================

Command : python3 tflrt_delegate.py in Dir : examples/osrt_python/tFL started
运行0个模型-[]

命令: python3 onnxrt_ep.py in Dir : examples/osrt_python/ort started
可用的执行提供程序:['TIDLExecutionProvider ','TIDLComplationProvider ','CPUExecutionProvider ']

运行1个模型-['yolov8n-ori']

工艺流程1:
回溯(最近的呼叫最后):
文件"/home/zxb/.pyenv/versions/3.10.15/lib/python3.10/multiprocessing/process.py、第314行、位于_bootstrap 中
self.run()
文件/home/zxb/.pyenv/versions/3.10.15/lib/python3.10/multiprocessing/process.py、第108行、运行中
self._target(*self._args,**self._kwargs)
文件"run_model 中的第221行为/home/zxb/Desktop/ti/edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py
download_model (models_configs、model)
download_model 中的文件"/home/zxb/Desktop/ti/edgeai-tidl-tools/examples/osrt_python/common_utils.py、第240行
model_path = models_configs[model_name]["session"]["model_path"]
键错误:'Session'(会话)

Running_Model : yolov8n-ori.

======================================================================================================================

我能不能 麻烦 ti 给出 yolov8的一些例子,谢谢

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

    您好!

    当前错误似乎是找不到模型文件"yolov8n.onnx"、因此尝试下载模型、而找不到正确的 model_config 信息。  

    您用于 edgeai-tidl-tools 的提交/标签是什么? model_configs.py 的格式从发布标签10_00_06_00更改为10_00_08_00。 我看到您使用的是10_00_06样式的模型配置

    您从哪里购买 YOLOV8? 此模型的处理异常、因为原始实现具有不友好的许可证、以至于我们无法发布它的任何版本。 我们还需要对原始架构进行一些修改、以便在 AI 加速器(C7xMMA)上很好地加快速度。 我们提供了一些有关如何获取 TI-lite /C7x-MMA 友好版本的指南。 请查看此处: https://github.com/TexasInstruments/edgeai-tensorlab/issues/7。

    • 这确实意味着、由于 YOLOv8的许可限制、我没有任何可以直接共享的示例
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我按照用户的建议使用 edgeai-optimization,当使用 PTC 示例时,FX 图形模式量化处于维护模式。

    由于这是我们第一次面对这种 使用伪影的模型部署、你可以给出一些建议或 步骤建议。

    我们之前的项目都使用了 YOLOV8.我是否应该使用 经过训练的 v8model 进行优化(PTQ/QAT PTC)。 或者使用 edgeai-yolox/edgeai-mmdetection 离线重新训练新的 v8-ti-lite 模型、、因为 我们公司的数据集不允许任何上传。

    我使用 modelmaker、   ./run_modelmaker.sh AM62A config_detection.yaml  但失败了。 日志如下。 祈祷您宝贵的建议和详细的分步说明

    e2e.ti.com/.../modelmaker_2D00_log.txte2e.ti.com/.../modeloptimization_2D00_PTC_2D00_log.txt

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

    您还可以使用 MPU 或 DSP   

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

    您好!

    我明白--我知道这个过程在第一次尝试时可能会让人困惑。 我会帮助但我可以! 我将回复您上一条评论的几个部分。 请注意、这不是有序的步骤列表

    (a)一般性建议

    我的第一个建议是遵循 edgeai-tidl-tools 和自定义模型工作流程中的一个示例。 获取我们的现有模型之一(如 yolox (经过预先训练)、并查看如何 onnxrt_ep.py 使用 examples/osrt_python/ort/example 在主机上编译和运行该模型。 您可以按照自述文件中的步骤将部分 edgeai-tidl-tools (示例、test_data、模型、模型-伪影)传输到 EVM、并在静态输入上运行模型。  

    • 我建议不要这样做、因为它可以解决您的问题。 我建议您在已知的工作模型上学习开发流程,因为您的 yolov8会增加复杂性。
      • 我将在响应的 D 部分说明您的模型。

    b) PTC 日志

    您的 jupyter 笔记本似乎正在使用过时的存储库。 几个月前、我们从多个 edgeai- reposs 迁移到了 edgeai-tensorlab repo 中、用于进行模型训练和开发、并将它们打包到 edgeai-tensorlab repo 中、以使 repo-版本控制更加一致和可控。 如果您有意将目标定位于较旧的 SDK 版本(如9.1)、则可以继续使用这些 reposs、否则我建议克隆 edgeai-tensorlab 并改用该存储库进行工作。

    我看到您 modelmaker 日志提到您正在定位9.1 SDK。 此时、模型优化工具相当新、对于此版本较新的版本(r9.2和 r10.0对应于 SDK 版本)、我不太自信。  

    • 我还会看到由于 BLAS/LAPACK 相关性而导致的 scipy 设置错误。 这可能需要一个无法通过 pip3安装的系统级软件包。 我建议在这里搜索 google 以获取指导。  

    c) Modelmaker 日志

    看起来 modelmaker 训练了模型、但无法编译。 这意味着 Pytorch 训练了 yolox 并生成了 ONNX 文件。 下一阶段是编译、它使用 edgeai-benchmark-这是 edgeai-tidl-tools 的替代方法。

    • edgeai-benchmark 用于测试/编译更大的数据集。 它可以编译模型、然后在数据集上测试该模型的准确性
      • 通常由高级用户使用或作为 modelmaker 工作流程的一部分
    • edgeai-tidl-tools 用于对较少的数据集进行推理速度和准确性的基线评估。  
        • 通常用于对新模型进行初始测试。 通常、这足以编译模型工件和测试  

      您的模型在 edgeai-benchmarking 编译期间失败、因为它找不到依赖项:  


      ImportError:无法从"osrt_model_tools.onnx_tools"导入名称"onnx_model_opt"(/home/zxb/.pyenv/versions/py310/lib/python3.10/site-packages/osrt_model_tools/onnx_tools/__init__.py)

      此依赖项是作为 edgeai-tidl-tools 的一部分设置的、源 python 位于/scripts 目录下(osrt_model_tools/onnx_tools)。 导入的函数旨在将一些预处理层添加到模型(YOLOX)、从而允许 uint8输入而不是浮点。 这就是后来的错误抱怨这个输入数据类型的原因

      • edgeai-tidl-tools 的提交标签/分支是什么? 它可能设置了较新的版本。 合适的版本 09_01_07_00。  我们应该能够使用适当的工具进行更新并重新运行这个
        • 或者、使用经过训练的 ONNX 模型并使用 edgeai-tidl-tools 独立导入。 这与建议 A 有关

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5536938 #5536938"]

      我按照用户的建议使用 edgeai-optimization,当使用 PTC 示例时,FX 图形模式量化处于维护模式。

      [报价]

      您能解释更多吗? 我假设您的意思是、您按照 edgeai-tensorlab 存储库中链接的问题修改了 yolov8模型。 我不确定"外汇图表模式量化处于维护模式"是什么意思

      d) YOLOv8指导

      该问题7中详述的步骤说明了如何训练可与 TI 加速器(C7xMMA)良好配合使用的修改后 yolov8。 此训练流程使用上游 mmyolo repo、该软件使用 tensorlab Issue-7上的文件进行了修补、这些文件将修改模型结构、使其更适合 C7xMMA。 这确实需要再培训。

      由于您拥有经过预先训练的模型、因此可以使用这些权重作为重新训练这个修改后的结构的起点。 以这种方式进行再训练不应超过100个 epoch、但根据您的 yolov8来源、它可能需要努力使经过预先训练的重量与最合适的重量保持一致 yolov8-config。  你的 yolov8的 PTH 需要有张量/权重的命名与 mmyolo repo 的 yolov8版本期望的类似。  

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5536938 #5536938"]

      我们之前的项目都使用了 YOLOV8.我是否应该使用 经过训练的 v8model 进行优化(PTQ/QAT PTC)。 或者使用 edgeai-yolox/edgeai-mmdetection 离线重新训练新的 v8-ti-lite 模型、、因为 我们公司的数据集不允许任何上传。

      [报价]

      我鼓励这里的第一个选项--

      1. 使用经过训练的模型与 mmyolo 的补丁版本应用我们的模型手术
      2. 在低学习速度下进行25-100环氧树脂的再培训。
        1. 如果您愿意、您也可以在此时运行 QAT。 我不建议第一次尝试。 如果 PTQ 的准确度不够、您可以稍后回来进行此操作。
      3. 将模型导出为 ONNX 格式、并随附说明检测头的 prototxt 文件。
      4. 使用此 ONNX 和 PROTOTXT 导入/编译使用 edgeai-tidl-tools/examples/osrt_python/ort/onnxrt_ep.py 的模型。
        1. 请遵循该存储库中的定制模型指南  
        2. 这将产生伪影

      BR、
      Reese

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

      您好!

      昨天,我发现 yolov8_to-mmyolo。 py 在 mmyolo/tools/model_comverters,所以今天早上我尝试了它,并获得了 mmyolo 格式化。 PTH 使用 yolov8n.pt。 然后、我遵循了 mmyolo 的补丁版本:Python projects/easyplot/tools/export_onnx.py。\ config \ yolov8 \ yolov8_n_cyclycbn_fast_8xb16-500e_coco。 Py。 \myolov8n.psh --工作目录 \ tests \--img-size 640 640-- Simply -- IOU threshold 0.65-- score threshold 0.25-- opset 12-- backend ONNSRUTIME。 这是 Onnx

       、但它不会生成 protoxt 文件。 有模块 NotFoundError 时:没有名为"edgeai_torchmodeloption"的模块、我将 edgeai-tensorlab-main\edgeai-modeloptimization\torchmodelopt 复制 到 mmyolo\projects\myeasydeploy\tools\importError export_onnx.py:无法导入名称"_parase_stack_trace\tor_trace\tor\packages\da\packages\motor\packages\motor\packages\motor\packages\motor\packages\motor\packages\motor\packages\__LW_AT__:。()。

      这似乎是 torch2.0.1cu117和 mmcv2.0.1之间发生冲突的结果。 目前、MMYOLO 补丁已添加了一个版本冲突问题 edgeai_torchmodelopt。 MMYOLO 仅支持 mim 安装"mmcv>=2.0.0rc4、<2.1.0"、但低于2.1.0的 mmcv 仅支持 CUDA11.7~11.0 TORCH2.0。 但是、这会导致 torch.fx.graph 对于 x~1.13没有 passwrse_stack_trace。 十、我尝试安装2.0.0至2.4.0的火炬,发现只有火炬2.2。 x~passwase_dack_trace 可用。 这是一个错误 github.com/.../7 上的最后一个问题似乎与我的相同。

       

      下面介绍了新的问题:如何获取 ONNX 和 PROTOTXT 模型。 我试图使用 mmyolo 和 mmdetection 都不能使用,因为同一个问题 github.com/.../7 . 如果我使用 mmdetection 将火炬更改为2.4.1 ,它会  出现问题的 mmengine.registry 的  OPTIMIZERS。 yolov8_s_syncbn_fast_8xb16-500e.py 可以在 MMYOLO 中用于生成 onnx 模型,但在 mmyolo 中的 mmdetection configs 不能是 uesd。

      KeyError:'YOLODetector 不在模型注册表中。 请检查`YOLODetector`的值是否正确或是否按预期注册。 有关更多详细信息、请访问 mmengine.readtheddocs.io/.../config.html

      还有其他的方法来获得 Onnx 和 prototxt。

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

      您好!

      好的,它听起来你有一个这样的经过训练的版本.  可以使用 PTH 权重、只需 ONNX+PROTOTXT 即可启用使用 TIDL 工具进行导入。  您经过训练的 PTH 权重是在 edgeai_torchmodelopt 调用之前还是之后?  

      我们需要更深入地研究这一问题----我必须在这里请你耐心。 版本不兼容确实看起来令人沮丧。

      • 您能否提供您的软件包和版本列表?
        • 如果您尝试了多种不同的依赖关系配置、请列出具有相应版本控制的依赖关系配置。
      • edgeai-tensorlab 存储库的 commit ID / release 标签是什么?
        • 问题7是7月发布的、因此最接近的标签可能是 r9.2

      BR、
      Reese

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

      您好!

        . pth 以前为  edgeai_torchmodelopt callsSince mmyolo 仅支持 mmcv>=2.0.0.RC4~<2.1.0;而 mmcv2.0.1需要 CUDA<=11.7且 torch <=2.0.x;edgeai-modeloptimization 需要 torch.fx.graph (仅支持 torch 2.2.x~2.4.x.x)。我尝试了 这些软件包的许多版本匹配、但都失败了。  

      这里是  我的软件包和版本列表。

      警告:忽略无效的分发-orch (c:\Users\admin\.conda\envs\mmyolo\lib\site-packages)
      软件包版本
      -------------------------------------------------------- -------
      absl-py 2.1.0
      Addict 2.4.0
      第23.2.1节
      第2.4.0章
      aiohttp 3.10.5.
      气信号1.3.1
      白蛋白0.17
      蛋白成分1.4.18.
      aliyun_python-sdk-core 2.15.2
      aliyun-python-sdk-kms 2.16.4
      altgraph 0.17.4.
      带注释的类型0.7.0
      antlr4-python3-runtime 4.9.3
      anyio 4.4.0
      Appdirs 1.4.4.
      astunparse 1.6.3
      异步超时4.0.3
      ATTRS 24.2.0
      Audioread 3.0.1
      美丽的地方4 4.12.3.
      转向灯1.8.2
      Branca 0.7.2.
      Brotli 1.1.0
      Cachetools 5.5.
      CERTIFI 2024.7.4
      CAFI 1.17.0
      charset-normalizer 3.3.2
      单击8.1.7
      装饰2.3.0.3.
      CNstd 1.2.4.2
      比色马0.4.6
      颜色日志15.0.1
      contourpy 1.1.1
      第1.7.
      加密43.0.0
      自行车0.12.1.
      Cython 3.0.11
      数据集2.21.0
      DeepFilterLib 0.5.2
      Deepfilternet 0.5.2.
      Dill 0.3.8
      docker-pycreds 0.4.0
      编辑距离0.8.1.
      Einops 0.8.0
      eiq 2.2.0
      et-xmlfile 1.1.0
      eval_type_backport 0.2.0
      例外组1.2.2
      fastapi 0.112.2
      颠簸0.4.0
      文件锁3.14.0
      Flask 3.0.3
      平坦缓冲器24.3.25
      Folium 0.17.0
      fonttools 4.53.1
      第1.4.1节
      fsspec 2024.6.1
      funasr 1.0.27.
      GAST 0.4.0
      gdown 5.2.0
      geographiclib 2.0
      Geopy 2.4.1.
      gitdb 4.0.11.
      GitPython 3.1.43
      Google-auth 2.34.0
      Google-auth-oauthlib 1.0.0
      谷歌意大利面0.2.0
      第4.42.0章
      LIPROPO_CLIENT 1.3.0
      第3.1.1节
      grpcio 1.66.1
      H11 0.14.0
      H2 4.1.0
      h5py 3.11.0
      hpack 4.0.0
      httpcore 1.0.5
      httpx 0.27.2.
      huggingface-hub 0.24.6.
      10.0
      Hydra-core 1.3.2.
      Hyperframe 6.0.1
      3.8.
      ImageHash 4.3.1
      imageio 2.35.1.
      imgviz 1.7.5
      importlib_metadata 8.5.0
      importlib_resources 6.4.4
      它是危险的2.2.0
      jaconv 0.4.0
      JAMO 0.4.1
      JAX-0.4.13
      jieba 0.42.1.
      Jinja2 3.1.4.
      jmespath 0.10.0
      Jobblib 1.4.2
      KALDIIO 2.18.0
      Keras 2.13.1.
      kiwisolver 1.4.5
      LabelImg 1.8.6.
      Labelme 5.5.0
      Lazy_loader 0.4
      libclang 18.1.1
      第10章:我是你的
      闪电工具0.11.8.
      llvmlite 0.41.1
      loguru 0.7.2.
      Lxml 5.3.0
      第3.7节
      markdown-it-py 3.0.0
      MarkupSafe 2.1.5
      matplotlib 3.7.5
      mdull 0.1.2
      中间剂0.10.11.
      mL-dTypes 0.2.0
      mmcv 2.0.1
      mmdet 3.3.0
      mengine 0.10.5.
      mmyolo 0.6.0
      型号索引0.1.11
      modelscope 1.17.1
      更多迭代工具10.4.0
      mpmath 1.3.0
      msgpack 1.0.8
      Multidict 6.0.5
      多进程0.70.16.
      MySQL 0.0.3
      mysql-connector-python 9.0.0
      mysqlclient 2.2.4.
      natsort 8.4.0
      Networkx 3.1.
      numba 0.58.1.
      NumPy 1.23.5
      oauthlib 3.2.2
      omegaconf 2.3.0
      onnx 1.17.0
      onxruntime 1.19.0
      仿真0.4.36
      openai-whisper 20231117
      OpenCV-contrib-python 4.10.0.84
      OpenCV-python 4.10.0.84
      OpenCV-python-headless 4.10.0.84
      opendatalab 0.0.0.10
      openmim 0.3.9.
      openpixl 3.1.5
      openxlab 0.1.2
      OPT-EINSUM 3.3.0
      有序集4.1.0
      orjson 3.10.7
      oss2 2.17.0
      成果1.3.0.post0
      包装24.2.
      pandas 2.0.3
      第2023.2.7节
      枕头10.4.0
      PIP 24.3.1.
      platformdirs 4.3.6.
      Polygon3 3.0.9.1.
      Pooch 1.8.2.
      可参见前表3.11.0
      Protobuf 3.20.3.
      psutil 6.1.0
      py-cpuinfo 9.0.0
      pyarrow 17.0.0
      pyasn1 0.6.0
      pyasn1_modules 0.4.0
      第0.2.14节
      pyclipper 1.3.0.post6.
      2.0.7.
      pycocotools-windows 2.0.0.2
      pycparser 2.22.
      pycryptodome 3.20.0
      pydantic 2.8.2.
      pydantic_core 2.20.1
      Pydub 0.25.1
      第2.18.0节
      Pyinstaller 6.11.1
      pyinstaller-hooks-contrib 2024.10.
      PyMySQL 1.1.1
      Pynndegress 0.5.13.
      pyparsing 3.1.4.
      PyQt5 5.15.11
      PyQt5-Qt5 5.15.2
      PyQt5_sip 12.15.0
      pyreadline3 3.4.1
      PySocks 1.7.1.
      PySoundFile 0.9.0.post1
      pytesseract 0.3.13
      python-dateutil 2.9.0.post0
      python-multipart.0.9.
      pythore-wpe 0.0.1
      Pytz 2023.4
      PyWavelets 1.4.1
      第308章一个条件
      pywin32-ctypes 0.2.3
      PyYAML 6.0.2
      QtPy 2.4.1
      Regex 2024.7.24.
      请求2.28.2.
      Requests-oauthlib 2.0.0
      丰富的13.4.2
      旋转嵌入式手电筒0.6.5.
      RSA 4.9
      RUFF 0.6.3.
      Safetensors 0.4.4.
      scikit-image 0.21.0
      scikit-learn 1.3.2
      SciPy 1.10.1.
      第13.2.
      Selenium 4.26.1.
      Semantic-version 2.10.0
      sentencepiece 0.2.0
      sentry-SDK 2.18.0
      setproctitle 1.3.3.
      setuptools 60.2.0
      疯狂的2.0.6
      1.5.4.
      simplejson 3.19.3
      6.16.0
      smmap 5.0.1
      嗅探1.3.1
      第2.4.0节
      SoundDevice 0.5.0
      Soundfile 0.12.1.
      第2.6.
      sxr 0.3.7.
      SQLAlchemy 2.0.35.
      starlette 0.38.4.
      难题1.13.2.
      制表0.9.0
      Tensorboard 2.13.0
      tensorboard-data-server 0.7.2
      tensorboardX 2.6.2.2.
      tensorflow 2.13.0
      tensorflow-estimator 2.13.0
      tensorflow-Intel 2.13.0
      tensorflow-io-gcs-filesystem 0.31.0
      白蚁2.4.0
      最后期限3.1.10.
      Theano 1.0.5
      threadpoolctl 3.5.0
      tifffile 2023.7.10中的示例
      tiktoken 0.7.0
      Timm 1.0.9
      tomli 2.0.1
      tomlkit 0.12.0
      手电筒1.13.0+cu117
      torchaudio 0.13.0+cu117
      torchinfo 1.8.0
      指标1.5.2
      Torchvision 0.14.0+cu117
      tqdm 4.65.2.
      TRIO 0.27.0
      Trio-WebSocket 0.11.1.
      ttach 0.0.3
      占空比0.12.5
      Typing_extensions 4.12.2
      tzdata 2024.1
      第8.2.85节
      超透析- thop 2.0.11.
      UNAP-LEARN 0.5.6
      Unidecode 1.3.8
      urllib3 1.26.20
      0.30.6.
      wandb 0.18.6.
      宽0.2.13
      WebSocket 客户端1.8.0
      12.0
      Werkzeug 3.0.4
      车轮0.45.1.
      WIN_INET_PTON 1.1.0
      Win32-setctime 1.1.0
      包装1.16.0
      wsproto 1.2.0
      xrd 2.0.1
      xlutils 2.0.0
      xlwt 1.3.0
      xxhash 3.5.0
      xyzservices 2024.6.0
      yapf 0.40.2.
      Yarl 1.9.4.
      zipp 3.20.2.
      zstandard 0.23.0
      (mmyolo) PS D:\zxb\accc\mmyolo>  

      然后我尝试了 edgeai-mmdetection、可以使用 edgeai-modeloptimization、但它会带来 配置问题。 我尝试从 mmyolo/config/yolov8/中复制配置  、但不支持某些模块需要使用 mengine registe 自定义模块

      、我试过 edgeai-modelmaker   ./ run_modelmaker.sh  AM62A ./ config_detection.yaml    , afer 我解决了其他问题。 它 以 FileNotFoundError 结束:[errno 2]没有这样的文件或目录:'/home/zxb/Desktop/ti/edgeai-modelmaker/data/projects/tiscapes2017_driving/run/20241203-142720/yolox_nano_lite/compilation/AM62A/pkg/artifacts.yaml '。在同一文件夹下模型被优化、但工件文件夹为空。

      e2e.ti.com/.../modelmaker_2D00_trainlog.txt

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

      感谢您提供此文件。 mmyolo repo 的 commit ID 是什么? 应该是多少  8c4d9dc503dc8e327bec8147e8dc97124052f693 匹配问题7。  我同意您所展示的相关性是不兼容的。 可能还有其他的  

      使用我们的 edgeai-modelmaker 中的毫米波检测是另一个主题、我建议在单独的线程中查看该主题。 很难在同一个主题中跟踪多个如此相似的主题--我担心这会造成额外的混淆。 您是否可以为训练/编译 yolox 模型创建单独的 e2e 线程?

      • 看起来训练已完成、编译无法开始
      • 在新线程中、请显示传递给模型生成器的配置文件、并显示该  /home/zxb/Desktop/ti/edgeai-modelmaker/data/projects/tiscapes2017_driving/run/20241203-142720/yolox_nano_lite 的目录结构/树
        • 请注意、如果您重新运行日期字符串、日期字符串将会更改。 我对培训和汇编目录下的内容感兴趣。  

      BR、
      Reese

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

      您好!

          这是不同的 Pyenv 和不同的工程、存在不同的问题。 考虑到 它仍处于评估阶段、我们正在 尝试使用我们的 V8车型在 AM62A 中部署 DMS/OMS、以便将其用于汽车。 所以我们 制定了两个计划。

          使用 v8模型规划一个模型 ,并将其转换为 mmyolov8-lite ,但由于以上环境问题而失败,无法获得将用于编写的 onnx 和 prototxt。
      mmyolo:commit 8c4d9dc503dc8e327bec8147e8dc97124052f693 (头、标签:v0.6.0、origin/main、origin/head、main)

      mmdetection:commit 7146beba638862b5df251bc248524cfcd8338c9b (head -> r9.1、origin/r9.1、origin/main、origin/head)

      edgeai-modelmaker: commit b4e9b7fda9b9d3ee0f8190bdb49792e001d60e8f (head -> main、origin/r9.1、origin/main、origin/head)

      edgeai-tidl-tools:commit efae61031b31aa2ba5491c03bb808216d3baef14 (head -> master、标签:10_00_08_00、origin/rel_10_00、origin/master、origin/head)

          计划 B 是尝试使用 modelmaker ,使用 yolox 示例,但失败了以上日志问题,在这种情况下,我们只是 改变 YAML 的  列车- epoch=1。   / run_modelmaker.sh AM62A ./config_detection.yaml        

      config_detection.yaml:

      ====================================================================================
      常见:
      target_module:'vision'
      task_type:"detection"
      target_device:"TDA4VM"
      # run_name 可以是任何字符串,但有一些特殊情况:
      #{DATE-TIME}将替换为 datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
      #{model_name}将替换为模型名称
      Run_name:"{date-time}/{model_name}"

      数据集:
      #启用/禁用数据集加载
      启用:对#False
      # max_num_files:[750,250]#None

      #物体检测数据集示例:
      #-------------------------------------------------------
      #示例1,(已知数据集):'widerface_detection','Pascal_voc0712','coco_detection','udacy_selfdriving', "Tomato_detection"、"tiscapes2017_driving"
      # dataset_name : widerface_detection
      #-------------------------------------------------------
      #示例2、提供数据集名称和 INPUT_DATA_PATH。
      # input_data_path 可以是 zip 文件、tar 文件、文件夹或 http、https 链接到 zip 或 tar 文件的路径
      #对于 input_data_path 这些作为示例随此存储库提供:
      #'oftware-dl.ti.com/.../tiscapes2017_driving.zip'
      #'oftware-dl.ti.com/.../animal_detection.zip'
      #-------------------------------------------------------
      #示例3,为图像文件夹提供注释文件(要求列表包含训练和 val 分割的值)
      # dataset_name : coco_detection
      # input_data_path:[".data"/data/projects/coco_detection/dataset/train2017、
      #"。/data/projects/coco_detection/dataset/val2017 "]
      # input_annotion_path:[".annotion_path"/data/projects/coco_detection/dataset/annotations/instances_train2017.json、
      #"。/data/projects/coco_detection/dataset/annotations/instances_val2017.json "]
      #-------------------------------------------------------
      dataset_name:tiscapes2017_driving
      input_data_path:software-dl.ti.com/.../tiscapes2017_driving.zip'

      培训:
      #启用/禁用训练
      启用:对#False

      #所选的物体检测模型可根据需要在此处更改
      #选项包括:"yolox_s_lite"、"yolox_tin_lite"、"yolox_nano_lite"、"yolox_pico_lite"、"yolox_femto_lite"
      model_name:"yolox_nano_lite"

      TRAING_EPOCHS:1 #30.
      # batch_size:8 #32.
      # learning_rate:0.005.
      # num_gps:0 #1 #4

      编译:
      #启用/禁用编译
      启用:对#False
      # tensor_bits:8 #16 #32

      ======================================================================================e2e.ti.com/.../2818.modelmaker_2D00_trainlog.txt

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

      您好!

      我想、要理解、选项 A 是更可取的。  

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5547783 #5547783"]

      mmyolo:commit 8c4d9dc503dc8e327bec8147e8dc97124052f693 (头、标签:v0.6.0、origin/main、origin/head、main)

      mmdetection:commit 7146beba638862b5df251bc248524cfcd8338c9b (head -> r9.1、origin/r9.1、origin/main、origin/head)

      edgeai-modelmaker: commit b4e9b7fda9b9d3ee0f8190bdb49792e001d60e8f (head -> main、origin/r9.1、origin/main、origin/head)

      edgeai-tidl-tools:commit efae61031b31aa2ba5491c03bb808216d3baef14 (head -> master、标签:10_00_08_00、origin/rel_10_00、origin/master、origin/head)

      [报价]

      感谢您的纳入、这对您有所帮助。

      Edgeai-modelmaker 存储库已移至 edgeai-tensorlab 存储库 。 请使用 edgeai-tensorlab 存储库而不是 edgeai-modelmaker、因为后者已存档。 edgeai-mmdetection 也是如此。 请设置 edgeai-tensorlab 存储库来替换这些-我建议使用虚拟环境来保持独立的依赖关系。 我相信您已安装了 modelmaker 和 mmdetection repos 的存档版本。 Edgeai-tensorlab 将包括这两个已被相互控制版本的归档的版本。  

      您的 mmyolo 版本应该没问题。 在设置 edgeai-tensorlab 时、我建议使用 r9.2分支/标签。 我从 git-blames 中看到 r10.0在 edgeai-tensorlab/edgeai-modeloptimization 中引入了这种版本控制问题、而9.2不包含这一点 . 以下依赖项预计适用于此 r9.2分支+上游 myolo

      torch=2.0.1 torchvision=0.15.2 torchaudio==2.0.2

      选项 B

      在你的屏幕截图中、可以看到有 model.onnx 和 model.prototxt。 这些文件看起来是否正常、例如、您能否加载。 ONNX 在 Netron 中,原型设计看起来与这里的相似吗?  

      编译可能失败、但训练已完成、并且应该已经生成 经过训练的模型。 无法打开 artifles.yaml 的上述错误很可能是因为未创建路径(MODEL_DIR/AM62A/COMPILEG/ PKG)。 AM62A/compilation/work/od-8200/artifies 下的"工件"目录是否为空?

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

      您好!

        我发现 github.com/.../7  上有 最新的 解决方案。 我尝试了 mmyolov8和 yolov5s6_640_ti_lite_37p4_56p0.onnx。 和使用 edgeai-benchmark 得到  yolov5s6_640_ti_lite_37p4_56p0的  伪影、但 onnx 模型位于伪影/模型 输入(fp32)输出(32)中。

      但当我尝试 运行时失败了。 你的 FAE 告诉我 git edgeai-dl-tools 和运行./ setup_target_device.sh、但这只是附带了新的问题 py3.12.如何运行这些伪影. 我们需要您的宝贵建议

         e2e.ti.com/.../imagedet_2D00_7_5F00_onnxrt_5F00_Desktop_5F00_ti_5F00_yolov5s6_5F00_640_5F00_ti_5F00_lite_5F00_37p4_5F00_56p0_5F00_onnx.tar

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

      你(们)好  

      您似乎使用的是 SDK 10.0。 您能确定基准也是 rc10.0吗?

      此致、

      Adam

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

      您好!

      回应 Adam 所说的--请检查基准工具也在 r10.0上

      在第二个图像中、运行此 onnx_inference.py 并看到有关的消息  

      "错误:配置文件大小(37912字节)与 sTIDL_IOBufDESC_t (94616字节)的大小不匹配"

      配置文件大小是以字节为单位的_tidl_io_1.bin 文件大小、而  sTIDL_IOBufDESC_t 是该文件的数据适合的结构。 这些大小与 SDK 版本直接相关。  

      这告诉我、您编译的工件用于比您运行的旧 SDK。 37912字节对应于 SDK 9.194616对应于 SDK 10.0。  

       

      您的模型需要根据10.0 tidl_tools 进行编译、才能与10.0 SDK 配合使用。  

      •  ./ setup_target_device.sh 在这里可能没有帮助--这是为了更新 ONNXRuntime, Tensorflow Lite 和 TVM,以及像9.2这样想要使用 bugfix 发行版的 SDK 上的固件。 我相信此脚本适用于9.2和更高版本的 SDK。 这意味着它不是10.0 SDK 或相应工件的正确选择

      我认为您安装的 SDK 就可以了。 请通过将 edgeai-benchmarking 备份升级到 r10.0或使用上述链接替换工具来更新 TIDL_tools、并解压到 edgeai-benchmark/tools/AM62A 中

      • 这个 edgeai-benchmarking 版本是  edgeai-tensorlab/存储库的一部分。 独立的 edgeai-benchmark 存储库仅跟踪高达9.2 SDK。 最好使用10.0版本标记的存储库中的设置脚本更新您的工具  

      BR、
      Reese

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

      得到它,成功地运行在 npu ,但得到错误的结果。 所以我尝试在 CPU 中运行 onnx 模型,得到这个。

      详细信息:

      download  yolov5s6_640_ti_lite_37p4_56p0.pt  from modelzoo

      ①edgeai -yolov5:

       python export.py --weights yolov5s6_640_ti_lite_37p4_56p0.pt  --img 640 --batch 1 --simplify --export-nms --opset 11
      get onnx and prototxt

      ②edgeai-benchmark(10.0):
      ./run_custom_pu.sh AM62A
      remain this in edgeai-benchmark/scripts/benchmark_custom.py
      'imagedet-7': dict(
      task_type='detection',
      calibration_dataset=imagedet_calib_dataset,
      input_dataset=imagedet_val_dataset,
      preprocess=preproc_transforms.get_transform_onnx(640, 640, resize_with_pad=True, backend='cv2', pad_color=[114,114,114]),
      session=sessions.ONNXRTSession(**utils.dict_update(onnx_session_cfg, input_optimization=False, input_mean=(0.0, 0.0, 0.0), input_scale=(0.003921568627, 0.003921568627, 0.003921568627)),
      runtime_options=settings.runtime_options_onnx_np2(
      det_options=True, ext_options={'object_detection:meta_arch_type': 6,
      'object_detection:meta_layers_names_list':f'/home/zxb/Desktop/ti/yolov5s6_640_ti_lite_37p4_56p0.prototxt',
      'advanced_options:output_feature_16bit_names_list':''
      }),
      model_path=f'/home/zxb/Desktop/ti/yolov5s6_640_ti_lite_37p4_56p0.onnx'),
      postprocess=postproc_transforms.get_transform_detection_yolov5_onnx(squeeze_axis=None, normalized_detections=False, resize_with_pad=True, formatter=postprocess.DetectionBoxSL2BoxLS()), #TODO: check this
      metric=dict(label_offset_pred=datasets.coco_det_label_offset_80to90(label_offset=1)),
      model_info=dict(metric_reference={'accuracy_ap[.5:.95]%':37.4})
      ),

      ③copy imagedet-7_onnxrt_Desktop_ti_yolov5s6_640_ti_lite_37p4_56p0_onnx.tar.gz to AM62A


      runtime_options = {
      "tidl_tools_path": "/home/tidl-tools",
      "artifacts_folder": "/home/yolov5s/artifacts",
      #"core_number": 1,
      }
      sess_options = onnxruntime.SessionOptions()
      sess_options.log_severity_level=3
      ep_list = ["TIDLExecutionProvider", 'CPUExecutionProvider']
      session = onnxruntime.InferenceSession(
      "/home/yolov5s/model/yolov5s6_640_ti_lite_37p4_56p0.onnx",
      providers=ep_list,
      provider_options=[runtime_options, {}],
      sess_options=sess_options,
      )
      # ['TIDLExecutionProvider', 'TIDLCompilationProvider', 'CPUExecutionProvider']
      #session = onnxruntime.InferenceSession(args.model,providers=['TIDLCompilationProvider'])
      start=time.time()
      ort_inputs = {session.get_inputs()[0].name: img[None, :, :, :]}
      output = session.run(None, ort_inputs)




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

      您好!  

      嗯、你已经下载了 TI 的预先训练的模型版本并导出到 ONNX、所以看到"CR-ON"的结果是错误的。 如果 CPU 结果错误、那么我预期目标上的编译版本也会正确。

      当您在 CPU (CPUExecutionProvider)上运行时、您的预处理映像的方式是否与训练期间的处理方式相同? 其中一个主要任务是减去均值(此处为0、因此无需执行任何操作)并乘以标量(我看到每个通道为0.00392)。 裁剪/调整大小不太重要。  

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5564064 #5564064"] preprocess=preproc_transforms.get_transform_onnx (640,640、resize_with_pad=True、backend='CV2'、pad_color=[114,114,114])、

      您是否从此处的链接中提取了经过预先训练的版本? : https://github.com/TexasInstruments/edgeai-yolov5/tree/4d86a53a0a25ca8f9e6fa4882b1096ade2bc9839/pretrained_models/models/detection/coco/edgeai-yolov5-gplv3 

      BR、
      Reese

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

      没问题、http://software-dl.ti.com/jacinto7/esd/modelzoo/gplv3/latest/edgeai-yolov5/pretrained_models/models/detection/coco/edgeai-yolov5/yolov5s6_640_ti_lite_37p4_56p0.pt   

      (小) PS D:\zxb\ACCC\edgeai-yolov5-main> python export.py --weights yolov5s6_640_ti_lite_37p4_56p0.pt --img 640 --batch 1 --simply --export-nms --opset 11.
      导出:weights=yolov5s6_640_ti_lite_37p4_56p0.pt、img_size=[640]、batch_size=1、device=cpu、include=['torchscript'、 'onnx'、'coreml']、half= false、inplace= false、train= False、 Optimize = False、DYNAMIC=False、Simple=True、OPS=11、EXPORT_NMS=True
      YOLOv5 2024-8-5手电筒1.4.0+CPU

      熔融层...
      C:\Users\Admin\.conda\envs\mini-lib\site-packages\torch\nn\Functional.py:718:UserWarning:命名 tensors 及其所有关联的 API 均为实验功能、可能会发生更改。 在释放为稳定状态之前、请不要将它们用于任何重要的用途。 (在..\c10/core/TensorImpl.h:1156下内部触发。)
      return TORCH.max_pool2d (input、kernel_size、stride、padding、dilation、 ceil_mode)
      模型汇总:297层、12653932参数、0梯度、17.4 GFLOPS

      PyTorch:从 yolov5s6_640_ti_lite_37p4_56p0.pt 开始(25.7MB)

      TorchScript:使用 torch 1.4.0+CPU...开始导出
      D:\zxb\ACCC\edgeai-yolov5-main\models\yol.py:57:TracerWarning:将张量转换为 Python 布尔值可能会导致跟踪不正确。 我们无法记录 Python 值的数据流,因此将来会将此值视为常量。 这意味着迹线可能不会推广到其他输入!
      如果 self.grid[i].shape[2:4]!= x[i].shape[2:4]或 self.onnx_dynamic:
      TorchScript:导出成功、另存为 yolov5s6_640_ti_lite_37p4_56p0.torchscript.pt (51.1MB)

      ONNX:使用 onnx 1.17.0...开始导出
      D:\zxb\ACCC\edgeai-yolov5-main\utils\general.py:593:TracerWarning:在张量上迭代可能会导致跟踪不正确。 传递不同形状的张量不会改变执行的迭代次数(可能会导致错误或无声给出不正确的结果)。
      对于 XI、枚举(预测)中的 x:#图像索引、图像推理
      C:\Users\Admin\.conda\envs\mini-lib\site-packages\torch\onnx\symbolic_opset9.py:697:UserWarning:此模型包含尺寸1上形状未知的输入上的挤压操作。 请注意 if
      输入的维度1的大小不是1、ONNX 模型将返回错误。 Opset 版本11支持在非单边尺寸上进行挤压、建议使用 Opset 版本11或更高版本导出此模型。
      warnings.warn ("此模型包含尺寸为"+ str (size_dim)+"的挤压操作、输入为"+
      ONNX:使用 onnx-simplifier 0.4.36...进行简化
      ONNX:导出成功、保存为 yolov5s6_640_ti_lite_37p4_56p0.onnx (50.7MB)
      ONNX:运行-使用 detect.py 运行动态 ONNX 模型推理:'python detect.py -权重 yolov5s6_640_ti_lite_37p4_56p0.onnx'
      导入 coremltools.optimize.torch 所需的最低火炬版本为2.1.0。 获取的是 torch 版本1.9.0。
      无法从 libmilstoragepython 导入 BlobReader。 没有名为"coremltools.libmilstoragepython"的模块

      CoreML:导出失败:模块'TORCH'没有属性'FX'

      导出完成(7.21s)。 通过 github.com/.../netron 可视化。

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

      V8:

       

      (mmyolo) PS D:\zxb\accc\test\mmyolo> python projects/easydeploy/tools/python export_onnx.py .\configs\yolov8\yolov8_n_syncbn_fast_8xb16-500e_coco.py .\mmyolov8n.pth --work-dir .\tests\ --img-size nx640 --simplify --io-threshold  0.65 --score-threshold 0.25 --opset 11 ---backend-nx640 --reme-export

      导出 ONNX 与 BBOX 解码器和 NMS ...                                                                        11 --backend ONNXRUNTIME --export-type MMYOLO;cabd5a98-aa67-45ba-Bed2-33e35e38e5a6.

      通过本地后端从以下路径加载检查点:.\mmyolov8n.pth

      C:\Users\Admin\.conda\envs\mmyolo\lib\site-packages\mmdet\apies\infer.py:90:UserWarning:dataset_meta 或类名称不保存在检查点的元数据中、默认情况下使用 COCO 类。

      C:\Users\Admin\.conda\envs\mmyolo\lib\site-packages\edgeai_torchmodelopt\xmodelopt\v1\convert_to_lite.py:166:UserWarning - xnn.surgery 基于模块。 要获得卓越的功能、请改为使用基于 torch.fx 的 xmodelopt.surgery

        warnings.warn ("warning - xnn.surgery 基于模块。 要获得卓越的功能、请改为使用基于 torch.fx 的 xmodelopt.surgery ")

      通过本地后端从以下路径加载检查点:.\mmyolov8n.pth

      C:\Users\Admin\.conda\envs\mmyolo\lib\site-packages\torcFunctional.py:504:UserWarning:torch.meshgrid:在即将发布的版本中、需要传递索引参数。 (在..\aten\Aten\Aten\native\TensorShape.cpp src:3484内部触发。)

        return _vf.meshgrid (tensors,**kwargs) # type : ignore[attr-defined]

      D:\zxb\accc\test\mmyolo\mmyolo\models\task_modules\coders\distance_point_BBOX_coder.py:TracerWarning:将张量转换为 Python 布尔值可能会导致跟踪不正确。 我们无法记录 Python 值的数据流,因此将来会将此值视为常量。 这意味着迹线可能不会推广到其他输入!

        assert points.size (-2)== pred_bboxs.size (-2)

      D:\zxb\ACCC\test\mmyolo\projects\easydeploy\NMS\ort_NMS.py:114:TracerWarning:torch.tensor 结果在跟踪中注册为常量。 如果使用此函数从常量变量中创建 tensor (每次调用此函数时这些变量都是相同的)、则可以安全地忽略此警告。 在任何其他情况下、这可能会导致布线不正确。

        max_output_boxs_per_class = torch.tensor ([max_output_boxs_per_class])

      C:\Users\Admin\.conda\envs\mmyaten\lib\site-packages\torch\onnx\symbolic_opset9.py:5589:UserWarning:exporting:::11中高级索引的 INDEX 运算符是通过多个 ONNX 运算符(包括 Reshape、Transpolo、Concat 和 collect)的组合实现的。 如果索引包含负值、则导出的图将产生不正确的结果。

        warnings.warn(.

      ====== Diagnostic Run torch.onnx.export version 2.0.1+cu118 ==========

      详细:false、日志级别:级别。 错误

      ============== 0无0注释0警告0错误==========

       

      ONNX 导出成功、保存到.\tests\mmyolov8n.onnx

      转换后的模型无效:图形中的节点必须按主题排序、但输入节点的"275":

      产品名称: 276 OpType: Greater

       不是任何先前节点的输出。

      Prototxt 导出成功、保存到.\tests\mmyolov8n.prototxt

       

       

       

       用 0001-2024-Aug-2-mmyolo.commit-8c4d9dc5.-model-surgery-with-edgeai-modeloptimization.txt 修补 myolo

      CNT 检测任何东西

       

      [补丁后]

       

      [补丁前]

       

      然后,我发现输出节点后外科医生不能被搜索,只有分数节点、这似乎的问题 mmyolo。

      如何 获得与 modelzoo yolov8n 相同的模型。

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

      您好!

      我请我们团队的其他几位成员来看看这里、因为这比我能够提供帮助的工具更深入地介绍了这些工具。 我无法在我的计算机上重现您的错误(Ubuntu 22.04)。

      我想花一点时间总结一下我们的现状:

      • 尝试对几个 YOLO 档案进行模型训练
        • yolov8使用 mmyolo + TI 补丁。 状态:模型可以导出、但未进行正确检测
        • yolov5使用 TI 提供的 edgeai-yolov5存储库。 状态:ONNX 模型已导出、但未能进行 prototxt -看起来像依赖项错误
        • 带有 modelmaker 的 yolox (repo 的存档版本、不是 tensorlab 的一部分)。 状态:在 tidrivingscapes 数据集上训练的模型在编译期间失败
      • 会遇到各种依赖项错误。

      我应该早点注意到这一点,但看起来你的路径是 Windows。 您是否在 Windows 操作系统上运行? 这些工具经过 Ubuntu 验证。 Ubutnu 18.04的版本<9.0和 Ubuntu 22.04的版本>=9.0将得到验证。  

      BR、
      Reese

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

      你好

       modelmaker-CPU 的问题已经解决。 它现在仍然还在那里

      • yolov8使用 mmyolo + TI 补丁。 状态:模型可能已导出、但未正确检测到。 由于无法正确检测导出的 ONNX 模型、工件也必须是错误的。
      • yolov5使用 TI 的 edgeai-yolov5存储库。 状态:onnx 模型已导出、但 prototxt 失败--它看起来像依赖项错误。
      • yolox 的 modelmaker 当我 使用 GPU 进行训练时,它会 以导出 ONx 模型结束。 它可以被训练 ,但不能 exportonnx。 这是日志。
      • (cd modelmaker 和 vi setup_all.sh 并替换 setup_cpu.sh -> setup.sh)e2e.ti.com/.../modelmakrlog.txt

      问题1关于 V8我在 Ubuntu 22.04中尝试过,它附带了问题,错误检测,无法搜索输出节点

      由于我们的模型包含 具有5个关键点的人脸检测、因此正在尝试 找到一种转换 v5/v8 pt -> pth -> onnx -> 伪影的方法。 但抛物线全部失败。  今天我将在 ubuntu22.04中尝试更晚的 v5。 感谢您关注此问题

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

      您好!

      由于 DMS 项目要在4月投产、总体情况比较匆忙、 在发展过程中可能会有更多问题。 很抱歉再次给您带来麻烦。

      还有两个问题、我从 e2e'ti 工程师复制的代码无法运行。  是否有任何其他 GST 示例? 或者通过简单的方法在 AM62A 中重新编译 OpenCV imshow。  

      导入 CV2
      NumPy 导入 NP

      宽度= 640
      高度= 480
      gst_pipe = f'appsrc caps="video/x-raw、width=width、height={height}、format=rgb、frameerate=30/1"! kmsink driver-name=tidss sync=false"
      video_out = CV2.VideoWriter (GST_PIPE、CV2.CAP_GStreamer、030、(宽度、 高度)、True)

      正确时
        frame = np.random.randint (255、size=(高度、宽度、3)、dtype=np.uint8)
        video_out.write (帧)
      video_out.release()
      问题2:
         如何   从左上角删除 edgeai-gst-apps 的徽标、我检查了所有无法找到的 CPP 代码。
    • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

      我在 modelmaker 中查看您的错误日志:

      RuntimeError:输入类型(TORCH.CUDA.ByteTensor)和重量类型(TORCH. FloatTensor)应相同

      根据您的解释、我了解它在 CPU 模式下工作正常、但您在 GPU 模式下尝试过、但它不起作用。 我们一直建议采用默认安装模式、即 CPU、并且最近尚未测试 GPU 模式-在 GPU 模式下可能存在问题。 我想您不是在等待解决这个问题、因为您的默认 CPU 型号已经在工作了。

      如何从 modelmaker 编译 yolox 模型- modelmaker 生成编译后的输出-它是否正常工作?

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

      你好

       modelmaker-CPU 的问题已经解决。 它现在仍然还在那里

      [/报价][报价用户 id="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5570591 #5570591"]
      • (cd modelmaker 和 vi setup_all.sh 并替换 setup_cpu.sh -> setup.sh)modelmakrlog.txt

      [报价]

      请确认:

      • 使用 GPU 进行训练时导出模型 失败 .
      • 使用 CPU 进行模型训练和导出 传递 .  

      您提到 yolov8完成了培训、但检测结果很差。 或许 需要更多的 epochs/训练数据来处理修改的层。 您是否可以传递用于 yolov8的训练+模型导出的日志?

      我已请求另一位专家来帮助执行培训/导出任务。 我可以帮助进行其他部分、例如在实时输入上评估模型。

      目标上的模型测试/评估:

      由于该处理器上缺少 GPU、OpenCV.imshow 将非常慢。 由于 CPU 渲染、"Weston/wayland"窗口合成器在 AM62A 上的速度较慢、通常首选 gstreamer --> KMS-sink。

      edgeai-gst-apps 存储库总体上是一个很好的示例。 gstreamer 流水线是从 YAML 配置文件创建的、然后通过 infer_pipe.py 脚本处理 TIDL/深度学习+后处理

      我还生产了一些其他演示、介绍了如何构建和运行 gstreamer 字符串。 这个脚本比 edgeai-gst-apps 简单,因为它是建立一个特定的管道,而不是基于 YAML 文件的结构-参见这里的另一个 GST 示例:

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5574241 #55744241"]
      video_out = CV2.VideoWriter (GST_PIPE、CV2.CAP_GStreamer、030、(宽度、 高度)、True)

      正确时
        frame = np.random.randint (255、size=(高度、宽度、3)、dtype=np.uint8)
        video_out.write (帧)
      [报价]

      这种工作方式是否适合您?

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5574241 #55744241"]
         如何   从左上角删除 edgeai-gst-apps 的徽标、我检查了所有无法找到的 CPP 代码。
      [报价]

      在您传递的 YAML 配置文件中、将"title"设置为空字符串。 这将删除名称/徽标的一部分。  

      对于另一部分(德州仪器(TI)边缘 AI)、您需要对代码进行一处小幅更改。 在 apps_python/gst_wrapper 中、 将 tiperfoverlay 元素的"main-title"属性设置为空字符串(')、如下所示:  

          if output.overlay_perf_type != None:
              sink_elements += make_element("queue")
              property = {"title":output.title,
                          "main-title": " ",
                          "overlay-type":output.overlay_perf_type}
              sink_elements += make_element("tiperfoverlay",property=property)

      BR、
      Reese

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

       如何工作

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

      谢谢!

      这也适用于 apps_cpp。  modelmaker  :   似乎 CONFIG_KEYPOINT_DETECTION.YAML 不起作用     

      请检查给定的 model_name 是否有效:yolox_s_keypoint。

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

      关于关键点检测-关键点检测实施正在更新-预计将在即将发布的10.1版本中(预计在1月中旬发布)起作用。

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

      您好、

       回到我原来的问题、如果我只有 onnx 模型和权重 pt 文件、我该如何让它在 NPU 上运行。

      我们需要一些指令。

      由于 edgeaitensorlab 仅提供 yolov5和 mmyolo 毫米检测等。 在预览问题中,我使用了 mmyolo 来获取 onnx 和 prototxt,onnx 检测不到 ,无法编译,这里是我们给 FAE 的模型,他们告诉我们等待两周前的工程师提供说明。

      e2e.ti.com/.../mmyolov8n.zip

       

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5565706 #5565706"]

      V8:

       

      (mmyolo) PS D:\zxb\accc\test\mmyolo> python projects/easydeploy/tools/python export_onnx.py .\configs\yolov8\yolov8_n_syncbn_fast_8xb16-500e_coco.py .\mmyolov8n.pth --work-dir .\tests\ --img-size nx640 --simplify --io-threshold  0.65 --score-threshold 0.25 --opset 11 ---backend-nx640 --reme-export

      导出 ONNX 与 BBOX 解码器和 NMS ...                                                                        11 --backend ONNXRUNTIME --export-type MMYOLO;cabd5a98-aa67-45ba-Bed2-33e35e38e5a6.

      通过本地后端从以下路径加载检查点:.\mmyolov8n.pth

      C:\Users\Admin\.conda\envs\mmyolo\lib\site-packages\mmdet\apies\infer.py:90:UserWarning:dataset_meta 或类名称不保存在检查点的元数据中、默认情况下使用 COCO 类。

      C:\Users\Admin\.conda\envs\mmyolo\lib\site-packages\edgeai_torchmodelopt\xmodelopt\v1\convert_to_lite.py:166:UserWarning - xnn.surgery 基于模块。 要获得卓越的功能、请改为使用基于 torch.fx 的 xmodelopt.surgery

        warnings.warn ("warning - xnn.surgery 基于模块。 要获得卓越的功能、请改为使用基于 torch.fx 的 xmodelopt.surgery ")

      通过本地后端从以下路径加载检查点:.\mmyolov8n.pth

      C:\Users\Admin\.conda\envs\mmyolo\lib\site-packages\torcFunctional.py:504:UserWarning:torch.meshgrid:在即将发布的版本中、需要传递索引参数。 (在..\aten\Aten\Aten\native\TensorShape.cpp src:3484内部触发。)

        return _vf.meshgrid (tensors,**kwargs) # type : ignore[attr-defined]

      D:\zxb\accc\test\mmyolo\mmyolo\models\task_modules\coders\distance_point_BBOX_coder.py:TracerWarning:将张量转换为 Python 布尔值可能会导致跟踪不正确。 我们无法记录 Python 值的数据流,因此将来会将此值视为常量。 这意味着迹线可能不会推广到其他输入!

        assert points.size (-2)== pred_bboxs.size (-2)

      D:\zxb\ACCC\test\mmyolo\projects\easydeploy\NMS\ort_NMS.py:114:TracerWarning:torch.tensor 结果在跟踪中注册为常量。 如果使用此函数从常量变量中创建 tensor (每次调用此函数时这些变量都是相同的)、则可以安全地忽略此警告。 在任何其他情况下、这可能会导致布线不正确。

        max_output_boxs_per_class = torch.tensor ([max_output_boxs_per_class])

      C:\Users\Admin\.conda\envs\mmyaten\lib\site-packages\torch\onnx\symbolic_opset9.py:5589:UserWarning:exporting:::11中高级索引的 INDEX 运算符是通过多个 ONNX 运算符(包括 Reshape、Transpolo、Concat 和 collect)的组合实现的。 如果索引包含负值、则导出的图将产生不正确的结果。

        warnings.warn(.

      ====== Diagnostic Run torch.onnx.export version 2.0.1+cu118 ==========

      详细:false、日志级别:级别。 错误

      ============== 0无0注释0警告0错误==========

       

      ONNX 导出成功、保存到.\tests\mmyolov8n.onnx

      转换后的模型无效:图形中的节点必须按主题排序、但输入节点的"275":

      产品名称: 276 OpType: Greater

       不是任何先前节点的输出。

      Prototxt 导出成功、保存到.\tests\mmyolov8n.prototxt

       

       

       

       用 0001-2024-Aug-2-mmyolo.commit-8c4d9dc5.-model-surgery-with-edgeai-modeloptimization.txt 修补 myolo

      CNT 检测任何东西

       

      [补丁后]

       

      [补丁前]

       

      然后,我发现输出节点后外科医生不能被搜索,只有分数节点、这似乎的问题 mmyolo。

      如何 获得与 modelzoo yolov8n 相同的模型。

      [报价]

      此外、我还使用 edgeai-yolov5 python=3.9    安装要求、并按照 readme.md 使用"python export.py --weight .\pretrained_models\yolov5s_640_ti_lite\weights\yolov5s6_640_ti_lite_37p4_56p0.pt  --img 640 --batch 1 --simplify --export-nms --opset 11"

      它也无法正常工作。

       

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

       圣诞节快乐!

      我们基于 edgeai-gst-apps 的 DMS 项目已接近完成,两个流在 CPU 上运行,1个流在 npu 上 运行,最后的自定义模型也需要在 npu 上运行,这样就可以满足自动要求,但我们遇到了一些基于上述问题的其他问题。 我们确实需要一个能够深入研究这些问题的人。

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

      这是使用 edgeai-tidl-tools  的 DMS 模型之一,校准11图片5epoch ,仍然在两组数据之间存在一些错误。

      我如何将校准 epoch 更改为20个或更多。

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

      你(们)好  

      我想知道这一问题现在的状况如何。 您是否通过了 pth -> onnx -> aritivents 的管道?  

      这似乎是说在 onnx->artifact 中存在精度损失。 所以现在的主要问题变成了量化过程中的精度损失。 我对吗?  

      、在 两组 dat
      之间仍然存在一些错误

      此致、

      Adam

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

      你(们)好  

      这不是 od/KPT 类型模型。 我参考了  e2e 上的其他回复、使用 edgeai-tidl-tools 来获取这些伪影:task_type : 无需 prototxt 即可进行分类。  

      以上关于 od 类型的问题  尚未解决。 在这两周内,还有类似上述问题的其他问题。如:onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument:[ONNXRuntimeError]: 2: invalid_argument :运行 MaxCool 节点时返回非零状态代码。 名称:'/baseModel/backbone/stage4/stage4.2/poolings/MaxPool 状态消息:不支持的池大小。

      此工件文件是通过 edgeai-benchmarking 获得的。 但它可以通过 定点校准并进行推测。

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

      王小军、您好!

      我看到基于 YOLO 的模型存在挑战。 我同样 在使用 Python 3.8和 Ubuntu 22.04 LTS 的机器上看到导出问题。  

      YOLOv5

      使用默认设置/安装脚本的 yolov5存在依赖挑战。

      Coremltools 软件包似乎造成了最大的麻烦--我注意到要求将版本设置为>=4.1、我的机器安装了>8.0的版本。 我专门重新安装到6.1、我们需要限制此版本的最大版本。 请在此处查找我为 python 3.8安装的软件包的完整列表:  

      安装这些版本后、我可以完成导出并获取 ONNX 和 PROTOTXT 文件。 然后、我可以使用 edgeai-tidl-tools 进行编译/导入、并验证是否检测到了一些相关对象(下面是生成的图像、但我注意到这与基于 CPU 的推理略有不同)

      请注意、我使用的是 TI 提供的。 PT 文件作为导出命令的起点(与您所注意的相同、位于 edgeai-yolov5的 README.md 中)。  

      YOLOv8、带补丁 mmyolo

      [报价 userid="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5582148 #5582148"]

       

       用 0001-2024-Aug-2-mmyolo.commit-8c4d9dc5.-model-surgery-with-edgeai-modeloptimization.txt 修补 myolo

      CNT 检测任何东西

      [报价]

      那么、您应用了这个补丁并导出了模型、它不会进行正确的检测。 应用贴片后、您是否为任何进一步的 epoch 训练模型(是或否)? 模型优化可替代多个层、因此需要进一步训练。 如果您没有再训练、这可能会解释缺乏检测

      我还没有自己验证这个。

      其他 DMS 型号

      [报价用户 id="632396" url="~/support/processors-group/processors/f/processors-forum/1443278/sk-am62a-lp-how-to-run-yolov8-v11-in-this-board/5583376 #558336"]

      这是使用 edgeai-tidl-tools  的 DMS 模型之一,校准11图片5epoch ,仍然在两组数据之间存在一些错误。

      我如何将校准 epoch 更改为20个或更多。

      [报价]

      我想您希望量化步骤运行更多校准迭代。 校准帧(要通过的图像数量)和校准迭代次数(每个帧 N 次迭代)都有一个选项。 您应该将后者的选项"advanced_options:calibration_itations"设置 为更高的值。 此处文档:

      以上关于 od 类型的问题  尚未解决。 在这两周内,还有类似上述问题的其他问题。如:onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument:[ONNXRuntimeError]: 2: invalid_argument :运行 MaxCool 节点时返回非零状态代码。 名称:'/baseModel/backbone/stage4/stage4.2/poolings/MaxPool 状态消息:不支持的池大小。

      该层的内核大小和其他属性是什么? 支持高达3x3、并且更大的(奇数)内核通过按顺序创建多个 MaxPol 来进行仿真。 几个小型内核可以执行与一个较大内核相同的操作。 图像太模糊了,我看不到张量大小。

      该主题相当长、很难跟踪。 如果有一种明确的方法可以将其分为不同的主题、作为新主题、这将有助于我们的支持团队。