你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

使用 NANOEDGE.AI 工具完成人体姿态识别应用

[复制链接]
STMCU小助手 发布时间:2022-12-30 18:17
1.简介
NanoEdge™ AI 库是 Cartesiam 推出的人工智能静态库,它可以帮助客户直接生成可以运行在嵌入式 Arm Cortex 处理器上的.a 静态库文件。

+ ~. N- D4 {" K3 \' Z# N2 Y
2021 年 ST 收购 Cartesiam,完善了 ST 在 AI 领域的生态,大大降低了客户使用 STM32 开发 AI 应用的难度。通过使用 NanoEdge AI Studio,用户只需要了解基本的 AI 概念,并提供相应的数据,便可以从众多 AI 算法库中智能搜索和生成出最符合用户应用的算法。

2 ?* P, j$ k* U3 Z, {2 C( G4 ]
NanoEdge AI Studio 具备以下特点:
• AI 库的搜索引擎。• 为嵌入式开发者量身定做。
• 通过抽象化数据科学和机器学习,降低用户开发难度。
• 快速部署机器学习,兼容任何 C 代码。
• 对比传统机器学习方法,使用最少量数据。

2 {1 d) F3 ]* C& g- L
本文将介绍 NanoEdge AI Studio 的使用方法,并完成人体姿态识别的简单应用。
6 u# r  I$ N1 P% m
2.数据采集
在使用 NanoEdge AI Studio 之前,我们需要准备数据,数据来源可以是公开的数据集,也可以是自己采集的数据,还可以利用 NanoEdge AI Studio 采集数据。
! C+ o7 g% F+ X9 j8 k. p
本文将使用 sensorTile.box 完成数据的采集。
+ q- ^) k2 q* M' I6 ], |
2.1硬件介绍

0 D* ?2 H: P4 N4 E, k$ T* @
微信图片_20221230181738.png
& E, V# M8 v1 s: q6 O1 p

5 X  |5 k+ }+ D, v
在 ST 官网搜索 STEVAL-MKSBOX1V1 可以查看关于开发板的基本内容,板载了丰富的运动传感器和温湿度传感器,并且具备 SD 卡,可以保存采集到的数据。板载的 USB 可以用于供电和下载程序,也可以通过 ST-LINK 和开发板连接进行调试和下载。USB 下载程序方法:我们这里使用 STM32 CubeProgrammer 下载程序。首先确保没有用电池供电,然后按住板上的 boot 按钮,连接 USB 到电脑,点击 CubeProgrammer 中如下图图 2所示的 connect。
  x4 o+ \" q  s( N' S

. Y4 z( a1 K7 S; l9 W
微信图片_20221230181735.png

) q6 s5 x- ^5 G: [6 k& r" a+ X1 p) j2 K4 e+ ?
连接成功后,选择好固件,然后填写下载地址,点击 Start Programming 即可完成下载。如图 3:

& K/ e( K2 {, g/ X# n
微信图片_20221230181730.png

- x" {) X# t* H) D9 V5 ?9 G7 [0 z- \: k8 Z  f. \
2.2 软件介绍
关于数据采集和后续的功能测试,推荐使用 FP-AI-SENSING1 这个软件包,可以在 ST官网搜索到。该软件包提供了基本的 BSP,包括按钮,LED,传感器驱动,SD 卡驱动,BLE驱动等。
: M- o* h+ t" O9 Z2 Y2 Y" `3 A# f
除此之外,它还提供了一些功能可以帮助我们收集数据,包括可以通过 BLE 连接 ST Ble Sensor App,通过该 APP 配置板载传感器采样率,完成数据的采集,并将数据按一定格式保存到 SD 卡当中,本文将利用该方法采集加速度数据。

# c9 g! l4 B) w/ S
该软件包也实现了人体姿态识别和声音场景识别的 AI demo,可以在 ST BLE SensorAPP 上展示,其中的 demo 使用了 Cube.AI 工具做模型转换,和本文讨论的 NanoEdge AI 的方法不同,不在本文讨论范围中。
8 n9 T1 X/ X7 K
2.3 数据采集步骤
1、编译和烧录程序
下载完 FP-AI-SENSING1 软件包后,需要先编译 bootloader,工程路径位于:

6 _$ H% d! R! ^
FP-AI-SENSING1_V4.0.3\Projects\STM32L4R9ZI-SensorTile.box\Examples\BootLoader

7 `3 x2 Z. c- J; m( O' H! n
编译完成后,下载到 sensorTile.box 当中即可。

! B3 [( y- s: E+ ~
然后编译应用程序,工程路径位于:

( Z4 k$ C9 j9 C2 g( y
FP-AI-SENSING1_V4.0.3\Projects\STM32L4R9ZI-SensorTile.box\Applications\SENSING1

2 Z5 a1 H8 r+ E/ g7 s
编译完成后,下载到 sensorTile.box 当中,当上电启动后,绿灯常亮,表明开发板初始化正常完成。蓝色 LED 灯闪烁,表明 BLE 正处于广播状态。
% M8 [9 S0 W. H* r  Q
注意:
• bootloader 的下载地址为 0x08000000
• App 的下载地址为 0x08004000
• 当使用电池供电,长按 PWR 按钮,可以开机或关机。在后续采集运动姿态数据时,我们需要使用电池供电。
• 如有需要,可通过 USB 给电池充电,充电过程中,红色 LED 会闪烁。

  c* n4 T* n9 G+ A7 \2 f
微信图片_20221230181726.png

3 W1 X# Y7 x0 }# v7 H
, j' j* X& z9 x) b" e2 I) x

1 y  B0 \1 Y6 i9 N; y7 S0 w
2、ST BLE Sensor APP

+ ~9 T1 J8 r7 O% U. Q# ~6 [
该 APP 由 ST 提供,可以展示运动传感器和温湿度传感器,您可从 ST 官网下载(搜索STBLESensor),或者 iPhone 通过苹果商店可以下载,Android 通过 Google Play 或其他第三方下载商店下载。
  g+ o; {+ @; Z, K$ T+ X1 A: m
给 sensorTile.box 上电后,开发板会自动进入广播状态,并且蓝色 LED 闪烁,从 ST BLE Sensor APP 点击“开始扫描”,搜索到开发板(sensorTile.box 一般默认命名为 BAI_400)之后,点击连接就可以连接到开发板。连接完成后的展示界面如下:  _& I+ |7 Q8 f' W) k, k' d
& X& f7 J1 p8 P+ G( Z7 k* m

2 e+ }( U) R; [
微信图片_20221230181722.png

& ^; x: S/ F/ H6 \/ y, G3 `* T% N2 c
可以通过该 APP 查看运动传感器的数据曲线:

# H- N% u/ q' A! N' \
微信图片_20221230181718.png

3 T/ y- v3 F4 x* R8 M0 S8 n% V- x! Y8 Z: k* V2 M: o
通过该 APP 进行数据采集的方法:点击左上角菜单,并选择 Data Log,如下:
0 A* [( Z/ ]  w/ J& D; b& w
微信图片_20221230181711.png
0 B0 }& W5 ?2 G
  q. U0 q$ e6 N" `
' C- v6 X" L* `+ n
在数据采集界面可以选择板载的各种不同的传感器,并设置采样率。本文需要选择加速度传感器,并配置采样率为 52Hz:
$ i* a# j) X5 E* i- \4 A
0 H, E9 N# h+ M1 w+ L
微信图片_20221230181707.png

) d5 P4 M5 i- Y5 j
0 N& ?7 [  f: v3 U: e7 K/ v* K
可以通过 ADD LABEL 来添加一个标签,然后打开该标签,点击 START LOGGING 进行数据采集,采集完成后,点击 STOP LOGGING 完成数据采集。
, w+ A$ p" }6 R1 L+ c8 R% W$ x
微信图片_20221230181658.png

& w' S8 o8 Z& q4 b& {9 [" x9 e
7 }& O9 ~, [! q. U1 _
6 x& y! \5 i8 a

( S9 L( H* G% ~, O5 f: l! {4 o9 V
使用读卡器,读取 SD 卡里面的数据,保存为 CSV 格式,如下:
. i# O2 D  I) ~* \
微信图片_20221230181656.png

% L/ _1 ]( D. O3 N) {) \. ]1 B  b7 Q$ N: ~. `2 E
微信图片_20221230181652.png

4 U7 w, m3 x# p% Z8 K) D9 Y7 e7 _. h1 Q6 b4 Y7 t% _( W; I# p
数据起始有一些标注,其中 Stationary 一行就是我们采集数据所打的标签,每一行代表一个时间点采集到的三轴加速度数据,从时间上可以看出约 20ms 进行一次采样,所以采样率约为50Hz,和之前在 APP 中的设置是一致的,采集到的数据格式和我们最终在 NanoEdge AI studio中使用的格式是有差异的,需要进行一定的转换,具体转换方法在后面进行介绍。
6 V" c1 [8 ?* P0 X: }5 Z* v( B
3、数据采集
在正式采集数据之前有些问题需要考虑清楚:
• 采样率:如果想要比较好的恢复原始信号,采样率必须大于原信号最大频率的 2 倍。但是,目前是无法知道原始信号的最大频率的,比较可行的方法是先以 52Hz 的采样率对数据采集,采集完成后对信号进行分析,看是否满足,如果不满足再进行调整。

: ^+ c# e3 I, l9 X9 L
• 采样时间:总体的采样时间可以通过 APP 进行灵活的开关,单条信号的采样时间需要自己定义,需要在后续的处理中进行调整。
; c0 _; |( P% }: F2 s  g
• 标签:FP-AI-SENSING1 的软件包人体姿态识别 demo 中,默认包含以下标签:HAR_STATIONARY(站立),HAR_WALKING(行走),HAR_FASTWALKING(快走),HAR_JOGGING(慢跑), HAR_BIKING(骑单车),HAR_DRIVING(开车),HAR_STAIRS(上下楼梯),Sensor APP 中也有对应的 BLE 协议,可以方便的从手机上看到人体姿态活动识别结果,我们从中选择一部分作为测试即可,其中骑单车和开车数据采集较麻烦,可以直接去掉,其余的通过上面介绍的方法通过 ST BLE Sensor APP 进行采集。

$ `! ~. `6 ^8 f0 L) z$ V; B( R
• 采集方法:将 SensorTile.box 使用电池供电,放置在裤子的前方口袋中,使用 ST BLE Sensor APP 连接后,按照上文中介绍的方法设置好标签,然后进行相应的动作对数据进行采集。
9 J! t: T( O; |3 |7 X8 C0 s
采集数据的方法之所以选择使用 ST BLE Sensor APP 设置的方法采集,而不是直接去修改固件,是因为当调整这些采集参数的时候,APP 会更方便一些,不用反复编译和烧录代码。
$ D) ~5 a0 h* z
, r+ v' y+ N, y1 u) q
" H) D; f0 O8 v' }" C1 W
收藏 评论0 发布时间:2022-12-30 18:17

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版