当前位置: 首页 > 专利查询>大连大学专利>正文

一种运动捕捉数据的关键帧提取方法技术

技术编号:8161932 阅读:271 留言:0更新日期:2013-01-07 19:44
本发明专利技术公开了一种用于被动式光学人体运动捕捉数据中关键帧提取方法。通过分层使用聚类方法,初次聚类得到初始分类数目和初始类划分等第二次聚类所需的阈值,然后采用动态的无监督聚类算法ISODATA再次自动提取聚类,而无需人工预定义阈值。最后得到比较合理的聚类,并提取出离聚类中心最近的运动帧作为关键帧。本发明专利技术在得到较理想的关键帧的同时,能够满足运动捕捉的实时性要求。

【技术实现步骤摘要】

本专利技术涉及,属于图像处理

技术介绍
由于运动捕捉技术获得的动画具有高度的逼真性,20世纪70年代末,运动捕捉技术已经应用于人体动画的制作,而在过去 的十年里,随着计算机技术的迅猛发展,使得基于运动捕获技术的角色动画制作已经逐渐代替传统的关键帧、过程模拟、动力学等计算机动画制作方法,成为制作三维计算机动画的主流方法,同时也成为计算机图形学领域的一大热点,该技术被广泛应用于电影广告、数字娱乐、体育仿真等领域。在具体动画制作过程中,动画师将运动捕获设备捕获得到的真实感的角色运动数据应用在动画角色身上,以此制作完成具有很强真实感的计算机动画。值得一提的是,虚拟角色运动的逼真性往往能掩盖其角色模型本身的粗糙感和不真实性,这大大改善了最后制作完成的计算机动画的视觉效果O运动捕捉的分类方法有很多种。从应用角度来看,可以分为表情捕捉和身体运动捕捉两类;从实时性来看,可以分为实时捕捉系统和非实时捕捉系统两类;而从工作原理角度来看,则可分为机械式、声学式、电磁式和光学式。不同原理的设备各有其优缺点,主要体现在定位精度、实时性、使用方便程度、可捕捉运动范围大小、成本、干扰性、多目标捕捉能力等方面。常用的光学式运动捕捉的优点是表演者活动范围大,无电缆、机械装置的限制,表演者可以自由地表演,使用很方便。其采样速率较高,可以满足多数高速运动测量的需要。而这种方法的缺点是,在使用这种技术的过程中,由于标记点经常会被遮挡或者混淆,运动信息往往会缺失或者计算产生错误,发生这种情况后,需要后期进行人工干预,对标记点空间坐标的计算,需要对标一记点进行识别和跟踪,这就使后期的工作量变得非常大。一般来说,目前的光学式运动捕捉系统价格比较贵,对一使用场地的灯光及反射情况有一定的要求,安装和定位都比较繁琐。再者,运动捕获技术仍存在以下缺点①价格昂贵;②大量冗余数据的存在,不便于运动数据的压缩存储及浏览;③运动数据重用性差,表示形象特征的高维信号难以进行编辑等。鉴于运动捕获技术存在上述不足之处,近年来对运动捕获数据进行后期处理成为国内外众多研究学者竟相研究的热点问题。如果一个动画师只想修改运动中的一部分动作,那么他需要修改每一帧的关节信息,这将耗费大量的时间。而关键帧技术恰好能解决这个问题。这个过程需要从大量的运动数据中选取一些具有代表性的帧,动画师只需修改关键帧的信息,再通过插值还原等方法重建运动序列来达到想要的结果。关键帧提取是一种被广泛应用于视频分析与检索领域的技术,与二维时序视频数据中的关键帧不同,在运动捕获数据中,关键帧指能够代表运动序列的三维骨架数据。现有的运动捕获数据关键帧提取技术主要分为三大类基于曲线简化、聚类和基于矩阵分解的技术。基于曲线简化就是将运动捕获数据中每一帧看成高维空间中的一点,通过按序连接整段数据中的数据点,将原始运动视为高维空间中的一段曲线,然后采用曲线简化算法提取关键帧;聚类是将N帧运动数据聚类到K个群集合中,取各集合中的某一帧作为关键帧;基于矩阵分解就是将每一帧的所有关节点放在一个矩阵的同一行上,然后这个矩阵被近似的因式分解成一个权重矩阵和一个关键帧矩阵。上述方法,均需预先指定一些经验阈值,这些阈值对某些实验数据有效,而对有些是无效的。尤其是在对运动内容一无所知的情况下,要求预先指定决定其中需要的各个经验阈值是一个非常困难的问题。而众所周知,基于差异的关键帧提取技术对于相关参数的设定非常敏感,初值设置不当对实验结果影响很大。而运功序列中运动类型速率的不同,运动内容千差万别,不可能用统一的阈值对所有的实验数据均取得较好的效果。从而设计一种能够自适应地根据当前运动序列,获得动态数据来进行动态设定所需参数,进而提高效率,减少误差的关键帧提取方法仍然是 一个具有挑战性的任务。
技术实现思路
为了实现上述的目标,本专利技术的目的在于提出了,该方法通过分层使用聚类的方法提取关键帧,着重解决在运动内容未知的情况下需要多次人工设定阈值的问题,从而提高了数据的处理效率,使得在处理过程中无需人工干预,并且在原始数据上进行操作的短耗时也满足运动捕捉的实时性要求。本专利技术的技术方案如下第一步初始聚类的划分和所需阈值计算,其由以下4步骤构成步骤I.有N帧的运动序列连续读入,这里利用欧拉公式得到的相邻帧之间的相似度存放在数组中,数组中共有N-I个元素;所述利用欧氏距离来表示相邻运动帧之间的相似度,采用的计算公式是权利要求1.,其特征在于 第一 步初始聚类的划分和所需阈值计算,其由以下4步骤构成 步骤I.有N帧的运动序列连续读入,这里利用欧拉公式得到的相邻帧之间的相似度存放在数组中,数组中共有N-I个元素; 所述利用欧氏距离来表示相邻运动帧之间的相似度,采用的计算公式是 所述F是运动帧,Co是各个关节点的权值,t指的是各个关节点; 步骤2.数组中存放的相似度的元素作为参数分别依次进行聚类,分为两类, 而且通过比较得到的两类的离散度最小时候的相似度值,此时的相似度作为所求的阈值之一; 所有基于帧间差异来判断两帧是否相似的方法都要指定阈值,采用以下步骤来计算出第二次聚类所需的各种阈值参数 (1)设一个运动序列中共有N帧仍,F2,F3,, FJ,连续读入这些运动,并利用上述公式⑴来计算相邻帧之间的相似度,得到数组Dif= (D1, D2,, DN_J,所述N是运动序列中总的运动帧数目; (2)依次以Dif中的相似度为参数分别依次进行聚类,分为两类,而且通过比较得到的两类的离散度最小时候的相似度值。此时的相似度作为所求的阈值之一;离散度的计算公式如下 sI2 = T-Jz (:::::(云 S2 = 1............iD::醫紗 I—/):)).Tj I — If w I,JL w A Jl I ^ II* / jIS2=Hiin (S12+S22); 所述I < T < N-2,N是运动序列中总的帧数目;是两个聚类离散度的和;当最小的时候,此时分得两个聚类的相似度Dt就是我们在下一步聚类过程中需要的参数之一; 步骤3.利用得到离散度最小的聚类时候的相似度开始对运动序列进行分类,如果相邻的帧的相似度大于或等于Dt,则开始新的类;否则如果当前帧与当前聚类中心的距离大于等于Dt时,开始新的类; 步骤4.当此算法停止的时候,得到划分的初始类的数目和初始类的划分,以及第二次聚类所需的其他阈值; 第二步利用ISODATA进行动态聚类,步骤如下; 步骤I.利用ISODATA进行动态聚类并提取关键帧,过程如下 动态聚类的分裂如果某类的类内离散度大于各个分类离散度的均值,且该类的最大标准偏差大于各个相邻聚类间的最大标准偏差时,将此类分裂成新的两类;并且如果此时的聚类数目小于K/2或是当迭代次数是奇数且此时的聚类数目在K/2和2K之间的时候分裂成两类;所述K是期望的最大聚类数目; 动态聚类的合并如果某相邻聚类的类中心的相似度小于在初始分类得到两类离散度最小时候的相似度值时,合并这两个聚类;或者聚类内部的帧数目小于一个聚类可容纳的最少帧数目时将其与相邻的聚类合并;再者如果聚类的数目大于2K或者当前迭代次数是偶数且此时聚类数目在K/2和2K之间的时候合并两类; 步骤2.确定阈值;所述确定阈值的方法本文档来自技高网
...

【技术保护点】
一种运动捕捉数据的关键帧提取方法,其特征在于:第一步:初始聚类的划分和所需阈值计算,其由以下4步骤构成:步骤1.有N帧的运动序列连续读入,这里利用欧拉公式得到的相邻帧之间的相似度存放在数组中,数组中共有N?1个元素;所述利用欧氏距离来表示相邻运动帧之间的相似度,采用的计算公式是:sim(Fi,Fj)=Σt=1nωt(Fi,t-Fj,t)2所述F是运动帧,ω是各个关节点的权值,t指的是各个关节点;步骤2.数组中存放的相似度的元素作为参数分别依次进行聚类,分为两类,而且通过比较得到的两类的离散度最小时候的相似度值,此时的相似度作为所求的阈值之一;所有基于帧间差异来判断两帧是否相似的方法都要指定阈值,采用以下步骤来计算出第二次聚类所需的各种阈值参数:(1)设一个运动序列中共有N帧{F1,F2,F3,...,FN},连续读入这些运动,并利用上述公式(1)来计算相邻帧之间的相似度,得到数组Dif={D1,D2,...,DN?1},所述N是运动序列中总的运动帧数目;(2)依次以Dif中的相似度为参数分别依次进行聚类,分为两类,而且通过比较得到的两类的离散度最小时候的相似度值。此时的相似度作为所求的阈值之一;离散度的计算公式如下:δ12=1TΣi=1T(Di-arg(Σi=1TDi)),δ22=1N-1-TΣi=T+1N-1(Di-arg(Σi=T+1N-1Di)),δ2=min(δ12+δ22);所述1≤T≤N?2,N是运动序列中总的帧数目;是两个聚类离散度的和;当最小的时候,此时分得两个聚类的相似度DT就是我们在下一步聚类过程中需要的参数之一;步骤3.利用得到离散度最小的聚类时候的相似度开始对运动序列进行分类,如果相邻的帧的相似度大于或等于DT,则开始新的类;否则如果当前帧与当前聚类中心的距离大于等于DT时,开始新的类;步骤4.当此算法停止的时候,得到划分的初始类的数目和初始类的划分,以及第二次聚类所需的其他阈值;第二步:利用ISODATA进行动态聚类,步骤如下;步骤1.利用ISODATA进行动态聚类并提取关键帧,过程如下:动态聚类的分裂:如果某类的类内离散度大于各个分类离散度的均值,且该类的最大标准偏差大于各个相邻聚类间的最大标准偏差时,将此类分裂成新的两类;并且如果此时的聚类数目小于K/2或是当迭代次数是奇数且此时的聚类数目在K/2和2K之间的时候分裂成两类;所述K是期望的最大聚类数目;动态聚类的合并:如果某相邻聚类的类中心的相似度小于在初始分类得到两类离散度最小时候的相似度值时,合并这两个聚类;或者聚类内部的帧数目小于一个聚类可容纳的最少帧数目时将其与相邻的聚类合并;再者如果聚类的数目大于2K或者当前迭代次数是偶数且此时聚类数目在K/2和2K之间的时候合并两类;步骤2.确定阈值;所述确定阈值的方法如下:K:期望得到的最大聚类数目,无需从太短的序列里提取关键帧,我们使用的运动捕捉数据库的采样频率是每秒120帧,每秒最多提取四个关键帧即可,ON:一个聚类中的最小样本数目,通过上述K取值为25;OS:距离当前聚类中心的在最大标准偏差参数,这里取在初始聚类中得到的DT相对应的两帧Fi和Fi+1之间的标准偏差,所述OS在每次动态的分裂和合并后会进行动态的计算,其公式为:OS=Σt=1n|Fi,t-Fi+1,t|;OC:两个聚类之间距离的最小值,选取初始分类中得到的DT,假如在每次动态的分裂和合并后DT相对应的两帧是Fi和Fi+1,利用公式DT=Σt=1nωt(Fi,t-Fi+1,t)2进行动态的计算DT;L:每次迭代可以合并的聚类数目,这里我们按照运动序列的顺序,根据合并和分裂规则处理相邻的帧或是聚类;I:最大的迭代次数,用于判断迭代终止的一个条件;经过每次迭代后的聚类数目对多会是原来运动序列帧的数目的一半,当达到期望的最大聚类数目时需要的迭代次数可以由以下式子得到:ON和L的值与运动内容是无关的,对于不同类型的运动序列可以设定同样的数值,而K、OS、OC和I则是根据运动内容动态计算得到的;这些设置保证了阈值的自适应设定而无需人工设定;步骤3.当完成一次迭代之后检测是否满足终止迭代的条件,如果满足就终止迭代,并提取出每个聚类中距离类中心最近的帧作为最终的关键帧;否则就返回经过初始化的上次迭代后的各个参数继续进行迭代操作,直至满足停止迭代的条件为止。FDA00002021646100031.jpg,FDA00002021646100034.jpg...

【技术特征摘要】

【专利技术属性】
技术研发人员:张强于少沛周东生
申请(专利权)人:大连大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1