Stereo Marc Pollefeys, Kalin Kolev Spring 2014 - - PowerPoint PPT Presentation

stereo
SMART_READER_LITE
LIVE PREVIEW

Stereo Marc Pollefeys, Kalin Kolev Spring 2014 - - PowerPoint PPT Presentation

3D Photography: Stereo Marc Pollefeys, Kalin Kolev Spring 2014 http://cvg.ethz.ch/teaching/3dphoto/ Schedule (tentative) Feb 17 Introduction Feb 24 Geometry, Camera Model, Calibration Mar 3 Features, Tracking / Matching Mar 10 Project


slide-1
SLIDE 1

3D Photography: Stereo

Marc Pollefeys, Kalin Kolev Spring 2014

http://cvg.ethz.ch/teaching/3dphoto/

slide-2
SLIDE 2

Schedule (tentative)

Feb 17 Introduction Feb 24 Geometry, Camera Model, Calibration Mar 3 Features, Tracking / Matching Mar 10 Project Proposals by Students Mar 17 Structure from Motion (SfM) + 1 paper Mar 24 Dense Correspondence / Stereo + 2 papers Mar 31 Bundle Adjustment & SLAM + 1 paper Apr 7 Multi-View Stereo & Volumetric Modeling + 2 papers Apr 14 Project Updates Apr 21 Easter Apr 28 3D Modeling with Depth Sensors May 5 3D Scene Understanding May 12 4D Video & Dynamic Scenes + 1 paper May 19 KinectFusion May 26 Final Demos

slide-3
SLIDE 3

3D Modeling with Depth Sensors

slide-4
SLIDE 4

Today’s class

Obtaining “depth maps” / “range images”

  • unstructured light
  • structured light
  • time-of-flight

Registering range images

(some slides from Szymon Rusinkiewicz, Brian Curless)

slide-5
SLIDE 5

Taxonomy

3D modeling passive active stereo shape from silhouettes … structured/ unstructured light laser scanning photometric stereo

slide-6
SLIDE 6

Unstructured light

project texture to disambiguate stereo

slide-7
SLIDE 7

Space-time stereo

Davis, Ramamoothi, Rusinkiewicz, CVPR’03

slide-8
SLIDE 8

Space-time stereo

Davis, Ramamoothi, Rusinkiewicz, CVPR’03

slide-9
SLIDE 9

Space-time stereo

Zhang, Curless and Seitz, CVPR’03

slide-10
SLIDE 10

Space-time stereo

  • results

Zhang, Curless and Seitz, CVPR’03

slide-11
SLIDE 11

Light Transport Constancy

Davis, Yang, Wang, ICCV05

slide-12
SLIDE 12

Triangulation

Light / Laser Camera “Peak” position in image reveals depth

slide-13
SLIDE 13

Triangulation: Moving the Camera and Illumination

  • Moving independently leads to problems

with focus, resolution

  • Most scanners mount camera and light

source rigidly, move them as a unit, allows also for (partial) pre-calibration

slide-14
SLIDE 14

Triangulation: Moving the Camera and Illumination

slide-15
SLIDE 15

Triangulation: Extending to 3D

  • Alternatives: project dot(s) or stripe(s)

Object Laser Camera

slide-16
SLIDE 16

Triangulation Scanner Issues

  • Accuracy proportional to working volume

(typical is ~1000:1)

  • Scales down to small working volume

(e.g. 5 cm. working volume, 50 m. accuracy)

  • Does not scale up (baseline too large…)
  • Two-line-of-sight problem (shadowing from

either camera or laser)

  • Triangulation angle: non-uniform resolution if

too small, shadowing if too big (useful range: 15-30)

slide-17
SLIDE 17

Triangulation Scanner Issues

  • Material properties (dark, specular)
  • Subsurface scattering
  • Laser speckle
  • Edge curl
  • Texture embossing

Where is the exact (subpixel) spot position ?

slide-18
SLIDE 18
slide-19
SLIDE 19

Space-time analysis

Curless ‘95

slide-20
SLIDE 20

Space-time analysis

Curless ‘95

slide-21
SLIDE 21

Projector as camera

slide-22
SLIDE 22

Kinect

  • Infrared „projector“
  • Infrared camera
  • Works indoors (no IR distraction)
  • „invisible“ for human

Depth Map: note stereo shadows! Color Image (unused for depth) IR Image

slide-23
SLIDE 23

Kinect

  • Projector Pattern „strong texture“
  • Correlation-based stereo

between IR image and projected pattern possible

stereo shadow Bad SNR / too close Homogeneous region, ambiguous without pattern

slide-24
SLIDE 24

Multi-Stripe Triangulation

  • To go faster, project multiple stripes
  • But which stripe is which?
  • Answer #1: assume surface continuity

e.g. Eyetronics’ ShapeCam

slide-25
SLIDE 25

Multi-Stripe Triangulation

  • To go faster, project multiple stripes
  • But which stripe is which?
  • Answer #2: colored stripes (or dots)
slide-26
SLIDE 26

Multi-Stripe Triangulation

  • To go faster, project multiple stripes
  • But which stripe is which?
  • Answer #3: time-coded stripes
slide-27
SLIDE 27

Time-Coded Light Patterns

  • Assign each stripe a unique illumination code
  • ver time [Posdamer 82]

Space Time

slide-28
SLIDE 28

Better codes…

  • Gray code

Neighbors only differ one bit

slide-29
SLIDE 29

Poor man’s scanner

Bouguet and Perona, ICCV’98

slide-30
SLIDE 30

Pulsed Time of Flight

  • Basic idea: send out pulse of light (usually laser),

time how long it takes to return t c d   2 1

slide-31
SLIDE 31

Pulsed Time of Flight

  • Advantages:
  • Large working volume (up to 100 m.)
  • Disadvantages:
  • Not-so-great accuracy (at best ~5 mm.)
  • Requires getting timing to ~30 picoseconds
  • Does not scale with working volume
  • Often used for scanning buildings, rooms,

archeological sites, etc.

slide-32
SLIDE 32

Depth cameras

2D array of time-of-flight sensors

e.g. Canesta’s CMOS 3D sensor

jitter too big on single measurement, but averages out on many

(10,000 measurements100x improvement)

slide-33
SLIDE 33

3D modeling

  • Aligning range images
  • Pairwise
  • Globally

(some slides from S. Rusinkiewicz, J. Ponce,…)

slide-34
SLIDE 34

Aligning 3D Data

  • If correct correspondences are known

(from feature matches, colors, …), it is possible to find correct relative rotation/translation

slide-35
SLIDE 35

Aligning 3D Data

Xi’ = T Xi X1

X2

X2 X1 For T as general 4x4 matrix: Linear solution from ≥5 corrs. T is Euclidean Transform: 3 corrs. (using quaternions)

[Horn87] “Closed-form solution of absolute

  • rientation using unit quaternions”

T e.g. Kinect motion

slide-36
SLIDE 36

Aligning 3D Data

  • How to find corresponding points?
  • Previous systems based on user input,

feature matching, surface signatures, etc.

slide-37
SLIDE 37

Spin Images

  • [Johnson and Hebert ’97]
  • “Signature” that captures local shape
  • Similar shapes  similar spin images
slide-38
SLIDE 38

Computing Spin Images

  • Start with a point on a 3D model
  • Find (averaged) surface normal at that

point

  • Define coordinate system centered at this

point, oriented according to surface normal and two (arbitrary) tangents

  • Express other points (within some

distance) in terms of the new coordinates

slide-39
SLIDE 39

Computing Spin Images

  • Compute histogram of locations of other

points, in new coordinate system, ignoring rotation around normal:

n ˆ   p  n ˆ   p 

“radial dist.” “elevation”

slide-40
SLIDE 40

Computing Spin Images

“radial dist.” “elevation”

slide-41
SLIDE 41

Spin Image Parameters

  • Size of neighborhood
  • Determines whether local or global shape

is captured

  • Big neighborhood: more discriminative power
  • Small neighborhood: resilience to clutter
  • Size of bins in histogram:
  • Big bins: less sensitive to noise
  • Small bins: captures more detail
slide-42
SLIDE 42

Alignment with Spin Image

  • Compute spin image for each point / subset of

points in both sets

  • Find similar spin images => potential

correspondences

  • Compute alignment from correspondences

Same problems as with image matching:

  • Robustness of descriptor vs. discriminative power
  • Mismatches => robust estimation required
slide-43
SLIDE 43

Solving 3D puzzles with VIPs

SIFT features

  • Extracted from 2D images
  • Variation due to viewpoint

VIP features

  • Extracted from 3D model
  • Viewpoint invariant

43

(Wu et al., CVPR08)

slide-44
SLIDE 44

Aligning 3D Data

Alternative: assume closest points correspond

to each other, compute the best transform…

slide-45
SLIDE 45

Aligning 3D Data

… and iterate to find alignment

Iterated Closest Points (ICP) [Besl & McKay 92]

Converges if starting position “close enough“

slide-46
SLIDE 46

ICP Variant – Point-to-Plane Error Metric

  • Using point-to-plane distance instead of point-to-

point lets flat regions slide along each other more easily [Chen & Medioni 92]

slide-47
SLIDE 47

Finding Corresponding Points

  • Finding closest point is most expensive stage of ICP
  • Brute force search – O(n)
  • Spatial data structure (e.g., k-d tree) – O(log n)
  • Voxel grid – O(1), but large constant, slow preprocessing
slide-48
SLIDE 48

Finding Corresponding Points

  • For range images, simply project point

[Blais/Levine 95]

  • Constant-time, fast
  • Does not require precomputing a spatial data structure
slide-49
SLIDE 49

Efficient ICP

  • “Efficient Variants of the ICP algorithm”

[Rusinkiewicz & Levoy, 3DIM 2001.