2、活动识别基础:人类活动识别(HAR)的定义、常见活动类别(步行、跑步、跌倒)及典型应用场景
人类活动识别(Human Activity Recognition,HAR)是普适计算与可穿戴设备领域的核心基础技术,其目标是通过传感器数据自动判断人体当前所处的物理动作状态。在TinyML的语境下,HAR不再依赖云端服务器,而是直接在微控制器(MCU)上完成数据采集、特征提取与模型推理,从而实现毫瓦级功耗下的实时行为感知。本章将系统阐述HAR的基本定义、面向TinyML的常见活动类别划分,以及跌倒检测这一特殊场景的工程挑战,为后续章节中基于IMU(惯性测量单元)的数据集构建与模型训练奠定理论基础。
2.1 人类活动识别的核心定义与技术边界
人类活动识别(HAR)本质上是一个时间序列模式分类问题:给定一段由可穿戴传感器(通常是加速度计和陀螺仪)采集的连续信号,系统需要将其映射到预定义的活动类别标签上。在TinyML场景下,这一过程被严格约束在资源受限的嵌入式环境中——通常仅有几十KB的RAM和几百KB的Flash存储空间,且要求毫瓦级功耗。因此,TinyML HAR并非简单地将云端深度学习模型压缩,而是需要从数据采集策略、特征设计到模型架构进行全链路协同优化。
从信号处理角度看,人体活动产生的惯性信号具有显著的频域和时域特征。例如,步行时垂直轴加速度呈现约1.5-2.5Hz的周期性波动,跑步时该频率提升至2.5-4Hz且幅值显著增大,而跌倒则表现为短时间内(通常200-500ms)加速度幅值的剧烈冲击(常超过3g),随后伴随一段静止或姿态改变。这些物理特征为轻量级特征工程提供了理论依据,使得随机森林、决策树或小型卷积神经网络(CNN)在MCU上即可达到90%以上的分类准确率。
2.2 常见活动类别:步行、跑步与跌倒的物理特征对比
在TinyML HAR系统中,活动类别的选择直接影响模型复杂度与实用性。本课程聚焦于三种最具代表性的活动:步行(Walking)、跑步(Running)和跌倒(Falling)。下表从物理特征、信号形态和识别难度三个维度进行对比:
| 活动类别 | 加速度幅值范围 | 主频范围 | 信号周期性 | 典型持续时间 | 识别难度 |
|---|---|---|---|---|---|
| 步行 | ±1g ~ ±2g | 1.5 - 2.5 Hz | 强周期性 | 数分钟至数小时 | 低(基线活动) |
| 跑步 | ±2g ~ ±4g | 2.5 - 4.0 Hz | 强周期性但噪声大 | 数分钟至数十分钟 | 中(与快走混淆) |
| 跌倒 | 瞬间冲击 > 3g,随后回落 | 宽频(冲击信号) | 无周期性 | 200ms - 1s(冲击段) | 高(需区分弯腰/坐下) |
值得注意的是,跌倒检测在HAR中具有特殊性:它属于罕见事件检测。在真实场景中,跌倒发生的概率极低(例如一位老人可能数月才跌倒一次),但漏报的代价极高。这要求模型在训练时采用特殊的数据增强策略(如合成跌倒数据)和阈值调整方法,以在召回率与误报率之间取得平衡。
2.3 典型应用场景与工程约束
HAR技术的落地场景直接决定了系统设计指标。以下是三个最具代表性的TinyML HAR应用方向及其工程约束:
- 老年人跌倒监测(医疗健康):要求设备24小时佩戴,电池续航至少7天,跌倒检测延迟小于3秒,误报率低于每天1次。通常采用腰带或胸贴式佩戴,传感器采样率50-100Hz即可满足需求。
- 运动手环/手表(消费电子):需要区分步行、跑步、骑行、游泳等多种活动,对实时性要求高(延迟<1秒),但允许较高的误报率(用户可手动纠正)。采样率通常为25-50Hz以降低功耗。
- 工业安全监测(高危作业):监测工人是否突然倒地或进入危险姿态,要求极高的鲁棒性(适应不同体型和作业动作),且需在强振动、电磁干扰等恶劣环境下工作。通常采用多传感器融合(加速度计+气压计)。
2.4 案例拆解:从加速度波形到活动分类的完整判断流程
为帮助理解HAR的实际工作过程,我们以一个典型的跌倒检测场景为例,展示从原始信号到最终决策的完整链路。假设设备佩戴于腰部,加速度计采样率为50Hz,滑动窗口长度为4秒(200个采样点)。
场景设定:一位独居老人在家中从沙发上站起时突然头晕跌倒,随后躺在地板上约10秒后自行坐起。系统需要在这10秒内发出警报。
信号分析过程:
- 窗口滑动与特征计算:系统每0.5秒滑动一次窗口,计算当前4秒窗口内的信号向量幅值(SVM,即三轴加速度的平方和开方)。正常站立时SVM约为1g(重力加速度),跌倒瞬间SVM会迅速攀升至3g以上。
- 冲击检测:当检测到SVM超过2.5g阈值时,触发“疑似跌倒”状态,系统开始记录冲击后的信号特征。
- 姿态确认:跌倒后人体通常处于水平或接近水平姿态。系统检查冲击后2秒内的平均倾角(通过加速度计计算),若倾角大于60度(即身体与地面夹角小于30度),则进一步确认跌倒。
- 静止判定:若冲击后信号方差低于阈值(表示人体未在移动),且持续超过3秒,则判定为“跌倒后静止”,触发警报。
下表展示了该案例中关键时间点的信号特征:
| 时间点 | SVM峰值 | 倾角 | 信号方差 | 系统状态 |
|---|---|---|---|---|
| T=0s(站立) | 1.0g | 5° | 0.02 | 正常监测 |
| T=0.8s(跌倒冲击) | 3.8g | 45° | 0.85 | 触发冲击检测 |
| T=1.5s(倒地后) | 1.1g | 78° | 0.01 | 确认姿态改变 |
| T=4.0s(静止) | 1.0g | 80° | 0.005 | 触发警报 |
结果与复盘:该系统在4秒内完成了跌倒检测,满足3秒延迟要求。但复盘发现,若老人跌倒后立即坐起(而非静止),系统可能漏报。因此,实际部署时需增加“跌倒后活动”状态识别,或结合陀螺仪的角速度变化来区分“跌倒后坐起”与“正常坐下”。这一案例说明,HAR系统设计必须考虑动作的连续性和上下文信息,而非仅依赖单一特征阈值。
2.5 常见误区与设计要点总结
在TinyML HAR项目的初始阶段,开发者常陷入以下误区,导致后续模型性能不佳:
- 误区一:采样率越高越好。实际上,对于步行/跑步识别,25-50Hz采样率已足够,过高采样率只会增加功耗和计算负担。跌倒检测可适当提高至100Hz,但需权衡电池寿命。
- 误区二:直接使用原始数据训练深度学习模型。在TinyML场景下,原始数据维度高、噪声大,直接训练需要较大的模型容量。建议先提取时域/频域特征(如均值、方差、FFT峰值),再用轻量级模型(如决策树、逻辑回归)进行分类。
- 误区三:忽略传感器校准。加速度计存在零偏和尺度误差,不同设备间差异明显。在部署前必须进行静态校准(将设备平放,采集重力向量作为参考),否则特征值偏移会导致误分类。
- 误区四:跌倒检测只关注冲击峰值。许多日常动作(如猛坐椅子、跳跃落地)也会产生高g值冲击。必须结合姿态变化和后续静止状态进行综合判断,才能有效降低误报。