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

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

[复制链接]
STMCU小助手 发布时间:2023-2-13 14:11
引言+ `8 m5 K4 [# W

$ }- _1 w! ?3 K4 c# y# B# D本用户手册指导了基于 IDE 逐步构建用于 STM32 微处理器的完整人工智能(AI)项目,自动转换预训练好的神经网络(NN)并集成所生成的优化库。本手册还介绍了 X-CUBE-AI 扩展包,该扩展包与 STM32CubeMX 工具完全集成。本用户手册还介绍了可选插件式 AI 测试应用程序或者用于 AI 系统性能和验证的实用工具。9 W7 j  z1 r$ n5 U+ E9 T5 Z
本文档的第一部分是快速生成 STM32 AI 项目的实践性学习。采用一个 NUCLEO-F746ZG 开发套件和公开的几个用于深度学习(DL)的模型作为实践范例。任何 STM32 开发套件或者基于 STM32F3、STM32F4、STM32L4、STM32L4+、STM32F7、STM32H7 或 STM32WB 系列微控制器的客户板也可在稍作修改后使用。
5 }: P8 _- y0 A9 z( M8 R7 A本文档的第二部分详细说明了 X-CUBE-AI 自动生成的 NN 库,以及嵌入式客户端推理 API。这里还介绍了使用 X-CUBE-AI 实现AI 性能和验证,以及各种 DL 工具箱中使用的功能。. A: {! X  r" z: D- U  O& v
' g8 f* R' A$ l3 o5 ]9 B9 x( d
1概述3 x/ t  f3 d4 a. z# i+ j! T1 g
X-CUBE-AI 扩展包专门用于基于 STM32 Arm® Cortex®-M 的 MCU 上运行的 AI 项目。当前版本用户手册中的描述基于:' B9 W6 D/ X0 \$ o$ f
• X-CUBE-AI r3.3.0# f+ V7 G! L0 z8 O
• 嵌入式推理客户端 API 1.0.09 r7 Y  b0 B! ~( m7 c- p6 S9 a
$ ^  D* S: O. H7 ]8 H: q
提示 Arm 是 Arm Limited(或其子公司)在美国和/或其他地区的注册商标。
# U! z, J& N2 A% q) w7 E: p' P: t1 ]3 e3 A$ e% I" v* `3 f9 }( x4 |

; W* e4 _( @5 h2 R1.1 STM32Cube™是什么?, k7 T- }9 l- H2 }
STM32Cube™源自意法半导体,旨在通过减少开发工作量、时间和成本,明显提高设计人员的生产率。STM32Cube™涵盖整个 STM32 产品系列。
1 P) y5 q. t% j6 NSTM32Cube™包括:- _8 r2 k$ q8 b, c3 V) g
• 一套用户友好的软件开发工具,覆盖从构想到实现的整个项目开发过程,其中包括:/ x  g4 m- k" c* X  ~0 r
– STM32CubeMX 图形软件配置工具 STM32CubeMX,可通过图形向导自动生成初始化 C 代码。
# l  s9 d7 V3 h* K– STM32CubeProgrammer(STM32CubeProg),图形版本和命令行版本中可用的编程工具。2 {- t9 E4 O9 x/ Z4 ~+ x' n1 |+ ]
– STM32CubeMonitor-Power(STM32CubeMonPwr),测量并帮助优化 MCU 功耗的监控工具。
! }: P8 ^7 i% e3 a- b# }# z& [# o4 X% k0 n• STM32Cube™ MCU 包,针对于每个微控制器系列的综合嵌入式软件平台(例如,STM32F4 系列的STM32CubeF4),它包括:
( a3 \9 \3 b8 a" _– STM32Cube™硬件抽象层(HAL),确保在 STM32 各个产品之间实现最大限度的可移植性。* ?' z5 P- T: h, b  Z. l! Y
– STM32Cube™底层 API,通过硬件提供高度用户控制,确保最佳性能和内存开销" S' D8 ?$ ]* q' e- R
– 一套一致的中间件,比如 RTOS、USB、TCP/IP 和图形。
9 G9 M& \. A7 _2 L* R( b8 X– 配备完整外设和应用示例的全部嵌入式软件实用工具( F5 S7 O: A2 v6 d7 c

, _7 x+ q: `- _7 h" k; Q( I2 v
+ }# t+ y0 L* ?6 A7 h6 i
1.2 X-CUBE-AI 如何补充 STM32Cube™?0 N8 L* Y; y. {1 q* d6 X
X-CUBE-AI 通过提供在计算和存储器(RAM 和闪存)方面均已优化的自动神经网络库生成器扩展STM32CubeMX,该生成器将预训练的神经网络从最常用的 DL 框架(如 Caffe、Keras、Lasagne 和 ConvnetJS)转换为自动集成到最终用户项目的库。项目自动完成设置,准备好在 STM32 微控制器上进行编译和执行。X-CUBE-AI 还为项目创建添加特定 MCU 过滤,从而选择符合用户 NN 特定标准要求(如 RAM 或闪存大小)的正确设备,进而扩展 STM32CubeMX。9 v: j: p: i5 c
X-CUBE-AI 工具可生成三种项目:
7 l: J  V: W1 t  Q$ O0 O  `• STM32 MCU 上运行的系统性能项目,可精确测量 NN 推理 CPU 负载和存储器使用情况0 [0 v3 g) ^7 x+ S9 ?
• 验证项目,在桌面 PC 和 STM32 Arm® Cortex®-M 的 MCU 嵌入式环境下递增地验证 NN 在随机或用户测试数据激励下返回的结果。
  {) b5 ~; m/ [3 }% h• 应用模板项目,可构建包括多网络支持的应用程序, {7 V) \7 b) N9 C

: l" W) M7 L% U, b- R$ Z

7 g. |9 b/ @  X; W8 C& G1.3 X-CUBE-AI 内核引擎
  R4 T3 ~1 {. W4 ~$ A1 J3 d( H" w9 b. nX-CUBE-AI 内核引擎,如图 1 和图 2 所示,是 X-CUBE-AI 扩展包的一部分,之后将在第 1.3 节 介绍。它提供一个自动且先进的 NN 映射工具,利用有限并受约束的硬件资源为嵌入式系统的预训练神经网络(DL 模型)生成并部署优化且稳定的 C 模型。生成的 STM32 NN 库(专用和通用部分)可直接集成到 IDE 项目或者基于 makefile 的构建系统。还可导出定义明确且特定的推理客户端 API(参考第 8 节 嵌入式推理客户端 API),用于开发客户端基于AI 的应用程序。支持各种用于深入学习的框架(DL 工具箱)和层(参考第 12 节 支持的深度学习工具箱和层深度学习)。
4 Q$ P1 P' P5 F  z! M
# ]2 @* }+ `8 t6 \$ S

& C0 j  f# l' \1 ?5 A- j' Y 5]P)3PUT9EG]NRVU4IWGQTM.png . g8 L! b# w. V( T" n
* }" U+ [7 Z5 O( q
* [: i6 F" L8 D7 U2 t) a
UM2526概述UM2526 - Rev 1 page 2/65图 1. X-CUBE-AI 内核引擎配备一个简单的配置接口。使用预训练的 DL 模型文件时,仅需要较少的参数:' a( u5 w$ ^$ Y: C2 w' U
• 名称:表示生成的 C 模型的名称(默认值为“network”)
; L4 R5 o0 U3 h& O- n• 压缩:表示用于减小权重/偏差参数大小的压缩系数(参考第 6.1 节 图形流和存储器布局优化器)  p" I; t8 m2 k
• STM32 系列:选择优化的 NN 内核运行时库
) o2 g1 h7 w; Z8 A+ V图 2 图 2 总结了上传的 DL 模型和目标子系统运行时的主要支持功能。" X/ @% X; c  ~& n- ]

& U& X6 R* r! i0 f- m' z, X8 h" k& c
3 \$ }+ V% Y# j0 G; Z- H
7[0UYD6SXB`7E3Y8S$UW[3D.png
0 C# H" B' H4 \% u2 @+ F& K- x1 P# e
& ~+ f) d; n/ R! l/ R2 ]
• 仅支持简单的张量输入和简单的张量输出
7 A# K6 v5 q! j" y0 ]. _9 F7 O) x– 4 维形状:批、高度、宽度、通道(参考第 8.1 节 输入和输出 x-D 张量布局)0 V3 j# D! F$ N) `
– 仅浮点类型* Z( B) H1 N. f* G) y3 Y5 W- x5 p! {
• 仅支持 32 位浮点生成的 C 模型9 i) D/ ~) N% c; j0 O2 j2 k
– 生成过程块(参考第 6.1 节 图形流和存储器布局优化器)
6 z& Y2 L9 x3 u" p– 通过结构保证预训练模型的精度
8 {, y1 O; ~9 H' V' E* @! e6 b, y' W. Z8 ~# z6 H7 q& ^) P
" B0 ], N3 \5 {* F; f& x
1.4 STM32CubeMX 扩展8 I  u, z2 ^4 J8 Y5 v
STM32CubeMX 是用于 STM32 微处理器的软件配置工具。单击一下,它即可利用图形向导(如引脚分配冲突处理器、时钟树设置助手等)为 STM32 创建完整的 IDE 项目,包括生成用于设备和平台设置(引脚、时钟树、外设和中间件)的 C 初始化代码。
2 T) _% ]" @9 p: }$ M3 f( b
, i- ?  i# T+ V& A

) W7 a/ N9 A$ V* C0 ^ 0MMMZK9`$`UV3NI}J%P{}JI.png
: l: G) X. u3 a1 K( |. b- j! _% P  F$ K8 \  E6 X3 N* A
从用户的角度来看,集成 X-CUBE-AI 扩展包可以视为添加 IP 或中间件 SW 组件。基于 X-CUBE-AI 内核,提供了以下主要功能:
+ {9 F$ v& S' D# c, q9 H# d• 利用可选特定 AI 过滤器移除内存不足的设备,扩展 MCU 过滤器选择器。如启用,将直接滤除没有 Arm®Cortex®-M4 或-M7 内核的 STM32 设备。6 x. J2 v8 |! D! O" N
• 提供完整的 AI UI 配置向导,可上传多个 DL 模型。包括在桌面 PC 和目标上对生成的 C 代码进行的验证过程。# I' n6 H( K2 F( ]% ^- B+ v9 b+ N, H
• 扩展 IDE 项目生成器,辅助生成优化 STM32 NN 库并将其集成到选定 STM32 Arm® Cortex®-M 内核与 IDE。: q7 _: w0 i* Q) ^* h. Q0 e
• 可选插件式应用程序可生成完整的即用型 AI 测试应用程序项目,包括生成的 NN 库。用户必须已将其导入到首选 IDE 内,才能生成固件映像并进行刷写。最终用户无需附加代码或修改。7 r: C- R9 M- f

! k4 c0 g& |6 `+ d( l# ^8 {1.5 缩写、缩略语和定义9 q( D& [+ s8 `1 U4 Q; b$ l8 g7 u
表 1 详细列出了本文档中所用的特定缩略词和缩写词。
7 _' M4 _; o# x0 y: G. a6 w% g/ Q8 c0 N- k  H% I0 Y
6 B# x* Q$ x. \8 O  J: G
JJ]2[DAYJ`2JM0F6N0]V9(L.png
$ {% b; R* F/ ?- S4 |1 y1.6 先决条件- u& Q3 H0 o2 T4 I. u7 L" N, `# L
必须安装以下软件包(参考第 2 节 安装 X-CUBE-AI):
" @! R- L5 Q# V  ~" b• STM32CubeMX 5.0.1 或更高版本3 d9 v  t' ~. {# o
• 附加软件包 - STM32CubeMX AI 3.3.0 包必须安装用于 STM32 的一个以下工具链或 IDE:( j& i4 j8 o5 Q9 S  q
• TrueSTUDIO® 适用于 STM32 v9.0.1 或更高版本的 TrueSTUDIO®5 v) a7 i8 k7 {, g. _2 q2 l
• IAR Embedded Workbench™ IDE - ARM v8.x or v7.x2 g  X+ D. g2 W0 d
• µVision® V5.25.2.0 - Keil® MDK-ARM 专业版
! N' {5 M! _8 P, b* C- v• System Workbench for STM32(SW4STM32)
0 ?3 i7 y2 c1 M- F• GNU Arm Embedded Toolchain(developer.arm.com/open-source/gnu-toolchain/gnu-rm)
5 x6 x) J$ R1 x  l可以使用 STM32CubeMX 支持的所有操作系统:3 I: A7 U; ~' f: k4 @1 u0 d
• Windows® 10 和 Windows® 7+ R; s9 @- }* [/ F
• Ubuntu® 18.4 和 Ubuntu® 16.4(或衍生版本)
0 ^6 u: ~, v, {- ]4 v5 R • macOS®(x64)(已在 OS X® El Capitan 和 Sierra 上测试)3 ~) ^) O, x8 v

' A/ }/ ~0 ?8 \- ^1 b# C/ G; V& X& l
/ V& H9 R9 J8 I! R6 Y
1.7授权
( `) n, }* f' e- Z: W下载、安装并启动 STM32CubeMX(5.0.1 或更高版本)后,几步即可安装 X-CUBE-AI 软件包。; A9 x$ |) u: F# \) m" U
1. 从菜单中选择[帮助] > [管理嵌入式软件包]或者直接单击[安装/移除]按钮。3 r2 ]* r8 q% _. n: M
  F  `+ h! L; m6 s3 i

9 U1 D2 j% H% J; v %NX837C_UIDLU{1%~ZN$(PY.png : J2 J' ~- E) g- R- Y
2. 从[嵌入式软件包管理器]窗口,点击[刷新]按钮,获得扩展包的更新列表。进入[STMicroelectronics]选项卡,找到 X-CUBE-AI。
) ~0 H$ P& U, \* N5 q1 a6 j+ \2 c3 @( y' I

* o8 k9 a# |+ u' F }{_~5PUHPDGD@QX6MYOS%DN.png - V% i7 k* t, w. g
# r$ a$ L( f" d/ b9 T+ B# H$ j

" _+ K' b* x5 @4 F# H. V$ Q如果已安装 X-CUBE-AI,最好将其移除,然后再重新安装。5 @+ ]- k; _# I6 d: }

; q! W( v$ g' w1 K4 x& Z( s' ?( l9 n

9 A- C! V5 {7 z, F3. 选中相应的复选框,然后点击[立即安装]按钮进行安装。安装完成后,相应框变为绿色并且可以点击[关闭]按钮。  j7 s! G2 d- c. ~5 w& d
- X: i* _7 e6 t3 ~# a- g1 X
* R& l) t9 h, J
`4J3SM6~I94)L89K1WSYXRF.png 6 d# ^9 ?# C- ?  W" H0 e
+ q! Z3 E5 F1 X" _: ?6 u2 T  z
完整版请查看:附件
人工智能(AI)X-CUBE-AI 扩展包入门指南.pdf (4.98 MB, 下载次数: 109)
收藏 评论0 发布时间:2023-2-13 14:11

举报

0个回答

所属标签

相似分享

官网相关资源

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