A Fast and Simple Surface Reconstruction Algorithm - Semantic Scholar

Report 1 Downloads 173 Views
A Fast and Simple Surface Reconstruction Algorithm Siu-Wing Cheng, Jiongxin Jin and Man-Kit Lau Department of Computer Science and Engineering Hong Kong University of Science and Technology

Jun 17, 2012

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

1 / 18

Surface reconstruction

point cloud

Cheng, Jin and Lau (HKUST)

triangular mesh

Surface reconstruction

Jun 17, 2012

2 / 18

Surface reconstruction Given: a “dense” point set sampled from an unknown surface Σ ⊂ R3 Goal: to compute a surface mesh that is topologically equivalent - homeomorphic to Σ

geometrically faithful - small normal deviation - small Hausdorff distance

Applications: reverse engineering, medical imaging, computer graphics, . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

3 / 18

ε-sample

Medial axis MΣ

closure of the set of points having at least two closest points in Σ



Local feature size lfs(x) lfs(x) = d(x, MΣ )

lfs(x)

Σ

x

ε-sample P ∀x ∈ Σ, d(x, P) ≤ εlfs(x)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

4 / 18

Previous results

Crust, PowerCrust, Cocone: O(n2 ), need to compute 3D DT/VD output-sensitive 3D VD algorithm: O((n + f ) log2 n) - uniform sample from generic smooth surface: f = O(n log n) Attali, Boissonnat and Lieutier [SCG ’03] √ - non-generic surface: f = Ω(n n) even for uniform sample Erickson [DCG ’03]

Funke and Ramos [SODA ’02]: O(n log n) (not practical)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

5 / 18

FR algorithm 1

Extract a locally uniform O(ε)-sample S ⊆ P.

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

6 / 18

FR algorithm 1

Extract a locally uniform O(ε)-sample S ⊆ P.

2

Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

6 / 18

FR algorithm 1

Extract a locally uniform O(ε)-sample S ⊆ P.

2

Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]

3

Add back P \ S. O(n log n)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

6 / 18

FR algorithm 1

Extract a locally uniform O(ε)-sample S ⊆ P. O(n log n) well-separated pair decomposition approximate range searching approximate directional nearest neighbors

2

Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]

3

Add back P \ S. O(n log n)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

6 / 18

FR algorithm 1

Extract a locally uniform O(ε)-sample S ⊆ P. O(n log n) well-separated pair decomposition approximate range searching

⇒ Octrees

approximate directional nearest neighbors 2

Reconstruct a surface using S. O(n log n), Dey, Funke and Ramos [EuroCG ’01]

3

Add back P \ S. O(n log n)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

6 / 18

Our results

Given an ε-sample P, compute a locally uniform O(ε)-sample S ⊆ P in O(n log n) time with a single octree.

surface reconstruction algorithm: O(n log n), optimal in the pointer machine model performance: - for non-uniform samples: 51% to 68% faster than Cocone - for locally uniform samples: still faster than Cocone

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

7 / 18

Locally uniform sample S

βrq rq

Σ

Bq q

S

Bq : largest empty ball with center in Σ and boundary through q ∀q ∈ S, |B(q, βrq ) ∩ S| = O(1)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

8 / 18

Octree decomposition `C C

Root cell

1 8 `C

smallest bounding cube of P Splitting rule split a splittable leaf cell into eight children Balancing rule split a leaf cell C if it has a neighbor C 0 s.t. `C 0 < `C /2

non-splittable

C

Apply the two rules alternately until the tree stops growing. splittable Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

9 / 18

Example

splitting . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . . balancing . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . . balancing . . . splitting . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . . balancing . . . splitting . . . balancing . . .

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Example

splitting . . . balancing . . . splitting . . . balancing . . . done

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

10 / 18

Properties of the octree

O(n) size, O(n log n) construction time

balanced: side lengths of neighboring leaf cells differ by at most a factor 2

non-empty leaf cells have side lengths O(εlfs) (but can be much smaller than εlfs)

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

11 / 18

Overview 1

Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

12 / 18

Overview 1

Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface

C

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

12 / 18

Overview 1

Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface

2

Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes

C

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

12 / 18

Overview 1

Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface

2

Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes

C

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

12 / 18

Overview 1

Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface

2

Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes

3

Pick one point from each non-empty leaf cell locally uniform O(ε)-sample

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

12 / 18

Overview 1

Trim the tree so that the sizes of non-empty leaf cells are “good” side lengths O(εlfs) the union of their const-factor expansions covers the surface

2

Smooth out the sizes of non-empty leaf cells no cell C 0 intersecting κ-factor expansion of C is smaller than half of C (κ = 2 in the example) can be done in linear time by processing non-empty leaf cells in decreasing order in their sizes

3

Pick one point from each non-empty leaf cell locally uniform O(ε)-sample

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

12 / 18

Tree trimming Trim the tree so that the sizes of non-empty leaf cells are “good”: 1

2

3

C

estimate surface normal at p ∈ C H: approximate tangent plane look for an empty cube with center in H and side length 18 `C in close neighborhood of C

p empty cube of size 18 `C

if normal estimation fails or an empty cube is found, then make parent(C ) a new leaf cell, and perform the checking on parent(C ) (`C = O(εlfs) in this case)

Cheng, Jin and Lau (HKUST)

˜p n

H

trim C

Surface reconstruction

Jun 17, 2012

13 / 18

Normal estimation

p1

Normal estimation at p ∈ C : 1 2 3

Pick pi ∈ P ∩ Ri , for i ∈ [1, 53 ]

Find pi , pj , s.t. ∠pi ppj ∈ [θ0 , π − θ0 ] ˜ p = npi ppj n

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Ri p C

5`C

p2

Jun 17, 2012

14 / 18

Locally uniform subsample

Cocone on P

Cheng, Jin and Lau (HKUST)

Cocone on S

Surface reconstruction

Jun 17, 2012

15 / 18

Locally uniform subsample

Cocone on P

Cheng, Jin and Lau (HKUST)

Cocone on S

Surface reconstruction

Jun 17, 2012

15 / 18

Performance (non-uniform input) sec

Cocone on P Extraction

Cocone on S

Insertion

300

200

100

0

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

16 / 18

Performance (uniform input) sec

Cocone on P Extraction

Cocone on S

Insertion

90

60

30

0

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

17 / 18

Extensions

multiple surfaces

handling noise

k-dimensional manifold in Rd

Cheng, Jin and Lau (HKUST)

Surface reconstruction

Jun 17, 2012

18 / 18