本发明涉及步态分析方法领域,具体涉及一种基于直接特征提取的多通道时序步态分析算法。
背景技术:
随着人口老龄化的日趋严重,老年人常见的疾病如帕金森综合征患者的数量急剧增加,该疾病严重时会导致病人完全丧失运动能力,给患者和家人带来极大的经济和护理压力,对帕金森综合征早期诊断和治疗能够有效缓解病情的恶化。
步态作为人体固有的生理特征,可在智能假肢、智能监控、临床医学、康复治疗、运动分析等众多领域发挥其作用。通过步态检测与识别,可以对运动人体的行为进行分析,进而实现对特殊人群的异常行为或状态进行跟踪检测,判断患者患病程度或康复程度。
在进行步态分析时,需要采集大量的视屏数据,所采集的数据具有数据量大、范围大且个体差异大的特点,在采集数据后需要进行详细的分析才能得到较准确的数据,难以进行实时测评,且由于个体差异性大,步态分析难以到统一的识别。
早期的步态分析装置主要基于光学的方法,通常在人体上粘贴大量的主动光源(led)或反射红外的小球作为标记,采用多相机的人体动作捕捉系统,如vicon(维康动作捕捉系统)、optitrack(一种全身动作捕捉)等。该方法对步态的测量准确,但成本高且需要专业的测量场地;还有一些系统使用惯性传感器和测力板配合的方法,该方法需要准确的传感器进行校准和同步,对传感器要求较高,成本较高。
目前出现一类基于视觉方式的方法,该方法通过对受试者的视频进行轮廓或骨架运动进行提取,再使用移动平台进行计算得到相应的结果,这种方法对不仅对设备提取运动要求较高,且对移动平台的计算能力要求较高,随着科技的发展,现有的便携式深度相机能够有效估计人体姿态,进而极大的减少了图像处理的计算,降低了对移动平台计算能力的要求,使得基于视觉方式的步态分析装置得到有效发展,但是,现有的装置提取效率和计算效率均较低。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于直接特征提取的多通道时序步态分析算法,能够有效提高提取效率和计算效率。
为达到以上目的,本发明采取的技术方案是:
一种基于直接特征提取的多通道时序步态分析算法,包括以下步骤:
s1、拍摄若干受试者的步态视频信息,将所有视频信息分割成单个分离的步态周期,对分割后的每个步态周期进行插值和重新采样,将不同运动速度/采集帧率的步态周期调整为同一长度;
s2、定义标准化后的步态参数为sz,sz的距离方程为:
所述公式1中,pi,x,pi,y均为1到k的整数,k取1到9中的整数,pi,x,pi,y为相对应的步态相位,
标签距离φ(a,b)定义为:
其中,bool(x)为二值函数,如果x为非0则其输出为1;
s3、使用k-nn(k最近邻)的算法和参数距离方程对已经标记好的训练数据做聚类,对任意一个聚类的距离方程为:
其中,m为聚类的大小;
将聚类进行平均,由此可以得到聚类平均值
s4、在x帧周围选取任意一个小窗(u,v)的时间序列,其中u,v均∈[-0.5,0.5),根据公式4计算该时间序列的特征值:
其中,l为标准化后的步态周期长度,u,v均为{-0.5,-0.49,-0.48,……,0.49}中的值;
为避免分类器过拟合训练数据,通过基尼杂质q(cn)来度量本实施例中时间序列的质量,
其中,
u,v均为{-0.5,-0.49,-0.48,……,0.49}中的值,选取cn值最高的b个(u,v)时间序列作为训练数据;
采用增强随机森林作为训练的模型,在训练过程中我们将目标帧x的标签与这些时间序列映射起来,cn值最高的b个(u,v)时间序列作为随机森林训练的输入,而(u,v)所在帧x的步态分类标签作为训练的期待输出;
s5、步态相位重建
增强随机森林的输出为当前帧x分类的概率向量ρ={ρ1,……,ρ9},其中每一个概率向量的值表示对应的步态相位的概率,为了对任一时间片段的特征值fs,……,fe进行步态输出,通过公式6来检测当前时间序列中的步态相位:
公式6中,a、b为两个相邻步态相位,ηf(a、b)为当前时间片段在相邻步态相位a、b之间的相关系数;
选择当前时间序列中相关系数最大的点作为步态事件,并以此重新分割步态,再次迭代上面的操作:以上一次迭代计算得到的步态事件分割而成的步态分类,计算相邻步态间相关系数,找出全局最大相关系数的点作为步态事件优化上一次迭代的步态分类,直到分类收敛。
进一步的,步骤s1中所述将不同运动速度/采集帧率的步态周期调整为同一长度具体包括以下步骤:使用2阶贝塞尔曲线回归出连续的运动曲线,并均匀地在每个步态周期样本中采样n个采样点。
进一步的,步骤s4和s5之间还包括以下步骤:对输入序列进行嵌入编码,将训练数据编码后在输入到随机森林,编码方式按公式5进行计算:
γ(f)=(sin(20πf),cos(20πf),...,sin(2l-1πf),cos(2l-1πf))公式5
其中,f=fx(u,v),l为4。
进一步的,每个所述步态周期包括9种步态相位:第一加载响应相位p1、第二加载响应相位p2、中间步态相位p3、第一终结步态相位p4、第二终结步态相位p5、摇摆准备相位p6、摇摆开始相位p7、摇摆中间相位p8和摇摆结束相位p9。
进一步的,每一帧的步态参数为z,z∈(λ1,……,λ12),z通过表格1中定义的公式计算得到,定义
d1为臀到地面的距离,d2为左右脚之间的距离,d3为右侧脚趾到地面的距离,d4为右侧脚跟到地面的距离,d5为左侧脚趾到地面的距离,d6为左侧脚跟到地面的距离;a1至a7为关节或肢体之间的夹角。
与现有技术相比,本发明的优点在于:
(1)本发明中基于直接特征提取的多通道时序步态分析算法,先将所有周期均调整为相同的帧率和速度,使其标准化,在每个步态周期样本中采样n个采样点,然后使用k-nn算法和参数距离方程对已经标记好的训练数据做聚类,将聚类进行平均,由此可以得到聚类平均值,使用随机森林作为训练模型对步态相位的时间序列进行分类,最后根据训练结果重建步态相位,本发明使用k-nn算法和随机森林模型进行计算,计算量较小,效率较高,对平台计算能力要求较低,能够适用于绝大多数移动平台,用于各类感知方式,动作捕捉、视频提取或传感器等系统,使用范围较广。
附图说明
图1为本发明实施例中步态周期的结构示意图;
图2为发明实施例中的姿态参数示意图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
参见图1所示,本发明实施例提供一种基于直接特征提取的多通道时序步态分析算法,该算法基于以下情况:
虽然不同个体的步态存在较大的差异,但是人类标准的步行姿态周期(步态周期)基本分为8到9种步态,本发明实施例中基于各步态中分布的均匀性,选用9步态分割法。
参见图1所示,将步态分为以下9种相位:加载响应1(p1)、加载响应2(p2)、中间步态(p3)、终结步态1(p4)、终结步态2(p5)、摇摆准备(p6)、摇摆开始(p7)、摇摆中间(p8)和摇摆结束(p9),通过分析步态中关节的轨迹可知,每个步态均会以某个关节如脚跟或脚趾接触地面或离开地面为当前步态的起始标志,本实施例中将起始标志称为步态事件。
参见图1中人体骨架示意图,自上而下的四个点分别为:肩、臀、膝盖、脚踝;以脚跟接触地面的骨架图为例,下方左侧为左脚趾和脚跟,右侧为右脚趾和脚跟,不同相位对应的膝盖角比例不相同。
参见图2所示,d1为臀到地面的距离,d2为左右脚之间的距离,d3为右侧脚趾到地面的距离,d4为右侧脚跟到地面的距离,d5为左侧脚趾到地面的距离,d6为左侧脚跟到地面的距离;a1至a7为关节或肢体之间的夹角。
定义足间距为:λ1=d2/d1,用于观测脚的切换状态;
膝盖角率为:λ2=a1/π,用于观测肢体支撑状态;
大腿平面角率为:λ3=a2/π,用于观测股骨摇摆状态;
右侧脚趾抬高率为:λ4=d3/d1,用于观测右侧脚趾接触状态;
右侧脚跟抬高率为:λ5=d4/d1,用于观测右侧脚跟接触状态;
左侧脚趾抬高率为:λ6=d5/d1,用于观测左侧脚趾接触状态;
左侧脚跟抬高率为:λ7=d6/d1,用于观测左侧脚跟接触状态;
腿平面脚率为:λ8=a3/π,用于观测脚的摇摆状态;
脚踝角率为:λ9=a4/π,用于观测肢体支撑状态;
小腿平面角率为:λ10=a5/π,用于观测胫骨摇摆状态;
右脚角率为:λ11=a6/π,用于观测右脚支撑状态;
左脚角率为:λ12=a7/π,用于观测左脚支撑状态。
p1至p9组成了一个完整的步态周期,参见图1可知每一个步态周期对应不同的轨迹曲线,图1中以膝盖角比例(即膝盖角率λ2)为例,示意出步态参数随着步态周期的推进而变化的曲线,同一步态周期内不同时间(帧数)所对应的膝盖角比例不相同,且构成一个完整连续的曲线,其他步态参数随步态周期也呈现出连续完整的曲线。
基于此,本发明以步态参数来对不同时间的步态特征进行表征,每一帧的步态参数为z,z∈(λ1,……,λ12),z通过λ1至λ12相应的公式计算得到,定义
由于步态参数收到年龄、健康程度、身体情况等因素的影响,不同个体的步态参数差异较大,本发明通过以下方式提取步态模式:
s1、步态周期标准化
拍摄若干受试者的步态视频信息,将所有视频信息分割成单个分离的步态周期(包括p1到p9的周期),由于不同受试者的速度不同,且同一受试者步同时间的速度也不相同,需要对分割后的每个步态周期进行插值和重新采样,将不同运动速度或采集帧率的步态数据调整为同一长度(即每个周期都调整为相同的帧率和速度)。
具体的:使用2阶贝塞尔曲线回归出连续的运动曲线,并均匀地在每个步态周期样本中采样n个采样点,这样所有步态周期就被统一在相同的数据尺度下,步态数据被调整后,每一帧的步态参数z也随之变化,以sz表示标准化后的步态参数,其计算方式与z相同。
s2、定义标准化后的参数距离方程
对标准化后的步态参数sz进行距离定义
公式1中,pi,x,pi,y∈(1,……,k),为相对应的步态相位的标签(pi,x,pi,y即p1,……,p9,k取1到9中的整数),
标签距离φ(a,b)定义为:
其中,bool(x)为二值函数,如果x为非0则其输出为1。
s3、对已经标准化的周期数据做聚类
使用k-nn(k最近邻)的算法和参数距离方程对已经标记好的训练数据做聚类,对任意一个聚类的距离方程为:
其中,m为聚类的大小,m的具体数值根据需要进行选择,为大于等于1的整数。
将聚类中的所有步态参数值进行平均,由此可以得到聚类平均值
s4、对步态相位的时间序列进行分类
由于步态是一个时序概念,对单独的一帧进行分类往往会导致输出的观测结果有非常大的扰动或噪声,所以本发明实施例使用时间序列进行分类。
在x帧周围选取任意一个小窗(u,v)的时间序列,其中u,v均∈[-0.5,0.5),根据公式4定义该时间序列的特征值为:
其中,l为标准化后的步态周期长度,本实施例中,l=100,u,v均为{-0.5,-0.49,-0.48,……,0.49}中的值,通过公式4能够消除时间序列长度对特征的影响。
为避免分类器过拟合训练数据,通过基尼杂质q(cn)来度量本实施例中时间序列的质量,
其中,
u,v均为{-0.5,-0.49,-0.48,……,0.49}中的值
本实施例选取q(cn)最高的b个(u,v)时间序列作为训练数据,b的具体值根据实际需要确定。
采用增强随机森林作为训练的模型,在训练过程中将目标帧x的标签与这些时间序列映射起来,时间序列(u,v)作为随机森林训练的输入,而(u,v)所在帧x的步态分类标签作为训练的期待输出。
此外,为了增加随机森林的泛化能力,对输入序列做了嵌入编码,将训练数据编码后在输入到随机森林,编码方式按公式5进行计算:
γ(f)=(sin(20πf),cos(20πf),...,sin(2l-1πf),cos(2l-1πf))公式5
其中,f=fx(u,v),l为4
随机森林的计算量小,适用于绝大多数移动平台,可以快速的训练与回归,为算法的便携性和可移植性提供了保障。
s5、步态相位重建
增强随机森林的输出为当前帧x分类的概率向量ρ={ρ1,……,ρ9},其中每一个概率向量的值表示对应的步态相位的概率,为了对任一时间片段的特征值fs,……,fe进行步态输出,通过公式6来检测当前时间序列中的步态相位:
公式6中,a、b为两个相邻步态相位,ηf(a、b)为当前时间片段在相邻步态相位a、b之间的相关系数。
选择当前时间序列中相关系数最大的点作为步态事件,并以此重新分割步态,再次迭代上面的操作:以上一次迭代计算得到的步态事件分割而成的步态分类,计算相邻步态间相关系数,找出全局最大相关系数的点作为步态事件优化上一次迭代的步态分类,直到分类收敛。
本发明不仅局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本发明相同或相近似的技术方案,均在其保护范围之内。