Shape Analysis课程笔记07-Discrete Surface Curvature

这个系列是MIT 6.838: Shape Analysis的同步课程笔记。本课程会介绍几何方法在图形学、机器学习、计算机视觉、医疗图像以及建筑设计等相关领域的原理和应用。本节主要介绍离散网格上计算各种曲率的相关方法。

Applications of Curvature

在上一节中我们介绍了连续曲面上的曲率。具体地,曲面上最重要的两个曲率分别是Gauss曲率和平均曲率,它们与主曲率以及曲面的第二基本形式有着密切的关系。

曲面上的曲率在工程中有非常多的应用。比如说我们可以把Gauss曲率和平均曲率作为曲面形状的描述子、利用曲率来重建曲面、对曲面进行滤波、指导渲染过程、重新网格化(remeshing)等。

Approximating Curvature

Challenge on Meshes

在离散网格上计算曲率的难点在于曲率的定义依赖于曲面上的导数,而在离散网格上每个面片都是一个平面。因此对于离散曲面的曲率我们只能使用一些近似方法来计算。

Local Tensor Methods

早期计算离散曲面上曲率的方法是直接估计网格上的第二基本形式,然后再导出Gauss曲率和平均曲率。Taubin指出在光滑曲面上可以利用一个矩阵来Mp来估计曲率:

进一步可以证明Mp的特征向量分别为法向n以及两个主方向t1t2,而其特征值与曲面的主曲率密切相关:

对于离散的情况,我们只需要把积分改成求和并替换掉相应的被积项即可:

这里我们简单对离散的过程进行一下推导。对于曲面上的曲线γ(s),首先根据Taylor展开有:

γ(s)=p+T(0)s+12κγ(0)N(0)s2+O(s3)

上式表明:

γ(s)p22=s2+O(s3) 2npT(γ(s)p)=κθs2+O(s3)

因此可以得到方向曲率的计算公式:

κθ=2npT(γ(s)p)s2+O(s)=2npT(γ(s)p)γ(s)p22+O(s3)+O(s)=2npT(γ(s)p)γ(s)p22+O(s)

Taubin方法的一个缺陷在于它对曲率的估计容易受到局部噪声的影响。由于Taubin方法是基于Taylor展开来推导的,当网格不够稠密时它对曲率的估计往往不够准确。

在一些更现代的方法中,我们会根据实际任务的需求来设计曲率的估计方法。

Direct Approximation of II

假设已知切平面上的基向量uv,此时曲面的第二基本形式II可以表示为一个矩阵。对于切平面上的向量w=c1u+c2v,可以利用矩阵形式的II来计算w方向的shape operator。

因此在离散网格上我们可以构造一个线性系统来求解每个三角形上的II

最后利用切平面的相对旋转和加权平均的方法就可以得到每个顶点上的II

Structure-Preserving Methods

除了上面介绍的方法我们还可以利用曲率的性质来直接推导离散网格上的曲率计算公式。

Structure-Preserving Gaussian Curvature

Gauss-Bonnet定理(Gauss-Bonnet theorem)是Gauss曲率最重要的性质之一,它指出Gauss曲率的积分是一个拓扑不变量。

利用Gauss-Bonnet定理我们可以推导出离散Gauss曲率的表达式。首先定义顶点上的Voronoi cell:

在Voronoi cell上对Gauss曲率进行积分有:

VKdA=2πχ(V)Vκgds

可以证明在Voronoi cell上欧拉示性数满足χ(V)=1,而测地曲率的积分在每个三角形上等于转角εi。因此有:

VKdA=2πiεi=VKdA=2πiθi

即Gauss曲率在顶点Voronoi cell上的积分等于2π与顶点内角和的差,称为angle defect

类似地,我们也可以推导出离散Gauss-Bonnet定理(discrete Gauss-Bonnet theorem)

Structure-Preserving Mean Curvature

对于曲线来说,κN是缩短曲线长度最快的方式。

类似地,mean curvature normal则可以理解为曲面面积的梯度。

对于离散网格,我们可以认为曲面的面积是一个网格到实数的映射:

这样就可以利用mean curvature normal的性质来推导离散曲面上的平均曲率。首先考虑空间中的一个三角形,我们定义一组正交基分别为ee以及n。此时p点的坐标以及三角形的面积A(p)可以表示为:

p=pee+pe+pnn A(p)=12bpn2+p2

A(p)进行求导有:

Ape=0 Apn=12bpnpn2+p2 Ap=12bppn2+p2

如果我们进一步假设pn=0,则A(p)仅与p有关。此时可以把面积A(p)的梯度表示为:

A(p)=12b e

根据平面几何,我们可以把三角形底边的高向量h使用三个顶点位置向量来表示:

bh=cotα+cotβ h=pp0=prcotα+qcotβcotα+cotβ

把上面的公式结合起来可以得到使用三角形内几何量表示的面积梯度:

A(p)=12b e=12bhh=12((pr)cotα+(pq)cotβ)

在三角网格上我们把顶点相邻的所有三角形的面积梯度加起来就得到了曲面的面积梯度:

A(p)=12j(cotαj+cotβj)(pqj)

因此上面推导的面积梯度即为mean curvature normal在顶点附近的积分。

Alternative Structures

除了上面介绍的方法外我们还可以利用曲率的其它性质来推导离散曲率的表达式。

Reference