• 正文
  • 相关推荐
申请入驻 产业图谱

ST最强MCU--STM32N6中如何快速评估深度学习模型

09/10 15:07
1164
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

STM32N6是意法半导体推出的一款性能强劲且主打边缘AI应用的微控制器,你可以把它理解为给智能设备打造的“超级大脑”。它不像传统MCU只靠一个核心干活,而是玩起了“组合拳”,特别适合那些需要实时进行图像识别、语音处理等AI任务的场景。

博主也是有幸可以使用STM32N6570-DK开发板进行开发测试。

N6的开发难度很高,这一年的时间抽空之余在摸索N6的使用。

本期我们详细一下STM32N6570-DK如何对一个已知模型进行验证。

1、准备工具

我们需要准备一块STM32N6-DK(Nucleo也行,但是我这边是按照DK来的)。

安装STM32CubeProgram

安装STM32CubeIDE(IAR环境也可以)

安装STEdgeAI Core

因为要使用到Python环境,这里我安装了PyCharm

这里我选用STM32 AI模型库里面的模型进行测试。

2、环境配置

环境配置这一步及其的麻烦,会遇到很多很多的问题。

首先在STEdgeAI中我们可以找到stedgeai.exe,这个程序可以在命令行中帮助我们将模型转化成.c文件。

在PowerShell中进入stedgeai.exe的目录中,运行手册中提供的命令:

stedgeai generate -m mobilenet_v2_0.35_224_fft_int8.tflite?--target?stm32n6?--st-neural-art

由于环境变量中没有设置模型的目录,因此是无法直接找到目录的,这里我们就直接使用直接寻址的方式:

stedgeai?generate -m F:CodeSTAIAIProjectmobilenet_v2_0.35_224_fft_int8.tflite --target stm32n6 --st-neural-art

直接用绝对地址来添加模型位置。

可以看到对应的文件生成成功。

接着配置N6上运行的相关配置:

在PyCharm中打开N6_scripts的工程目录,这个目录可以在安装STEdgeCore的地方找到。

配置Python基础解释器,这里不要使用我们自带的基础解释器,要用STEdgeCore的基础解释器。

修改工程所对应的配置文件:

修改编译器类型和工具路径,这里错误一点点就会导致脚本运行失败。

修改完配置后,在终端中应用配置。

python n6_loader.py --n6-loader-config ./config.json

显示Successfully即配置完成。

同样的,我们需要修改config_n6l.json的配置,主要是修改一下刚才生成的模型文件(.c)的位置:

同样要应用一下配置文件:

3、速度测试

做完了上述的环境配置后,我们就可以烧录测试程序了,将开发板的BooT1拉高进入Bootloader。

python?n6_loader.py

运行n6_loader.py代码

$env:PYTHONPATH =?"D:STSTEdgeAI2.2scriptsai_runner"

要把这个目录加到环境变量里面!!!!

python?D:STSTEdgeAI2.2scripts/ai_runner/examples/checker.py -d serial:921600?--perf-only -b?10

接着运行Cheak.py,对随机十个样本进行模型推理(环境变量没加就会报错)

得到模型运行速度的评估数据。

stedgeai?validate -m F:CodeSTAIAIProjectmobilenet_v2_0.35_224_fft_int8.tflite --target stm32n6 --mode target -d serial:921600

同样的,我们还可以直接快速评估模型的准确性:

得到模型的评估报告(不过我看不懂罢了),后面还有个例程可以输入样本进行真实的准确度分析。

AI总结如下:

4、后续的功能让我琢磨琢磨

后面主要再去看看如何实机部署模型。

相关推荐