一种基于模型分割的三维人体骨架提取方法

更新时间:2023-04-26 11:20:56 阅读: 评论:0


2023年4月26日发(作者:印烙)

一种基于模型分割的三维人体骨架提取方法

甘凌云;侯进

【摘 要】针对当前三维骨架提取方法复杂度较高、提取结果不够准确,以及专门

针对人体模型的方法较少等问题,提出一种基于模型分割的三维人体骨架提取方法。

首先,根据模型顶点与末端特征点的最小测地距离将模型分割;然后由归一化的测

地距离函数确定模型各顶点所属拓扑层次;接着在模型分割的基础上依据拓扑层次

提取出原始骨架点;最后经过微调,将各骨架点按照拓扑关系连接得到较为精确的

人体骨架。实验结果表明,该方法有效降低了骨架提取算法的复杂度,且对不同姿

势的人体模型均可获得较为准确的提取结果。%Aiming at the problems that

current 3D skeleton extraction methods are highly complicated,the

extraction results are not accurate enough,and few of them are specifically

for human body models,we propod a model gmentation-bad 3D

human body skeletons extraction ,we divided the model into

parts according to the mini黄大年电影 mum geodesic distances between feature

points of its vertices and ly,we determined the topological

hierarchies of each vertex of the model by the normalid geodesic

distance function. Thirdly,bad on model gmentation we extracted the

original skeleton points according to their topological

y,after some fine tuning,we connected all the skeleton

points according to their topological relations and obtained a quite

accurate human skeleton. Experimental results showed that the method

reduces the complexity of the skeleton extraction algorithms effectively

and gets more accurate extraction result for human body models with

different postures.

【期刊名称】《计算机应用与软件》

【年(),期】2016(033)009

【总页数】5(P33-37)

【关键词】骨架提取;模型分割;测地距离;拓扑层次

【作 者】甘凌云;侯进

【作者单位】西南交通大学信息科学与技术学院 四川 成都 611756;西南交通大学

信息科学与技术学院 四川 成都 611756; 南京大学计算机软件新技术国家重点实验

江苏 南京 210093

【正文语种】

【中图分类】TP391.9

虚拟人作为人类在虚拟世界中的化身[1],自然成为模拟人类行为的最好工具。而

当前众多领域例如行为识别[2]、影视制作、游戏及动画的大量研究都是基于骨架

进行的。骨架作为三维对象几何和拓扑结构的简化表示[3],不仅保留了模型的原

始形态特征,而且减少了冗余信息,压缩了存储空间,经常被用在形状分析[4]

曲面重建[5]、骨骼动画[6]、模型检索[7]等研究当中。这一切使得对虚拟人和骨架

的相关研究相互依赖、共同发展,所以如何从三维人体模型中提取出有效的骨架信

息,成为近年来专家学者们潜心研究的重要内容。

一方面,一些三维扫描设备可以直接提取出主要关节的大概位置[8],但得到的结

果往往无法达到准确和全面的效果。另一方面,研究人员针对骨架所具有的特点,

也纷纷在不同理论的基础上提出了相应的骨架提取方法。例如,Au[3]人通过全

局位置约束使得模型收缩,直到得到一副零体积的骨骼线。徐超等[9]采用基于距

离变换的方法,通过局部比较快速确定候选骨架点,再经过一定的规则约束生长出

骨架。Jiang[10]人使用基于Voronoi图计算的方法使骨架图收缩,并通过表面

聚类确保收缩过程中的均匀性。但是,这些方法多是从通用的模型中提取出骨架信

息,所以有些并不适用于人体结构,而且容易受到模型姿态等因素的影响。关华等

[11]基于三角简化的方法得到人体模型的Reeb图,再通过计算Reeb图上各节点

的曲率来添加关节点,最终实现模型的骨架提取。吴伟和等人[12]以特征点为起婚庆礼仪 点

计算模型等测地线的中心线,再根据人体测量学知识确定关节点的近似位置。他们

虽然针对人体模型提取出了较为准确的骨架结构,但是计算过程较为复杂,在实现

上有一定的难度。刘辉[13]采用测地距离计算简化模型的特征点,再根据特征点划

分顶点分支并删除多余骨架点生成最终骨架。该方法有效降低了算法复杂度,但存

在提取骨架不够精细的问题。

鉴于基于Reeb图的方法对于模型的旋转、平移具有很强的鲁棒性,且有较强的抗

噪性能,相对于其他方法也更加简单易行,非常适用于像虚拟人这样对称且具有规

则拓扑结构的对象。本文在Reeb图的启发之下,以模型分割为基础,通过综合分

析人体模型的特征点域以及拓扑层次结构来确定骨架点,从而提取出满足人体结构

特点的免税店英文 骨架。实验结果与对比表明,本文方法不仅简单易行,而且对于不同姿势的

人体模型都能得到较为精确的提取效果。

本文借鉴Reeb图的思想,在模型分割的基础上对三维虚拟人三角网格模型进行骨

架提取。在模型分割阶段,利用各顶点到人体末端特征点的测地距离计算特征点域。

然后利用归一化的测地距离函数计算出每一顶点的分类函数值,为下一步提取骨架

点提供重要的拓扑层次信息。接下来综合分析以上两步得到的结果,通过算法获得

原始骨架点。最后对个别骨架点进行调整,并根据模型的拓扑结构连接相应节点完

成最终的提取工作。整个方法计算复杂度低、提取结果较为精准,适用于不同姿势

的人体模型,具有很好的可推广性。其具体算法过程如图1所示。

2.1 特征点的提取

一般将三维网格模型中赵武灵王 局部突出的点作为特征点,它反映了整个模型的空间结构以

及分支情况。本文分别将目标特征点所在的最小区域单独命名,在将模型整体导出

后,以顶点索引特征为判断依据搜索出目标特征点。

假如目标特征点所在的最小区域是由图2的形式构成,四边形BCDE(当然也可能

为其他多边形)为模型内部不封闭的部分。如果顶点ABCDE的索引号依

次为01234,那么△ABC、△ACD、△ADE和△ABE的构成索引对就如表1

所示。

由表1可以明显看出,具有局部突出特征的点A在构成每个索引对中均作出贡献。

所以只要遍历目标特征点所在最小区域的全部三角形,找出在每个三角形中均有出

现的索引,即可确定该索引所代表的顶点为目标特征点,其三维坐标等信息也就继

而得知了。本文以此方法分别提取出位于人体头顶、左指尖、右指尖、左脚尖和右

脚尖的5个顶点作为特征点参与后续计算。

2.2 基于特征点的结构分割

2.2.1 特征点域

本文模型满足下式:

根据以上定义可知,特征点域即为具有某种相同函数特征的顶点集合,处在相同域

内的顶点与对应特征点之间存在某种特殊联系。而正是由于特征点有着描述模型局

部特征的功能,所以在以特征点为参照得到的顶点集合内部也将有着相类似的某种

联系。这样以特征点为依据对模型进行划分,将为后续的骨架提取提供重要的模型

结构信息。

2.2.2 特征点域的计算

鉴于特征点常位于极值部位,很容易使人联想到将模型顶点与特征点间的距离作为

分割依据。然而由于三维模型的空间特殊性,若直接使用欧式距离,很多时候并不

能得到正确的分割结果,所以考虑采用各顶点到相应特征点的测地距离作为划分标

准。

测地距离是指沿表面两点之间最短路径的长度,通常可用迪科斯彻(Dijkstra)算法

来近似计算。与欧式距离相比,测地距离兼顾了曲面上两点之间的几何连通性,因

此可获得更加合理的分割效果。

Dijkstra算法的主要思想如下:

(1) 选择一个基准点b,令集合S={b}T={模型剩余点}T中顶点vi(张澜 xi,yi,zi)若可

直达b(xb,yb,zb),则距离g(vi)=dis(b,vi),否则g(vi)=+∞;

(2) 判断T是否为空,是则转至步骤(4),否则从T中选取一个与b有最小距离的

顶点vj,并将此点加入S

(3) T中顶点vkb的距离大于途经vj再至b的距离,即:

(4) 此时所有顶点都包含在S内,它们与b之间的距离g(vi)即为所求最短路径。

其中:

以各特征点为基准点,采用Dijkstra算法求得模型顶点与各特征点之间的最短路

径,将与各特征点有最小测地距离的顶点分别聚合,即可得到各特征点域。相同域

的顶点与相应特征点在几何表面都有着最为快捷的到达方式。这种到达方式将三维

模型分割成与特征点数目相同的几个部分,构成模型局部独立的几大分支,而准确

的分支信息将成为确定骨架点的一大依据。

3.1 Reeb

Reeb图是三维模型拓扑结构的一种重要描述方式,由定义在一个任意维度对象上

的连续标量函数确定简介怎么写 [14],是数学家Georges Reeb为分析流形拓扑结构而首先

提出,常被用于计算几何、计算机图形学等科研领域。

Reeb图的定义:假设有一流形Mf是定义在M上一个连续而光滑的函数,R

M经由f生成,即f:M→R。对于xi,xj∈M,如果f(xi)=f(xj),那么RMf

映射下生成的Reeb图。

本文在这种思想之下,不同于一般基于Reeb图的方法那样对大量等值线提取中心

连成曲线骨架线,而是由分类函数f对人体进行拓扑计算,再通过参数控制拓扑层

次直接提取骨架点,从而减少了一定的计算量。

3.2 分类函数的选取

高度函数、测地距离和调和函数等都常被用来作为f函数。由于测地距离沿网格表

面计算两点间的最短距离,所以在不同姿势和体态下具有更大的优势,十分有利于

得到准确的分类结果。所以本文在这部分仍然沿用模型分割时特征点域内各顶点与

相应特征点间的测地距离函数进行拓扑划分。同时为便于计算统计,采用归一化后

的测地距离,如下所示:

3.3 拓扑层次的分析

要得到模型相应的层次结构,还要根据一定的规则来处理分类函数值。由于归一化

的分类函数值是区间波动的,所以采用不同的区间段对函数值进行分类。如果将分

类函数的值域划分成K黑靴陆龟 个区间,那么对应的区间段就应该是,K为大于等于1

整数。这样,整个模型被分为f值等间隔的K个水平集,将同一水平集内的顶点聚

合,就可得到模型的拓扑层次结构。

而对于K的取值,如果选择最小值1,那么整个模型将属于同一拓扑层次,此时就

失去了表达人体拓扑信息的意义。随着K取值的增大,相应的拓扑层次也将不断

增加,而过多的层次对于描述人体骨架结构也是没有帮助的,反而会减慢计算速度。

所以,是否合理地选择K的取值,会在很大程度上决定最终实验效果的好坏。

3从左到右、从上至下依次为K=27时一个男性人体模型的拓扑层次结构,

分别使用不同的深度表示具有同一拓扑特征的顶点集合。由图可见,随着K值的

不断增大,拓扑层次也在不断增多。当K=2时,人体模型各部分只是被粗略地区

分,这样提取出的骨架点将较为稀疏;而K=7时,各部分的划分又过于细致,这

时不仅会增加计算量,而且还可能出现由于划分过细而提取出孤立点的情况。经反

复试验发现,当K=4时,人体各部分的层次划分较为合理,提取出的骨架点位置

也与真实人体关节较为接近,而此时计算复杂度也相对较低。

4.1 骨架点的求取

为得到能够反映模型结构特点的骨架点,刘辉[13]使用改进的拓扑结构法遍历所有

网格顶点,以相邻点与当前点的特征点域情况判断当前点是否为分支点,进而将同

一分支集合内的顶点聚合求得骨架点。改进的拓扑结构法适用于存在孔、洞的模型,

避免了处于同一水平集而不同分支内的顶点聚合为同一骨架点的情况。但是由于此

种方法只依据特征点域进行分支判断,所以最终得到的骨架点只存在于模型分支处,

不免显得较为稀疏,可能无法将模型的结构特点作详尽描述。另外,该方法得到的

骨架还有可能出现环路,这时就不得不对骨架进行再次加工。而本文采用综合分析

模型分割结果及拓扑层次的方法,对每一分支内具有相同拓扑层次的顶点聚合,逐

层求解的过程避免了环路的发生,得到的骨架点数量更利于反映模型的结构特点,

对于人体模型来讲具有更为丰富的描述意义。本文求取骨架点的具体算法步骤如下:

(1) 将不同水平集内的顶点按f值分K类存放;

(2) 遍历其一水平集内的所有顶点,如已处理完毕则转至(5),否则将未处理无比美妙的痛苦 顶点v

入栈S

(3) 取栈顶元素vt,遍历其邻点是否与vt在相同的水平集,是则返回(2),否则继

续;

(4) vt添加到vt的骨架点数组,重新遍历其邻点,将与vt在同一水平集的邻点

入栈S,转(3)至栈空;

(5) 对其余水平集重复(2)(4)

(6) 遍历每一骨架点数组中顶点是否具有相同特征点控制域,是则结束,否则继续;

(7) 将具有不同特征点控制域的骨架点数组分离为新的骨架点数组,至此得到基于

模型分割的各部分骨架点数组。

最后,将每一骨架点数组中的顶点作坐标平均,得到所求三维模型的所有骨架点,

如式(6)-(8)所示,此时提取骨架点满足骨架对于中心性的要求。

4.2 个别骨架点的调整

实验发现,本文方法对于人体模型肩关节和踝关节附近的骨架点提取效果有时并不

十分理想。究其原因是由于肩、踝部的几何结构不规则所致,所以还需对不够精确

的骨架点进行位置调整。本文以0.01为步长,将提取的原始骨架点沿需要调整的

坐标轴方向移动,直至到达合适的位置。图4即为这两部分骨架点位置调整前后

的对比示意图。

本文实验是在Windows 7Intel Core i5-3230M CPU2.6 GHz2.88 GB

环境下,利用OpenGL图形库,以Visual Studio 2010作为软件开发平台进行的。

选取的人体模型共有3个,其中2个从Por8中导出,分别为男性人体模型

Nude Man P4 Lo和女性人体模型Nude Woman P4 Lo。另有一自建模型用于

检测骨架驱动效果,进而评价本文方法的实际应用价值。三者皆选头顶和四肢肢端

共计五个顶点为特征点。除人体模型之外,本文也对Por8中的2个非生命体做

了同样实验,各实验模型数据如表2所示。

5和图6即为对Nude Man P4 Lo进行特征点提取和模型分割的结果。图6

用不同深度标记模型具有同一分类特征的顶点集合,可以明显看出整个模型被分为

5个部分,正好对应于所选取的5个末端特征点。

7是文献[13]中改进拓扑结构法的骨架提取效果。从(a)-(c)的人体模型来看,一

方面,提取的分支节点较为稀疏,造成骨架结构十分简单;另一方面,对于双手平

举的模型,虽然从正面看来可以取得形象的骨架效果,但是从俯视图来看就暴露了

骨架穿出皮肤的缺点。对于双手下垂的模型来讲,从正面就能看到其骨架并没有位

于模型之内。对于(d)(e)的非人体模型也同样或多或少地存在类似现象。

本文方法由于是在模型分割的基础上按照拓扑层次逐层求取骨架点,所以不会出现

骨架在模型以外的情况,具体结果如图8所示。从人体模型(a)-(c)可见,无论是在

骨架点数量还是骨架形态上,本文方法所得结果更适合描述人体的结构特点,具有

更为细致的提取效果。

3对文献[13]与本文方法所提取的骨架点数量进行了比较。从表中亦可以看出,

本文方法获得的骨架点更多、更细致,所以在模型的细节描述上具有更大的优势。

9是针对女性模型在不同姿势下进行骨架提取,因为借鉴了Reeb图的思想并

充分考虑人体拓扑结构特点,所以本文方法同样受人体姿势变换的影响较小。实验

结果证明,本文方法不仅对于标准姿态的人体模型能够提取出形象的骨架,还适用

于不同姿势的三维人体模型,且都能够得到较为理想的结果。

最后,为说明本文方法所得骨架可应用于骨骼动画,采用顶点混合绑定的方法使得

骨骼可以对虚拟人皮肤进行驱动,绑定权重由骨骼投影法作粗略估计。图10为虚

拟人从初始姿势到迈步状态的一个动作效果,可见当自建模型的骨架做出一定量运

动之后,皮肤也会随之发生变化。动画效果充分说明本文提取骨架较为合理,能够

驱动虚拟人产生生动逼真的骨骼动画,这部分也将是下一步研究的一个重点。

本文提出一种基于模型分割的三维人体模型骨架提取方法,使得提取结果更加适用

于虚拟人三维模型,并且对于不同姿势都能得到较为精确的提取效果。首先通过计

算每个顶点到特征点的最短路径来划分特征点域分割模型;然后根据各顶点的分类

函数值将三维模型进行拓扑层次的构造;接着依据模型分割结果和拓扑结构提取出

更为精确和丰富的骨架点;最后连接具有相邻关系的节点得到最终提取结果。不同

于一般先求取中心骨架线的方法,本文方法更加简单易行,并且效果显著。下一步

的工作重点在于:(1)对于非人体模型而言,本文方法有可能会出现骨架点提取过

于细致的问题,如图8(e)所示,所以还需对非人形模快速入睡小窍门 型骨架点的精简展开研究;(2)

进一步深入探索,使本文骨架提取结果能够应用于动作识别或者骨骼动画等。


本文发布于:2023-04-26 11:20:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/849006.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:人的骨架图
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图