[i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails Hi NXP team, I am using an i.MX95 EVK REV A1 with BSP LF 6.6.52_2.2.2. I am currently evaluating the DMS demo on i.MX95. The DMS demo I am using was ported from the following source in branch lf-6.12.49_2.2.0: nxp-demo-experience-demos-list / scripts / machine_learning / dms Because my platform is i.MX95 EVK REV A1, I need to stay on LF 6.6.52_2.2.2 and cannot move to a newer BSP. Current status: - When I select CPU, the ported DMS demo runs normally. - When I switch to NPU, the camera preview is shown, but the DMS inference does not function correctly. This suggests that the DMS application flow itself is basically working, and the issue is likely related to Neutron/NPU model conversion or model compatibility. Environment: - Board: i.MX95 EVK REV A1 - BSP: LF 6.6.52_2.2.2 - eIQ Toolkit: v1.14.0 (Ubuntu 20.04 installer) - Conversion flow used: neutron-converter --input .tflite --target imx95 --use-python-prototype --output _converted.tflite What I confirmed: 1. The neutron-tuning environment itself is working. 2. mobilenet_v1_1.0_224_quant.tflite can be converted successfully. 3. The converted MobileNet model can run successfully on target with: /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. The benchmark result shows that the Neutron delegate is actually being used successfully on target. However, DMS-related models fail during conversion: 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 - Fails in scheduling_if.py -> create_tile() - Error: TypeError: 'NoneType' object is not subscriptable - It seems related to network_node['padTLBR'][0] 3. iris_landmark_ptq.tflite - Fails with the same create_tile() / padTLBR NoneType issue I also tried: - --exclude-operator-types ADD but these DMS-related models still fail. Since: - the ported DMS demo works in CPU mode, - MobileNet can be converted and executed successfully on NPU, - only the DMS-related models fail during neutron-tuning conversion, my current understanding is that the board runtime/delegate environment is functional, and the problem is specific to the DMS model conversion path. My questions are: 1. Are face_detection_ptq.tflite, face_landmark_ptq.tflite, and iris_landmark_ptq.tflite officially supported by i.MX95 neutron-tuning on LF 6.6.52_2.2.2? 2. Is there any known limitation for these DMS-related models on i.MX95 EVK REV A1 / LF 6.6.52_2.2.2? 3. Is there any patch, updated neutron-tuning package, or pre-converted DMS Neutron models available for this BSP? 4. For i.MX95 EVK REV A1 with LF 6.6.52_2.2.2, is the DMS demo expected to run on NPU, or CPU only? Any suggestions would be appreciated. Thank you. Re: [i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails Hi @ChuckYang You can try L6.12.20, which is the last version to support the A1 chip. However, even with L6.12.20, certain detection models still cannot produce correct results due to design issues with the chip’s internal NPU. Therefore, the ultimate solution is to use the B0 chip. Best Regards, Zhiming Re: [i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails Hi Zhimin, Thanks for your feedback. I followed your suggestion and tried BSP 6.12.20 on the i.MX95 A1 EVK. Here is my current test result on BSP 6.12.20: 1. I ported the DMS demo to the BSP 6.12.20 environment. 2. I used the DMS demo to download the following four original models: - face_detection_ptq.tflite - yolov4_tiny_smk_call.tflite - face_landmark_ptq.tflite - iris_landmark_ptq.tflite 3. Then I used neutron-converter.exe from eIQ Toolkit v1.17.0 to convert these models for i.MX95. The converter version I used is: eIQ_Toolkit_v1.17.0 MCU_SDK_25.06.00 + Linux_6.12.20_2.0.0 4. All four models can be converted successfully. 5. I also tested the converted model on the EVK by using benchmark_model with the Neutron delegate. The benchmark_model test can finish successfully, and the log shows that the EXTERNAL delegate can be created. 6. However, when I replaced the DMS demo models under: /opt/gopoint-apps/downloads/ and ran the DMS demo again, the result was still the same: - CPU mode can work. - NPU mode still does not work properly. - The DMS detection result is not updated correctly when NPU mode is selected. I attached the following two logs for your reference: - neutron-converter.log - benchmark_model.log Could you help confirm whether my test result matches the A1 internal NPU design issue you mentioned? In other words, for the i.MX95 A1 chip, even with BSP 6.12.20 and the converted models, is the DMS demo NPU mode not expected to work correctly for these detection models? If so, is the recommended workaround for A1 to use CPU mode only, and the final solution for correct DMS NPU acceleration is to use the i.MX95 B0 chip? Thanks. Re: [i.MX95 EVK REV A1][LF 6.6.52_2.2.2] Ported DMS demo: CPU works, NPU fails @Zhiming_Liu Sorry, I forgot to mention you in my previous reply. Could you please help check the test results above? Thank you.
記事全体を表示