基于阈值和极端随机树的实时跌倒检测方法

2021-09-18 06:22刘晓光靳少康韦子辉王洪瑞刘秀玲
计算机应用 2021年9期
关键词:阈值样本传感器

刘晓光,靳少康,韦子辉,梁 铁,王洪瑞,刘秀玲*

(1.河北大学电子信息工程学院,河北保定 071002;2.河北省数字医疗工程重点实验室(河北大学),河北保定 071000;3.河北大学质量技术监督学院,河北保定 071002)

(*通信作者电子邮箱liuxiuling121@hot-mail.com)

0 引言

随着人口老龄化的加剧,全球老年人的数量预计在2045年首次超过儿童的数量。跌倒是65 岁及以上人群受伤住院的主要原因,老年人的所有重伤中有2/3由跌倒造成。在家里发生的跌倒对独自生活的老年人来说非常危险,因为他们可能无法寻求帮助。研究还发现,超过20%因跌倒而入院的患者已经在地上躺了一个小时或更长时间,跌倒在地一个小时以上的老年人即使没有发生坠落造成的直接伤害,也会在6个月内死亡。这说明跌倒后未及时发现不仅会使身体健康状况恶化,而且会造成负面的心理影响。如果不能实时地检测老年人跌倒,那么会对经济、社会发展和社会进程带来深刻影响[1]。

跌倒探测器可分为可穿戴式、视频设备和环境设备。Sucerquia 等[2]只使用单个的加速度计,尽管使用基于非线性分类特征的跌倒检测方法,弥补了单个传感器在准确率上的不足,但是仍然存在较高的假阳性率,即容易将日常活动识别为跌倒,产生误报警。Nweke等[3]提出相似活动的区分需要用到融合惯性传感器,即多传感器的融合能提高识别疑似动作的精度和降低假阳性率。随着传感器技术的发展,可穿戴式的跌倒探测器的成本变得越来越小,有利于实时跌倒检测。虽然可穿戴式跌倒探测器相较于视频设备和环境设备具有成本低廉、不受环境限制和隐私性高等优点,但是视频设备和环境设备在跌倒检测上更加准确。Zerrouki 等[4]使用摄像头和模式识别技术对跌倒进行检测,达到了97.02%的整体准确度。黄濛濛等[5]利用普适、低成本的商用WiFi设备,经过在实际环境下的大量测试,所提出的方法达到了95%的准确率。虽然环境设备与传统的设备相比,有更高的覆盖率,并且对环境条件依赖更少,但是覆盖的范围依旧有限,并不能像可穿戴设备那样便捷。

为了满足穿戴式跌倒探测器的识别精度和假阳性率,基于阈值的嵌入式算法不再被单纯使用,Saleh 等[6]提出一种高精度的可嵌入式机器学习算法,使用滑动时间窗口提取特征,然后通过支持向量机算法在电脑端对特征进行分类。算法受到低功耗微控制器中有限的内存和处理资源的严格限制,机器学习无法嵌入在价格比较低廉的微控制器中[7]。即使不考虑成本的因素而使用价格昂贵的机器学习芯片,也不能在低功耗的情况下频繁训练机器学习算法的模型。随着移动互联网的不断发展,大多数可穿戴系统都配备了智能手机以传输和处理可穿戴数据。但是,智能手机有限的功能和计算能力可能无法完成对数据传输和处理的复杂任务,而且过度依赖智能手机会造成其能源和资源的消耗。为了解决这些问题,有人提出了基于物联网云的可穿戴系统,并通过功能强大的服务器进行了增强。物联网云技术正在推动可穿戴医疗系统的新革命,称为可穿戴2.0,其中的主要挑战是限制实时监控中应用的端到端延迟。此外,借助先进的技术创新和硬件的大量生产,可以在不依赖云的情况下进行设备上数据分析。在这项工作中,所有收集的数据通过无线的方式传输到个人计算机,以进行数据存储和分析[8]。

郭欣等[9]使用视频设备和嵌入式设备实时检测跌倒,视频设备限制了跌倒检测的场景,同时老人的生活容易受到侵犯,可穿戴设备更容易被老年人接受;罗涛等[10]提出基于可穿戴设备的实时跌倒检测方法,该方法使用了卡尔曼滤波并且基于阈值实时检测跌倒,但没有实验结果。本文提出了一种基于阈值和极端随机树的实时跌倒检测的方法。该方法分为两步:第一步为疑似跌倒检测。日常动作中有许多类似跌倒的动作,诸如躺下、坐下和蹲下等,这些疑似跌倒动作是有意识的日常动作,比如具有较高的加速度或者是行走的周期性消失。本文通过可穿戴设备——姿态角度传感器和智能鞋垫对老年人活动进行判断,识别疑似跌倒。这一步可为下一步过滤掉大部分低加速度和有周期信号的日常活动。第二步为实时跌倒检测,在疑似跌倒检测的基础上,进一步识别跌倒。使用随机森林提取特征,然后利用极端随机树检测每一个疑似跌倒数据样本,极端随机树算法防止疑似跌倒对跌倒检测结果产生影响,确保了跌倒检测的准确率。经过实际测试,该方法能够满足跌倒检测中准确性、误报率和实时性的要求。

1 实时疑似跌倒与实时跌倒检测

单纯基于阈值的跌倒检测算法在穿戴式设备中易产生误报,机器学习可以降低跌倒检测的假阳性率,大幅度提高穿戴设备的使用体验。本文结合阈值和极端随机树以降低跌倒检测的假阳性率。出于成本的考虑,选用了价格低廉的微控制芯片。穿戴设备和上位机分别采用阈值和极端随机树的方法以满足实时检测的要求,该方法主要分为实时疑似跌倒判断、模型训练和提取、实时跌倒检测三个模块,其整体流程如图1所示。为了避免极端随机树算法处理过多数据而降低系统的实时性,提出疑似跌倒检测的方法,使用姿态角度传感器和压力鞋垫检测合加速度和压力值的阈值过滤大部分日常动作,只有疑似跌倒和跌倒的数据才会送入使用机器学习的实时跌倒检测算法中。如果实时跌倒检测算法检测错误,那么将检测错误的样本加入日常活动中再训练,这种反馈机制使跌倒模型成为动态的、可学习的模型。当关闭跌倒检测系统的跌倒检测按钮开关时,跌倒检测终止。

图1 本文方法的整体流程Fig.1 Overall flowchart of proposed method

1.1 实时疑似跌倒检测

相似活动的区分需要用到融合惯性传感技术,即多传感器的融合能提高识别疑似动作的精度。传感器技术的发展和基于传感器的设备成本的降低推动了使用移动和穿戴传感器的健康监测和跌倒检测的实施[3]。本文使用的姿态角度传感器是维特智能公司研发的姿态角度传感器,型号为JY901。环境传感器有压力传感器,为了使得压力传感器穿戴方便,将其嵌入到鞋垫中。为了保证两个可穿戴设备的实时性,只分别计算姿态角度传感器的合加速度和压力传感器足跟区域的步态周期。

合加速度阈值:由于加速度计和陀螺仪可以直接提供直线和角运动信息,因此跌倒检测方法通常使用惯性传感器来检测跌倒事件[11]。姿态角度传感器集成高精度的陀螺仪、加速度计、地磁场传感器和气压计。传感器穿戴于靠近身体重心的腰部位置,能够提供关于受试者姿势和运动的可靠信息,通过计算合加速度判断受试者是否超出疑似跌倒的阈值,阈值如图2(a)所示,如果超出阈值1.03 g,则判定为疑似跌倒,进一步通过步态分析检测老年人足部的周期性。如果Ax、Ay和Az分别为x、y和z轴方向的加速度,则在任何时间t的加速度合成合加速度公式,可以表示为:

步态周期性:鞋垫压力传感器作为一种可穿戴的传感器,便携、不引人注目并且用途广泛,为室内和室外环境中的实时跌倒检测提供了有效的信息源[8]。足底压力传感器为薄膜基材和压力敏感油墨制备而成的压力传感器,它能够读取足底的压力信号,28 个压力传感器测量了整个足底的压力分布。通过将整个足底分为足跟、足弓、足趾三个区域,分别计算每个区域的压力平均值以减小误差。压力平均值的计算公式,可以表示为:

其中:i为区域的编号;N代表压力传感器的个数;Sk代表第k个压力传感器的压力值。

通过计算足跟区域的压力平均值获取周期信号,周期信号如图2(b)所示,当老人正常行走时,足跟会首先落地,产生压力信号。三名实验人员的体重为(60±10)kg,为了方便数据的处理,将得到的足跟区域压力值缩小有一定倍数。足跟区域的阈值设为210 Pa,当压力信号平均值大于210 Pa,足跟区域没有检测到压力值,或者说受试者的行走周期性中断,那么老人可能发生跌倒,此时足底压力传感器会持续采集3 s的数据,如果仍然检测不到压力值,则满足疑似跌倒条件,进而将存储的数据包发送给上位机作跌倒判断。如果平均值小于210 Pa,说明受试者处于正常行走状态中,则返回继续实时检测疑似跌倒。实时疑似跌倒检测的流程如图3所示。

图2 阈值分析Fig.2 Threshold analysis

图3 实时疑似跌倒检测的流程Fig.3 Flowchart of real-time suspected fall detection

1.2 模型训练和提取

为了能够实现高精度的实时跌倒检测,本文将阈值和机器学习进行融合。嵌入式设备基于阈值判断出疑似跌倒后,将数据发给上位机,利用随机森林将选好的特征送入极端随机树算法训练并将模型保存下来,上位机基于机器学习的模型判断是否发生真实跌倒。基于Python开发了实时跌倒检测的上位机软件。软件包含数据采集、数据处理、模型训练和跌倒检测等功能。数据可通过串口传输到上位机上,软件支持数据的存储和提取、模型的实时训练和提取、实时跌倒检测等功能。

1.2.1 随机森林评估特征重要性

随机森林会随机提取训练集的数据得到子集,从子集中有放回地随机提取特征以构建决策树,其在训练过程中避免了过拟合现象,性能优于单分类器[12]。高维的数据容易导致随机森林分类错误,特征个数越多,树的相关性越大,错误率越高。为了减少特征的维数,使用随机森林对特征进行选择。

本文利用随机森林对特征的重要性进行评估,其原理是通过计算特征对森林中每棵树的分枝贡献程度来评价特征重要度,贡献程度使用基尼指数(Gini Index,GI)来衡量[13]。基尼指数的计算公式如下:

其中:K代表类别;f代表节点数;pfk表示节点f中类别k所占的比例。GIf计算得到从节点f中随机抽两个样本类别不一致的概率。

假设有M个特征{X1,X2,…,Xj,…,Xm},j为第j个特征,那么节点f分枝前后基尼指数变化量VIMjf为:

其中:GIa和GIb分别表示分枝后两个新节点的基尼指数。

假设随机森林共有n棵树,特征Xj在第i棵树的节点在集合M中,那么Xj在第i棵树的重要性评分为:

那么特征Xj在森林中的重要性评分为:

因为压力传感器有28 个压力传感器生成了28 个压力特征,姿态角度传感器提取加速度、角速度、角度、气压、高度和四元素13个运动特征,所以M包含41个特征。

对41 个特征求取各自的重要性评分后,对所有重要性评分做归一化处理,VIMj的归一化结果如式(7)所示,本文选取特征重要度大于0.1的所有特征。

1.2.2 极端随机树

极端随机树是一种基于树的扰动和组合算法。与随机森林和深度森林[14]相似的是,其基估计器是决策树。与之不同的是,极端随机树使用全部的样本进行训练,随机提取特征使极端随机树完全随机地分叉属性,分裂过程不剪枝,直到生成一个决策树。极端随机树在小样本上有更好的平滑性,能有效降低样本数据的偏差和方差[15]。

不用的决策树由不同的特征构建而成,所有决策树预测的平均值即为极端随机树的预测结果。决策树的数量越多,极端随机树的分类效果越好,当树的数量到达临界值时,分类效果增长缓慢,本文随机森林和极端随机树的树设为500 棵。树可以并行构建,预测过程也可以并行计算以提高系统的实时性。

使用ET表示极端随机树模型,极端随机树算法可表示为{ET(C,Y,D)},其中:C为基分类器的数目;Y为输入样本{Y1,Y2,…,Y}r;D为数据样本集。极端随机树算法[16]的流程如下:

步骤1 给定数据样本集D,其中样本特征数M为41,样本量为S,将样本分为训练集TD和测试集SD。使用全部的特征训练TD样本。

步骤2 利用CART 算法生成决策树。随机从M个特征中选取m个特征以增强随机性,每个节点选择最优属性进行分裂,对分裂产生的子集进行递归直至生成一棵决策树。

步骤3 步骤1 和步骤2 迭代C次,生成C棵决策树和极端随机树。

步骤4 用极端随机树对SD进行样本预测,生成预测结果。

1.2.3 实时训练和反馈

为了方便用户训练模型,本文改进了一种实时训练的方法:当采集数据时,每次采集1 s 的运动数据。可以选择将数据加载到跌倒数据集或日常动作数据集,最后使用机器学习自动训练数据集。

提高跌倒检测算法模型有效性的一种方法是包括检测结果的反馈。解决这一问题的学者通常在他们的方法中包括一个错误的警报按钮,假警报按钮允许用户取消检测为跌倒的日常活动。假如没有警报按钮,那么即使跌倒检测的准确率达到99%以上,仍然大约每10 h产生一次假报警。在本文中,当极端随机树预测样本出现错误时,系统会自动将错误的样本再学习。反馈机制保证了不同用户配备适应的模型,个人警报能够进一步降低跌倒检测的误报率。

1.3 实时跌倒检测

当实时疑似跌倒检测算法检测到某种活动为疑似跌倒后,实时跌倒检测算法对跌倒与否作进一步判断,实时跌倒检测算法的流程如图4所示。

图4 实时跌倒检测算法的流程Fig.4 Flowchart of real-time fall detection algorithm

跌倒检测的实时性对老人具有重要意义,实时检测可以提供老人的活动状态和安全的宝贵信息,Karantonis 等[7]指出实时需要满足以下约束:

1)不了解未来事件;

2)可以缓冲的数据量是有限的;

3)可用的处理时间有限,必须跟上数据采集的速度。

第1)个约束意味着不涉及检测未来运动趋势。为了提高跌倒检测的实时性,应当删除不必要的功能,疑似跌倒检测算法只需检测当前的状态,无需预测未来的状态。

可穿戴设备只有有限的内存,这一硬件约束影响了系统检测运动的能力,第2)约束意味着疑似跌倒检测算法只能缓冲3 s的数据样本。

关于第3)个约束,应当试图避免任何类型的处理占用大量时间。在本文的方法中,疑似跌倒检测算法会过滤到大部分的日常活动,避免过多地占用上位机资源,只有疑似跌倒的数据包才会传给上位机。上位机接收到姿态角度传感器和足底压力传感器发来的十六进制数据后,会实时地将其转为十进制数据。并不是所有的特征都会送入极端随机树,而是会依据随机森林的重要度评分对特征进行评估,评估发生在训练阶段中。

实时跌倒检测算法无需实时训练模型,只需提取离线的模型,能够节省训练模型的时间。如果在一定时间内连续3次检测到跌倒状态,则触发报警模块。如果取消报警,那么说明导致报警的样本检测错误,检测错误的样本再训练以降低假阳性率;如果没有取消报警,那么意味着发生真实跌倒,软件会向老人护理小组发送短信。

2 实验与结果分析

2.1 实验准备

本文中用于处理数据的硬件平台是姿态角度传感器、足底压力传感器和DELL 电脑,姿态角度传感器的微控芯片是stm32l431,足底压力传感器的微控芯片是stmf103,电脑的处理器是Intel Core i5-8400 CPU@2.80 GHz,内存为8 GB,处理软件为PyCharm2020.1 x64,姿态角度传感器和智能鞋垫分别穿戴于腰部和足部进行数据采集。硬件信号采集处理系统结构图和穿戴位置如图5所示。

图5 硬件信号采集处理系统结构图和穿戴位置Fig.5 Hardware signal acquisition and processing system structure diagram and wearing positions

考虑到老人在实验过程中容易发生危险,故此,实验人员均为健康的年轻人。受试者的年龄为(22±4)岁,身高为(170±12)cm,体重为(65±15)kg。为了评估实时跌倒检测算法在跌倒检测中的效果,在本项工作中,采集8 位受试者的实验数据训练模型并测试,他们在实验中执行了诸如坐下、躺下和蹲下等日常动作和向前、向后跌倒动作。

本文系统的实时跌倒检测算法具备可学习性,以年轻人的实验数据为基础,也可以在老年人的穿戴过程中训练出适合老年人的模型。因为年轻人在模拟跌倒时,往往会比老年人完成的速度要快,不会试图避免撞击,所以在疑似跌倒检测算法中设置的阈值门槛应该适当降低,否则会遗漏老年人的跌倒信息[17]。

2.2 评价标准

为了衡量实时跌倒检测算法的优劣程度,使用普遍认同的衡量标准——精度Acc(Accuracy)[12,18]、假报警率FAR(False Alarm Rate)[18]、真阳性率TPR(True Positive Rate)[12,18]、真阴性率TNR(True Negative Rate)[12,18]和F1 分数[18]。衡量指标如表1所示。

表1 衡量指标中基本参数的含义Tab.1 Meanings of basic parameters in measurement indicators

Acc表示检测正确的样本或次数与总样本或次数的比例,即所有事件检测结果正确的概率,计算公式如下:

FAR或假阳性率是模型检测为跌倒样本,而实际为非跌倒样本与所有检测为跌倒样本的比例,计算公式如下

TPR或灵敏度为跌倒检测正确的样本数占所有跌倒样本的比值,即跌倒动作检测结果正确的概率,计算公式如下:

TNR表示模型正确检测出非跌倒样本占所有非跌倒样本的比值,即日常动作检测结果正确的概率,计算公式如下:

F1 分数为查准率和灵敏度的加权调和平均,构建出单一的综合衡量模型整体的检测效果评估指标,计算公式如下:

2.3 性能评价

本文将跌倒检测作为二分类问题进行考虑,各个方向的跌倒数据归为跌倒数据集,行走、坐下和躺下等数据归为日常活动数据集。表2是使用8名受试者的数据训练和测试算法。在实验中采集了8 位受试者的运动数据,分为1 259 个训练样本和1 259个测试样本。

表2 不同算法的性能对比 单位:%Tab.2 Performance comparison of different algorithms unit:%

本文使用本地数据集测试,从表2 可知,姿态角度传感器和足底压力传感器采集的数据能够良好地表征行为动作,在1 259 个测试样本中,样本检测的准确率高达99.7%,错误识别为跌倒的日常行为样本只有十几个,假阳性率为0.08%。本文算法的灵敏度、真阴性率和F1 指标均优于文献[9]算法和文献[12]算法,其中:文献[9]使用深度学习的方法实时识别人类活动,在MPII 数据集中获得81.7%的平均精度;文献[12]算法准确率为95.2%。本文算法获得的准确度比文献[9]算法和文献[12]算法的准确率分别高22.0%和4.73%。

为了降低跌倒检测假阳性率,加入反馈机制使跌倒检测算法的模型具有可学习性,能够生成适合穿戴者的跌倒模型,减少了误报率对老人及医疗工作者的干扰,相较于Fallsense方法[5],误报警的情况大幅度减少。本文方法在满足高精度的前提下使误报率保持在极低的水平,反馈机制也避免了设备误报对装备使用者产生困扰,廉价的穿戴式设备也使得该系统具备应用价值。

3 结语

本文提出了一种实时跌倒检测方法。该方法分为两个部分:第一部分是疑似跌倒检测,用姿态角度传感器和压力传感器采集老人的运动信号;同时,姿态角度传感器检测老人躯干的合加速度,足底压力传感器检测老人的足底压力信号;当老人躯干的合加速度信号大于阈值,并且步态的周期信号消失时,将采集的数据发给上位机。第二部分是上位机利用随机森林对特征进行筛选并将样本送给极端随机树算法。另外该系统具有反馈机制,当系统检测出跌倒而实际没有跌倒时,系统将采集的样本加入日常活动数据集,再利用极端随机树算法重新训练。该方法将阈值和机器学习进行融合,不但减少了机器学习处理数据的数量,而且避免了单独用阈值检测跌倒所带来的不确定性和准确性不高的问题。

基于阈值与极端随机树的实时跌倒检测方法具有以下优点:1)实验结果表明硬件信号采集处理系统能良好地反映运动状态,在1 259 个测试样本中假阳性率最低可达0.08%。2)系统没有过度使用上位机资源,疑似跌倒检测算法可以过滤大部分的日常活动。3)实时跌倒检测系统具有良好的实时性和精度。上位机保证了基于机器学习的跌倒检测的实时性,在实时跌倒实验中,获得了平均99.7%的精度和最低0.08%的假阳性率。4)系统具有可学习性,老年人在使用设备的初期会出现误报警的情况,随着模型的不断训练,极端随机树模型会生成适合穿戴者的个人报警模型,减少误报警对老人正常生活的干扰。

我们下一步的工作将优化实时训练的过程,缩短训练的周期,使得实施训练过程更快。另外,为了提高系统的便捷性,我们考虑使用手机传输硬件系统发来的数据给上位机并且减少对手机资源的消耗。

猜你喜欢
阈值样本传感器
制作二氧化碳传感器
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
舰船测风传感器安装位置数值仿真
氧传感器的基本检测
改进小波阈值对热泵电机振动信号的去噪研究
跟踪导练(三)2
规划·样本
人大专题询问之“方城样本”