计算机系统应用  2018, Vol. 27 Issue (11): 224-230   PDF    
基于拉班空间的跌倒方位检测方法
徒鹏佳1, 李军怀1,2, 王怀军1,2, 姬文超1,2, 王侃1,2     
1. 西安理工大学 计算机科学与工程学院, 西安 710048;
2. 陕西省网络计算与安全重点实验室, 西安 710048
摘要:研究跌倒检测方法对于保障老年人健康生活具有重要意义. 首先通过惯性传感器对老年人日常行为及跌倒动作进行捕捉, 使用欧拉角法表示动作数据, 引入滑动平均滤波算法对数据降噪融合; 在此基础上, 基于拉班舞谱空间表示方法, 建立跌倒及方位检测模型, 基于该模型进行异常姿态检测及八种精确方位判定, 最终提出一种基于拉班空间的跌倒方位检测方法. 实验结果表明, 该方法的检测准确率可达100%, 同时能够对老年人跌倒后受伤部位进行预诊断及报警.
关键词: 跌倒检测    滑动平均滤波    拉班舞谱    方位判定    
Falling Position Detection Method Based on Laban Space
TU Peng-Jia1, LI Jun-Huai1,2, WANG Huai-Jun1,2, JI Wen-Chao1,2, WANG Kan1,2     
1. School of Computer Science and Engineering, Xi’an University of Technology, Xi’an 710048, China;
2. Shaanxi Key Laboratory for Network Computing and Security Technology, Xi’an 710048, China
Foundation item: National Natural Science Foundation of China (61771387); National Key Research and Development Plan of China (2017YFB1402103); Searle Nnetwork Innovation Project (NGII20150707, NGII20160704)
Abstract: In moving object detection process, it needs to automatically judge whether it has detected the moving object, although there is no moving object in the current scene, detection result wrongly judges that it has detected the moving object. In order to find the source of the error, optical flow disturbance effect is found through experiment. The optical flow disturbance effect detection algorithm is designed, and the effect of optical flow perturbation is clearly detected. Next, through the binarization method of image it eliminates optical flow disturbance effect. The ideal results of the moving object detection are obtained. This research proves that the optical flow perturbation effect exists in the space, which can cause interference to the detection of moving object. It also can eliminate the effect of optical flow disturbance and improve the accuracy and reliability of moving object detection and judgment.
Key words: falling detection     moving average filtering     labanotation     position judgment    

随着社会老龄化的加速迈进, 人们越来越关注老年人的健康生活, 尤其是跌倒问题. 相关调查表明, 老年人群体中因跌倒而导致伤残及死亡的人数比例一直在增加, 并且很多老年人因跌倒而死亡的原因并非跌倒本身, 而是因为其跌倒后没有得到及时救治, 因此研究有效的跌倒检测方法对于保障老年人的健康生活具有重要意义.

目前, 研究开发人体跌倒检测系统方面的技术较多, 比如Wang等[1]和沈秉乾等[2]学者均通过加速度传感器对人体运动信号采集和分析判断是否发生跌倒, 其优点是算法简单, 但因其仅使用加速度进行检测导致精确度较低, 且无法对一些特定的姿态进行判定. Qu[3]通过对加速度与合差分加速度等特征设定阈值来判断是否发生跌倒, 但特征数据仍较单一. 后来诸多学者对单一化的数据以及复杂计算问题进行了研究, 如Mazurek等人[4]通过红外深度传感器获取各方向上坐标变化速率的均值、方差、标准差等特征, 通过朴素贝叶斯算法完成决策, 实现跌倒检测方案. 文献[5]通过加速度数据提取对跌倒行为敏感的时域及频域特征, 利用奇异值分解方法降维特征和重构跌倒特征, 采用支持向量机分类器检测跌倒行为, 实验结果具有较高灵敏度和特异度. 王荣等[6]引入姿态角这一数据作为辅助, 通过加速度数据和姿态角数据共同对跌倒状态进行判定, 但由于姿态角需要通过计算加速度获取, 因此算法比较复杂且计算量较大, 进而也导致检测系统的实用性难以保证. 基于此, 有学者对姿态角和加速度做进一步处理分析以提高检测精度, 如He等[7]结合姿态角和加速度作为特征量, 通过卡尔曼滤波对数据进行去噪与融合, 同时应用滑动窗口和贝叶斯网络分类器实现穿戴式跌倒检测系统, 该系统的跌倒检测率较高, 但只实现了前后向跌倒和侧向跌倒. 文献[8]使用加速度传感器获取数据生成离散变量, 同时采用Ameva算法实现对老年人日常活动识别和跌倒检测系统. 虽然上述研究方法均能实现跌倒检测, 但对精准的具体跌倒方位判定还没有进行深一步研究, 全面的跌倒方位判定可更好地对可能受伤部位进行快速预诊断以缩短救治时间.

鉴于此, 本文致力于跌倒方位精确判定, 提出了一种基于拉班空间的跌倒方位检测方法. 首先利用惯性传感器对人体运动数据进行采集, 将原始数据转换并以姿态角法表示; 然后引入滑动平均滤波算法对其进行降噪融合, 确定动作区分阈值; 同时结合拉班舞谱空间表示方法, 建立基于阈值的跌倒检测及方位判定模型, 并进行实验验证.

1 跌倒检测方法

跌倒是指突发、不自主、非故意的体位改变, 倒在地上或更低的平面上[9], 跌倒包括两种: (1) 从一个平面到另一个平面的跌倒; (2) 同一平面的跌倒. 导致人体发生跌倒的原因通常不是单方面的, 而是一个综合因素的结果. 自身原因和环境因素都会导致身体失去平衡发生跌倒, 且大多数跌倒事件发生在站立状态. 跌倒过程的持续时间一般在2 s左右, 跌倒的发生伴随着人体姿态的改变, 人体姿态是指身体各个部位位置的相对关系, 人体由于突发原因而无法继续保持平衡, 跌倒事件便可能发生, 身体会向某个方向倒下, 是一系列作用对身体的结果.

1.1 拉班空间

拉班舞谱作为广泛记录舞蹈的方法, 具有同步记录舞蹈动作时间、空间和力效等特性, 能够客观反映肢体角度变化、空间路线甚至能量流动和动作主旨, 因此已被应用于人类学、运动学、物理治疗等多个领域[10]. 而结构描述作为拉班舞谱中使用最为广泛的形式, 可以从身体、空间、时间、动力等多个层面体现身体运动, 其表达形式主要是方向符号, 因此研究保存舞蹈的主要目的是生成以方向符号为代表的基本动作的拉班舞谱. 其本质是将动作还原到人体最本真的运动方式, 这不仅是对位置的简单描述, 更重要的是对动作取向与动态的描述, 使得舞者对动作与动作之间的转换关系更加了解. 同样, 人体发生跌倒, 需具体描述跌倒动作与跌倒方位之间的关系, 不同的跌倒动作与跌倒方位对身体机理的反应存在差异性. 如果只是笼统地说明跌倒方位是向前、向后、向左以及向右, 这根本不能全面详细说明跌倒动作与跌倒方位之间的关系.

现有的跌倒检测方法大多考虑向前、向后、向左、向右四种跌倒方位, 并未考虑较精准的各种斜侧跌倒情况. 拉班舞谱对于空间的记录方式, 主要是通过将人体自身空间在竖直方向分为上中下三段, 每一段以九个方位来分解水平方向, 因此需要用27个方向符号指示空间方位. 本文选取拉班空间中段作为跌倒检测及方位判定依据, 如图1所示, 具体分布是以45度为间隔并加上位置原点, 将中段水平运动空间分为9个子空间, 将跌倒分为向前趴下、向左前侧跌、向左侧跌、向左后侧跌、向后躺下、向右前侧跌、向右侧跌、向右后侧跌以及原位站立9种姿态, 其中将除去原位的另外8种方位作为本文的跌倒方位判断依据.

1.2 跌倒方位检测算法

为了区分老年人跌倒和日常活动两种动作类型, 并考虑到其跌倒主要发生在室内环境中. 本文先通过惯性传感器获取两种不同类型活动数据, 再将捕捉到的动作数据使用欧拉角法表示为姿态角, 然后引入舞蹈记录方法拉班舞谱体现人体运动空间变化, 并采用滑动平均滤波算法对姿态角去噪, 以及通过多次实验分析并确定姿态阈值, 对比判断是否发生跌倒, 最后根据姿态角判定不同跌倒方位.

图 1 拉班空间

1.2.1 姿态角计算

本文通过惯性传感器采集人体动作数据. 惯性传感器具有携带轻便、侵入性低等特点, 可精准追踪并捕捉身体动作数据, 同时具有三维分析功能. 在日常生活中人体行为随机性比较大而且复杂, 因此, 选择合适的采集部位对于增强数据的代表性具有重要意义. 从运动生物力学方面来说, 人体的各种动作需要重心来支撑, 男子的重心大约在身高的56%处, 女子大约在身高的55%处, 即腰部最靠近人体的重心位置. Kangas[11]等人的研究结果表明, 人体的腰部或者颈部的加速度信息最能反映人体的躯干的运动状态. 根据Zdemir等人[12]使用单个传感器检测不同动作时的准确率, 当传感器佩戴在腰部时, 检测准确率可达98.42%, 而在头部及胸部的准确率分别为96.61%和96.50%. 从而可知当使用单个传感器进行动作检测, 传感器位于腰部时, 不仅能够区分动作类型且检测准确率更高. 经上述分析, 同时考虑到穿戴舒适性, 本文将腰部作为传感器采集节点, 搭建传感器动作捕捉平台获取人体动作行为数据, 最后根据传感器放置位置方向采用世界坐标对人体活动建模.

本文直接获取的是以人为载体的姿态坐标, 而跌倒检测需要的是世界坐标表示的姿态角, 因此需对其进行转换. 在数学中, 不同的坐标系之间存在一定的位置关系, 这种位置关系可用变换矩阵来表示, 如图2所示, 姿态坐标在世界坐标下的空间姿态可看作是依次绕航向角、俯仰角和横滚角作基本旋转后复合的结果, 因此可以通过变换矩阵来对姿态坐标进行转换处理, 其中所用的姿态描述方法为欧拉角法, 该方法易于理解且操作简便. 具体操作过程如下文.

图 2 坐标转换图

首先, 将初始姿态坐标与世界坐标重合, 姿态坐标分别绕世界坐标的Z轴、X轴和Y轴旋转, 依次得到旋转矩阵为:

$R = {R_{\rm Z}}\left( r \right) = \left[ {\begin{array}{*{20}{c}} {\cos r}&{\sin r}&0 \\ { - \sin r}&{\cos r}&0 \\ 0&0&1 \end{array}} \right]$ (1)
$P = {R_{\rm X}}\left( p \right) = \left[ {\begin{array}{*{20}{c}} 1&0&0 \\ 0&{\cos p}&{\sin p} \\ 0&{ - \sin p}&{\cos p} \end{array}} \right]$ (2)
$Y = {R_{\rm Y}}\left( y \right) = \left[ {\begin{array}{*{20}{c}} {\cos y}&0&{ - \sin y} \\ 0&1&0 \\ {\sin y}&0&{\cos y} \end{array}} \right]$ (3)

式中, RPY分别是rollpitchyaw的旋转矩阵, 绕ZXY轴旋转, 旋转角为rpy. 依据正交矩阵的性质, 可得到如下的旋转矩阵N.

$\begin{array}{l}N = {(RPY)^{ - 1}} = \left[ {\begin{array}{*{20}{c}}{\cos r\cos y - \sin r\sin p\sin y}\\{\sin r\cos y + \cos r\sin p\sin y}\\{ - \cos p\sin y}\end{array}} \right.\\\begin{array}{*{20}{c}}{ - \sin r\cos p}\\{\cos r\cos p}\\{\sin p}\end{array}\;\;\;\left. {\begin{array}{*{20}{c}}{\cos r\sin y + \sin r\sin p\cos y}\\{\sin r\sin y - \cos r\sin p\cos y}\\{\cos p\cos y}\end{array}} \right]\end{array}$ (4)

求得姿态变换矩阵N后, 为了求取人体的姿态角, 需要对其进行进一步变换, 其结果为:

$N = \left[ {\begin{array}{*{20}{c}} {{T_{11}}}&{{T_{12}}}&{{T_{13}}} \\ {{T_{21}}}&{{T_{22}}}&{{T_{23}}} \\ {{T_{31}}}&{{T_{32}}}&{{T_{33}}} \end{array}} \right]$ (5)

进而由 ${T_{32}} = \sin p$ , 可得人体姿态角中的横滚角:

$pitch = p = \arcsin ({T_{32}})$ (6)

${T_{12}} = - \sin r\cos p$ , ${T_{22}} = \cos r\cos p$ , 可得人体姿态角中的偏航角:

$roll = r = \arctan \left( { - \frac{{{T_{12}}}}{{{T_{22}}}}} \right)$ (7)

${T_{13}} = - \cos p\sin y$ , ${T_{33}} = \cos p\cos y$ , 可得人体姿态角中的俯仰角:

$yaw = y = \arctan \left( - \frac{{{T_{31}}}}{{{T_{33}}}}\right)$ (8)
1.2.2 动作差异分析

为判断跌倒事件的发生, 首先获取老年人日常行为活动与跌倒动作的姿态角, 对老年人动作行为进行差异分析, 以区分日常行为与跌倒动作. 通过随机采集人体日常活动动作和跌倒动作的姿态角数据, 每种动作循环30次, 截取部分特定动作序列并统计结果, 以姿态角中的横滚角(roll)为例, 结果如图3所示.

图 3 不同行为动作角度分布

图3展示了各种动作姿态角的分布情况, 其中横轴0到60 s为日常行为动作, 而60至120 s是两个连续跌倒动作. 由图3可知, 跌倒动作与日常行为动作的姿态角分布具有明显差别. 为了更好地描述两类动作间的差异性, 本文通过建立姿态角阈值区间模型来对跌倒动作进行精确判断, 具体实现过程为: 将采集到的两类动作数据进行对比分析, 选取适当阈值区间. 其结果如图3中横向虚线所示. 此外, 为了验证阈值选取的合理性, 并考虑到阈值对于其检测性能的影响, 本文选取日常行为活动中姿态角的最大值和最小值为阈值区间[+20°, +48°], 该阈值区间与跌倒动作的角度分布均没有重叠部分, 既避免了因阈值区间过大而可能会出现将某种跌倒动作误判为某种日常行为动作的情况, 又避免了因阈值区间过小而可能会将某种日常行为动作误判为某种跌倒动作, 该区间也能够全面地表征跌倒动作姿态角的变化范围. 通过设定上述姿态角的区间阈值, 实际模拟人体随机跌倒过程, 其结果如图4所示. 从图4中可以看到实验者在第200到350 s之间时, 其横滚角超出了阈值范围, 也说明了该实验者已发生跌倒, 而其与实际情况相一致. 该结果进一步说明了本实验中阈值选取的合理性与可行性.

图 4 跌倒曲线图

以上步骤完成了跌倒事件的检测, 在此基础上结合拉班空间确定具体跌倒方位, 对比实验中各个跌倒方位姿态角变化范围. 如图5所示, 以横滚角(roll)为例, 曲线从平缓到发生明显变化的跌倒瞬间, 各个方位的跌倒动作姿态角变化范围有较大差异, 故以姿态角变化范围作为跌倒方位的判断依据. 通过多次实验结果分析分别得到了8种不同跌倒方位的判定阈值.

图 5 不同跌倒方位roll角变化图

1.2.3 跌倒检测及方位判定算法

人体发生跌倒时, 三种姿态角都会在短时间内发生不同程度的浮动变化, 通过对捕捉到的跌倒动作数据进行分析, 分别选取了倾斜角(pitch)和横滚角(roll)作为跌倒检测以及方位判断依据, 算法如下:

(1) 计算获取三个姿态角, 判断pitchroll是否超过阈值.

(2) 当连续1 s时间内pitchroll超过阈值, 认为人体姿态出现疑似跌倒状态, 但还不能判定测试者已跌倒, 先预报警.

(3) 延时采集2 s时间数据, 对姿态角进行二次检测. 该步骤的必要性在于判断测试者是否处于异常姿态的终态, 即倒地. 当测试者一直倒地时, 人体相对地面静止, 姿态角将一直处于异常状态, 这时就会判定测试者已跌倒, 进行报警.

(4) 记录跌倒姿态角值, 判定具体跌倒方位, 最后依据跌倒方位预诊可能受伤部位, 达到及时精准救治目的.

该算法流程如图6所示.

图 6 算法流程图

2 实验验证与分析 2.1 实验设计

为了验证本文提出的基于拉班空间的跌倒方位检测方法的合理性与有效性, 测试分为两组: 一组是日常正行为活动实验, 包含行走、坐下和弯腰; 另一组是模拟意外跌倒实验, 测试者进行多种跌倒测试, 具体包括向前趴下、向左前侧跌、向左侧跌、向左后侧跌、向后躺下、向右前侧跌、向右侧跌、向右后侧跌等8种可能跌倒姿态, 每组实验30次.

2.2 实验结果

图7(a)为人体正常行走时姿态角变化情况, 图中三个姿态角的检测结果由于受噪声的影响不够准确. 目前对于运动捕捉数据中噪声的处理大多采用卡尔曼滤波算法, 因此本文首先通过卡尔曼滤波对运动捕捉数据进行去噪, 滤波结果如图7(b)所示, 与图7(a)中原本曲线趋势偏差较大, 无法正确表现原始运动, 因此该方法并不适用于本文数据集. 还有学者采用滑动平均卡尔曼滤波算法[13]处理动作数据, 该算法是在卡尔曼滤波的基础上进一步对数据进行滑动平均处理, 但本文在使用该方法处理后发现结果仍与原始数据偏差较大, 如图7(c)所示. 本文以数据信号的特点作为切入点, 由于本文数据是连续且非线性的, 而且数据曲线连续波峰波谷起伏时的幅度是基本一致的. 考虑到滑动平均滤波方法在滤波过程中, 能够有效处理小范围连续起伏数据, 且算法简便, 计算量小. 因此本文采用滑动平均滤波算法进行数据降噪, 处理结果见图7(d), 经滑动平均滤波处理后, 频繁随机起伏的数据被滤除, 图形曲线更加平滑, 特别对干扰数据具有较好的效果, 可有效地降低信号的波动幅度. 因此, 本文选用滑动平均滤波处理后的结果分析日常行为和不同跌倒方位的姿态变化.

对每一种跌倒动作进行30次实验模拟, 使用滑动平均滤波算法对数据处理和分析, 可以得到如图8所示的人体不同跌倒运动状态的姿态角变化情况.

图8中不难发现, 人体在跌倒发生的瞬间, 姿态角的变化趋势、浮动范围以及稳定后的状态与日常动作存在显著差异, 并且不同的跌倒方位姿态角的变化趋势以及浮动范围也存在差异. 说明人体的姿态角变化范围随着不同的跌倒方位而不同, 因此姿态角可用于区分不同跌倒活动状态. 以前侧跌倒为例, 从第130 s起测试者发生跌倒, 185 s时横滚角(roll)达到并超过+25°的阈值. 第210 s时测试者处于卧倒终态, 此时横滚角将始终处于+120°. 从横滚角开始变化到保持终态时间超过了1 s, 此时进行预报警. 算法对姿态角进行二次检测后, 发现直到2 s后测试者还处于卧倒终态, 故此时确认横滚角处于异常值, 立即进行报警.

图 7 不同滤波处理前后对比图

图 8 不同跌倒方位曲线图

本文共对日常生活行为和不同跌倒状态进行了330次测试, 成功330次, 检测正确率达100%. 如见表1所示, 本文方法可准确识别前、后、左、右、左前、左后、右前、右后8种跌倒方位, 具有较好的识别率.

表 1 实验结果

3 结束语

随着社会老龄化的加速迈进, 人们越来越关注老年人的健康生活, 特别对于居家养老的老年人日常活动中跌倒的监测与预警问题的研究和应用具有很好的实际意义. 本文提出了一种基于拉班空间的跌倒方位检测方法, 用欧拉角法表示不同的跌倒数据, 同时引入滑动平均滤波算法对数据降噪和融合, 选取日常生活状态的姿态角作为该系统的阈值, 设计实现了以姿态角为判断标准的检测跌倒方法, 并通过人体日常活动行为和8种不同跌倒方位进行实验验证, 表明该方法具有较好的实际应用价值.

参考文献
[1]
Wang J, Zhang ZQ, Li B, et al. An enhanced fall detection system for elderly person monitoring using consumer home networks. IEEE Transactions on Consumer Electronics, 2014, 60(1): 23-29. DOI:10.1109/TCE.2014.6780921
[2]
沈秉乾, 武志勇, 贺前华, 等. 人体姿势状态判决的跌倒检测方法. 计算机应用, 2014, 34(S1): 223-227, 264.
[3]
Qu WH, Lin F, Xu WY. A real-time low-complexity fall detection system on the smartphone. Proceedings of IEEE 1st International Conference on Connected Health: Applications, Systems and Engineering Technologies. Washington, DC, USA. 2016. 354–356.
[4]
Mazurek P, Morawski RZ. Application of naïve Bayes classifier in fall detection systems based on infrared depth sensors. Proceedings of the 8th International Conference on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications. Warsaw, Poland. 2015.
[5]
白勇, 孙晓雯, 秦昉, 等. 基于SVD特征降维和支持向量机的跌倒检测算法. 计算机应用与软件, 2017, 34(1): 247-251. DOI:10.3969/j.issn.1000-386x.2017.01.045
[6]
王荣, 章韵, 陈建新. 基于三轴加速度传感器的人体跌倒检测系统设计与实现. 计算机应用, 2012, 32(5): 1450-1452, 1456.
[7]
He J, Bai S, Wang XY. An unobtrusive fall detection and alerting system based on Kalman filter and Bayes network classifier. Sensors, 2017, 17(6): 1393. DOI:10.3390/s17061393
[8]
De La Concepción MÁÁ, Morillo LMS, García JAÁ, et al. Mobile activity recognition and fall detection system for elderly people using Ameva algorithm. Pervasive and Mobile Computing, 2017, 34: 3-13. DOI:10.1016/j.pmcj.2016.05.002
[9]
Xu T, Zhou Y. Fall detection based on skeleton data. Proceedings of the 3rd International Conference on Human Aspects of IT for the Aged Population. Applications, Services and Contexts. Vancouver, Canada. 2017. 475–483.
[10]
Young J, Wood LL. Laban: A guide figure between dance/movement therapy and drama therapy. The Arts in Psychotherapy, 2018, 57: 11-19. DOI:10.1016/j.aip.2017.09.002
[11]
Kangas R, Pöllänen E. Physical activity responsive miRNAs-potential mediators of training responses in human skeletal muscle?. Journal of Sport and Health Science, 2013, 2(2): 101-103. DOI:10.1016/j.jshs.2013.04.002
[12]
Özdemir AT. An analysis on sensor locations of the human body for wearable fall detection devices: Principles and practice. Sensors, 2016, 16(8): 1161. DOI:10.3390/s16081161
[13]
程兰, 王志远, 陈杰, 等. 基于粒子滤波和滑动平均扩展Kalman滤波的多径估计算法. 电子与信息学报, 2017, 39(3): 709-716.