基于特征参数变化量的并行跌倒检测算法

2019-06-07 15:08闫肃肖明波
软件导刊 2019年1期

闫肃 肖明波

摘 要:针对目前跌倒检测系统准确率低、应用场景单一等问题,提出一种基于特征参数变化量的跌倒检测算法。该算法通过采集合加速度幅值的实时变化量,为人体运动剧烈程度提供更直观准确的分析。由于运动过程中人体竖直方向相对于水平地面的角度随步伐呈周期性变化,算法对走路和上下楼梯行为进行准确区分,通过实验确定不同运动状态下的报警阈值,大大提高了跌倒检测准确率。系统采用Protothread模型实现并行检测,在减小系统开销条件下满足实时多任务需求。实验证明,改进后的跌倒检测算法将准确度和特异性分别维持在98.4%和99.1%,在保证实时性和便携性的同时能更有效地识别跌倒。

关键词:Mpu6050;变化量;并行检测;Arduino;跌倒检测

DOI:10. 11907/rjdk. 181753

中图分类号:TP312文献标识码:A文章编号:1672-7800(2019)001-0077-04

Abstract: Aiming at the shortcomings of the current fall detection system such as low accuracy and single application scenario, a fall detection algorithm based on the variation of feature parameters is proposed and the system parallel detection is realized. The algorithm provides a more intuitive and accurate analysis of the intensity of human motion by collecting the real-time variation of the combined acceleration amplitude. Due to the vertical direction of the human body to the horizontal ground changes periodically with the pace, the walking and going upstairs and downstairs can be accurately distinguished. Through a large number of experiments to determine the respective alarm threshold under different state of motion, the accuracy of the fall detection is greatly improved. The Protothread model is also adopted to meet the demand of real-time multitask under the condition of reducing the system overhead. The experiment shows that the improved fall detection algorithm maintains the accuracy and specificity of 98.4% and 99.1% respectively, and the system can identify the fall more effectively while ensuring the real time and portability.

0 引言

老年人及醫院内处于康复中的病人极易突发意外而跌倒[1],而老年人骨质较疏松,若未及时得到专业救助,产生的后果无法估量。为帮助跌倒后当事人及时发出求救信息,科研人员研究了多种跌倒检测装置。

目前跌倒检测装置[2]分为基于视频图像[3]、基于环境[4]和基于可穿戴式设备3种跌倒检测系统[5]。基于视频图像系统准确度较高,但限制在有摄像头的室内使用,算法复杂度高、计算量巨大,不适合市场推广普及;基于环境系统依靠声学检测判断跌倒事件的发生,需要在检测范围内铺设种类繁多的传感器,不仅增加检测成本,还将被检测者的活动范围局限在室内某些区域,给日常生活带来很多不便。基于惯性运动传感器的跌倒检测系统在满足实时性基础上,摆脱了外界环境的限制,便于随身携带且成本较低,成为现代跌倒检测系统的研究热点之一。

本文采用基于可穿戴式设备的跌倒检测系统,通过惯性运动传感器[6]采集人体实时运动数据,输出每一时刻三轴合加速度幅值变化量表征运动剧烈程度;通过分析人体躯干方向相对于水平地面角度随步伐的周期性变化,区分走路和上下楼梯的不同运动状态;通过实验确定不同运动状态下的危险报警值,使系统满足基本的应用场景;通过引入Protothread模型实现系统并行检测[7],满足实时性多任务对系统的需求。

1 跌倒检测原理

1.1 采样器及单片机

本文采用mpu6050[8]对人体运动数据进行采集。Mpu6050是一个6轴运动处理组件,包括3轴加速度计和3轴陀螺仪,可实时输出每个采样时刻X/Y/Z轴加速度值,陀螺仪测量3轴倾角(俯仰角、滚转角、偏航角)。Mpu6050输出经过内部ADC转换,以LSB为计量单位,默认量程设置为2g,灵敏度对应16384LSB/g。Mpu6050在使用前需多次采样求取平均值进行校准,避免累积误差产生。

Arduino[9]为可自主进行设计的单片机智能控制器。本文采用Arduino Nano控制板[10],采用Mini-B标准的USB接口连接电脑,控制器采用ATmega328(Nano3.0),在保证处理能力的同时大大缩小体积(1.854*4.318cm),为后续电路集成开发提供便捷。Arduino有两种软件,一是和硬件同名的Arduino程序开发工具软件[11],二是烧写在微处理器内部的bootloader(引导程序)。在程序编译完成后,通过USB线可直接将程序传入Arduino控制板。

1.2 跌倒过程分析

跌倒是异于日常行为(Activities Of Daily Living)的一种状态,本文对生活中常见的运动模式进行分类。首先是最基本的跌倒和非跌倒,其次区分在非跌倒状态下进行的日常走路和上下楼梯。相关研究[12]结果表明:腰部的运动可较理想地反映人体躯干运动状态,活动范围小且容易测量。因此,本研究将跌倒检测装置佩戴在腰部。与走路、站立、跑步、坐下、躺下、上下楼梯等日常行为相比,跌倒时人体相对于竖直方向的角度有90°左右的变化过程,同时,人体合加速度也会发生变化。因此,通过对此特征值进行分析比较可区分跌倒和其它日常行为的差别。

合加速度幅值的变化剧烈程度,对应体现人体所受外力变化情况,因此其变化量可更直观地体现人体运动变化情况。通过实验可知,走路、上下楼梯和跌倒3种状态下,变化量存在规律性。因此,将实时测量的合加速度幅值变化量与安全阈值进行比较,是判断跌倒是否发生的重要依据。

2 特征值提取

首先根据加速度计原理建立简化模型,如图1所示。

向量R代表加速度计的质量模所受力的矢量,Rx、Ry、Rz分别是R在X、Y、Z三轴上的投影。R与Rx、Ry、Rz满足如下关系:

2.1 合加速度幅值

合加速度的峰值[13](AM)是三轴加速度平方和的最大值,表示在测量过程中人体受力最剧烈时的加速度大小。数据测量过程中,AM值越大,表明此刻人体受力越剧烈,可通过与跌倒的数值比较作为判定跌倒是否发生的依据之一。

2.2 角度值

Mpu6050测量值可通过计算得出人体相对于竖直方向的角度[14],用来描述人体躯干的角度变化情况。走路等日常运动状态情况下,人体相对于竖直方向的角度接近于0°,一旦发生跌倒,[θ]会从0变化到90°左右,此变化过程可以量化,因此分析角度变化可作为跌倒是否发生的判断依据之一,计算公式如下:

3 并行检测跌倒算法

3.1 合加速度变化量

本文算法将测量特征值改为mpu6050,实时输出相对于上一采样时刻AM变化量(*AM),再结合角度变化综合分析,以判断跌倒是否发生。在上下楼梯时若发生跌倒,与走路时存在差异,最后静止状态是趴或躺在楼梯上,此过程角度变化存在低于90°情况,而*AM小于走路时跌倒的状况,若仍按走路时的安全阈值进行判断,则存在较大误判可能,因此本文针对走路和上下楼梯的不同特点设置不同的阈值,以提高算法的准确度和特异性,减少在楼梯上发生跌倒后造成更大伤害的可能性。

3.2 并行检测

在单片机应用中,如果多任务需要实时调度[16],会大大增加系统开销。在跌倒检测系统中,单片机除了实时进行数据接收、滤波[17]、分析及处理和跌倒后发送报警信息外,还要在误判及取消报警后及时恢复检测状态,这些过程实时性要求不高,传统的按照顺序执行任务的方式不能满足系统需求,若由实时操作系统进行任务中断和切换又需要占用相当数量的Flash空间和RAM空间。本文采取的解决方案是引入Protothread模型[18],优先执行实时任务,达到满足系统实时性要求。Protothread模型专为资源有限的系统设计,耗费资源少且不使用堆栈线程, C语言即可实现,无硬件依赖性,每个Protothread仅需2个额外的字节,在有无操作系统场合均可应用且支持阻塞操作[19]且没有栈的切换。

使用Protothread实现多任务最主要的特点在于其轻量级。每个Protothread不需要拥有自己的堆栈,所有的Protothread共享同一个堆栈空间,这一点尤其适合应用在RAM资源有限的系统中。相对于操作系统下的多任务而言,每个任务都有自己的堆栈空间,消耗了大量的RAM资源,而每个Protothread仅使用一个整型值保存当前状态。

3.3 算法流程

本文算法流程如图5所示。

4 实验结果与分析

为了验证本文提出算法的可行性和准确性,特邀请8名健康志愿者(3男5女)进行重复性实验。实验场所分别选在寝室和教学楼,实验人员分别进行走路、站立坐下、上下楼、躺下等日常行为,并模拟跌倒动作:前后跌倒和左右跌倒。表1收集并总结了日常行为与发生跌倒时特征值的数据对比。算法正确率是跌倒后被正确检测并报警的比例,特异性指准确区分不同日常行为活动的比例。本次实验共采集200组日常行为数据、100组跌倒数据与经典阈值算法进行对比,结果如表1所示。

5 结语

本文通过测量人体实时合加速度幅值变化量及人体竖直方向相对于水平地面的角度变化两个特征值,分析角度特征值随人体运动步伐呈现的周期性变化特点,准确区分走路及上下楼梯等日常行为,并通过模仿实验确定不同状态下的危险阈值,在经典阈值算法基础上提出了基于特征参数变化量的并行检测跌倒算法。结合惯性运动传感器及单片机arduino实现跌倒检测,克服了普通系统体积大、不易携带、算法复杂度高、成本高、难以推广普及等缺点,在保证实时性和便携性基础上有效提高了系统准确度和特异性。通过引入Protothread模型,在降低系统开销条件下满足实时多任务需求,算法简便易实现,功耗和成本低,满足了智能医疗需求。

参考文献:

[1] 李新辉, 陈丽丽. 老年人跌倒危险因素及預防研究进展[J]. 全科护理, 2008, 6(31):2829-2831.

[2] 郑娱,鲍楠,徐礼胜,等. 跌倒检测系统的研究进展[J]. 中国医学物理学杂志,2014 (4):5071-5076.

[3] VAIDEHI V, GANAPATHY K, MOHAN K, et al. Video based automatic fall detection in indoor environment[C].IEEE International Conference on Recent Trends in Information Technology,2011:1016-1020.

[4] LITVAK D, ZIGEL Y, GANNOT I. Fall detection of elderly through floor vibrations and sound.[C].  International Comgerence of the IEEE Engineering in Medicine and Biology Society, 2008:4632-4635.

[5] 王榮扬, 陆波, 何彦虎,等. 一种可穿戴式无线实时跌倒检测装置设计[C]. 核磁共振技术及应用研讨会,2014.

[6] 王莉, 赵艳阳, 刘雪峰,等. 基于惯性传感器的跌倒检测技术研究进展[J]. 科学技术与工程, 2017, 17(32):205-213.

[7] 肖明清, 夏锐. 并行测试技术的现状及其发展趋势[C].全国测试与故障诊断技术研讨会,2006.

[8] 刘楚红. 基于FSR和陀螺仪的人体姿态检测及行走趋势分析[D]. 沈阳:沈阳工业大学, 2015.

[9] 巴雷特, 潘鑫磊. Arduino高级开发权威指南[M]. 北京:机械工业出版社, 2014.

[10] 赵英杰. Arduino互动设计入门 [M].北京: 科学出版社,2014.

[11] BARBON G,MARGOLIS M,PALUMBO F,et al. Taking arduino to the internet of things: the ASIP programming model[J]. Computer Communications,2016(4):89-90.

[12] KANGAS M, KONTTILA A, WINBLAD I, et al. Determination of simple thresholds for accelerometry-based parameters for fall detection[C].  International Conference of the IEEE Engineering in Medicine & Biology Society, 2007:1367.

[13] TARALDSEN KRISTIN F M,SEBASTIEN C, RIPHAGEN I I. Physical activity monitoring by use of accelerometer-based body-worn sensors in older adults: A Systematic Literature  Review of Current Knowledge andApplications[J]. Maturitas,2012,71(1):13-19.

[14] 陈玮,周晴,曹桂涛. 基于SVM和阈值分析法的摔倒检测系统[J]. 计算机应用与软件, 2017, 34(7):182-187.

[15] MAARIT KANGAS, ANTTI KONTTILA. Comparison of low-complexity fall detection algorithms for body attached accelerometers [J]. Gait & Posture, 2008, 28(2): 285-291.

[16] 耿晓中. 基于多核分布式环境下的任务调度关键技术研究[D].长春:吉林大学,2013.

[17] 李坤, 姜萍萍,颜国正. 基于多传感器数据融合的跌倒检测算法[J]. 北京生物医学工程, 2016, 35(5):483-488.

[18] NOH Y D. Computational algorithm for an m -stage open tandem queue with blocking and feedback operation[J]. Computers & Industrial Engineering,1997,32(2):124-132.

[19] 冉全. 单片机中基于多线程机制的实时多任务研究[J]. 微型机与应用, 2003, 22(8):13-15.

[20] SHIBUYA N, NUKALA B T, RODRIGUEZ A I, et al. A real-time fall detection system using a wearable gait analysis sensor and a Support Vector Machine (SVM) classifier[C]. 2015  (ICMU) IEEE Eighth International Conference on Mobile Computing and Ubiquitous Networking.  2015:66-67.

[21] 麻文刚, 王小鹏, 吴作鹏. 基于人体姿态的P SO-SVM特征向量跌倒检测方法[J]. 传感技术学报, 2017, 30(10):1504-1511.

(责任编辑:杜能钢)