基于STM32F767ZI AI 应用工程创建

2020-02-29 10:42发布

本帖最后由 paderboy 于 2019-1-3 21:02 编辑

en.ai_basics.jpg
今天介绍下ST官方刚刚推出的CubeMx 自带的X-CUBE-AIArtificial intelligent)插件功能,可以给现有的STM32 M3-M7高性能的处理器添加基于训练好的ANN 的模型用于不同的数据分析处理。
使用STM32Cube.AI简化了人工神经网络映射
   1.可与流行的深度学习培训工具互操作   2.兼容许多IDE和编译器   3.传感器和RTOS无关   4.允许多个人工神经网络在单个STM32MCU上运行   5.完全支持超低功耗STM32MCU
提高您的工作效率
利用DeepLearning的强大功能提高信号处理性能并提高STM32应用程序的生产率。创建人工神经网络并将其映射到STM32(通过CubeMx自动生成优化的代码),而无需手动构建代码。以上就做个简短的介绍,想了解更多有关STM32Cube.AI可以访问下面的链接:https://www.st.com/content/st_com/en/stm32-ann.html?ecmp=tt9162_gl_social_dec2018

那先前的准备工作就是需要安装最新版本的CubeMx 5.0.1

然后使用CubeMx 去安装X-CUBE-AI插件, 700多M的容量。。慢慢下载吧
QQ截图20190103163042.jpg
下载好后,CubeMx里的Artificial intelligent
激活Enable
QQ截图20190103163145.jpg
这里我们就可以看到里面的选项了AI的模型我们需要到https://github.com/Shahnawax/HAR-CNN-Keras下载下来。。然后选择Keras 的AI API算法
QQ截图20190103163238.jpg
model.h5就是我们需要导入到工程里的AI Keras的训练好的模型
QQ截图20190103163343.jpg
Human Activity Recognition Using Convolutional Neural Network in Keras
人类活动识别卷积神经网络算法模型
QQ截图20190103163356.jpg
然后我们导入到工程里
QQ截图20190103164258.jpg
这里选择压缩参数,不同的压缩参数对MCU的flash容量要求也不一样。。
QQ截图20190103164316.jpg
点击Analyze cube就好计算使用这个神经网络算法的ram和flash容量占用
QQ截图20190103164328.jpg
好了结果出来了,
QQ截图20190103164425.jpg
经过分析后Cube会自动列出可以使用的MCU然后显示在列表里
QQ截图20190103163214.jpg
这里举个例子,我们选择没有压缩优化分析模型算法后的结果我没有匹配的MCU可以使用
QQ截图20190103164505.jpg
这是选择压缩比参数8的结果,可以支持很多的MCU使用这个神经网络算法。。
QQ截图20190103164557.jpg
好了,这里我们就选择STM32F767ZI Nucleo 板卡作为这次演示使用的板卡
QQ截图20190103164652.jpg
好了选择好了,板卡,我们还需要给它添加扩展库,也就是AI库
QQ截图20190103164735.jpg

选择好Validation 和打勾 AI core
QQ截图20190103164816.jpg
然后在cube 左下方可以看到下图箭头提示的插件功能
QQ截图20190103164854.jpg
我们需要打勾以下2个功能
QQ截图20190103164933.jpg
然后创建我的AI算法名称,这个名称会在后续的里自动创建好。
QQ截图20190103165111.jpg
添加好,我们下载好的AI神经网络算法,然后再Analyze下就好。。打勾表示验证通过
QQ截图20190103165149.jpg
然后我们需要配置我们的mcu的CPU ICache 和 CPU DCache
QQ截图20190103165235.jpg
然后配置MCU主频为216Mhz
QQ截图20190103165258.jpg

然后我们需要配置串口3和CubeMx进行通讯,验证我们工程。。。

QQ截图20190103165355.jpg
然后在 AI扩展功能里选择通讯端口为串口3
QQ截图20190103165639.jpg
好了,工程差不多创建好了。接下来就是配置工程的路径好我们配置使用IAR 编译环境。。然后Heap 然后要配置到2000 这个很重要,要是设置少了系统就会奔溃(切记)
QQ截图20190103165453.jpg
好了工程生成好了,我们就可以 使用IAR 打开工程了工程如下,工程里自动生成了基于AI的算法的所以文件
QQ截图20190103165835.jpg
这里可以看到,基于AI训练好的模型数据列表。。。
QQ截图20190103165852.jpg
好了,配置位STLINK,然后编译好就可以直接下载到板子上了
QQ截图20190103165949.jpg
QQ截图20190103170010.jpg 好了,现在我们需要回到CubeMx里,回到AI扩展功能里。。 先重启下开发板,然后点击Validation on target


QQ截图20190103170038.jpg
选择手动,然后选择对应的串口端口
QQ截图20190103170052.jpg
这里可以看到验证已经开始了‘’
QQ截图20190103170134.jpg 好了,结果出来了。我们可以在串口输出的信息里看到有关的数据
QQ截图20190103170219.jpg
QQ截图20190103170244.jpg QQ截图20190103170257.jpg
QQ截图20190103170313.jpg

好了,基于CubeMx+AI扩展库的使用就分享到这了,想了解更多关于使用STM32 AI的朋友可以关注ST官网的教程。。。





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
huangcunxiake
1楼-- · 2020-03-01 12:37
然后单片机就可以进行神经网络学习了、
Z赤心木QW
2楼-- · 2020-03-01 14:02
非常详细,感谢分享。
877049204
3楼-- · 2020-03-01 15:25
楼主速度很快
杨满意
4楼-- · 2020-03-01 17:15
 精彩回答 2  元偷偷看……
天意无罪
5楼-- · 2020-03-01 23:15
要应用到实际项目才是王道
12354864h
6楼-- · 2020-03-02 01:16
我等渣渣完全不懂在说啥,但是感觉好牛逼?

一周热门 更多>