RT-ThreadAIkit开源:轻松实现一键部署AI模型至RT-Thread
RT-AK 简介
RT-AK
:RT-Thread AI kit
,RT-Thread AI
套件
RT-AK 是 RT-Thread 团队为 RT-Thread 实时操作系统所开发的 AI 套件,能够一键将 AI 模型部署到 RT-Thread 项目中,让用户可以 在统一的 API 之上进行业务代码开发,又能在目标平台上获得极致优化的性能,从而更简单方便地开发端侧 AI 应用程序。
在 RT-AK 支持下,仅需要一行命令,python aitools.py --model xxx...
,即可将 AI 模型部署到 RT-Thread 系统中:
详细的命令请查阅:[如何运行 aitools.py]( step1 运行rt_ai_tools/aitools.py
)
开源链接:https://github.com/RT-Thread/RT-AK
示例DEMO
本教程 RT-AK 适配目标平台:STM32
以下项目为 RT-AK 的示例 Demo,基于 ART-PI 硬件平台和 Mnist 数据集。
1. 准备工作
Windows 10
Python >= 3.7
准备以下四份重要重要重要的材料:
1.1 X-CUBE-AI 介绍
下载地址:
https://st.com/zh/embedded-software/x-cube-ai.html
版本:V5.2.0
(以上链接请复制至外部浏览器打开)
TO DO LIST: 最新的版本是 V6.0.0,目前使用的是 V5.2.0,稍后的 RT-AK 将会更新
X-CUBE-AI
是STM32Cube.AI
生态系统的STM32Cube
扩展软件包的一部分,能够自动转换预训练的神经网络。
下载界面
1.2 X-CUBE-AI 解压
其中:
stm32ai-windows-5.2.0.zip
是我们所需要,该文件夹里面存放的是X-CUBE-AI
模型转换软件:stm32ai
STMxxx.pack
是STM32Cube.AI
的静态库文件,无需解压,已经存在。
解压stm32ai-windows-5.2.0.zip
。
例:在这里我将其解压到:D:\Program Files (x86)\stm32ai-windows-5.2.0
,可以在该路径下看见有一个windows
文件夹。
记下该路径,重要重要重要
1.3 ART-PI BSP
先打开
RT-Thread Studio
新建
ART-PI BSP
如果在开发板的地方,没有找到
STM32H750-RT-ART-PI
,请查阅:https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi/blob/master/documents/UM5002-RT-Thread%20ART-Pi%20%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C.md
(以上链接请复制至外部浏览器打开)
RT-Thread Studio 新建 ART-PI
2. 执行步骤
Step1 运行rt_ai_tools/aitools.py
代码将会自动使用
STM32Cube.AI
的模型转换工具,获得一个集成了 AI 的 BSP对,就是这么硬核,一步肝到位!
内部的流程请看源码或者plugin_stm32
仓库下的readme
文档
运行命令
进入edge-ai/RTAK/tools
路径,运行aitools.py
。
1运行命令2python aitools.py --project= --model= --platform=stm32 --ext_tools= --clear34示例5python aitools.py --project="D:\RT-ThreadStudio\workspace\test" --model="./Models/keras_mnist.h5" --platform=stm32 --ext_tools="D:\Program Files (x86)\stm32ai-windows-5.2.0\windows" --clear
运行到该步骤操作已经结束,后续是补充说明。
运行命令其他参数补充说明
1指定转换模型的名称,--model_name 默认为 network2python aitools.py --project= --model= --model_name= --platform=stm32 --ext_tools=34保存运行 stm32ai 线程过程中产生的文件,--clear 默认为空5如果存在,则将会删除 `stm32ai` 运行时产生的工作文件夹,即`--stm_out`6python aitools.py --project= --model= --platform=stm32 --ext_tools=78指定保存运行日志, --log默认为空9python aitools.py --project= --model= --log=./log.log --platform=stm32 --ext_tools=1011指定保存的文件夹名称,--stm_out 默认是当天时间,比如./2021022312python aitools.py --project= --model= --platform=stm32 --ext_tools= --stm_out 1314指定生成的 c-model 名,--c_model_name 默认是network15python aitools.py --project= --model= --platform=stm32 --ext_tools= --c_model_name=
运行参数详细说明
主函数参数部分
STM32 平台插件参数部分
Step2 编译和烧录
本教程仅展示RT-Thread Studio
编译,另外还支持以下几种编译方式:
Keil
基于
RT-Thread Env
的Scons
不基于
RT-Thread Env
的Scons
RT-Thread Studio 编译和烧录
在RT-Thread Studio
中,找到项目工程,右键,
更新软件包 + 刷新工程,
然后编译(?),
最后烧录加显示。
这时候你就已经成功获得了一个集成了AI
和RT-Thread
的新的ART-Pi BSP
,
就可以RT-Thread
系统上做应用开发啦。
示例应用代码提供
我们提供了一份运行模型推理的示例代码 mnist_app.c:
http://117.143.63.254:9012/www/RT-AK/mnist_app.zip(以上链接请复制至外部浏览器打开):
下载解压,放置到
路径下/applications
选中
RT-Thread Studio
中的 项目工程,右击刷新
编译烧录,
输入命令:
mnsit_app
3. 完整的示例工程
完整的示例工程仓库地址:下载即可食用
https://github.com/EdgeAIWithRTT/Project3-Mnist_Cube_RTT/tree/master/Mnist_RTT
(以上链接请复制至外部浏览器打开)
体验打卡
欢迎大家在体验RT-AK后截图留念,并将运行成功的截图发送至QQ/微信群艾特管理员,我们将从中抽取3名幸运小伙伴送出柿饼派、RT-Thread定制高端运动旅行背包、RT-Thread定制茶具礼盒一份!
RT-AK QQ交流群
807401653
?扫码进群 ?
?扫码进群 ?
??? 点击阅读原文了解RT-AK