[0001]
本发明属于跌倒检测算法技术领域,具体为一种基于双流网络的跌倒检测算法。
背景技术:[0002]
根据世界卫生组织报道的数据公布,每年有大约三分之一的70岁以上老人发生跌倒,其中75岁以上老人发生跌倒的概率更是高达42%。根据中国卫生部发布的《老年人跌倒干预指南》中明确指出,发生跌倒行为是我们70岁以上人群意外死亡的主要原因。由于计划生育的原因,现在大多数年轻人为独生子女,所以独居老人发生跌倒意外死亡的概率更高,而随着中国人口老龄化,老人的人数越来越多,继而老年人的医疗健康问题引起了广泛的关注。
[0003]
基于计算机视觉,一些研究人员通过从视频中提取特征的方法来判断视屏中的人是否发生跌倒动作,并与日常的行为进行区分。2014年gasparrin等提出了一种基于室内行为的隐私保护的跌倒行为的检测方法,该方法是通过kinect提供的深度数据作为特征输入,然后通过跟踪算法来判断动作。2016年wang等提出通过pcant模型,从rgb图像中提取每一帧的特征并预测标签,然后通过标签之间的权重相加来预测跌倒动作是否发生,同年wang k等提出了一种跌倒检测方法,通过融合梯度直方图与局部二值来提取特征,最后通过svm分类器进行分类。在2017年,buch,s等通过对长视屏中的特征提取目标区域,然后再通过滑动窗口法所取得特征作为分类器的输入以此来识别特定动作,但是以上方法在检测数据时,计算结果并不够精确,且动作捕捉的基本样本较少。因此需要对跌倒检测算法以改进,同时提出一种基于双流网络的跌倒检测算法,便于更好的解决上述提出的问题。
技术实现要素:[0004]
本发明的目的在于:为了解决上述提出的问题,提供一种基于双流网络的跌倒检测算法。
[0005]
本发明采用的技术方案如下:
[0006]
一种基于双流网络的跌倒检测算法,所述基于双流网络的跌倒检测算法包括数据集、数据预处理模块、特征提取模块、数据传输模块、长短时记忆网络、双流网络模块,所述数据集的输出端与数据预处理模块的的输入端连接,所述数据预处理模块的输出端与特征提取模块的输入端连接,所述特征提取模块的输出端与双流网络模块的输入端连接,所述双流网络模块的输出端与数据传输模块的输入端连接。
[0007]
在一优选的实施方式中,所述数据集是通过4个kinect摄像头模拟室内监控视角,然后再3个人类生活场景中(正常行走,坐,趟)模拟跌倒的行为,所述数据集一共有40位实验者,男女各20名,年龄在18-30周岁之间,一共设计了20种动作,几乎囊括了生活会发生的动作以及意外跌倒情况,每个动作每名实验者进行3次模拟行为,并通过4个kinect摄像头模拟监控视角进行记录,最终一共有9600段行为视屏片段,总计8小时。
[0008]
在一优选的实施方式中,所述数据预处理模块主要负责对数据集中的数据进行分
类,由于动作的持续时间比较短,跌倒的动作是少于非跌倒动作的,所以存在数据不平衡的问题,作为少量样本的跌倒数据显然更为重要,如果直接使用未经处理的跌倒样本数据集进行训练,分类器会因为是少量样本而做出直接忽略的选择,从而并不能正确的检测出跌倒动作。
[0009]
在一优选的实施方式中,所述实验数据不平衡有两类方法可以,其中第一类是通过算法与损失函数来进行平衡样本,如kaiming he等通过focal loss来解决样本不平衡的问题,第二类就是在数据集层面上来解决样本不平衡的问题,即方法是通过在训练的过程中的增强样本数量,使得正负样本趋向平衡,我们采用的是第二类方法来解决自制跌倒数据集样本不平衡的问题,即通过增加训练集中的跌倒样本,同时训练集不会做这种处理,是为了保持模型测试的可靠性。
[0010]
在一优选的实施方式中,所述双流网络模块为两条2d卷积并行的神经网络结构,使得基于深度学习的视屏动作学习算法所取得的效果超过了以稠密轨迹特征为代表的的传统算法,双流网络卷积是依靠两条相同的卷积通路,这两条卷积网络相互独立,分别输入单帧的rgb图片和堆叠的光流图片,通过两条网络对空间信息与时序信息进行训练,然后再将两者进行融合最后用softmax进行分类。
[0011]
在一优选的实施方式中,所述长短时记忆网络又叫做lstm,是一种更为特殊的rnn网络,该网络被设计出来就是为了解决长时间以来的问题,lstm由三个门来控制动作状态,这三个门分别称为忘记门、输入门和输出门,lstm的第一步就是决定动作状态需要丢弃哪些信息,这部分操作是通过一个称为忘记门的sigmoid单元来处理的,下一步是决定给动作状态添加哪些新的信息,通过过一个称为输入门的操作来决定更新哪些信息,这些信息可能会被更新到动作信息中,最后是输出门,该门的主要功能就是确定单元的输出值。
[0012]
在一优选的实施方式中,所述神经网络仅需要预测p(y=1|x),为了使这个数是一个有效的概率,它必须处在区间[0,1]中,假设使用线性单元,并通过阈值来限制它成为一个有效的概率:
[0013]
p(y=1|x)=max{0,min{1,wh+b}},
[0014]
当wh+b处于单位区间外时,模型的输出对其参数的梯度都是0,故无法使用梯度下降来高效地训练它,
[0015]
于是这里采用的方法是基于使用sigmoid输出单元结合最大似然来实现:
[0016]
sigmoid输出单元定义为y=σ(wh+b),σ是logistic sigmoid函数:σ(x)=1/(1+exp(-x)).
[0017]
可以认为,sigmoid输出单元具有两个部分,首先使用一个线性层来计算z=wh+b,其次使用sigmoid激活函数将z转化为概率,
[0018]
接下来用z的值来定义y的概率分布:
[0019]
假定非归一化的对数概率对y和z是线性的,可以对它取对数来得到非归一化的概率,然后对它归一化,这服从伯努利分布,该分布受z的sigmoid变换控制:
[0020]
p(y)=σ((2y-1)z),
[0021]
因为用于最大似然的代价函数是-logp(y|x),恰好抵消了sigmoid中的exp,然后使用最大似然来学习一个由sigmoid参数化的伯努利分布,其损失函数为j(θ)=ζ((1-2y)z),ζ即softplus函数的形式:
[0022]
ζ(x)=log(1+exp(x)),所以在极限情况下极度不正确的z,softplus函数完全不会收缩梯度。
[0023]
在一优选的实施方式中,所述特征提取模块主要由时序双流网络进行提取,首先将图片resize为277
×
277的大小,第一个卷积层的大小为7
×
7,步长为2,第二个卷积层的大小为5
×
5,第三、四、五卷积层的大小为3
×
3,步长为1,池化层的大小为3
×
3,为了保证模型是非线性的,每个卷积层的激活函数设置为relu,之后,将光流卷积的特征图缩放至[-128,128]的大小,然后通过水平方向的光流,垂直方向的光流,与刚刚进行缩放的光流尺组成3通道作为光流卷积后的输入,分别入rgb通道进行对应,将特征图调整尺寸输入lstm结构进行计算,在计算后通过全连层进行处理,然后经过softmax分类器将多帧的各个帧训练得到的预测标签进行概率平均处理,最后将rgb通路与光流通路得到的分类结果进行加权融合处理,得到最终动作分类的结果。
[0024]
综上所述,由于采用了上述技术方案,本发明的有益效果是:
[0025]
1、本发明中,通过4个kinect摄像头模拟室内监控视角,然后再3个人类生活场景中模拟跌倒的行为,所述数据集一共有40位实验者,男女各20名,年龄在18-30周岁之间,一共设计了20种动作,几乎囊括了生活会发生的动作以及意外跌倒情况,每个动作每名实验者进行3次模拟行为,并通过4个kinect摄像头模拟监控视角进行记录,最终一共有9600段行为视屏片段,总计8小时,几乎囊括了所有的跌倒动作信息,再与lstm结合的双流动作分类器,通过将rgb帧与双流场进行融合,然后再通过lstm网络融合上下文的计算。
[0026]
2、本发明中,对时序动作进行识别,时序双流网络能够取得比双流网络更好的识别准确率,对监控视角下的跌倒动作识别有着更高的识别效率,双流网络模块为两条2d卷积并行的神经网络结构,使得基于深度学习的视屏动作学习算法所取得的效果超过了以稠密轨迹特征为代表的的传统算法,双流网络卷积是依靠两条相同的卷积通路,这两条卷积网络相互独立,分别输入单帧的rgb图片和堆叠的光流图片,通过两条网络对空间信息与时序信息进行训练,然后再将两者进行融合最后用softmax进行分类,继而使得后续的算法更为准确,提高精确度。
附图说明
[0027]
图1为本发明的算法流程示意图;
[0028]
图2为本发明中双流网络模块的构成图。
具体实施方式
[0029]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0030]
参照图1-2,一种基于双流网络的跌倒检测算法,基于双流网络的跌倒检测算法包括数据集、数据预处理模块、特征提取模块、数据传输模块、长短时记忆网络、双流网络模块,数据集的输出端与数据预处理模块的的输入端连接,数据预处理模块的输出端与特征提取模块的输入端连接,特征提取模块的输出端与双流网络模块的输入端连接,双流网络模块的输出端与数据传输模块的输入端连接。
[0031]
数据集是通过4个kinect摄像头模拟室内监控视角,然后再3个人类生活场景中(正常行走,坐,趟)模拟跌倒的行为,所述数据集一共有40位实验者,男女各20名,年龄在18-30周岁之间,一共设计了20种动作,几乎囊括了生活会发生的动作以及意外跌倒情况,每个动作每名实验者进行3次模拟行为,并通过4个kinect摄像头模拟监控视角进行记录,最终一共有9600段行为视屏片段,总计8小时。
[0032]
数据预处理模块主要负责对数据集中的数据进行分类,由于动作的持续时间比较短,跌倒的动作是少于非跌倒动作的,所以存在数据不平衡的问题,作为少量样本的跌倒数据显然更为重要,如果直接使用未经处理的跌倒样本数据集进行训练,分类器会因为是少量样本而做出直接忽略的选择,从而并不能正确的检测出跌倒动作。
[0033]
实验数据不平衡有两类方法可以,其中第一类是通过算法与损失函数来进行平衡样本,如kaiming he等通过focal loss来解决样本不平衡的问题,第二类就是在数据集层面上来解决样本不平衡的问题,即方法是通过在训练的过程中的增强样本数量,使得正负样本趋向平衡,我们采用的是第二类方法来解决自制跌倒数据集样本不平衡的问题,即通过增加训练集中的跌倒样本,同时训练集不会做这种处理,是为了保持模型测试的可靠性。
[0034]
双流网络模块为两条2d卷积并行的神经网络结构,使得基于深度学习的视屏动作学习算法所取得的效果超过了以稠密轨迹特征为代表的的传统算法,双流网络卷积是依靠两条相同的卷积通路,这两条卷积网络相互独立,分别输入单帧的rgb图片和堆叠的光流图片,通过两条网络对空间信息与时序信息进行训练,然后再将两者进行融合最后用softmax进行分类。
[0035]
长短时记忆网络又叫做lstm,是一种更为特殊的rnn网络,该网络被设计出来就是为了解决长时间以来的问题,lstm由三个门来控制动作状态,这三个门分别称为忘记门、输入门和输出门,lstm的第一步就是决定动作状态需要丢弃哪些信息,这部分操作是通过一个称为忘记门的sigmoid单元来处理的,下一步是决定给动作状态添加哪些新的信息,通过过一个称为输入门的操作来决定更新哪些信息,这些信息可能会被更新到动作信息中,最后是输出门,该门的主要功能就是确定单元的输出值。
[0036]
神经网络仅需要预测p(y=1|x),为了使这个数是一个有效的概率,它必须处在区间[0,1]中,假设使用线性单元,并通过阈值来限制它成为一个有效的概率:
[0037]
p(y=1|x)=max{0,min{1,wh+b}},
[0038]
当wh+b处于单位区间外时,模型的输出对其参数的梯度都是0,故无法使用梯度下降来高效地训练它,
[0039]
于是这里采用的方法是基于使用sigmoid输出单元结合最大似然来实现:
[0040]
sigmoid输出单元定义为y=σ(wh+b),σ是logistic sigmoid函数:σ(x)=1/(1+exp(-x)).
[0041]
可以认为,sigmoid输出单元具有两个部分,首先使用一个线性层来计算z=wh+b,其次使用sigmoid激活函数将z转化为概率,
[0042]
接下来用z的值来定义y的概率分布:
[0043]
假定非归一化的对数概率对y和z是线性的,可以对它取对数来得到非归一化的概率,然后对它归一化,这服从伯努利分布,该分布受z的sigmoid变换控制:
[0044]
p(y)=σ((2y-1)z),
[0045]
因为用于最大似然的代价函数是-logp(y|x),恰好抵消了sigmoid中的exp,然后使用最大似然来学习一个由sigmoid参数化的伯努利分布,其损失函数为j(θ)=ζ((1-2y)z),ζ即softplus函数的形式:
[0046]
ζ(x)=log(1+exp(x)),所以在极限情况下极度不正确的z,softplus函数完全不会收缩梯度。
[0047]
特征提取模块主要由时序双流网络进行提取,首先将图片resize为277
×
277的大小,第一个卷积层的大小为7
×
7,步长为2,第二个卷积层的大小为5
×
5,第三、四、五卷积层的大小为3
×
3,步长为1,池化层的大小为3
×
3,为了保证模型是非线性的,每个卷积层的激活函数设置为relu,之后,将光流卷积的特征图缩放至[-128,128]的大小,然后通过水平方向的光流,垂直方向的光流,与刚刚进行缩放的光流尺组成3通道作为光流卷积后的输入,分别入rgb通道进行对应,将特征图调整尺寸输入lstm结构进行计算,在计算后通过全连层进行处理,然后经过softmax分类器将多帧的各个帧训练得到的预测标签进行概率平均处理,最后将rgb通路与光流通路得到的分类结果进行加权融合处理,得到最终动作分类的结果。
[0048]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。