CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 ....

92
1

Transcript of CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 ....

Page 1: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

1

Page 2: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

CS 532: 3D Computer Vision Lecture 2

Enrique Dunn [email protected]

Lieb 310

2

Page 3: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Image Formation

Based on slides by John Oliensis

3

Page 4: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Lecture Outline

•  Single View Geometry •  2D projective transformations

– Homographies •  Robust estimation

– RANSAC •  Radial distortion •  Two-view geometry

Based on slides by R. Hartley, A. Zisserman, M. Pollefeys and S. Seitz

4

Page 5: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Image Formation

Pinhole camera

image plane (film)

pinhole Object Virtual image

light ray

5

Page 6: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Projection Equation

•  2D world è 1D image

camera center

“Film”

f(focal length)

Object

x

z

Image

6

Page 7: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

( ), ,X Y Z

X

Y

Z

Y

x

y

f

XZ

xX

y fY Z

= = ( ) ( ),, f Yx XZ

y =

Projection Equation: 3D

Similar triangles:

7

Page 8: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Perspective Projection: Properties

•  3D points è image points •  3D straight lines è image straight lines

•  3D Polygons è image polygons

8

Page 9: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Polyhedra Project to Polygons

(since lines project to lines)

9

Page 10: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Properties: Distant objects are smaller

B’ C’

10

Page 11: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Single View Geometry

Richard Hartley and Andrew Zisserman Marc Pollefeys

Modified by Philippos Mordohai

11

Page 12: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Homogeneous Coordinates

•  3-D points represented as 4-D vectors (X Y Z 1)T •  Equality defined up to scale

–  (X Y Z 1)T ~ (WX WY WZ W)T

•  Useful for perspective projection à makes equations linear

C m M1 M2

12

Page 13: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Pinhole camera model

TT ZfYZfXZYX )/,/(),,( !

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

=⎟⎟⎟

⎜⎜⎜

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

10100

1ZYX

ff

ZfYfX

ZYX

!

linear projection in homogeneous coordinates! 13

Page 14: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

The Pinhole Camera

ZfYy

ZfXx

=

=

14

Page 15: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Principal Point Offset

Tyx

T pZfYpZfXZYX )/,/(),,( ++!

principal point Tyx pp ),(

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

=⎟⎟⎟

⎜⎜⎜

+

+

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

10100

1ZYX

pfpf

ZZpfYZpfX

ZYX

y

x

y

x

!

15

Page 16: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

=⎟⎟⎟

⎜⎜⎜

+

+

10100

ZYX

pfpf

ZZpfYZpfX

y

x

x

x

[ ] camX0|IKx =

⎥⎥⎥

⎢⎢⎢

=

1y

x

pfpf

K calibration matrix

Principal Point Offset

16

Page 17: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Hands On: Image Formation

•  For a 640 by 480 image with focal length equal to 640 pixels, find 3D points that are marginally visible at the four borders of the image

•  Increase and decrease the focal length. What happens?

17

Page 18: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Camera Rotation and Translation

( )C~-X~RX~cam =

X10C~RR

110C~RRXcam ⎥

⎤⎢⎣

⎡ −=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎥⎦

⎤⎢⎣

⎡ −=

ZYX

18

Page 19: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

X10C~RR

110C~RRXcam ⎥

⎤⎢⎣

⎡ −=

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

⎥⎦

⎤⎢⎣

⎡ −=

ZYX

[ ] camX0|IKx =

[ ]XC~|IKRx −=

[ ]t|RKP =C~Rt −=

PXx =

19

Camera Rotation and Translation

Page 20: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Intrinsic Parameters

•  Camera deviates from pinhole s: skew fx ≠ fy: different magnification in x and

y (cx cy): optical axis does not pierce

image plane exactly at the center

•  Usually: rectangular pixels: square pixels: principal point known:

⎥⎥⎥

⎢⎢⎢

=

1

)cos(

o

o

vfusfaf

K

⎥⎥⎥

⎢⎢⎢

=

1yy

xx

cfcsf

K

( ) ⎟⎠

⎞⎜⎝

⎛=2,2

, hwcc yx

yx ffs=

= 0

or

⎥⎥⎥

⎢⎢⎢

=

1

γ

0

0

yfxsff

K

20

Page 21: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Extrinsic Parameters

⎥⎥⎦

⎢⎢⎣

⎡=

⎥⎦

⎤⎢⎣

⎡=

10t)(R-R

M'

10tR

M

(1x3)

3x1T

(3x3)T

(1x3)

(3x1)(3x3)Scene motion

Camera motion

21

Page 22: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Projection matrix

•  Includes coordinate transformation and camera intrinsic parameters

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

=

⎥⎥⎥

⎢⎢⎢

λ

11 34333231

24232221

14131211

ZYX

pppppppppppp

yx

22

•  Everything we need to know about a pinhole camera

•  Unambiguous •  Can be decomposed into parameters

Page 23: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Projection matrix

•  Mapping from 2-D to 3-D is a function of internal and external parameters

[ ]⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

=

⎥⎥⎥

⎢⎢⎢

1

|100

01

λZYX

tRRcfcsf

yx

yy

xxTT

[ ]XtRRKx TT −= |λ

PXx =λ 23

Page 24: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Hands On: Camera Motion

•  Choose a few 3D points visible to a camera at the origin. (f=500, w=500, h=500)

•  Now, move the camera by 2 units of length on the z axis. What happens to the images of the points?

•  Rotate the points by 45 degrees about the z axis of the camera and then translate them by 5 units on the z axis away from the camera. What are the new images of the points?

24

Page 25: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Projective Transformations in 2D

A projectivity is an invertible mapping h from P2 to itself such that three points x1,x2,x3 lie on the same line if and only if h(x1),h(x2),h(x3) do.

Definition:

A mapping h:P2→P2 is a projectivity if and only if there exist a non-singular 3x3 matrix H such that for any point in P2 reprented by a vector x it is true that h(x)=Hx

Theorem:

Definition: Projective transformation

⎟⎟⎟

⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

=⎟⎟⎟

⎜⎜⎜

3

2

1

333231

232221

131211

3

2

1

'''

xxx

hhhhhhhhh

xxx

xx' H=or

8DOF projectivity=collineation=projective transformation=homography

25

Page 26: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Mapping between planes

central projection may be expressed by x’=Hx (application of theorem)

26

Page 27: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Removing Projective Distortion

333231

131211

3

1

'''

hyhxhhyhxh

xxx

++

++==

333231

232221

3

2

'''

hyhxhhyhxh

xxy

++

++==

( ) 131211333231' hyhxhhyhxhx ++=++

( ) 232221333231' hyhxhhyhxhy ++=++

select four points in a plane with known coordinates

(linear in hij)

(2 constraints/point, 8DOF ⇒ 4 points needed)

Remarks: no calibration at all necessary, better ways to compute (see later)

27

Page 28: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

A Hierarchy of Transformations Projective linear group

Affine group (last row (0,0,1)) Euclidean group (upper left 2x2 orthogonal)

Oriented Euclidean group (upper left 2x2 det 1)

Alternatively, characterize transformation in terms of elements

or quantities that are preserved or invariant

e.g. Euclidean transformations leave distances unchanged

28

Page 29: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Class I: Isometries (iso=same, metric=measure)

⎟⎟⎟

⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

⎡ −

=⎟⎟⎟

⎜⎜⎜

1100cossinsincos

1''

yx

tt

yx

y

x

θθε

θθε

1±=ε

1=ε1−=ε

orientation preserving: orientation reversing:

x0

xx' ⎥⎦

⎤⎢⎣

⎡==

1t

T

RHE IRR =T

special cases: pure rotation, pure translation 3DOF (1 rotation, 2 translation)

Invariants: length, angle, area

29

Page 30: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Class II: Similarities (isometry + scale)

⎟⎟⎟

⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

⎡ −

=⎟⎟⎟

⎜⎜⎜

1100cossinsincos

1''

yx

tsstss

yx

y

x

θθ

θθ

x0

xx' ⎥⎦

⎤⎢⎣

⎡==

1t

T

RH

sS IRR =T

also know as equi-form (shape preserving) metric structure = structure up to similarity (in literature)

4DOF (1 scale, 1 rotation, 2 translation)

Invariants: ratios of length, angle, ratios of areas, parallel lines

30

Page 31: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Class III: Affine Transformations

⎟⎟⎟

⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

=⎟⎟⎟

⎜⎜⎜

11001''

2221

1211

yx

taataa

yx

y

x

x0

xx' ⎥⎦

⎤⎢⎣

⎡==

1t

T

AH A

non-isotropic scaling! (2DOF: scale ratio and orientation) 6DOF (2 scale, 2 rotation, 2 translation)

Invariants: parallel lines, ratios of parallel lengths, ratios of areas

( ) ( ) ( )φφθ DRRRA −= ⎥⎦

⎤⎢⎣

⎡=

2

1

00λ

λD

31

Page 32: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Class VI: Projective Transformations

xv

xx' ⎥⎦

⎤⎢⎣

⎡==

vP T

tAH

Action is non-homogeneous over the plane 8DOF (2 scale, 2 rotation, 2 translation, 2 line at infinity)

Invariants: cross-ratio of four points on a line (ratio of ratios)

( )T21,v vv=

32

Page 33: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Overview of Transformations

⎥⎥⎥

⎢⎢⎢

1002221

1211

y

x

taataa

⎥⎥⎥

⎢⎢⎢

1002221

1211

y

x

tsrsrtsrsr

⎥⎥⎥

⎢⎢⎢

333231

232221

131211

hhhhhhhhh

⎥⎥⎥

⎢⎢⎢

1002221

1211

y

x

trrtrr

Projective 8dof

Affine 6dof

Similarity 4dof

Euclidean 3dof

Concurrency, collinearity, order of contact (intersection, tangency, inflection, etc.), cross ratio

Parallellism, ratio of areas, ratio of lengths on parallel lines (e.g midpoints), linear combinations of vectors (centroids). The line at infinity l∞

Ratios of lengths, angles. The circular points I,J

lengths, areas.

33

Page 34: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Homework 1

Warp the basketball court from this image to a new image so that it appears as if the new image was taken from directly above

What are we missing?

34

Page 35: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Image Warping

Slides by Steve Seitz

35

Page 36: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Image Transformations

36

Page 37: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Parametric (Global) Warping

•  Transformation T is a coordinate-changing machine: p’ = T(p)

•  What does it mean that T is global? –  It is the same for any point p –  It can be described by just a few numbers (parameters)

•  T is represented as a matrix (see prev. slides): p’ = M*p

37

Page 38: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Image Warping

Given a coordinate transform (x’,y’) = h(x,y) and a source image f(x,y), how do we compute a transformed image g(x’,y’) = f(T(x,y))?

38

Page 39: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Forward Warping

Send each pixel f(x,y) to its corresponding location (x’,y’) = T(x,y) in the second image

Q: what if the pixel lands “between” two pixels?

39

Page 40: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Forward Warping

Send each pixel f(x,y) to its corresponding location (x’,y’) = T(x,y) in the second image Q: what if the pixel lands “between” two pixels? A: Distribute color among neighboring pixels (splatting)

40

Page 41: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Inverse Warping

•  Get each pixel g(x’,y’) from its corresponding location (x,y) = T-1(x’,y’) in the first image

•  Q: what if pixel comes from “between” two pixels?

41

Page 42: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Inverse Warping

•  Get each pixel g(x’,y’) from its corresponding location (x,y) = T-1(x’,y’) in the first image

•  Q: what if pixel comes from “between” two pixels? •  A: interpolate color value from neighbors

–  Bilinear interpolation typically used

42

Page 43: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Bilinear Interpolation

43

Page 44: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Forward vs. Inverse Warping

•  Which is better?

•  ...

44

Page 45: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Parameter Estimation

Slides by R. Hartley, A. Zisserman and M. Pollefeys

45

Page 46: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Homography: Number of Measurements Required

•  At least as many independent equations as degrees of freedom required

•  Example: Hxx'=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

=

⎥⎥⎥

⎢⎢⎢

⎡ʹ′

ʹ′

11λ

333231

232221

131211

yx

hhhhhhhhh

yx

2 independent equations / point 8 degrees of freedom 4x2≥8

46

Page 47: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Approximate solutions

•  Minimal solution 4 points yield an exact solution for H

•  More points – No exact solution, because

measurements are inexact (“noise”) – Search for “best” according to some cost

function – Algebraic or geometric/statistical cost

47

Page 48: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Direct Linear Transformation (DLT)

ii Hxx =ʹ′ 0Hxx =×ʹ′ ii

⎟⎟⎟⎟

⎜⎜⎜⎜

=

i

i

i

i

xhxhxh

Hx3

2

1

T

T

T

⎟⎟⎟⎟

⎜⎜⎜⎜

ʹ′−ʹ′

ʹ′−ʹ′

ʹ′−ʹ′

=×ʹ′

iiii

iiii

iiii

ii

yxxwwy

xhxhxhxhxhxh

Hxx12

31

23

TT

TT

TT

0hhh

0xxx0xxx0

3

2

1

=⎟⎟⎟

⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

ʹ′ʹ′−

ʹ′−ʹ′

ʹ′ʹ′−

TTT

TTT

TTT

iiii

iiii

iiii

xyxwyw

( )Tiiii wyx ʹ′ʹ′ʹ′=ʹ′ ,,x

0hA =i 48

Page 49: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Direct Linear Transformation (DLT)

Equations are linear in h

0hhh

0xxx0xxx0

3

2

1

=⎟⎟⎟

⎜⎜⎜

⎥⎥⎥

⎢⎢⎢

ʹ′ʹ′−

ʹ′−ʹ′

ʹ′ʹ′−

TTT

TTT

TTT

iiii

iiii

iiii

xyxwyw

0AAA 321 =ʹ′+ʹ′+ʹ′ iiiiii wyx

0hA =i

Only 2 of 3 are linearly independent (indeed, 2 eq/pt)

49

Page 50: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Direct Linear Transformation (DLT)

0hhh

x0xxx0

3

2

1

=⎟⎟⎟

⎜⎜⎜

⎥⎦

⎤⎢⎣

ʹ′−ʹ′

ʹ′ʹ′−TTT

TTT

iiii

iiii

xwyw

(only drop third row if wi’≠0)

•  Holds for any homogeneous representation, e.g. (xi’,yi’,1)

50

Page 51: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Direct Linear Transformation (DLT)

•  Solving for H 0Ah =

0h

AAAA

4

3

2

1

=

⎥⎥⎥⎥

⎢⎢⎢⎢

Size of A is 8x9, but rank 8

Trivial solution is h=09T is not interesting

1-D null-space yields solution of interest, pick for example the one with 1h =

51

Page 52: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Direct Linear Transformation (DLT)

•  Over-determined solution

No exact solution because of inexact measurement i.e. “noise”

0h

A

AA

n

2

1

=

⎥⎥⎥⎥

⎢⎢⎢⎢

!

Find approximate solution -  Additional constraint needed to avoid 0, e.g.

-  not possible, so minimize

1h =

Ah0Ah =

52

Page 53: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

DLT Algorithm

Objective Given n≥4 2D to 2D point correspondences {xi↔xi’}, determine the 2D homography matrix H such that xi’=Hxi

Algorithm (i)  For each correspondence xi ↔xi’ compute Ai. Usually

only two first rows needed.

(ii)  Assemble n 2x9 matrices Ai into a single 2nx9 matrix A (iii)  Obtain SVD of A. Solution for h is last column of V (iv)  Determine H from h

53

Page 54: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Inhomogeneous solution

⎟⎟⎠

⎞⎜⎜⎝

⎛−=⎥

⎤⎢⎣

−−

−−−

''

h~''000''''''''000

ii

ii

iiiiiiiiii

iiiiiiiiii

xwyw

xyxxwwwywxyyyxwwwywx

Since h can only be computed up to scale, pick hj=1, e.g. h9=1, and solve for 8-vector h~

Solve using Gaussian elimination (4 points) or using linear least-squares (more than 4 points) However, if h9=0 this approach fails Also poor results if h9 close to zero Therefore, not recommended

54

Page 55: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Normalizing Transformations

•  Since DLT is not invariant to transformations, what is a good choice of coordinates? e.g. –  Translate centroid to origin

–  Scale to a average distance to the origin –  Independently on both images

2

1

norm

1002/02/0

T

⎥⎥⎥

⎢⎢⎢

+

+

= hhwwhw

55

Page 56: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Importance of Normalization

0hhh

00011000

3

2

1

=⎟⎟⎟

⎜⎜⎜

⎥⎦

⎤⎢⎣

⎡ʹ′−ʹ′−ʹ′−

ʹ′ʹ′ʹ′−ʹ′−ʹ′−

iiiiiii

iiiiiii

xyxxxyxyyyxyyx

~102 ~102 ~102 ~102 ~104 ~104 ~102 1 1

orders of magnitude difference!

Monte Carlo simulation for identity computation based on 5 points

(not normalized ↔ normalized)

56

Page 57: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Normalized DLT Algorithm

Objective Given n≥4 2D to 2D point correspondences {xi↔xi’}, determine the 2D homography matrix H such that xi’=Hxi

Algorithm (i)  Normalize points (ii)  Apply DLT algorithm to (iii)  Denormalize solution

,x~x~ ii ʹ′↔inormiinormi xTx~,xTx~ ʹ′ʹ′=ʹ′=

norm-1norm TH~TH ʹ′=

57

Page 58: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

RANSAC

Slides by R. Hartley, A. Zisserman and M. Pollefeys

58

Page 59: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Robust Estimation

•  What if set of matches contains gross outliers?

59

Page 60: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

RANSAC Objective

Robust fit of model to data set S which contains outliers Algorithm (i)  Randomly select a sample of s data points from S and

instantiate the model from this subset. (ii)  Determine the set of data points Si which are within a

distance threshold t of the model. The set Si is the consensus set of samples and defines the inliers of S.

(iii)  If the subset of Si is greater than some threshold T, re-estimate the model using all the points in Si and terminate

(iv)  If the size of Si is less than T, select a new subset and repeat the above.

(v)  After N trials the largest consensus set Si is selected, and the model is re-estimated using all the points in the subset Si

60

Page 61: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

How Many Samples?

Choose N so that, with probability p, at least one random sample is free from outliers. e.g. p=0.99

( ) ( )( )sepN −−−= 11log/1log

( )( ) peNs −=−− 111

proportion of outliers e s 5% 10% 20% 25% 30% 40% 50% 2 2 3 5 6 7 11 17 3 3 4 7 9 11 19 35 4 3 5 9 13 17 34 72 5 4 6 12 17 26 57 146 6 4 7 16 24 37 97 293 7 4 8 20 33 54 163 588 8 5 9 26 44 78 272 1177

61

Page 62: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Acceptable Consensus Set

•  Typically, terminate when inlier ratio reaches expected ratio of inliers

( )neT −= 1

62

Page 63: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Adaptively Determining the Number of Samples

e is often unknown a priori, so pick worst case, e.g. 50%, and adapt if more inliers are found, e.g. 80% would yield e=0.2

–  N=∞, sample_count =0

–  While N >sample_count repeat •  Choose a sample and count the number of inliers

•  Set e=1-(number of inliers)/(total number of points)

•  Recompute N from e •  Increment the sample_count by 1

–  Terminate ( ) ( )( )( )sepN −−−= 11log/1log

63

Page 64: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Other robust algorithms

•  RANSAC maximizes number of inliers

•  LMedS minimizes median error

•  Not recommended: case deletion, iterative least-squares, etc.

64

Page 65: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Automatic Computation of H

Objective Compute homography between two images

Algorithm (i)   Interest points: Compute interest points in each image (ii)   Putative correspondences: Compute a set of interest

point matches based on some similarity measure (iii)   RANSAC robust estimation: Repeat for N samples

(a) Select 4 correspondences and compute H (b) Calculate the distance d⊥ for each putative match (c) Compute the number of inliers consistent with H (d⊥<t) Choose H with most inliers

(iv)  Optimal estimation: re-estimate H from all inliers by minimizing ML cost function with Levenberg-Marquardt

(v)  Guided matching: Determine more matches using prediction by computed H

Optionally iterate last two steps until convergence 65

Page 66: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Determine Putative Correspondences

•  Compare interest points Similarity measure:

–  SAD, SSD, ZNCC in small neighborhood

•  If motion is limited, only consider interest points with similar coordinates

66

Page 67: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Example: robust computation

Interest points (500/image) (640x480)

Putative correspondences (268) (Best match,SSD<20,±320) Outliers (117) (t=1.25 pixel; 43 iterations)

Inliers (151) Final inliers (262)

#in 1-e adapt. N

6 2% 20M 10 3% 2.5M 44 16% 6,922 58 21% 2,291 73 26% 911

151 56% 43

67

Page 68: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Radial Distortion and Undistortion

Slides by R. Hartley, A. Zisserman and M. Pollefeys

68

Page 69: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

short and long focal length

Radial Distortion

69

Page 70: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

70

Page 71: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

71

Page 72: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Correction of distortion

Choice of the distortion function and center

Computing the parameters of the distortion function (i)  Minimize with additional unknowns (ii)  Straighten lines (iii)  …

72

Typical Undistortion Model

Page 73: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

73

Why Undistort?

Page 74: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Two-View Geometry

Slides by R. Hartley, A. Zisserman and M. Pollefeys

74

Page 75: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

(i)   Correspondence geometry: Given an image point x in the first image, how does this constrain the position of the corresponding point x’ in the second image?

(ii) Camera geometry (motion): Given a set of corresponding image points {xi ↔x’i}, i=1,…,n, what are the cameras P and P’ for the two views?

(iii) Scene geometry (structure): Given corresponding image points xi ↔x’i and cameras P, P’, what is the position of (their pre-image) X in space?

Three questions:

75

Page 76: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

C, C’, x, x’ and X are coplanar

The Epipolar Geometry

76

Page 77: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

What if only C,C’,x are known?

The Epipolar Geometry

77

Page 78: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

All points on π project on l and l’

78

The Epipolar Geometry

Page 79: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Family of planes π and lines l and l’ Intersection in e and e’

79

The Epipolar Geometry

Page 80: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

epipoles e, e’ = intersection of baseline with image plane = projection of projection center in other image = vanishing point of camera motion direction

an epipolar plane = plane containing baseline (1-D family)

an epipolar line = intersection of epipolar plane with image (always come in corresponding pairs)

80

The Epipolar Geometry

Page 81: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Example: Converging Cameras

81

Page 82: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

(simple for stereo → rectification)

Example: Motion Parallel to Image Plane

82

Page 83: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

e

e’

Example: Forward Motion

83

Page 84: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

The Fundamental Matrix F

algebraic representation of epipolar geometry

l'x!

we will see that mapping is a (singular) correlation (i.e. projective mapping from points to lines) represented by the fundamental matrix F

84

Page 85: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

correspondence condition

0Fxx'T =

The fundamental matrix satisfies the condition that for any pair of corresponding points x↔x’ in the two images

( )0l'x'T =

85

The Fundamental Matrix F

Page 86: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

( ) λCxPλX += + ( )IPP =+

[ ] +×= PP'e'F

xPP'CP'l +×=

(note: doesn’t work for C=C’ ⇒ F=0)

xP+( )λX

86

The Fundamental Matrix F

Page 87: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

F is the unique 3x3 rank 2 matrix that satisfies x’TFx=0 for all x↔x’

(i)   Transpose: if F is fundamental matrix for (P,P’), then FT is fundamental matrix for (P’,P)

(ii)   Epipolar lines: l’=Fx & l=FTx’ (iii)   Epipoles: on all epipolar lines, thus e’TFx=0, ∀x ⇒e’TF=0,

similarly Fe=0 (iv)   F has 7 d.o.f. , i.e. 3x3-1(homogeneous)-1(rank2) (v)   F is a correlation, projective mapping from a point x to a line

l’=Fx (not a proper correlation, i.e. not invertible)

87

The Fundamental Matrix F

Page 88: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Two View Geometry Computation: Linear Algorithm

0Fxx'T =

separate known from unknown

0'''''' 333231232221131211 =++++++++ fyfxffyyfyxfyfxyfxxfx

[ ][ ] 0,,,,,,,,1,,,',',',',',' T333231232221131211 =fffffffffyxyyyxyxyxxx

(data) (unknowns)

(linear)

0Af =

0f1''''''

1'''''' 111111111111=

⎥⎥

⎢⎢

nnnnnnnnnnnn yxyyyxyxyxxx

yxyyyxyxyxxx!!!!!!!!!

For every match (m,m´):

88

Page 89: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Benefits from having F

•  Given a pixel in one image, the corresponding pixel has to lie on epipolar line

•  Search space reduced from 2-D to 1-D

89

Page 90: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

simplify stereo matching by warping the images

Apply projective transformation so that epipolar lines correspond to horizontal scanlines

e

e

map epipole e to (1,0,0)

try to minimize image distortion

problem when epipole in (or close to) the image

He001=

⎥⎥⎦

⎢⎢⎣

Image Pair Rectification

90

Page 91: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

Planar Rectification

Bring two views to standard stereo setup (moves epipole to ∞) (not possible when in/close to image)

(standard approach)

91

Page 92: CS 532: 3D Computer Vision Lecture 2 · 2020. 7. 1. · Based on slides by John Oliensis 3 . Lecture Outline • Single View Geometry • 2D projective transformations – Homographies

92