基于阈值分析法的人体跌倒检测系统*
2019-08-14李京慧迟宗涛李钟晓
李京慧, 迟宗涛, 李钟晓
(青岛大学 电子信息学院,山东 青岛 266071)
0 引 言
现今具有护理养生、康复理疗的智能设备越来越多,而老年人监护设备却相对较少,不能满足当今社会的需求。因此,跌倒检测报警系统的研究对降低老年人摔倒致残率意义重大[1]。目前跌倒检测的相关技术主要有两种:基于视频图像处理的检测技术精度高,但是受检测设备的限制,只能在范围有限的室内环境中应用,并且成本高,不易于大规模推广使用[2];基于传感器检测人体姿态的跌倒检测技术易于实现,便携性好,而且不受环境的限制,成本较低[3]。基于传感器的跌倒检测算法主要有机器学习法和阈值法两种,机器学习法的精度高,但算法复杂,成本昂贵,对硬件设备的要求也高。而阈值法计算量小,操作简便,易于理解,是现在常用的跌倒检测算法[4]。
由于人体跌倒的过程是瞬态的,本文设计的跌倒检测报警系统,根据跌倒过程中失重、撞击、静止三种状态下合加速度的变化及每个状态之间时间间隔的有限性,结合姿态角做出最终判断,大大提高了判断的准确率,该系统还使用全球定位系统(global positioning system,GPS)准确定位跌倒位置。测试结果表明,系统准确率高,能够作为智能穿戴产品应用于行动不便的人群中。
1 系统总体设计
1.1 系统硬件结构
跌倒检测系统由主控制器、三轴加速度模块、GPS模块、数据传输模块、液晶显示屏构成,系统结构如图1所示。
系统通过主控制器控制液晶屏显示系统工作状态,解析GPS模块数据计算当前地理位置,控制数据传输模块发送求助信息。通过三轴加速度模块读取加速度数据以检测身体姿态,当判断身体姿态为跌倒时,控制数据传输模块向特定的手机号码发送带有由GPS数据解析出来的地理位置的求救短信[5]。
图1 系统结构
系统主控制芯片使用基于Cortex—M3内核的高性能微控制器STM32F103ZET6。该芯片包含了高速存储器(512 kB的闪存和64 kB的SRAM),最大工作频率为72 MHz,适合在移动设备上使用。加速度传感器模块使用ADXL345三轴加速度传感器,最大量程可达±16gn,采用IIC通信方式,检测并输出人在不同运动状态下的三轴加速度,适合高性能便携式应用[6],ADXL345的外围电路如图2所示。GPS模块以UBLOX—NEO—6M芯片作为主芯片,性能稳定,抗干扰能力强。STM32通过接收GPS模块发送来的数据,根据数据的协议格式解析当前地理位置信息。数据传输模块使用的芯片是SIM900A,该模块接收由STM32发送的命令和数据,将数据进行处理后通过天线发送出去。
图2 ADXL345芯片电路连接
1.2 跌倒检测原理
人在正常站立和跌倒时的身体姿态是不同的,正常站立时,合加速度约等于重力加速度gn,人与地面的夹角为90°。当人体跌倒时,重心瞬间下移导致失去平衡,短时间内合加速度小于重力加速度,人与地面的夹角近似为0°[7]。对合加速度和姿态角进行阈值分析,可以判断人体是否跌倒。根据跌倒的方向不同分为:前跌倒、后跌倒、侧跌倒。为准确检测人体跌倒行为,以腰部为原点,建立人体坐标系,如图3所示,X轴是人体右手方向,Z轴垂直于人体向上,Y轴是人体前进方向,图中箭头方向表示人脸朝向。
图3 坐标示意
ax,ay,az分别表示采集到的3个轴的加速度,根据三个方向的加速度值,可以计算出3个姿态角[8]
式中θPitch为俯仰角,即人体绕X轴的旋转角度;θRoll为人左右倾斜的角度,即人体绕Y轴的旋转角度;θYaw为人左右旋转的角度,即人体绕Z轴的旋转角度。
根据采集到的三轴加速度ax,ay,az,计算出合加速度a
2 软件程序设计
2.1 跌倒检测算法
跌倒的大多数情况都是前后和侧向跌倒,这将导致θRoll和θPitch的值发生很大的变化,而θYaw的值没有明显变化[9]。日常生活中的弯腰、缓慢躺下、下蹲等动作也会导致姿态角发生很大变化,所以只通过姿态角的变化来判断是否跌倒是不准确的。因此,在判断过程中,引入人体合加速度的变化。人体合加速度在跌倒时会经历很大波动,总体上可以将波动过程总结为失重、撞击、静止3个阶段。因为跌倒是一个连贯的动作,所以各个阶段的时间间隔不会太长。比如说,失重中断发生1 min后才发生撞击中断,这明显不能作为判断摔倒的条件。为了减少此类误判提高检测摔倒的准确率,分析多次实验数据,为失重与撞击之间设置了时间间隔阈值0.5 s,为静止阶段持续时间设置阈值为2 s,为θPitch和θRoll设置倾斜角度阈值45°[10]。
ADXL345的3个中断与失重、撞击和静止这3个状态相对应,利用3个中断作为这3个状态发生的标志,算法分为以下几步:
1)失重中断检测:跌倒过程会出现失重的瞬间,根据采集的3个方向的加速度值计算合加速度a,若检测到a小于0.6gn并持续一定时间,则认为人体处于失重状态,失重中断置位,进入下一步检测;
2)撞击中断检测:人体与地面剧烈碰撞导致合加速度产生一个波峰,一般人体正常运动(包括激烈运动)的合加速度值均不超过2gn,而跌倒时的合加速度最大可达4gn[11],所以取合加速度大于2gn作为撞击发生的标志。若在失重中断置位后的0.5 s内检测到a值大于2gn,撞击中断置位,并采集100个采样点的加速度值,为姿态角阶段的检测提供数据,进入下一步检测;
3)静止中断检测:人体跌倒后,会静止一段时间,若检测到合加速度值为1gn并且持续超过2 s时,静止中断置位,进入下一步检测。若没有触发静止中断,则可能是由于人体跳跃后落地引起的失重和撞击,此时返回第一步;
4)姿态角检测:将第二步中采集的采样点根据式(1)计算出姿态角,比较θPitch或θRow之一有没有超过45°,若超过则进行跌倒报警,若没有则返回第一步。
2.2 GPS解析程序
STM32通过UART4连接GPS模块,读取GPS的定位信息。GPS输出数据使用的协议是NMEA—0183协议,该协议中的6个语句包含各种地理位置信息。只需要获取经度坐标、纬度坐标、经度半球、纬度半球和定位状态信息,而要获取这些信息只需要解析其中一个语句就足够了,本系统解析了GPRMC语。解析地理位置信息的过程为:1)判断UART4_RX_BUF中存储的是不是一帧完整的GPS数据,若是执行第2步,若不是重复第1步;2)判断UART4_RX_BUF接收到的数据有没有GPRMC语句,若有执行第3步,若没有返回第1步;3)判断GPRMC语句定位状态信息是否为有效定位,若是执行下一步,若不是返回第1步;4)解析GPRMC语句中其他信息并存储,返回到第一步。
3 实验验证与分析
通过两组测试来验证跌倒检测系统的可行性和准确度,第一组是正常行走和坐下实验,第二组是不同方向的跌倒测试,实验选取两男两女完成,每组测试100次。由于人体的重心位于腰部,腰部的变化能够更准确的反映人体姿态的改变,因此两组实验的数据均采集了实验者行走、坐下、跌倒时腰部的加速度。
第一组,实验人员以不同的速度分别进行100次的正常行走和快速坐下,实验过程中均没有报警。取其中一次数据绘制成图,图4(a)和(b)分别表示正常行走和快速坐下的曲线图。由图4(a)可知,正常行走实验中,合加速度维持在1gn左右,X,Y轴姿态角没有发生很大变化,在阈值范围内,故报警器未报警。由图4(b)可知,快速坐下实验中,三轴加速度及合加速度都在瞬间产生一个峰值,但合加速度未超过2gn,姿态角没有超过45°,均在阈值范围内,故报警器未报警。第二组实验,实验者进行了3个方向的跌倒测试,由于大部分检测方法中,向后跌倒检测的准确率最低[12],因此文中仅给出向后跌倒的曲线及分析。
图4 实验测试曲线
取其中一次实验数据绘制成图,由图4(c)看出,人体向后跌倒时,三个轴的加速度都会产生峰值,导致合加速度变化幅度增大;跌倒的失重阶段合加速度由1gn迅速下降至0gn左右,远小于设置的阈值0.6gn,触发失重中断,此时人体重心下移,失去平衡;在0.5 s内,合加速度增大至4.3gn左右,已经远超过设定的阈值2gn,触发撞击中断;静止阶段合加速度缓慢恢复到1gn左右,并持续时间超过2 s,触发静止中断;测试人员向正后方跌倒时,身体仅绕X轴旋转,所以θRoll和θYaw仅在0°附近波动,θPitch最终变为90°,远超过设定的阈值45°,报警器报警。
实验结果如表1所示,对所有跌倒情况进行统计,报警准确率为97 %。在300次的跌倒实验中,报警器只有9次没有报警,属于正常实验误差范围。实验结果表明,通过阈值分析法检测跌倒事件发生的准确率较高。
表1 实验结果
4 结束语
本文设计的人体跌倒检测报警系统采用加速度传感器和SIM900A模块实现数据的采集和传输;合加速度、姿态角和三个中断的完美结合,提高了检测跌倒的准确性;GPS定位系统能准确地定位跌倒者的位置信息;跌倒事件的短信报警提示增加了该系统的交互功能。实验结果表明,系统报警准确率为97 %,准确率高、性能稳定,能够作为智能穿戴产品应用于行动不方便的人群中。