基于多维数据融合的老人跌倒风险预警系统

文档序号:30584123发布日期:2022-06-29 15:22阅读:231来源:国知局
基于多维数据融合的老人跌倒风险预警系统

1.本发明涉及图像处理方法技术领域,尤其涉及一种基于多维数据融合的老人跌倒风险预警系统。


背景技术:

2.随着世界老龄化现象逐渐加重,跌倒越来越受到重视。目前跌倒检测、跌倒风险评估以及跌倒预防已成为研究的重点。跌倒检测是通过智能设备检测到老人出现了跌倒的行为活动,从而进行相应的报警等措施,但跌倒的事件已经发生,对老人的身体、心理、经济已经造成了伤害。因此如何对老年人身体状态进行评估,预测跌倒风险变得尤为重要。通过对老人的身体、行走数据等进行相对应的量化评估,预测老人当前的跌倒风险,从而针对该风险的严重程度为老人制定后续相应有效的预防、康复等措施减少老人跌倒事件的发生,为后续跌倒预防的研究做铺垫,是应对老年人跌倒最为有效的手段。因此跌倒风险评估成为目前研究的重要课题。
3.目前跌倒风险评估中主要存在的问题有:(1)单一设备数据在真实环境中进行跌倒风险评估精度不高。目前针对跌倒风险评估的研究中主要基于步态与姿态分析等方式进行,而大型的高精度测量系统只能在大型实验室中使用;随着智能设备的发展,摄像机、可穿戴设备等可以更加方便的测量老人行走过程的特征。为了对数据进行更准确的采集,目前的研究通过引入更多设备来达到高精度的采集,但主要是同类设备数量的增加例如多视角的摄像机、各部位的可穿戴设备等,没有考虑对多种设备数据进行融合分析。(2)缺少对于真实环境下老人跌倒风险评估的研究。尽管智能设备逐渐便捷化,但目前这些设备的使用仍主要停留在实验室研究中。而实验室中采集的数据受限于环境与人工干预等因素与日常生活中的数据存在一定的偏差,不能完全真实地反映老人在日常生活中的行为特征,在真实环境中泛化能力较差。
4.通过分析可将目前跌倒风险评估中存在的问题概括为:由于在真实环境中会受到如遮挡等外界诸多因素的干扰,单一设备采集数据存在较大的误差;数量众多的智能设备在真实环境中会对老人的生活造成侵犯,缺少对老年人日常行为低侵入的多维数据融合的感知分析算法。


技术实现要素:

5.本发明所要解决的技术问题是如何提供一种受环境影响小,精度高,预警准确的的基于多维数据融合的老人跌倒风险预警系统。
6.为解决上述技术问题,本发明所采取的技术方案是:一种基于多维数据融合的老人跌倒风险预警系统,其特征在于包括:表现层、业务层、数据层和硬件设备层,
7.表现层包括第三方服务提供商用户和机构管理员用户,第三方服务提供商用户主要用于数据查看页面,服务提供商通过查看前端展示的数据了解老人的部分身体信息以及跌倒风险;机构管理员部分主要用于老人信息的管理以及数据展示的具体内容;
8.业务层包括基本信息数据管理模块、步态分析模块、姿态分析模块、摆臂均衡性检测模块和跌倒风险评估模块;
9.数据层包括用户信息数据、距离点云数据、深度图像数据、腕表传感器数据以及模型分析得到的结果数据,分别通过云存储以及mysql数据库进行存取操作;
10.硬件设备层主要包含本研究的硬件设备:激光雷达、深度镜头、智能腕表、树莓派和服务器。
11.采用上述技术方案所产生的有益效果在于:所述系统通过设计步态分析模块、姿态分析模块、摆臂均衡性检测模块以及多维数据融合模块的老人跌倒风险评估模型,通过所述老人跌倒风险评估模型进行评估,具有受环境影响小,精度高,预警准确等优点。此外,所述系统进行了白盒测试与黑盒测试,过系统的运行结果验证了多维数据融合的基于多维数据融合的老人跌倒风险预警系统及上述研究方法与理论的可行性。
附图说明
12.下面结合附图和具体实施方式对本发明作进一步详细的说明。
13.图1是本发明实施例所述系统的架构图;
14.图2是本发明实施例所述系统的功能模块图;
15.图3是本发明实施例所述系统中步态分析模块的时序图;
16.图4是本发明实施例中步态分析流程图;
17.图5是本发明实施例中环境地图绘制流程图;
18.图6是本发明实施例中随机森林决策示意图;
19.图7是本发明实施例中卡尔曼滤波跟踪结果图;
20.图8是本发明实施例中行走速度评估实验图;
21.图9是本发明实施例所述系统中姿态分析模块的时序图;
22.图10是本发明实施例中姿态分析流程图;
23.图11是本发明实施例中构建数据集流程图;
24.图12是本发明实施例中openpose网络结构图;
25.图13是本发明实施例中cnn模型网络结构图;
26.图14是本发明实施例中gru模型网络结构图;
27.图15是本发明实施例中老人居家的深度图像;
28.图16是本发明实施例中姿态检测结果图;
29.图17是本发明实施例中3d骨骼姿势图;
30.图18是本发明实施例中自适应视角旋转后3d骨骼姿势图;
31.图19是本发明实施例中摆臂均衡性检测模块的时序图;
32.图20是本发明实施例中行走自关联分析实验环境图;
33.图21是本发明实施例中平稳行走加速度y轴数据波形图;
34.图22是本发明实施例中存在其他行为的加速度y轴数据波形图;
35.图23是本发明实施例中行走自关联分析流程图;
36.图24是本发明实施例中跌倒风险评估模块的时序图;
37.图25是本发明实施例中gru模型网络结构图
38.图26是本发明实施例中dnn模型网络结构图;
39.图27是本发明实施例中系统应用场景图;
40.图28是本发明实施例中风险报告结果图
41.图29是本发明实施例中骨骼姿势结果图。
具体实施方式
42.下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
44.如图1所示,本发明实施例公开了一种基于多维数据融合的老人跌倒风险预警系统,所述系统主要分为表现层、业务层、数据层和硬件设备层。
45.1)系统的表现层主要分为第三方服务提供商门户和机构管理员门户,第三方用户部分主要包括数据查看页面,服务提供商通过查看前端展示的数据了解老人的部分身体信息以及跌倒风险;机构管理员部分主要包括老人信息的管理以及数据展示的具体内容。
46.2)系统的业务层主要包含用户层面、步态分析模型、姿态分析模型、摆臂均衡性检测模型、多维数据融合跌倒风险评估模型和数据展示层面。
47.3)系统的数据层主要包含用户信息数据、距离点云数据、深度图像数据、腕表传感器数据以及模型分析得到的结果数据,分别通过云存储以及mysql数据库进行存取操作。
48.4)系统的硬件设备层主要包含本研究的硬件设备:激光雷达、深度镜头、智能腕表、树莓派和服务器。
49.基于多维数据融合的老人跌倒风险预警系统的功能模块如图2所示,该系统包含5个模块:基本信息数据管理模块、步态分析模块、姿态分析模块、摆臂均衡性检测模块和跌倒风险评估模块,主要的执行者为机构管理员。
50.(1)基本信息数据管理模块包含:老人信息管理模块、用户信息管理模块和数据可视化管理模块,主要用于管理基本的信息和可供查看的数据。
51.(2)步态分析模块包含:点云数据步态分析模块、行走步态特征提取模块和行走区间定位模块,该模块主要用于获取激光雷达扫描的数据并对其建立步态分析模型,进行行走轨迹的跟踪,根据对轨迹的跟踪实现对行走特征的提取,以及获得行走区间用于后续其他数据的定位。
52.(3)姿态分析模块包含:深度图像数据姿态检测模块、骨骼姿态视角旋转模块和行走姿态特征提取模块,该模块主要获取深度摄像机拍摄的深度图像,通过步态分析的定位区间进行数据分割,之后使用训练好的姿势检测模型获取老人在行走过程中的骨骼姿势,对骨骼姿势进行视角的旋转,计算并提取后续用于融合分析的特征。
53.(4)摆臂均衡性检测模块包含:自动关联系数计算模块,主要用于获取智能腕表采集的传感器数据,并使用步态分析得到的定位区间进行数据定位分割,最后计算自动关联
系数。
54.(5)跌倒风险评估模块包含:融合特征风险预警模块,用于多维数据融合跌倒风险预警,该模块主要使用上述提取得到的特征进行融合,通过预警模型实现跌倒风险的预测评估。
55.步态分析模块:
56.步态分析模块是针对激光雷达采集的老人脚步点云数据进行分析处理,时序图如图3所示。机构管理员运行该模块,通过getdata从本地文件中读取点云数据,调用getmap构建环境地图,接着使用moving_extra提取点云中运动的点,调用clusters进行聚类得到动点集合,之后通过rf_recognition识别老人脚步,最后调用kalman_track跟踪脚步并计算步态特征返回用于后续跌倒风险评估模块。
57.通过步态分析模块获得步态特征的方法包括如下步骤:
58.对于采集到的激光雷达数据首先对其建立环境地图,利用环境地图提取动点,之后对这些动点进行聚类,提取点集合特征用于随机森林脚步识别模型,最后对检测到的脚步进行跟踪,获取行走的步态特征,整体流程如图4所示。
59.环境地图绘制:
60.环境地图描述当前周围静止不动的物体,对于每一帧新到来的点云数据能够将其中运动的点云分离出来。由于是居家环境,不同时间点的环境地图可能不一样,因此环境地图需要根据时间进行更新。使用帧差分法来绘制环境地图,当判断地图中不存在运动的物体时对地图进行更新。具体的算法流程如图5所示。
61.step 1:初始化环境地图,读入夜间无人数据构建初始环境地图;
62.step 2:读取后续n帧点云数据,通过帧差分法计算两帧之间对应角度的距离差的均值,判断当前环境是否存在运动的物体,若无运动物体则执行step 3,若存在运动物体则重复step2。
63.step 3:判断当前卡尔曼滤波算法中的行人跟踪轨道是否存在,若轨道存在说明当前环境中存在老人长时间静止不动的情形,重复step2,若轨道不存在则当前环境均为环境点,从而计算n帧数据均值更新环境地图。
64.基于聚类的点云特征提取:
65.通过将新扫描到的数据与环境地图进行对比,得到运动物体的点云数据。原始数据无法描述运动物体的特征,对分散杂乱的点进行聚类处理是进行后续处理的必要手段。本部分使用dbscan聚类算法来对这些点云数据进行聚类并提取可以描述对应物体的特征。距离计算公式如式(2-1)所示:
[0066][0067]
式中pk为新的雷达扫描周期内第k个新的扫描点的位置,k=1,2,...,n1;c
ij
为第i个点集合中第j个扫描点,i=1,2,...,n2;j=1,2,...,n3。
[0068]
step 1:读入动点集合p,遍历p中的未标记的点将其标记并添加到新的聚类集合c中,使用公式(2-1)计算其他未标记的点与p的距离,将距离小于ε的点计数,如果超过minpts则将这些点加入集合n,如果小于minpts不处理。
[0069]
step 2:遍历集合n中的点,计算得到其ε邻域内的其他点,大于minpts将其加入n,
重复该步骤直到集合n为空。
[0070]
step 3:对未标记的点重复上述step1与step2的操作,直到每个点不发生改变。
[0071]
在聚类得到点集合后,需要对其进行目标识别,结合脚步点云的形状,设计如下点云特征:
[0072]
定义2.1:点集合的大小pn。点集合内点的个数n。
[0073]
定义2.2:最大长度f
l
。将一个点簇最大长度近似为脚长,计算公式如式(2-2) 所示:
[0074]fl
=|p
f-pb|
ꢀꢀꢀ
(2-2)
[0075]
式中pf,pb为点集合p中在移动方向上具有最大距离的两个点。
[0076]
定义2.3:脚弧度fc。计算点集合p边缘的每个点弧度并取均值近似为脚弧度,计算公式如式(2-3)所示:
[0077][0078]
式中pi,p
i-1
为点集合p边缘相邻的两个点;pc为点集合p的质心;n为点集合p边缘点的个数。
[0079]
定义2.4:脚弧长度fa。两个相邻点之间的欧氏距离之和计算为脚弧长度,计算公式如式(2-4)所示:
[0080][0081]
式中pi,p
i-1
为点集合p边缘相邻的两个点;n为点集合p边缘点的个数。
[0082]
定义2.5:脚落地面积s
area
。估算点集合的面积,计算公式如式(2-5)所示:
[0083][0084]
式中i,j为点集合p中具有最大距离两个点的坐标x值;y为点集合p中点的坐标y值。
[0085]
基于随机森林的脚步识别:
[0086]
脚步识别主要是从运动的物体中区分出脚步,由于日常生活中非脚步的物体种类众多,无法对其所有进行训练,而随机森林在处理分类任务中特征选择具有随机性,抗干扰的能力较强,更适合于脚步识别。因此本技术使用随机森林模型来进行脚步的识别,将上述提取的点集合特征作为输入,具体的算法模型如图6所示:
[0087]
随机森林由多个决策树构成,使用基尼指数作为特征选择的准则,表示随机选中的样本被分错的概率,基尼指数越小分类也准确,以此为标准进行分类,最后通过多个决策树进行投票决定出最优的分类。基尼指数的计算公式如式 (2-6)所示:
[0088][0089]
式中k为类别数;pk为样本点属于第k类的概率。
[0090]
最后通过随机森林将点集合分类之后,得到脚步的点云集合完成脚步识别。
[0091]
基于卡尔曼滤波的脚步跟踪:
[0092]
卡尔曼滤波算法常用于目标跟踪领域,并且可以从受到误差影响的测量值中估算最优的状态,本技术选用的激光雷达存在一定的测量误差,且存在遮挡现象,而卡尔曼滤波算法可以通过其预测值在一定程度上处理遮挡问题。因此本技术通过使用卡尔曼滤波器对脚步进行跟踪,并恢复在跟踪过程中由于遮挡而丢失的脚步,实现对老人的脚步跟踪与步态特征的提取。
[0093]
卡尔曼滤波算法的状态预测方程如公式(2-7)和(2-8)所示:
[0094]
xk=akx
k-1
+bkuk+wkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-7)
[0095]
zk=hkxk+vkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-8)
[0096]
式中xk=(x
k y
k x

k y
′k)为第k帧的质心状态向量,xk,yk为位置分量,x
′k,y
′k为速度分量;zk=(x
k yk)为第k帧的系统测量值;ak为状态转移矩阵;bk为控制输入矩阵,将运动测量值映射到状态向量上;uk为第k帧的系统控制向量,包含加速度信息;wk为系统噪声,其协方差为q;hk为转换矩阵,将状态向量映射到测量向量的空间中;vk为观测噪声,其协方差为r。
[0097]
一般情况下,在室内相邻帧之间的行走可以近似为匀速直线运动,因此可以得到如公式(2-9)、(2-10)、(2-11)、(2-12)所示关系:
[0098]
xk=x
k-1
+x

k-1
×
δt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-9)
[0099]
yk=y
k-1
+y

k-1
×
δt
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-10)
[0100]
x
′k=x

k-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-11)
[0101]y′k=y

k-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2-12)
[0102]
式中δt为时间间隔;k表示当前为k时刻。
[0103]
将其转换为矩阵表示如公式(2-13)和(2-14)所示:
[0104][0105]
(x
k yk)
t
=(1 1 0 0)
×
(x
k y
k x

k y
′k)
t
+vkꢀꢀꢀꢀꢀꢀ
(2-14)
[0106]
通过公式(2-13)与公式(2-7)可以得出状态转移矩阵同时bk为零矩阵;通过公式(2-14)与公式(2-8)可以得出h=(1 1 0 0)。
[0107]
由于测量和预测均有误差,因此需要计算当前预测过程中存在的误差p,其计算公式如式(2-15)所示:
[0108]
p(k|k-1)=a
·
p(k-1|k-1)
·at
+q
ꢀꢀꢀꢀ
(2-15)
[0109]
式中p(k|k-1)为从x(k-1|k-1)预测x(k|k-1)的协方差;p(k-1|k-1)为k-1时刻的协方差。
[0110]
结合公式(2-7)得到的当前时刻系统的预测状态和观测状态z(k)计算出此时的最优估计,计算公式如式(2-16)所示:
[0111]
x(k|k)=x(k|k-1)+kg(k)(z(k)-h
·
x(k|k-1))
ꢀꢀꢀꢀꢀ
(2-16)
[0112]
式中kg(k)为k时刻的卡尔曼增益,其计算公式如(2-17)所示:
[0113][0114]
得到k时刻的最优估计值后,最后需要对当前时刻的协方差p(k|k)进行更新,计算公式如式(2-18)所示:
[0115]
p(k|k)=(i-kg(k)
·
h)

p(k|k-1)
ꢀꢀꢀꢀꢀ
(2-18)
[0116]
式中i为单位矩阵。
[0117]
卡尔曼滤波算法的具体流程如下所示:
[0118]
step 1:计算当前时刻k的预测值ck;
[0119]
step 2:判断当前时刻k的观测值是否存在,若存在则更新卡尔曼滤波,并将计算的最优估计加入跟踪脚步walkset集合中,重复step1;若不存在则进行 step3;
[0120]
step3:将观测值ck作为最优估计判断接下来n个时刻中是否存在观测值,若均不存在则停止当前卡尔曼滤波跟踪,表示行走结束;若存在则使用观测值与预测值进行卡尔曼滤波器的更新,并将之前保留的预测脚步加入到walkset集合中,重复step1。
[0121]
至此得到老人的行走轨迹结合步态分析中常用的指标,老人的步态特征设计如表2所示,其中包括老人行走过程中的左右脚的步长、左右脚的瞬时速度以及落地面积。
[0122]
表2步态特征说明
[0123][0124]
实验结果与分析
[0125]
激光雷达点云数据通过卡尔曼滤波跟踪的动态结果如图7所示,图中黑色点为点云数据,蓝色圆点为脚步的中心点,黑色线条表示为步长length,卡尔曼滤波器为两只脚分配两条独立的脚步跟踪轨道,根据对应的跟踪轨道计算这只脚的行走速度与行走步长。
[0126]
在临床试验中,习惯性步态速度(hgs)是可靠且有用的指标,hgs的测量容易进行,不需要医生或临床设备。因此为了验证该结果的准确性,本技术邀请了15位老年人参与了评估实验,在hgs测量中距离是影响步态速度测量准确性的指标,根据文献了解,超过4米的hgs在临床实验中具有可靠性。
[0127]
在实验中,要求参与者以正常速度走5.5米的路径并重复测试5次,如图8 所示,将2d激光雷达放置于道旁的地面上,当参与者行走时采集数据。同时使用秒表对行走进行计时,以计算真实的行走速度。
[0128]
由于步态分析中估计了每一步的行走速度,因此采用绝对误差范围、平均绝对误差和误差方差来评估系统,如表3示。所有类别内平均绝对误差为 0.06m/s,最高误差为0.11m/s,行走速度越慢,估计越准确,大多数老人的行走在生活中较慢,低于0.60m/s,相对于行走速度来说平均误差0.06m/s属于较小,因此可以证明步态分析的准确性。
[0129]
表3行走速度评估的平均绝对误差和误差方差
[0130][0131][0132]
上述步骤说明了基于步态分析的行走稳定性分析模型的具体算法实现,最后通过实验结果验证了假设的正确性,并通过行走速度评估实验验证了步态分析模型的准确性,步态分析确定的行走区间将用于后续姿态分析与摆臂均衡性分析的数据定位,提取的步态特征将在后续多维数据融合风险评估模型中与其他特征互补融合使用。
[0133]
姿态分析模块
[0134]
姿态分析模块是针对深度镜头采集的老人深度图像数据进行分析处理,时序图如图9所示。机构管理员运行该模块,通过getdata从本地文件读入图像,调用post_detect进
行姿态检测得到2d姿态数据,接着调用depth2_3d将姿态数据转换为3d姿态数据,使用draw_skeleton画出未旋转的骨骼图并返回,之后调用rotate_skeleton对骨骼姿势图进行旋转,再次使用draw_skeleton画出旋转后的骨骼图返回,最后通过calculate_features计算姿态特征返回用于后续跌倒风险评估模块。
[0135]
通过所述姿态分析模块提取姿态特征的方法如下:
[0136]
基于姿态分析的行走平衡性检测模型:
[0137]
本部分将对基于姿态分析的行走平衡性检测模型进行分析说明,首先对于采集到的图像数据进行姿态检测提取相应的骨骼姿势,然后对这些骨骼姿势进行视角的调整,使其数据更标准化,最后设计并计算描述身体平衡性的姿态特征,整体流程如图10所示。
[0138]
基于迁移学习的姿态检测模型:
[0139]
姿态检测用于提取深度图像中的骨骼信息,本部分将通过对openpose模型进行迁移学习训练用于深度图像的姿态检测模型。首先构建深度图像的数据集,其次通过该数据集进行模型的训练。
[0140]
(1)构建数据集
[0141]
实验初期深度图像与对齐的rgb图像同时通过深度摄像机采集,通过预先训练好的openpose模型对rgb图像进行骨骼姿势提取,将提取的骨骼姿势与相对应的深度图像组成姿势数据集,用于训练适用于深度图像的卷积神经网络(cnn),其构建过程如图11所示。
[0142]
(2)迁移学习
[0143]
本技术通过微调的方式对openpose模型进行基于参数的迁移学习,使用预训练好的网络参数来初始化,其网络结构如图12所示。
[0144]
网络的前半部分是特征提取层,通过多层的卷积与池化操作对输入的图像进行特征提取,由于深度图像与彩色图像近似,因此在该部分通过使用 openpose预训练好的参数进行初始化;网络的后半部分分为两个子网络,分别进行卷积与池化操作来得到关节点的位置信息与关节点之间关联信息,同时每个阶段的输入都通过前一个阶段的结果和原始图像特征融合得到,用以产生更精确的预测结果。网络的训练过程如下:
[0145]
step 1:深度图像预处理。深度图像格式为16位单通道图像,首先将深度图像从unit_16转为unit_8数据格式,之后对单通道数据使用opencv库中 applycolormap函数转为3通道的伪彩色图片。
[0146]
step2:构建网络结构与迁移学习。模型通过多层卷积神经网络(cnn)以及池化层对图像数据进行特征提取,使用预训练好的特征提取层的参数对其进行初始化;
[0147]
step3:训练模型。使用上述构建的数据集进行模型的训练,得到关节点位置信息以及关节点之间的关联关系;
[0148]
step4:连接骨骼。通过上述关节点间的关联关系将骨骼进行连接,输出最终的骨骼信息。
[0149]
基于自适应视角转换的骨骼姿势旋转:
[0150]
通过借鉴图像领域中的矫正算法,将3d骨骼姿势填充为伪图像利用卷积神经网络(cnn)在空间领域中进行旋转参数的学习;同时将多帧骨骼数据使用门控循环单元(gru)在时间领域中学习参数,最终将两个模型的输出进行融合得到旋转之后的骨骼姿势。
[0151]
cnn模型的网络结构如图13所示,其具体流程如下:
[0152]
step1:数据预处理。姿态检测中得到的骨骼姿势包含25个点,每个点由一个3维坐标组成,分别为其在图像中的位置与深度。考虑到同一行为的持续时间与深度摄像机的图像采集频率,将每张图像拼接的帧数设定为30帧,即取同一行为的30帧骨骼姿势数据将其堆叠为大小30*25*3的矩阵,若不足30帧则以0填充。
[0153]
step2:构建网络。由2层卷积层、1层池化层与1层全连接层组成。卷积层对输入的伪图像数据进行卷积操作,每层卷积层后包含一层batchnormalization(bn)层进行归一化,激活函数为relu()函数,最后一层为全连接层输出3维的旋转参数,使用该旋转参数对原始输入数据进行旋转变换,得到旋转后的骨骼姿势,旋转计算公式如式(3-1)所示。
[0154]
p
′i=r
z,γry,βrx,α
piꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3-1)
[0155]
式中pi为第i个骨骼关节点的坐标pi=(xi,yi,zi);pi′
为第i个骨骼关节点的转换后的坐标;r
z,γ
,r
y,β
,r
x,α
为转换矩阵,其计算公式如式(3-2)、(3-3)、(3-4)所示。
[0156][0157][0158][0159]
式中α,β,γ分别为绕x,y,z轴旋转的角度。
[0160]
step3:训练网络。通过计算旋转后的骨骼姿势数据与正视角度的姿势数据均方误差作为网络的损失,优化函数选用adam函数,训练迭代次数为50次,保存在验证集中结果最好的模型。
[0161]
gru模型的网络结构如图14所示,其具体流程如下:
[0162]
step1:数据预处理。将旋转后的每一帧的骨骼数据转换为1*75的向量。取30帧作为时间序列的长度,不足30帧以0填充,得到大小为30*75的矩阵作为网络的输入。
[0163]
step2:构建网络。由2层gru与1层全连接层组成,gru的隐藏层特征维度设置为100,gru层得到每个时间点输出,通过全连接层最终输出遮挡还原后的骨骼姿势。
[0164]
step3:训练网络。训练过程与cnn模型的训练一致。
[0165]
姿态检测得到的骨骼姿势通过cnn模型得到旋转参数并进行空间维度的旋转,之后使用gru模型将旋转后的姿势通过上下文关系进行遮挡还原,得到最终的视角转换与遮挡还原的骨骼姿势。
[0166]
行走姿态特征:
[0167]
得到视角较为合适的骨骼姿势后,本部分对老人在行走过程中的姿态特征设计如下所示:
[0168]
定义3.1:躯干角a
trunk
。定义为躯干与水平面之间的角度,计算公式如式 (3-5)所示:
[0169][0170]
式中为水平面的法线变量p
neck
为脖子的3d坐标;p
mid.hip
为中臀的3d坐标。
[0171]
定义3.2:前屈角a
bend
。定义为身体前屈的角度,计算公式如式(3-6)所示:
[0172][0173]
式中p
nose
为鼻子的3d坐标。
[0174]
定义3.3:臀部角a
α.hip
。定义为脖子、左右臀与左右膝盖的角度,计算公式如式(3-7)所示:
[0175][0176]
式中p
α.hip
为左右臀部的3d坐标,α∈{left,right};p
α.knee
为左右膝盖的3d坐标。
[0177]
定义3.4:肩部角a
α.shoulder
。定义为脖子、左右肩部与左右手肘的角度,计算公式如式(3-8)所示:
[0178][0179]
式中p
α.shoulder
为左右肩部的3d坐标;p
α.elbow
为左右手肘的3d坐标。
[0180]
定义3.5:膝盖角a
α.knee
。定义为左右臀部、左右膝盖与左右脚踝的角度,计算公式如式(3-9)所示:
[0181][0182]
式中p
α.ankle
为左右脚踝的3d坐标。
[0183]
定义3.6:肩宽d
shoulder
。定义为左右两肩的距离,用来表示个人体态的差异,计算公式如式(3-10)所示:
[0184]dshoulder
=|p
left.shoulder-p
right.shoulder
|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3-10)
[0185]
式中p
left.shoulder
为左肩的3d坐标;p
right.elbow
为右肩的3d坐标。
[0186]
实验结果与分析:
[0187]
基于迁移学习的姿态检测模型的实验结果如图15、图16所示,图15为采集的居家老人的深度图像,图16为姿态检测后的结果图。
[0188]
骨骼姿势自适应视角转换模型使用上述姿势检测的结果进行视角的转换,首先将其转换为3d坐标,结果如图17所示,其中左臂由于被遮挡导致检测丢失;经过视角转换模型后结果如图18所示,对于被遮挡丢失的关节点进行了预测还原。
[0189]
本部分分析了采用迁移学习的原因,并详细说明了迁移学习的过程与实现;之后将骨骼姿势进行视角的转换,使数据更标准化;最后将转换后的姿势数据进行对应的特征提取与前面得出的步态特征以互补的形式在后续多维数据融合风险预测模型中使用。
[0190]
摆臂均衡性检测模块
[0191]
摆臂均衡性检测模块是针对智能腕表采集的老人手臂加速度与陀螺仪数据进行分析处理,时序图如图19所示。机构管理员运行该模块,通过getdata从本地文件读入数据,调用butterfiler对原始数据进行滤波,接着通过smv_filter 计算加速度与陀螺仪数据的smv值,之后使用find_peaks进行波峰检测,最后调用calculate_self_correlation计算每个波峰的自关联系数返回用于跌倒风险评估模块。
[0192]
通过摆臂均衡性检测模块获得自关联系数的方法如下:
[0193]
摆臂均衡性检测的问题描述与分析
[0194]
惯性传感器由于其设备简单、成本较低等因素常见于跌倒检测、步态分析等领域,尤其是可穿戴式传感器通过选定位置穿戴能够直接捕捉人体各部位在每一瞬间的信息,其数据主要由加速度与陀螺仪组成,并且不会受到遮挡的影响。
[0195]
惯性传感器通常采集频率较高,对突发行为的敏感性高,因此可以捕捉在正常的规律性行为中发生的异常,但由于日常生活中与实验室环境不同,老人琐碎的行为动作存在大量的干扰噪声,将会导致较多的冗余数据与错误数据,需要结合更多的设备共同分析。
[0196]
针对上述问题描述,本部分将采用对老人生活侵入性较低的智能腕表进行数据的采集,并且其不会受到遮挡的影响,在一定程度上弥补了激光雷达与深度镜头的缺陷。因此本章将针对传感器数据进行行走区间的定位并对行走过程中摆臂均衡性进行检测,提取描述老人摆臂均衡的特征。
[0197]
问题分析
[0198]
(1)硬件设备与数据采集方法
[0199]
本文选用的智能腕表为huawei watch2,如图20所示,可采集加速度与陀螺仪数据,佩戴于老人的手臂上,三维加速度轴和陀螺仪频率设置为50hz。为了保证手表电池的使用时长将手表数据上传进行了限制,当其处于充电情况下并且连接网络时进行数据上传,无法进行上传时数据可在本地保存14天。
[0200]
(2)摆臂均衡性检测
[0201]
老人跌倒多数发生于行走过程中,而行走需要身体各个部位的协调配合,在行走中手臂通常会随着脚步的移动而摆动,步态分析针对与行走直接关联的脚步信息,姿势检测集中于身体整体平衡性信息,对上肢的描述较少,佩戴于手臂的腕表可以填充这一空白。在正常的行走活动中,传感器数据一般保持一定的规律性,但遇到其他的行为动作便会打破这种规律性,其中可能包含一些引发跌倒的行为,需要捕捉这些不均衡的行为,因此本文提出自关联系数的概念,用来描述传感器数据的表示的摆臂均衡性。
[0202]
基于上述问题描述与分析,下面将对基于行走自关联分析的摆臂均衡性检测算法进行研究与分析。
[0203]
加速度和陀螺仪的原始数据所能描述的信息无法直接解读,通过对原始数据进行分析,发现正常规律性的行为其数据表现存在一定的规律性,当过程中出现异于当前的行为出现时,其数据会产生波动。而这些异常行为可能是在行走过程中表现出来的引发跌倒的因素。因此需要对原始的数据进行分析,提取其行走时手臂表现出的均衡性与关联性,从而描述当前行为是否出现异常。
[0204]
如图21所示为实验环境下测得的一段时间内平稳行走的数据,以加速度y 轴数据
为例,从图中可以得出平稳行走时其波峰或波谷具有一定的相似性与均衡性。异常行为的出现会使得这一均衡性被打破,如图22所示,图中存在一些不规律的波峰或波谷。因此本文提出一个自关联系数的概念,该系数可以描述当前波峰对应的行为与之前一段时间内的数据之间的关联性,从而捕捉这一段时间内出现的摆臂不均衡的特征。
[0205]
基于行走自关联分析的摆臂均衡性检测模型
[0206]
自关联系数计算当前波峰与前一时间段内数据之间的相似性,用该数据表示老人行走过程中手臂摆动的均衡性,若相似度低,说明此时手臂动作出现异常,反之属于正常行为,其计算的具体流程图如下图23所示:
[0207]
step1:读入数据,加速度与陀螺仪数据均为三轴数据,计算其smv(signalmagnitudevector),smv的计算公式如式(4-1)所示:
[0208][0209]
式中a
x
,ay,az为加速度或陀螺仪x,y,z三轴的数据。
[0210]
step2:通过peakutils峰值检测程序找到波峰的位置;
[0211]
step3:从当前波峰索引时刻向前搜索[tmin,tmax]区间,计算当前波峰i的自关联系数r(i),计算公式如式(4-2)、(4-3)所示:
[0212][0213][0214]
式中r(i,τ)表示当前波峰索引i在τ时间内的自关联系数;tmin,tmax为计算自关联系数区间的范围;a(i-k)为i-k时刻的smv的值;μ(τ,i)为从τ时刻到i时刻的smv均值;δ(τ,i)为从τ时刻到i时刻的smv标准差。
[0215]
跌倒风险评估模块
[0216]
跌倒风险评估模块是对上述步态特征、姿态特征与自关联系数的融合计算分析,时序图如图24所示。机构管理员运行该模块,通过getdata获取上述模块计算得到的特征,接着调用max_min_norm对这些特征进行归一化操作,之后使用risk_model将特征进行融合并计算出跌倒风险分布,最后通过softmax返回跌倒风险的概率。
[0217]
多维数据特征融合的方法如下:
[0218]
将步态特征、姿态特征以及自关联系数分别输入到不同的gru模型中,并通过注意力的计算。具体的网络结构如图25所示。
[0219]
数据预处理:读入步态特征、姿态特征和自关联系数3组数据,分别对其进行归一化处理,计算公式如式(1-1)所示,接着将数据集进行切割处理分为训练集、验证集和测试集;
[0220][0221]
式中x
min
,x
max
分别为变量x所在维度的最大值和最小值;
[0222]
构建gru模型与注意力机制:将3组数据分别输入3个不同的gru网络,每个gru模型包括两层双向bigru,其输入层大小分别为6,24,2,输出层大小为50;
[0223]
注意力计算:将3个gru网络的每个时间点输出进行计算,计算公式如式(1-2)、(1-3)、(1-4)所示:
[0224]
u=v
·
tanh(w
·
h)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-2)
[0225]
att=softmax(u)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-3)
[0226]
out=∑(att

h)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-4)
[0227]
式中:h为gru网络每个时间点的输出;
[0228]
w,v为注意力层的参数;
[0229]
att为计算得到的注意力的概率分布;
[0230]
out为注意力层的输出结果。
[0231]
将3组数据输出的最后一层进行拼接操作,作为后续dnn网络的输入向量。
[0232]
所述使用dnn模型对gru模型提取并拼接的特征进行分类,输出老人跌倒风险的概率,具体网络结构如图26所示,其中通过引入batch normalization(bn)层对每一个全连接层的数据进行概率分布的重新归一化,提升训练速度与收敛速度,具体包括如下步骤:
[0233]
构建dnn模型:包括3层隐藏层和1层输出层;隐藏层包括全连接层,其输入分别为150,128,64,之后为bn层对数据进行批量归一化处理,接着激活函数均使用relu()函数,输出层为全连接层输入大小为32,输出为2;
[0234]
训练网络:通过构建的训练集进行训练,损失函数使用交叉熵损失函数,优化函数选用adam函数,迭代训练次数为50次,保存在验证集中结果最好的模型。
[0235]
使用训练好的模型进行风险评估:将3组数据输入到训练好的模型中,将模型的输出进行softmax()函数变换,输出当前输入对应的跌倒风险的概率,实现对跌倒风险的评估。
[0236]
系统实现
[0237]
基于多维数据融合的基于多维数据融合的老人跌倒风险预警系统由养老机构或社区机构进行维护,使用对象主要为第三方服务提供商用户。通过基于多维数据融合的老人跌倒风险预警系统查看并获取老人的身体数据与跌倒风险,从而对其后续服务制定提供数据导向。
[0238]
系统应用场景
[0239]
通过在老人居家环境中进行设备的布置,采集老人日常生活中的数据,应用场景如图27所示。其中激光雷达放置于墙角地面,尽量降低对老人生活的干扰;深度镜头安装于柜顶;智能腕表佩戴于老人的左手手臂上。
[0240]
数据分析模块
[0241]
机构管理员登录系统后,可对原始数据进行分析操作,通过系统后台运行分析后可以查看老人行走时的数据:步态特征、摆臂均衡性特征以及选定时刻的姿态图,并且通过运行风险计算可将当日的所有数据输入跌倒风险评估模型,得到跌倒风险的概率值,生成老人当日的风险报告,如图28所示。
[0242]
选定坐标图中的点,可查看当前时刻对应的骨骼旋转图,结果如图29所示,左图为未旋转的3d骨骼姿势图,右图为旋转后的3d骨骼姿势图。
[0243]
基于多维数据融合的老人跌倒风险预警系统测试
[0244]
本部分对多维数据融合的基于多维数据融合的老人跌倒风险预警系统进行测试,
分别完成单元测试和系统测试。
[0245]
单元测试
[0246]
单元测试采用白盒测试的方式进行,对每个模块进行测试,验证系统代码的逻辑正确性。其具体步骤如下:
[0247]
step 1:本文系统采用springboot框架实现,导入springboot单元测试包,创建测试入口程序。
[0248]
step 2:创建service单元测试类,通过注解配置测试环境
[0249]
step 3:编写测试用例进行测试,验证测试结果是否正确。
[0250]
以用户查看老人分析数据模块为例对其service层进行单元测试,测试结果如表4所示。
[0251]
表4数据分析service类测试用例表
[0252][0253]
通过单元测试结果得出,dataanalysis模块的测试结果与预期结果相同,其逻辑正确。使用相同的方法对系统的其他模块进行对应的单元测试,其结果证明了多维数据融合的基于多维数据融合的老人跌倒风险预警系统可用性。
[0254]
黑盒测试
[0255]
系统采用黑盒测试的方法对多维数据融合的基于多维数据融合的老人跌倒风险预警系统的各个功能进行测试,以用户登录查看老人数据信息功能为例进行测试,测试结果如表5所示。
[0256]
表5数据分析功能测试用例表
[0257][0258]
表5的结果表明,用户登录查看老人数据信息模块的测试结果正确,验证了其功能的正确性。对系统的其他功能模块采用相同的方式进行测试,结果表明系统的各功能模块均符合预期结果。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1