一路向北lm 发表于 2025-4-3 15:33

X-Cube.AI 扩展包的使用

本帖最后由 一路向北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)_initai_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或更高版本

zerorobert 发表于 2025-4-8 11:31

X-Cube.AI支持多种深度学习框架,包括Keras、TensorFlow Lite、ONNX等。

burgessmaggie 发表于 2025-4-8 14:41

X-Cube.AI提供了一套易于使用的工具,包括模型转换器和代码生成器。这些工具可以帮助开发者将训练好的模型转换为可在STM32上运行的格式,并生成相应的代码。

yeates333 发表于 2025-4-8 17:49

在生成的代码基础上,编写应用代码来调用和运行 AI 模型。例如,读取传感器数据,将数据输入到模型中进行推理,并处理推理结果。

youtome 发表于 2025-4-9 20:22

需要有STM32F3/F4/L4/F7/L7系列高性能单片机,这些芯片具有足够的闪存空间来运行神经网络模型,通常需要3MB以上的闪存空间。

lzmm 发表于 2025-4-9 23:27

X-Cube.AI支持多种流行的神经网络框架,包括TensorFlow、Keras和PyTorch。开发者可以使用这些框架训练模型,并将其转换为可在STM32上运行的格式。

janewood 发表于 2025-4-10 02:30

​​STM32Cube.AI​​:模型转换工具,支持将 TensorFlow Lite、ONNX 等格式的模型转换为 STM32 可执行格式

uytyu 发表于 2025-4-10 13:22

X-Cube.AI会自动将模型转换为C语言支持的源码模型。

sheflynn 发表于 2025-4-10 15:20

模型的大小和复杂度适合STM32微控制器的资源限制。

primojones 发表于 2025-4-10 17:38

可以通过CubeMX中的“On-board Run Verification Program”功能,在板上运行验证程序

belindagraham 发表于 2025-4-10 18:45

通过调整量化参数(如 8-bit 整数量化)平衡精度与性能。

jonas222 发表于 2025-4-10 19:11

专用于加速 AI 推理的硬件模块

loutin 发表于 2025-4-10 19:38

使用预训练的 MobileNet 在摄像头输入中识别物体。

iyoum 发表于 2025-4-12 21:28

使用剪枝(Pruning)和知识蒸馏(Knowledge Distillation)压缩模型。

olivem55arlowe 发表于 2025-4-12 21:44

通过 X-CUBE-AI 的图形界面导入预训练模型

10299823 发表于 2025-4-12 22:32

通过 X-Cube.AI,开发者能快速将 AI 能力嵌入到 STM32 设备中

claretttt 发表于 2025-4-12 22:52

在 STM32CubeMX 中,通过 “Help” -> “Manage embedded software packages” 菜单,在 “All Packages” 列表中找到 X - Cube.AI 并安装。
页: [1] 2
查看完整版本: X-Cube.AI 扩展包的使用