一种基于降噪自动编码器和粒子滤波的人体动作识别方法与流程

文档序号:13345745阅读:140来源:国知局
本发明属于计算机视觉领域,具体涉及一种基于降噪自动编码器和粒子滤波的人体动作识别方法。

背景技术:
人体动作识别是计算机视觉、模式识别、图像处理以及人工智能等多学科交叉的一个重要研究方向,它在人机交互、智能监控和医疗领域均有着巨大的应用价值和理论意义。它主要针对包含人的运动图像序列进行分析处理、特征提取、运动目标分类,实现识别和理解人的个体动作、人与人之间的以及人与外界环境之间的交互行为。近年来,很多基于人体骨骼的动作识别方法被提出来,这些方法的基本原理是利用骨骼的关键姿态特征,组合成动作序列,通过比较动作中不同姿态出现的概率或者姿态的差异性来区分不同的动作。相对之前基于剪影或轮廓的动作识别方法,这种骨骼静态建模方法对提高识别率有一定的作用,但是骨骼静态建模方法没有充分利用骨骼的时间和空间特征,很难识别相似的动作,如挥手和画对号,在现实环境下的应用存在局限性。有人提出了骨骼动态建模的方法,将一个动作序列看作是时间和空间的动态问题,提取骨骼节点的运动特征,然后通过特征分析、分类,得到识别结果。这种方法明显提高了动作识别的正确率,但由于骨骼的时空特征复杂,很难提出鲁棒性的运动特征,所以目前更多的研究者致力于建立有效模型提取特征。另一方面,若骨骼数据因遮挡或视角变化而不准确,对识别的结果也有很大影响。

技术实现要素:
针对上述问题,本发明提供一种基于降噪自动编码器和粒子滤波的人体动作识别方法。本发明与现有技术中其他基于骨骼的人体动作识别方法相比,识别精度和准确高,对遮挡和视角变化有一定的鲁棒性。本发明是通过以下技术方案实现的:一种基于降噪自动编码器和粒子滤波的人体动作识别方法,所述人体动作识别方法将待分类的动作视频集随机分为训练视频集和测试视频集,将训练视频集和测试视频集分别用于计算动作的训练轨迹和测试轨迹,然后计算训练轨迹和测试轨迹的距离,获得轨迹距离集,将轨迹距离集输入支持向量机,得到动作的分类结果。进一步地,在计算训练轨迹的过程中训练降噪自动编码器,利用所述降噪自动编码器对训练动作视频集进行提取关节点数据、特征提取以及流形映射;在计算测试轨迹时将测试数据集输入到训练后的降噪自动编码器中,降噪自动编码器对测试动作视频集进行提取关节点数据、特征提取以及流形映射;然后采用粒子滤波对轨迹进行实时预测。进一步地,所述降噪自动编码器对训练动作视频集或测试动作视频集进行提取关节点数据,具体为:利用深度相机Kinect提取训练视频集或测试视频集中相对活跃的16个骨骼关节点的三维坐标。进一步地,所述降噪自动编码器对训练动作视频集或测试动作视频集进行特征提取,包括以下步骤:(1)计算所述16个骨骼关节点的平移矩阵和四元数旋转:所述平移矩阵代表骨骼关节点当前帧和前一帧的位置变化;所述四元数旋转代表骨骼关节点当前帧和前一帧的角度变化,骨骼关节点当前帧和前一帧的位置变化和角度变化形成骨骼关节点的运动特征;(2)形成基于人体部位的运动特征:将人体分为9个部位,分别融合与所述9个部位相关的骨骼关节点的运动特征,形成基于人体部位的运动特征;人体所述9个部位分别为躯干、左上臂、左下臂、右上臂、右下臂、左上腿、左下腿、右上腿和右下腿。进一步地,所述降噪自动编码器对训练动作视频集或测试动作视频集进行流形映射,具体包括以下步骤:将训练视频集或测试视频集中的每一个动作均表示为基于所述9个部位的运动特征的集合,将训练动作视频集或测试动作视频集的每个动作中9个部位的运动特征通过局部线性嵌入算法映射到低维流形上,每个动作形成与上述9个部位对应的9条部位轨迹,其中,与动作相关的部位轨迹为一条曲线,与动作不相关的部位轨迹是一个点;其中,将每个动作中9个部位的运动特征通过局部线性嵌入算法映射到低维流形上具体步骤为:(1)将每个动作中任何一个部位的运动特征的每一帧的状态Ft,t=1,2,...T看作高维流形上的一点,计算每一点Ft的k个近邻点;Ft,t=1,2,...T是9个部位中某一部位的每一帧的运动特征,t代表第t帧,T是总帧数;(2)计算权值矩阵W;将Ft用它的k个近邻点的权值表示当前的运动特征,通过最小化损失函数来求出W:其中,Ftj(j=1,2,...,k)是Ft的k个邻近点,表示第j个近邻点的运动特征;wtj是第j个近邻点运动特征的权值,满足W是权值矩阵;(3)保持权值矩阵W不变,求Ft,t=1,2,...T在低维流形上的轨迹mt,t=1,2,...T,使得低维重构误差最小:其中,ε(m)为损失函数值;mt是Ft的输出向量,即某一部位第t帧的轨迹;mtj(j=1,2,...,k)是mt的k个邻近点,且满足以下条件进一步地,所述降噪自动编码器为一个4层的降噪自动编码器,各层的具体输入如下:其中,输入层I的输入是16个骨骼关节点三维坐标,三维坐标总共为T帧,第一层隐藏层h1的输入是16个骨骼关节点的运动特征f,T,Q分别为骨骼关节点的平移矩阵和单位四元数旋转,第二层隐藏层h2的输入是9个部位的运动特征F,它包含了m个相关节点的特征,m的范围2-4,而第三层隐藏层h3是融合了9个部位的运动特征的动作序列特征;其中,p是骨骼关节点的三维坐标,t表示第t帧,i代表第i个骨骼关节点,表示第t帧第i个关节点的坐标,b代表第b个部位,表示第t帧第i个关节点的运动特征,表示第t帧第b个部位的运动特征,A代表动作序列特征。进一步地,训练降噪自动编码器,具体包括以下步骤:(1)在[0,1]范围内随机选取两个数,分别作为降噪自动编码输入层I的权重值和偏差值;(2)对原始无噪声样本数据x的加噪处理,获得初始权重值和偏差值:按照一定比例x'~q(x'|x)随机加噪处理原始无噪声样本数据x,随机将一部分输入层神经元的节点置为0;其中,原始无噪声样本数据x是16个骨骼关节点的T帧三维坐标,x'是按照比例q随机丢弃某些关节点后的噪声样本;通过激活函数和平均重构误差公式计算训练隐藏层的初始权重值和偏差值:S1:通过激活函数h=fθ(x')=s(Wx'+b)映射得到隐藏层h的特征表达,再通过映射函数y=gθ'(h)=s(W'h+b')得到一个重构的输出向量y,其中f(·)和g(·)均为sigmoid函数,θ={W,b},W权值矩阵,b是偏置向量,θ'={W',b'},这里,W'为W的转置;S2:按照下式,依次计算每个隐藏层h的输入和输出的平均重构误差:其中,m是训练视频集中样本的个数,i表示第i个样本,也就是第i个视频、L是平方损失函数L(x,y)=||x-y||2的值,为了网络过拟合,在损失函数后加上一个正则化项L2范数,L2范数即公式中的w={W,W'}为降噪自动编码器层间的连接权值,λ是衰减项系数;获得最小平均重构误差时的θ={W,b},即为该层的初始权重值和偏差值;按照S1,S2的步骤,依次计算隐藏层h1-h3的初始权重值和偏差值;(3)利用无噪声的样本获得最优权重值和最优偏差值:将原始无噪声样本数据x作为训练降噪自动编码器的输入,计算整个网络的损失函数,采用梯度下降法获取降噪自动编码的最优权重值和最优偏差值。进一步地,所述采用粒子滤波对轨迹进行实时预测具体包括以下步骤:(1)采用粒子滤波进行轨迹预测,初始化粒子群,建立动态模型将粒子进行自身状态传播;运动状态初始化,在初始位置附近一定范围内按随机的方式采样,生成一组赋有权值的粒子集其中,t表示时刻,N为粒子数,N>1,表示人体9个部位中任意一个部位在t时刻的一个运动方向假设,即为一个粒子,而为该粒子对应的权值;初始时刻对粒子的权值进行归一化,即令(2)采用相似性的测量,更新粒子状态和权值;更新每一帧运动轨迹的传播方向;假设目标均做匀速直线运动,则采用一阶AR(p)模型做为目标的运动模型:xt=Axt-1+Bwt,此处,为目标的位置;wt可认为是高斯白噪声,作为模型的过程噪声;B为任意常数;A为动态模型的系数;(3)根据各粒子及其权值对目标的状态进行加权平均,得到对目标状态准确的估计和预测,具体为:S1:估计各粒子运动方向的权值,根据对当前帧的运动状态观测值来对各运动方向赋权值,依据算法所选取的似然函数,这里采用Bhattacharyya距离系数:其中,y为当前帧目标的位置,p是训练轨迹,q是测试轨迹,即观测值;N表示粒子数量,i表示第i个粒子;根据Bhattacharrya公式计算运动轨迹和测试轨迹之间的距离,据此依次为每一个运动方向赋予相应的权值;S2:预测运动趋势,根据每个方向的权值分布对运动状态进行加权平均,得到对轨迹趋势较准确的估计和预测;其中,表示第t帧第i个粒子的轨迹状态,是对应的权值,E[mt]表示估计的第t帧的轨迹,公式的意思就是对当前帧N个方向的运动趋势进行加权平均,得到观测时轨迹的估计值;权值w符合正态分布,即:d为Bhattacharrya距离,σ是距离的标准差。进一步地,计算训练轨迹和测试轨迹间的距离的具体实现方法为:对训练和测试时得到的每条轨迹求质心,计算9个部位对应的部位轨迹质心的距离,将训练和测试时的动作差异表示为9个距离的集合。本发明技术效果:(1)本发明在计算训练轨迹时,通过训练降噪自动编码器,提取出16个骨骼关节点三维坐标、关节点运动特征、身体部位特征、采用局部线性嵌入算法将运动特征映射成低维流形的一条轨迹;(2)降噪自动编码器是一种深度学习的网络,训练时它的输入层按照一定比例随机将一些神经元置为0,即一些关节点的数据被随机抛弃,因此它提取出的特征对遮挡问题具有鲁棒性。(3)计算测试轨迹时,加入粒子滤波算法对轨迹状态进行实时预测,当因遮挡或视角变化导致数据不准确时可以预测出较正确的轨迹,保证动作的识别效果。附图说明图1为本发明基于降噪自动编码器和粒子滤波的人体动作识别方法框图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细描述。应当理解,此处所描述的具体实施方式仅用于解释本发明,并不用于限定本发明。相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。实施例1参照图1,一种基于降噪自动编码器和粒子滤波的人体动作识别方法,所述人体动作识别方法将待分类的动作视频集随机分为训练视频集和测试视频集,将训练视频集和测试视频集分别用于计算动作的训练轨迹和测试轨迹,然后计算训练轨迹和测试轨迹的距离,获得轨迹距离集,将轨迹距离集输入支持向量机,得到动作的分类结果。在计算训练轨迹的过程中训练降噪自动编码器,所述降噪自动编码器能够对训练动作视频集进行提取关节点数据、特征提取以及流形映射;在计算测试轨迹时将测试数据集输入到训练后的降噪自动编码器中,降噪自动编码器对测试动作视频集进行提取关节点数据、特征提取以及流形映射;然后采用粒子滤波对轨迹进行实时预测。所述降噪自动编码器对训练动作视频集或测试动作视频集进行提取关节点数据,具体为:利用深度相机Kinect提取训练视频集或测试视频集中相对活跃的16个骨骼关节点的三维坐标。所述16个骨骼关节点分别是头、中肩、脊柱、中髋、左肩、左肘、左腕、右肩、右肘、右腕、左髋、左膝、左踝、右髋、右膝和右踝。所述降噪自动编码器对训练动作视频集或测试动作视频集进行特征提取,包括以下步骤:(1)计算所述16个骨骼关节点的平移矩阵和四元数旋转:所述平移矩阵代表骨骼关节点当前帧和前一帧的位置变化;所述四元数旋转代表骨骼关节点当前帧和前一帧的角度变化,骨骼关节点当前帧和前一帧的位置变化和角度变化形成骨骼关节点的运动特征;(2)形成基于人体部位的运动特征:将人体分为9个部位,分别融合与所述9个部位相关的骨骼关节点的运动特征,形成基于人体部位的运动特征;人体所述9个部位分别为躯干、左上臂、左下臂、右上臂、右下臂、左上腿、左下腿、右上腿和右下腿。每个部位分别包括的骨骼关节点为:躯干包括头、中肩、脊柱和中髋;左上臂包括左肩、左肘;左下臂包括左肘、左腕;右上臂包括右肩、右肘;右下臂包括右肘、右腕、;左上腿包括左髋、左膝;左下腿包括左膝、左踝;右上腿包括右髋、右膝;右下腿包括右膝、右踝。所述降噪自动编码器对训练动作视频集或测试动作视频集进行流形映射,具体包括以下步骤:将训练视频集或测试视频集中的每一个动作均表示为基于所述9个部位的运动特征的集合,将训练动作视频集或测试动作视频集的每个动作中9个部位的运动特征通过局部线性嵌入算法映射到低维流形上,每个动作形成与上述9个部位对应的9条部位轨迹,其中,与动作相关的部位轨迹为一条曲线,与动作不相关的部位轨迹是一个点;其中,将每个动作中9个部位的运动特征通过局部线性嵌入算法映射到低维流形上具体步骤为:(1)将每个动作中任何一个部位的运动特征的每一帧的状态Ft,t=1,2,...T看作高维流形上的一点,计算每一点Ft的k个近邻点;Ft,t=1,2,...T是9个部位中某一部位的每一帧的运动特征,t代表第t帧,T是总帧数;(2)计算权值矩阵W;将Ft用它的k个近邻点的权值表示当前的运动特征,通过最小化损失函数来求出W:其中,Ftj(j=1,2,...,k)是Ft的k个邻近点,表示第j个近邻点的运动特征;wtj是第j个近邻点运动特征的权值,满足W是权值矩阵;(3)保持权值矩阵W不变,求Ft,t=1,2,...T在低维流形上的轨迹mt,t=1,2,...T,使得低维重构误差最小:其中,ε(m)为损失函数值;mt是Ft的输出向量,即某一部位第t帧的轨迹;mtj(j=1,2,...,k)是mt的k个邻近点,且满足以下条件所述降噪自动编码器为一个4层的降噪自动编码器,各层的具体输入如下:其中,输入层I的输入是16个骨骼关节点三维坐标,三维坐标总共为T帧,第一层隐藏层h1的输入是16个骨骼关节点的运动特征f,T,Q分别为骨骼关节点的平移矩阵和单位四元数旋转,第二层隐藏层h2的输入是9个部位的运动特征F,它包含了m个相关骨骼关节点的特征,m为人体部位所包括的骨骼关节点数目,取值范围为2-4;而第三层隐藏层h3是融合了9个部位的运动特征的动作序列特征;其中,p是骨骼关节点的三维坐标,t表示第t帧,i代表第i个骨骼关节点,表示第t帧第i个关节点的坐标,b代表第b个部位,表示第t帧第i个关节点的运动特征,表示第t帧第b个部位的运动特征,A代表动作序列特征。训练降噪自动编码器,具体包括以下步骤:(1)在[0,1]范围内随机选取两个数,分别作为降噪自动编码输入层I的权重值和偏差值;(2)对原始无噪声样本数据x的加噪处理,获得初始权重值和偏差值:按照一定比例x'~q(x'|x)随机加噪处理原始无噪声样本数据x,随机将一部分输入层神经元的节点置为0;其中,原始无噪声样本数据x是16个骨骼关节点的T帧三维坐标,x'是按照比例q随机丢弃某些关节点后的噪声样本;这是对输入层的处理,这种情况训练的网络可以解决因身体部位遮挡所导致的某些关节点信息丢失的问题;通过激活函数和平均重构误差公式计算训练隐藏层的初始权重值和偏差值:S1:通过激活函数h=fθ(x')=s(Wx'+b)映射得到隐藏层h的特征表达,再通过映射函数y=gθ'(h)=s(W'h+b')得到一个重构的输出向量y,其中f(·)和g(·)均为sigmoid函数,θ={W,b},W权值矩阵,b是偏置向量,θ'={W',b'},这里,W'为W的转置;S2:按照下式,依次计算每个隐藏层h的输入和输出的平均重构误差:其中,m是训练视频集中样本的个数,i表示第i个样本,也就是第i个视频、L是平方损失函数L(x,y)=||x-y||2的值,为了网络过拟合,在损失函数后加上一个正则化项L2范数,L2范数即公式中的w={W,W'}为降噪自动编码器层间的连接权值,λ是衰减项系数;获得最小平均重构误差时的θ={W,b},即为该层的初始权重值和偏差值;按照S1,S2的步骤,依次计算隐藏层h1-h3的初始权重值和偏差值;(3)利用无噪声的样本获得最优权重值和最优偏差值:将原始无噪声样本数据x作为训练降噪自动编码器的输入,计算整个网络的损失函数,采用梯度下降法获取降噪自动编码的最优权重值和最优偏差值。当利用上述训练后获得的降噪自动编码器进行测试时,视频集不进行加噪处理,直接用测试视频集进行测试。所述采用粒子滤波对轨迹进行实时预测具体包括以下步骤:(1)采用粒子滤波进行轨迹预测,初始化粒子群,建立动态模型将粒子进行自身状态传播;运动状态初始化,在初始位置附近一定范围内按随机的方式采样,生成一组赋有权值的粒子集其中,t表示时刻,N为粒子数,N>1,表示人体9个部位中任意一个部位在t时刻的一个运动方向假设,即为一个粒子,而为该粒子对应的权值;初始时刻对粒子的权值进行归一化,即令(2)采用相似性的测量,更新粒子状态和权值;更新每一帧运动轨迹的传播方向;假设目标均做匀速直线运动,则采用一阶AR(p)模型做为目标的运动模型:xt=Axt-1+Bwt,此处,为目标的位置;wt可认为是高斯白噪声,作为模型的过程噪声;B为任意常数;A为动态模型的系数;(3)根据各粒子及其权值对目标的状态进行加权平均,得到对目标状态准确的估计和预测,具体为:S1:估计各粒子运动方向的权值,根据对当前帧的运动状态观测值来对各运动方向赋权值,依据算法所选取的似然函数,这里采用Bhattacharyya距离系数:其中,y为当前帧目标的位置,p是训练轨迹,q是测试轨迹,即观测值;N表示粒子数量,i表示第i个粒子;根据Bhattacharrya公式计算运动轨迹和测试轨迹之间的距离,据此依次为每一个运动方向赋予相应的权值;S2:预测运动趋势,根据每个方向的权值分布对运动状态进行加权平均,得到对轨迹趋势较准确的估计和预测;其中,表示第t帧第i个粒子的轨迹状态,是对应的权值,E[mt]表示估计的第t帧的轨迹,公式的意思就是对当前帧N个方向的运动趋势进行加权平均,得到观测时轨迹的估计值;权值w符合正态分布,即:d为Bhattacharrya距离,σ是距离的标准差。计算训练轨迹和测试轨迹间的距离的具体实现方法为:对训练和测试时得到的每条轨迹求质心,计算9个部位对应的部位轨迹质心的距离,将训练和测试时的动作差异表示为9个距离的集合。本发明提供的基于降噪自动编码器和粒子滤波的人体动作识别方法,将人体分为9个部位,分别融合其相关节点的运动特征,形成基于人体部位的运动特征。这9个部位分别为躯干、左上臂、左下臂、右上臂、右下臂、左上腿、左下腿、右上腿和右下腿。这样,我们通过流形映射和粒子滤波轨迹预测可以得到每个部位的运动轨迹,那一个运动可以表示为9条运动轨迹的集合,最后计算训练和测试时的轨迹距离,用包含9个距离的集合表示动作间的差异性,输入到支持向量机进行分类。这样基于部位的识别方法,可以有效识别出相似的动作,以及当某些部位被遮挡时,依然可以通过其他有效部位的轨迹识别动作,即识别精度和准确高,对遮挡和视角变化有一定的鲁棒性。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1