Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid...

41
Surface reconstruction Introduction Florent Lafarge Inria Sophia Antipolis - Mediterranee

Transcript of Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid...

Page 1: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Surface reconstruction Introduction

Florent Lafarge

Inria Sophia Antipolis - Mediterranee

Page 2: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Outline

Contents

Introduction

Smooth/piecewise-smooth reconstruction methods

Primitive-based reconstruction methods

Page 3: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Surface reconstruction

Process of recovering a surface or a solid from

data measurements

Measurements are mainly point sets

Page 5: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Laser scanning

Page 7: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Airborne Lidar

Page 8: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Multi-View Stereo (MVS)

Page 9: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

RGB-D sensors

Page 10: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Is a point just its spatial coordinates x-y-z ?

Not necessarily: additionnal attributes can exist

Page 11: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Is a point just its spatial coordinates x-y-z ?

Not necessarily: additionnal attributes can exist

For each point :

• Normal

• Color

• Confidence (MVS)

• Camera index (MVS)

Page 12: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Defects in the point sets

noise

outliers

heterogeneous sampling

missing data

..

10

Page 13: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Noise

Page 14: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Noise

Inaccuracy

acquisition system

registration

..

Page 15: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Outliers

Page 16: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Outliers

Typical problem

from multi-view

stereo

Page 17: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Heterogeneous sampling

15

Page 18: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Heterogeneous sampling

Page 19: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Missing data

Page 20: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Missing data

Page 21: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

How do we represent a surface ?

Different ways, but the most common is the

triangular mesh

vertex

edge facet

Page 22: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Properties of surfaces

Manifold / Non-manifold

manifold

Non-manifold

20

Page 24: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Properties of surfaces

Manifold / Non-manifold

Watertight / with boundary

Implicit / explicit

20

Page 25: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Properties of surfaces

Manifold / Non-manifold

Watertight / with boundary

Implicit / explicit

Smooth/piecewise smooth/primitive-based

20

Page 26: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Mesh data structure

How to store geometry and connectivity?

Compact storage (File formats)

Efficient algorithms on meshes

– Identify time-critical operations

– All vertices/edges of a face

– All incident vertices/edges/faces of a vertex

vertex

edge

facet

Page 27: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Mesh data structure

What should be stored?

– Geometry: 3D coordinates

– Attributes

• e.g. normal, color, texture coordinate

• Per vertex, per face, per edge

– Connectivity: What is adjacent to what

vertex

edge

facet

Page 28: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Mesh data structure

What should it support?

– Rendering

– Queries

• What are the vertices of face #3?

• Is vertex #6 adjacent to vertex #12?

• Which faces are adjacent to face #7?

– Modifications

• Remove/add a vertex/face, vertex split..

vertex

edge

facet

Page 29: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Mesh data structure

How good is a data structure?

– Time to construct (preprocessing)

– Time to answer a query

– Time to perform an operation

– Space complexity

– Redundancy

vertex

edge

facet

Page 30: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Facet set (STL)

Face:

– 3 positions

9 float / facets

no connectivity!

vertex

edge

facet

25

Page 31: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions vertex

edge

facet

Shared vertex (PLY,OBJ,OFF)

Indexed Face List

– Vertex: position

– Face: vertex indices

3 float/vertex + 3 int/facet

no neighborhood info

Page 32: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Facet-based connectivity

Vertex:

– position

– 1 facet

Facet:

– 3 vertices

– 3 facet neighbors

no edges!

Page 33: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Edge-based connectivity

Vertex:

– position

– 1 edge

Edge:

– 2 vertices

– 2 facets

– 4 edges

Facet

edge orientation?

Page 34: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Halfedge-based connectivity

Vertex:

– position

– 1 halfedge

Halfedge:

– 1 vertex

– 1 facet

– 1,2 or 3 halfedges

Facet

– 1 halfedge

Page 35: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

One-ring traversal

1. Start at vertex

Page 36: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

One-ring traversal

1. Start at vertex

2. Outgoing halfedge

Page 37: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

One-ring traversal

1. Start at vertex

2. Outgoing halfedge

3. Opposite halfedge

Page 38: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

One-ring traversal

1. Start at vertex

2. Outgoing halfedge

3. Opposite halfedge

4. Next halfedge

Page 39: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

One-ring traversal

1. Start at vertex

2. Outgoing halfedge

3. Opposite halfedge

4. Next halfedge

5. Opposite

Page 40: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

One-ring traversal

1. Start at vertex

2. Outgoing halfedge

3. Opposite halfedge

4. Next halfedge

5. Opposite

6. Next

7. ...

Page 41: Surface reconstruction - Inria · Surface reconstruction Process of recovering a surface or a solid from data measurements Measurements are mainly point sets . Definitions Input points

Definitions

Halfedge-based libraries

CGAL

– www.cgal.org

– Computational geometry

– Free for non-commercial use

OpenMesh

– www.openmesh.org

– Mesh processing

– Free, LGPL licence