reverse engineering niloy j. mitra. reverse engineering capturing geometry: 3d scanners laser...

48
Reverse Engineering Niloy J. Mitra

Post on 15-Jan-2016

267 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Niloy J. Mitra

Page 2: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Capturing Geometry: 3D Scanners

laser scanner 3D geometry

Page 3: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Shape Acquisition

Page 4: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Shape Acquisition

Page 5: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Shape Acquisition

Page 6: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Shape Acquisition

Page 7: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Shape Acquisition

Page 8: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Partial Shape Similarity

partial similarity

Page 9: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Total vs Partial Matching• Total matching is easy

PCA (Principal Component Analysis)

Page 10: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Total vs Partial Matching• Partial matching is difficultWhich region matches which other region(s)?Space of rigid transforms rotation + translation

Brute force approach not feasible

Instead of exhaustive searching, use local geometry to guide where to search

Easy to verify a transform

Page 11: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Descriptor Based Alignment

[Kazhan et al. `03][Osada et al. `02]

• Feature based alignment• Combinatorial search, need multiple objects together

• Descriptor based alignment • Fails for partial similarity

Page 12: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• What is registration?• Finding a one-to-one mapping between two or more coordinate systems such that

corresponding features of models in the different systems are mapped to each other• Using the mapping to align a model(s)

• Pair-wise model alignment• Transformation to a canonical pose/coordinate system

Audette 2000 M. Kazhdan

Registration

Page 13: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• What is the resulting alignment/pose used for?• Object recognition in scenes• Stitching together parts of a model captured from different views• Alignment for pose-dependent shape descriptors

Funkhouser, COS 597D Class NotesChang and Krumm, 1999

OR

Registration

Page 14: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Choice of Transformation• Rigid: mutual distances of points within a model are conserved

during transformation

• R is a rotation matrix and t is a translation vector

• Non-rigid• Account for surface deformations in the transformation• Affine transformation

Audette 2000

Registration

Page 15: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Use PCA to place models into a canonical coordinate frame

Covariance MatrixComputation

Principal Axis Alignment

M. Kazhdan

Normalization

Page 16: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Translate point set {pi} to origin by center of mass:

• Result is new point set {qi}cpq ii

n

iin 1

1pc

Steps for finding principal axes

Page 17: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Calculate second-order covariance matrix:

n

i zi

zi

yi

zi

xi

zi

zi

yi

yi

yi

xi

yi

zi

xi

yi

xi

xi

xi

qqqqqq

qqqqqq

qqqqqq

n 1

1M

Steps for finding principal axes

Page 18: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Decompose symmetric covariance matrix:

• Matrix U contains 3 principal axes (eigenvectors) as rows: A, B, C

• Matrix S contains eigenvalues

tUSUM

zyx

zyx

zyx

CCC

BBB

AAA

U

c

b

a

00

00

00

S

Steps for finding principal axes

Page 19: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Start with manual initial alignment

[Pulli][Pulli]S. Rusinkiewicz

Aligning Scans

Page 20: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Improve alignment using ICP algorithm

[Pulli][Pulli]S. Rusinkiewicz

Aligning Scans

Page 21: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Pairwise Rigid Registration Goal

Align two partially-overlapping meshesgiven initial guessfor relative transform

S. Rusinkiewicz

Page 22: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Aligning 3D DataIf correct correspondences are known, can find correct relative rotation/translation

S. Rusinkiewicz

Page 23: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Aligning 3D Data• How to find correspondences: User input? Feature

detection? Signatures?• Alternative: assume closest points correspond

S. Rusinkiewicz

Page 24: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Aligning 3D Data• … and iterate to find alignment

• Iterative Closest Points (ICP) [Besl & McKay 92]

• Converges if starting position “close enough”

S. Rusinkiewicz

Page 25: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Basic ICP• Select e.g. 1000 random points• Match each to closest point on other scan,

using data structure such as k-d tree• Reject pairs with distance > k times median• Construct error function:

• Minimize (closed form solution in [Horn 87])

2 ii qtRpE2 ii qtRpE

S. Rusinkiewicz

Page 26: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

ICP VariantsVariants on the following stages of ICPhave been proposed:

1.1. SelectingSelecting source points (from one or both meshes) source points (from one or both meshes)2.2. MatchingMatching to points in the other mesh to points in the other mesh3.3. WeightingWeighting the correspondences the correspondences4.4. RejectingRejecting certain (outlier) point pairs certain (outlier) point pairs5.5. Assigning an Assigning an error metricerror metric to the current transform to the current transform6.6. MinimizingMinimizing the error metric w.r.t. transformation the error metric w.r.t. transformation

S. Rusinkiewicz

Page 27: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Point-to-Plane Error MetricUsing point-to-plane distance instead of point-to-point lets flat regions slide along each other [Chen & Medioni 91]

S. Rusinkiewicz

Page 28: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Point-to-Plane Error Metric• Error function:

where R is a rotation matrix, t is translation vector• Linearize (i.e. assume that sin , cos 1):

• Result: overconstrained linear system

2)( iii nqtRpE 2)( iii nqtRpE

z

y

x

iiiiii

r

r

r

rntnprnqpE where,)()(2

z

y

x

iiiiii

r

r

r

rntnprnqpE where,)()(2

S. Rusinkiewicz

Page 29: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Point-to-Plane Error Metric• Overconstrained linear system

• Solve using least squares

22

111

222

11

)2(

)(1,,

,

nqp

nqp

t

t

t

r

r

r

nnp

nnp

bx

bx

z

y

x

z

y

x

A

A

22

111

222

11

)2(

)(1,,

,

nqp

nqp

t

t

t

r

r

r

nnp

nnp

bx

bx

z

y

x

z

y

x

A

A

bx

bxT1T

TT

AAA

AAA

bx

bxT1T

TT

AAA

AAA

S. Rusinkiewicz

Page 30: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Closest Compatible Point• Closest point often a bad approximation to

corresponding point• Can improve matching effectiveness by restricting

match to compatible points• Compatibility of colors [Godin et al. 94]• Compatibility of normals [Pulli 99]

• Other possibilities: curvatures, higher-order derivatives, and other local features

S. Rusinkiewicz

Page 31: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Global Registration Goal• Given: n scans around an object• Goal: align them all• First attempt: ICP each scan to one other

S. Rusinkiewicz

Page 32: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Global Registration Goal• Want method for distributing accumulated error

among all scans

S. Rusinkiewicz

Page 33: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

• Search the whole model for correspondences• Range query for descriptor values• Cluster and pick representatives

Correspondence Space

PQ

Page 34: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Evaluating Correspondences• Coordinate root mean squared distance

• Requires best aligning transform• Looks at correspondences individually

Page 35: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Rigidity Constraint• Pair-wise distances between features and

correspondences should be the same

PQ

Page 36: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Rigidity Constraint• Pair-wise distances between features and

correspondences should be the same

PQ

Page 37: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Rigidity Constraint• Pair-wise distances between features and

correspondences should be the same

PQ

Page 38: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Alignment Results

Input: 2 scans Our alignment Refined by ICP

Page 39: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Alignment Results

Input: 10 scans

Our alignment Refined by ICP

Page 40: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Non-rigid Alignment• Algorithm Input

• Set of human range images• All in similar poses

• Set of colored feature markers• Algorithm Goal

• Develop correspondence from template to target• Compute affine transform for each vertex• Minimize error function

T. Funkhouser

[Allen et al. 2003]

Page 41: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Optimization Variables• Algorithm viewed as optimization problem

• Given an initial template surface with vertices vi

• Corresponding affine transformation matrices Ti

• Current state is Ti vi for all i (see diagram)

• Find values of Ti to minimize objective function• Attempts to find a “good fit” (blue) of template (cyan) to target

(red)

T. Funkhouser

Page 42: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Objective Function• Objective Function has three weighted terms

• Data error• Smoothness error• Marker error

• Will use different weights in each phase of process• Multistep / Multi-resolution fitting process

T. Funkhouser

Page 43: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Objective Function – Data Error• Data Error term requires current match to be close to target

• Uses distance from each transformed vertex to the target surface• Weighted by confidence measure (from scanning)• Hole regions have weight = 0• Sums total error

• Distance function• Uses transformed template vertex• Takes minimum distance to “compatible” vertices in target• Compatible defined as those with normal w/in 90 deg.

T. Funkhouser

Page 44: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Objective Function – Smoothness Error• Measures smoothness of deformation applied to template

• Problem is under-constrained using data error• E_s measures change in T_I between adjacent vertices• Encourages similarly-shaped features to be mapped to each

other

• Uses Frobenius norm (vector L2 norm)

T. Funkhouser

Page 45: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Objective Function – Marker Error• Data and Smoothness Error can hit local minima

• Example: left arm transformed to right arm• Solution: Use pre-labeled markers on the test subjects

• Viewed as white dots in the range image• Correspondences set up beforehand (as in Consistent Mesh

Parameterization)• 74 markers per subject (not all are used, however)

• Measure distance from template marker to target marker• K_I are the indices of the markers in template, m_I are target

markers

T. Funkhouser

Page 46: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Algorithm Procedure• Minimize error function using L-BFGS-B algorithm

• Quasi-Newton method with limited memory usage

T. Funkhouser

Page 47: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

Motivation – Correct Hole Filling

T. Funkhouser

Page 48: Reverse Engineering Niloy J. Mitra. Reverse Engineering Capturing Geometry: 3D Scanners laser scanner 3D geometry

Reverse Engineering

More Information• http://www.cs.princeton.edu/~bjbrown/iccv05_course/• http://www.cs.princeton.edu/courses/archive/fall03/cs597

D/index.html

• http://www.cs.princeton.edu/courses/archive/fall03/cs597D/resources.html#Registration

• http://graphics.stanford.edu/papers/fasticp/• http://www.geometrie.tuwien.ac.at/ig/

(Surface Matching and Registration)