在可穿戴设备、健康监测、智能家居等场景中,人体姿态识别(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 软件安装
- 电脑端安装:NanoEdge AI Studio、STM32CubeProgrammer、Keil MDK(或 IAR);
- 下载 FP-AI-SENSING1 V4.0.3 软件包(ST 官网搜索获取);
- 手机安装ST BLE Sensor APP(应用商店搜索下载)。
3. 加速度传感器数据采集
数据是 AI 模型的基础,本方案通过 SensorTile.box 采集5 类人体姿态的加速度数据:站立、行走、快走、慢跑、上下楼梯。
3.1 烧录固件
- 编译 FP-AI-SENSING1 中的 Bootloader 工程,通过 STM32CubeProgrammer 下载到0x08000000地址;
- 编译 SENSING1 应用工程,下载到0x08004000地址;
- 上电后绿灯常亮、蓝灯闪烁,说明固件烧录成功,设备进入 BLE 广播状态。
3.2 APP 配置与数据采集
- 打开 ST BLE Sensor APP,扫描并连接名为BAI_400的设备(SensorTile.box 默认名称);
- 进入Data Log界面,选择加速度传感器,设置采样率为52Hz;
- 点击ADD LABEL添加姿态标签(如 Stationary、Walking、Jogging);
- 佩戴设备(放在裤子前口袋),执行对应姿态,点击START LOGGING开始采集,完成后点击STOP LOGGING;
- 采集的数据会自动保存到 SD 卡,格式为 CSV 文件。
3.3 采集注意事项
- 每种姿态采集时长不少于 30 秒,保证数据充足;
- 采用电池供电,避免 USB 供电影响姿态动作;
- 采样率 52Hz 足够覆盖人体姿态的低频信号,无需过高采样率STM32 AI。
4. 数据格式转换(关键步骤)
SD 卡导出的 CSV 数据格式与 NanoEdge AI Studio 要求不匹配,需通过Python 脚本转换格式:
- 将采集的 CSV 文件拷贝到电脑,新建 convert.py 脚本;
- 脚本功能:删除无用表头、提取 XYZ 三轴数据、按指定采样点数重组数据;
- 运行命令转换数据(如转换为每行 128 个采样点):
python convert.py 128
- 转换后的数据保存在 output 文件夹,可直接导入 NanoEdge AI Studio。
5. NanoEdge AI Studio 模型训练全流程
5.1 新建工程
- 打开 NanoEdge AI Studio,选择nC(多分类) 模式(人体姿态属于多分类任务);
- 目标设备选择STEVAL-STWINKT1B(与 SensorTile.box 芯片一致),传感器选择3 轴加速度;
- 设置缓冲区大小为 128(2 的整数次幂,适配工具要求)。
5.2 导入转换后的数据
- 点击ADD SIGNAL,依次导入站立、行走、慢跑等转换后的 CSV 文件;
- 工具自动生成数据的时域、频域统计图,可查看数据质量(如加速度幅值、频率分布)。
5.3 自动 Benchmark 选模型
- 点击RUN NEW BENCHMARK,工具自动遍历多种机器学习算法,评估准确率、资源占用;
- 训练完成后,按综合评分(SCORE) 排序,选择最优模型(本文最优为 SVM 模型,准确率 96.68%,RAM 仅 1.6KB);
- 查看混淆矩阵,优化数据质量(如楼梯姿态易误判为行走,可补充采集数据)。
5.4 仿真验证与生成库
- 点击Emulator,导入测试数据,验证模型识别效果;
- 进入Deployment界面,勾选Float abi(开启硬件浮点加速),点击COMPILE LIBRARY;
- 生成 3 个核心文件:
libneai.a(静态库)、NanoEdgeAI.h(API 头文件)、knowledge.h(模型权重)。
6. 嵌入式端部署:替换原有 AI 模型
基于 FP-AI-SENSING1 的 SENSING1 工程,将生成的 NanoEdge AI 库替换原有 Cube.AI 模型,步骤如下:
6.1 添加库文件
- 在工程中新建 NEAI 文件夹,放入
libneai.a、NanoEdgeAI.h、knowledge.h; - 在 IAR/Keil 中添加头文件路径,将
libneai.a添加到工程链接库。
6.2 代码修改
main.c中包含 NanoEdge AI 头文件:
#include "NanoEdgeAI.h"
#include "knowledge.h"
- 修改
har_Processing.c,在HAR_run()函数中替换原有模型推理逻辑:- 缓存三轴加速度数据,缓冲区满后调用
neai_classification(); - 获取识别结果,通过 BLE 上传到手机 APP。
- 缓存三轴加速度数据,缓冲区满后调用
6.3 编译烧录
编译工程,通过 STM32CubeProgrammer 下载到 SensorTile.box,完成部署。
7. 实测效果验证
- 给 SensorTile.box 上电,佩戴在身上;
- 打开 ST BLE Sensor APP,进入Activity Recognition界面;
- 执行站立、行走、慢跑等动作,APP 实时显示识别结果,准确率可达 95% 以上,响应延迟低于 5 秒。
8. 提升识别准确率的实用技巧
- 扩充数据量:每种姿态采集更多数据,覆盖不同动作幅度;
- 调整缓冲区大小:增大 buffer size(如 256),提升数据特征量;
- 数据预处理:去除重力加速度、加窗滤波,优化数据质量;
- 后处理滤波:对识别结果做加权滤波,避免误判。
基于 NanoEdge AI Studio 开发 STM32 人体姿态识别,彻底降低了嵌入式 AI 的开发门槛 ——无需懂算法、无需调模型、无需写复杂推理代码,只需聚焦数据采集与工程部署,就能快速实现量产级功能。
本文基于 ST 官方 LAT1204 应用笔记,方案可直接迁移到其他 STM32 系列 MCU(如 U5、H7、G4),也可拓展到振动监测、异常检测等其他嵌入式 AI 场景,是嵌入式开发者入门边缘 AI 的首选方案。
1895