2355702_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2355702_zh-CN

2355702_zh-CN

[i.MX95 EVK REV A1][LF 6.6.52_2.2.2] 移植的 DMS 演示:CPU 工作,NPU 失效

您好,NXP团队:

我正在使用带有 BSP LF 6.6.52_2.2.2 的 i.MX95 EVK REV A1。

我目前正在评估 i.MX95 上的 DMS 演示。我使用的 DMS 演示是从分支 lf-6.12.49_2.2.0 中的以下源代码移植过来的:

nxp-demo-experience-demos-list / scripts / machine_learning / dms

因为我的平台是 i.MX95 EVK REV A1,所以我需要继续使用 LF 6.6.52_2.2.2 并且无法迁移到更新的电路板支持包。

当前状态:
- 当我选择 CPU 时,移植的 DMS 演示正常运行。
- 当我切换到 NPU 时,相机预览会显示,但 DMS 推理不能正常运行。

这表明 DMS 应用流程本身基本正常,问题可能与 Neutron/NPU 模型转换或模型兼容性有关。

环境:
-主板:i.MX95 EVK REV A1
-BSP:LF 6.6.52_2.2.2-eIQ
工具包:v1.14.0(Ubuntu 20.04 安装程序)

-使用的转换流程:中子变流器--input .tflite--目标 imx95 --use-python-prototype --output_converted.tflite

我确认:
1.中子调整环境本身正在发挥作用。
2. mobilenet_v1_1.0_224_quant.tflite 可以成功转换。
3.转换后的 MobileNet 模型可以在目标机上成功运行:
/usr/bin/tensorflow-lite-2.16.2/examples/benchmark_model \
--graph=mobilenet_v1_1.0_224_quant_converted.tflite \
--external_delegate_path=/usr/lib/libneutron_delegate.so
4.基准测试结果表明,Neutron 委托实际上已在目标上成功使用。

然而,与 DMS 相关的模型在转换过程中会出现故障:

1. face_detection_ptq.tflite
- Fails in neutron_weights.py -> gen_add_params()
- Error:
IndexError: list index out of range

2. face_landmark_ptq.tflite
- 在 scheduling_if.py 中失败 -> create_tile()
- Error:
TypeError: 'NoneType' object is not subscriptable
- 似乎与 network_node['padTLBR'][0] 有关。

3. iris_landmark_ptq.tflite
- 因同样的 create_tile() / padTLBR NoneType 问题而失败

我还尝试了:
- --exclude-operator-types ADD

但这些与 DMS 相关的模型仍然失败。

因为:
- 移植的 DMS 演示可在 CPU 模式下工作,
- MobileNet 可在 NPU 上成功转换和执行,
- 只有 DMS 相关模型在中子调谐转换过程中失败、

我目前的理解是,板运行时/委托环境是正常运行的,问题特定于 DMS 模型转换路径。

我的问题是

1.是 face_detection_ptq.tflite、face_landmark_ptq.tflite 和 iris_landmark_ptq.tflite 由 LF 6.6.52_2.2.2 上的 i.mx95 中子调谐正式支持?
2。i.MX95 EVK REV A1/LF 6.6.52_2.2.2 上这些 DMS 相关型号有任何已知限制吗?
3.此 BSP 是否有任何补丁、更新的中子调谐包或预转换的 DMS 中子模型?
4。对于带有 LF 6.6.52_2.2.2 的 i.MX95 EVK REV A1,DMS 演示版预计在 NPU 上运行,还是仅在 CPU 上运行?

如有任何建议,我们将不胜感激。

谢谢!

Re: [i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails

您好@ChuckYang

,您可以试试 L6.12.20,这是支持 A1 芯片的最后一个版本。然而,即使使用 L6.12.20,由于芯片内部 NPU 的设计问题,某些检测模型仍然无法产生正确的结果。因此,最终的解决方案是使用 B0 芯片。

致敬,
Zhiming

Re: [i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails

嗨,志敏、

感谢您的反馈。

我听从了你的建议,在 i.MX95 A1 EVK 上尝试了 BSP 6.12.20。

以下是我目前在 BSP 6.12.20 上的测试结果:

1.我将 DMS 演示版移植到了 BSP 6.12.20 环境中。

2.我使用 DMS 演示版下载了以下四个原始模型:

- face_detection_ptq.tflite
- yolov4_tiny_smk_call.tflite
- face_landmark_ptq.tflite
- iris_landmark_ptq.tflite

3.然后我使用 eIQ Toolkit v1.17.0 中的 neutron-converter.exe 将这些模型转换为 i.MX95。

我使用的变流器版本是:

eIQ_Toolkit_v1.17.0
MCU_SDK_25.06.00 + Linux_6.12.20_2.0.0

4.所有四种型号都能成功转换。

5.我还在 EVK 上使用带有 Neutron 委托的 benchmark_model 测试了转换后的模型。

benchmark_model 测试成功完成,日志显示 EXTERNAL 委托可以创建。

6.然而,当我更换了 DMS 演示模型下的".....:

/opt/gopoint-apps/downloads/

再次运行 DMS 演示,结果还是一样:

- CPU 模式可以工作。
- NPU 模式仍无法正常工作。
- 选择 NPU 模式时,DMS 检测结果无法正确更新。

我附上了以下两条日志供你参考:

-neutron-converter.log
-benchmark_model.log

您能否确认我的测试结果是否与您提到的 A1 内部 NPU 设计问题相符?

换句话说,对于i.MX95 A1芯片,即使使用电路板支持包 6.12.20和转换后的模型,DMS演示NPU模式是否无法在这些检测模型上正常运行?

如果是这样,是否建议 A1 的变通方法是只使用 CPU 模式,而正确的 DMS NPU 加速的最终解决方案是使用 i.MX95 B0 芯片?

谢谢。

Re: [i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails

@Zhiming_Liu

对不起,我在之前的回复中忘记提到你了。能否请您帮忙检查一下上述测试结果?谢谢。

Tags (1)
No ratings
Version history
Last update:
‎05-06-2026 04:33 AM
Updated by: