75
Structure from motion Digital Visual Effects, Spring 2007 Yung-Yu Chuang 2007/4/24 with slides by Richard Szeliski, Steve Seitz, Zhengyou Zhang and Marc Polle fyes

Structure from motion

  • Upload
    hosea

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Structure from motion. Digital Visual Effects, Spring 2007 Yung-Yu Chuang 2007/4/24. with slides by Richard Szeliski, Steve Seitz, Zhengyou Zhang and Marc Pollefyes. Announcements. Project #2 is due today. Same submission mechanism. Please hand it in before Sunday if possible. - PowerPoint PPT Presentation

Citation preview

Page 1: Structure from motion

Structure from motion

Digital Visual Effects, Spring 2007Yung-Yu Chuang2007/4/24

with slides by Richard Szeliski, Steve Seitz, Zhengyou Zhang and Marc Pollefyes

Page 2: Structure from motion

Announcements

• Project #2 is due today. Same submission mechanism. Please hand it in before Sunday if possible.

• The class of 5/8 will begin at 2:30pm.

Page 3: Structure from motion

Outline

• Epipolar geometry and fundamental matrix• Structure from motion• Factorization method• Bundle adjustment• Applications

Page 4: Structure from motion

Epipolar geometry & fundamental matrix

Page 6: Structure from motion

The epipolar geometry

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

Page 7: Structure from motion

The epipolar geometry

All points on project on l and l’

Page 8: Structure from motion

The epipolar geometry

Family of planes and lines l and l’ intersect at e and e’

Page 9: Structure from motion

The epipolar geometry

epipolar plane = plane containing baselineepipolar line = intersection of epipolar plane with image

epipolar pole= intersection of baseline with image plane = projection of projection center in other image

epipolar geometry demo

Page 10: Structure from motion

The fundamental matrix F

C C’T=C’-C

Rp p’

T)-R(p'p Two reference frames are related via the extrinsic

parameters

0)()( pTTpThe equation of the epipolar plane through X is

0)()'( pTpR

Page 11: Structure from motion

The fundamental matrix F

0)()'( pTpR

SppT

0

0

0

xy

xz

yz

TT

TT

TT

S

0)()'( SppR

0))('( SpRp

0' Epp essential matrix

Page 12: Structure from motion

The fundamental matrix F

0' Epp

Let M and M’ be the intrinsic matrices, then

xMp 1 ''' 1 xMp

0)()'( 11 xMExM'

0' 1 xEMM'x

0' Fxx fundamental matrix

Page 13: Structure from motion

The fundamental matrix F

• The fundamental matrix is the algebraic representation of epipolar geometry

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

0Fxx'T 0l'x'T

Page 14: Structure from motion

The fundamental matrix F

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

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

2. Epipolar lines: l’=Fx & l=FTx’3. Epipoles: on all epipolar lines, thus e’TFx=0, x e’

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

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

Page 15: Structure from motion

The fundamental matrix F

• It can be used for – Simplifies matching– Allows to detect wrong matches

Page 16: Structure from motion

Estimation of F — 8-point algorithm• The fundamental matrix F is defined by

0Fxx'for any pair of matches x and x’ in two images.

• Let x=(u,v,1)T and x’=(u’,v’,1)T,

333231

232221

131211

fff

fff

fff

F

each match gives a linear equation

0'''''' 333231232221131211 fvfuffvfvvfuvfufvufuu

Page 17: Structure from motion

8-point algorithm

0

1´´´´´´

1´´´´´´

1´´´´´´

33

32

31

23

22

21

13

12

11

222222222222

111111111111

f

f

f

f

f

f

f

f

f

vuvvvvuuuvuu

vuvvvvuuuvuu

vuvvvvuuuvuu

nnnnnnnnnnnn

• In reality, instead of solving , we seek f to minimize , least eigenvector of .

0AfAf AA

Page 18: Structure from motion

8-point algorithm

• To enforce that F is of rank 2, F is replaced by F’ that minimizes subject to . 'FF 0'det F

• It is achieved by SVD. Let , where

, let

then is the solution.

VUF Σ

3

2

1

00

00

00

Σ

000

00

00

Σ' 2

1

VUF Σ''

Page 19: Structure from motion

8-point algorithm% Build the constraint matrix A = [x2(1,:)‘.*x1(1,:)' x2(1,:)'.*x1(2,:)' x2(1,:)' ... x2(2,:)'.*x1(1,:)' x2(2,:)'.*x1(2,:)' x2(2,:)' ... x1(1,:)' x1(2,:)' ones(npts,1) ]; [U,D,V] = svd(A); % Extract fundamental matrix from the column of V % corresponding to the smallest singular value. F = reshape(V(:,9),3,3)'; % Enforce rank2 constraint [U,D,V] = svd(F); F = U*diag([D(1,1) D(2,2) 0])*V';

Page 20: Structure from motion

8-point algorithm

• Pros: it is linear, easy to implement and fast

• Cons: susceptible to noise

Page 21: Structure from motion

0

1´´´´´´

1´´´´´´

1´´´´´´

33

32

31

23

22

21

13

12

11

222222222222

111111111111

f

f

f

f

f

f

f

f

f

vuvvvvuuuvuu

vuvvvvuuuvuu

vuvvvvuuuvuu

nnnnnnnnnnnn

Problem with 8-point algorithm

~10000 ~10000 ~10000 ~10000~100 ~100 1~100 ~100

!Orders of magnitude differencebetween column of data matrix least-squares yields poor results

Page 22: Structure from motion

Normalized 8-point algorithm

1.Transform input by ,2.Call 8-point on to obtain3.

ii Txx ˆ 'i

'i Txx ˆ

'ii xx ˆ,ˆ

TFTF ˆΤ'F̂

0Fxx'

0ˆ'ˆ 1 xFTTx'

Page 23: Structure from motion

Normalized 8-point algorithm

(0,0)

(700,500)

(700,0)

(0,500)

(1,-1)

(0,0)

(1,1)(-1,1)

(-1,-1)

1

1500

2

10700

2

normalized least squares yields good resultsTransform image to ~[-1,1]x[-1,1]

Page 24: Structure from motion

Normalized 8-point algorithm

A = [x2(1,:)‘.*x1(1,:)' x2(1,:)'.*x1(2,:)' x2(1,:)' ... x2(2,:)'.*x1(1,:)' x2(2,:)'.*x1(2,:)' x2(2,:)' ... x1(1,:)' x1(2,:)' ones(npts,1) ]; [U,D,V] = svd(A); F = reshape(V(:,9),3,3)'; [U,D,V] = svd(F); F = U*diag([D(1,1) D(2,2) 0])*V'; % Denormalise F = T2'*F*T1;

[x1, T1] = normalise2dpts(x1);

[x2, T2] = normalise2dpts(x2);

Page 25: Structure from motion

Normalization

function [newpts, T] = normalise2dpts(pts)

c = mean(pts(1:2,:)')'; % Centroid newp(1,:) = pts(1,:)-c(1); % Shift origin to centroid. newp(2,:) = pts(2,:)-c(2); meandist = mean(sqrt(newp(1,:).^2 + newp(2,:).^2)); scale = sqrt(2)/meandist; T = [scale 0 -scale*c(1) 0 scale -scale*c(2) 0 0 1 ]; newpts = T*pts;

Page 26: Structure from motion

RANSAC

repeatselect minimal sample (8 matches)compute solution(s) for Fdetermine inliers

until (#inliers,#samples)>95% or too many times

compute F based on all inliers

Page 27: Structure from motion

Results (ground truth)

Page 28: Structure from motion

Results (8-point algorithm)

Page 29: Structure from motion

Results (normalized 8-point algorithm)

Page 30: Structure from motion

Structure from motion

Page 31: Structure from motion

Structure from motion

structure for motion: automatic recovery of camera motion and scene structure from two or more images. It is a self calibration technique and called automatic camera tracking or matchmoving.

UnknownUnknowncameracamera

viewpointsviewpoints

Page 32: Structure from motion

Applications

• For computer vision, multiple-view shape reconstruction, novel view synthesis and autonomous vehicle navigation.

• For film production, seamless insertion of CGI into live-action backgrounds

Page 33: Structure from motion

Structure from motion

2D featuretracking

3D estimation optimization(bundle adjust)

geometry fitting

SFM pipeline

Page 34: Structure from motion

Structure from motion

• Step 1: Track Features– Detect good features, Shi & Tomasi, SIFT– Find correspondences between frames

• Lucas & Kanade-style motion estimation• window-based correlation• SIFT matching

Page 35: Structure from motion

KLT tracking

http://www.ces.clemson.edu/~stb/klt/

Page 36: Structure from motion

Structure from Motion• Step 2: Estimate Motion and Structure

– Simplified projection model, e.g., [Tomasi 92]– 2 or 3 views at a time [Hartley 00]

Page 37: Structure from motion

Structure from Motion• Step 3: Refine estimates

– “Bundle adjustment” in photogrammetry– Other iterative methods

Page 38: Structure from motion

Structure from Motion• Step 4: Recover surfaces (image-based

triangulation, silhouettes, stereo…)

Good mesh

Page 39: Structure from motion

Factorization methods

Page 40: Structure from motion

Problem statement

Page 41: Structure from motion

Notations

• n 3D points are seen in m views• q=(u,v,1): 2D image point• p=(x,y,z,1): 3D scene point : projection matrix : projection function• qij is the projection of the i-th point on image j ij projective depth of qij

)( ijij pq )/,/(),,( zyzxzyx zij

Page 42: Structure from motion

Structure from motion

• Estimate and to minimize

));((log),,,,,(1 1

11 ijij

m

j

n

iijnm Pw qpΠppΠΠ

otherwise

j in view visibleis if

0

1 iij

pw

• Assume isotropic Gaussian noise, it is reduced to

2

1 111 )(),,,,,( ijij

m

j

n

iijnm w qpΠppΠΠ

j ip

Page 43: Structure from motion

SFM under orthographic projection

2D image point

orthographicprojection

matrix

3D scenepoint

imageoffset

tΠpq 12 32 13 12

• Trick– Choose scene origin to be centroid of 3D points– Choose image origins to be centroid of 2D points– Allows us to drop the camera translation:

Πpq

Page 44: Structure from motion

factorization (Tomasi & Kanade)

n332n2

n21n21 pppqqq

projection of n features in one image:

n3

32mn2m

212

1

21

22221

11211

n

mmnmm

n

n

ppp

Π

Π

Π

qqq

qqq

qqq

projection of n features in m images

W measurement M motion S shape

Key Observation: rank(W) <= 3

Page 45: Structure from motion

n33m2n2m''

SMW

• Factorization Technique– W is at most rank 3 (assuming no noise)– We can use singular value decomposition to factor W:

Factorization

– S’ differs from S by a linear transformation A:

– Solve for A by enforcing metric constraints on M

))(('' ASMASMW 1

n33m2n2m SMWknown solve for

Page 46: Structure from motion

Metric constraints

• Orthographic Camera– Rows of are orthonormal:

• Enforcing “Metric” Constraints– Compute A such that rows of M have these properti

esMAM '

10

01T

Trick (not in original Tomasi/Kanade paper, but in followup work)

• Constraints are linear in AAT :

• Solve for G first by writing equations for every i in M

• Then G = AAT by SVD (since U = V)

TTTT where AAGGAA

''''

10

01

Page 47: Structure from motion

nm2n33m2n2m ESMW

Factorization with noisy data

• SVD gives this solution– Provides optimal rank 3 approximation W’ of W

nm2n2mn2m'

EWW

• Approach– Estimate W’, then use noise-free factorization of

W’ as before– Result minimizes the SSD between positions of

image features and projection of the reconstruction

Page 48: Structure from motion

Results

Page 49: Structure from motion

Extensions to factorization methods• Projective projection• With missing data• Projective projection with missing data

Page 50: Structure from motion

Bundle adjustment

Page 51: Structure from motion

Levenberg-Marquardt method• LM can be thought of as a combination of

steepest descent and the Newton method. When the current solution is far from the correct one, the algorithm behaves like a steepest descent method: slow, but guaranteed to converge. When the current solution is close to the correct solution, it becomes a Newton’s method.

Page 52: Structure from motion

Nonlinear least square

).(ˆ with ,ˆ

Here, minimal. is distance squared

that theso vector parameter best the

find try to, tsmeasuremen ofset aGiven

pxxx

p

x

f

T

Page 53: Structure from motion

Levenberg-Marquardt method

Page 54: Structure from motion

Levenberg-Marquardt method• μ=0 → Newton’s method• μ→∞ → steepest descent method

• Strategy for choosing μ– Start with some small μ– If error is not reduced, keep trying larger μ until it d

oes– If error is reduced, accept it and reduce μ for the ne

xt iteration

Page 55: Structure from motion

Bundle adjustment

• Bundle adjustment (BA) is a technique for simultaneously refining the 3D structure and camera parameters

• It is capable of obtaining an optimal reconstruction under certain assumptions on image error models. For zero-mean Gaussian image errors, BA is the maximum likelihood estimator.

Page 56: Structure from motion

Bundle adjustment

• n 3D points are seen in m views• xij is the projection of the i-th point on image j• aj is the parameters for the j-th camera• bi is the parameters for the i-th point• BA attempts to minimize the projection error

Euclidean distance

predicted projection

Page 57: Structure from motion

Bundle adjustment

Page 58: Structure from motion

Bundle adjustment

3 views and 4 points

Page 59: Structure from motion

Typical Jacobian

Page 60: Structure from motion

Block structure of normal equation

Page 61: Structure from motion

Issues in SFM

• Track lifetime• Nonlinear lens distortion• Degeneracy and critical surfaces• Prior knowledge and scene constraints• Multiple motions

Page 62: Structure from motion

Track lifetime

every 50th frame of a 800-frame sequence

Page 63: Structure from motion

Track lifetime

lifetime of 3192 tracks from the previous sequence

Page 64: Structure from motion

Track lifetime

track length histogram

Page 65: Structure from motion

Nonlinear lens distortion

Page 66: Structure from motion

Nonlinear lens distortion

effect of lens distortion

Page 67: Structure from motion

Prior knowledge and scene constraints

add a constraint that several lines are parallel

Page 68: Structure from motion

Prior knowledge and scene constraints

add a constraint that it is a turntable sequence

Page 69: Structure from motion

Applications of matchmove

Page 70: Structure from motion

Applications of matchmove

More example #1 More example #2

Page 71: Structure from motion

2d3 boujou

Enemy at the Gate, Double Negative

Page 72: Structure from motion

2d3 boujou

Enemy at the Gate, Double Negative

Page 73: Structure from motion

Jurassic park

Page 74: Structure from motion

Photo Tourism

Page 75: Structure from motion

Project #3 MatchMove• It is more about using tools in this project• You can choose either calibration or structure

from motion to achieve the goal• Calibration example• Icarus