CN105513136B - A kind of 3D actor model framework extraction methods based on level set central cluster - Google Patents
A kind of 3D actor model framework extraction methods based on level set central cluster Download PDFInfo
- Publication number
- CN105513136B CN105513136B CN201510868466.8A CN201510868466A CN105513136B CN 105513136 B CN105513136 B CN 105513136B CN 201510868466 A CN201510868466 A CN 201510868466A CN 105513136 B CN105513136 B CN 105513136B
- Authority
- CN
- China
- Prior art keywords
- mrow
- msub
- level set
- skeleton
- joint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000005520 cutting process Methods 0.000 claims abstract description 23
- 210000000323 shoulder joint Anatomy 0.000 claims description 42
- 210000002414 leg Anatomy 0.000 claims description 25
- 210000003857 wrist joint Anatomy 0.000 claims description 15
- 210000002310 elbow joint Anatomy 0.000 claims description 12
- 210000001503 joint Anatomy 0.000 claims description 11
- 210000000544 articulatio talocruralis Anatomy 0.000 claims description 9
- 210000004394 hip joint Anatomy 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 9
- 210000000689 upper leg Anatomy 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 230000004323 axial length Effects 0.000 claims description 6
- 210000002683 foot Anatomy 0.000 claims description 6
- 210000003128 head Anatomy 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims description 3
- 210000003108 foot joint Anatomy 0.000 claims description 3
- 210000004247 hand Anatomy 0.000 claims description 3
- 210000003739 neck Anatomy 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000011426 transformation method Methods 0.000 abstract description 7
- 238000004519 manufacturing process Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000005477 standard model Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000036624 brainpower Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种基于水平集中心聚类的3D角色模型骨架提取方法,包括以下步骤:利用高度函数作为Morse函数对3D角色模型进行切割处理,得到切割后的交点集合;将切割后的交点集合根据交点之间的连通性来进行聚类,聚类成若干子水平集;将面积大于水平集面积阈值且似圆性大于似圆性阈值的水平集筛选出来;将筛选之后的水平集利用水平集的中心进行聚类,从而将水平集分割为3D角色模型的双臂、双腿以及躯干;将得到的骨架线嵌入到3D角色模型中。本发明能够通过自动为三维动画模型进行骨架的提取,骨架提取所采用的水平集聚类方法,相比于传统的距离变换法,通过使用切割模型,划分模型部位,分别计算各部分关节等方法,其平均所消耗的时间更少,误差更小。
The present invention provides a method for extracting a 3D character model skeleton based on level-set center clustering, comprising the following steps: cutting the 3D character model using a height function as a Morse function to obtain a set of intersection points after cutting; combining the set of intersection points after cutting Clustering is performed according to the connectivity between intersection points, and clustered into several sub-level sets; the level sets whose area is greater than the threshold of the level set area and whose circularity is greater than the threshold of circularity are screened out; The center of the set is clustered, so that the level set is divided into arms, legs and torso of the 3D character model; the resulting skeleton lines are embedded into the 3D character model. The present invention can automatically extract the skeleton for the three-dimensional animation model. Compared with the traditional distance transformation method, the horizontal set clustering method used in the skeleton extraction uses the cutting model, divides the model parts, and calculates the joints of each part respectively. , the average time consumed is less and the error is smaller.
Description
技术领域technical field
本发明属于三维动画制作技术领域,特别涉及一种基于水平集中心聚类的3D角色模型骨架提取方法。The invention belongs to the technical field of three-dimensional animation production, in particular to a method for extracting a skeleton of a 3D character model based on horizontal set center clustering.
背景技术Background technique
随着虚拟现实技术以及数字媒体技术的发展,人们对于三维角色模型动画的制作的需求也越来越多,作为多媒体技术的重要组成部分,三维动画制作的技术在近年来得到了很大的发展,但是在目前的主流的三维角色制作过程当中仍然以手工制作为主,主要采用3DMax或者是Maya等商业软件进行设计和制作,但是现阶段的动画创作产业仍面临着缺少合适的计算机动画制作相关方面知识和经验的优秀的人才资源等问题,因此在当今的三维动画的制作过程中仍然需要一定的劳动力以及花费大量的脑力。人们现在使用较为广泛的计算机动画技术有关键帧以及动力学方法等。但是,这些方法都有共同的一个缺陷:制作耗时耗力,同时需要制作者具备较高程度的制作技巧和专业知识。With the development of virtual reality technology and digital media technology, people have more and more demands for the production of 3D character model animation. As an important part of multimedia technology, the technology of 3D animation production has been greatly developed in recent years. However, in the current mainstream 3D character production process, manual production is still the main method, and commercial software such as 3DMax or Maya is mainly used for design and production. However, the animation creation industry at this stage still faces the lack of suitable computer animation production related aspects. Therefore, in the production process of today's 3D animation, a certain amount of labor and a lot of brainpower are still required. People now use more widely computer animation techniques such as key frame and dynamic method. However, these methods all have a common defect: production is time-consuming and labor-intensive, and requires producers to have a relatively high degree of production skills and professional knowledge.
随着更多人对于三维角色动画制作出现需求,需要一种简便的方式来进行三维动画的制作,以让更多缺少三维人物动画制作经验的人参与到这项工作中来,例如用户自己选择模型,动作等,之后由程序自动生成合适的动画。因此自动进行三维人物动画制作技术已成为科研工作者或者工程师们的研究热点。这样不仅省时省力,还能让更多人参与到动画制作中。在这个背景下对运动重定向技术中模型的骨架提取进行简化和自动化,成为了角色动画领域中非常关键的一环。As more people demand for 3D character animation production, a simple way is needed to produce 3D animation, so that more people who lack experience in 3D character animation production can participate in this work. For example, users choose Models, actions, etc., after which the appropriate animations are automatically generated by the program. Therefore, automatic 3D character animation production technology has become a research hotspot for scientific researchers or engineers. This not only saves time and effort, but also allows more people to participate in animation production. In this context, the simplification and automation of the skeleton extraction of the model in the motion redirection technology has become a very critical part in the field of character animation.
发明内容Contents of the invention
本发明的目的在于提供一种基于水平集中心聚类的3D角色模型骨架提取方法。The object of the present invention is to provide a method for extracting a skeleton of a 3D character model based on horizontal clustering.
本发明的技术方案是:Technical scheme of the present invention is:
一种基于水平集中心聚类的3D角色模型骨架提取方法,包括以下步骤:A method for extracting a skeleton of a 3D character model based on level-set central clustering, comprising the following steps:
步骤1:利用高度函数作为Morse函数对3D角色模型进行切割处理,得到切割后的交点集合;Step 1: Use the height function as the Morse function to cut the 3D character model to obtain the set of intersection points after cutting;
步骤2:将切割后的交点集合根据交点之间的连通性来进行聚类,聚类成若干子水平集:如果某两个交点为高度平面与一个三角网格面相交形成的,则将这两个交点保存成一个线段,利用线段之间的连接性来进行聚类,得到若干子水平集;Step 2: Cluster the cut intersection points according to the connectivity between the intersection points, and cluster them into several sub-level sets: if some two intersection points are formed by the intersection of a height plane and a triangular mesh surface, then these The two intersection points are saved as a line segment, and the connectivity between the line segments is used for clustering to obtain several sub-level sets;
步骤3:将水平集的面积和似圆性作为筛选条件,将面积大于水平集面积阈值且似圆性大于似圆性阈值的水平集筛选出来;Step 3: Use the area and circularity of the level set as the screening conditions, and filter out the level sets whose area is greater than the level set area threshold and whose circularity is greater than the circularity threshold;
步骤4:将筛选之后的水平集利用水平集的中心进行聚类,从而将水平集分割为3D角色模型的双臂、双腿以及躯干;Step 4: Clustering the filtered level set by using the center of the level set, so as to divide the level set into arms, legs and torso of the 3D character model;
步骤5:将得到的骨架线嵌入到3D角色模型中。Step 5: Embed the obtained skeleton lines into the 3D character model.
所述步骤1的具体步骤如下:The concrete steps of described step 1 are as follows:
步骤1-1:选取高度函数对3D角色模型进行处理得到3D角色模型高度hmodel;Step 1-1: Select a height function to process the 3D character model to obtain the height h model of the 3D character model;
步骤1-2:设定3D角色模型切割次数n,从3D角色模型的最上方开始进行切割,每隔hmodel/n距离取一个平面即高度平面;Step 1-2: Set the cutting times n of the 3D character model, start cutting from the top of the 3D character model, and take a plane every h model /n distance, which is the height plane;
步骤1-3:读取FBX文件中的三角网格面,将每一个三角网格面在y轴方向的最大值ymax和最小值ymin保存到数组中,对各三角网格面在y轴方向的最大值ymax进行排序;Step 1-3: Read the triangular mesh surface in the FBX file, save the maximum value y max and the minimum value y min of each triangular mesh surface in the y-axis direction to an array, and set each triangle mesh surface in y The maximum value y max in the axis direction is sorted;
步骤1-4:计算3D角色模型的每一个高度平面与三角网格面的交点,得到各高度平面能够相交的三角网格面列表;Step 1-4: Calculate the intersection point between each height plane of the 3D character model and the triangular mesh surface, and obtain a list of triangular mesh surfaces that can be intersected by each height plane;
步骤1-5:根据各高度平面能够相交的三角网格面列表,确定各高度平面与其能够相交的三角网格面之间的交点,即切割后的交点集合。Steps 1-5: According to the list of triangular mesh surfaces that can be intersected by each height plane, determine the intersection points between each height plane and the triangular mesh surfaces that can intersect, that is, the set of intersection points after cutting.
所述步骤1-4的具体步骤如下:The concrete steps of described steps 1-4 are as follows:
步骤1-4-1:遍历数组中的每一个三角网格面,如果当前三角网格面的在y轴方向的最大值ymax大于当前高度平面Pcurrent,则执行步骤1-4-2,否则从当前三角网格面之后的所有三角网格面都不再与当前高度平面Pcurrent相交,停止遍历,得到的三角网格面列表为能够与当前高度平面Pcurrent相交的三角网格面列表;Step 1-4-1: Traverse each triangular mesh surface in the array, if the maximum value y max of the current triangular mesh surface in the y-axis direction is greater than the current height plane P current , then execute step 1-4-2, Otherwise, all triangular mesh faces after the current triangular mesh face will no longer intersect with the current height plane P current , stop the traversal, and the obtained triangular mesh face list is a list of triangular mesh face faces that can intersect with the current height plane P current ;
步骤1-4-2:判断当前三角网格面的在y轴方向的最小值ymin是否大于当前高度平面Pcurrent:是,则当前三角网格面在当前高度平面Pcurrent之上,遍历下一个三角网格面,返回步骤1-4-1;否则当前三角网格面与当前高度平面Pcurrent能够相交,保存当前三角网格面,遍历下一个三角网格面,返回步骤1-4-1。Step 1-4-2: Determine whether the minimum value y min of the current triangular mesh surface in the y-axis direction is greater than the current height plane P current : if yes, the current triangular mesh surface is above the current height plane P current , and traverse A triangular mesh surface, return to step 1-4-1; otherwise, the current triangular mesh surface can intersect with the current height plane P current , save the current triangular mesh surface, traverse the next triangular mesh surface, and return to step 1-4- 1.
所述步骤3的具体步骤如下:The concrete steps of described step 3 are as follows:
步骤3-1:设定筛选条件,包括水平集面积阈值和似圆性阈值;Step 3-1: Set filter conditions, including level set area threshold and circularity threshold;
步骤3-2:计算每一个水平集的面积和似圆性;Step 3-2: Calculate the area and circularity of each level set;
步骤3-3:将面积大于水平集面积阈值且似圆性大于似圆性阈值的水平集筛选出来。Step 3-3: Filter out the level sets whose area is greater than the level set area threshold and whose circularity is greater than the circularity threshold.
所述步骤4的具体步骤如下:The concrete steps of described step 4 are as follows:
步骤4-1:计算每一个水平集的中心点,形成中心点集;Step 4-1: Calculate the center point of each level set to form a center point set;
步骤4-2:对所有中心点按照三维空间中除高度外的另两个方向的轴向长度值进行排序,轴向长度值最大的方向即3D角色模型的双臂伸展方向;Step 4-2: Sort all the center points according to the axial length values of the other two directions in the three-dimensional space except the height, and the direction with the largest axial length value is the direction in which the arms of the 3D character model are extended;
步骤4-3:计算排序后的中心点集的前5个中心点的相邻中心点间距离的平均值、后5个中心点的相邻中心点间距离的平均值,分别将这两个平均值的2倍作为两个聚类半径;Step 4-3: Calculate the average value of the distance between the adjacent center points of the first 5 center points of the sorted center point set, and the average value of the distance between the adjacent center points of the last 5 center points, respectively. 2 times the average value as the two clustering radii;
步骤4-4:分别选取排序后的中心点集的第一个中心点、最后一个中心点作为起始点进行聚类,得到3D角色模型的双臂的水平集;Step 4-4: respectively select the first center point and the last center point of the sorted center point set as the starting point for clustering, and obtain the level set of the arms of the 3D character model;
步骤4-5:对所有中心点按纵轴方向由小到大进行排序,找到双腿的端点值,进行与步骤4-4相同的聚类,得到3D角色模型的双腿的水平集;Step 4-5: sort all the center points from small to large in the direction of the vertical axis, find the endpoint values of the legs, perform the same clustering as in step 4-4, and obtain the level set of the legs of the 3D character model;
步骤4-6:将中心点集中没被聚类的中心点作为3D角色模型的躯干的水平集的中心点;Steps 4-6: use the center point that is not clustered in the center point set as the center point of the level set of the torso of the 3D character model;
步骤4-7:计算3D角色模型的双臂的水平集的中心点的拟合直线、双腿的水平集的中心点的拟合直线、躯干的水平集的中心点的拟合直线分别作为双臂的骨架线、双腿的骨架线、躯干的骨架线。Steps 4-7: Calculate the fitting straight line of the center point of the level set of the arms of the 3D character model, the fitting straight line of the center point of the level set of the legs, and the fitting straight line of the center point of the level set of the torso respectively as double The skeleton line of the arm, the skeleton line of the legs, and the skeleton line of the torso.
所述步骤5的具体步骤如下:The concrete steps of described step 5 are as follows:
步骤5-1:计算关键关节点的位置;Step 5-1: Calculate the position of key joint points;
关键关节点包括:头部、颈部、肩关节、肘关节、腕关节、手部、髋关节、大腿关节、踝关节以及脚部;Key joint points include: head, neck, shoulder joint, elbow joint, wrist joint, hand, hip joint, thigh joint, ankle joint and foot;
步骤5-2:利用关键关节点的位置与标准骨架结构之间进行匹配,通过关节点之间的位置比例求出其余所有关节点的位置;Step 5-2: use the position of the key joint points to match the standard skeleton structure, and calculate the positions of all other relevant nodes through the position ratio between the joint points;
步骤5-3:连接所有语义上相关联的关节点得到最终的骨架,嵌入到3D角色模型中。Step 5-3: Connect all semantically related joint points to get the final skeleton, which is embedded in the 3D character model.
所述步骤5-1的具体步骤如下:The concrete steps of described step 5-1 are as follows:
步骤5-1-1:由切割后的3D角色模型每一部分的骨架线的末端求得头部、手部、髋关节、大腿关节以及脚部关节点的位置:腿部骨架线两个末端是大腿关节和脚部;手臂骨架线下部末端是手部;躯干骨架线两个末端是头部和髋关节;Step 5-1-1: Obtain the positions of the head, hands, hip joints, thigh joints and foot joint points from the ends of the skeleton lines of each part of the cut 3D character model: the two ends of the leg skeleton lines are Thigh joints and feet; the lower end of the arm skeleton line is the hand; the two ends of the trunk skeleton line are the head and hip joints;
步骤5-1-2:利用水平面切割3D角色模型的双臂部分的三角网格面得到的水平集的周长,确定腕关节的位置;Step 5-1-2: use the perimeter of the level set obtained by cutting the triangular mesh surface of the arms of the 3D character model with the horizontal plane to determine the position of the wrist joint;
步骤5-1-3:计算颈部关节点的位置:利用步骤5-1-2的方法处理手臂以上的躯干位置的网格模型的水平集,将周长最小的水平集的中点作为颈部关节点的位置;Step 5-1-3: Calculate the position of the neck joint point: use the method of step 5-1-2 to process the level set of the mesh model of the torso position above the arm, and use the midpoint of the level set with the smallest circumference as the neck The location of the ministries;
步骤5-1-4:计算肩关节的位置:利用双臂的骨架线的方向与肩关节所在平面相交得到一个初始肩关节位置再进行修正;Step 5-1-4: Calculate the position of the shoulder joint: Use the direction of the skeleton line of the arms to intersect the plane where the shoulder joint is located to obtain an initial shoulder joint position and then correct it;
步骤5-1-5:计算踝关节的位置:首先选取步骤3筛选出的水平集中腿部对应的水平集,然后计算所选取的各相邻水平集的中点连接线间夹角,不小于设定阈值的夹角位置即踝关节位置。Step 5-1-5: Calculate the position of the ankle joint: first select the level set corresponding to the leg in the level set screened out in step 3, and then calculate the angle between the connecting lines of the midpoints of the selected adjacent level sets, not less than The angle position where the threshold is set is the ankle joint position.
所述步骤5-1-2的具体步骤如下:The concrete steps of described step 5-1-2 are as follows:
步骤5-1-2-1:利用双臂的骨架线的方向与纵轴正方向的夹角计算出一个旋转矩阵;Step 5-1-2-1: Calculate a rotation matrix using the angle between the direction of the skeleton line of the arms and the positive direction of the longitudinal axis;
旋转矩阵表示如下:The rotation matrix is represented as follows:
其中,θ为双臂的骨架线的方向与纵轴正方向的夹角,(nx,ny,nz)为旋转轴,利用双臂的骨架线与纵轴正方向叉乘求得;Among them, θ is the angle between the direction of the skeleton line of the arms and the positive direction of the longitudinal axis, (n x , ny , nz ) is the rotation axis, which is obtained by cross-producting the skeleton line of the arms and the positive direction of the longitudinal axis;
步骤5-1-2-2:将双臂网格模型乘以该旋转矩阵,将双臂网格模型直立;Step 5-1-2-2: Multiply the dual-arm grid model by the rotation matrix, and erect the dual-arm grid model;
步骤5-1-2-3:利用水平面对双臂网格模型进行横切操作,利用步骤2的方法得到一系列水平集;Step 5-1-2-3: Use the horizontal plane to perform cross-cutting operations on the double-arm grid model, and use the method in step 2 to obtain a series of level sets;
步骤5-1-2-4:如果某一个高度平面下有多个水平集,则将所有水平集的顶点视为一个点集,利用Graham算法计算该点集的凸包,用该凸包作为该高度平面下的唯一水平集;Step 5-1-2-4: If there are multiple level sets under a certain height plane, treat the vertices of all level sets as a point set, use the Graham algorithm to calculate the convex hull of the point set, and use the convex hull as the only level set below that height plane;
步骤5-1-2-5:计算每一个水平集的周长,将周长最小的水平集的中点作为手腕关节点的位置。Step 5-1-2-5: Calculate the perimeter of each level set, and use the midpoint of the level set with the smallest perimeter as the position of the wrist joint.
所述步骤5-1-4的具体步骤如下:The concrete steps of described step 5-1-4 are as follows:
步骤5-1-4-1:利用双臂的骨架线纵轴值最大的点确定的平面以及颈部关节点纵轴值确定的平面的中间平面,得到肩关节所处平面;Step 5-1-4-1: use the plane determined by the point with the largest vertical axis value of the skeleton line of both arms and the middle plane of the plane determined by the vertical axis value of the neck joint point to obtain the plane where the shoulder joint is located;
步骤5-1-4-2:利用双臂的骨架线的方向与肩关节所在的平面相交得到一个交点,该交点为肩关节的位置;Step 5-1-4-2: Use the direction of the skeleton line of both arms to intersect the plane where the shoulder joint is located to obtain an intersection point, which is the position of the shoulder joint;
步骤5-1-4-3:利用肩关节的位置以及手腕关节点的位置,通过标准骨架结构中肘关节与肩关节、手腕关节点的位置比例得到肘关节的初始位置;Step 5-1-4-3: Use the position of the shoulder joint and the position of the wrist joint point to obtain the initial position of the elbow joint through the position ratio of the elbow joint, shoulder joint and wrist joint point in the standard skeleton structure;
步骤5-1-4-4:将位于肘关节纵轴值确定的平面以上的点作为上臂部分,将上臂部分的中心点重新进行直线拟合,令该直线与肩关节所在平面相交得到修正的肩关节位置,重复执行5-1-4-3直至肩关节的位置不再发生变化,此时得到的肩关节点为最终的肩关节位置。Step 5-1-4-4: Take the point above the plane determined by the value of the longitudinal axis of the elbow joint as the upper arm part, re-fit the center point of the upper arm part with a straight line, and make the intersection of the straight line with the plane where the shoulder joint is located to get correction For the position of the shoulder joint, repeat 5-1-4-3 until the position of the shoulder joint does not change, and the obtained shoulder joint point is the final position of the shoulder joint.
有益效果:Beneficial effect:
本发明能够通过自动为三维动画模型进行骨架的提取,骨架提取所采用的水平集聚类方法,相比于传统的距离变换法,通过使用切割模型,划分模型部位,分别计算各部分关节等方法,其平均所消耗的时间更少,误差更小。通过本方法来代替传统手工进行计算,能够使用户门槛降低,方便使用,提高骨架提取的精度和效率。The present invention can automatically extract the skeleton for the three-dimensional animation model. Compared with the traditional distance transformation method, the horizontal set clustering method used in the skeleton extraction uses the cutting model, divides the model parts, and calculates the joints of each part respectively. , the average time consumed is less and the error is smaller. Using this method to replace the traditional manual calculation can reduce the user threshold, facilitate use, and improve the accuracy and efficiency of skeleton extraction.
附图说明Description of drawings
图1为本发明具体实施方式的对水平集中心点进行聚类的方法的示意图;Fig. 1 is a schematic diagram of a method for clustering level set central points according to a specific embodiment of the present invention;
图2为本发明具体实施方式将切割后的交点集合根据交点之间的连通性来进行聚类的流程图;Fig. 2 is a flow chart of clustering the set of cut intersection points according to the connectivity between the intersection points according to the specific embodiment of the present invention;
图3为本发明具体实施方式对水平集中心点进行聚类的流程图;Fig. 3 is a flow chart of clustering the center points of the level set according to a specific embodiment of the present invention;
图4(a)~(d)分别为本发明具体实施方式中对本方法与现有技术的距离变换方法对比所采用的四个模型;Fig. 4 (a)~(d) are four models that this method and the distance transformation method of prior art contrast adopt respectively in the embodiment of the present invention;
图5(a)~(h)为本发明具体实施方式中本方法与现有技术的距离变换方法对比实验结果图;Fig. 5 (a)~(h) is the comparison experiment result diagram of this method and the distance transformation method of prior art in the specific embodiment of the present invention;
图6为本发明具体实施方式基于水平集中心聚类的3D角色模型骨架提取方法流程图;6 is a flow chart of a method for extracting a skeleton of a 3D character model based on horizontal center clustering according to a specific embodiment of the present invention;
图7为本发明具体实施方式步骤1的具体流程图;Fig. 7 is the specific flowchart of step 1 of the specific embodiment of the present invention;
图8为本发明具体实施方式步骤1-4的具体流程图;Fig. 8 is the specific flowchart of steps 1-4 of the specific embodiment of the present invention;
图9为本发明具体实施方式步骤4的具体流程图;Fig. 9 is a specific flowchart of step 4 of the specific embodiment of the present invention;
图10为本发明具体实施方式步骤5的具体流程图;FIG. 10 is a specific flow chart of step 5 of a specific embodiment of the present invention;
图11为本发明具体实施方式步骤5-1-2的具体流程图。Fig. 11 is a specific flow chart of step 5-1-2 of the specific embodiment of the present invention.
具体实施方式Detailed ways
下面结合附图对本发明的具体实施方式做详细说明。The specific implementation manners of the present invention will be described in detail below in conjunction with the accompanying drawings.
一种基于水平集中心聚类的3D角色模型骨架提取方法,如图6所示,包括以下步骤:A kind of 3D character model skeleton extraction method based on level set central clustering, as shown in Figure 6, comprises the following steps:
步骤1:利用高度函数作为Morse函数对3D角色模型进行切割处理,得到切割后的交点集合;Step 1: Use the height function as the Morse function to cut the 3D character model to obtain the set of intersection points after cutting;
如图7所示,具体步骤如下:As shown in Figure 7, the specific steps are as follows:
步骤1-1:选取高度函数对3D角色模型进行处理得到3D角色模型高度hmodel;Step 1-1: Select a height function to process the 3D character model to obtain the height h model of the 3D character model;
步骤1-2:设定3D角色模型切割次数n=80,从3D角色模型的最上方(头顶)开始进行切割,每隔hmodel/n距离取一个平面即高度平面;Step 1-2: Set the number of times of cutting the 3D character model to n=80, start cutting from the top (top of the head) of the 3D character model, and take a plane every h model /n distance, that is, a height plane;
步骤1-3:为了提高效率,读取FBX文件中的三角网格面时,将每一个三角网格面在y轴方向的最大值ymax和最小值ymin保存到数组中,对各三角网格面在y轴方向的最大值ymax进行排序;Step 1-3: In order to improve efficiency, when reading the triangular mesh surface in the FBX file, save the maximum value y max and minimum value y min of each triangular mesh surface in the y-axis direction to an array, and for each triangle The grid surface is sorted by the maximum value y max in the y-axis direction;
步骤1-4:计算3D角色模型的每一个高度平面与三角网格面的交点,得到各高度平面能够相交的三角网格面列表;Step 1-4: Calculate the intersection point between each height plane of the 3D character model and the triangular mesh surface, and obtain a list of triangular mesh surfaces that can be intersected by each height plane;
如图8所示,具体步骤如下:As shown in Figure 8, the specific steps are as follows:
步骤1-4-1:遍历数组中的每一个三角网格面,如果当前三角网格面的在y轴方向的最大值ymax大于当前高度平面Pcurrent,则执行步骤1-4-2,否则从当前三角网格面之后的所有三角网格面都不再与当前高度平面Pcurrent相交,停止遍历,得到的三角网格面列表为能够与当前高度平面Pcurrent相交的三角网格面列表,执行步骤1-5;Step 1-4-1: Traverse each triangular mesh surface in the array, if the maximum value y max of the current triangular mesh surface in the y-axis direction is greater than the current height plane P current , execute step 1-4-2, Otherwise, all triangular mesh faces after the current triangular mesh face will no longer intersect with the current height plane P current , stop traversal, and the obtained triangular mesh face list is a list of triangular mesh faces that can intersect with the current height plane P current , execute steps 1-5;
步骤1-4-2:判断当前三角网格面的在y轴方向的最小值ymin是否大于当前高度平面Pcurrent:是,则当前三角网格面在当前高度平面Pcurrent之上,遍历下一个三角网格面,返回步骤1-4-1;否则当前三角网格面与当前高度平面Pcurrent能够相交,保存当前三角网格面,遍历下一个三角网格面,返回步骤1-4-1。Step 1-4-2: Determine whether the minimum value y min of the current triangular mesh surface in the y-axis direction is greater than the current height plane P current : if yes, the current triangular mesh surface is above the current height plane P current , and traverse A triangular mesh surface, return to step 1-4-1; otherwise, the current triangular mesh surface can intersect with the current height plane P current , save the current triangular mesh surface, traverse the next triangular mesh surface, and return to step 1-4- 1.
高度平面与三角网格面交点有两个交点,计算交点公式如下:There are two intersection points between the height plane and the triangular mesh surface. The formula for calculating the intersection point is as follows:
x=x1+(Pcurrent-y1)*(x2-x1)÷(y2-y1)x=x 1 +(P current -y 1 )*(x 2 -x 1 )÷(y 2 -y 1 )
z=z1+(Pcurrent-y1)*(z2-z1)÷(y2-y1)z=z 1 +(P current -y 1 )*(z 2 -z 1 )÷(y 2 -y 1 )
其中,x与z分别表示三角网格面的一条边与当前高度平面Pcurrent的交点的x与z轴值,x1与x2分别表示该条边的两个端点的x轴值,z1与z2表示这该条边的两个端点的z轴值,交点的y值为当前高度平面Pcurrent的值。Among them, x and z represent the x-axis and z-axis values of the intersection point of a side of the triangular mesh surface and the current height plane P current respectively, x 1 and x 2 represent the x-axis values of the two endpoints of the side, z 1 and z 2 represent the z-axis values of the two endpoints of this side, and the y value of the intersection point is the value of the current height plane P current .
步骤1-5:根据各高度平面能够相交的三角网格面列表,确定各高度平面与其能够相交的三角网格面之间的交点,即切割后的交点集合。Steps 1-5: According to the list of triangular mesh surfaces that can be intersected by each height plane, determine the intersection points between each height plane and the triangular mesh surfaces that can intersect, that is, the set of intersection points after cutting.
步骤2:将切割后的交点集合根据交点之间的连通性来进行聚类,聚类成若干子水平集:如果某两个交点为高度平面与一个三角网格面相交形成的,则将这两个交点保存成一个线段,利用线段之间的连接性来进行聚类,得到若干子水平集;Step 2: Cluster the cut intersection points according to the connectivity between the intersection points, and cluster them into several sub-level sets: if some two intersection points are formed by the intersection of a height plane and a triangular mesh surface, then these The two intersection points are saved as a line segment, and the connectivity between the line segments is used for clustering to obtain several sub-level sets;
图2中描述了将切割后的交点集合根据交点之间的连通性来进行聚类的流程图,具体的方法流程如下:Figure 2 describes the flow chart of clustering the cut intersection points according to the connectivity between the intersection points. The specific method flow is as follows:
步骤2-1:记录当前高度平面Pcurrent与三角网格面相交形成的线段集合L{l1,l2,…,ln};Step 2-1: Record the line segment set L{l 1 ,l 2 ,…,l n } formed by the intersection of the current height plane P current and the triangular mesh surface;
步骤2-2:任意取lk,k∈[1,n],记录lk的一个端点为vstart,即为整个遍历过程的起点,其另一个端点为vcurrent,即为当前搜索的点,记当前的聚类点集合为Ei,i=1,将vstart添加到当前集合当中;Step 2-2: Take l k , k∈[1,n] arbitrarily, and record that one endpoint of l k is v start , which is the starting point of the entire traversal process, and the other endpoint is v current , which is the current search point , record the current set of clustering points as E i , i=1, add v start to the current set;
步骤2-3:遍历线段集合L中的其余所有线段,若li的其中某一个顶点值等于vcurrent,则取li的另一个端点为vcurrent,同时在线段集合L中删除li,同时在Ei中添加vcurrent,如果此时L为空则进行步骤2-4,如果vcurrent=vstart,则跳转到步骤2-2,并将i加1,如果遍历结束仍未形成闭合曲线,则设vcurrent为新的vstart,重复执行步骤2-3,遍历到最后连接曲线的首尾形成一个闭合曲线,并将该曲线保存,如果L为空跳则跳转到步骤2-4,否则转到步骤2-2;Step 2-3: Traverse all other line segments in the line segment set L, if One of the vertex values of l i is equal to v current , then take the other endpoint of l i as v current , delete l i from the line segment set L, and add v current to E i at the same time, if L is empty at this time then Go to step 2-4, if v current =v start , jump to step 2-2, and add 1 to i, if a closed curve is not formed after the traversal, then set v current as the new v start , and repeat the steps 2-3, traverse to the end of the last connecting curve to form a closed curve, and save the curve, if L is empty, jump to step 2-4, otherwise go to step 2-2;
步骤2-4:得到各闭合曲线对应的交点集合作为各子水平集。Step 2-4: Obtain the set of intersection points corresponding to each closed curve as each sub-level set.
步骤3:将水平集的面积和似圆性作为筛选条件,将面积大于水平集面积阈值且似圆性大于似圆性阈值的水平集筛选出来;Step 3: Use the area and circularity of the level set as the screening conditions, and filter out the level sets whose area is greater than the level set area threshold and whose circularity is greater than the circularity threshold;
步骤3-1:设定筛选条件,包括水平集面积阈值和似圆性阈值;Step 3-1: Set filter conditions, including level set area threshold and circularity threshold;
水平集面积阈值T的计算公式如下:The calculation formula of the level set area threshold T is as follows:
其中,hmodel为3D角色模型的高度,hstandard为预先设定的标准模型高度,在本实施方式中取为160,Round()函数为四舍五入函数,ST为标准模型中取得的水平集面积阈值,本实施方式中取ST=0.2。Wherein, hmodel is the height of the 3D character model, hstandard is the preset height of the standard model, which is taken as 160 in this embodiment, the Round() function is a rounding function, and ST is the level set area threshold obtained in the standard model , ST=0.2 is taken in this embodiment.
步骤3-2:计算每一个水平集的面积和似圆性;Step 3-2: Calculate the area and circularity of each level set;
利用定理“由任意一点与多边形上依次两点连线构成的三角形矢量面积和求得”,计算每一个水平集的面积,使用如下公式进行计算:Using the theorem "obtained by the sum of the triangular vector area formed by connecting any point and two consecutive points on the polygon", calculate the area of each level set, and use the following formula to calculate:
其中,S(P)表示子水平集P组成的多边形的面积,M为任意一点,为点M与子水平集P中第i个点连接形成的向量,为点M点与子水平集P中的第i+1个交点连接形成的向量。Among them, S(P) represents the area of the polygon composed of the sub-level set P, M is any point, is the vector formed by connecting the point M with the i-th point in the sublevel set P, is the vector formed by connecting point M with the i+1th intersection point in sub-level set P.
水平集的似圆性的计算公式是:The formula for calculating the circularity of a level set is:
其中,C(P)表示子水平集P组成的多边形的似圆性,S(P)为子水平集P组成的多边形的面积,P(P)表示子水平集P组成的多边形的周长。Among them, C(P) represents the circularity of the polygon composed of the sub-level set P, S(P) is the area of the polygon composed of the sub-level set P, and P(P) represents the perimeter of the polygon composed of the sub-level set P.
步骤3-3:将面积大于水平集面积阈值且似圆性大于似圆性阈值的水平集筛选出来。本实施方式中似圆性的阈值根据经验,取为0.4。Step 3-3: Filter out the level sets whose area is greater than the level set area threshold and whose circularity is greater than the circularity threshold. The threshold of circularity in this embodiment is set as 0.4 based on experience.
步骤4:将筛选之后的水平集利用水平集的中心进行聚类,从而将水平集分割为3D角色模型的双臂、双腿以及躯干;Step 4: Clustering the filtered level set by using the center of the level set, so as to divide the level set into arms, legs and torso of the 3D character model;
如图9所示,具体步骤如下:As shown in Figure 9, the specific steps are as follows:
步骤4-1:计算每一个水平集的中心点,形成中心点集;Step 4-1: Calculate the center point of each level set to form a center point set;
其中C为水平集P的中心点。Where C is the center point of the level set P.
步骤4-2:对所有中心点按照三维空间中除高度外的另两个方向的轴向长度值进行排序,轴向长度值最大的方向即3D角色模型的双臂伸展方向;Step 4-2: Sort all the center points according to the axial length values of the other two directions in the three-dimensional space except the height, and the direction with the largest axial length value is the direction in which the arms of the 3D character model are extended;
步骤4-3:计算排序后的中心点集Call的前5个中心点的相邻中心点间距离的平均值、后5个中心点的相邻中心点间距离的平均值,分别将这两个平均值的2倍作为两个聚类半径;Step 4-3: Calculate the average value of the distances between the adjacent center points of the first 5 center points of the sorted center point set C all , and the average value of the distances between the adjacent center points of the last 5 center points, respectively. 2 times of the two mean values are used as the two clustering radii;
步骤4-4:分别选取排序后的中心点集Call的第一个中心点、最后一个中心点作为起始点进行聚类,得到3D角色模型的双臂的水平集;Step 4-4: respectively select the first center point and the last center point of the sorted center point set C all as the starting point for clustering, and obtain the level set of the arms of the 3D character model;
图1是描述了对水平集中心点进行聚类的方法的示意图,其中,将起始点T1加入聚类集合中,判断T2与聚类集合中的元素距离是否在给定聚类半径之内,假如存在至少一个满足条件的情况,则将T2加入聚类集合中,接下来的元素以此类推。Figure 1 is a schematic diagram describing the method of clustering the center points of the level set, wherein, the starting point T1 is added to the clustering set, and it is judged whether the distance between T2 and the elements in the clustering set is within a given clustering radius, If there is at least one condition that satisfies the condition, T2 will be added to the clustering set, and so on for the next elements.
图3是对水平集中心点进行聚类的具体流程图,具体执行步骤如下:Figure 3 is a specific flow chart for clustering the center points of the level set, and the specific execution steps are as follows:
步骤4-4-1:建立队列Q,将起始点Cstart加入到队列Q当中,并将Cstart标记为已经处理;Step 4-4-1: Create a queue Q, add the starting point Cstart to the queue Q, and mark Cstart as processed;
步骤4-4-2:取队列Q的首元素作为当前判定的点Ccurrent,并将Ccurrent添加到聚类结果集合Cresult中;Step 4-4-2: Take the first element of the queue Q as the current judgment point Ccurrent, and add Ccurrent to the clustering result set Cresult;
步骤4-4-3:遍历中心点集Call,如果当前被遍历到的中心点距离Ccurrent的距离小于聚类半径R且未被处理过,则将该中心点加入到队列Q当中,并将该中心点标记为已经处理;Step 4-4-3: traverse the central point set C all , if the distance between the currently traversed central point and Ccurrent is less than the clustering radius R and has not been processed, add the central point to the queue Q, and The center point is marked as processed;
步骤4-4-4:判定队列Q是否为空,如果不为空则执行步骤4-4-2;否则,执行步骤4-4-5;Step 4-4-4: Determine whether the queue Q is empty, if not, execute step 4-4-2; otherwise, execute step 4-4-5;
步骤4-4-5:Cresult为最终的聚类结果,即3D角色模型的双臂的水平集;Step 4-4-5: Cresult is the final clustering result, that is, the level set of the arms of the 3D character model;
步骤4-5:对所有中心点按纵轴方向由小到大进行排序,找到双腿的端点值,进行与步骤4-4相同的聚类,得到3D角色模型的双腿的水平集;Step 4-5: sort all the center points from small to large in the direction of the vertical axis, find the endpoint values of the legs, perform the same clustering as in step 4-4, and obtain the level set of the legs of the 3D character model;
步骤4-6:将中心点集中没被聚类的中心点作为3D角色模型的躯干的水平集的中心点;Steps 4-6: use the center point that is not clustered in the center point set as the center point of the level set of the torso of the 3D character model;
步骤4-7:计算3D角色模型的双臂的水平集的中心点的拟合直线、双腿的水平集的中心点的拟合直线、躯干的水平集的中心点的拟合直线分别作为双臂的骨架线、双腿的骨架线、躯干的骨架线。Steps 4-7: Calculate the fitting straight line of the center point of the level set of the arms of the 3D character model, the fitting straight line of the center point of the level set of the legs, and the fitting straight line of the center point of the level set of the torso respectively as double The skeleton line of the arm, the skeleton line of the legs, and the skeleton line of the torso.
步骤5:将得到的骨架线嵌入到3D角色模型中。Step 5: Embed the obtained skeleton lines into the 3D character model.
如图10所示,具体步骤如下:As shown in Figure 10, the specific steps are as follows:
步骤5-1:计算关键关节点的位置;Step 5-1: Calculate the position of key joint points;
关键关节点包括:头部、颈部、肩关节、肘关节、腕关节、手部、髋关节、大腿关节、踝关节以及脚部;Key joint points include: head, neck, shoulder joint, elbow joint, wrist joint, hand, hip joint, thigh joint, ankle joint and foot;
步骤5-1-1:由切割后的3D角色模型每一部分的骨架线的末端求得头部、手部、髋关节、大腿关节以及脚部关节点的位置:腿部骨架线两个末端是大腿关节和脚部;手臂骨架线下部末端是手部;躯干骨架线两个末端是头部和髋关节;Step 5-1-1: Obtain the positions of the head, hands, hip joints, thigh joints and foot joint points from the ends of the skeleton lines of each part of the cut 3D character model: the two ends of the leg skeleton lines are Thigh joints and feet; the lower end of the arm skeleton line is the hand; the two ends of the trunk skeleton line are the head and hip joints;
步骤5-1-2:利用水平面切割3D角色模型的双臂部分的三角网格面得到的水平集的周长,确定腕关节的位置;Step 5-1-2: use the perimeter of the level set obtained by cutting the triangular mesh surface of the arms of the 3D character model with the horizontal plane to determine the position of the wrist joint;
如图11所示,具体步骤如下:As shown in Figure 11, the specific steps are as follows:
步骤5-1-2-1:利用双臂的骨架线的方向与纵轴正方向的夹角计算出一个旋转矩阵;Step 5-1-2-1: Calculate a rotation matrix using the angle between the direction of the skeleton line of the arms and the positive direction of the longitudinal axis;
旋转矩阵表示如下:The rotation matrix is represented as follows:
其中,θ为双臂的骨架线的方向与纵轴正方向的夹角,(nx,ny,nz)为旋转轴,利用双臂的骨架线与纵轴正方向叉乘求得;Among them, θ is the angle between the direction of the skeleton line of the arms and the positive direction of the longitudinal axis, (n x , ny , nz ) is the rotation axis, which is obtained by cross-producting the skeleton line of the arms and the positive direction of the longitudinal axis;
步骤5-1-2-2:将双臂网格模型乘以该旋转矩阵,将双臂网格模型直立;Step 5-1-2-2: Multiply the dual-arm grid model by the rotation matrix, and erect the dual-arm grid model;
步骤5-1-2-3:利用水平面对双臂网格模型进行横切操作,利用步骤2的方法得到一系列水平集;Step 5-1-2-3: Use the horizontal plane to perform cross-cutting operations on the double-arm grid model, and use the method in step 2 to obtain a series of level sets;
步骤5-1-2-4:如果某一个高度平面下有多个水平集,则将所有水平集的顶点视为一个点集,利用Graham算法计算该点集的凸包,用该凸包作为该高度平面下的唯一水平集;Step 5-1-2-4: If there are multiple level sets under a certain height plane, treat the vertices of all level sets as a point set, use the Graham algorithm to calculate the convex hull of the point set, and use the convex hull as the only level set below that height plane;
步骤5-1-2-5:计算每一个水平集的周长,将周长最小的水平集的中点作为手腕关节点的位置。Step 5-1-2-5: Calculate the perimeter of each level set, and use the midpoint of the level set with the smallest perimeter as the position of the wrist joint.
步骤5-1-3:计算颈部关节点的位置:利用步骤5-1-2的方法处理手臂以上的躯干位置的网格模型的水平集,将周长最小的水平集的中点作为颈部关节点的位置;Step 5-1-3: Calculate the position of the neck joint point: use the method of step 5-1-2 to process the level set of the mesh model of the torso position above the arm, and use the midpoint of the level set with the smallest circumference as the neck The location of the ministries;
步骤5-1-4:计算肩关节的位置:利用双臂的骨架线的方向与肩关节所在平面相交得到一个初始肩关节位置再进行修正;Step 5-1-4: Calculate the position of the shoulder joint: Use the direction of the skeleton line of the arms to intersect the plane where the shoulder joint is located to obtain an initial shoulder joint position and then correct it;
步骤5-1-4-1:利用双臂的骨架线纵轴值最大的点确定的平面以及颈部关节点纵轴值确定的平面的中间平面,得到肩关节所处平面;Step 5-1-4-1: Use the plane determined by the point with the largest vertical axis value of the skeleton line of both arms and the middle plane of the plane determined by the vertical axis value of the neck joint point to obtain the plane where the shoulder joint is located;
步骤5-1-4-2:利用双臂的骨架线的方向与肩关节所在的平面相交得到一个交点,该交点为肩关节的位置;Step 5-1-4-2: Use the direction of the skeleton line of both arms to intersect the plane where the shoulder joint is located to obtain an intersection point, which is the position of the shoulder joint;
步骤5-1-4-3:利用肩关节的位置以及手腕关节点的位置,通过标准骨架结构中肘关节与肩关节、手腕关节点的位置比例得到肘关节的初始位置;Step 5-1-4-3: Use the position of the shoulder joint and the position of the wrist joint point to obtain the initial position of the elbow joint through the position ratio of the elbow joint, shoulder joint and wrist joint point in the standard skeleton structure;
步骤5-1-4-4:将位于肘关节纵轴值确定的平面以上的点作为上臂部分,将上臂部分的中心点重新进行直线拟合,令该直线与肩关节所在平面相交得到修正的肩关节位置,重复执行5-1-4-3直至肩关节的位置不再发生变化,此时得到的肩关节点为最终的肩关节位置。Step 5-1-4-4: Take the point above the plane determined by the value of the longitudinal axis of the elbow joint as the upper arm part, re-fit the center point of the upper arm part with a straight line, and make the intersection of the straight line with the plane where the shoulder joint is located to get correction For the position of the shoulder joint, repeat 5-1-4-3 until the position of the shoulder joint does not change, and the obtained shoulder joint point is the final position of the shoulder joint.
步骤5-1-5:计算踝关节的位置:首先选取步骤3筛选出的水平集中腿部对应的水平集,然后计算所选取的各相邻水平集的中点连接线间夹角,不小于设定阈值70度的夹角位置即踝关节位置。Step 5-1-5: Calculate the position of the ankle joint: first select the level set corresponding to the leg in the level set screened out in step 3, and then calculate the angle between the connecting lines of the midpoints of the selected adjacent level sets, not less than The angle position at which the threshold is set to 70 degrees is the position of the ankle joint.
步骤5-2:利用关键关节点的位置与标准骨架结构之间进行匹配,通过关节点之间的位置比例求出其余所有关节点的位置;Step 5-2: use the position of the key joint points to match the standard skeleton structure, and calculate the positions of all other relevant nodes through the position ratio between the joint points;
步骤5-3:连接所有语义上相关联的关节点得到最终的骨架,嵌入到3D角色模型中。Step 5-3: Connect all semantically related joint points to get the final skeleton, which is embedded in the 3D character model.
利用本方法与现有技术的距离变换方法进行对比,针对于图4(a)~(d)中的四个模型进行比较,两种方法获得的骨架如图5所示。其中图5(a)(c)(e)(g)中为距离变换方法获得的骨架,图5(b)(d)(f)(h)中为本方法获得的骨架。分别比较计这两种方法的时间效率以及精确度两种参数,表1中展示了两种方法的时间比较,表2中展示了两种方法针对于臂长的误差的比较,表3中展示了两种方法针对于腿长的误差比较。This method is compared with the distance transformation method of the prior art, and the four models in Fig. 4(a)-(d) are compared, and the skeletons obtained by the two methods are shown in Fig. 5 . Among them, Figure 5(a)(c)(e)(g) is the skeleton obtained by the distance transformation method, and Figure 5(b)(d)(f)(h) is the skeleton obtained by this method. Compare the time efficiency and accuracy parameters of these two methods respectively. Table 1 shows the time comparison of the two methods. Table 2 shows the comparison of the error of the two methods for the arm length. Table 3 shows The error comparison of the two methods for leg length is presented.
表1两种方法的时间比较Table 1 Time comparison of the two methods
表2两种方法针对于臂长的误差的比较Table 2 Comparison of the error of the two methods for the arm length
表3两种方法针对于腿长的误差比较Table 3. Error comparison of two methods for leg length
通过对比可以看出,本发明方法针对于距离变换的方法在时间效率以及精确度上都有一定的优势。It can be seen from the comparison that the method of the present invention has certain advantages in terms of time efficiency and accuracy for the distance transformation method.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510868466.8A CN105513136B (en) | 2015-11-30 | 2015-11-30 | A kind of 3D actor model framework extraction methods based on level set central cluster |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510868466.8A CN105513136B (en) | 2015-11-30 | 2015-11-30 | A kind of 3D actor model framework extraction methods based on level set central cluster |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105513136A CN105513136A (en) | 2016-04-20 |
CN105513136B true CN105513136B (en) | 2018-05-04 |
Family
ID=55721088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510868466.8A Active CN105513136B (en) | 2015-11-30 | 2015-11-30 | A kind of 3D actor model framework extraction methods based on level set central cluster |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105513136B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107219925B (en) * | 2017-05-27 | 2021-02-26 | 成都通甲优博科技有限责任公司 | Posture detection method and device and server |
CN110135397B (en) * | 2019-05-27 | 2022-07-08 | 上海埃蒙迪材料科技股份有限公司 | Method for identifying dental crown part in three-dimensional tooth model |
CN111583232B (en) * | 2020-05-09 | 2024-04-26 | 北京天智航医疗科技股份有限公司 | Femoral head center determining method, device, computer equipment and storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271589A (en) * | 2007-03-22 | 2008-09-24 | 中国科学院计算技术研究所 | A method for extracting joint center of 3D human body model |
CN102254343A (en) * | 2011-07-01 | 2011-11-23 | 浙江理工大学 | Convex hull and OBB (Oriented Bounding Box)-based three-dimensional grid model framework extracting method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101815975B1 (en) * | 2011-07-27 | 2018-01-09 | 삼성전자주식회사 | Apparatus and Method for Detecting Object Pose |
-
2015
- 2015-11-30 CN CN201510868466.8A patent/CN105513136B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271589A (en) * | 2007-03-22 | 2008-09-24 | 中国科学院计算技术研究所 | A method for extracting joint center of 3D human body model |
CN102254343A (en) * | 2011-07-01 | 2011-11-23 | 浙江理工大学 | Convex hull and OBB (Oriented Bounding Box)-based three-dimensional grid model framework extracting method |
Non-Patent Citations (2)
Title |
---|
Automatic Joints Extraction of Scanned Human Body;Yong Yu等;《International Conference on Digital Human Modeling》;20071231;第4561卷;第286-293页 * |
一种姿态无关的人体模型骨骼提取方法;于勇 等;《计算机研究与发展》;20080731;第45卷(第7期);第1249-1258页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105513136A (en) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Stein et al. | Developability of triangle meshes | |
CN110992490B (en) | Method for automatically extracting indoor map based on CAD building plan | |
CN105225273B (en) | Method and device for establishing fault model based on spatial fault polygon | |
Usai et al. | Extraction of the quad layout of a triangle mesh guided by its curve skeleton | |
CN106446910B (en) | Complex geological curved surface feature extraction and reconstruction method | |
CN105138722A (en) | Digital river-lake network based method for dividing water collection unit of river basin of plain river network region | |
CN107330903A (en) | A kind of framework extraction method of human body point cloud model | |
CN105513136B (en) | A kind of 3D actor model framework extraction methods based on level set central cluster | |
CN104679954A (en) | Method and system for lightening BIM (Building Information Modeling) model | |
CN105006023B (en) | A kind of multi-class threedimensional model compositional modeling method for supporting Computer Aided Design | |
CN108763827B (en) | Transmission tower finite element model establishing method and device | |
CN109461209B (en) | Novel structural grid generation method | |
CN107330901A (en) | A kind of object component decomposition method based on skeleton | |
CN113963130B (en) | Construction method of fracture network model for rock core fracture | |
CN102831283B (en) | Complicated product model construction method based on surface feature | |
CN101266691A (en) | A Polygonal Mesh Model Fusion Method of Arbitrary Topology | |
CN108230452A (en) | A kind of model filling-up hole method based on textures synthesis | |
CN102063719B (en) | Local matching method of three-dimensional model | |
CN107102991A (en) | A kind of shaft tower parametric modeling method in three-dimension GIS system | |
Liu et al. | Practical fabrication of discrete chebyshev nets | |
CN101430693A (en) | Spacing query method for triangular gridding curve model | |
Oval | Topology finding of patterns for structural design | |
CN113987610B (en) | Matching method of different-resolution clothing curved surface meshes based on mesh mapping | |
CN104036096B (en) | Method for mapping bump features on inclined face to manufacturing feature bodies | |
CN105389851B (en) | A kind of Loop subdivision implementation method based on vertex and the unified adjustment of new edge point |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |