随着人口老龄化的不断加剧以及空巢老人数量的不断上升,老年人跌倒造成的人身伤害问题日益突出。本文主要针对基于随机森林的跌倒检测算法进行了一些研究,文章是一篇电子技术应用论文范文,主要论述了基于随机森林的跌倒检测算法。
摘要:针对现有跌倒检测算法由于缺乏真实老人跌倒样本以及使用年轻人仿真跌倒样本规模较小导致的过拟合和适应性不足等问题,提出了基于随机森林的跌倒检测算法。该算法采用滑动窗口机制,对窗口内的加速度数据进行时间域和变换域处理,提取时间域和变换域特征参数后,在所有样本集中进行有放回的Bootstrap随机抽样和属性随机选择,构建多个基于最佳属性分割的支持向量机(SVM)基本分类器。在线跌倒检测阶段,对多个SVM基本分类器的分类结果采用少数服从多数的原则,给出最终判定结果。实验表明,随机森林跌倒检测算法可获得95.2%的准确率、90.6%的敏感度和93.5%的特异性,明显优于基于SVM和反向传播(BP)神经网络跌倒检测算法,反映出随机森林跌倒检测算法能更准确地检测跌倒行为,具有较强的泛化能力和鲁棒性。
关键词:跌倒检测,随机森林,支持向量机,反向传播神经网络,属性
0引言
据统计,跌倒目前已成为我国伤害死亡的第四大原因,65岁以上老年人伤害死亡的首位原因,而且伴随老人年龄的增加跌倒死亡率进一步升高。跌倒除了直接导致老年人死亡之外,还产生大量残疾,降低了老年人的活动能力和活动范围,严重影响老年人的生活质量和身心健康。
近年来,为减少意外跌倒对老人造成的进一步伤害,借助于普遍使用的移动智能终端和目前正在兴起的可穿戴设备对跌倒行为进行准确实时检测和报警,成为普适健康技术(healthcare)的一个研究热点。这些研究大都利用加速度或陀螺仪数据的时间序列、统计域或变换域特征,使用曲线相似度比较、或者模式匹配等算法进行跌倒检测,其中基于时间序列曲线方法利用跌倒过程中加速度时间序列数据依次出现的失重、超重及其时间阈值进行跌倒检测,但由于个体和设备差异往往导致难以确定适用范围较广的曲线阈值,影响了跌倒检测的准确性和鲁棒性。基于模式匹配跌倒检测算法采用机器学习技术,挖掘加速度样本数据统计域和变换域的参数特征,在对分类器进行离线训练基础上,使用获得的分类器对跌倒等行为进行分类评定,其性能相对于基于时间序列曲线阈值跌倒检测方法有较大提高。不过,由于真实老人跌倒数据稀缺,加之不能使用老人进行跌倒数据采集,现有跌倒算法研究到目前还未形成大家一致公认的测试数据集(Benchmark),大多数研究工作都是使用年轻人仿真采集实验数据集进行测试,由于数据规模较小、代表性不强,往往导致分类器过拟合,跌倒检测精度和鲁棒性并不高。
为获得准确、鲁棒的跌倒检测结果,本文提出了一种基于随机森林的跌倒检测算法。该算法使用随机森林分类器对跌倒等动作进行分类识别,由于它采用Bootstrap方法[1]结合随机样本和样本属性选择方法训练多个分类器,因此能较好地适应特征值的个体差异,具有对离散点相对不敏感、能避免过拟合、无需特征选择且能自动评估特征重要性等优点,适合于跌倒样本数据多样性和规模相对不足的特点,实验结果验证了随机森林跌倒检测算法的有效性和鲁棒性。
1相关研究
现有跌倒检测技术研究工作分为以下4个主要类型:
1)空间角度法[2]。该方法利用跌倒发生时,目标由站立或平坐姿态向躺倒姿态转变过程中身体发生的角度变化进行跌倒检测。伴随目标跌倒过程中的姿态转变,加速度和陀螺仪数据发生显著变化,通过对跌倒状态建模并提取目标加速度特征,可计算得到目标身体的角度变化,进而对目标身体姿态进行分析和跌倒行为检测。该类方法一般要求在人体关键部位佩戴传感器,使用不便。
2)阈值法[3]。该方法利用加速度传感器采集的时间序列曲线进行跌倒检测。把一次跌倒行为分割成包含失重、超重等相继出现的多个时段,通过检测每个时段的数据是否达到预定阈值进行跌倒检测,其准确性跟阈值设定密切相关。由于传感器异构、目标差异,以及跌倒行为的差异,跌倒产生的时间序列曲线存在较大差异,难以确定统一的阈值,导致阈值法性能波动较大,缺乏鲁棒性。
3)基于视觉图像分析跌倒检测法[4]。通过在用户活动区域部署一个或多个视频摄像头采集人体运动图像,基于离线抽取的跌倒动作图像特征,对实时采集的视频图像进行分析,判定当前用户是否跌倒,具有准确度高、无需佩戴检测设备等优点,不过系统较为复杂,不仅计算量和成本较高,而且易暴露个人隐私。
4)模式识别法(即分类算法)[5-8]。该类算法使用提前采集的已标定跌倒及非跌倒加速度、陀螺仪数据,采用模式识别算法挖掘出能区分跌倒和非跌倒行为特征参数,用于实时的跌倒和非跌倒行为匹配。目前常用的分类算法主要有决策树(Decision Tree, DT)分类算法、贝叶斯网络算法(Bayes Net)[9]、支持向量机(Support Vector Machine, SVM)[10]、极限学习机(Extreme Learning Machine, ELM)[11]等。本文所提的随机森林跌倒检测算法是一种具有较强泛化能力的分类器,它采用Bootstrap方法[12]从训练样本集中随机选择样本和属性,构建多个SVM分类器,最后通过投票表决结果,决定数据属于哪一类。该方法能较好地减少过拟合的发生,有效提高了跌倒检测算法的实用性和鲁棒性。
2基于随机森林的跌倒检测算法
随机森林算法(Random Forest)是一种基于统计学习理论的组合分类器,它将Bootstrap重抽样方法和决策树算法相结合,通过构建一个包含多个基本分类器的树型分类器集合,使用投票策略进行分类和预测。由于该算法较好地解决了过拟合问题,其分类性能优于单分类器。本文把随机森林分类器应用于跌倒和非跌倒行为检测,获得了较好的分类结果。
基于随机森林的跌倒检测算法与其他决策树分类器一样,也包括离线训练和在线检测两个阶段,其整体技术架构如图1所示。在离线训练阶段,使用移动智能终端(如智能手机)或可穿戴设备(如智能手表、腕带或智能腰带等)采集带人为标记的跌倒和非跌倒(正常走、上下楼、坐、卧等)行为产生的加速度数据,然后对采集到的数据进行时间域和变换域处理,提取时间域统计和变换域(例如频率域等)的特征参数(属性),然后在所有样本集中进行有放回的随机抽样(Bootstrap采样),每次抽样的样本数目相等且小于总的样本数目,针对每次抽样得到的子样本集合,从所有属性中随机选择k个属性,选择最佳分割属性构建一个SVM分类器。多次Bootstrap采样对应多个SVM分类器。 图片
图1 基于随机森林跌倒检测算法技术架构
在在线检测阶段,采用滑动窗口处理机制,每当接收到一个新的观测数据时,计算当前窗口内所有观测的时间域和变换域属性值,根据离线阶段构建的随机森林分类器,对不同属性进行组合,分别输入每个SVM子分类进行跌倒检测,然后采用少数服从多数的原则,对多个子分类的分类结果进行投票,选择得票最多的结果作为随机森林分类器的最终输出结果。
2.1时域及频域特征属性
为发挥随机森林分类算法自动优选属性的特点,本文引入了加速度数据的时间域统计属性和频率域属性,如表1所示。所有属性值均为滑动窗口内加速度数据计算获得。
2.2行为定义
基于随机森林的跌倒检测算法把跌倒检测建模成二分类问题,为便于分类器进行分类评定,本文把复杂的用户行为定义为跌倒行为(Fall)和日常行为(也称为非跌倒行为)。其中各种跌倒行为(比如前向、后向、侧向跌倒),文中均统一标记为跌倒,不进行细分判定,仅在训练阶段采集各种方向的跌倒行为数据,以适应实际生活中各种跌倒场景检测。日常行为主要包括走、跑、跳、下蹲、坐、卧、上下楼等行为,统一标记为非跌倒行为。两类行为过程统一定义为10s周期。考虑到这两类行为中部分行为特征属性存在相似性,因此采用随机森林算法选择样本数和最优属性,实现复杂行为模式下跌倒行为的准确识别。
2.3随机森林SVM基本分类器
基于随机森林的跌倒检测算法采用基于径向基核函数的支持向量机作为基本分类器,离线阶段使用Bootstrap抽样的训练数据,进行基于随机属性选择的最佳属性SVM分类器训练。
为提高训练速度,将文件按不同分类进行树形结构存储,有效提高了训练过程中的文件搜索效率。
本文使用LIBSVM开源库[13]进行随机森林跌倒算法基本分类器训练。
2.3.1基本分类器支持向量机参数优化
在选择了上述特征向量后,基本分类器的主要工作就变为支持向量机惩罚因子C和γ的优化。目前支持向量机参数优化方法主要有栅格搜索、遗传算法、粒子群、模拟退火等。本文采用网格搜索方法[14]进行SVM参数优化。网格搜索方法将待搜索参数在一定的空间范围内划分为网格,通过遍历网格中所有的点来寻找最优参数以获得全局最优解。本文将两个变量按照等比例步长,在等比例的空间上进行遍历,获取其中准确率最高的跌倒检测模型。本文实验设置惩罚因子C的变化范围确定在0~15,步长为1,设置γ的变化范围确定在0~0.15,步长为0.01。实验结果表明,在有限区间中获得准确率最高的惩罚因子C为10, γ为0.1。
2.3.2部分特征参数优化选择
表1所示的时间域和频率域属性参数大多可以直接使用滑动窗口内的加速度传感器数据直接获得,只有失重持续时间和超重持续时间参数计算需要选择加速度失重阈值和超重阈值。为最大限度区分跌倒行为和日常行为,需要对这两个阈值参数进行优化选择。本文使用训练数据集,采用如下迭代计算方法获取超重阈值优化参数。
失重阈值参数计算步骤与超重阈值参数计算方法和步骤类似。本文基于测试数据集获得的最佳超重阈值为13.2,最佳失重阈值为6.2。
2.4基于用户反馈的模型自学习
为减少把正常行为误判为跌倒行为,本文采用基于用户反馈的模型训练机制,即每当系统检测到把正常行为误判为跌倒行为时,把本次数据作为日常行为加入到日常行为数据集中,启动模型再学习过程,如此反复,不断给模型输入新的非跌倒训练数据,降低跌倒检测的误判率。该方法同样可用于跌倒数据的更新,提升跌倒检测的准确率。
3实验及结果分析
3.1实验条件
由于面向老年人的跌倒检测系统不能选择老年人进行实际的实验,本文采用年轻人模拟方式,使用网上公开的跌倒测试数据集MobiFall [15]进行测试。该数据集由三星Samsung Galaxy S3手机采集获得。该手机集成了三轴加速度传感器和陀螺仪传感器,采集样本时手机以随机方向放在裤子口袋内。加速度传感器的采样频率为 87Hz,陀螺仪传感器的采样频率为200Hz。由11个实验者进行了采集,采集8个正常行为(钻入汽车、钻出汽车、慢跑、跳跃、坐、站立、上下楼、步行)、4种不同的跌倒行为,即前向躺倒(forward lying)、前膝跪躺(front knees lying)、侧向躺倒(sideward lying)、后向坐入椅子(back sitting chair)。所有8个正常行为合并在一起当作非跌倒行为,所有4种跌倒行为也合并在一起统一标记为跌倒动作,用于跌倒检测模型的训练和性能测试。
为评估所提算法的泛化能力和鲁棒性,本文还使用三星Note 2智能手机(Android 4.0版本)采集了跌倒和其他行为的加速度数据。采集频率为100Hz,每个样本的采样周期为10s,采样后按照行为类型进行分类保存。
为适配用户手机的姿态差异,本文统一使用三轴加速度(ax,ay,az)的幅度a2x+a2y+a2z进行模型训练和跌倒检测。
3.2性能评价指标
为了判断跌倒检测算法的有效性,本文把实验结果分为表2所示的相互独立4类。
基于上述实验结果类型,本文采用以下3种性能指标评估跌倒算法性能。
算法准确度Ac定义为所有事件(跌倒和非跌倒)被正确检测出来的比例,即所有动作的正确检出率,如式(1)所示:
Ac=TP+TNTP+FN+TN+FP×100%(1
灵敏度(Se)定义为所有跌倒事件被正确检测出来的比例,即所有跌倒动作的检出率,如式(2)所示:
Se=TPTP+FN×100%(2
特异度(Sp)定义为所有非真实事件被正确检测出来的比例, 即所有日常活动的检出率,如式(3)所示: Sp=TNTN+FP×100%(3
3.3实验结果及分析
本实验结果为采用留一法(leaveoneout)对所有样本进行测试后的统计平均。作为对比,本文还实现了单个SVM跌倒检测算法和基于BP神经网络的跌倒检测算法。
图2比较了3种跌倒检测算法的准确率,从图中可以看出,BP神经网络跌倒检测算法的准确率最低,随机森林跌倒检测算法准确度最高。可见,通过引入随机样本选择和属性选择,本文提出的随机森林跌倒检测算法获得了最好的检测性能。
图3则比较了上述3个跌倒检测算法的敏感度。随机森林算法正确检测出来跌倒的概率为90.6%,比单纯的支持向量机算法和BP神经网络算法分别高出约5%和15%。而在特异性方面,BP神经网络跌倒检测算法最低,SVM跌倒检测算法的特异性居中,随机森林跌倒算法最高,如图4所示。
当然随机森林跌倒检测算法性能的提升是以付出相对较多的计算开销获得的,图5比较了3种跌倒检测算法的训练时间(实验平台为4核酷睿i5 CPU,主频3.3GHz,内存8GB)。随机森林算法由于需要多次随机选择样本(即随机森林中树的数目m)再进行随机属性选择(随机属性选择的数目n)的最优支持向量机基本分类器训练,因此其训练开销比单纯SVM跌倒检测算法的训练开销大,不过由于3种算法使用的训练样本进行特征属性提取花费了较多时间,而随机森林跌倒检测算法的每个基本分类器并不是使用所有样本进行训练,因此其训练开销并不是单纯SVM跌倒检测算法的mn倍,而是比mn倍小很多。BP神经网络跌倒检测算法的训练开销介于随机森林跌倒检测算法和SVM算法之间。当使用3个跌倒算法分类器进行实时跌倒检测时,测试样本特征提取占据主要运行时间,跌倒实时检测的运行时间基本相似,均为 1s 左右,如图6所示。
4结语
本文所提基于随机森林的跌倒检测算法采用Bootstrap随机抽样和属性随机选择机制,能较好地解决老人真实跌倒样本缺乏或仿真训练样本规模较小等原因导致的分类算法过拟合和适应性不强的问题。在付出相对SVM、BP神经网络跌倒检测算法更高训练开销的基础上,准确率(95.2%)、敏感度(90.6%)和特异性(93.5%)有了明显提升,而且实时性能方面并未明显下降,实验结果反映出随机森林跌倒检测算法能更准确地检测出跌倒行为,具有较强的泛化能力和实用性。我们下一步工作将使用更多跌倒数据集进行性能评测,并在可穿戴设备上进行实现。
参考文献:
[1] EFRON B, TIBSHIRANI R J. An introduction to the Bootstrap[M]. Boca Raton: CRC Press, 1994: 17-28.
[2] BOURKE A, OBRIEN J V, LYONS G M. Evaluation of a thresholdbased triaxial accelerator fall detection algorithm[J]. Gait and Posture, 2007, 26(2):194-199.
[3] MATHIE M J, BASILAKIS J, CELLER B G. A system for monitoring posture and physical activity using accelerometers[C]// Proceedings of the 23rd Annual International Conference of the IEEE Engineering in Medicine and Biology Society. Piscataway: IEEE, 2001:3654-3657.
[4] ROUGIER C, MEUNIER J, STARNAUD A, et al. 3D head tracking for fall detection using a single calibrated camera [J]. Image and Vision Computing, 2012, 31(3): 246-254.
[5] SHI X, ZHANG T. Design of a wearable fall detection device [J]. Chinese Journal of Scientific Instrument, 2012, 33(3): 575-580.(石欣, 张涛. 一种可穿戴式跌倒检测装置设计[J].仪器仪表学报, 2012, 33(3): 575-580.)
电子技术应用论文发表期刊推荐《电子工艺技术》是我国电子行业生产技术综合性科技期刊,该刊集众多专业为一体,突出工艺特色,凡是与电子产品生产过程相关的技术,都是该刊的报道范围。本刊是信息产业部优秀科技期刊,山西省一级期刊,全国电子行业核心期刊。