Title: Detecting Undersampling in Surface Reconstruction
1Detecting Undersampling in Surface Reconstruction
- Tamal K. Dey and Joachim Giesen
- Ohio State University
2Surface Reconstruction
- A sample and PL approximation
3Previous and recent works
- Functional approach
- Tangent plane HDeDDMS92
- Natural Neighbors BC00
- Voronoi filtering
- Crust AB98
- Cocone ACDL00
4Local feature size and sampling
- Medial axis
- Local feature size f(p)
5Crust Algorithm
- Compute VP
- Add Voronoi vertices
- Compute Delaunay
- Retain edges between samples only
6Crust in 3D
7Cocones
Space spanned by vectors making angle ? ?/8 with
horizontal
- Compute cocones
- Filter triangles whose duals intersect cocones
8Boundaries
- Only part of a surface is well sampled
9High curvature
- High curvature regions are often undersampled
10Non-smoothness
- Impossible to sample densely
- ? ? 0
11Well sampled patch and boundary vertices
- S ? F is well sampled if e-sampling holds for S
- Restricted Voronoi on S defines boundary vertices
- p is interior if restricted cell has no boundary
point otherwise p is boundary vertex
12Cocones, radius and height
- cocones space spanned by vectors making ? ?/8
with the horizontal
- radius r(p) radius of cocone
- height h(p) min distance to the poles
13Flatness condition
1. Ratio condition r(p) ? ? h(p)
2. Normal condition ?v(p),v(q) ? ? ?q with p?Nq
14Boundary Detection(1st phase)
IsFlat(p,?,?) check ratio and normal condition
for Vp if both are satisfied
return true else return
false end
15Boundary detection(2nd phase)
Boundary(P,?,?) Compute the set R of flat
vertices while ?p?R and p?Nq with q?R
and r(p)??h(p) and ?v(p),v(q) ??
RR?p endwhile return P\R end
16Reconstruction
Cocone(P, ?,?)
Compute VP
B Boundary(P,?,?)
for each p?P if p?B compute T of triangles with
duals intersecting Cp
endif enfor
Extract manifold end
17Correctness
Definition An interior vertex is deep if no
boundary vertex contains it as cocone neighbor.
Theorem 1 All deep interior vertices are flat.
18Correctness
Assumptions (i) S?S with points ?f(p) away
from sample points p defines same set of boundary
vertices as S does, where ???. (ii) Each boundary
vertex has an interior vertex as neighbor. (iii)
Each interior vertex is connected to a deep
interior vertex only through interior vertex
neighborhoods.
Theorem 2 Boundary vertices cannot be flat.
Theorem 3 Boundary() detects all and only
boundary vertices.
19Implementation
- Co-cone is implemented in CGAL
- Floating point arithmetic is faster, but
produces numerical errors - Exact arithmetic with integers is slow
- Use floating point filters
- Difficulty in manifold extraction step with
false boundary vertices due to noise and
numerical error
20Umbrella check
- Check if a vertex has an umbrella
- Declare a vertex without umbrella as a boundary
vertex - Prune triangles with sharp edges only if they
are not incident with boundary vertices
21Parameters
- theory ? 0.01, higher ? in practice
- theory ? 1.3?, ? 0.66-0.99 produce good
result. Smaller ? detects more boundaries - theory ? 0.14 radians, ?/6 produces good
result - cocone angle ?/8 in theory and ?/8 in practice
? ? 0.23
? ? 0.99
22Data set foot
23Data set Mannequin
24Data set cactus
25Data Set Sat
26Data set Engine
27Data set Oilpump
28Nonsmoothness Repaired
29Noise Detection (Outliers)
Cleaned
Outliers
30Boundary Detection Helps Modeling by Parts
31Arithmetic Precision
- Floating point is fast, but causes numerical
error - Exact arithmetic is slow, but produces robust
results
32Precision
Floating point
Exact arithmetic
33Timings (Exact-Double)
Name Delaunay
Boundary
Reconstruction Cactus
130- 40-
23- Cat
120-50 108-58
68-51 Engine
831-405 108-58
79-59 foot
233-99 224-119
138-103 Mannequin
135-57 137-73
85-64 Oilpump
409-153 314-166
197-141 Club
171-74 179-95
112-84
34Timings
Name points
triangles
Reconstruction(sec.) Halfsphere
245 486
0.58 Mannequin 12772
25339 74 Foot
20021 39995
122 Oilpump
30931 61548
194 Monkeysaddle 10000
19596 345
PIII, 933Mhz, 512MB
35Conclusions
- Introduced a measure radius/height ratio for
skininess of Voronoi cells - Helps in detecting boundaries and sharp features
- Recently we have used the radius/height ratio for
sample decimation (CCCG01) - Used it for supersize data (PVG01)
- Can we use it to eliminate noise?
- More applications
543,652 points 143 -gt 28 min
3.5 million points Unfin-gt 198 min