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

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

[复制链接]
STMCU小助手 发布时间:2022-12-30 18:17
1.简介
NanoEdge™ AI 库是 Cartesiam 推出的人工智能静态库,它可以帮助客户直接生成可以运行在嵌入式 Arm Cortex 处理器上的.a 静态库文件。
+ W' L6 t7 B# E
2021 年 ST 收购 Cartesiam,完善了 ST 在 AI 领域的生态,大大降低了客户使用 STM32 开发 AI 应用的难度。通过使用 NanoEdge AI Studio,用户只需要了解基本的 AI 概念,并提供相应的数据,便可以从众多 AI 算法库中智能搜索和生成出最符合用户应用的算法。
1 u3 k  J6 P& T7 T1 L1 Y+ f
NanoEdge AI Studio 具备以下特点:
• AI 库的搜索引擎。• 为嵌入式开发者量身定做。
• 通过抽象化数据科学和机器学习,降低用户开发难度。
• 快速部署机器学习,兼容任何 C 代码。
• 对比传统机器学习方法,使用最少量数据。

: N" S6 z8 f$ X$ H: n+ b
本文将介绍 NanoEdge AI Studio 的使用方法,并完成人体姿态识别的简单应用。

$ A" V! x! Q( `, [5 D$ @
2.数据采集
在使用 NanoEdge AI Studio 之前,我们需要准备数据,数据来源可以是公开的数据集,也可以是自己采集的数据,还可以利用 NanoEdge AI Studio 采集数据。

" G  W0 g  O1 [/ @  P4 w" e# O
本文将使用 sensorTile.box 完成数据的采集。

! d8 T+ m8 ~- S
2.1硬件介绍
  ~2 }: I2 {0 z4 r$ v
微信图片_20221230181738.png
, `7 O/ p6 O! L9 S
' t2 Z* ~5 e' b6 |7 E' j, x) u7 a% T* @
在 ST 官网搜索 STEVAL-MKSBOX1V1 可以查看关于开发板的基本内容,板载了丰富的运动传感器和温湿度传感器,并且具备 SD 卡,可以保存采集到的数据。板载的 USB 可以用于供电和下载程序,也可以通过 ST-LINK 和开发板连接进行调试和下载。USB 下载程序方法:我们这里使用 STM32 CubeProgrammer 下载程序。首先确保没有用电池供电,然后按住板上的 boot 按钮,连接 USB 到电脑,点击 CubeProgrammer 中如下图图 2所示的 connect。
& O, w$ ~  V3 l$ T6 G- m4 g' @$ J6 `
% T* T; O' E0 L7 u2 t/ D& @
微信图片_20221230181735.png
! @  R2 p1 w% u# W  ?6 `
  o* g7 L. O2 }( A$ Z. r% V) @* k
连接成功后,选择好固件,然后填写下载地址,点击 Start Programming 即可完成下载。如图 3:

3 N' M& E; i  m2 ~( g1 _' a
微信图片_20221230181730.png

) s% S$ h& i% d, h/ T! Z1 i. S6 V
2.2 软件介绍
关于数据采集和后续的功能测试,推荐使用 FP-AI-SENSING1 这个软件包,可以在 ST官网搜索到。该软件包提供了基本的 BSP,包括按钮,LED,传感器驱动,SD 卡驱动,BLE驱动等。
3 N' }- F0 B/ m) p6 C' a
除此之外,它还提供了一些功能可以帮助我们收集数据,包括可以通过 BLE 连接 ST Ble Sensor App,通过该 APP 配置板载传感器采样率,完成数据的采集,并将数据按一定格式保存到 SD 卡当中,本文将利用该方法采集加速度数据。

6 \8 k$ e. p) Z* h; m
该软件包也实现了人体姿态识别和声音场景识别的 AI demo,可以在 ST BLE SensorAPP 上展示,其中的 demo 使用了 Cube.AI 工具做模型转换,和本文讨论的 NanoEdge AI 的方法不同,不在本文讨论范围中。

6 Y& |7 {6 N/ K: l' i4 S
2.3 数据采集步骤
1、编译和烧录程序
下载完 FP-AI-SENSING1 软件包后,需要先编译 bootloader,工程路径位于:
. X0 A# _; o% [$ l2 U
FP-AI-SENSING1_V4.0.3\Projects\STM32L4R9ZI-SensorTile.box\Examples\BootLoader

5 L- O1 ^% c5 ?; W- O, h
编译完成后,下载到 sensorTile.box 当中即可。

$ z5 K1 x- L- o: ?5 A. P; @. a- v
然后编译应用程序,工程路径位于:

7 u8 q3 G& x2 g; ?
FP-AI-SENSING1_V4.0.3\Projects\STM32L4R9ZI-SensorTile.box\Applications\SENSING1

% T9 I. g8 H- C% S7 N- Z
编译完成后,下载到 sensorTile.box 当中,当上电启动后,绿灯常亮,表明开发板初始化正常完成。蓝色 LED 灯闪烁,表明 BLE 正处于广播状态。

" Q/ {. H1 p, h; Q% w+ v3 c
注意:
• bootloader 的下载地址为 0x08000000
• App 的下载地址为 0x08004000
• 当使用电池供电,长按 PWR 按钮,可以开机或关机。在后续采集运动姿态数据时,我们需要使用电池供电。
• 如有需要,可通过 USB 给电池充电,充电过程中,红色 LED 会闪烁。
8 b$ E. K; N8 u6 ^! P1 D+ c2 n, M
微信图片_20221230181726.png

+ E4 p' U# _3 H  d; Q
# [9 o4 g9 M" j* W: X. T7 k1 v" O

% h& ~# E9 ], d  {
2、ST BLE Sensor APP
* n( r& j9 `3 e# X3 F
该 APP 由 ST 提供,可以展示运动传感器和温湿度传感器,您可从 ST 官网下载(搜索STBLESensor),或者 iPhone 通过苹果商店可以下载,Android 通过 Google Play 或其他第三方下载商店下载。
: ?* Q% C9 ~2 ~  M* z
给 sensorTile.box 上电后,开发板会自动进入广播状态,并且蓝色 LED 闪烁,从 ST BLE Sensor APP 点击“开始扫描”,搜索到开发板(sensorTile.box 一般默认命名为 BAI_400)之后,点击连接就可以连接到开发板。连接完成后的展示界面如下:
+ D: B; W0 ^6 C  t! o
# C5 n- w5 y) Q9 y, G4 `# m

0 }- w/ k1 T- _
微信图片_20221230181722.png
$ K6 `7 X6 F3 r* j5 r
; n! B. u, _: X, u) q2 ^. l
可以通过该 APP 查看运动传感器的数据曲线:

2 J, g$ ~! Q. l- ?+ g1 s# Z) V
微信图片_20221230181718.png
7 i# g4 k( A8 G
7 Y( E9 E0 J3 B* B! r! v
通过该 APP 进行数据采集的方法:点击左上角菜单,并选择 Data Log,如下:
- p9 ]' Q  ]$ \1 Y) v
微信图片_20221230181711.png

8 f7 v% H$ x& x# W, r, p+ V
0 |" g8 x2 K& e! Y5 @# K
6 L8 Y& I# R' o' }
在数据采集界面可以选择板载的各种不同的传感器,并设置采样率。本文需要选择加速度传感器,并配置采样率为 52Hz:

6 _# o9 Q8 V, k+ r" D, L
& r: ?$ O  y" e  i' x2 q0 g  y. C
微信图片_20221230181707.png

8 p9 N4 S* q. O( l/ |) R, _! k
; P* N6 C/ R: t4 h/ t0 W
可以通过 ADD LABEL 来添加一个标签,然后打开该标签,点击 START LOGGING 进行数据采集,采集完成后,点击 STOP LOGGING 完成数据采集。

3 l) X8 k1 C6 r& A. v% x' f% ~
微信图片_20221230181658.png
1 c9 e+ O4 E. x; {2 z, ~
% O( @# C+ C. e! e( a" S

8 v: p% E' S9 u" f& E# S$ k

. C/ l) p  {8 C# [
使用读卡器,读取 SD 卡里面的数据,保存为 CSV 格式,如下:

! q1 Y5 p* @+ ?* ]7 v2 }
微信图片_20221230181656.png

; g, }; @5 Q: F2 d( d+ g5 W, V( ?- `! R$ z9 \8 ?
微信图片_20221230181652.png

1 ~( E- {: B4 H3 e: a- D% u$ w9 \6 ~2 I
数据起始有一些标注,其中 Stationary 一行就是我们采集数据所打的标签,每一行代表一个时间点采集到的三轴加速度数据,从时间上可以看出约 20ms 进行一次采样,所以采样率约为50Hz,和之前在 APP 中的设置是一致的,采集到的数据格式和我们最终在 NanoEdge AI studio中使用的格式是有差异的,需要进行一定的转换,具体转换方法在后面进行介绍。

, m$ G8 g+ Y  I, J4 `7 @
3、数据采集
在正式采集数据之前有些问题需要考虑清楚:
• 采样率:如果想要比较好的恢复原始信号,采样率必须大于原信号最大频率的 2 倍。但是,目前是无法知道原始信号的最大频率的,比较可行的方法是先以 52Hz 的采样率对数据采集,采集完成后对信号进行分析,看是否满足,如果不满足再进行调整。
! T  X- C7 `7 y; F# e% j
• 采样时间:总体的采样时间可以通过 APP 进行灵活的开关,单条信号的采样时间需要自己定义,需要在后续的处理中进行调整。
  @: x8 [0 [! x& J6 m6 i
• 标签: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 进行采集。
' ~  {- `( s( H
• 采集方法:将 SensorTile.box 使用电池供电,放置在裤子的前方口袋中,使用 ST BLE Sensor APP 连接后,按照上文中介绍的方法设置好标签,然后进行相应的动作对数据进行采集。

; _0 B( M) G. V
采集数据的方法之所以选择使用 ST BLE Sensor APP 设置的方法采集,而不是直接去修改固件,是因为当调整这些采集参数的时候,APP 会更方便一些,不用反复编译和烧录代码。

# k7 m* T; A/ [4 e  ^
9 {7 s8 c/ ~9 Y8 e
! L, @( ~9 j+ \- u( m8 |6 p
赞 收藏 评论0 发布时间:2022-12-30 18:17

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版