Differential Geometry of Surfaces
Consider a continuous surface:
- Normal vector:
- Normal curvature: pick a tangent direction
- curve is the intersection of surface with the plane containing and tangent .
Principle directions
Euler's Theorem:
Directions of principal curvature are orthogonal and independent of parameterization
Principal curvatures:
- maximum curvature:
- minimum curvature:
Mean curvature:
Gaussian curvature:
Design: From Curves to Surfaces
Tensor product idea:
- a surface is formed by sweeping (while potentially deforming) a curve. E.g:
- ruled surface (swept line)
- surface of revolution (circle is swept along line, grows and shrinks)
- generalization: tensor product splines
But this method has few limitation:
- patches need to be glued together for a more involved surface
- condition for maintaining tangent plane continuity can be tedious
- user cannot arbitrary move control vertices and maintain continuity
- intricate constraints of tensor product constructs. E.g: spline order of 2 connected patches may have to match.
- Also, inherent rectangular nature
Point Clouds
Why?:
- Sometimes, easier to handle (esp. in hardware)
- Typically, it is the original (or only) thing that’s available (nearly all 3d scanning devices produce point clouds)
Typical Scanning Pipeline
physical model acquire point clouds register point cloud
Why registration?
Fundamental problem in geometric data processing
- appears in many shape analysis applications
- detect manufacturing defects, or correspondences with templates
One of the best-known algorithms in computer graphics and computational geometry is mixing linear algebra & iterations.
Alignment of Scans
Given a pair of shapes, find the optimal rigid alignment (composition of translation & rotation) between them.
- Intuition: want corresponding points to fit after transformation
- Problem: we dont know what points actually match!
Iterative Closest Point (ICP)
Idea: iterate between finding correspondences and finding the transformation:
Given a pair of shapes, X and Y, iterate:
- Step 1: for each , find nearest neighbor ;
- Step 2: find global deformation minimizing:
For the 1st step, there are some approaches for it. Logically, it is more or less like building Voronoi cell for the point set Y. Programmatically, I think people are using kd-tree to approximate this algorithm.
For the 2nd step, to find optimal rigid motion:
Good news: we have a closed form solution (called Kabsch algorithm)
If (meaning is a reflection) then
Convergence: Intuition is the distance from each point in transformed mesh to the target mesh get closer and closer after each iteration. I am not sure if this distance sum is convex or not, but it is a good idea to know it is going down the hill toward minimum point.
Some variants:
- Szymon Rusinkiewicz and Marc Levoy. "Efficient variants of the ICP algorithm." 3D Digital Imaging and Modeling. Vol. 1., 2001.
- Helmut Pottmann et al. "Geometry and convergence analysis of algorithms for registration of 3D shapes." IJCV, 2006.
- Szymon Rusinkiewicz, A Symmetric Objective Function for ICP, SIGGRAPH 2019
Normal Estimation & Outlier Removal
These are 2 fundamental problems in point cloud processing.
- For normal estimation for a point :
- Find nearest neighbor of point
- Calculate
- How to calculate this min argument is kind of a spectral problem
Outlier Removal
In 2D world:
- If all points aligned, and is large in comparison.
- If points are scattered randomly, then
- So point would not be close to a curve if for some threshold (this is often found through statistics).
Extension to 3D?
- We expect 2 non-zero eigenvalues, so we can set threshold to
- robust statistics can be leveraged as well
Implicit Surface
Definition:
- i.e: the set of all points sharing the same value of a density function .
- sometimes referred to as
Property:
- Normal: obviously,
- Curvatures: deduced by considering Frenet frame. The formula is quite complicated though.
Implicit Surfaces Visualization
Various approaches exist:
- Ray Tracing
- Marching Cubes
- Voxel based ...
Idea: sample the function & locally approximate surface:
- from inside/outside nodes...
- guess local connectivity per cell
- "march" along each intead of treating each cell
Implicit Processing
Level Set Method:
- approach from computational science
- with additional efficient data structures
- based on Hamilton-Jacobi equation:
However, this also brings new drawbacks:
- inherent volume loss
- rarely variational/conservative