谢 静,杨盘隆,魏 星
(1.蚌埠医学院公共基础学院,安徽 蚌埠 233030;2.中国科学技术大学计算机科学与技术学院,安徽 合肥 230027)
跌倒已成为老年人健康的主要威胁,超过65周岁老年人有近40%的每年至少跌倒1次[1].对于老年人,跌倒可引起一系列严重的后果[2-3],如肌肉损伤、关节扭伤、骨折甚至是死亡,这不仅影响老年人身心健康,而且增加了家庭和社会的经济负担[4].因此,大量学者致力于跌倒检测方面的研究.跌倒检测的目的是区分日常行为和跌倒,按检测时间的不同可分为跌倒后检测和跌倒前检测.跌倒后检测[5-10],是在跌倒撞击已经发生、跌倒伤害已经产生的情况下,利用撞击和稳定阶段的数据检测跌倒,研究的目的是通过发出求救信号以缩短从跌倒到获得有效医疗救助的时间.但这种检测并不能减轻撞击对身体造成的伤害.为了减轻跌倒撞击伤害,有学者研发了跌倒自动防护装置[11-12](如安全气囊等).但自动防护装置必须在跌倒撞击发生前被触发,并且需要足够的时间打开装置(如给安全气囊自动充气等),这就要求在跌倒前有充足的时间检测出跌倒即将发生.在一些跌倒前检测研究中,Nyan等[11]通过大量复杂的计算建立了不同的跌倒模型来预测跌倒,但计算耗时较长,不适于实时检测;Shan等[13]、Wu等[14]及Bourke等[15]的检测需要多个传感器采集行为数据,且对检测装置的佩戴位置要求较高.因此,跌倒前检测存在如下困难:(1)仅依靠单一的传感器难以区分跌倒和非跌倒;(2)跌倒前(从正常阶段到发生撞击动作阶段)持续的时间较短.为了能利用单一传感器在跌倒撞击前实时检测出跌倒即将发生,笔者拟结合支持向量机(Support Vector Machine,SVM)和阈值法设计一种自适应跌倒前实时检测方法(简称“自适应方法”).
建立三维人体运动坐标系和自然坐标系:三维人体运动坐标系(图1(a))以手环佩戴位置为原点,以右手方向为x轴的正向,以人体前进方向为y轴的正向,以平行人体躯干向上方向为z轴的正向;自然坐标系(图1(b))以地面为坐标原点.自然坐标系不会因人体的运动而改变.用ax(t),ay(t),az(t)分别表示x,y,z轴上的加速度.
图1 坐标系
跌倒虽持续时间较短,但其仍然是由一系列连续的动作组成.跌倒的整个过程可分为4个连续阶段,即正常阶段、失重后的自由落体阶段、撞击阶段和撞击后的稳定阶段,如图2所示.
图2 跌倒过程中的合加速度变化
正常状态下,人体受重力G和地面的支持力F影响,其合力约为0,合加速度约为g.此阶段,人体处于平稳状态,与地面的夹角约为90°,站立或走平路时信号整体表现平稳,上下楼或跑步时信号则表现为较大幅度的周期性摆动.
在失重阶段,人体重心下移,与地面的夹角逐渐减小,呈自由落体运动,直到身体与地面接触.这个阶段持续的时间较短,一般在400~600 ms[16],因此处理这个阶段的信号,对算法的实时性要求较高.在此阶段,人体的重力G大于地面的支持力F[17],其合加速度小于重力加速度,由牛顿第二定律可知,人体会产生一个方向向下且短时间内快速减小的加速度.
当身体碰撞地面时,支持力F骤增,产生极大的向上加速度即加速度剧增,在图中表现为出现一个波峰.由冲量Ft=mΔv可知,当人体的m和Δv一定的情况下,t越小,F越大,即跌倒的直接危害是由支持力带来的.接着,会有一个非常短的波动过程,在图中表现为波峰后出现多个小波峰和波谷.这部分数据量丰富,信号变化更明显,可采集的特征也较多,大部分的跌倒检测都是基于对这部分信号的处理和分析.随后,进入跌倒后的平稳阶段.
对跌倒行为进行分析,可发现失重阶段的合加速度和倾角的变化规律:合加速度会骤减,小于重力加速度;倾角会因跌倒方向的不同而发生较大的变化(图3).因此,设定阈值Ta和Tθ,Ta表示合加速度的阈值,Tθ表示倾角的阈值.将合加速度与Ta进行比较,若合加速度不大于Ta,则将倾角与Tθ进行比较,若倾角不小于Tθ,则可判断人体处于跌倒前的失重阶段.合加速度判断公式为
图3 不同方向跌倒时倾角的变化
其中m为所采集的样本点的个数,t为状态标志.t=1时,表示可能处于失重状态,需进行倾角判断.倾角判断公式为
教师设计教学情境,营造全真工作环境与模拟现场,学生通过角色扮演,设身处地,情景表演,完成角色扮演教学的全过程。例如,在“西餐礼仪” 教学过程中,设置场景让学生分别扮演接待人员和客人,让“服务员”为“客人”进行引领、点餐、更换餐具等一系列的服务,结束后双方谈感受、指不足,其他同学在观摩时进行学习借鉴。该方法直观、形象、深刻,将枯燥的讲述转变为生动的课堂游戏,能激发学生浓厚的兴趣,增强教学效果。
η=1时,表示处于跌倒前的失重阶段;η=0时,表示不处于跌倒前的失重阶段.
3.2.1 SVM分类器 跌倒和日常行为的分类是一个非线性的二分类问题,SVM在处理小样本、非线性和高维分类时表现突出,故本研究选用SVM分类器.给定训练样本D={(x1,y1),(x2,y2),…,(xm,ym)},xi∈Rn,yi∈{-1,+1},其中xi是样本向量,yi是对应样本的类别编号.设分类超平面为wTxi+b=0,b为位移项,是需要通过训练得到的参数.该超平面必须满足如下约束条件才能实现正确分类:
(1)
异类支持向量到超平面的距离r=2/‖w‖,为了使该距离间隔最大化,仅需最大化‖w‖-1,即等价于最小化‖w‖2.将(1)式写成
(2)
对(2)式引入拉格朗日乘子ai,再对wT和b求偏导数并置零.得到最优解后,求出w和b,即可得到SVM模型
(3)
3.2.2 基于SVM的阈值自动选取 特征阈值的选取直接关系到跌倒前检测的准确率.若算法设置的阈值过大,则会延长检测时间,不能为跌倒预防装置预留足够的触发时间;若算法设置的阈值过小,则可能将正常活动如下楼、蹲下等误判成跌倒.因此,笔者采用有监督的SVM训练来自动提取跌倒前的阈值,阈值可因训练样本群体的不同而有差异,具有广泛的适用性.
首先,对样本进行标记,设采集的n维样本为{x1,x2,…,xn},为每个样本序列添加属性值,将其标记为{xi,yi},其中yi=1表示跌倒行为,yi=-1表示正常行为;然后,将原始序列分为互不相交的2类,即训练样本集Ω1和测试样本集Ω2,Ω1和Ω2都包含跌倒样本ΩF和日常样本ΩO;最后,用SVM方法对训练样本集中的2类样本进行训练,获得失重阶段的合加速度和倾角的分类阈值,分别记为Ta和Tθ.具体阈值提取方法如下:
(1)设合加速度阈值Ta取Ω1中的ΩF,计算ΩF中各样本的合加速度,得到样本xi合加速度序列中的最小值A(xi),即A(xi)=min{a(t0,xi),a(t1,xi),…,a(tj,xi)},其中j为采样时刻.将ΩF中各样本的最小合加速度的集合记为A.设合加速度阈值Ta取Ω1中的ΩO,用同样的方法得到各样本的最小合加速度集合,记为B.因集合A和集合B是互不相交的ΩF和ΩO中提取的,故A和B相互间应是独立的.假设A和B是线性可分的,利用SVM方法可确定最优分类超平面.因A和B中的元素为合加速度值,是一维数据,故A和B特征空间的维数为1.由(3)式可知,最优分类超平面的形式实际上是一个点,即f(x)=b,于是通过计算可得阈值Ta=5.86 m/s2.
(2)设倾角阈值Tθ取Ω1中的ΩF,设样本xi的合加速度在tj时刻达到最小,计算t0时刻和tj时刻的倾角,这2个时刻的倾角差记为θxi.将ΩF中各样本t0时刻和tj时刻的倾角差的集合记为C.设倾角阈值Tθ取Ω1中的ΩO,用同样的方法得到ΩO中各样本t0时刻和tj时刻的倾角差的集合,记为D.集合C和集合D是相互独立的.假设C和D是线性可分的,利用SVM方法可确定其最优分类超平面应为一个点,即f(x)=b,于是通过计算可得阈值Tθ=8.36°.
因老年人很少跑步,故未采集跑步数据.在采集跌倒数据时,部分测试者因在失重阶段引入过多与跌倒无关的动作,或是该阶段持续时间过长,与正常跌倒存在较大差异,故剔除这些数据,最后得到跌倒行为271组,日常行为573组.
将采集的数据分为训练样本(共625组,包括日常行为420组和跌倒行为205组)和测试样本(共219组,包括日常行为153组和跌倒行为66组)2类,用训练样本对SVM进行训练,训练完成后用测试样本进行测试.
用自适应方法对跌倒行为进行检测,其中向后跌倒的加速度和倾角的变化如图4所示.
图4 向后跌倒的加速度和倾角的变化
从图4(a)可见,合加速度在2.2秒时开始变小,小于重力加速度.通过计算可得,合加速度在2.8秒时为5.81 m/s2.根据自适应方法,此时的合加速度小于阈值Ta,需进行倾角判断.由如图4(b)可计算获得2.8秒时的倾角为99.34°,将该值代入失重状态的倾角判断公式,判断为处于跌倒前的失重阶段,即在2.8秒时检测出跌倒即将发生.又从图4(a)可见,加速度在3.1秒左右达到最大,即撞击动作发生在3.1秒.综合以上分析可知,检测出跌倒即将发生比撞击发生提前了300 ms.而安全气囊的充气时间为60~240 ms[18-21],故利用自适应方法进行检测可以为气囊预留足够的充气时间.
日常行为和跌倒行为的具体检测结果见表1.
表1 日常行为和跌倒行为的检测结果
由表1可知,自适应方法对日常行为中行走、上下楼和坐下的检测的准确率为100%,而对从站立到蹲下和从站立到躺倒的检测存在一定的误差.这主要是因为,从站立到蹲下和躺倒这2种日常行为在加速度和倾角上的变化与跌倒有相似的特点,且测试者都为年轻人,身体的协调性和控制能力较强,完成动作较快,加上训练的数据量又较小,从而存在一定程度的误判.
作为对比,从正确检出率A、召回率F、特异度S和间隔时间T等方面,对自适应方法与文献[14,22-25]中的跌倒前检测方法的检测结果进行评价.正确检出率、召回率、特异度和间隔时间的计算公式分别为
其中:tp表示将跌倒行为检测为跌倒;fp表示误将非跌倒行为检测为跌倒;fn表示发生了跌倒但未检测出;tn表示没有发生跌倒且未检测出;Timpact表示实际的撞击时间;Tdetect表示检测出跌倒的时间.各检测方法的正确检出率、召回率、特异度和间隔时间见表2.
表2 各检测方法的正确检出率、召回率、特异度和间隔时间
由表2可知:采用人工阈值法进行跌倒前检测[14],虽然在正确检出率、召回率、特异度方面的表现良好,但间隔时间只有70 ms,且检测装置必须佩戴在人体重心位置,有一定的局限性;采用SVM方法进行跌倒前检测[22],在召回率、特异度和间隔时间方面的表现均不如自适应方法;采用多种分类器进行跌倒前检测[23-25],虽然间隔时间方面的表现优良,但需要将多个传感器固定在身体的特定位置,不如自适应方法的简单方便.
针对现有的跌倒前检测方法需要多个传感器且计算耗时较长的问题,笔者设计了一种自适应方法,该方法先用SVM离线训练并提取阈值,再用阈值法进行实时跌倒检测.实验结果显示:正确检出率、召回率、特异度分别为97.26%,97.0%,97.39%,说明可以在撞击前检测出跌倒即将发生;间隔时间为276 ms,可以满足跌倒防护装置如充气气囊的充气时间要求.自适应方法具有如下优点:可根据训练样本的不同获得不同的阈值,具有广泛的适用性;检测是在离线状态下进行的,不需考虑训练过程的计算耗时,极大地提高了实时性.