Publications / 2020 / Gaussian Curvature Filter on 3D Meshes

Gaussian Curvature Filter on 3D Meshes

W Tang, Y Gong, K Liu, J Liu, Wei Pan, B Liu, G Qiu
arXiv:2003.09178

In one sentenceGCF smooths and denoises triangle meshes by lowering Gaussian curvature without computing it: each vertex moves far enough to put a neighbour on its tangent plane. One parameter, about 18× faster than Gaussian curvature flow.

The problem

Triangle meshes from 3D scanners and other acquisition pipelines are often noisy, and a noisy mesh has higher Gaussian curvature than its noise-free counterpart. Reducing Gaussian curvature therefore smooths and denoises a mesh, and driving it to zero everywhere gives a developable surface, one that can be flattened onto a plane without distortion and is easy to manufacture.

The classical way to minimize Gaussian curvature is Gaussian curvature flow, and it has two problems. It computes Gaussian curvature explicitly, which implicitly assumes the surface is second-order differentiable, a condition real meshes rarely satisfy. It also needs a small time step to stay numerically stable, so it is slow, and in the paper’s tests the step size had to be tuned per mesh. Dedicated denoising methods, mostly built on vertex or face normals, bring their own difficulty: many manually set parameters and strong prior assumptions, and on models rich in texture they can damage the original features while removing noise.

Plot of Gaussian curvature energy against iterations, falling steeply from about 1000 towards zero, with three renderings of a vase: rough and faceted at iteration 0, smoother at 50 and smooth at 100.
The filter on the noisy Vase mesh: Gaussian curvature energy over 100 iterations, with the mesh at iterations 0, 50 and 100. Fig. 1 of the paper.

How it works

The filter rests on one observation. On a developable surface, every point has another point arbitrarily close to it that lies on its tangent plane (Theorem 1 of the paper). So the Gaussian curvature at a vertex can be reduced by moving the vertex until one of its neighbours falls on its tangent plane. If a neighbour already lies there, the vertex does not move. The filter never computes Gaussian curvature itself and needs no second derivatives.

  1. A neighbour on the tangent plane. On a developable surface such as a cylinder, a cone or a tangent surface, a point x always has a nearby point x0 on its tangent plane. On a discrete mesh that point need not be a vertex, so the filter takes the 1-ring neighbours (the vertices directly connected to it) as candidates and uses one of them as an approximation.
  2. Domain decomposition. A colouring step (Algorithm 1) gives every vertex a label that none of its neighbours has. Each colour set is updated in turn, so a vertex moves while its 1-ring neighbours stay fixed. This is what keeps the iteration convergent, and the independent sets also make the algorithm easy to parallelise.
  3. Moving distance without constraint. For vertex vi, compute the distance from each 1-ring neighbour to the tangent plane of vi and take the smallest absolute value as the moving distance |d|.
  4. Moving distance with constraint. For feature preservation, the normal of each neighbour is also used (the unit cross product of its two adjacent edges). Every edge from vi to a neighbour is projected onto the normal of vi and onto every neighbour normal, 5 edges × 6 normals (the normal of vi and the five neighbour normals) = 30 distances for a five-neighbour ring, and the smallest absolute value is taken. At a vertex on a plane, an edge or a corner, some normal is perpendicular to an edge, so |d| = 0 and the vertex keeps its position.
  5. Vertex update. The vertex moves to v′ = v + |d|·δ, where δ is the unit vector opposite to the differential coordinate (the vertex minus the centroid of its neighbours), which approximates the reverse normal direction. Boundary vertices are not moved. Repeating this over all colour sets for a set number of iterations, the filter’s only parameter, lowers the Gaussian curvature of the whole mesh.
Three developable surfaces drawn in blue, a ruled sheet, a cone and a twisted tangent surface, each touched by a pale green triangle with a red and a dark blue point on it.
Theorem 1 on the three types of developable surface: cylindrical, conical and tangent surface, left to right. For a point x (red), another point x0 (blue) lies on its tangent plane. Fig. 2 of the paper.
Three line drawings of a vertex v i with five neighbours v j1 to v j5 forming a pyramid. (a) A red tangent plane at v i with a dashed vertical distance d 2 to neighbour v j2. (b) The same pyramid with coloured normal arrows at v i and at every neighbour. (c) The vertex moved down along a red arrow to v i prime, with the equation v i prime equals v i plus absolute d times delta.
The two projection strategies and the vertex update: (a) without constraint, distances from the neighbours to the tangent plane of vi; (b) with constraint, the normals of vi and of its neighbours; (c) the update v′i = vi + |d|·δ. Fig. 4 of the paper.

Results

The paper tests two properties. For Gaussian curvature minimization, it compares the filter with Gaussian curvature flow on the Max Planck head and the Vase, without noise and with noise of 0.3 times the average edge length le. Both projection strategies lower the Gaussian curvature energy faster than the flow. Without the constraint the filter converges after about 10 iterations, but details are lost and the angular error rises again after its first rapid drop; with the constraint it converges after about 40 iterations and keeps details while removing noise. Against the developability method of Stein et al. (SIGGRAPH 2018), both reach similar results on noise-free meshes, with lower energy for the filter. On the noisy bunny the filter reaches a Gaussian curvature energy of 83.48 against 323.21 and an MSAE of 11.86 against 12.59, in 37.90 s against 1571.10 s (Table 2). On the noisy mask, the method of Stein et al. produces a singularity, while the filter does not (Fig. 7).

For denoising, the filter runs 40 iterations and the seven compared optimization- and filter-based methods use their default parameters. Besides the lowest MSAE, it reaches the lowest Gaussian curvature energy of all methods on each of the four meshes; the paper reads the low MSAE as the best preservation of geometric features. On two real scans with unknown noise, an angel and a rabbit, it removes noise while keeping geometric features (Figs. 13 and 14). Without the geometric constraint, the filter can denoise but cannot preserve features. As future work, the authors plan a parallel version of the filter for very large meshes on the GPU.

Ten armadillo models in two rows of five, each with a close-up of the face above it and MSAE and GCE values below: noisy input, original, seven compared methods, and the proposed filter with MSAE 9.72 and GCE 1665.57 in bold.
Armadillo with noise σn = 0.3 le: (a) noisy input, (b) original, (c)–(i) the seven compared methods, (j) the Gaussian curvature filter, each with a close-up of the boxed region and its MSAE and GCE. Fig. 8 of the paper.
Four panels. Each shows four colour-coded renderings of the Max Planck head or the Vase (input, GC Flow, Ours without FP, Ours with FP) above two line plots of Gaussian curvature energy and MSAE against iterations for GC Flow in black, the filter without feature preservation in blue and with feature preservation in red.
Minimizing Gaussian curvature on the Max Planck head and the Vase, noise-free (top) and with noise σn = 0.3 le (bottom). Each panel shows the input, Gaussian curvature flow and the filter without and with feature preservation (FP), followed by Gaussian curvature energy (GCE) and MSAE over 100 iterations. Fig. 6 of the paper.

Cite

@article{tang2020gaussian,
  title={Gaussian Curvature Filter on 3D Meshes},
  author={Tang, Wenming and Gong, Yuanhao and Liu, Kanglin and Liu, Jun and Pan, Wei and Liu, Bozhi and Qiu, Guoping},
  journal={arXiv preprint arXiv:2003.09178},
  year={2020}
}
Type
Article
Topic
Geometry Processing
Venue
arXiv:2003.09178
Year
2020