打印
[STM32N6]

X-Cube.AI 扩展包的使用

[复制链接]
1073|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 一路向北lm 于 2025-4-3 15:35 编辑

创建项目选择STM32N6570-DK,理论上STM32F4以上系列的都支持部署神经网络,选择芯片时勾选AI使能,等待支持包安装完成;


选择AI工具包,选择最近的CUBEAI工具包。最新的是10.0版本的,不同版本的生成的代码有些会不一样,有的模型老版本可以部署新版本就不行了,挺让人头疼的;



利用CUBEAI工具分析模型,这里并没有选择去优化压缩,因为模型本来就很小。CUBEAI提供的是一种无数据压缩,压缩效率并不是很高,也会损失精度。

网络结构利用Netron这个网址可以将模型进行可视化模型结构如下图所示。
模型如何在单片机上进行存储:
权重参数:存放在Flash
激活值:存在MCU自带的SRAM中,也可以使用外部的SD卡或者外接SRAM进行存储。需要用户自己定义。
输入输出数据:存放在SRAM中需要用户自己定义
CUBEAI模型推理库不开源只开放了一些API接口,因此我们必须了解一些常用的API使用方法
1.ai_(name)_create()
ai_error ai__create(ai_handle* network, const ai_buffer* network_config);
参数:
1.network:神经网络句柄
2.Network_config参数是一个特定的网络配置缓冲区(不透明结构),编码为ai_buffer。它是由代码生成器生成的,应用程序不应该修改它。当前,该对象总是空的,可以传递NULL,但最好传递AI_NETWORK_DATA_CONFIG(_data.h文件)
2.ai_(name)_init
ai_bool ai_(name)_init(ai_handle network, const ai_network_params* params);
参数:
1.network:神经网络句柄
2.Params参数是一个结构体(ai_network_params类型),它允许传递权重和激活缓冲区的引用(数组格式)。也就是激活缓冲区的地址,官网上面的案例直接传递激活缓冲区的地址就可以,权重是自动生成的不用管。
返回值: 初始化正确还是错误
3.ai_(name)_create_and_init()
ai_error ai__create_and_init(ai_handle* network,
const ai_handle activations[], const ai_handle weights[]);
参数:
1.network:神经网络句柄
2.const ai_handle activations[]:激活图存储地址
返回值: 初始化正确还是错误



使用特权

评论回复
沙发
claretttt| | 2025-4-5 22:28 | 只看该作者
为 STM32 微控制器提供的 AI 扩展工具包,旨在帮助开发者高效实现嵌入式设备上的机器学习(ML)和深度学习(DL)应用。

使用特权

评论回复
板凳
uptown| | 2025-4-6 07:08 | 只看该作者
X-Cube.AI提供了优化的库函数,用于在STM32微控制器上高效运行神经网络模型。这些库函数针对STM32的硬件特性进行了优化,以提高模型的运行速度和降低功耗。

使用特权

评论回复
地板
phoenixwhite| | 2025-4-6 08:53 | 只看该作者
从STMicroelectronics官方网站下载X-Cube.AI扩展包。确保你使用的是STM32CubeMX工具版本5.4.0或更高版本

使用特权

评论回复
5
zerorobert| | 2025-4-8 11:31 | 只看该作者
X-Cube.AI支持多种深度学习框架,包括Keras、TensorFlow Lite、ONNX等。

使用特权

评论回复
6
burgessmaggie| | 2025-4-8 14:41 | 只看该作者
X-Cube.AI提供了一套易于使用的工具,包括模型转换器和代码生成器。这些工具可以帮助开发者将训练好的模型转换为可在STM32上运行的格式,并生成相应的代码。

使用特权

评论回复
7
yeates333| | 2025-4-8 17:49 | 只看该作者
在生成的代码基础上,编写应用代码来调用和运行 AI 模型。例如,读取传感器数据,将数据输入到模型中进行推理,并处理推理结果。

使用特权

评论回复
8
youtome| | 2025-4-9 20:22 | 只看该作者
需要有STM32F3/F4/L4/F7/L7系列高性能单片机,这些芯片具有足够的闪存空间来运行神经网络模型,通常需要3MB以上的闪存空间。

使用特权

评论回复
9
lzmm| | 2025-4-9 23:27 | 只看该作者
X-Cube.AI支持多种流行的神经网络框架,包括TensorFlow、Keras和PyTorch。开发者可以使用这些框架训练模型,并将其转换为可在STM32上运行的格式。

使用特权

评论回复
10
janewood| | 2025-4-10 02:30 | 只看该作者
​​STM32Cube.AI​​:模型转换工具,支持将 TensorFlow Lite、ONNX 等格式的模型转换为 STM32 可执行格式

使用特权

评论回复
11
uytyu| | 2025-4-10 13:22 | 只看该作者
X-Cube.AI会自动将模型转换为C语言支持的源码模型。

使用特权

评论回复
12
sheflynn| | 2025-4-10 15:20 | 只看该作者
模型的大小和复杂度适合STM32微控制器的资源限制。

使用特权

评论回复
13
primojones| | 2025-4-10 17:38 | 只看该作者
可以通过CubeMX中的“On-board Run Verification Program”功能,在板上运行验证程序

使用特权

评论回复
14
belindagraham| | 2025-4-10 18:45 | 只看该作者
通过调整量化参数(如 8-bit 整数量化)平衡精度与性能。

使用特权

评论回复
15
jonas222| | 2025-4-10 19:11 | 只看该作者
专用于加速 AI 推理的硬件模块

使用特权

评论回复
16
loutin| | 2025-4-10 19:38 | 只看该作者
使用预训练的 MobileNet 在摄像头输入中识别物体。

使用特权

评论回复
17
iyoum| | 2025-4-12 21:28 | 只看该作者
使用剪枝(Pruning)和知识蒸馏(Knowledge Distillation)压缩模型。

使用特权

评论回复
18
olivem55arlowe| | 2025-4-12 21:44 | 只看该作者
通过 X-CUBE-AI 的图形界面导入预训练模型

使用特权

评论回复
19
10299823| | 2025-4-12 22:32 | 只看该作者
通过 X-Cube.AI,开发者能快速将 AI 能力嵌入到 STM32 设备中

使用特权

评论回复
20
claretttt| | 2025-4-12 22:52 | 只看该作者
在 STM32CubeMX 中,通过 “Help” -> “Manage embedded software packages” 菜单,在 “All Packages” 列表中找到 X - Cube.AI 并安装。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

80

粉丝