TensorFlow平台上基于LSTM神经网络的多传感跌倒检测的方法与流程

文档序号:17788046发布日期:2019-05-31 19:42阅读:1476来源:国知局
TensorFlow平台上基于LSTM神经网络的多传感跌倒检测的方法与流程

本发明涉及计算机技术领域,尤其涉及一种tensorflow平台上基于lstm神经网络的多传感跌倒检测的方法。



背景技术:

随着人口老龄化时代的来临,空巢老人的数量也随之增长,随着老人年龄的增长,身体的肌肉力度,平衡感,反应能力都逐渐下降,这些都加大了跌倒行为发生的概率。而跌倒行为对老人生命财产伤害尤为严重,如何对可能出现的跌倒行为做出及时的预警,从而减少和避免其带来的伤害就显得非常重要。跌倒检测是一种基于物联网中传感器的人体姿态检测,阈值法是常用的跌倒检测算法,通过设置一个或者多个阈值,来对可穿戴设备传感器获取的加速度和角速度等信息进行分类,其主要的优点是较低时间与空间复杂度。但阈值多以通过实验或经验法确定阈值大小为主,阈值设置的大小直接影响到跌倒行为的识别,对不同个体又存在适用性差等问题。随着研究者对于跌倒算法的关注加深,他们开始研究将隐马尔可夫链、动态朴素贝叶斯网络、支持向量机、随机森林、bp神经网络和k最近邻,等基于模式识别方法应用到跌倒检测中,这些方法对传感器采集的数据进行抽象后建模用于跌倒行为的分类,具有较强的适应性。但只是使用了传感器获取单一的加速度或者某些特征用于检测,缺乏人体行为参数,存在精度不足等问题,且未区分使用价值很高的接近跌倒状态。

当前国内外研究主要包括:基于zigbee物联网技术老人摔倒检测系统,基于视觉的跌倒检测系统,和基于可穿戴设备的跌倒检测系统等类型。其中利用zigbee物联网的老人摔倒检测功能过于单一,使用条件有限制,视觉跌倒检测则涉及用户隐私和摄像头不能随身携带等问题,所以基于可穿戴设备的跌倒检测系统以其使用方便、成本低、个人隐私性较好的特点成为跌倒检测研究的热点。



技术实现要素:

本发明基于穿戴式的跌倒检测,将重力加速度与角加速度和足部压力结合起来,形成一个多特征融合的跌倒检测算法,并将特征值表示成时间序列的形式即包含多个传感器值的数据序列,此将位置传感器所采集的空间位置信息转为了一个数据序列。

利用长短时间记忆神经网络lstm能发现和抽象输入序列中各单元关联关系的优势,获取多个位置传感器之间关联关系的抽象,为提高跌倒检测的准确率和适应能力提供基础。最后使用目前流行的深度学习平台tensorflow实现跌倒检测模型并进行训练。利用仿生实验获得的传感器数据进行预处理之后进行实验来验证提出的检测模型,通过训练,该模型在测试集上判断准确率达到96.5%,高于其他预测模型。

本发明旨在至少解决现有技术中存在的技术问题。为此,本发明公开了一种tensorflow平台上基于lstm神经网络的多传感跌倒检测的方法,通过仿生实验获取实验者身体上传感器数据,通过数据预处理,得到跌倒行为与非跌倒日常行为两类数据,从所述数据中提取人体运动状态参量,通过tensorflow平台实现跌倒检测模型的构建,构建跌倒检测模型需要构建数据流图、训练模型及使用模型,其中,可以用常量、变量、以及操作来构建所述数据流图,所述变量包括输入变量、可训练的变量以及其他变量;在所述数据流图中加入输入变量需要用占位符placeholder占位,之后在训练模型和使用模型时用feed操作将所述人体运动状态参量从placeholder输入到训练模型和使用模型中,模型中主要训练参数包括输入层到隐藏层的权重和偏斜、lstm神经元中3个门的权重和偏斜、以及逻辑回归层的权重和偏斜,在训练阶段,调用训练相关的操作使这些模型参数随着训练数据得到训练;给出损失函数cost后,使用tensorflow提供的训练操作自动求cost关于每个参数的微分导数并用梯度下降法对模型进行训练。

更进一步地,所述一种tensorflow平台上基于lstm神经网络的多传感跌倒检测的方法,包括如下步骤:

步骤101:通过仿生实验获取实验者身体上传感器数据,通过数据预处理;

步骤102:通过tensorflow平台构建基于lstm神经网络训练的跌倒检测模型;

103:通过训练后的跌倒检测模型,对使用者的数据进行实时预测。

更进一步地,从所述数据中提取人体运动状态参量,进一步包括如下参数数据:人体特征参数,重力加速度,角加速度以及脚底压力,并所述参数数据合并到一个数据序列中。

更进一步地,所述参数数据包括:

在某个时刻t合加速度的计算公式:

在某个时刻t合角速度的计算公式:

加速度变化率sma计算公式:

合加速度变化率mads计算公式:

人体倾斜角定义为人体躯干(z轴正向)与竖直向上(垂直于水平面)方向之间的夹角,其计算公式:

更进一步地,所述lstm主要包括以下步骤:

步骤1:构建sigmoid层组成的遗忘门层,通过所述遗忘门层输入上一时刻隐藏层输出向量ht-1和当前输入xt以及隐藏层的状态ct-1,然后在隐藏的每个神经元状态输出0~1之间的数字,“1”表示保留,“0”表示遗忘;

步骤2:神经元细胞中保存遗忘层sigmoid层决定要更新的数据,及tanh层生成一个新的候选值,更新后的隐藏层状态ct被增加到神经元状态中;

步骤3:给旧的状态乘以一个遗忘门状态ft,增加it*ct为新的候选值;

步骤4:由sigmoid层决定需要输出神经元状态,然后让上述神经元状态经过tanh层(让输出值变成-1~1之间)并乘以sigmoid门限的输出。

更进一步地,lstm神经元中实现算法包括:

it=σ(wtxt+uiht-1+bi)

ft=σ(wfxt+ufht-1+bf)

ot=σ(woxt+uoht-1+bo)

ht=ot⊙tanh(ct)

其中xt代表时间t的输入向量,b表示偏置值,it表示输入门它决定当前时刻网络的输入有多少保留到单元状态,ft表示遗忘门它决定上一时刻神经单元状态有多少保留到当前神经单元状态,ot表示输出门它控制单元状态有多少输出到ht,用于描述当前输入的神经单元状态,ct表示当前时刻神经单元的状态,u和w表示权值矩阵,tanh表示一个双曲正切激活函数对输入数据处理使其映射到[-1,1]范围上,σ表示用在三中门上的sigmoid函数将输入映射到[0,1],ht表示t时刻神经单元信号的输出。

更进一步地,采用多传感器采集多个身体状态参数。

本发明使用的多个人体特征参数重力加速度,角加速度以及脚底压力,将其合并到一个数据序列中,不仅可以更加全面的识别跌倒行为,减少因为人体体态多变性而发生的误判,而且还能发现生成抽象序列中各不同层次单元之间的关联关系,为接近跌倒的行为时也能表现出很强的适应性,从而为做出预防措施提供基础。

附图说明

从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。

图1是本发明的单个rnn隐藏层单元示意图。

图2是本发明的lstm隐藏层示意图;

图3是本发明一个实施例所公开的lstm神经元中实现算法过程。

具体实施方式

实施例一

在本实施例中,跌倒检测运用神经网络作为模型,相较于传统模型的自学习,具有自学习功能、高速寻找最优解、联想存储功能。神经网络模型可以通过传感器获取大量数据进行训练,学习和挖掘数据内部的结构特点,提高分类系统的适应性和准确性。相对于卷积神经网络cnn在空间上通过滑动窗口来存储部分历史输入,循环神经网络rnn由于其隐藏层之间的相互联系的特点能在时间上保留先前的输入,通过抽象先前的输入之间的关联,具有较好的分类准确性。但是由于先前的输入在传递过程中会不断的被更新,其中的信息保存率非常的低。本发明使用的lstm在隐藏层加入状态克服了rnn的这种缺陷,解决了rnn中容易出现的梯度消亡问题。

单个rnn隐藏层单元如图1所示:u,v,w分别为输入到隐含层、隐含层到隐含层、隐含层到输出的权重,x为神经网络的输入,o为神经网络的输出,s为隐含层当前的时刻状态。在传统神经网络中,每一个网络层的参数是非共享的。而在rnn中,每输入一步,每一层都各自共享参数u,v,w。这反映出rnn中的每一步都在做相同的事情,只是输入不同,这样的训练方式大大降低了网络中需要学习的参数,在保证精度的前提下极大地缩短了训练时间。

但rnn存在这样一个问题:对于标准的rnn架构来说,在实践中可联系的“上下文”十分有限,较远时刻的“记忆”对于输出的影响要么衰减的很小,要么呈指数爆炸增长,这个问题通常被称为“梯度消亡问题”。而lstm则是一种用于解决梯度消亡现象的改进型rnn。

如lstm隐藏层示意图2所示:

lstm主要分为四步:

1.决定什么信息被神经元遗忘。这是一个被称为“遗忘门层”的sigmoid层组成的。它输入上一时刻隐藏层输出向量ht-1和当前输入xt以及隐藏层的状态ct-1,然后在隐藏的每个神经元状态输出0~1之间的数字,“1”表示保留“0”表示遗忘。

2.决定我们要在神经元细胞中保存什么信息,包括两个部分,一个是遗忘层sigmoid层决定要更新的数据,另一个是tanh层生成一个新的候选值,更新后的隐藏层状态ct它将被增加到神经元状态中。

3.给旧的状态乘以一个遗忘门状态ft,遗忘掉我们之的决定要遗忘的信息,然后我们增加it*ct这是新的候选值。

4.决定输出,这个输出建立在我们的神经元状态的基础上,但是有一个过滤器。首先让sigmoid层决定那部分的神经元状态需要输出,然后让神经元状态经过tanh层(让输出值变成-1~1之间)并乘以sigmoid门限的输出,输出我们想要输出的。

本发明使用的多个人体特征参数重力加速度,角加速度以及脚底压力,将其合并到一个数据序列中,不仅可以更加全面的识别跌倒行为,减少因为人体体态多变性而发生的误判,而且还能发现生成抽象序列中各不同层次单元之间的关联关系,为接近跌倒的行为时也能表现出很强的适应性,从而为做出预防措施提供基础。

实施例二

通过仿生实验获取实验者身体上传感器数据,通过数据预处理,得到跌倒行为与非跌倒日常行为两类数据。从数据中提取人体运动状态参量。

使用代表三个轴向加速度数据

单凭某个轴向的加速度数据是不足以准确判定人体姿态的,因此,引入smv(signalmagnitudevector)作为一个特征参数来对人体运动状态进行描述,该参数能够很好的反映人体运动的剧烈程度,也可以称其为信号向量模(svm),smv可分为smva和smvw。其中,smva代表的是空间三轴向加速度矢量和,有些文献也称为合加

速度,在某个时刻t合加速度的计算公式:

在某个时刻t合角速度的计算公式:

加速度变化率sma,表示加速度变化快慢,也反映出动作改变程度,计算公式:

合加速度变化率mads(meanabsolutevalueofdifferentsmva)是区分人体运动状态的重要参量,计算公式:

人体倾斜角定义为人体躯干(z轴正向)与竖直向上(垂直于水平面)方向

之间的夹角,其计算公式:

使用tensorflow平台实现跌倒检测模型需要构建数据流图、训练模型、使用模型这3个阶段。在tensorflow中,可以用常量、变量、以及操作来构建数据流图。变量包括输入变量、可训练的变量以及其他变量。在流图中加入输入变量需要用占位符placeholder占位,之后在训练和使用模型时用feed操作将数据从placeholder输入到模型中。模型中主要训练参数包括输入层到隐藏层的权重和偏斜、lstm神经元中3个门的权重和偏斜、以及逻辑回归层的权重和偏斜,在构建这些变量时需要设置trainable=true。在训练阶段,可以调用训练相关的操作使这些模型参数随着训练数据得到训练。给出损失函数cost后,使用tensorflow提供的训练操作可以自动求cost关于每个参数的微分导数并用梯度下降法对模型进行训练。

lstm神经元中实现算法过程如图3:

it=σ(wtxt+uiht-1+bi)

ft=σ(wfxt+ufht-1+bf)

ot=σ(woxt+uoht-1+bo)

ht=ot⊙tanh(ct)

本实施例中主要采用可穿戴设备,具有携带方便、不局限于室内、不受周边环境干扰的特点,采用多传感器融合通过多个身体状态参数可以更加全面的分析人体状态并判断是否跌倒降低漏判和误判概率。采用lstm神经网络可以适应多个行为特征,能够保存数据的历史信息,利用其发现和抽象序列内在关系的能力,充分发掘多传感器数据之间的内在联系,提高了跌倒检测的效果,并且对接近跌倒这一行为也可以识别。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1