• 正文
  • 相关推荐
申请入驻 产业图谱

STM32 嵌入式 AI 实战:NanoEdge AI Studio 快速实现人体姿态识别(HAR)

03/31 09:35
1895
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

可穿戴设备、健康监测、智能家居等场景中,人体姿态识别(HAR) 是核心功能之一。但传统嵌入式 AI 开发存在门槛高、模型占用资源大、部署流程繁琐等问题,让不少嵌入式开发者望而却步。

ST 官方收购 Cartesiam 后推出的NanoEdge AI Studio工具,完美解决了这些痛点 —— 无需深厚 AI 功底,只需采集传感器数据,就能自动生成适配 STM32 的轻量级 AI 静态库,直接在资源受限的 Cortex-M 内核上运行。本文基于 ST 官方 LAT1204 应用笔记,以 SensorTile.box 开发板为硬件平台,从零带你完成 “数据采集→模型训练→嵌入式部署” 的全流程人体姿态识别实战。

资料获取:【应用笔记】LAT1204 使用 NANOEDGE.AI 工具完成人体姿态识别应用

1. 核心方案与工具介绍

1.1 方案核心优势

本方案采用3 轴加速度传感器 + NanoEdge AI的组合,实现站立、行走、快走、慢跑、上下楼梯等姿态的自动识别,全程无需编写复杂 AI 算法,生成的模型仅占用KB 级RAM/Flash,完美适配 STM32L4R9 这类低功耗 MCU

1.2 核心工具与硬件

  • 硬件平台:STEVAL-MKSBOX1V1(SensorTile.box),板载 STM32L4R9ZI + 多轴运动传感器,支持 SD 卡存储与 BLE 通信;
  • AI 工具:NanoEdge AI Studio(ST 官方免费 AutoML 工具,自动生成嵌入式 AI 库)STMCU;
  • 软件包:FP-AI-SENSING1,提供传感器驱动、数据采集、BLE 通信等底层功能意法半导体
  • 手机 APP:ST BLE Sensor,用于配置传感器、采集姿态数据并实时查看识别结果。

1.3 NanoEdge AI Studio 核心特点

  • 无需 AI 专业知识,自动搜索最优机器学习算法;
  • 生成.a 静态库,兼容所有 Cortex-M 内核 STM32;
  • 资源占用极低,适合低功耗嵌入式设备;
  • 支持分类、异常检测、预测等多种 AI 场景。

2. 硬件环境与软件准备

2.1 硬件准备

  • SensorTile.box 开发板、电池、USB 数据线、SD 卡;
  • 电脑(Windows 系统)、安卓 /iOS 手机。

2.2 软件安装

  1. 电脑端安装:NanoEdge AI Studio、STM32CubeProgrammer、Keil MDK(或 IAR);
  2. 下载 FP-AI-SENSING1 V4.0.3 软件包(ST 官网搜索获取);
  3. 手机安装ST BLE Sensor APP(应用商店搜索下载)。

3. 加速度传感器数据采集

数据是 AI 模型的基础,本方案通过 SensorTile.box 采集5 类人体姿态的加速度数据:站立、行走、快走、慢跑、上下楼梯。

3.1 烧录固件

  1. 编译 FP-AI-SENSING1 中的 Bootloader 工程,通过 STM32CubeProgrammer 下载到0x08000000地址;
  2. 编译 SENSING1 应用工程,下载到0x08004000地址;
  3. 上电后绿灯常亮、蓝灯闪烁,说明固件烧录成功,设备进入 BLE 广播状态。

3.2 APP 配置与数据采集

  1. 打开 ST BLE Sensor APP,扫描并连接名为BAI_400的设备(SensorTile.box 默认名称);
  2. 进入Data Log界面,选择加速度传感器,设置采样率为52Hz;
  3. 点击ADD LABEL添加姿态标签(如 Stationary、Walking、Jogging);
  4. 佩戴设备(放在裤子前口袋),执行对应姿态,点击START LOGGING开始采集,完成后点击STOP LOGGING;
  5. 采集的数据会自动保存到 SD 卡,格式为 CSV 文件。

3.3 采集注意事项

  • 每种姿态采集时长不少于 30 秒,保证数据充足;
  • 采用电池供电,避免 USB 供电影响姿态动作;
  • 采样率 52Hz 足够覆盖人体姿态的低频信号,无需过高采样率STM32 AI。

4. 数据格式转换(关键步骤)

SD 卡导出的 CSV 数据格式与 NanoEdge AI Studio 要求不匹配,需通过Python 脚本转换格式:

  1. 将采集的 CSV 文件拷贝到电脑,新建 convert.py 脚本;
  2. 脚本功能:删除无用表头、提取 XYZ 三轴数据、按指定采样点数重组数据;
  3. 运行命令转换数据(如转换为每行 128 个采样点):
python convert.py 128
  1. 转换后的数据保存在 output 文件夹,可直接导入 NanoEdge AI Studio。

5. NanoEdge AI Studio 模型训练全流程

5.1 新建工程

  1. 打开 NanoEdge AI Studio,选择nC(多分类) 模式(人体姿态属于多分类任务);
  2. 目标设备选择STEVAL-STWINKT1B(与 SensorTile.box 芯片一致),传感器选择3 轴加速度;
  3. 设置缓冲区大小为 128(2 的整数次幂,适配工具要求)。

5.2 导入转换后的数据

  1. 点击ADD SIGNAL,依次导入站立、行走、慢跑等转换后的 CSV 文件;
  2. 工具自动生成数据的时域、频域统计图,可查看数据质量(如加速度幅值、频率分布)。

5.3 自动 Benchmark 选模型

  1. 点击RUN NEW BENCHMARK,工具自动遍历多种机器学习算法,评估准确率、资源占用;
  2. 训练完成后,按综合评分(SCORE) 排序,选择最优模型(本文最优为 SVM 模型,准确率 96.68%,RAM 仅 1.6KB);
  3. 查看混淆矩阵,优化数据质量(如楼梯姿态易误判为行走,可补充采集数据)。

5.4 仿真验证与生成库

  1. 点击Emulator,导入测试数据,验证模型识别效果;
  2. 进入Deployment界面,勾选Float abi(开启硬件浮点加速),点击COMPILE LIBRARY;
  3. 生成 3 个核心文件:libneai.a(静态库)、NanoEdgeAI.hAPI 头文件)、knowledge.h(模型权重)。

6. 嵌入式端部署:替换原有 AI 模型

基于 FP-AI-SENSING1 的 SENSING1 工程,将生成的 NanoEdge AI 库替换原有 Cube.AI 模型,步骤如下:

6.1 添加库文件

  1. 在工程中新建 NEAI 文件夹,放入libneai.aNanoEdgeAI.hknowledge.h
  2. 在 IAR/Keil 中添加头文件路径,将libneai.a添加到工程链接库。

6.2 代码修改

  1. main.c中包含 NanoEdge AI 头文件:
#include "NanoEdgeAI.h"
#include "knowledge.h"
  1. 修改har_Processing.c,在HAR_run()函数中替换原有模型推理逻辑:
    • 缓存三轴加速度数据,缓冲区满后调用neai_classification()
    • 获取识别结果,通过 BLE 上传到手机 APP。

6.3 编译烧录

编译工程,通过 STM32CubeProgrammer 下载到 SensorTile.box,完成部署。

7. 实测效果验证

  1. 给 SensorTile.box 上电,佩戴在身上;
  2. 打开 ST BLE Sensor APP,进入Activity Recognition界面;
  3. 执行站立、行走、慢跑等动作,APP 实时显示识别结果,准确率可达 95% 以上,响应延迟低于 5 秒。

8. 提升识别准确率的实用技巧

  1. 扩充数据量:每种姿态采集更多数据,覆盖不同动作幅度;
  2. 调整缓冲区大小:增大 buffer size(如 256),提升数据特征量;
  3. 数据预处理:去除重力加速度、加窗滤波,优化数据质量;
  4. 后处理滤波:对识别结果做加权滤波,避免误判。

基于 NanoEdge AI Studio 开发 STM32 人体姿态识别,彻底降低了嵌入式 AI 的开发门槛 ——无需懂算法、无需调模型、无需写复杂推理代码,只需聚焦数据采集与工程部署,就能快速实现量产级功能。

本文基于 ST 官方 LAT1204 应用笔记,方案可直接迁移到其他 STM32 系列 MCU(如 U5、H7、G4),也可拓展到振动监测、异常检测等其他嵌入式 AI 场景,是嵌入式开发者入门边缘 AI 的首选方案。

相关推荐