APP下载

基于姿态融合的实时跌倒检测系统研究

2022-04-24徐甲栋陈强王洪杰

软件导刊 2022年4期
关键词:角速度姿态加速度

徐甲栋,陈强,王洪杰

(1.上海工程技术大学电子电气工程学院,上海 201620;2.国网临沂供电公司,山东临沂 276000)

0 引言

如今社会生活水平不断提高,但同时也面临着人口老龄化问题日益严重与监护资源不足的矛盾。目前与老年人监护相关的跌倒检测技术还不够完善,且老人意外跌倒的发生率较高,存在极大的人身安全问题。老人发生跌倒时,监护人若第一时间发现并进行救助,可有效降低跌倒造成的伤残和死亡率。因此,针对老年人群的跌倒检测成为目前的研究热点之一。

目前跌倒检测主要有3种方式:基于视频图像、基于环境信号与基于可穿戴式装置的跌倒检测。基于视频图像的检测方式是利用视频设备采集老人生活中的活动图像信息,通过提取图片或视频里的人体轮廓寻找姿态特征点,运用图像处理相关算法判别老人姿态,从而判断其是否发生跌倒;基于环境的检测方式通过收集老人跌倒在地面的声波信号,从声波信号中提取老人跌倒的特征,运用相关算法处理采集的信号,从而判别其是否跌倒;基于可穿戴式装置的检测方式是将一些传感器放置到人体上,采集相关的传感器数据信息,并利用采集的物理信息设计跌倒检测算法,从而判别老人是否发生跌倒。

相对于基于视频图像与基于环境信号的跌倒检测方法,基于可穿戴式装置的检测方法具有诸多优势,包括:①适用场景更广,可摆脱空间限制,在绝大多数环境中都可以使用,能够满足老人的外出需求;②隐私保护性较好,不会给老人造成心理压力;③成本低廉,易于普及;④不受周围不同环境的干扰;⑤不影响正常生活。综上考虑,本文研究基于可穿戴式装置的检测方式,结合阈值法与模式识别算法的优点设计一种基于姿态融合的联立判别跌倒检测算法,并引入云技术和微信小程序,提出一种更便捷、可行的跌倒检测系统。

1 系统设计

本文设计的跌倒检测系统主要由3部分构成:可穿戴式硬件设备、云服务器和监护端小程序“工程大智能看护助手”。可穿戴式硬件设备负责通过惯性传感器和定位模块采集人的运动信息与位置信息,并将识别结果及其他信息上传到云服务器;云服务器负责存储数据,同时负责与小程序进行数据交互;监护端小程序则负责显示被监护人的状态信息,在发生意外情况时,便于监护人与医护人员通过“工程大智能看护助手”微信小程序查看被监护人位置及状态,在第一时间实施救助。系统总体框架如图1所示(彩图扫OSID码可见,下同)。

Fig.1 Overall framework of fall detection system图1 跌倒检测系统总体框架

1.1 硬件设计

系统硬件设计如图2所示。外部电源负责供电,惯性传感器模块MPU6050内置3轴MEMS陀螺仪和三轴MEMS加速度计,负责采集人体的角速度和加速度等信息。采集到的是模拟信号,通过模数转换将模拟信号9转换成电信号,并根据MPU6050使用手册将电信号转换成对应的角速度和加速度数据信息。ATGM332D定位模块默认采用NMEA-0183协议,NMEA-0183协议可输出GNGGA、GNRMC、GNVTG、GNZDA、BDGSA、GPGGA等格式的数据。主处理器STM32F103选择GPGGA格式进行定位解析,处理完MPU6050模块采集的数据后,对数据进行存储,并基于姿态融合的联立判别跌倒检测算法判断是否发生跌倒行为,通过SIM900A数据传输模块将设备编号、状态与位置等信息上传到云服务器进行存储。

Fig.2 System hardware design图2 系统硬件设计

1.2 软件设计

通过SSH工具连接云服务器搭建环境。LNMP是在Linux系统下由Nginx服务器、MySQL数据库及PHP搭建的服务器架构,具有高效、免费、扩展性强等优点。LNMP搭建完成后,微信小程序不能直接操作数据库中的数据,需要借助接口文件完成数据请求与数据返回功能。将写好的PHP脚本文件部署到服务器并配置好MySQL数据库,之后微信小程序即能与服务器进行数据交互。微信小程序与服务器交互框图如图3所示。

Fig.3 Interaction diagram between WeChat applet and server图3 微信小程序与服务器交互框图

微信小程序作为监护端,相比传统APP更方便、快捷。本文设计的小程序名为工程大智能看护助手,可方便监护人实时查看老年人行为状态与实时地理位置。使用微信开发工具对小程序进行开发,需要实现的主要功能如下:

(1)注册与登录功能。注册手机号必须为11位,并规定密码不能少于4位,注册时需要对注册手机号位数与密码位数进行校验。登录时会匹配数据库账号密码是否正确,并显示登录成功或账号、密码错误等信息。

(2)设备绑定功能。用户可通过设备编码添加与删除设备,可绑定到指定被监护人对应的设备,便于查看。

(3)状态信息显示功能。添加设备信息后,通过查看状态信息可查看绑定设备对应的被监护人姓名、身体状况与地理位置信息。同时,在该页面可更新位置信息,重新获取最新的位置数据。

(4)地图显示功能。根据采集到的经纬度数据,借用百度地图显示被监护人与监护人的地理位置信息,以便更快速地找到跌倒的被监护人,并对其实施救助。

软件设计完成后,经过测试,各功能模块可正常使用,实用性强且使用便捷。

2 数据预处理

2.1 坐标系建立

建立合理的坐标系是分析人体姿态变化的前提。将可穿戴设备置于人体腰部,人体坐标系O-XYZ会随人体躯干的状态变化而变化。人直立静止时为初始状态,同样以人体腰部为原点O,人体左手方向为Z轴正方向,绕X轴顺时针旋转的是俯仰角

θ

;人体面前的方向为Y轴正方向,其垂直于X轴,绕Y轴顺时针旋转的是横滚角

θ

;人脚下的方向为Z轴正方向,绕Z轴顺时针旋转的是偏航角

θ

。三轴互相垂直,人体坐标系(即载体坐标系)会随人体的运动而变化,如图4所示。参考坐标系与人体坐标系初始状态相同。

Fig.4 Human body coordinatesystem图4 人体坐标系

(1)人向不同方向跌倒时,三轴加速度的变化不同,但三轴的加速度幅值与

acc

的变化相近。跌倒行为相比于步行、跑步等日常行为的变化更为剧烈,因此可将三轴加速度幅值与

acc

作为跌倒行为特征进行识别。加速度幅值与

acc

计算公式如式(1)所示。

其中,

acc

acc

acc

是三轴加速度计3个轴向的加速度值。(2)人体跌倒时,角速度变化也是一个重要的特征量。日常行为与跌倒行为的角速度具有明显不同,与加速度变化相似,跌倒方向不同也会产生不同的三轴角速度变化。由于不同方向跌倒行为的三轴合角速度

ω

变化也具有相似之处,因此取三轴合角速度

ω

作为特征量:

其中,

ω

ω

ω

是三轴陀螺仪3个轴向的角速度值。

2.2 互补滤波

MEMS陀螺仪具有良好的高频特性,但累计误差较大。MEMS加速度计与陀螺仪相反,加速度计具有良好的低频特性,没有累计误差,但动态特性较差。其特性对比如表1所示。

Table1 Characteristic comparison of MEM Saccelero meter and gyroscope表1 MEMS加速度计与陀螺仪特性对比

因此,可借助互补滤波充分应用两者的特性融合计算姿态角,从而提高姿态角的测量精度,同时又可增强系统稳定性。互补滤波器根据传感器的不同特性,滤掉了加速度计的高频信号与陀螺仪的低频信号。具体过程如下:

假设加速度计的输出为

a

=[

a

a

a

],陀螺仪的输出为

ω

=[

ω

ω

ω

],重力加速度为

g

=[0 0 1],姿态矩阵为

C

。将

g

由N系转换到B系当中,转换过程如式(6)所示。

进行归一化处理后求得误差e为:

通过误差e修正陀螺仪的误差

δ

对陀螺仪进行误差补偿:

ω

=

ω

+

δ

,然后采用一阶龙格库塔法更新四元数。

之后根据四元数、方向余弦矩阵与欧拉角的转换关系,将四元数转换成欧拉角:

为验证姿态数据融合滤波算法的有效性与可行性,设计一个仿真试验。将惯性装置穿戴在人体腰部,采集加速度传感器与陀螺仪的输出数据进行姿态角解算。具体实验流程如下:首先将采集装置打开,静止在初始位置并输出记录值;然后变速跑动40s再正常行走20s,输出记录值;最后回到初始位置,取下采集装置并静置,输出记录值。通过互补滤波融合处理不同阶段运动载体的姿态角,动态环境下欧拉角输出结果如图5所示。

对动态环境下俯仰角、横滚角与偏航角数据偏差进行对比分析,动态姿态角精度如表2所示。

Table2 Dynamic attitudeangle accuracy表2 动态姿态角精度

结果显示在动态精度中,偏航角误差相对较大,但本文研究不使用该姿态角,其余两姿态角误差都较为理想。从图5、表2可以看出,互补滤波可保证姿态角在动态环境下偏移较小,满足跌倒检测系统的误差范围,因此选择互补滤波算法作为姿态数据的融合滤波算法。

Fig.5 Euler angleoutput result under dynamic图5 动态下欧拉角输出结果

3 算法设计

通过查阅相关文献资料,相比于模式识别算法,阈值法的判别准确率不足,但其优点是计算量小且响应速度快。模式识别算法的识别率虽然高,但是计算量大,对大量日常行为数据的识别使其效率降低,占用内存资源多,且功耗也较大。基于上述考虑,本文结合两种算法的优点提出一种基于姿态融合的联立判别跌倒检测算法,先使用阈值法进行跌倒行为判别,在判别出可疑动作后,再通过模式识别算法进行最终判别。

3.1 阈值法

本文选择加速度幅值和

acc

、合角速度

ω

及姿态角度

θ

3个变量作为阈值法检测可疑跌倒行为的特征参数,下面将通过分析静止、行走、坐下、躺下、跑步、跌倒6种行为的数据变化,确定3个特征参数的阈值。每个动作行为取5s的数据进行分析,其中加速度幅值和、合角速度与姿态角度变化如图6所示。

Fig.6 Comparison of three characteristic variables of six behaviors图6 6种行为3个特征变量比较

通过大量实验对跌倒及日常活动数据的

acc

ω

θ

进行分析,结果表明,在一般情况下,日常活动中

acc

≤3

g

ω

≤3.4

rad

·

s

θ

≤50°。部分剧烈活动可能超过该值,但本文以此阈值作为可疑跌倒行为的判别依据。若阈值设置过大,会导致漏判概率增大,因此不以剧烈活动的峰值作为阈值。设定本文中检测跌倒的加速度幅值和阈值

acc

=3

g

,合角速度阈值

ω

=3.4

rad

·

s

,姿态角度阈值

θ

=50°。

3.2 支持向量机

人跌倒与非跌倒是二分类问题,支持向量机(SVM)是常用的解决二分类问题的模式识别算法。

这就是SVM分类器的基本模型。

若要进行正确分类,首先要选择并提取合适的特征参数,这是支持向量机算法的关键步骤,将直接影响识别效果。特征提取的常用方法有时域分析法与频域分析法,时域分析法的运算速度更快,对计算能力要求低,因此本文选择时域分析法进行特征提取。下面对各特征的特点进行分析:

(1)最大值与最小值。采集信号中的最大值与最小值是跌倒检测中非常重要的特征指标,在日常行为和跌倒行为中,该特征区别较大。

(2)最大值与最小值的差值。最大值与最小值的差值也是重要的特征指标,跌倒行为发生时,二者差值通常较大。

(3)均值。均值数据可反映整体数据的一般趋势。例如,对于实验采集信号中的加速度信号,加速度均值可反映某数据片段内整体加速度的一般趋势。

(4)方差。方差反映数据的变化幅度,即上下左右波动的剧烈程度,可反映一组数据的集中与离散程度以及波动与稳定状况。一般方差越小,说明数据越集中、稳定,反之则越离散。跌倒行为与日常行为的加速度、角速度、角度方差特征指标波动较大。

根据以上分析分别提取合加速度幅值和

acc

、合角速度

ω

与姿态角度

θ

的最大值、最小值,以及最大最小值的差值、均值与方差共15个特征参数。以加速度幅值和为例,差值、均值、方差计算公式如下,其余两特征计算方法相同。

本文选用LIBSVM工具对样本数据进行训练,建立分类模型,并使用测试集进行测试。

首先,将待训练样本数据集train.txt与待测试样本数据集test.txt按照LIBSVM要求的格式进行调整。数据格式如下:

[label][index1]:[value1][index2]:[value2]…

[label]是目标值,即分类类别。本文研究的是跌倒检测的二分类问题,设跌倒行为为label=+1,非跌倒行为为label=-1。[index]是特征编号,即特征的有序索引,取值为1~n的整数。[value]是待训练样本与测试样本的特征值。

按LIBSVM格式要求整理的部分训练样本数据如图7所示。其中,序号1-15代表15个特征参数,按顺序排列。

Fig.7 Part of training sampledata arranged according to LIBSVM format图7 按LIBSVM格式要求整理的部分训练样本数据

不同特征参数具有不同的量纲和单位,同时为避免不同特征值的范围差距过大,进行归一化处理,即对不同的特征参数值进行无量纲处理。对待训练的样本数据进行归一化处理后,将数据缩放到[-1,1]之间,然后选择核函数。RBF核函数对于大样本与小样本都有不错的效果,应用最广,因此本文选择RBF核函数训练模型。选择好RBF核函数后,通过交叉验证方法寻找一组最优惩罚因子

C

和核函数参数

γ

,得到结果如下:最优惩罚因子

C

=0.4,最优核函数参数

γ

=0.236。

采用svm-train命令行的方式获取分类模型,对归一化处理后的数据集svm_scale_train.txt进行训练,生成分类模型文件model.txt。部分分类模型文件内容如图8所示。

训练出分类模型后,根据准确率Accuracy的结果筛选出分类性能较好的分类模型,留下分类精确率大于95%的分类模型作为最终的跌倒检测模型。

Fig.8 Part of classification model filecontent图8 部分分类模型文件内容

3.3 联立判别跌倒检测算法

根据人摔倒的特征变化,设计多级阈值的跌倒检测判别流程:

Step1:判断加速度幅值与

acc

是否超过阈值。因为人摔倒时,加速度变化较为剧烈,且响应速度较快,所以最先判断加速度变化。Step2:若加速度幅值和超过阈值,则判断合角速度

ω

是否超过阈值。若合角速度超过阈值,则进行下一步判断。

Step3:若合加速度与合角速度都超过阈值,再判断姿态角度是否超过阈值,当3个阈值都超过阈值时,则判定为可疑跌倒行为。

人的日常活动占据了生活中的大部分时间,多级阈值法负责检测可疑的跌倒行为,主要是快速过滤掉较低强度的活动,输出可疑的跌倒数据。通过阈值法检测出可疑跌倒数据后,将启动SVM分类算法对该数据进行最终判定。该数据经过数据预处理提取特征向量后,再由3.2小节介绍的所获得分类性能较好的分类模型进行分类判定。若判定结果为跌倒,即判断该可疑跌倒动作为跌倒行为;若判定结果为未跌倒,即判断该可疑跌倒动作为非跌倒行为。联立判别跌倒检测算法流程如图9所示。

Fig.9 Flow chart of simultaneous discriminant fall detection algorithm图9 联立判别跌倒检测算法流程

4 实验结果与分析

本文选取10名男生和5名女生共15位志愿者模拟跌倒动作与日常行为动作,将采集装置放置于人体腰部,采集加速度、角速度等数据。每名志愿者分别采集步行、慢跑、弯腰、坐下、躺下、下楼梯、向前跌倒、向右跌倒、向左跌倒、向后跌倒共10种行为动作数据各20组,在采集数据过程中,志愿者尽量模拟无意识的行为动作,减小人为误差。

下面对基于姿态融合的联立判别跌倒检测算法的识别结果进行评估。对测试数据集进行验证,跌倒行为检测结果会出现以下表3所示4种情形。

Table 3 Four cases of fall detection表3 跌倒检测4种情形

根据4种可能发生的跌倒检测情形,主要有以下5个评估指标,分别是灵敏度S(Sensitivity)、漏报率M、特异度P(Specificity)、误报率F和准确率A(Accuracy)。其中,S表示发生跌倒行为时,正确检测到跌倒行为的比率;M表示发生跌倒行为时,未正确检测到跌倒行为的比率,即漏报比率;P表示未发生跌倒行为时,正确检测到人体正常行为的比率;F表示未发生跌倒行为时,将未跌倒行为错误判别为跌倒行为的比率;A表示正确判别出实验中全部未跌倒行为与跌倒行为的比率。

从采集的数据中选择向前跌倒、向后跌倒、向左跌倒、向右跌倒4种跌倒行为及步行、慢跑、坐下、躺下、下楼梯、弯腰6种日常行为数据对算法进行评估,针对每一种行为的实验样本数量为150个。实验结果分析如表4所示。

Table 4 Analysis of experimental results表4 实验结果分析

由表4的统计结果分析可知,本文提出的跌倒检测算法正确率达到90.1%,灵敏度达到91.2%,特异度达到89.4%,且漏报和误报率较低,分别只有8.8%和10.6%。对于步行这类强度不大的动作,该算法基本都能正确进行检测识别,而对于躺下这种与跌倒相似的行为动作,该算法的检测识别率也较高。通过实验分析验证了本文设计的联立判别跌倒检测算法具有较好性能,对跌倒行为的识别准确率较高。

5 结语

本文基于姿态融合数据提出一种联立判别跌倒检测算法,该算法相较于阈值法更为准确。由于能快速过滤大量日常行为数据,其相较于SVM算法更为高效。通过实验测试,该算法的正确率达到90.1%,灵敏度达到91.2%,特异度达到89.4%,且漏报和误报率较低。实验结果验证了本文算法的有效性与可行性,同时引入云技术与微信小程序设计一套用于老年人远程智能监护的跌倒检测系统。相较于传统的APP监护软件,该软件使用更为方便、快捷,满足了老年人智能监护的需求,在未来社会应对老龄化问题与提升社会养老能力方面可发挥一定作用。

猜你喜欢

角速度姿态加速度
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
攀爬的姿态
天际加速度
全新一代宋的新姿态
跑与走的姿态
创新,动能转换的“加速度”
半捷联雷达导引头视线角速度提取
基于构架点头角速度的轨道垂向长波不平顺在线检测
一种无角速度信息的挠性航天器姿态控制方法
阅读是最美的姿态