35
3D Vision: Stereo Marc Pollefeys, Torsten Sattler Spring 2016 http://cvg.ethz.ch/teaching/3dvision/

3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

3D Vision: Stereo

Marc Pollefeys, Torsten Sattler

Spring 2016 http://cvg.ethz.ch/teaching/3dvision/

Page 2: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Dense Correspondence / Stereo

http://cat.middlebury.edu/stereo/

Tsukuba dataset

Page 3: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Stereo

•  Standard stereo geometry •  Stereo matching

•  Correlation • Optimization (DP, GC)

•  General camera configurations •  Rectification

•  PatchMatch Stereo

Page 4: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Stereo

Page 5: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Disparity map

image I(x,y) image I´(x´,y´) Disparity map D(x,y)

(x´,y´)=(x+D(x,y),y)

Page 6: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Stereo camera configurations

(Slide from Pascal Fua)

Page 7: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Occlusions

(Slide from Pascal Fua)

Page 8: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Exploiting scene constraints

Page 9: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Ordering constraint

occlusion right

occlusion left

Page 10: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Uniqueness constraint

•  In an image pair each pixel has at most one corresponding pixel •  In general one corresponding pixel •  In case of occlusion there is none

Page 11: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Disparity constraint

bounding box

use reconstructed features to determine bounding box

constant disparity surfaces

Page 12: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Stereo matching

Optimal path (dynamic programming )

Similarity measure (SSD or NCC)

Constraints •  epipolar •  ordering •  uniqueness •  disparity limit

Trade-off •  Matching cost (data) •  Discontinuities (prior)

Consider all paths that satisfy the constraints

pick best using dynamic programming

Page 13: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Hierarchical stereo matching

Dow

nsam

plin

g

(Gau

ssia

n py

ram

id)

Dis

pari

ty p

ropa

gati

on

Allows faster computation

Deals with large disparity ranges

Page 14: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

(Scharstein & Szeliski, IJCV‘02)

Page 15: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Energy minimization

(Slide from Pascal Fua)

Page 16: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Graph Cut

(Slide from Pascal Fua)

(general formulation requires multi-way cut!)

Page 17: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

(Boykov et al ICCV‘99)

(Roy and Cox ICCV‘98)

Simplified graph cut

Page 18: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

(Scharstein & Szeliski, IJCV‘02)

Page 19: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Semi-global optimization •  Optimize:

E=Edata+E(|Dp-Dq|=1)+E(|Dp-Dq|>1) [Hirschmüller CVPR05]

•  Use mutual information as cost •  NP-hard using graph cuts or belief

propagation (2-D optimization) •  Instead do dynamic programming along

many directions •  Don’t use visibility or ordering constraints •  Enforce uniqueness •  Add costs of all paths

Page 20: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Stereo matching with general camera configurations

Page 21: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Image pair rectification

Page 22: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Planar rectification

~ image size

Distortion minimization (uncalibrated)

Page 23: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization
Page 24: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

•  Polar re-parameterization around epipoles •  Requires only (oriented) epipolar geometry •  Preserve length of epipolar lines •  Choose Δθ so that no pixels are compressed

original image rectified image

Polar rectification (Pollefeys et al. ICCV’99)

Works for all relative motions Guarantees minimal image size

Page 25: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

polar rectification

planar rectification

original image pair

Page 26: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Example: Béguinage of Leuven

Does not work with standard Homography-based approaches

Page 27: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Plane-sweep multi-view matching

•  Simple algorithm for multiple cameras •  no rectification necessary •  doesn’t deal with occlusions

Collins’96; Roy and Cox’98 (GC); Yang et al.’02/’03 (GPU)

Page 28: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Fast GPU-based plane-sweeping stereo

Plane-sweep multi-view depth estimation (Yang & Pollefeys, CVPR’03)

Page 29: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Slanted Support Windows

fronto-parallel windows vs. slanted support windows

(Bleyer et al. BMVC’11)

Page 30: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

PatchMatch Stereo (Bleyer et al. BMVC’11)

•  For a particular plane the disparity at a pixel is given by

•  The plane with the minimal cost is chosen

•  The dissimilarity cost is calculated as

with

Page 31: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

PatchMatch Stereo (Bleyer et al. BMVC’11)

Idea: Start with a random initialization of disparities and plane parameters for each pixel and update the estimates by propagating information from the neighboring pixels

•  Spatial propagation: Check for each pixel the disparities and plane parameters for the left and upper (right and lower) neighbors and replace the current estimates if matching costs are smaller

•  View propagation: Warp the point in the other view and check the corresponding etimates in the other image. Replace if the matching costs are lower.

•  Temporal propagation: Propagate the information analogously by considering the etimates for the same pixel at the preceding and consecutive video frame

Page 32: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

PatchMatch Stereo (Bleyer et al. BMVC’11)

•  Plane refinement: disparity and plane parameters for each pixel are refined by generating random samples within a certain range interval and updating the current estimates if matching costs are reduced

•  Post-processing: remove outliers with left/right consistency checking and weighted median filter. Gaps are filled by propagating information from the neighborhood.

Page 33: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

PatchMatch Stereo (Bleyer et al. BMVC’11)

Page 34: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

PatchMatch Stereo (Bleyer et al. BMVC’11)

Left to right: •  Fronto-parallel, discrete disparities •  Fronto-parallel, continuous disparities •  PatchMatch Stereo (slanted, continuous

disparities)

Page 35: 3D Vision: Stereo - CVG @ ETHZ › teaching › 3dvision › 2016 › slides › class... · 2017-02-15 · PatchMatch Stereo (Bleyer et al. BMVC’11) Idea: Start with a random initialization

Next week: Bundle Adjustment & SLAM