基于多传感器融合的跌倒检测算法研究
2018-03-30陈祥宝杜玉晓
陈祥宝,杜玉晓
(广东工业大学 自动化学院,广州 510006)
据国家人口普查公示,中国的老年化人口在逐年递增。跌倒已经成为造成我国老年人死亡的首要原因,老年人跌倒死亡率随年龄的增加急剧上升。此外跌倒后产生的心理影响可能导致抑郁等心理疾病发生。因此,有必要对具有高准确率和高实时性的跌倒检测算法开展研究,以期对老年人的生活起居[1]进行监护。
传统的跌倒检测算法[2]通常采用阈值法判断。该方法简单,实时性好,但误报率较高,无法满足需求。目前,研究较多的跌倒检测算法归属于支持向量机 SVM(support vector machine),其准确率高,但由于计算复杂所以通常很难保证实时性。KNN(k-Nearest Neighbor)算法也称为K近邻算法,准确率略低于SVM,但计算速度快于SVM。通过对相关文献的研究,在此提出了基于多传感器融合[3-4]的跌倒检测算法。在硬件平台上,采取三轴加速度计传感器和三轴陀螺仪传感器进行人体运动数据采集。对通过阈值判断的特征数据进行二次判定,采用KNN算法进行二次跌倒检测。该方法只对高于设定阈值的人体运动数据进行二次判定。通过数据验证进行阈值设定,这样在日常活动[5]中部分剧烈的运动才会进入二次判断,运用阈值的高效和KNN算法的高准确度,满足了在较高的准确性的情况下达到较好的实时性保障。
1 跌倒检测硬件平台
硬件部分主要是跌倒检测终端,功能主要为实时地采集到用户的运动信息、所在地理位置等数据,通过GU620的移动网络,将数据传输到服务器数据库中,再通过服务器发送的用户及其监护人的手机,以实现对用户的日常健康进行监护。该终端由主控制器、电源管理电路、GU620模块、六轴传感器、蜂鸣器、OLED显示屏、选择/确定按钮等组成。其总设计如图1所示。
图1 跌倒检测硬件平台Fig.1 Fall detection hardware platform
使用三轴加速度计传感器和三轴陀螺仪传感器采集人体运动姿态数据,通过SPI接口传输给STM32主控制器;主控制器负责并行处理采集数据以及阈值和KNN联合跌倒检测[6]算法判断。此外,具有GPS/GSM/GPRS通信定位功能的GU620模块由主控制串口发送AT命令控制,电源管理模块为系统的各个模块提供供电,并为锂电池充电。
2 跌倒检测算法研究
通过硬件平台的人体运动数据采集,对采集的数据进行特征处理[7],之后对特征数据进行阈值法和KNN联合的跌倒检测算法判定。通过对国内外文献的研究发现,跌倒检测算法的主流研究方向主要有:基于阈值法跌倒检测;基于支持向量机的跌倒检测;基于KNN的跌倒检测。
这3种方法中,阈值法可以保证实时性但误报和漏报率较高;支持向量机具有较高的准确性,因计算复杂不能保证实时性;KNN算法计算相对于支持向量机较为简单,准确性略低于支持向量机,但计算时间比支持向量机短。故在此提出基于阈值和KNN联合判定的算法思想,即采用阈值法进行一次判定后,对满足阈值的特征数据采用KNN再进行跌倒检测,可以保证实时性的情况下具有较高的准确性。其流程如图2所示。
图2 阈值和KNN联合判断流程Fig.2 Joint judgment flow chart of threshold and KNN
2.1 特征处理
特征提取是对原始采集的数据进行分析,提取出数据所具有的特性特征,可用于表示原始数据所代表的含义。对于所设计的基于六轴传感器[8]的跌倒检测系统,跌倒过程中时域信号的特征选择如下:
(1)三轴加速度计的合加速度Aas
式中:Aas为三轴合成加速度;Ax,Ay,Az分别为 x,y,z轴的加速度。
(2)三轴陀螺仪的合角速度GR
式中:Gx,Gy,Gz分别为 3 个轴的角速度,由三轴陀螺仪传感器采集后经滤波处理获得。GR反映出人体活动时采集端旋转的强烈程度。
(3)信号幅值面积As
式中:T为1个时间窗口。它直观地表达运动状态变化的激烈程度,数值越大,运动越激烈,而跌倒动作比老年人绝大多数日常动作的激烈程度高很多。
2.2 阈值和KNN联合判定算法分析
2.2.1 基于阈值法的一次定位
在阈值判定前,先使用三轴加速度计传感器和三轴陀螺仪传感器采集日常行为活动数据,例如站立、坐下、起立、跑步、跳跃、躺下、上下楼梯、向前跌倒、侧向跌倒、向后跌倒等运动状态。然后对采集的原始数据进行上述的特征提取。获取特征数据后再进行算法分析。采集数据部分波形如图3所示。
图3 采集数据的部分波形Fig.3 Partial oscillogram of data acquisition
研究表明,在日常行为活动中跌倒情形发生的概率比较低。但是,人体一旦发生跌倒,会产生1个大的加速度峰值[9],可以依此区分其他活动。根据多次对跌倒行为的试验结果分析,以合成加速度为例,跌倒行为可以分为3个阶段,即失重阶段、冲击阶段、反弹阶段,其加速度波形如图4所示。
图4 前向跌倒加速度波形Fig.4 Forward fall acceleration oscillogram
以冲击阶段通过多次数据测试建模后进行研究设定阈值。对一次阈值判定可以较大地区分跌倒和非跌倒,对于一些模糊的状态再进行二次KNN算法进行判定。其仿真结果如5图所示。
图5 日常活动加速度峰值波形Fig.5 Daily activity acceleration peak oscillogram
由图可见,一次阈值判定可以保证在无漏报的情形下,较明确区分跌倒与部分非跌倒日常活动。对于跑步、跳跃等较剧烈的运动则需进入二次KNN算法判断。
2.2.2 基于KNN算法二次判定
跌倒行为发生时的状态检测和误判情况存在较强的模糊性,采集的数据和参数适用面相对较窄,传统方法是单纯通过判断人体加速度来确定算法达到某一阈值,在此并不可行。为此使用了阈值法结合KNN分类的方法,对数据特征向量进行较为精准的模型匹配,可以更准确地分辨出跌倒动作。
KNN分类算法属于有监督[10]的机器学习算法。它采用测量不同特征值之间的距离方法进行分类。其思想很简单:如果1个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
在KNN中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题。距离一般使用欧氏距离或曼哈顿距离。在此采用欧式距离:
KNN算法需要先对原始数据进行特征提取,获取加速度峰值、角速度峰值、幅值面积峰值,对特征数据进行归一化处理,之后建立训练样本数据库,如图6所示。对每一个样本进行标签归类。
图6 预处理样本库建立流程Fig.6 Pre processing sample library establishment process
建立样本库后,通过KNN算法对样本库的数据进行归一化处理,然后再进行测试数据判定。对通过阈值一次判定的特征数据进行KNN二次判定[11],得到判定结果是否跌倒。其算法流程如图7所示。
图7 跌倒检测算法流程Fig.7 Fall detection algorithm flow chart
3 实验结果与分析
进行二次跌倒判定时,根据200组跌倒样本数据,800组非跌倒样本数据,总计1000组样本数据,建立样本库。对800组测试数据(跌倒特征数据150组,非跌倒特征数据650组)进行二次算法判定。其中,通过一次阈值判断的共有437组,即150组跌倒特征数据,287组非跌倒特征数据。
为了判断联合算法的有效性,将跌倒判断结果分为4类:
TP—跌倒动作检测为跌倒;
FP—日常行为检测为跌倒;
TN—日常行为检测为未跌倒;
FN—跌倒动作检测为未跌倒。
通过以下3个性能指标,判断跌倒检测试验结果的好坏[12]:
准确率Ac反映所有动作被正确检测出来的比例。其表达式为
漏报率Fr反映跌倒动作未被检测出来的比例。其表达式为
误报率Fp反映日常动作被检测为跌倒事件的比例。其表达式为
对通过一次判断的数据进行二次跌倒检测。使用python进行KNN算法仿真,测试结果见表1。由表可知,k=5时,准确率最高,达到97.6%。仿真结果如图8所示。
表1 KNN算法测试结果Tab.1 KNN algorithm test results
图8 KNN算法仿真结果Fig.8 KNN algorithm simulation results
如图所示,由于跌倒数据和非跌倒数据样本数不同,当k超过一定值后,取值越大,其漏报率就越高。这是由于跌倒样本和非跌倒样本数的比例不同所致。使用阈值和KNN进行联合判定,可以使用阈值进行一次判定,对于大部分非跌倒数据进行过滤,减少二次判断处理数据的时间,保证了实时性。对于通过一次判定的数据进行KNN二次判定,以零误报和高准确性为标准进行参数设定,保证老年人每一次跌倒的状态都可以被检测出来,满足高准确性和实时性。
4 结语
基于多传感器的跌倒检测算法研究可以有效地检测老年人的跌倒事件,为独居老人的健康监护提供有效的保障。所提出的基于阈值和KNN联合判定的算法能在保证实时性的条件下具有较高的准确性。除了在理论上完成跌倒检测仿真效果,在实际测试中获得较高的准确性,在实践上已经完成了整体平台的搭建,形成了集硬件终端、服务器、APP定位于一体的智能穿戴式跌倒检测产品。
[1]Shoaib M,Dragon R,Ostermann J.View-invariant fall detection for elderly in real home environment[C]//Fourth Pacific-Rim Symposium on Image and Video Technology.IEEE Computer Society,2010:52-57.
[2]Belshaw M,Taati B,Snoek J,et al.Towards a single sensor passive solution for automated fall detection[C]//International Conference of the IEEE Engineering in Medicine and Biology Society(EMBC).2011:1773-1776.
[3]王刚.基于多传感器的可穿戴跌倒检测系统的设计与实现[D].北京:北京工业大学,2015.
[4]Tracy L,Alex M.An intelligent emergency response system:preliminary development and testing of automated fall detection[J].Journal of Telemedicine&Telecare,2005,11(4):194-198.
[5]于普林.北京市社区老年人跌倒状况研究[D].长沙:中南大学,2010.
[6]Bourke A K,Pw V D V,Chaya A E,et al.Testing of a longterm fall detection system incorporated into a custom vest for the elderly[C]//International Conference of the IEEE Engineering in Medicine&Biology Society.2013:2844-2847.
[7]李强.跌倒检测关键技术的研究与应用[D].北京:北京工业大学,2013.
[8]Zhao G,Mei Z,Liang D,et al.Exploration and implementation of a pre-impact fall recognition method based on an inertial body sensor network[J].Sensors,2012,12(11):15338-15355.
[9]Tao S,Kudo M,Nonaka H.Privacy-preserved behavior analysis and fall detection by an infrared ceiling sensor network[J].Sensors,2012,12(12):16920-16936.
[10]Cheng W.Triaxial accelerometer-based falldetection method using a self-constructing cascade-adaBoost-SVM classifier[J].IEEE JournalofBiomedicaland Health Informatics,2013,17 (2):411-419.
[11]Kobayashi T.Smoothly structured sparse CCA for partial pattern matching[C]///Proceedings of International Conference on Pattern Recognition(ICPR).2014:1981-1986.