你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

人工智能(AI)X-CUBE-AI 扩展包入门指南

[复制链接]
STMCU小助手 发布时间:2023-2-13 14:11
引言
$ g4 U  J& X5 }5 A  w+ [

5 C0 b" P( p& I+ R, U本用户手册指导了基于 IDE 逐步构建用于 STM32 微处理器的完整人工智能(AI)项目,自动转换预训练好的神经网络(NN)并集成所生成的优化库。本手册还介绍了 X-CUBE-AI 扩展包,该扩展包与 STM32CubeMX 工具完全集成。本用户手册还介绍了可选插件式 AI 测试应用程序或者用于 AI 系统性能和验证的实用工具。
9 F: O+ ^' e1 h: b本文档的第一部分是快速生成 STM32 AI 项目的实践性学习。采用一个 NUCLEO-F746ZG 开发套件和公开的几个用于深度学习(DL)的模型作为实践范例。任何 STM32 开发套件或者基于 STM32F3、STM32F4、STM32L4、STM32L4+、STM32F7、STM32H7 或 STM32WB 系列微控制器的客户板也可在稍作修改后使用。
6 r1 `' b: \! ]+ O! `& ~5 U本文档的第二部分详细说明了 X-CUBE-AI 自动生成的 NN 库,以及嵌入式客户端推理 API。这里还介绍了使用 X-CUBE-AI 实现AI 性能和验证,以及各种 DL 工具箱中使用的功能。1 q  C: c: }0 q* K$ N) w2 q

" a0 L1 W+ u* U0 O( `( P1概述
8 ]3 {( `4 a; \" `3 OX-CUBE-AI 扩展包专门用于基于 STM32 Arm® Cortex®-M 的 MCU 上运行的 AI 项目。当前版本用户手册中的描述基于:8 S; Y" |' Z; G" S  Z
• X-CUBE-AI r3.3.0
4 s  \% ?) v* C; i( j• 嵌入式推理客户端 API 1.0.0
. E2 x) O0 l/ P* j# M0 `0 Z  s
+ O% \2 a& c, E2 x" x提示 Arm 是 Arm Limited(或其子公司)在美国和/或其他地区的注册商标。. w8 @: R% h" L5 `

% h* e; p1 y/ ]  ]; t4 T( N
8 ]1 e4 Z; @2 f" t
1.1 STM32Cube™是什么?
( X1 w" x% e, K' H, P! X) s3 eSTM32Cube™源自意法半导体,旨在通过减少开发工作量、时间和成本,明显提高设计人员的生产率。STM32Cube™涵盖整个 STM32 产品系列。6 q. y5 [  E- _8 v
STM32Cube™包括:
% l$ g% U9 X$ y- C  v0 A& a0 `$ i• 一套用户友好的软件开发工具,覆盖从构想到实现的整个项目开发过程,其中包括:- G2 S5 x" f1 Z6 h" W+ r, d3 I
– STM32CubeMX 图形软件配置工具 STM32CubeMX,可通过图形向导自动生成初始化 C 代码。
/ j8 T" A6 \. p8 y$ u' C. O– STM32CubeProgrammer(STM32CubeProg),图形版本和命令行版本中可用的编程工具。4 v) Z- C& o! W  e2 a( _
– STM32CubeMonitor-Power(STM32CubeMonPwr),测量并帮助优化 MCU 功耗的监控工具。% T0 c4 I9 T" S, c, u" l
• STM32Cube™ MCU 包,针对于每个微控制器系列的综合嵌入式软件平台(例如,STM32F4 系列的STM32CubeF4),它包括:* N. [0 X/ k$ n8 n6 B/ C7 u
– STM32Cube™硬件抽象层(HAL),确保在 STM32 各个产品之间实现最大限度的可移植性。7 b2 t' |! n, M, ]+ \) ]
– STM32Cube™底层 API,通过硬件提供高度用户控制,确保最佳性能和内存开销5 U! C+ Y4 Y5 _3 y9 o
– 一套一致的中间件,比如 RTOS、USB、TCP/IP 和图形。7 i9 v8 h! k; A- A
– 配备完整外设和应用示例的全部嵌入式软件实用工具9 A" y' H4 l; Y8 d; p6 p

0 c( q, V- N( i2 B2 ^

  F& x, h6 ~9 F: {- `) Y- z, Q1.2 X-CUBE-AI 如何补充 STM32Cube™?
" Q& M, }2 t) I- Z0 B7 c: pX-CUBE-AI 通过提供在计算和存储器(RAM 和闪存)方面均已优化的自动神经网络库生成器扩展STM32CubeMX,该生成器将预训练的神经网络从最常用的 DL 框架(如 Caffe、Keras、Lasagne 和 ConvnetJS)转换为自动集成到最终用户项目的库。项目自动完成设置,准备好在 STM32 微控制器上进行编译和执行。X-CUBE-AI 还为项目创建添加特定 MCU 过滤,从而选择符合用户 NN 特定标准要求(如 RAM 或闪存大小)的正确设备,进而扩展 STM32CubeMX。1 s/ o- l$ [# E8 d5 I
X-CUBE-AI 工具可生成三种项目:* X) i9 Y1 C: y& K: j* X# t
• STM32 MCU 上运行的系统性能项目,可精确测量 NN 推理 CPU 负载和存储器使用情况8 p( @: j8 g3 n5 c6 @
• 验证项目,在桌面 PC 和 STM32 Arm® Cortex®-M 的 MCU 嵌入式环境下递增地验证 NN 在随机或用户测试数据激励下返回的结果。1 G. f5 a1 Q* g+ ]
• 应用模板项目,可构建包括多网络支持的应用程序
$ ?- B( q: S( L6 Z* u: q7 H' N, h: q0 [- X- h
! O, Z7 p$ _8 f/ Z3 R7 C3 e5 R
1.3 X-CUBE-AI 内核引擎5 |4 k6 Z) P6 v! E1 r3 i
X-CUBE-AI 内核引擎,如图 1 和图 2 所示,是 X-CUBE-AI 扩展包的一部分,之后将在第 1.3 节 介绍。它提供一个自动且先进的 NN 映射工具,利用有限并受约束的硬件资源为嵌入式系统的预训练神经网络(DL 模型)生成并部署优化且稳定的 C 模型。生成的 STM32 NN 库(专用和通用部分)可直接集成到 IDE 项目或者基于 makefile 的构建系统。还可导出定义明确且特定的推理客户端 API(参考第 8 节 嵌入式推理客户端 API),用于开发客户端基于AI 的应用程序。支持各种用于深入学习的框架(DL 工具箱)和层(参考第 12 节 支持的深度学习工具箱和层深度学习)。6 x* F# W% }2 E
: p+ F% v$ q5 ?3 c
0 }& G1 j+ O2 h, C5 c
5]P)3PUT9EG]NRVU4IWGQTM.png
) w$ K+ m! v4 t) l8 i2 D
) u/ U1 |( u) N8 s; I8 b% A

, f- l2 t! i! [7 D8 V  hUM2526概述UM2526 - Rev 1 page 2/65图 1. X-CUBE-AI 内核引擎配备一个简单的配置接口。使用预训练的 DL 模型文件时,仅需要较少的参数:6 ]0 S7 q+ E- q. V. M
• 名称:表示生成的 C 模型的名称(默认值为“network”)
0 d4 a+ K/ }3 x• 压缩:表示用于减小权重/偏差参数大小的压缩系数(参考第 6.1 节 图形流和存储器布局优化器)
7 u+ H5 Z8 i- Y5 j' s: K8 t3 o• STM32 系列:选择优化的 NN 内核运行时库) G% A" ?* k; q* T6 @2 u
图 2 图 2 总结了上传的 DL 模型和目标子系统运行时的主要支持功能。
9 Z5 p6 ]+ K) M- ?/ z
8 t' [# n* Q& A4 J" J1 y" Z

5 w6 V' v( d4 M+ J, f/ }$ a 7[0UYD6SXB`7E3Y8S$UW[3D.png
& U5 m9 s% [' }# v- G+ c! P8 p, d; u# `
; C1 \5 V+ e0 |3 f% C& @# m6 [
• 仅支持简单的张量输入和简单的张量输出
- {2 B, e5 }. R; R# s, u% Q; l– 4 维形状:批、高度、宽度、通道(参考第 8.1 节 输入和输出 x-D 张量布局)
1 |6 O2 k9 D4 Q9 c6 M– 仅浮点类型
; j+ A. [8 g/ f% j, q+ s* i• 仅支持 32 位浮点生成的 C 模型
& b' _6 K- G; R3 |& H. ~3 v  C– 生成过程块(参考第 6.1 节 图形流和存储器布局优化器)
, _! C% V' A5 X: H– 通过结构保证预训练模型的精度* ]0 x9 W0 e; q+ J, A

6 W1 ]0 c3 K' g
/ w, L0 Y  n  r5 }, v# X0 ^
1.4 STM32CubeMX 扩展
) B7 L9 W0 s/ ]; {8 zSTM32CubeMX 是用于 STM32 微处理器的软件配置工具。单击一下,它即可利用图形向导(如引脚分配冲突处理器、时钟树设置助手等)为 STM32 创建完整的 IDE 项目,包括生成用于设备和平台设置(引脚、时钟树、外设和中间件)的 C 初始化代码。) C+ N8 n* _1 L; p
( V6 p5 q3 o, L" f
# v4 Z: {/ D& ?  g9 w! W& X
0MMMZK9`$`UV3NI}J%P{}JI.png   W6 h* C4 z2 H1 M' O/ E: n2 i
& u0 U$ E; A- ^, b( o1 p' L0 d) X1 h  C
从用户的角度来看,集成 X-CUBE-AI 扩展包可以视为添加 IP 或中间件 SW 组件。基于 X-CUBE-AI 内核,提供了以下主要功能:8 A% O, i6 r7 Y& J, j: c
• 利用可选特定 AI 过滤器移除内存不足的设备,扩展 MCU 过滤器选择器。如启用,将直接滤除没有 Arm®Cortex®-M4 或-M7 内核的 STM32 设备。
( r# Z7 n5 a: p) C2 {4 X• 提供完整的 AI UI 配置向导,可上传多个 DL 模型。包括在桌面 PC 和目标上对生成的 C 代码进行的验证过程。
: ]1 B& W+ ^2 T- P. S• 扩展 IDE 项目生成器,辅助生成优化 STM32 NN 库并将其集成到选定 STM32 Arm® Cortex®-M 内核与 IDE。
/ H1 H4 K2 }0 U- z• 可选插件式应用程序可生成完整的即用型 AI 测试应用程序项目,包括生成的 NN 库。用户必须已将其导入到首选 IDE 内,才能生成固件映像并进行刷写。最终用户无需附加代码或修改。
* q3 P  Z1 s+ R* c6 `$ R$ C) e0 F  r! X% @* }, m- f+ q
1.5 缩写、缩略语和定义
4 B8 F) o8 t" ^6 _0 `2 l$ B表 1 详细列出了本文档中所用的特定缩略词和缩写词。
$ J! j. N5 j8 b  n1 b% O8 L  I' _" e; s; F6 Q3 f

2 Q+ c( s/ X+ c! v% P JJ]2[DAYJ`2JM0F6N0]V9(L.png
7 z$ L1 X, V  q4 n: A0 Z1.6 先决条件
4 Q/ [1 W1 e& S! V$ n& \必须安装以下软件包(参考第 2 节 安装 X-CUBE-AI):4 c4 m  v3 o+ e
• STM32CubeMX 5.0.1 或更高版本1 S" S7 l) v4 t7 J8 a
• 附加软件包 - STM32CubeMX AI 3.3.0 包必须安装用于 STM32 的一个以下工具链或 IDE:
& K* G! w6 g6 n3 ?5 B• TrueSTUDIO® 适用于 STM32 v9.0.1 或更高版本的 TrueSTUDIO®
5 V0 r" j6 h2 p" A• IAR Embedded Workbench™ IDE - ARM v8.x or v7.x
7 A5 E  k5 d1 G* L• µVision® V5.25.2.0 - Keil® MDK-ARM 专业版
1 c( A: }% p. \" W6 O• System Workbench for STM32(SW4STM32)8 J0 X+ [! i4 Y  @1 ^' S; a5 v: P( C" v
• GNU Arm Embedded Toolchain(developer.arm.com/open-source/gnu-toolchain/gnu-rm)
- s7 N2 _) Y. l) Q* \+ k4 ]可以使用 STM32CubeMX 支持的所有操作系统:5 }  Q# u+ D9 E9 H0 n
• Windows® 10 和 Windows® 76 J4 V& J$ V8 F; t/ L
• Ubuntu® 18.4 和 Ubuntu® 16.4(或衍生版本)
) @& p9 ]* @# F: L+ r. R • macOS®(x64)(已在 OS X® El Capitan 和 Sierra 上测试)
9 Q9 [1 _; e3 `( o3 I" P* w1 y/ s& C* u' B* |# S. H0 @
5 T8 ^) C8 M! f" p( n/ `
1.7授权$ E3 ]8 F& H* L0 [6 S: O
下载、安装并启动 STM32CubeMX(5.0.1 或更高版本)后,几步即可安装 X-CUBE-AI 软件包。: P9 d, e, V! y
1. 从菜单中选择[帮助] > [管理嵌入式软件包]或者直接单击[安装/移除]按钮。* j- ^" k7 I4 Z* E
' l, N! o- f1 v: P- k2 l

6 Y# j; B" k$ I %NX837C_UIDLU{1%~ZN$(PY.png
# p. R# j+ |$ \% b2. 从[嵌入式软件包管理器]窗口,点击[刷新]按钮,获得扩展包的更新列表。进入[STMicroelectronics]选项卡,找到 X-CUBE-AI。
% ~6 ]. D, w6 M
* R/ L+ D3 I. {/ h& V
# E" a& a4 U0 ^  L- ^5 u
}{_~5PUHPDGD@QX6MYOS%DN.png
/ S" H4 O5 e- M4 r3 j6 g7 b; `8 [5 |+ p
( _1 H+ w1 H( p" M
如果已安装 X-CUBE-AI,最好将其移除,然后再重新安装。
0 W6 u+ S* n+ `* j" Q. I4 T. Z
: i% m: J: @0 K$ M) m$ ]+ m; O$ s
* u( N( c! @% e! e9 K( C* G( }  {) p) J
3. 选中相应的复选框,然后点击[立即安装]按钮进行安装。安装完成后,相应框变为绿色并且可以点击[关闭]按钮。
7 N) A. t) J! l6 v3 R
# f& {+ _8 z) O7 J& ]$ s  c+ [1 N
( j* u" R: K+ N- k  {+ z
`4J3SM6~I94)L89K1WSYXRF.png . q5 X& F8 Q6 b% U% C# O3 v

4 `% m/ B6 E: T1 q! {完整版请查看:附件
人工智能(AI)X-CUBE-AI 扩展包入门指南.pdf (4.98 MB, 下载次数: 123)
收藏 评论0 发布时间:2023-2-13 14:11

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版