启扬I.MX8MPlus开发板如何在NPU上适配Movenet 模型

在NXP I.MX8MPlus平台上,因为自带有一颗NPU,所以官方对于很多开源模型有许多适配,从官方的github网站GitHub - NXP/eiq-model-zoo: A collection of machine learning models for vision optimized for NXP products · GitHub中可以查看到具体的适配信息。本篇文章具体介绍NPU的使用过程,以自带的movenet模型为例。

首先根据github上的网址将nxp-model-zoo拉取到PC Ubuntu上。这里要注意的是Ubuntu版本最好是在20.04~24.04之间,因为对python版本有限制。命令如下:

复制代码
git clone https://github.com/NXP/eiq-model-zoo.git

拉取后生成如下文件(正常拉取没有movenet.tflite文件):

可以看到官方已经写好了docker的配置文件,可以直接根据官方的命令构建docker镜像,命令如下:

复制代码
docker build -t nxp-model-zoo .

在构建的过程中可能会遇到相关报错,比如说apt update的时候没有默认yes,亦或者dockefile里的python版本不是必须的,这里贴出修改过的文件:

成功构建后可以使用sudo docker images查看构建的镜像,如下图所示:

以上步骤完成后就可以开始启动镜像并且执行对应movenet的构建脚本,构建movenet模型的tflite文件,命令如下所示:

复制代码
docker run --rm -v "$PWD:/workspace" nxp-model-zoo /workspace/tasks/vision/pose-estimation/movenet/recipe.sh

如果发现有相关报错可能跟路径有关系,再次核对一下路径即可。

运行成功就可以在eqi-model-zoo目录下生成对应的tflite文件movenet.tflite,如下图所示:

至此,我们所需要的关键文件准备完毕,接下来需要核对目标板相关文件并且将测试脚本以及测试图片移动到目标板上用于测试。

这里以我司IAC-IMX8MP-Kit为例,搭载Linux6.6内核,如果有相关测试与文章不符,可首先查看环境是否一致。

将PC上刚刚生成的movenet.tflite、eiq-model-zoo/tasks/vision/pose-estimation/movenet/example.pyeiq-model-zoo/tasks/vision/pose-estimation/movenet/example_input.jpg放入到/root/目录下,同时也要保证板端/usr/lib/下有libtensorflow-lite.so.2.16.2库以及libvx_delegate.so,环境确认之后修改example.py脚本。

因为当前是tensorflowlite处理的模型,所以需要将import tensorflow as tf注释,添加import tflite_runtime.interpreter as tflite。修改完成后测试脚本是否能够正常运行,执行命令python3 example.py,执行正常会在当前目录生成结果图片example_output.jpg,将其拷贝到PC上查看到具体结果,如下图所示:

可以通过打印的log查看到推理所使用的时间,另外可以观察到一个信息:

复制代码
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.

这表明这次推理是发生在CPU端而不是NPU端。可以通过nxp的官方文档查看到tensorflow的模型想要使用NPU,是使用的vx delegate代理,所以我们需要再次修改脚本,让模型跑在NPU上,可以参考官方的脚本进行修改,路径如下:

复制代码
https://github.com/nxp-imx/tensorflow-imx/blob/lf-6.6.23_2.0.0/tensorflow/lite/examples/python/label_image.py,

参考修改后在example.py添加如下图所示:

即可,修改完成后运行,当出现一下log打印时说明运行在NPU上:

对比CPU比较明显的便是推理速度很快,这里指的是平均速度,对比单张可能因为缓存等一系列问题,计时会有很大差异,忽略单次推理即可。

相关推荐
刘一说1 小时前
AI科技热点日报 | 2026年07月17日
人工智能·科技
海盗12341 小时前
AI新闻日报_2026-07-17
人工智能
Together_CZ1 小时前
GKDT: General Keypoint Detection Transformer——通用关键点检测 Transformer
人工智能·transformer·通用关键点检测·gkdt·keypoint·detection
学术小白人1 小时前
第二届智能制造、机器人与自动化国际学术会议(IMRA 2026)
运维·人工智能·机器人·自动化·制造
2601_960906722 小时前
网络防御等最先进AI模型领域
人工智能·json·hbase·flume·storm
互联网科技看点2 小时前
2026智能柜公司预约指南 3步选到适配靠谱品牌
大数据·人工智能
只与明月听2 小时前
LangChain 学习-掌握LangChain Core API
前端·人工智能·后端
nzz_1712142 小时前
PHP程序员转型AI岗位指南:核心技能、北京就业市场与转型路径分析
开发语言·人工智能·php
东风破_2 小时前
知识蒸馏是什么?为什么小模型不只学习答案,还要学习概率分布
人工智能