two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + why...

114
Two-view geometry 16-385 Computer Vision Spring 2020, Lecture 12 http://www.cs.cmu.edu/~16385/

Upload: others

Post on 07-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Two-view geometry

16-385 Computer VisionSpring 2020, Lecture 12http://www.cs.cmu.edu/~16385/

Page 2: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Course announcements

• Homework 3 is available online.- Due on March 4th at 23:59.- How many of you have read/started/finished HW2?

• Take-home quiz 5 is available online and due Sunday, March 1st at 23:59.

• New for quizzes: please only submit PDF files, not ZIP.

• How many of you did take-home quiz 4?

Page 3: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Overview of today’s lecture

• Triangulation.

• Epipolar geometry.

• Essential matrix.

• Fundamental matrix.

• 8-point algorithm.

Page 4: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Slide credits

Many of these slides were adapted from:

• Kris Kitani (16-385, Spring 2017).• Srinivasa Narasimhan (16-720, Fall 2017).

Page 5: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

Page 6: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

Given

camera 1 with matrix camera 2 with matrix

Page 7: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

camera 1 with matrix camera 2 with matrix

Which 3D points map

to x?

Page 8: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

camera 1 with matrix camera 2 with matrix

How can you compute

this ray?

Page 9: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

camera 1 with matrix camera 2 with matrix

+

Why does this

point map to x?

Create two points on the ray:

1) find the camera center; and

2) apply the pseudo-inverse of P on x.

Then connect the two points.

This procedure is called backprojection

Page 10: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

camera 1 with matrix camera 2 with matrix

+How do we find the

exact point on the ray?

Page 11: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

Find 3D object pointWill the lines intersect?

camera 1 with matrix camera 2 with matrix

Page 12: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Triangulation

image 2image 1

Find 3D object point(no single solution due to noise)

camera 1 with matrix camera 2 with matrix

Page 13: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Given a set of (noisy) matched points

and camera matrices

Estimate the 3D point

Triangulation

Page 14: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

known known

Can we compute X from a single

correspondence x?

Page 15: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

This is a similarity relation because it involves homogeneous coordinates

Same ray direction but differs by a scale factor

How do we solve for unknowns in a similarity relation?

(homorogeneous

coordinate)

(homogeneous

coordinate)

Page 16: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do we solve for unknowns in a similarity relation?

Also, this is a similarity relation because it involves homogeneous coordinates

Same ray direction but differs by a scale factor

(inhomogeneous

coordinate)

(homogeneous

coordinate)

Page 17: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Linear algebra reminder: cross productVector (cross) product

takes two vectors and returns a vector perpendicular to both

cross product of two vectors in

the same direction is zero vector

remember this!!!

Page 18: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Can also be written as a matrix multiplication

Cross product

Skew symmetric

Linear algebra reminder: cross product

Page 19: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Compare with: dot product

dot product of two orthogonal vectors is (scalar) zero

Page 20: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Same direction but differs by a scale factor

How can we rewrite this using vector products?

Back to triangulation

Page 21: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Same direction but differs by a scale factor

Cross product of two vectors of same direction is zero

(this equality removes the scale factor)

Page 22: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Do the same after first

expanding out the camera

matrix and points

Page 23: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Using the fact that the cross product should be zero

Third line is a linear combination of the first and second lines.

(x times the first line plus y times the second line)

One 2D to 3D point correspondence give you 2 equations

Page 24: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Third line is a linear combination of the first and second lines.

(x times the first line plus y times the second line)

One 2D to 3D point correspondence give you 2 equations

Using the fact that the cross product should be zero

Page 25: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Now we can make a system of linear equations

(two lines for each 2D point correspondence)

Remove third row, and

rearrange as system on

unknowns

Page 26: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do we solve homogeneous linear system?

Concatenate the 2D points from both images

sanity check! dimensions?

Two rows from camera one

Two rows from camera two

Page 27: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do we solve homogeneous linear system?

Concatenate the 2D points from both images

S V D !

Page 28: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar geometry

Page 29: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar geometry

Image plane

Page 30: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar geometry

Image plane

Baseline

Page 31: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar geometry

Image plane

Baseline

Epipole(projection of o’ on the image plane)

Page 32: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar geometry

Epipole(projection of o’ on the image plane)

Baseline

Epipolar plane

Image plane

Baseline

Page 33: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar geometry

Epipole(projection of o’ on the image plane)

Baseline

Epipolar plane

Epipolar line(intersection of Epipolar

plane and image plane)

Image plane

Page 34: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

What is this?

Page 35: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

Page 36: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

What is this?

Page 37: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

Epipolar line(intersection of Epipolar

plane and image plane)

Page 38: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

Epipolar line(intersection of Epipolar

plane and image plane)

What is this?

Page 39: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

Epipolar line(intersection of Epipolar

plane and image plane)

Epipole(projection of o’ on the image plane)

Page 40: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

Epipolar line(intersection of Epipolar

plane and image plane)

Epipole(projection of o’ on the image plane)

What is this?

Page 41: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Quiz

Epipolar plane

Epipolar line(intersection of Epipolar

plane and image plane)

Epipole(projection of o’ on the image plane)

Baseline

Page 42: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar constraint

Another way to construct the epipolar plane, this time given

Backproject to a

ray in 3D

Epipolar line(intersection of Epipolar

plane and image plane)

Page 43: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar constraint

Potential matches for lie on the epipolar line

Page 44: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The point x (left image) maps to a ___________ in the right image

The baseline connects the ___________ and ____________

An epipolar line (left image) maps to a __________ in the right image

An epipole e is a projection of the ______________ on the image plane

All epipolar lines in an image intersect at the ______________

Page 45: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Converging cameras

Where is the epipole in this image?

Page 46: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Converging cameras

It’s not always in the image Where is the epipole in this image?

here!

Page 47: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Parallel cameras

Where is the epipole?

Page 48: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Parallel cameras

epipole at infinity

Page 49: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The epipolar constraint is an important concept for stereo vision

Left image Right image

Task: Match point in left image to point in right image

How would you do it?

Page 50: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar constraint

Potential matches for lie on the epipolar line

Page 51: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The epipolar constraint is an important concept for stereo vision

Left image Right image

Task: Match point in left image to point in right image

Want to avoid search over entire image

Epipolar constraint reduces search to a single line

Page 52: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The epipolar constraint is an important concept for stereo vision

Left image Right image

Task: Match point in left image to point in right image

How do you compute the epipolar line?

Want to avoid search over entire image

Epipolar constraint reduces search to a single line

Page 53: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The essential matrix

Page 54: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Recall:Epipolar constraint

Potential matches for lie on the epipolar line

Page 55: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Given a point in one image,

multiplying by the essential matrix will tell us

the epipolar line in the second view.

Page 56: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Motivation

The Essential Matrix is a 3 x 3 matrix that

encodes epipolar geometry

Given a point in one image,

multiplying by the essential matrix will tell us

the epipolar line in the second image.

Page 57: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar Line

in vector form

If the point is on the epipolar line then

Representing the …

Page 58: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Epipolar Line

in vector form

If the point is on the epipolar line then

Page 59: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

So if and then

Page 60: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

So if and then

Page 61: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Essential Matrix vs HomographyWhat’s the difference between the essential matrix and a homography?

Page 62: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Essential Matrix vs Homography

They are both 3 x 3 matrices but …

Essential matrix maps a

point to a line

Homography maps a

point to a point

What’s the difference between the essential matrix and a homography?

Page 63: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Where does the essential matrix come from?

Page 64: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;
Page 65: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Does this look familiar?

Page 66: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Camera-camera transform just like world-camera transform

Page 67: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

These three vectors are coplanar

Page 68: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

If these three vectors are coplanar then

Page 69: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

If these three vectors are coplanar then

cross-product: vector orthogonal to planedot product of orthogonal vectors

Page 70: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

If these three vectors are coplanar then

Page 71: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

If these three vectors are coplanar then

Page 72: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

putting it together

coplanarityrigid motion

Page 73: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

putting it together

coplanarityrigid motion

use skew-symmetric matrix

to represent cross product

Page 74: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

putting it together

coplanarityrigid motion

Page 75: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

putting it together

coplanarityrigid motion

Page 76: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

putting it together

coplanarityrigid motion

Essential Matrix

[Longuet-Higgins 1981]

Page 77: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

properties of the E matrix

Longuet-Higgins equation

(2D points expressed in camera coordinate system)

Page 78: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

properties of the E matrix

Epipolar lines

Longuet-Higgins equation

(2D points expressed in camera coordinate system)

Page 79: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

properties of the E matrix

Epipolar lines

Longuet-Higgins equation

Epipoles

(2D points expressed in camera coordinate system)

Page 80: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Given a point in one image,

multiplying by the essential matrix will tell us

the epipolar line in the second view.

Assumption:

2D points expressed in camera coordinate system (i.e., intrinsic matrices are identities)

Page 81: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do you generalize

to non-identity intrinsic

matrices?

Page 82: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The fundamental matrix

Page 83: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The

fundamental matrix

is a

generalization

of the

essential matrix,

where the assumption of

Identity matrices

is removed

Page 84: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The essential matrix operates on image points expressed in

2D coordinates expressed in the camera coordinate system

image

point

camera

point

Page 85: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Writing out the epipolar constraint in terms of image coordinates

image

point

camera

point

The essential matrix operates on image points expressed in

2D coordinates expressed in the camera coordinate system

Page 86: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Same equation works in image coordinates!

it maps pixels to epipolar lines

Page 87: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

properties of the E matrix

Epipolar lines

Longuet-Higgins equation

Epipoles

(points in image coordinates)

F

F

F F

F F

Page 88: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Depends on both intrinsic and extrinsic parameters

Breaking down the fundamental matrix

Page 89: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Depends on both intrinsic and extrinsic parameters

Breaking down the fundamental matrix

How would you solve for F?

Page 90: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The 8-point algorithm

Page 91: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Assume you have M matched image points

Each correspondence should satisfy

How would you solve for the 3 x 3 F matrix?

Page 92: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Each correspondence should satisfy

How would you solve for the 3 x 3 F matrix?

S V D

Assume you have M matched image points

Page 93: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Each correspondence should satisfy

How would you solve for the 3 x 3 F matrix?

Set up a homogeneous linear system with 9 unknowns

Assume you have M matched image points

Page 94: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How many equation do you get from one correspondence?

Page 95: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

ONE correspondence gives you ONE equation

Page 96: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Set up a homogeneous linear system with 9 unknowns

How many equations do you need?

Page 97: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Each point pair (according to epipolar constraint)

contributes only one scalar equation

Note: This is different from the Homography estimation where

each point pair contributes 2 equations.

We need at least 8 points

Hence, the 8 point algorithm!

Page 98: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do you solve a homogeneous linear system?

Page 99: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do you solve a homogeneous linear system?

minimize

subject to

Total Least Squares

Page 100: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

How do you solve a homogeneous linear system?

minimize

subject to

Total Least Squares

S V D !

Page 101: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Eight-Point Algorithm

0. (Normalize points)

1. Construct the M x 9 matrix A

2. Find the SVD of A

3. Entries of F are the elements of column of V

corresponding to the least singular value

4. (Enforce rank 2 constraint on F)

5. (Un-normalize F)

Page 102: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Eight-Point Algorithm

0. (Normalize points)

1. Construct the M x 9 matrix A

2. Find the SVD of A

3. Entries of F are the elements of column of V

corresponding to the least singular value

4. (Enforce rank 2 constraint on F)

5. (Un-normalize F) See Hartley-Zisserman

for why we do this

Page 103: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Eight-Point Algorithm

0. (Normalize points)

1. Construct the M x 9 matrix A

2. Find the SVD of A

3. Entries of F are the elements of column of V

corresponding to the least singular value

4. (Enforce rank 2 constraint on F)

5. (Un-normalize F) How do we do this?

Page 104: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Eight-Point Algorithm

0. (Normalize points)

1. Construct the M x 9 matrix A

2. Find the SVD of A

3. Entries of F are the elements of column of V

corresponding to the least singular value

4. (Enforce rank 2 constraint on F)

5. (Un-normalize F) How do we do this?

S V D !

Page 105: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Problem: Given a matrix F, find the matrix F’ of rank k that is closest to F,

Enforcing rank constraints

min𝐹′

rank 𝐹′ =𝑘

𝐹 − 𝐹′ 2

Solution: Compute the singular value decomposition of F,

𝐹 = 𝑈Σ𝑉𝑇

Form a matrix Σ’ by replacing all but the k largest singular values in Σ with 0.

Then the problem solution is the matrix F’ formed as,

𝐹′ = 𝑈Σ′𝑉𝑇

Page 106: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Eight-Point Algorithm

0. (Normalize points)

1. Construct the M x 9 matrix A

2. Find the SVD of A

3. Entries of F are the elements of column of V

corresponding to the least singular value

4. (Enforce rank 2 constraint on F)

5. (Un-normalize F)

Page 107: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Example

Page 108: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

epipolar lines

Page 109: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;
Page 110: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;
Page 111: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Where is the epipole?

How would you compute it?

Page 112: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The epipole is in the right null space of F

How would you solve for the epipole?

Page 113: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

The epipole is in the right null space of F

How would you solve for the epipole?

S V D !

Page 114: Two-view geometry16385/lectures/lecture12.pdf · camera 1 with matrix camera 2 with matrix + Why does this point map to x? Create two points on the ray: 1) find the camera center;

Basic reading:• Szeliski textbook, Section 8.1 (not 8.1.1-8.1.3), Chapter 11, Section 12.2.• Hartley and Zisserman, Section 11.12.

References