公开/公告号CN102339477A
专利类型发明专利
公开/公告日2012-02-01
原文格式PDF
申请/专利权人 中国科学院计算技术研究所;
申请/专利号CN201010233604.2
申请日2010-07-16
分类号G06T17/00;
代理机构北京律诚同业知识产权代理有限公司;
代理人祁建国
地址 100080 北京市海淀区中关村科学院南路6号
入库时间 2023-12-18 04:25:54
法律状态公告日
法律状态信息
法律状态
2020-07-10
未缴年费专利权终止 IPC(主分类):G06T17/00 授权公告日:20130821 终止日期:20190716 申请日:20100716
专利权的终止
2013-08-21
授权
授权
2012-03-28
实质审查的生效 IPC(主分类):G06T17/00 申请日:20100716
实质审查的生效
2012-02-01
公开
公开
技术领域
本发明涉及计算机视觉和模式识别领域,尤其涉及一种自动建立人体链状结构模型的方法及其系统。
背景技术
人体链状结构模型的建立体现了人体各个部分的形状,大小以及连接关系,它蕴含了人体生理结构的先验知识。在有特征点的人体运动分析中,要描绘对象的运动,需要跟踪运动对象的特征点,计算关节中心的位置,驱动骨骼模型。对于不同的运动个体,需要按照人体模型的拓扑结构,指定重构出的三维特征点的名称及位置,建立符合要求的人体链状结构模型,才能继续完成跟踪任务,进而驱动骨骼模型。如何从运动序列的特征点轨迹信息中建立符合要求的人体链状结构为运动跟踪提供准确的先验知识是一项具有挑战性的工作。
以往的工作都是基于手工操作的,在得到特征点的运动序列之后,需要人工寻找运动序列中重构点数目满足要求的某一帧,然后手工标注出所有正确的特征点的名称。这样的操作方法,过程繁琐,效率低下;缺乏刚体间连线的提示信息,标注时很容易出现错误,同时由于重构时的错误发生并不能保证所有参与标注的特征点都是正确重构的特征点。
二十世纪九十年代以来,随着光学运动捕获技术的兴起,大量的三维人体运动捕获数据生成,并被广泛应用在计算机动画,医学仿真以及运动分析等领域。在获取运动捕获数据之后,如何从不准确和不完整的特征点数据中,根据人体模型拓扑结构,实现特征点的自动标注,快速准确的建立符合要求的人体链状结构模型进而运动跟踪,驱动骨骼模型是一个值得研究并具有实际应用价值的问题。
发明内容
本发明的一目的在于提供一种自动建立人体链状结构模型的方法及其装系统,用于从获得的三维特征点运动数据序列中,正确方便的得到适于进行运动跟踪的人体链状结构模型。
为了实现上述目的,本发明提供一种自动建立人体链状结构模型的方法,其特征在于,包括:
步骤1,确定人体链状结构的拓扑模型;
步骤2,获取人体运动的三维特征点序列;
步骤3,自动划分所述三维特征点序列中各个刚体及各个刚体所包含的特征点;
步骤4,根据所述拓扑模型对所述各个刚体所包含的特征点进行名称确定,建立人体链状结构模型。
所述的自动建立人体链状结构模型的方法,其中,所述步骤3中,进一步包括:
步骤31,构造所述三维特征点序列中各三维特征点之间的距离变化矩阵;
步骤32,根据所述距离变化矩阵,获得所述三维特征点序列中人体刚体的划分及所述各个刚体所包含的特征点。
所述的自动建立人体链状结构模型的方法,其中,所述步骤32中,进一步包括:
步骤321,将所述三维特征点序列中的特征点划分为两个集合,分别表示人体结构的上半身和下半身;
步骤322,对上半身的特征点集合划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体;
步骤323,对下半身的特征点集合划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体。
所述的自动建立人体链状结构模型的方法,其中,所述步骤4中,从人体的腰刚体开始,根据所述拓扑模型建立人体链状结构模型,包括:
步骤41,根据所述拓扑模型,确定所述三维特征点序列中该腰刚体所包含的各个特征点的名称;
步骤42,将已确定名称的特征点从特征点集合中去除;
步骤43,根据所述拓扑模型,寻找已确定名称的刚体与尚未确定名称的刚体之间所包含的公共点;
步骤44,将所述公共点加入到去除所述已确定名称的特征点后的特征点集合中,得到包含该公共点的刚体;
步骤45,重复步骤41到步骤44,直到特征点集为空。
所述的自动建立人体链状结构模型的方法,其中,所述步骤41中,进一步包括:
步骤411,对所述拓扑模型和所述三维特征点序列中该腰刚体所包含的特征点进行点集调整;
步骤412,在所述拓扑模型上,对该腰刚体所包含的经过点集调整后的特征点构造第一局部k-d Tree结构;
步骤413,根据所述第一局部k-d Tree结构,构造所述三维特征点序列中该腰刚体所包含的经过点集调整后的特征点的第二局部k-d Tree结构;
步骤414,利用所述第二局部k-d Tree结构确定所述三维特征点序列中该腰刚体所包含的各个特征点的名称。
为了实现上述目的,本发明提供一种自动建立人体链状结构模型的系统,其特征在于,包括:
拓扑模型确定模块,用于确定人体链状结构的拓扑模型;
运动序列获取模块,用于获取人体运动的三维特征点序列;
刚体划分模块,连接所述运动序列获取模块,用于自动划分所述三维特征点序列中各个刚体及各个刚体所包含的特征点;
链状模型建立模块,连接所述拓扑模型确定模块、所述刚体划分模块,用于根据所述拓扑模型对所述各个刚体所包含的特征点进行名称确定,建立人体链状结构模型。
所述的自动建立人体链状结构模型的系统,其中,所述刚体划分模块进一步包括:
矩阵构造模块,用于构造所述三维特征点序列中各三维特征点之间的距离变化矩阵;
特征点获取模块,连接所述矩阵构造模块,用于根据所述距离变化矩阵,获取所述三维特征点序列中人体刚体的划分及所述各个刚体所包含的特征点。
所述的自动建立人体链状结构模型的系统,其中,所述特征点获取模块进一步包括:
特征点划分模块,用于将所述三维特征点序列中的特征点划分为两个集合,分别表示人体结构的上半身和下半身;
第一集合划分模块,连接所述特征点划分模块,用于对上半身的特征点集合划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体;
第二集合划分模块,连接所述特征点划分模块,用于对下半身的特征点集合划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体。
所述的自动建立人体链状结构模型的系统,其中,所述链状模型建立模块进一步包括:
特征点名称确定模块,用于根据所述拓扑模型,确定所述三维特征点序列中该腰刚体所包含的各个特征点的名称;
特征点去除模块,连接所述特征点名称确定模块,用于将已确定名称的特征点从特征点集合中去除;
公共点寻找模块,连接所述特征点名称确定模块,用于根据所述拓扑模型,寻找已确定名称的刚体与尚未确定名称的刚体之间所包含的公共点;
公共点加入模块,连接所述特征点去除模块、所述公共点寻找模块,用于将所述公共点加入到去除所述已确定名称的特征点后的特征点集合中,得到包含该公共点的刚体。
所述的自动建立人体链状结构模型的系统,其中,所述特征点名称确定模块进一步包括:
点集调整模块,用于对所述拓扑模型和所述三维特征点序列中该腰刚体所包含的特征点进行点集调整;
第一树结构构造模块,连接所述点集调整模块,用于在所述拓扑模型上,对该腰刚体所包含的经过点集调整后的特征点构造第一局部k-d Tree结构;
第二树结构构造模块,连接所述点集调整模块、所述第一树结构构造模块,用于根据所述第一局部k-d Tree结构,构造所述三维特征点序列中该腰刚体所包含的经过点集调整后的特征点的第二局部k-d Tree结构;
名称确定模块,连接所述第二树结构构造模块,用于利用所述第二局部k-d Tree结构确定所述三维特征点序列中该腰刚体所包含的各个特征点的名称。
与现有技术相比,本发明的有益技术效果在于:
(a)适用于任何民族,性别以及群体,如运动员或者残疾人;
(a)适用于任何民族,性别以及群体,如运动员或者残疾人;
(b)给定人体运动的三维特征点序列不需要经过复杂的人工操作,就能够得到直接标注好的人体结构模型,简化了运动跟踪时人体结构模型初始化的工作;
(c)建立好的人体结构模型可以直接应用到运动跟踪中,方便快捷。
基于上述优点,利用本发明所公开的方法,能够建立任何链状结构个体的模型。在简化了建立模型过程的同时,也为运动跟踪提供了良好的先验模型和基础。
这种链状结构模型的建立方法不但可以应用于各种群体,同样也适用于动物的链状结构模型的建立。
附图说明
图1为本发明的自动建立人体链状结构模型的方法流程图;
图2为本发明的人体链状结构的拓扑模型;
图3为通用的人体全身特征点示意图;
图4(a)、图4(b)为本发明通过拓扑模型正确建立的人体链状结构模型,(a)为拓扑模型,(b)为建立的人体链状结构模型;
图5为本发明的自动建立人体链状结构模型的系统结构图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
如图1所示,为本发明的自动建立人体链状结构模型的方法流程图,该方法具体包括如下步骤:
步骤110,确定人体链状结构的拓扑模型;
步骤120,获取人体运动的三维特征点序列(简称运动序列);
步骤130,自动划分运动序列中各个刚体及各个刚体所包含的特征点;
步骤140,利用拓扑模型,按照拓扑模型提供的人体链状结构对各个刚体所包含的特征点进行名称确定,建立人体链状结构模型。
进一步地,步骤130又包括:
32)根据距离变化矩阵,采用谱聚类的方法(参见文献On SpectralClustering:Analysis and an algorithm.Andrew Y.Ng Michael I.Jordan YairWeiss.Advances in Neural Information Processing Systems 2001.)得到运动序列中人体刚体的划分及各刚体所包含的特征点。
进一步地,步骤32又包括:
321)采用谱聚类的方法将运动序列中的特征点划分为两个集合分别表示人体结构的上半身和下半身;
322)对人体的上半身特征点集合,利用谱聚类的方法划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体;
323)对人体的下半身特征点集合,利用谱聚类的方法划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体。
进一步地,步骤140从人体的腰刚体开始,包括:
41)根据拓扑模型的信息确定运动序列中该腰刚体所包含的各个特征点的名称;
42)将已确定名称的特征点从特征点集合中去除;
43)根据拓扑模型提供的拓扑信息,寻找已确定名称的刚体与尚未确定名称的刚体之间所包含的公共点;
44)将公共点加入到去除已确定名称的特征点后的特征点集合中,利用谱聚类的方法得到包含该公共点的刚体;
45)重复步骤41到步骤44,直到特征点集为空,该特征点集为去除已确定名称的特征点后的特征点集合。
进一步地,步骤41又包括:
411)对拓扑模型和人体运动序列中该腰刚体所包含的特征点进行点集调整操作;
412)在拓扑模型上,对该腰刚体所包含的经过点集调整的特征点构造局部k-d Tree结构;
413)根据拓扑模型中该腰刚体的局部k-d Tree结构,构造运动序列中该腰刚体所包含的经过点集调整后的特征点的局部k-d Tree结构;
414)利用运动序列中该腰刚体的局部k-d Tree结构确定运动序列中该腰刚体所包含各个特征点的名称。刚体所包含各个特征点的名称。
结合图1所述,进一步通过具体实施例来描述本发明的技术方案:
步骤110,确定人体链状结构的拓扑模型,参见图2所示;
本步骤中,需要确定人体链状的拓扑结构,包括人体结构中刚体的数目,各个刚体中所包含的特征点的数目和名称。本发明引用人体全身作为例子,将人体划分为:头,躯干,左大臂,左小臂,左手,右大臂,右小臂,右手,腰部,左大腿,左小腿,左足,右大腿,右小腿,右足共15个刚体,每个刚体上分布的特征的名称和数目不一样,详细对应情况见下表1,特征点数目和名称见图3。
表1
步骤120,获取人体运动的三维特征点序列(简称运动序列);
本步骤采集人体的运动,得到人体运动的三维特征点序列,是通过运动捕获技术实现的。
运动捕获技术是基于计算机视觉的特征点匹配和重构技术,相关计算方法可以见参照文献:“计算机视觉中的数学方法.吴福朝.科学出版社.2008”。要求得到的三维特征点序列中要尽可能完整,不含或者含有极少错误的点或者
步骤130,自动划分运动序列中各个刚体及各个刚体所包含的特征点;具体地:
31)构造运动序列中各三维特征点集之间的距离变化矩阵。
由于点集的匹配标注是在每一个局部刚体上进行的,因此需要通过运动序列信息自动划分出人体的各个刚体及其所包含的特征点。位于同一个刚体上的各个特征点之间的距离在运动中近似保持不变,因此在整个运动序列中这些特征点之间距离的变化应该近似等于0;而不同刚体上的特征点之间距离的变化值则很大。利用这个性质,可以按照下面的规则构造出各三维特征点之间的距离变化矩阵。
>
其中,dij是第i个特征点和第j个特征点之间距离的标准差。δi和δj分别是第i个特征点和第j个特征点在标准差空间中的第k个近邻。由于人体拓扑结构中每个刚体最多包含5个特征点,所以设定k=5。
321)利用谱聚类算法将特征点集划分为两部分,分别表示人体上半身和下半身。
为了得到正确的刚体划分,首先采用谱聚类的方法,在距离变化矩阵上进行聚类,得到的两个点集分别表示人体结构的上半身和下半身。
322)对人体上半身特征点集合,利用谱聚类的方法划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体。
根据已知的人体拓扑结构模型可以知道,人体结构中上半身特征点的数目要明显多于下半身特征点的数目。选择特征点数目较多的集合,该集合包含的特征点即为人体上半身的特征点集合。需要注意的是腰部的刚体,它既可以属于人体上半身的特征点集合也可以划分为人体下半身。如果获取的人体运动序列中各个关节都得到了充分的运动,腰部刚体往往属于上半身的刚体集合。这样人体的上半身应该包括头,躯干,左大臂,左小臂,左手,右大臂,右小臂,右手,腰部一共9个刚体。利用距离变化矩阵,采用谱聚类的方法,将上半身特征点集合划分为9个子集,每一个子集即代表一个特定的刚体。
323)对人体下半身特征点集合,利用谱聚类的方法划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体。
剩下的尚未处理的包含较少特征点的点集即为人体下半身特征点集合。从已知的人体拓扑结构模型可以知道,人体结构的下半身应该包括左大腿,左小腿,左足,右大腿,右小腿,右足共6个刚体。利用距离变化矩阵,采用谱聚类的方法,将下半身特征点集合划分为6个子集,每一个子集即代表一个特定的刚体。
步骤140,利用拓扑模型,按照拓扑模型提供的人体链状结构对各个刚体所包含的特征点进行名称确定,建立人体链状结构模型,参见图4(a)、图4(b)所示。
该步骤是从腰刚体开始,利用拓扑模型建立人体链状结构模型。由于腰刚体可以属于上半身集合也能够属于下半身集合。选择上半身集合中与下半身特征点集之间具有最小距离变化的点集,即为腰刚体。
41)根据拓扑模型的信息确定运动序列中某一刚体所包含各个特征点的名称。具体地:
411)对拓扑模型和人体运动序列中属于同一刚体的特征点集合进行点集调整。
由于拓扑模型和人体运动序列中属于同一刚体的特征点往往来源于不同的坐标系,在进行后续操作之前需要进行坐标系的统一,这个操作称为点集调整。
设该刚体在拓扑模型和人体运动序列中包含的点集分别为T和Q。则点集T和Q的质心可以通过下面的公式计算:
>>
质心朝向为:
>>
其中,ti∈T,oi∈O,M为点集中所包含点的数目。
对于点集T和点集Q中的每一个点,进行如下的转换:
>
其中R和t分别为合适的旋转矩阵与平移矩阵。
412)在拓扑模型上,对该刚体所包含的经过点集调整的特征点构造局部k-d Tree结构。
拓扑模型上该刚体所包含的点集T经过点集调整之后可以得到新的点集T′。对T′中的各个标记点,构造出局部k-d Tree结构(具体构造方法在文献Similarity k-d Tree method for sparse point pattern matching with underlyingnon-rigidity.Baihua Li,Qinggang Meng and Horst Holstein.Pattern Recognition.2005中有详细介绍)。构造后的局部k-d Tree中每一个叶子结点都包含了相应的特征点的名称信息。
413)根据拓扑模型中该刚体的局部k-d Tree结构,构造运动序列中该刚体所包含的经过点集调整后的特征点的局部k-d Tree结构。
运动序列中同一刚体所包含的点集Q经过点集调整之后可以得到新的点集Q′。根据已经建立好的拓扑模型中T′的局部k-d Tree结构,构造运动序列中该刚体的特征点的局部k-d Tree结构。构造后的局部k-d Tree中每一个叶子结点都包含了一个相应的特征点。
414)利用运动序列中该刚体的局部k-d Tree结构确定运动序列中该刚体所包含各个特征点的名称。
得到拓扑模型和运动序列中对于同一刚体的局部k-d Tree结构之后,同时进行从左到右的树的遍历操作,拓扑模型和运动序列中位于同一位置的叶子结点就确定了一个点间的对应关系,根据点对的对应关系可以得到运动序列中该刚体所包含的特征点的名称。
42)将已确定名称的特征点从特征点集合中去除。
43)根据拓扑模型提供的拓扑信息,寻找已确定名称的刚体与尚未确定名称的刚体之间所包含的公共点。
由于人体是各个刚体之间通过公共点进行连接的链式结构。因此,利用这些公共点可以在未识别刚体中准确找到下一个将要识别的刚体点集。这个步骤可以准确的分辨出刚体的左右肢体。
44)将公共点加入到去除已确定名称的特征点后的特征点集合中,利用谱聚类的方法得到包含该公共点的刚体。
45)重复步骤41到44,直到特征点集为空。
如图5所示,为本发明的自动建立人体链状结构模型的系统结构图。该系统50包括:
拓扑模型确定模块51,用于确定人体链状结构的拓扑模型;
运动序列获取模块52,用于获取人体运动的三维特征点序列(简称运动序列);
刚体划分模块53,连接运动序列获取模块52,用于自动划分运动序列中各个刚体及各个刚体所包含的特征点;
链状模型建立模块54,连接拓扑模型确定模块51、刚体划分模块53,用于根据拓扑模型对各个刚体所包含的特征点进行名称确定,建立人体链状结构模型。
进一步地,运动序列获取模块52通过运动捕获技术,采集人体的运动,得到人体运动的三维特征点序列。
进一步地,刚体划分模块53包括:
矩阵构造模块61,用于构造运动序列中各三维特征点之间的距离变化矩阵;
特征点获取模块62,连接矩阵构造模块61,用于根据距离变化矩阵,获取运动序列中人体刚体的划分及各个刚体所包含的特征点。
进一步地,特征点获取模块62包括:
特征点划分模块71,用于将运动序列中的特征点划分为两个集合,分别表示人体结构的上半身和下半身;
第一集合划分模块72,连接特征点划分模块71,用于对上半身的特征点集合划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体;
第二集合划分模块73,连接特征点划分模块71,用于对下半身的特征点集合划分为指定数目的特征点集合,每个特征点集合表示一个人体刚体。
进一步地,为了得到正确的刚体划分,特征点划分模块71采用谱聚类的方法,在距离变化矩阵上进行聚类,得到的两个点集分别表示人体结构的上半身和下半身。
进一步地,第一集合划分模块72对人体上半身特征点集合,利用谱聚类的方法划分为指定数目的特征点集合。
进一步地,第二集合划分模块73对人体下半身特征点集合,利用谱聚类的方法划分为指定数目的特征点集合。
进一步地,链状模型建立模块54包括:
特征点名称确定模块81,用于根据拓扑模型的信息确定运动序列中该腰刚体所包含的各个特征点的名称;
特征点去除模块82,连接特征点名称确定模块81,用于将已确定名称的特征点从特征点集合中去除,得到去除后的特征点集合;
公共点寻找模块83,连接特征点名称确定模块81,用于根据拓扑模型提供的拓扑信息,寻找已确定名称的刚体与尚未确定名称的刚体之间所包含的公共点;
公共点加入模块84,连接特征点去除模块82、公共点寻找模块83,用于将公共点加入到去除已确定名称的特征点后的特征点集合中,得到包含该公共点的刚体。
进一步地,特征点名称确定模块81包括:
点集调整模块91,用于对拓扑模型和运动序列中该腰刚体所包含的特征点进行点集调整;
第一树结构构造模块92,连接点集调整模块91,用于在拓扑模型上,对该腰刚体所包含的经过点集调整后的特征点构造第一局部k-d Tree结构;
第二树结构构造模块93,连接点集调整模块91、第一树结构构造模块92,用于根据第一局部k-d Tree结构,构造运动序列中该腰刚体所包含的经过点集调整后的特征点的第二局部k-d Tree结构;
名称确定模块94,连接第二树结构构造模块93,用于利用第二局部k-dTree结构确定运动序列中该腰刚体所包含的各个特征点的名称。
本发明提供了一种自动建立人体链状结构模型的方法。在得到个体运动的三维特征点序列之后,自动将人体划分为各个刚体,然后按照人体的链状拓扑结构,逐个刚体的标注特征点名称,进而建立人体链状结构模型。
本发明适用于任何民族,性别以及群体,如运动员或者残疾人;给定人体运动的三维特征点序列不需要经过人工操作,就能够得到直接标注好的人体结构模型,简化了运动跟踪时人体结构模型初始化的工作;建立好的模型可以直接运用到人体的运动跟踪中去,方便快捷。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
机译: -建立分层壳状结构计算机网状模型的方法和系统
机译: 分层壳状结构计算机网格模型的建立方法和系统
机译: 机器视觉系统的装置和方法,包括建立点云模型和/或三维模型,该模型基于不同角度的多个图像并结合了来自摄像机运动和深度的深度信息以及包含导航系统的各种应用程序,包括导航系统估计深度模糊或自动对焦应用中使用的图像之间的相对模糊