一种在三角网格曲面上检测脐点的方法

文档序号:6602536阅读:457来源:国知局
专利名称:一种在三角网格曲面上检测脐点的方法
技术领域
本发明属于微分几何、计算数学、计算机图形学和计算机视觉技术领域,涉及一种 任意拓扑结构的三角网格曲面上快速检测与计算脐点的方法,在特征分析、数据配准、人面 识别、基于主方向场网格化、三维重建、三维形状检索、纹理映射、三维动画造型等领域具有 重要的应用价值。
背景技术
三角网格模型是计算机表现真实世界对象形状信息的通用表示方法。随着形状 信息采集技术和计算机处理能力的不断提高,人们需要分析处理越来越精细的三维网格模 型,用于特征提取、数据压缩、形状匹配或识别等重要应用。主方向与主曲率是最重要的分 析量,脐点是主方向场的奇点,或是最大主曲率与最小主曲率相等的点。由于脐点的奇异 性,一方面它造成曲率分析的障碍,另一方面它又如同形状上的“指纹”,是重要的形状特 征,因此,正反两方面都需要对脐点进行鲁棒而可靠的分析与检测。目前脐点的计算方法可以分为三类第一类是利用脐点两主曲率^与K2相等的性质,求出使Ik1-K2I达到最小的 点,但由于网格的离散性,I K ,-K2无法真正达到零值,对于网格曲面一般只作为必要条件 使用。第二类是利用一般脐点所在位置,主方向场绕该点的角度变化率的积分不为零的 性质,这类方法要比第一类方法可靠;但为了积分的可靠性,必须选择足够多并分布均勻的 采样点,并且这类方法只能将三角网格顶点或三角形估计为脐点,而真正的脐点一般是存 在于三角形的内部。第三类是通过线性插值曲率张量C = Ki^trl +K2t2tT2,式中tl与t2是对应κ i与κ 2 的主方向;为保证、与、的正交性使C能进行面积坐标插值操作,Alliez等人(Alliez P, Cohen-Steiner D, Devillers 0, Levy B, Desbrun Μ. Anisotropicpolygonal remeshing, Proceedings of ACM SIGGRAPH,485-493,2003.)通过一个复杂的全局共形参数化将网格 展平到参数平面上。但脐点是一种局部性质,全局参数化会产生大的误差;此外该方法对三 角网格流形的拓扑结构有很大的局限性,例如,该方法要求三角网格同胚于圆盘或球面,因 此他们提出的方法并不实用。

发明内容
欲解决现有技术的技术问题,本发明其目的在于,针对现实世界中任意复杂的三 角网格曲面,从局部分析中直接计算脐点,提供一个在任意拓扑结构的三角网格上准确、快 速、简单地检测与计算脐点的新方法。为实现上述目的,本发明提供一种在三角网格曲面上检测脐点的方法,该方法步 骤包括如下步骤Sl 输入具有对象形状数据信息,并对具有对象形状数据信息的三角网格曲面进行预处理,创建三角网格的翼边数据结构,按照三角网格的拓扑邻接关系组织成数据 存储结构;步骤S2 根据三角网格每个顶点的相邻点、相邻边和相邻面信息,求出每个顶点 对应的法向,主方向与主曲率;步骤S3 对三角网格的每个三角形选择一个原点,将所在三角形平面作为xy面, 建立三角形局部直角坐标系;步骤S4 对三角形每个顶点,以对应两个主方向及法向建立局部直角坐标系,所 述局部直角坐标系是蒙日(Monge)坐标系;步骤S5 通过将三角形的三个顶点分别所在的蒙日坐标系转化为三角形局部坐 标系的三维坐标变换手续,对三角形每个顶点的形状算子进行局部参数化处理,生成三角 形局部坐标系内的形状算子;步骤S6 在三角形局部坐标系中,将参数化后的每个顶点形状算子构造对应的脐 点向量;步骤S7 在三角形内对三个脐点向量用面积坐标插值零脐点向量,从而得到一个 2X2线性方程组;步骤S8 直接求解2X2线性方程组,若面积坐标解对应于三角形的内点,该零点 对应为脐点,则执行步骤S9,若面积坐标不对应于三角形的内点,零点与脐点不对应,则执 行步骤S3 ;步骤S9 利用解坐标线性插值三角形的三个顶点,插值点即为三角网格曲面上的 脐点,输出并存储脐点坐标,显示脐点。其中,脐点向量构造如下设形状算子为S = I^j2x2= Sn,所述脐点向量构
造为t = [S11-S22, S12+S21]T,式中记号T表示矩阵转置,i或j = 1或2。其中,局部参数化后的形状算子与脐点的数学关系为对象形状曲面上一点,该点 是脐点,当该点并仅当该点处脐点向量t = [S11-S22, S12+S21]T = 0。其中,以三角形三个顶点a、b和c的脐点向量ta、tb和t。作面积坐标插值零脐点 向量表示为xta+ytb+zt。= 0,其中x、y和ζ为关于三角形Aabc三个顶点的面积坐标,满足 x+y+z = 1。其中,将在三角形内的零脐点向量面积坐标作为接受脐点,所述接受脐点面积坐 标应满足 彡X彡1, 彡y彡1, 彡Z彡1。本发明的有益效果本发明属于第三类技术。本发明与前人方法的区别主要体现 在 计算域是局部的,避免了复杂的全局参数化; 三角网格的拓扑结构可以任意复杂; 可以计算出三角形内部的脐点; 方法简单、有效、准确。本发明适用于任意复杂的、具有二维流形结构的三角网格曲面。该方法利用任意 已知的方法计算各顶点的主方向和主曲率并合成形状算子,通过局部参数化将形状算子投 影到三角形所在平面内,转化为求解一个2X2线性方程组的零解,算法非常简单,计算结
4果准确,时间复杂度低。该方法称为形状算子线性插值法,其计算结果在特征分析、数据配 准、人面识别、基于主方向场网格化、三维重建、三维形状检索、纹理映射、三维动画造型等 领域具有重要的应用价值。本发明能用于计算机图形学、几何模型分析等领域,包括形状分 析、特征提取、模型检索、重新网格化、虚拟现实等,具有重要的应用价值。利用本发明,可以 快速、方便、准确地计算出任意拓扑结构三角网格曲面上的脐点。简单的含义是直接局部参 数化使算法变得简单,因此适用于任意拓扑结构的二维流形三角网格。局部参数化避免了 全局共形参数化的复杂计算和全局共形参数化引起的误差。


图1本发明在三角网格上检测脐点方法的流程图;图2近邻点形状算子局部参数化示意图;图3采用本发明技术方案计算形状算子的脐点计算效果图;图4采用另一个方法计算形状算子的脐点计算效果图;图5、图6、图7采用本发明技术方案计算形状算子的脐点计算效果图。
具体实施例方式下面结合附图详细说明本发明技术方案中所涉及的各个细节问题。应指出的是, 所描述的实施例仅旨在便于对本发明的理解,而对其不起任何限定作用。1、方法概述(overview of approach)图1示出本发明在三角网格上检测脐点的方法流程,也可称为形状算子线性插值 法。主要步骤包括1)、对具有对象形状数据信息的三角网格曲面进行预处理,创建三角网格的翼边 数据结构,以供快速查询;计算各个顶点的法向、主方向与主曲率;2)、对三角网格中每个三角形作形状算子插值,包括9个子步骤(a)建立三角形 局部坐标系;(b)对三角形的每个顶点建立蒙日坐标系;(C)构造蒙日坐标系到三角形局部 坐标系的坐标变换公式;(d)根据坐标变换公式,将每个顶点在其蒙日坐标系下的形状算 子在三角形局部坐标系下局部参数化,得到(蒙日坐标系下的)形状算子在三角形局部坐 标系下的新表示;(e)对重新参数化后的每个形状算子构造对应的脐点向量;(f)对脐点向 量用面积坐标线性插值零脐点向量;(g)求解与面积坐标线性插值零脐点向量等价的2X2 线性方程组;(h)若面积坐标解对应三角形的内点,则对应零点为脐点;(i)利用解坐标线 性插值三角形的三个顶点,插值点即为三角网格曲面上的脐点。3)、输出并存储脐点坐标,显示脐点。2、数据预处理三角网格数据一般只给出点的坐标信息与三角形信息,但点、边、面的拓扑连接 信息是隐含的。为了计算脐点,需要估算各顶点的法向、主方向与主曲率;而求法向、主 方向与主曲率都需要用到近邻点,查找近邻点的快捷方法之一是经典的翼边数据结构 (Winged-Edge Data Structure),这是查找效率很高的数据存储结构。预处理阶段需要完 成翼边数据结构的建立和法向、主方向与主曲率的计算。首先,对输入三角网格建立翼边数据结构。在图形学中,翼边数据结构是最常用的查找近邻的有效的数据结构之一。其次,用Max方法计算各个点的法向量(Max,N. Weights forComputing Vertex Normals from Facet Normals. Journal of Graphics Tools,1999,4(2),1-6.),并用 Cheng 方法对单位法向 η 作光滑滤波(Cheng,Ζ. L.,Zhang, Χ. P. Estimating Differential Quantities from Point Cloud Based on aLinear Fitting of Normal Vectors. Science in China Series F, InformationSciences,2009,52(3),431-444.)。最后,根据单位法向量η用Cheng方法计算各顶点的主方向和主曲率。3、对三角网格上每个三角形进行脐点检验与计算本发明的主要目标是快速而且准确地检测三角网格上某个三角形是否包含一个 零脐点向量;如果是,如何计算对应脐点。计算方法对每个三角形依次独立进行。因此这里 以一个Aabc作为例子说明。分七个步骤说明3. 1以Δ abc为基础建立三角形局部直角坐标系xyz
, u , Pn - a(p0 — a) χ (p0 - b)以质心P。=竿为原点,ei=“为χ轴方向,”(P:—二:-b)|为ζ轴
方向,e2 = e3xei为y轴方向建立Aabc的局部三维直角坐标系pQ-xyz,这里e3为Aabc 所在平面的单位法向,而P。、ei、e2可以在Δ abc所在平面内任意选定,只须力、e2、e3构成合 法的右手直角坐标系。X表示向量的叉积运算。3. 2分别建立顶点a、b和c的蒙日坐标系uw以a为例。假设点a的单位主方向分别为巧,"^,对应主曲率为^和κ2,单位法 向量€,以巧,e2,巧为轴方向,建立(右手)局部直角坐标系a-uvw,即蒙日(Monge)坐标 系。为了保持与Pcrxyz定向一致,巧与61,€与%夹角为锐角。在蒙日坐标系a-uvw下,曲 面方程可以局部表示成W =全(KT1M2+κ:2ν2)+ >(Μ,ν)2,ο (u, ν)2表示次数不低于3的泰勒展开余项。a在蒙日坐标系a-uvw下的形状算 V1 0
子矩阵就是
0 κ.3. 3形状算子的局部参数化本部分是本发明的核心之一。 形状算子S的计算方法设曲面以矢量参数形式表示为r (U,ν) = [1(11,力,7(11,力,2(11,力]\其中^7,2 是r的三个坐标分量,U、ν为曲纹坐标,则第一基本形矩阵为1 =
第二基本形矩阵为ιι
'EF''rU■KrUrVFGΛKrV"rV
-LM''rUU “1MΝ_ruv'11 rV
,其中ru,rv表示r分别关于u,ν的-
阶偏导数,ruu为关于u 二阶偏导数,ruv为关于u,ν混合二阶偏导数,rvv为关于ν 二阶偏导
数,
η
rUxrV S=I 1 II,
为曲面单位法向量, 表示向量的点积运算。则形状算子可以计算如下
I—1表示I的逆矩阵。S几何意义是一个切映射,其特征值与对应特征向量就是两个主曲率与主方向。 形状算子的局部参数化S的数学表示与参数化有关,下面将S在三角形局部直角坐标系Ptl-Xyz下局部参 数化。为简化表示,采用如下记号V Jacobian 矩阵令向量函数 g= [gl (h),& (h),…,gm(h) ]τ,其中 gi 是 g 的第 i
个分量函数(i = l,…,m),自变量h= D^h2, =1,"·,η)。则g关于h的Jacobian矩阵记为
Λ (8)
,hn]T,其中h,.是!!的第j个分变量(j
Sg1ShldSmdSm5K
V Hessian矩阵函数f (h)关于h的Hessian矩阵记为
d2fd1/δΡξd\dhnδ2/‘^fd\dhnSh2n
的形状算子K =
给定局部坐标系Pcrxyz和蒙日坐标系Pk-uvw,下面叙述如何将Pk在蒙日坐标系下
K1 0
0 κ,
重新在Pcrxyz参数化。由S的计算公式可知,只要知道Pk在Ptrxyz
下的法向信息与曲率信息即可,即该点处的Jx(Z)与Hx (z),其中χ= [x,y]T为xy平面的坐 标向量。如图2示,作pk在xy平面的正投影变换,艮是投影的像点,从pk_uVW到pQ-XyZ的 坐标变换公式为X = mx3u + [(PrP。).e,L,式中X= [x,y,z]T*PQ-XyZ下的坐标向量, U = [u,V,w]T为Pk-UVW下的坐标向量,《=e, 是旋转变换矩阵元素。设u = [u,ν]τ为uv平面的坐标向量,曲面在Pk-Uvw的局部表示为W = - urKu + o(u, ν)2
2用表示在Pk或求值,有d:i+dfAAd:’1。利用
^Pfcld2\ + dIiwU "22+"23Wv」 22 _
关系式Jx(u) = Ju(X)-1,经过基本的数学推导运算,可得到Jx(u) = det(B)[^22 - J12] ,Hx(u) = det([7,)8])det(B)3ArKA,Jx(V) = det(B)[-i/21 J11] ,Hx(v) = -det([7,a])det(B)3 ArKA,Jx (W) s 0 ,Hx (W) s BrKB,上述各式表示坐标变换公式在在pk处的一阶、二阶偏导信息,式中各符号意义为α = [d12,dn]T,β = [d22,d21]T,γ = [d23,d13]T,A = [β,-a ],B = Ju(X)-^,det 表示 矩阵的行列式。由关系式ζ = d31u+d32v+d33w,利用 Jx(u),Hx(u),Jx(v),Hx(v),Jx(w), Hx(w),从而可以计算得到,Hx(z)\_t,即 P = Z^,,r = Zxx\_k,
S = ,t = 。则第一基本形系数是E = 1+p2,F = pq, G = 1+q2,而第二基本形系数
μ--ΤΦΤ7’ N=JTk ,·
1rG-sF sG — tFs=[^7^n-rF+sE -sF+tEy至此完成形状算子的局部参数化。3. 4构造脐点向量定义脐点向量为t = [S11-S22, S12+S21]T。3. 5脐点向量线性插值零向量记Aabc三顶点的脐点向量为ta,tb,tc,插值零向量xta+ytb+ztc = 0,式中x, y, ζ 为关于Aabc的面积坐标,满足x+y+z = 1。 3.62X2线性方程组求解上述插值方程可改写为χ (t。_ta) +y (t。_tb) = t。,直接解出X,y。3. 7计算脐点如果上述坐标解满足彡l,0<y彡1,0彡Ι-χ-y ^ 1,表示Δ abc包含一个 零脐点向量,存在一个脐点xa+yb+(l-x-y)C。4结果输出对于计算的结果,本发明提供两种形式输出。第一种方式为把点的坐标以文件形 式存储,再由专业软件进行显示。第二种方式为把主方向、主曲率信息转化为矢量信息或者 颜色信息,结合脐点与三角网格显示出来。5实验结果与结论下面我们列出本发明的理论分析结果,并通过实验证明本发明的实现表现。5. 1理论性能分析本发明方法的理论计算精度性质1输入三角网格精度为h,如果h足够小,本发明对一般脐点的理论计算精度 可达到0(h)与0(h2)间。但已有的任何方法都不能完全恢复三角网格表示的原曲面真实的形状算子,因此 上述理论精度实际上达不到。一般地,假定形状算子能实际估算到精度0(h),则性质2输入三角网格精度为h,如果h足够小,本发明对一般脐点的实际计算精度 可达到0(h)。本发明是能对脐点计算精度进行估算的方法。5. 2点云数据的对比实验
图3是采用本发明中的计算主曲率与主方向具体实施方式
而提取的脐点效果图; 图4是采用另一种主曲率与主方向的计算方法(Rusinkiewicz,S. Estimating curvatures and their derivatives on triangle meshes. In Proceedingsof 2nd International Symposium on 3D Data Processing,Visualization andTransmission,2004,486-493.)而 提取的脐点效果图。细线表示一支主方向场,黑色球为计算的脐点。由对比实验可见,实验 结果非常相似。本发明更多实现例子见图5、图6、图7。本发明中的具体实施方式
中可与任 意估算法向、主曲率与主方向的方法配合使用,因此使用非常灵活。本发明可以用于计算机图形学各应用领域,具有可信度高、操作简单、使用灵活、 应用前景广的特点。以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任 何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在 本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
一种在三角网格曲面上检测脐点的方法,其特征在于,步骤包括步骤S1输入具有对象形状数据信息,并对具有对象形状数据信息的三角网格曲面进行预处理,创建三角网格的翼边数据结构,按照三角网格的拓扑邻接关系组织成数据存储结构;步骤S2根据三角网格每个顶点的相邻点、相邻边和相邻面信息,求出每个顶点对应的法向,主方向与主曲率;步骤S3对三角网格的每个三角形选择一个原点,将所在三角形平面作为xy面,建立三角形局部直角坐标系;步骤S4对三角形每个顶点,以对应两个主方向及法向建立局部直角坐标系,所述局部直角坐标系是蒙日(Monge)坐标系;步骤S5通过将三角形的三个顶点分别所在的蒙日坐标系转化为三角形局部坐标系的三维坐标变换手续,对三角形每个顶点的形状算子进行局部参数化处理,生成三角形局部坐标系内的形状算子;步骤S6在三角形局部坐标系中,将参数化后的每个顶点形状算子构造对应的脐点向量;步骤S7在三角形内对三个脐点向量用面积坐标插值零脐点向量,从而得到一个2×2线性方程组;步骤S8直接求解2×2线性方程组,若面积坐标解对应于三角形的内点,该零点对应为脐点,则执行步骤S9,若面积坐标不对应于三角形的内点,零点与脐点不对应,则执行步骤S3;步骤S9利用解坐标线性插值三角形的三个顶点,插值点即为三角网格曲面上的脐点,输出并存储脐点坐标,显示脐点。
2.按权利要求1所述的方法,其特征在于,脐点向量构造如下设形状算子为S = Kl2x2= 11 12,所述脐点向量构造为t= [sn-s22,s12+s21]T,公式中记号T表示矩阵转置,i或j = 1或2。
3.按权利要求1所述的方法,其特征在于,局部参数化后的形状算子与脐点的数学 关系为对象形状曲面上一点,该点是脐点,当该点并仅当该点处脐点向量t = [S11-S22,S12+S21] τ — O 0
4.按权利要求1所述的方法,其特征在于,以三角形三个顶点a、b和c的脐点向量ta、 tb和t。作面积坐标插值零脐点向量表示为xta+ytb+zt。= 0,其中χ、y和ζ为关于三角形 Δ abc三个顶点的面积坐标,满足x+y+z = 1。
5.按权利要求1所述的方法,其特征在于,将在三角形内的零脐点向量面积坐标作为 接受脐点,所述接受脐点面积坐标应满足O < X<1,OSySl,OSzSl。
全文摘要
本发明涉及一种在三角网格曲面上检测脐点的方法,步骤包括1)对三角网格预处理,估计法向、形状算子,2)对组成三角网格的每个三角形三个顶点的形状算子作局部参数化处理,对参数化后的每个形状算子构造对应的脐点向量,三个脐点向量用面积坐标插值零脐点向量,转化为一个2×2线性方程组,求解该线性方程组,3)将在三角形内的零脐点向量面积坐标作为接受脐点。本发明适用于具有任意复杂拓扑结构的三角网格曲面。
文档编号G06T17/20GK101950431SQ20101017561
公开日2011年1月19日 申请日期2010年5月12日 优先权日2010年5月12日
发明者张晓鹏, 车武军 申请人:中国科学院自动化研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1