本帖最后由 qiao--- 于 2024-6-25 00:30 编辑
正点原子i.MX93开发板具有0.5TOPS算力,对于一般的一些AI识别应用来说已经足够了。接下来我将测评这块开发板这方面的性能。这里我将分别用CPU跑AI和用NPU跑AI来看看效果。
首先来测评一下正点原子这块开发板的AI的相关资料。直接说结论,目前这块开发板由于最近才上市,所以这块资料不是很完善,只能保证满足官方的历程能跑通。下面是他们文档中的声明,但是我相信后面正点原子会很快把这方面的资料补起来。
1.CPU进行AI识别
我这里跑的都是官方的例子。用的摄像头是USB摄像头。
首先将正点原子的模型文件拷贝到板子里,他们家的模型相关资料在01、程序源码\01、程序源码\06、AI例程源码\01、例程源码中,模型文件如下所示:
将他们拷贝到板子的/usr/bin/eiq-examples-git/modes下面即可。
这里我用CPU跑一个手势识别的例子,看看帧率如何,精度如何。
在跑这些例子的时候首先要做一下准备工作,如下:
- 将开发板的初始UI关掉,方便我们显示结果到显示屏上。
- 开启Weston 的支持,因为正点原子提供的程序需要使用 OpenCV 来管理窗口。
命令分别如下:
systemctl stop systemui
systemctl start weston
然后进入到手势识别的项目目录
cd /usr/bin/eiq-examples-git/gesture_detection/
执行下面命令进行识别
python3 main.py -i /dev/video0
效果视频如下:
VID_20240624_235453
由上视频可以看出。用CPU进行推理的的帧率肉眼可见的低,几乎是1s推理一帧图片,识别率还可以,手掌可以使识别出来,经过我的测试发现,手掌做一些复杂的动作时候就推理不出来了。不过这块板子用CPU推理的速度相比其他市场上的一些开发板用CPU推理已经很高了。
2.GPU进行AI识别
我这里GPU进行AI识别的例子是使用的目标检测识别。
在上面拷贝了模型文件的基础上需要通过 vela 工具将模型编译成可以使 NPU 进行推理的 vela 模型。
进入到/usr/bin/eiq-examples-git 目录,使用 vela 工具编译 models 目录下 mobilenet_v1_1.0_224_quant.tflite模型,并使用--output-dir 参数指定 vela_models 目录,执行以下命令
这样NPU可推理的模型就在vela_models/目录下了。
cd /usr/bin/eiq-examples-git
vela models/ssd_mobilenet_v1_quant.tflite --output-dir vela_models/
出现下面的结果代表转化成功
在测试之前需要将 main.py 推理脚本里面的模型路径和模型名称进行修改
cd /usr/bin/eiq-examples-git/object_detection
vi main.py
我的修改如下所示:
最后就可以进行推理了,使用下面的命令,其中/usr/lib/libethosu_delegate.so是指定NPU推理的动态库。
python3 main.py -i cars0.bmp -d /usr/lib/libethosu_delegate.so
推理效果如下所示:
VID_20240625_000800
从视频中可以看出,推理速度肉眼可见的上升,大约10ms可以推理出来一帧数据,检测的准确率还可以。
总结:通过本期测评我们测评了正点原子i.MX93开发板AI识别方面的性能以及资料情况,正点原子AI方面的教程有待完善,开发板的NPU推理的性能不错,有0.5TOPS算力,在推理目标检测模型的时候每10ms可以推出1帧数据,识别准确率较好。