Model Repair Leif Kobbelt RWTH Aachen University 1 - - PowerPoint PPT Presentation

model repair
SMART_READER_LITE
LIVE PREVIEW

Model Repair Leif Kobbelt RWTH Aachen University 1 - - PowerPoint PPT Presentation


slide-1
SLIDE 1
  • Model Repair

Leif Kobbelt RWTH Aachen University

1

slide-2
SLIDE 2
  • Leif Kobbelt RWTH Aachen University

Model Repair

  • model repair is the removal of

artifacts from a geometric model such that it becomes suitable for further processing.

  • produce a nice, manifold triangle mesh

– with boundary or – without boundary (watertight)

2

  • 2
slide-3
SLIDE 3
  • Leif Kobbelt RWTH Aachen University

Model Repair

  • types of input
  • surface-oriented algorithms

– Filling holes in meshes [Liepa 2003]

  • volumetric algorithms

– Simplification and repair of polygonal models using volumetric techniques [Nooruddin and Turk 2003] – Automatic restoration of polygon models [Bischoff, Pavic, Kobbelt 2005]

  • conclusion & outlook

3

  • 3
slide-4
SLIDE 4

Leif Kobbelt RWTH Aachen University

Range Images

4

  • registered range images are a set of patches that

describe different parts of an object.

Registration

4

slide-5
SLIDE 5

Leif Kobbelt RWTH Aachen University

Range Images

5

  • large areas of overlap are ...

– ... necessary for registration but – ... bad for consistency

  • how to merge the patches into

a single mesh?

– inconsistent geometry – incompatible connectivities

large scale

  • verlaps

5

slide-6
SLIDE 6

Leif Kobbelt RWTH Aachen University

Range Images

6

  • successfully merged range

images are manifold meshes with holes and islands (i.e. boundaries)

6

slide-7
SLIDE 7

Leif Kobbelt RWTH Aachen University

Range Images

7

  • holes and islands are due to obstructions in the

line of sight of the scanner

  • identify correspondences

between holes and islands

  • fill holes

– smoothly – geometry transfer/synthesis

  • avoid intersections

holes and isles

7

slide-8
SLIDE 8

Leif Kobbelt RWTH Aachen University

Contoured Meshes

  • contoured meshes have been

extracted from a volumetric representation (e.g. by marching cubes)

8

8

slide-9
SLIDE 9

Leif Kobbelt RWTH Aachen University

Contoured Meshes

  • contoured meshes are usually manifold and

closed, but may contain topological noise

– disconnected components – spurious handles – cavities

9

9

slide-10
SLIDE 10

Leif Kobbelt RWTH Aachen University

Triangulated NURBS

  • set of patches that contain small scale gaps and
  • verlaps

10

10

slide-11
SLIDE 11

Leif Kobbelt RWTH Aachen University

Triangulated NURBS

  • set of patches that contain small scale gaps and
  • verlaps

10

10

slide-12
SLIDE 12

Leif Kobbelt RWTH Aachen University

Triangulated NURBS

  • gaps and overlaps are due to triangulating a

common (trimmed) patch boundary differently from both sides

  • issues

– consistent orientation – structure preservation

11

small scale gaps and overlaps

11

slide-13
SLIDE 13

Leif Kobbelt RWTH Aachen University

Triangulated NURBS

12

  • typical workflow, e.g., in CAD/CAM:

Editing Repair

Simulation

manual

  • ften:manu

al(!) automatic NURBS triangle mesh

12

slide-14
SLIDE 14

Leif Kobbelt RWTH Aachen University

Triangle Soups

  • a triangle soup is a set of triangles without

connectivity information

13

13

slide-15
SLIDE 15

Leif Kobbelt RWTH Aachen University

Triangle Soups

  • a triangle soup is a set of triangles without

connectivity information

13

13

slide-16
SLIDE 16

Leif Kobbelt RWTH Aachen University

Triangle Soups

  • good for visualization but bad for downstream

applications that require manifold meshes

  • in addition to the artifacts we already encountered:

14

intersections singular vertex complex edges incompatible

  • rientations

14

slide-17
SLIDE 17

Leif Kobbelt RWTH Aachen University

Not Covered In This Lecture ...

  • geometrical noise

➙ smoothing (Mark)

  • badly meshed manifolds

➙ remeshing (Pierre)

15

15

slide-18
SLIDE 18
  • Leif Kobbelt RWTH Aachen University

Model Repair

  • types of input
  • surface-oriented algorithms

– Filling holes in meshes [Liepa 2003]

  • volumetric algorithms

– Simplification and repair of polygonal models using volumetric techniques [Nooruddin and Turk 2003] – Automatic restoration of polygon models [Bischoff, Pavic, Kobbelt 2005]

  • conclusion & outlook

16

  • 16
slide-19
SLIDE 19

Leif Kobbelt RWTH Aachen University

Surface-Oriented Algorithms

  • surface oriented approaches

explicitly identify and resolve artifacts

  • methods

– snapping – splitting – stitching – ...

17

17

slide-20
SLIDE 20

Leif Kobbelt RWTH Aachen University

Surface-Oriented Algorithms

  • advantages

– fast – conceptually easy – memory friendly – structure preserving, minimal modification

  • f the input

18

18

slide-21
SLIDE 21

Leif Kobbelt RWTH Aachen University

Surface-Oriented Algorithms

  • problems

– not robust

  • numerical issues
  • inherent non-robustness

– no quality guarantees on the output

19

19

slide-22
SLIDE 22

Leif Kobbelt RWTH Aachen University

Example Algorithm

  • algorithm for filling holes

Peter Liepa Filling Holes in Meshes In Proc. Symposium on Geometry Processing 2003

  • three stages
  • 1. compute a coarse triangulation T to fill a hole
  • 2. refine the triangulation, T → Tʼ, to match the vertex

densities of the surrounding area

  • 3. smooth the triangulation Tʼ to match the geometry
  • f the surrounding

20

20

slide-23
SLIDE 23

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • compute a coarse triangulation T

21

21

slide-24
SLIDE 24

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • compute a coarse triangulation T
  • f minimal weight w(T)

22

n vertices, n−2 triangles

1 2 11 10 9 8 7 6 5 4 3

22

slide-25
SLIDE 25

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • weight w(T) is a mixture of

– area(T) = area(∆ ) – maximum dihedral angle in T

  • thus, we favour triangulations of low area and low

normal variation

23

∆ ∈ T

23

slide-26
SLIDE 26

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

24

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = ?

24

slide-27
SLIDE 27

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

25

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = min( w(∆(2,3,9)) + w[3,9], w[2,4] + w(∆(2,4,9)) + w[4,9], w[2,5] + w(∆(2,5,9)) + w[5,9], w[2,6] + w(∆(2,6,9)) + w[6,9], w[2,7] + w(∆(2,7,9)) + w[7,9], w[2,8] + w(∆(2,8,9)) )

25

slide-28
SLIDE 28

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

26

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = min( w(∆(2,3,9)) + w[3,9], w[2,4] + w(∆(2,4,9)) + w[4,9], w[2,5] + w(∆(2,5,9)) + w[5,9], w[2,6] + w(∆(2,6,9)) + w[6,9], w[2,7] + w(∆(2,7,9)) + w[7,9], w[2,8] + w(∆(2,8,9)) )

26

slide-29
SLIDE 29

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

27

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = min( w(∆(2,3,9)) + w[3,9], w[2,4] + w(∆(2,4,9)) + w[4,9], w[2,5] + w(∆(2,5,9)) + w[5,9], w[2,6] + w(∆(2,6,9)) + w[6,9], w[2,7] + w(∆(2,7,9)) + w[7,9], w[2,8] + w(∆(2,8,9)) )

27

slide-30
SLIDE 30

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

28

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = min( w(∆(2,3,9)) + w[3,9], w[2,4] + w(∆(2,4,9)) + w[4,9], w[2,5] + w(∆(2,5,9)) + w[5,9], w[2,6] + w(∆(2,6,9)) + w[6,9], w[2,7] + w(∆(2,7,9)) + w[7,9], w[2,8] + w(∆(2,8,9)) )

28

slide-31
SLIDE 31

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

29

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = min( w(∆(2,3,9)) + w[3,9], w[2,4] + w(∆(2,4,9)) + w[4,9], w[2,5] + w(∆(2,5,9)) + w[5,9], w[2,6] + w(∆(2,6,9)) + w[6,9], w[2,7] + w(∆(2,7,9)) + w[7,9], w[2,8] + w(∆(2,8,9)) )

29

slide-32
SLIDE 32

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

30

1 2 11 10 9 8 7 6 5 4 3

w[2,9] = min( w(∆(2,3,9)) + w[3,9], w[2,4] + w(∆(2,4,9)) + w[4,9], w[2,5] + w(∆(2,5,9)) + w[5,9], w[2,6] + w(∆(2,6,9)) + w[6,9], w[2,7] + w(∆(2,7,9)) + w[7,9], w[2,8] + w(∆(2,8,9)) )

30

slide-33
SLIDE 33

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 1

  • let w[a,c] be the minimal weight that can be

achieved in triangulating the polygon a,a+1,...,c

  • recursion formula
  • dynamic programming leads to an O(n3) algorithm

31

w[a,c] = min w[a,b] + w(∆(a,b,c)) + w[b,c]

a<b<c

w[x,x+1] = 0

31

slide-34
SLIDE 34

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 2+3

  • refine the triangulation such that its vertex

density matches that of the surrounding area ➡ Pierreʼs talk about remeshing

  • smooth the filling such that its geometry matches

that of the surrounding area ➡ Markʼs talk about mesh smoothing

32

32

slide-35
SLIDE 35

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes - 2+3

  • refinement and smoothing

33

33

slide-36
SLIDE 36

Leif Kobbelt RWTH Aachen University 34 Input model Minimal triangulation Refined triangulation Output model Output model

34

slide-37
SLIDE 37

Leif Kobbelt RWTH Aachen University

Filling Holes in Meshes

  • what problems do we encounter?

– islands are not incorporated – self-intersections cannot be excluded – quality depends on boundary distortion

35

35

slide-38
SLIDE 38
  • Leif Kobbelt RWTH Aachen University

Model Repair

  • types of input
  • surface-oriented algorithms

– Filling holes in meshes [Liepa 2003]

  • volumetric algorithms

– Simplification and repair of polygonal models using volumetric techniques [Nooruddin and Turk 2003] – Automatic restoration of polygon models [Bischoff, Pavic, Kobbelt 2005]

  • conclusion & outlook

36

  • 36
slide-39
SLIDE 39

Leif Kobbelt RWTH Aachen University

Volumetric Algorithms

  • 1. convert the input model into an intermediate

volumetric representation ➙ loss of information

37

voxel grid adaptive octree BSP tree

37

slide-40
SLIDE 40

Leif Kobbelt RWTH Aachen University

Volumetric Algorithms

  • 1. convert the input model into an intermediate

volumetric representation ➙ loss of information

  • 2. discrete volumetric representation ➙ robust

and reliable processing

– morphological operators (dilation, erosion) – smoothing – flood-fill to determine interior/exterior – ...

38

38

slide-41
SLIDE 41

Leif Kobbelt RWTH Aachen University

Volumetric Algorithms

  • 1. convert the input model into an intermediate

volumetric representation ➙ loss of information

  • 2. discrete volumetric representation ➙ robust

and reliable processing

– morphological operators (dilation, erosion) – smoothing – flood-fill to determine interior/exterior

  • 3. extract the surface of a solid object from the

volume ➙ manifold and watertight

39

39

slide-42
SLIDE 42

Leif Kobbelt RWTH Aachen University

Volumetric Algorithms

  • 1. convert the input model into an intermediate

volumetric representation ➙ loss of information

  • 2. discrete volumetric representation ➙ robust

and reliable processing

– morphological operators (dilation, erosion) – smoothing – flood-fill to determine interior/exterior

  • 3. extract the surface of a solid object from the

volume ➙ manifold and watertight

40

40

slide-43
SLIDE 43

Leif Kobbelt RWTH Aachen University

Volumetric Algorithms

  • advantages

– fully automatic – few (intuitive) user parameters – robust – guaranteed manifold output

41

41

slide-44
SLIDE 44

Leif Kobbelt RWTH Aachen University

Volumetric Algorithms

  • problems

– slow and memory intensive ➙ adaptive data structures – aliasing and loss of features ➙ feature sensitive reconstruction (EMC, DC) – loss of mesh structure ➙ bad luck (... hybrid approaches) – large output ➙ mesh decimation (Markʼs talk)

42

42

slide-45
SLIDE 45

Leif Kobbelt RWTH Aachen University

Example 1

  • example algorithm 1
  • F. S. Nooruddin and G. Turk
  • Simplification and Repair of Polygonal Models Using Volumetric Techniques
  • IEEE Transactions on Visualization and Computer Graphics 2003
  • issues

– classification of sample points as being inside or outside of the object

(parity count, ray stabbing)

– sampling the volume – extracting the mesh

43

43

slide-46
SLIDE 46

Leif Kobbelt RWTH Aachen University

Nooruddin and Turkʼs Method

  • point classification: Layered depth images (LDI)

44

x y

44

slide-47
SLIDE 47

Leif Kobbelt RWTH Aachen University

Nooruddin and Turkʼs Method

  • point classification: Layered depth images (LDI)

45

x y

45

slide-48
SLIDE 48

Leif Kobbelt RWTH Aachen University

Nooruddin and Turkʼs Method

  • point classification: Layered depth images (LDI)

46

x y

46

slide-49
SLIDE 49

Leif Kobbelt RWTH Aachen University

Nooruddin and Turkʼs Method

  • point classification: Layered depth images (LDI)

47

x y

47

slide-50
SLIDE 50

Leif Kobbelt RWTH Aachen University

  • point classification: Layered depth images (LDI)
  • 1. record n layered depth images
  • 2. project the query point x into each depth image
  • 3. if any of the images classifies x as exterior, then

x is globally classified as exterior else as interior

Nooruddin and Turkʼs Method

48

48

slide-51
SLIDE 51

Leif Kobbelt RWTH Aachen University

  • supersampling
  • filtering

– Gaussian – morphological filters (dilation, erosion)

  • model simplification
  • reduction of topological

noise

  • marching cubes

Nooruddin and Turkʼs Method

49

49

slide-52
SLIDE 52

Leif Kobbelt RWTH Aachen University

Nooruddin and Turkʼs Method

50

  • supersampling
  • filtering

– Gaussian – morphological filters (dilation, erosion)

  • model simplification
  • reduction of topological

noise

  • marching cubes

50

slide-53
SLIDE 53

Leif Kobbelt RWTH Aachen University

  • supersampling
  • filtering

– Gaussian – morphological filters (dilation, erosion)

  • model simplification
  • reduction of topological

noise

  • marching cubes

Nooruddin and Turkʼs Method

51

51

slide-54
SLIDE 54

Leif Kobbelt RWTH Aachen University 52 100×100×100 Input model Input model 200×200×200 300×300×300 50×50×50

52

slide-55
SLIDE 55

Leif Kobbelt RWTH Aachen University 53 Supersampling Raw Smoothing Supersampling + smoothing Marching Cubes

53

slide-56
SLIDE 56

Leif Kobbelt RWTH Aachen University

  • voxelization

– characteristic function / signed distance function – cannot handle all kinds of inconsistencies

  • repair

– uniform treatment of voxel – cannot exploit local shape information

  • extraction

– thresholding – sampling artifacts

Nooruddin and Turkʼs Method

54

54

slide-57
SLIDE 57

Leif Kobbelt RWTH Aachen University

Example 2

  • example algorithm 2
  • S. Bischoff, D. Pavic, L. Kobbelt
  • Automatic Restoration of Polygon Models
  • Transactions on Graphics 2005

55

55

slide-58
SLIDE 58

Leif Kobbelt RWTH Aachen University

Overview

56

volumetric representation volumetric representation manifold mesh extraction gap filling, removal of interior geometry voxelization

56

slide-59
SLIDE 59

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-60
SLIDE 60

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-61
SLIDE 61

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-62
SLIDE 62

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-63
SLIDE 63

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-64
SLIDE 64

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-65
SLIDE 65

Leif Kobbelt RWTH Aachen University

Overview

57

57

slide-66
SLIDE 66

Leif Kobbelt RWTH Aachen University

Conversion

58

  • adaptive octree: subdivide a cell, if it contains

multiple planes or a boundary

voxel topology = polygon topology

58

slide-67
SLIDE 67

Leif Kobbelt RWTH Aachen University

Closing Gaps

59

  • close gaps by dilating the boundary voxels

59

slide-68
SLIDE 68

Leif Kobbelt RWTH Aachen University

Closing Gaps

59

  • close gaps by dilating the boundary voxels

59

slide-69
SLIDE 69

Leif Kobbelt RWTH Aachen University

Closing Gaps

59

  • close gaps by dilating the boundary voxels

59

slide-70
SLIDE 70

Leif Kobbelt RWTH Aachen University

Determine Exterior

60

  • determine the exterior by flood filling & dilation

60

slide-71
SLIDE 71

Leif Kobbelt RWTH Aachen University

Determine Exterior

60

  • determine the exterior by flood filling & dilation

60

slide-72
SLIDE 72

Leif Kobbelt RWTH Aachen University

Determine Exterior

60

  • determine the exterior by flood filling & dilation

60

slide-73
SLIDE 73

Leif Kobbelt RWTH Aachen University

Determine Exterior

60

  • determine the exterior by flood filling & dilation

60

slide-74
SLIDE 74

Leif Kobbelt RWTH Aachen University

Extract the Surface

61

  • extract the surface by a variant of Dual Contouring

61

slide-75
SLIDE 75

Leif Kobbelt RWTH Aachen University

Extract the Surface

61

  • extract the surface by a variant of Dual Contouring

61

slide-76
SLIDE 76

Leif Kobbelt RWTH Aachen University

Extract the Surface

61

  • extract the surface by a variant of Dual Contouring

61

slide-77
SLIDE 77

Leif Kobbelt RWTH Aachen University

Results

62

62

slide-78
SLIDE 78

Leif Kobbelt RWTH Aachen University

Results

63

63

slide-79
SLIDE 79

Leif Kobbelt RWTH Aachen University

Results

64

  • riginal

1124 triangles reconstruction 279892 triangles (at 1000³) decimated 7018 triangles

64

slide-80
SLIDE 80

Leif Kobbelt RWTH Aachen University

Results

65

without gap filling with gap filling

65

slide-81
SLIDE 81

Leif Kobbelt RWTH Aachen University

Results

66

66

slide-82
SLIDE 82
  • Leif Kobbelt RWTH Aachen University

Model Repair

  • types of input
  • surface-oriented algorithms

– Filling holes in meshes [Liepa 2003]

  • volumetric algorithms

– Simplification and repair of polygonal models using volumetric techniques [Nooruddin and Turk 2003] – Automatic restoration of polygon models [Bischoff, Pavic, Kobbelt 2005]

  • conclusion & outlook

67

  • 67
slide-83
SLIDE 83

Leif Kobbelt RWTH Aachen University

Conclusion

  • mesh repair to remove artifacts that arise in

various types of input models

68

68

slide-84
SLIDE 84

Leif Kobbelt RWTH Aachen University

Conclusion

  • surface-oriented algorithms ...

– fast, structure preserving – often not robust, need user interaction and cannot give quality guarantees on the output

  • volumetric algorithms ...

– use an intermediate volumetric representation and thus produce guaranteed watertight meshes – suffer from (topological) sampling problems

69

69

slide-85
SLIDE 85

Leif Kobbelt RWTH Aachen University

History of Mesh Repair

– Bøhn, Wozny: Automatic CAD Model Repair: Shell-Closure.

  • 1992

– Mäkelä, Dolenc: Some Efficient Procedures for Correcting Triangulated Models.

  • 1993

– Turk, Levoy: Zippered Polygon Meshes from Range Images.

  • 1994

– Barequet, Sharir: Filling Gaps in the Boundary of a Polyhedron.

  • 1995

– Curless, Levoy: A Volumetric Method for Building Complex Models from Range Images. 1996 – Barequet, Kumar: Repairing CAD Models.

  • 1997

– Murali, Funkhouser. Consistent Solid and Boundary Representations.

  • 1997

– Guéziec, Taubin, Lazarus, Horn: Cutting and Stitching: [...]

  • 2001

– Guskov, Wood: Topological Noise Removal.

  • 2001

– Borodin, Novotni, Klein: Progressive Gap Closing for Mesh Repairing.

  • 2002

– Davis, Marschner, Garr, Levoy: Filling Holes in Complex Surfaces Using Volumetric Diffusion. 2002 – Liepa: Filling Holes in Meshes.

  • 2003

– Greß, Klein: Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-Trees. 2003 – Nooruddin, Turk: Simplification and Repair of Polygonal Models Using Volumetric Techniques. 2003 – Borodin, Zachmann Klein: Consistent Normal Orientation for Polygonal Meshes.

  • 2004

– Ju: Robust Repair of Polygonal Models.

  • 2004

– Bischoff, Pavic, Kobbelt: Automatic Restoration of Polygon Models.

  • 2005

– Podolak, Rusinkiewicz: Atomic Volumes for Mesh Completion.

  • 2005

– Shen, O'Brien, Shewchuk: Interpolating and Approximating Implicit Surfaces from Polygon Soup. 2005

70

  • Surface-oriented
  • Volumetric

70

slide-86
SLIDE 86

Leif Kobbelt RWTH Aachen University

Outlook

  • hybrid algorithms that are ...

– ... robust and – ... structure preserving

  • Bischoff, Kobbelt: Structure Preserving CAD Model Repair. Eurographics 2005

71

71