基于最小二乘距离特征曲线的人体运动序列分割方法

文档序号:6368079阅读:960来源:国知局
专利名称:基于最小二乘距离特征曲线的人体运动序列分割方法
技术领域
本发明涉及一种三维人体捕捉数据智能处理,主要用于运动数据的检索与合成等数据重用技术。
背景技术
随着计算机动画技术的发展,利用运动捕捉数据驱动人物模型生成动画成为3D动画制作中的一项关键技术。近年来,运动捕捉技术发展迅速,运动捕捉设备逐渐普及,随着运动捕捉数据的积累和数据规模的不断扩大,出现了很多商业和非商业的运动捕捉数据库,为用户提供丰富的数据资源。然而由于商业运动捕捉设备比较昂贵,运行维护成本较高且数据采集过程费时费力等原因,造成了数据采集成本较高。同时,对于同一动作进行重复 采集也会造成不必要的资源浪费。人体运动捕捉数据重用技术,通过对运动捕捉数据库的检索获取需要的数据,并通过运动编辑与合成生成新的运动序列进行动画制作,这样不仅可以节约动画制作的成本,而且提高了动画制作的效率,因此运动捕捉数据重用技术成为近年来国内外研究的一个热点。运动数据分割技术作为计算机动画中的一个研究热点,其目的是将包含多个动作的长运动序列分割为具有特定语义的运动片段,这项技术在运动检索、运动合成、运动压缩、运动数据分析与处理等方面具有十分重要的作用和意义。虽然直接对人体运动片段进行捕捉或者通过人工手动对运动序列进行分割可以获取具有固定语义的运动片段,但是由于人体运动复杂多样,而且运动数据量庞大,通过这两种方法获取运动片段不但成本高而且效率低下,在实际应用中很少使用。因此如何设计一种人体运动序列自动分割方法成为计算机动画中亟待解决的一个问题。

发明内容
本发明的目的在于提出一种人体运动序列自动分割方法,采用最小二乘距离将运动序列简化为一条距离特征曲线,通过提取曲线主要极值点,将运动序列分割为动素单元,最后根据运动的特征将含有多个动作的长运动序列分割为具有特定语义的运动片段(例如“走”、“跑”、“跳跃”等)。本发明方法定义的人体运动姿态相似度符合人的主观判断,分割效果与手动分割结果基本一致,从而为运动数据的检索与合成等数据重用技术提供数据保障和技术支持。为了达到上述目的,本发明提供了一种基于最小二乘距离特征曲线的人体运动序列分割方法,包括如下步骤SI、犾得人体运动序列;S2、选择人体姿态模板,用作最小二乘距离的比较标准;S3、利用奇异值分解的方法计算运动序列中每帧数据与模板的最小二乘距离,将人体运动序列简化为二维特征曲线;S4、利用小波分析的方法对运动特征曲线进行降噪处理;
S5、提取特征曲线中的主要极值顶点,将运动序列分割为动素;S6、对动素进行相似聚类,获得动素的标号序列;S7、对运动序列进行语义分割首先利用人体运动层次化结构特征,根据标号序列中动素变化规律对人体运动序列进行粗略语义分割,然后对语义动作进行边界探测,提高语义分割的准确性;S8、运动序列分割结果输出。其中,所述步骤S3的过程为 首先,对于载入的人体运动序列,根据骨架结构信息选取决定姿态的关节点,并获得关于所述关节点的每帧人体运动数据;然后,利用奇异值分解的方法计算每帧人体运动数据与S2中人体姿态模板之间的最小二乘距离;最后,把最小二乘距离作为特征,将人体运动序列简化为一条二维特征曲线。所述步骤S5的过程为根据运动曲线变化提取所有局部极值顶点,通过设定阈值过滤相邻且取值相近的顶点,获得主要的极值点;把主要极值顶点作为动素分割点,将运动序列分割为动素。优选方式下,S5中所述阈值选定为6. 5。此外,步骤SI中人体运动序列可从现有技术的人体运动库中导入数据(例如卡内基梅隆大学的CMU运动捕捉数据库),也可自行获得或建立数据。步骤S7中在动素分割的基础上对运动序列进行语义分割的方法具体描述为根据人体运动层次化结构中不同语义动作由不同动素或按照不同顺序组合而成这一特征,首先按照动素变化规律将人体运动序列分割为周期运动和非周期运动,然后对于非周期运动可能含有多个语义动作的情况根据动素幅度变化对非周期运动进行再次分割,最终完成对整个运动序列的分割。具体说,步骤S7的过程为对于周期运动根据动素的周期变化提取出所有周期语义运动动作。对于非周期动作,有三种情况运动序列短,则将其视为两个相邻语义动作之间的过渡动作(运动序列短的实例包含动素少于两个或动作持续时间小于O. 5秒);运动序列长,则通过相邻动素的变化幅度对其进行再次分割;如果相邻动素变化幅度相差过大时,在两动素连接处设置一个分割点;最终,完成对整个运动序列的分割。此夕卜,当两个语义动作之间存在过渡动作时,进行分割点位置校正通过将过渡动作与语义动作中相应动素进行逐帧相似比较,获得分割点位置。本发明基于最小二乘距离特征曲线的人体运动序列分割方法,在人体运动捕捉数据的基础上,引入人体运动姿态之间的最小二乘距离做为人体运动数据的特征,定义姿态之间的相似度,将人体运动序列简化为一条运动曲线,并通过对人体运动规律的分析将人体运动序列分割为具有特定语义的运动片段。首先,选取一帧数据作为模板,计算运动序列中每帧数据与模板的最小二乘距离,由于人体运动捕捉数据采样频率很高,将相邻最小二乘距离相连接便形成一条连续变化的曲线;然后通过小波滤波,剔除曲线中的局部噪声,使曲线变得平滑光顺;然后通过提取曲线中的主要极值顶点,所有极值顶点将运动序列分割为动素序列;最后通过对动素进行聚类,根据人体运动的周期规律和幅度变化将人体运动序列分割为具有特定语义的运动片段。该方法定义的人体运动姿态相似度符合人的主观判断,分割效果与手动分割结果基本一致。本发明与现有技术相比具有以下优点
I、本发明提出的基于最小二乘距离特征曲线的人体运动序列分割方法实现了人体运动序列的自动分割,分割前无需知道运动序列中含有的运动种类及数量。2、在本发明中定义的基于最小二乘距离的人体相似度度量方法符合人的主观认知,分割结果与人工手动分割结果基本一致。


图I是本发明算法流程图;图2是人体运动层次结构示意图;图3是姿态与模板之间的最小二乘距离一个实施例的状态示意图;图4是以图3所示的最小二乘距离作为特征的人体运动序列曲线示意图;
图5是小波分解示意图;图6是主要极值点提取示意图;图7是语义分割结果示意图。
具体实施例方式本发明的技术方案是首先,计算运动序列中每帧数据与一个固定姿态模板之间的最小二乘距离,将运动序列简化为一条运动特征曲线,使用小波滤波对特征曲线进行降噪处理;然后提取运动曲线中的主要极值点,将相邻极值点之间的部分定义为动素单元,得到一个动素序列;最后,对动素单元进行相似聚类,根据人体运动的层次化结构特征,利用不同的语义动作由不同的动素单元按不同顺序组合而成这一特性,将运动序列分割为具有特定语义特征的运动片段,并对每个语义片段进行边界探测,实现语义动作的精确分割。附图I所示为本发明算法流程图,其具体包括以下技术环节I.人体运动层次化结构分析人体运动是一个高级而且复杂的行为运动过程,而且具有层次化结构特征,根据主观认知的不同可将人体运动分为三个层次结构,即行为层、语义动作层、动素层。第一层为行为层,在行为层中,运动数据为长运动序列,包含多个语义动作,运动具有主观目的性,为了实现某一目的而将多个动作组合在一起;第二层为语义动作层,在这一层中的动作为具有特定语义的单独动作,例如“走、跑、跳、踢”等;最底层为动素层,这一层中的动作为组成运动的最小基本单位,可将其看做是语义动作的分解,每个动素为部分身体的运动过程,例如“左脚\右脚向前\向后移动”。如附图2所示。在运动层次化结构里面,低层次的运动按照不同的顺序结构组合成高级的运动,并最终形成完整的人体动作。本发明的目的是在语义动作层将人体运动分割为具有特定语义的动作片段,由于不同的语义动作片段,其包含的动素及动素组合方式都不相同,例如一个“走然后捡东西”的运动序列,其动素组成可表示为{1 2 1 2 1 2 3 4},其中{I 2}表示一个走的循环序列,{34}表示弯腰然后直立的过程,这种通过动素表示运动序列的方法,不仅简单直观,而且利于运动序列的语义分割。因此本发明的分割思想为通过运动曲线的极值点将人体运动分割为动素,然后通过对动素序列变化规律的分析实现语义动作片段的分割。2.运动数据格式
本专利所述方法针对人体运动捕捉数据,数据格式采用BVH文件数据格式,BVH格式文件由两部分组成骨架信息和数据块。骨架信息通过树型结构来表示,人体关节用节点表示,肢体用节点之间的连接表示,整个骨架模型表示为一个球棒模型。人体运动捕捉数据是对人体运动姿态的连续采集,可将人体运动数据视为在离散时间点采样得到的人体姿态序列,并用下面公式来表示M= {F(1),F(2),...,F(n)},其中M是一个具有η帧运动数据的运动序列,F(i)表示运动数据M中的第i帧。由于在本方法中,数据帧之间的最小二乘距离需要由关节点三维空间坐标计算得到,因此将数据帧F (i)如下表示
_] F⑴={pia, pij2,
其中Pi,k表示F(i)中第k个关节点的三维坐标,每个关节的三维空间坐标可通过BVH数据中关节的旋转变量以及其父关节的坐标计算得到。3.最小二乘距离曲线[利用奇异值分解(SVD)的方法]由于人体运动数据维数较高,在对数据进行处理的过程中容易陷入维数灾难,在本发明中,引入一个姿态模板,通过计算每一帧运动数据与姿态模板的最小二乘距离,从而将运动数据简化为一条二维运动曲线。下面给出最小二乘距离曲线的计算过程。给定一个姿态模板Q= Iq1, q2,…qm}以及一巾贞运动数据F = {p1;p2,…,PmMt为相对应的两个三维空间点集具有以下关系Pi = Rqi+T+Np i = 1,…,m这里,R为一个3*3的旋转矩阵,T为平移向量,Ni为噪声向量。那么经仿射变换[R,T]作用之后,姿态F与模板姿态Q之间的距离可以表示为d = ±\\N1f=±\\Pl-(Rqi+T)f
i=l i=l容易理解,存在一个仿射变换[RS,TS]使得距离d最小,gp dmm = Yj \Ρι - {Rsqt + Ts )f
J=I其中,IK ^J = arg πι ηΣ Wp1 ~ ( + r)lf
[RJ] i=l则Clniin即为F与Q之间的最小二乘距离。如附图3所示。为了计算最小二乘距离,首先需要计算使其达到最小二乘距离的空间仿射变换[Rs, Ts],这里我们采用奇异值分解的方法对以上问题进行求解,具体过程如下给定两个相对应的三维点集P= {Pi},P' = {p' J,其最小二乘距离仿射变换[Rs, TJ可经过以下6步计算得到步骤I、分别计算P与P'的质心P, P';步骤2、分别计算向量序列Qi = ρ「ρ, q' i = p'「P';步骤3、计算3X3矩阵丑=,这里j表示V i的转置;
i=lcIi步骤4、对矩阵H进行奇异值分解,H = UAVt,计算X = VUt ;
步骤5、计算矩阵X的行列式,如果det(X) = 1,旋转矩阵为R = VUt,如果det (X)=-I,令 Ψ = (V1, V2,_v3),旋转矩阵为 Rs = V' Ut ;步骤6、计算平移向量Ts = p' -Rp ;按照上面的步骤我们可以求得每帧数据与姿态模板之间的最小二乘距离,在引入的数据中包含28个关节点,而人体运动姿态主要由其中19个关节点决定,因此本方法在计算最小二乘距离过程中只考虑这19个主要关节点以减少计算量。然后将相邻运动数据求得的最小二乘距离依次相连便形成了一条二维曲线。如附图4所示。4.运动序列分割在运动序列中,运动的极限姿态往往对应于运动曲线中的顶点位置,因此本发明 采用的运动序列分割方法的基本思想是从运动曲线中提取主要顶点并作为动素分割的依据,然后通过对动素层次的分析实现在语义层次的运动序列分割。4. I运动曲线降噪由于在运动捕捉过程中,受到各种客观原因的影响,捕捉动作会出现微小的跳动,这会造成运动曲线局部出现毛刺现象,进而会影响到极值点的提取。在信号处理中,小波分析是公认的最新时频分析工具,其中小波分析的重要应用之一就是小波降噪,在本发明中,通过小波降噪对运动曲线进行降噪处理。运动曲线作为一组含有噪声的信号序列具有如下形式d (k) = f (k) + ε · e (k), k = I, 2, ...,η这里,d(k)为原始信号,f(k)为主信号,e(k)为噪声信号。一般情况下,噪声信号表现为高频信号,而主信号的频率一般低于噪声信号,因此小波降噪过程如下步骤I、对信号进行小波分解,随着分解层次的升高,噪声信息的含量变的越来越小。(如附图5所示,图中分解层次为5层)步骤2、小波分解高频系数的阈值量化,对各个分解尺度下的高频系数选择一个阈值进行软阈值量化处理。步骤3、小波重构,根据小波分解的最底层低频系数和各层高频系数进行一维小波重构。4. 2动素分割动素的起始和终止姿态与运动曲线中的极值顶点基本相对应,经过小波降噪之后运动曲线变得相对光滑。首先根据与相邻帧最小二乘距离的比较提取所有局部极值顶点,然而一般情况下仍然会有一些相邻极值点的取值很接近,然后通过比较相邻极值点的变化幅度,设定一个阈值,将比较接近的相邻极值点过滤掉,从而提取运动曲线中主要的极值点。(如附图6所示,图a为所有极值点,图b为提取的主要极值点)。其中,过滤相近顶点而设定的阈值对动素分割效果有直接的影响,如果阈值过小,则会出现多余的顶点,会导致将一个动素分割为多个动素;相反,如果阈值设定过大,则会将多个动素合并为一个动素。这些都会影响到语义分割的结果,本发明在实验过程中所采用的阈值为经过多次反复实验而得到的最优值。在实验中发现,动素在对应最小二乘距离特征曲线中的变化幅度一般都在10以上,而冗余极值点之间的变化幅度基本都在5以下,因此我们在区间(5,10)之间选择阈值。通过对数据的反复多次实验,这里我们选择的最优阈值为6. 5。
相邻极值点之间的部分被看做一个动素,运动序列便转化为一个动素序列。为了找出运动的规律特征,对动素进行相似聚类,相似度比较标准为(I)运动曲线相似性比较;(2)动素起始与结束姿态相似性。对动素进行相似比较之后,将相似的动素标以相同的类号,然后得到动素的标号序列,如下所示[I 212121345674589898 10 1112 13 10 11 14 15 16 1718 15 19 20 21 22 23 24 21 22 23 24 21 2225 26 27 26 27]4. 3语义分割人体运动在语义动作层次上可分为周期性运动和非周期性运动,对动素序列进行观察容易发现,周期性运动所包含的动素变化也具有周期性,因此首先根据动素的周期变化提取出所有周期语义运动动作,对于非周期部分,如果运动序列很短,则将其视为两个相邻语义动作之间的过渡,反之,则通过相邻动素的变化幅度对其进行再次分割,如果相邻动素变化幅度相差过大时,在两动素连接处设置一个分割点。通过以上步骤,运动序列的主要语义动作已经被分割出来,但分割点的位置都在曲线极值点的位置处,然而当两个相邻语义动作之间存在过渡片段时,过渡片段会包含语义动作中的部分运动,因此这种情况下,分割点的准确位置一般不在极值点位置处。为了得到运动序列准确的分割位置,最后将过渡片段与语义动作中的相应动素进行逐帧相似比较,当相似度大于设定的阈值时,在该处设定分割点取代原来的分割点,最终实现运动序列的准确分割。也就是说,根据动素变化规律对运动序列进行分割,分割点的位置都在特征曲线的极值顶点处,而当两个语义动作之间存在过渡动作时,过渡动作中包含了其相邻语义动作中的一部分,在本发明的分割方法中,对于这种情况进行了分割点位置校正,通过将过渡动作与语义动作中相应动素进行逐帧相似比较获得更加准确的分割点位置,使得由本方法而获得的分割结果更加接近人工手动分割的结果。下面通过具体的实施方式对本发明的方法做进一步说明。实验环境为Windows XP系统,程序语言为Matlab,硬件配置为Intel 4核主频2. 40GHz CPU,内存为3. 25GB。采用的数据为CMU人体运动捕捉标准数据库中的数据,数据格式为BVH。具体实施步骤为步骤I :选取原始数据。原始数据存储格式如下
权利要求
1.一种基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,包括如下步骤 51、获得人体运动序列; 52、选择人体姿态模板,用作最小二乘距离的比较标准; 53、利用奇异值分解的方法计算运动序列中每帧数据与模板的最小二乘距离,将人体运动序列简化为二维特征曲线; 54、利用小波分析的方法对运动特征曲线进行降噪处理; 55、提取特征曲线中的主要极值顶点,将运动序列分割为动素; 56、对动素进行相似聚类,获得动素的标号序列; 57、对运动序列进行语义分割首先利用人体运动层次化结构特征,根据标号序列中动素变化规律对人体运动序列进行粗略语义分割,然后对语义动作进行边界探测; 58、运动序列分割结果输出。
2.根据权利要求I所述基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,所述步骤S3的过程为 首先,对于载入的人体运动序列,根据骨架结构信息选取决定姿态的关节点,并获得关于这些关节点的每帧人体运动数据; 然后,利用奇异值分解的方法计算每帧人体运动数据与S2中人体姿态模板之间的最小二乘距离; 最后,把最小二乘距离作为特征,将人体运动序列简化为一条二维特征曲线。
3.根据权利要求I所述基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,所述步骤S5的过程为根据运动曲线变化提取所有局部极值顶点,通过设定阈值过滤相邻且取值相近的顶点,获得主要的局部极值顶点;把主要极值顶点作为动素分割点,将运动序列分割为动素。
4.根据权利要求3所述基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,所述步骤S5中,所述阈值选定为6. 5。
5.根据权利要求I所述基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,步骤SI中人体运动序列从现有技术的人体运动库中导入数据。
6.根据权利要求1-5任一所述基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,所述S7的过程为 对于周期运动根据动素的周期变化提取出所有周期语义运动动作; 对于非周期动作运动序列短,则将其视为两个相邻语义动作之间的过渡动作;运动序列长,则通过相邻动素的变化幅度对其进行再次分割;如果相邻动素变化幅度相差过大时,在两动素连接处设置一个分割点; 最终,完成对整个运动序列的分割。
7.根据权利要求6所述基于最小二乘距离特征曲线的人体运动序列分割方法,其特征在于,所述步骤S7中,当两个语义动作之间存在过渡动作时,进行分割点位置校正通过将过渡动作与语义动作中相应动素进行逐帧相似比较,获得分割点位置。
全文摘要
本发明公开了一种基于最小二乘距离特征曲线的人体运动序列分割方法,该方法在人体运动捕捉数据的基础上,引入人体运动姿态之间的最小二乘距离做为人体运动数据的特征,定义姿态之间的相似度,将人体运动序列简化为一条运动曲线,并通过对人体运动规律的分析将人体运动序列分割为具有特定语义的运动片段。本发明方法定义的人体运动姿态相似度符合人的主观判断,分割效果与手动分割结果基本一致。从而为运动数据的检索与合成等数据重用技术提供数据保障和技术支持。
文档编号G06F17/30GK102819549SQ20121011080
公开日2012年12月12日 申请日期2012年4月16日 优先权日2012年4月16日
发明者张强, 刘瑞, 魏小鹏 申请人:大连大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1