[其他ST产品] 创建在 PC 上验证 X-Cube-AI 算法的工程 LAT1551

[复制链接]
1155|19
STM新闻官 发表于 2025-9-3 11:49 | 显示全部楼层 |阅读模式
1. 前言
很多人拿到 x-cube-ai 生成的算法代码,会对数据进行手工验证,这样做非常的低效,且容易遗漏。对于 x-cube-ai 所生成的算法代码,一种高效的方式是,是在 PC 上使用 C 语言,读取所有数据,进行全部验证。

2. 基础
2.1. STM32CubeIDE 开发上位机工具
假定你已经熟悉使用 STM32CubeIDE 开发上位机工具,安装好 STM32CubeIDE 的上位机开发工具链。也就是你已经知道如何生成一个 hello 工程,如下图 1 所示:


2198068b51814f1cfc.png

图1. STM32CubeIDE 下 hello 工程

2.2. 使用 X-Cube-AI 从模型生成算法代码
假定你已经会使用 X-Cube-AI 从模型生成算法 C 文件,如下图 2 所示。


8240668b5180fbb2e9.png

图2. X-Cube-AI 生成的 C 模型文件

3. 步骤
3.1. 复制 x-cube-ai 生成的算法源文件
首先在工程目录下建立一个 model 目录,存放 x-cube-ai 生成的模型算法。目录结构如下图 3 所示:

8676868b5180ab3cf0.png


图3. hello 工程目录

然后将 x-cube-ai,不管是图形界面,还是命令行,生成的文件复制到 model 目录里,如下图 4 所示。


487268b5180606bb9.png

图4. 工程目录(model)

3.2. 复制 x-cube-ai 上位机支持文件
首先在工程目录下建立一个 cubeai_lib 目录。然后可
从%X_CUBE_AI_DIR%/Utilities/%OS%/targets/common/EmbedNets/tools/inspector/
workspace/获取 x-cube-ai 上位机支持文件,如下图 5 所示:


6821768b5180103c24.png

图5. x-cube-ai 上位机支持文件

可以全部复制。但我们只需要 lib 和 include 目录。复制后的 cubeai_lib 目录效果如下图6:

6544468b517fd0e0d0.png


图6. cubeai_lib 目录

3.3. 配置 STM32CubeIDE
首先在工程文件加入 model 和 cubeai_lib 目录,效果如下图 7 所示:

413368b517f8a0fc7.png


图7. STM32CubeIDE hello 工程目录

然后,加入 cubeai_lib 中的 include 和 model 路径,也就是"../cubeai_lib/include"和 "../model",如下图 8 所示。这是为了包含编译时需要的头文件。


5286268b517f404819.png

图8. hello 工程 includes 路径设置

我们还需要链接 X-Cube-AI 的静态库如下,包括库的路径"../cubeai_lib/lib/static",以及库的名字:runtime,st_cmsis_nn,cmsis-nn,x86_cmsis,如下图 9 所示。


4735068b517f00dc94.png

图9. hello 工程 Libraries 设置

4. 修改代码
app_x-cube-ai.c 中包含了 main.h,这在上位机环境中不存在,我们可以选择删除它或者创建个空的 main.h,见下图。


3817368b517e877f51.png

图10. 文件 main.h 的处理

加入对 X-CUBE-AI 模板的调用,主要是包含头文件“#include <app_x-cube-ai.h>”以及两个函数调用“MX_X_CUBE_AI_Init();”和“MX_X_CUBE_AI_Process();”,效果如下图 11 所示:

6126168b517e2efc9a.png



图11. main 函数代码示例

至此,在 PC 上验证 X-Cube-AI 算法的框架就已经完成。现在,你可以加入更多代码,例如,从文件中读入 X-Cube-AI 算法的输入,以及比较和或打印 X-Cube-AI 算法的结果。

5. 小结
你可以看到基于 STM32 的生态工具 STM32CubeIDE,和 STM32 的生态软件 X-CUBE-AI,能够实现上位机与 STM32 的联动,从而提供给你一项能力,在桌面上以一种简单的方式实现人工智能算法的大数据自动验证。


iyoum 发表于 2025-9-4 22:07 | 显示全部楼层
如何在PC上搭建X-Cube-AI的开发环境?
jtracy3 发表于 2025-9-6 09:27 | 显示全部楼层
X-Cube-AI 模型是如何集成进来的?​
lzmm 发表于 2025-9-6 10:19 | 显示全部楼层
用哪个版本的X-Cube-AI?
jonas222 发表于 2025-9-6 11:18 | 显示全部楼层
需要模拟 STM32 硬件的哪些特性
tabmone 发表于 2025-9-6 15:52 | 显示全部楼层
是否有完整的文档或示例代码支持PC验证工程?
sheflynn 发表于 2025-9-6 18:05 | 显示全部楼层
如何评估这些优化选项对模型性能              
alvpeg 发表于 2025-9-10 13:14 | 显示全部楼层
PC 上运行 X-Cube-AI 模型后,如何对比其输出与训练模型的预期输出?​
uytyu 发表于 2025-9-13 14:05 | 显示全部楼层
是否需要对模型进行量化、剪枝等优化操作?
mattlincoln 发表于 2025-9-13 15:22 | 显示全部楼层
如何在PC上模拟嵌入式端的资源限制
maudlu 发表于 2025-9-13 18:17 | 显示全部楼层
如何将训练好的神经网络模型导入X-Cube-AI?
mattlincoln 发表于 2025-9-13 18:37 | 显示全部楼层
转换过程中支持所有模型层或操作?
nomomy 发表于 2025-9-13 20:59 | 显示全部楼层
X-Cube-AI扩展包集成  
jimmhu 发表于 2025-9-13 21:36 | 显示全部楼层
PC端使用软件模拟,而嵌入式端依赖硬件加速,导致行为不一致。
kmzuaz 发表于 2025-9-14 09:16 | 显示全部楼层
将PC工程移植到STM32目标硬件?
是否需要调整代码或重新优化以适应嵌入式环境?
saservice 发表于 2025-9-14 10:16 | 显示全部楼层
是否针对 STM32 的硬件加速
kmzuaz 发表于 2025-9-14 11:42 | 显示全部楼层
搭建自动化的验证流程,实现模型更新后自动重新生成代码
robincotton 发表于 2025-9-14 12:40 | 显示全部楼层
​​X-Cube-AI 模型转换后,如何在 PC 上导入/加载/运行/仿真该模型?​
sesefadou 发表于 2025-9-14 13:18 | 显示全部楼层
需要哪些工具链?               
51xlf 发表于 2025-9-14 17:07 | 显示全部楼层
用X-Cube-AI提供的性能测量工具来评估优化效果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

1385

主题

1669

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部