har文件解析工具_嵌入式MCU也能跑AI?STM32 Cube.AI工具包使用初探

STM32近日推出了Cube.AI人工智能神经网络开发工具包,目标是将AI引入微控制器供电的智能设备,位于节点边缘,以及物联网,智能建筑,工业和医疗应用中的深度嵌入式设备。

简而言之,以后就可以在嵌入式MCU上跑AI模型了,买了一块开发板来做一些尝试,做一下记录。

fba5124b54c7060888260dc910ae39fc.png
我所使用的Nucleo开发板,MCU为STM32F767ZIT

Cube.AI的主要特点:

  • 从预先训练的神经网络模型生成STM32优化的库。
  • 支持各种深度学习框架,如Keras,Caffe,ConvnetJS和Lasagne.
  • 通过STM32Cube™集成,可轻松实现不同STM32微控制器系列的便携性。
  • 免费,用户友好的许可条款。

更多相关信息,请参看:

https://www.st.com/en/embedded-software/x-cube-ai.html?icmp=tt9145_gl_pron_dec2018​www.st.com

如果电脑上没有安装过STM32的开发环境,需要首先安装STM32 CubeMX与IAR。STM32 CubeMX可以在STM32官网上下载。

以下为教程部分,建议有条件的小伙伴结合官方视频进行观看,https://www.youtube.com/watch?v=grgNXdkmzzQ&t=396s 。

先安装好CubeMX,打开后,在最右边栏的Manage software installations中选择INSTALL/REMOVE,安装其中的X-CUBE-AI,约700M大小。

94946321a90fd5d18411cfb2c463609b.png
在主界面最右边的这里选择安装AI库

之后创建工程,在左上角输入所用的MCU型号,以我的板子为例,输入STM32F767。选择好型号以后,把左边栏的Artificial Intelligence勾选Enable。

我们使用官方提供的模型进行测试,https://github.com/Shahnawax/HAR-CNN-Keras

HAR意为Human Activity Recognition (HAR) system,即人类行为识别。这个模型是根据人一段时间内的3D加速度数据,来判断人当前的行为,比如走路,跑步,上楼,下楼等,很符合Cortex-M系列MCU的应用场景。使用的数据如下图所示。

863b6ecd3a9113e0745c4e51e4e3a35d.png
HAR用到的原始数据主要包含动作分类、x、y、z轴加速度等

我们下载其中的model.h5文件,虽然还没有细看这个网络的结构,但从模型大小就能略知一二,只有8.48MB,果然MCU还是只能运行小一点的网络。

按下图配置进行选择,注意Compression要选择为4,如果选择不压缩的话,需要的Minimum Flash为2.8MB,就连F767也无法满足。进行Compression为4的压缩后,需要的Minimum Flash为775.52KB。Cortex-M3-M7系列大部分MCU的片上Flash均为1M~2M,可以满足。但Compression会损失部分精度,应在硬件能承受的范围内,尽量选择小的压缩率。

f79af3847cbc3b6f06530b94d07b96fb.png
AI模型选择界面

配置完成后,点击右上角的Start Project进行下一步。

选择Additional Software,进入后把AI相关的两个包点开,第一个选择Validation,第二个打上勾。

660eaf38a4a93329dd0fb50f7086d7a8.png
在Additional Software中进一步配置AI库

之后左边栏中的Additional Software点开,选择其中的X-CUBE-AI,弹出的Mode窗口中两个复选框都打勾,Configuration窗口中,点开network选项卡,配置应该和创建工程时输入的一样。

d69d8833fd2e7783979d6bb2522acf8f.png
检查network选项卡中模型文件配置是否正确

可以点击Validate on desktop进行验证,下方Output选项卡中会输出Validation OK,还有一些验证的细节。

5bef17818440b9a8d75f46fc29f4dc8b.png
输出Validation OK,说明模型没有问题

接下来配置MCU,实际烧写一下,看看能不能work。

首先配置USART串口,我们通过串口来查看板子打印的信息,我这里使用USART3,分别是PD8与PD9。在右边芯片中找到这两个引脚,配置成USART3_TX与USART3_RX。然后在最左的Connectivity中找到USART3,设置为Asynchronous,右边引脚变绿,证明配置完成。

然后在System Core中进行配置,点击CORTEX_M7,将CPU ICache与CPU DCache均设为Enabled。

186d3a1c69ea5d969a1fb21368cd6d99.png
将CPU ICache与CPU DCache使能

最后进行时钟的配置,在最上方选择Clock Configuration,把HCLK配置为板子的最大时钟,F767最大支持216MHz。

90d5bf1649221ec572f54501ba8c4c04.png
时钟配置界面

时钟配置完后,回到Pinout&Configuration选项卡,在Additional Software中(就是我们刚刚检查network模型文件的地方)选择PlatformSettings,COM Port选择为我们刚刚配置的USART3。

至此配置完毕,选择Project Manager,进行代码导出,需要注意的是Linker Settings中Minimum Heap Size要设为0x2000。最后点击最上方GENERATE CODE。

3ea3842f172c10caa479e8e6a3b7f8e8.png
将代码输出

生成代码后,选择Open Project,若已安装IAR,会自动使用IAR打开。可以看到工程的文件结构如下图所示,里面包含了生成好的可以在STM32上运行的模型文件和模型数据。

fc78afdd54fa468c13a828079d402f9e.png
工程的文件结构

代码烧写在芯片里后,回到CubeMX中下图所示位置,我们点击Validate on target,在板上运行验证程序,效果如下图,可以工作,证明模型成功部署在MCU中。

23e0ee51820aad10f13f1e38a0bf8ddb.png
板上实际测试效果

这次就这样先跑一下官方的例程,以后再研究一下,跑跑自己的模型。

之后有空会把它和Intel计算棒还有显卡做一个对比,对比一下功耗、速度、支持模型的大小、模型部署难易程度等,看看边缘计算各种设备的优劣之处。

以后这个专栏还会出些有趣的实践项目,欢迎大家关注。

转载请联系作者并注明出处,侵权必究。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 华军软件园的"har文件解析工具"是一款非常实用的工具,它可以帮助用户对HAR(HTTP Archive)文件进行解析和分析。 首先,HAR文件是一种用于记录Web浏览器与服务器之间交互的文件格式。其中包含了请求和响应的详细信息,如URL、请求方法、请求头、请求参数、响应状态码、响应头、响应体等等。通过解析HAR文件,我们可以获得有关网页加载性能、网络请求响应时间、错误信息等数据,从而对网站性能进行评估和优化。 华军的"har文件解析工具"能够将HAR文件导入,然后以可视化的方式展示出各个请求和响应的详细信息。用户可以方便地查看每个请求的响应时间、大小和状态码,以及请求头、响应头的具体内容。此外,该工具还提供了一些分析功能,如统计各个域名的请求数量和响应时间、计算网页加载时间等,帮助用户更好地评估网站性能。 此外,"har文件解析工具"还支持导出数据,用户可以将解析后的数据以HAR文件的形式保存下来,方便日后查看和比较。同时,该工具也支持与其他常用性能分析工具的集成,如Google Chrome的开发者工具和火狐浏览器的Firebug插件等,通过与这些工具的结合,可以更加全面地分析和优化网站的性能。 总之,华军软件园的"har文件解析工具"为我们提供了一种简单、直观的方式来解析和分析HAR文件,帮助我们更好地评估和优化网站性能,是一款非常实用的工具。 ### 回答2: 华军软件园是一个专业的软件下载网站,提供了丰富的软件资源供用户下载使用。而HAR文件解析工具,是一种用于解析HAR(HTTP Archive)文件的软件工具HAR文件是记录浏览器与服务器之间通信的网络日志文件。它记录了浏览器发送的HTTP请求和服务器返回的HTTP响应,包括请求头、响应头、请求参数、响应内容等信息。通过解析HAR文件,我们可以对网络请求进行分析、调试、优化,从而提升网络性能和用户体验。 华军软件园提供的HAR文件解析工具可以帮助用户打开、解析和分析HAR文件。它具有以下主要功能: 1. 打开HAR文件:用户可以从本地计算机选择HAR文件,然后通过工具打开。 2. 解析HAR文件工具会读取HAR文件中的数据,并将其解析为可读的形式,以便用户能够查看和分析其中的内容。 3. 分析网络请求:工具会将HAR文件中的各个网络请求展示出来,包括请求的URL、请求方法、请求头等信息,方便用户进行分析。 4. 查看请求和响应详情:用户可以选择某个网络请求,查看该请求和对应的响应的详细信息,包括请求参数、响应状态码、响应头、响应内容等。 5. 导出数据:工具支持将解析后的HAR文件数据导出为其他格式,比如JSON、CSV等,以便用户进行进一步的数据处理和分析。 总之,华军软件园提供的HAR文件解析工具是一个便捷、高效的软件工具,可以帮助用户解析HAR文件并分析其中的网络请求,从而提升网络性能和优化用户体验。 ### 回答3: 华军软件园是一家知名的软件下载平台,提供了广泛的软件资源供用户下载和使用。对于HAR文件解析工具,华军软件园也提供了相应的下载和推荐服务。 HAR文件是HTTP归档文件的缩写,它记录了浏览器与服务器之间的网络交互信息,包括网络请求、响应、头部信息、Cookie等。HAR文件解析工具可以将HAR文件解析成更易读、更易理解的格式,便于开发人员、网络分析师等进行网络性能分析、调试以及异常排查等工作。 华军软件园中推荐的HAR文件解析工具通常具有以下特点:实用、易用、功能丰富。这些工具可以帮助用户快速分析和定位网络请求的性能问题,利于优化网页性能,提升用户体验。 在华军软件园中,用户可以根据自己需求选择适合的HAR文件解析工具进行下载和使用。在选择之前,用户可以查看软件的评价、推荐指数和用户评论等信息,从而了解软件的质量和可靠性。 总之,华军软件园作为一家专业的软件下载平台,为用户提供了各种类型的软件资源,包括HAR文件解析工具。用户可以在华军网上找到适合自己的HAR文件解析工具,并通过下载和使用这些工具来实现对HAR文件解析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值