0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于RT-AK开源轻松实现一键部署AI模型至RT-Thread解析

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2021-04-26 18:07 次阅读

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 介绍

TO DO LIST: 最新的版本是 V6.0.0,目前使用的是 V5.2.0,稍后的 RT-AK 将会更新

X-CUBE-AI 是 STM32Cube.AI 生态系统的 STM32Cube 扩展软件包的一部分,能够自动转换预训练的神经网络

X-CUBE-AI

88fbefe4-a4b0-11eb-aece-12bb97331649.png

下载界面

1.2 X-CUBE-AI 解压

893b74d4-a4b0-11eb-aece-12bb97331649.png

下载后的文件夹界面

其中:

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 文件夹。

记下该路径,重要重要重要

896b21fc-a4b0-11eb-aece-12bb97331649.png

STM32: X-CUBE-AI 解压路径

1.3 ART-PI BSP

先打开 RT-Thread Studio

新建 ART-PI BSP

如果在开发板的地方,没有找到 STM32H750-RT-ART-PI,请查阅:

897a003c-a4b0-11eb-aece-12bb97331649.png

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。

89913680-a4b0-11eb-aece-12bb97331649.png

1# 运行命令

2python aitools.py --project=《your_project_path》 --model=《your_model_path》 --platform=stm32 --ext_tools=《your_x-cube-ai_path》 --clear

3

4# 示例

5python aitools.py --project=“D:RT-ThreadStudioworkspace est” --model=“。/Models/keras_mnist.h5” --platform=stm32 --ext_tools=“D:Program Files (x86)stm32ai-windows-5.2.0windows” --clear

运行到该步骤操作已经结束,后续是补充说明。

899b3356-a4b0-11eb-aece-12bb97331649.png

运行命令其他参数补充说明

1# 指定转换模型的名称,--model_name 默认为 network

2python aitools.py --project=《your_project_path》 --model=《your_model_path》 --model_name=《model_name》 --platform=stm32 --ext_tools=《your_x-cube-ai_path》

3

4# 保存运行 stm32ai 线程过程中产生的文件,--clear 默认为空

5# 如果存在,则将会删除 `stm32ai` 运行时产生的工作文件夹,即`--stm_out`

6python aitools.py --project=《your_project_path》 --model=《your_model_path》 --platform=stm32 --ext_tools=《your_x-cube-ai_path》

7

8# 指定保存运行日志, --log 默认为空

9python aitools.py --project=《your_project_path》 --model=《your_model_path》 --log=。/log.log --platform=stm32 --ext_tools=《your_x-cube-ai_path》

10

11# 指定保存的文件夹名称,--stm_out 默认是当天时间,比如 ‘。/20210223’

12python aitools.py --project=《your_project_path》 --model=《your_model_path》 --platform=stm32 --ext_tools=《your_x-cube-ai_path》 --stm_out 《new_dir》

13

14# 指定生成的 c-model 名,--c_model_name 默认是network

15python aitools.py --project=《your_project_path》 --model=《your_model_path》 --platform=stm32 --ext_tools=《your_x-cube-ai_path》 --c_model_name=《new_model_name》

运行参数详细说明

主函数参数部分

89a5107e-a4b0-11eb-aece-12bb97331649.png

STM32 平台插件参数部分

89b0b1cc-a4b0-11eb-aece-12bb97331649.png

Step2 编译和烧录

本教程仅展示 RT-Thread Studio 编译,另外还支持以下几种编译方式:

Keil

基于 RT-Thread Env 的 Scons

不基于 RT-Thread Env 的Scons

RT-Thread Studio 编译和烧录

在 RT-Thread Studio 中,找到项目工程,右键,

更新软件包 + 刷新工程,

然后编译(),

最后烧录加显示。

89c46dc0-a4b0-11eb-aece-12bb97331649.png

8a366f88-a4b0-11eb-aece-12bb97331649.png

编译成功

8a465506-a4b0-11eb-aece-12bb97331649.png

这时候你就已经成功获得了一个集成了 AI 和 RT-Thread 的新的 ART-Pi BSP,

就可以RT-Thread 系统上做应用开发啦。

示例应用代码提供

我们提供了一份运行模型推理的示例代码 mnist_app.c:

下载解压,放置到 /applications 路径下

8a786d66-a4b0-11eb-aece-12bb97331649.png

选中 RT-Thread Studio 中的 项目工程,右击刷新

8a89604e-a4b0-11eb-aece-12bb97331649.png

编译烧录,

输入命令:mnsit_app

8ac2bdee-a4b0-11eb-aece-12bb97331649.png

3. 完整的示例工程
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    30897

    浏览量

    269117
  • RT-Thread
    +关注

    关注

    31

    文章

    1289

    浏览量

    40137

原文标题:RT-Thread AI kit开源:轻松实现一键部署AI模型至 RT-Thread

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开源中来到开源中去-RT-Thread北京社区篇

    RT-Thread今年全域推行不同区域社区网,通过建立区域社区网,构建更加紧密联系的开源社区,实现更广泛的开源资源共享,让更多的RT-Thread
    的头像 发表于 11-29 01:05 188次阅读
    从<b class='flag-5'>开源</b>中来到<b class='flag-5'>开源</b>中去-<b class='flag-5'>RT-Thread</b>北京社区篇

    开源共生 商业共赢 | RT-Thread 2024开发者大会报名启动!

    开发者大会将以“开源共生,商业共赢”为主题,将于2024年12月21日全天在上海临港中心举行。开源RT-Thread如何实现商业化?这直是
    的头像 发表于 10-29 08:06 397次阅读
    <b class='flag-5'>开源</b>共生 商业共赢 | <b class='flag-5'>RT-Thread</b> 2024开发者大会报名启动!

    混合部署 | 在RK3568上同时部署RT-Thread和Linux系统-迅为电子

    混合部署 | 在RK3568上同时部署RT-Thread和Linux系统-迅为电子
    的头像 发表于 09-06 15:32 423次阅读
    混合<b class='flag-5'>部署</b> | 在RK3568上同时<b class='flag-5'>部署</b><b class='flag-5'>RT-Thread</b>和Linux系统-迅为电子

    RT-Thread 新里程碑达成——GitHub Star 破万!

    RT-Thread实时操作系统开源项目在GitHub上的star数量突破一万!截止发文,RT-Thread作为实时操作系统在业界Star数量排名第!仓库地址:https://gith
    的头像 发表于 07-04 08:35 480次阅读
    <b class='flag-5'>RT-Thread</b> 新里程碑达成——GitHub Star 破万!

    杭州站RT-Thread混合部署Workshop圆满落幕!

    2024年6月6日,杭州顺利举办了RT-Thread混合部署线下Workshop,活动圆满的结束。这次Workshop由睿赛德科技团队精心策划并成功执行,吸引了大量嵌入式系统开发者和威廉希尔官方网站 爱好者的热情
    的头像 发表于 06-08 08:35 470次阅读
    杭州站<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>Workshop圆满落幕!

    6月6日杭州站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我们将在杭州举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 05-28 08:35 448次阅读
    6月6日杭州站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    RT-Thread西安社区举办首次例会,诚邀每位开发者参与!

    为了更好的服务和链接全国各地的RT-Thread嵌入式开发者,RT-Thread今年将全域推行不同区域社区网,通过建立区域社区网,我们期待构建更加紧密联系的开源社区,实现更广泛的
    的头像 发表于 05-17 15:07 335次阅读
    <b class='flag-5'>RT-Thread</b>西安社区举办首次例会,诚邀每<b class='flag-5'>一</b>位开发者参与!

    5月16日南京站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我们将在南京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 05-01 08:35 372次阅读
    5月16日南京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    RT-Thread混合部署Workshop北京站来啦!

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 04-19 08:34 448次阅读
    <b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>Workshop北京站来啦!

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 04-16 08:35 424次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式

    【4月10日-深圳-workshop】RT-Thread带你探索混合部署新模式

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 04-04 08:34 346次阅读
    【4月10日-深圳-workshop】<b class='flag-5'>RT-Thread</b>带你探索混合<b class='flag-5'>部署</b>新模式

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 03-27 11:36 825次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上实现同时运行RT-Thread和linux,本次workshop邀请到
    的头像 发表于 03-27 08:34 537次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    RT-Thread混合部署Workshop在上海张江成功举行

    3月21号我们在上海张江举办的RT-Thread混合部署线下workshop圆满落幕。本次活动由睿赛德科技团队主办,旨在为参与者提供全面的威廉希尔官方网站 分享和实操经验。现场邀请到了RT-Thread资深嵌入式
    的头像 发表于 03-23 08:34 355次阅读
    <b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>Workshop在上海张江成功举行

    就在本周四!探索RT-Thread混合部署新模式!

    3月21日(本周四)我们将在上海张江举办RT-Thread混合部署线下workshop,在瑞芯微RK3568平台上的实现同时运行RT-Thread和linux,本次培训邀请到
    的头像 发表于 03-20 08:34 552次阅读
    就在本周四!探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!