CMPUT 412 3D Computer Vision

29
CMPUT 412 3D Computer Vision Presented by Azad Shademan Feb. 13-15, 2007

description

CMPUT 412 3D Computer Vision. Presented by Azad Shademan Feb. 13-15, 2007. Acknowledgement. Marc Pollefeys’ slides (University of North Carolina), comp290-89 Spring 2003 http://www.cs.unc.edu/~marc/mvg/slides.html. Motivation. - PowerPoint PPT Presentation

Transcript of CMPUT 412 3D Computer Vision

Page 1: CMPUT 412  3D Computer Vision

CMPUT 412 3D Computer Vision

Presented by Azad Shademan

Feb. 13-15, 2007

Page 2: CMPUT 412  3D Computer Vision

Acknowledgement

• Marc Pollefeys’ slides (University of North Carolina), comp290-89 Spring 2003

http://www.cs.unc.edu/~marc/mvg/slides.html

Page 3: CMPUT 412  3D Computer Vision

Motivation

• Images form one of the most important feedback signals in robotics.

• Vision-based control:– Robotic Visual Servoing– Mobile Navigation

Page 4: CMPUT 412  3D Computer Vision

Eye-In-Hand Visual Servoing

Page 5: CMPUT 412  3D Computer Vision

More motivation

• Course project:– Two cameras looking at one scene– Need to “correspond” similar points in these two

imagesLaser projection on the wall

Image planeLeft camera

Image planeRight camera

Page 6: CMPUT 412  3D Computer Vision

Camera Model

Mostly pinhole camera model

Page 7: CMPUT 412  3D Computer Vision

Pinhole Camera Model

TT ZfYZfXZYX )/,/(),,(

101

0

0

1

Z

Y

X

f

f

Z

fY

fX

Z

Y

X

Page 8: CMPUT 412  3D Computer Vision

101

01

01

1Z

Y

X

f

f

Z

fY

fX

0|I)1,,(diagP ff

Pinhole Camera Model

Page 9: CMPUT 412  3D Computer Vision

Tyx

T pZfYpZfXZYX )/,/(),,(

principal pointT

yx pp ),(

101

0

0

1

Z

Y

X

pf

pf

Z

ZpfY

ZpfX

Z

Y

X

y

x

x

x

Principle Point Offset

Page 10: CMPUT 412  3D Computer Vision

camX0|IKx

1y

x

pf

pf

K calibration matrix

Principle Point Offset

Page 11: CMPUT 412  3D Computer Vision

C~

-X~

RX~

cam

X10

RCR

1

10

C~

RRXcam

Z

Y

X

camX0|IKx XC~

|IKRx

t|RKP C~

Rt PXx

Camera Rotation and Orientation

Page 12: CMPUT 412  3D Computer Vision

X.xλor

1

10

t

1

1

1

11

λ3

PR

Z

Y

X

pf

pf

y

x

y

x

T

Page 13: CMPUT 412  3D Computer Vision

Hierarchy of transformations

vTv

tAProjective15dof

Affine12dof

Similarity7dof

Euclidean6dof

Intersection and tangency

Parallellism of planes,Volume ratios, centroids

Volume

10

tAT

10

tRT

s

10

tRT

Page 14: CMPUT 412  3D Computer Vision

Camera Calibration

• Procedure that finds the camera matrix, i.e.,– Intrinsic camera parameters– Extrinsic camera parameters

• Rotation• Orientation

• There is a lot to be done with calibrated cameras, BUT we are more interested in uncalibrated cameras (more challenging)

Page 15: CMPUT 412  3D Computer Vision

Some linear algebra to get started

• Singular value decomposition (SVD)– Decomposes a matrix as follows:

TVUΣA

Page 16: CMPUT 412  3D Computer Vision

Tnnnmmmnm VΣUA

IUU T

021 n

IVV T

nm

XXVT XVΣ T XVUΣ T

TTTnnn VUVUVUA 222111

000

00

00

00

Σ

2

1

n

Singular Value Decomposition

Page 17: CMPUT 412  3D Computer Vision

Singular Value Decomposition

• Homogeneous least-squares

• Span and null-space

• Closest rank r approximation

• Pseudo inverse

1X AXmin subject to nVX solution

nrrdiag ,,,,,, 121 0 ,, 0 ,,,,~

21 rdiag TVΣ~

UA~

TVUΣA

0000

0000

000

000

Σ 2

1

4321 UU;UU LL NS 4321 VV;VV RR NS

TUVΣA 0 ,, 0 ,,,, 112

11 rdiag

TVUΣA

Page 18: CMPUT 412  3D Computer Vision

Parameter estimation

• 2D homographyGiven a set of (xi,xi’), compute H (xi’=Hxi)

• 3D to 2D camera projectionGiven a set of (Xi,xi), compute P (xi=PXi)

• Fundamental matrixGiven a set of (xi,xi’), compute F (xi’TFxi=0)

Page 19: CMPUT 412  3D Computer Vision

Number of measurements required

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

• Example:

Hxx'

11

λ

333231

232221

131211

y

x

hhh

hhh

hhh

y

x

2 independent equations / point8 degrees of freedom

4x2≥8

Page 20: CMPUT 412  3D Computer Vision

Approximate solutions

• Minimal solution4 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

Page 21: CMPUT 412  3D Computer Vision

Direct Linear Transformation(DLT)

ii Hxx 0Hxx ii

i

i

i

i

xh

xh

xh

Hx3

2

1

T

T

T

iiii

iiii

iiii

ii

yx

xw

wy

xhxh

xhxh

xhxh

Hxx12

31

23

TT

TT

TT

0

h

h

h

0xx

x0x

xx0

3

2

1

TTT

TTT

TTT

iiii

iiii

iiii

xy

xw

yw

Tiiii wyx ,,x

0hA i

Page 22: CMPUT 412  3D Computer Vision

Direct Linear Transformation(DLT)

• Equations are linear in h

0

h

h

h

0xx

x0x

xx0

3

2

1

TTT

TTT

TTT

iiii

iiii

iiii

xy

xw

yw

0AAA 321 iiiiii wyx

0hA i

• Only 2 out of 3 are linearly independent

(indeed, 2 eq/pt)

0

h

h

h

x0x

xx0

3

2

1

TTT

TTT

iiii

iiii

xw

yw

(only drop third row if wi’≠0)• Holds for any homogeneous

representation, e.g. (xi’,yi’,1)

Page 23: CMPUT 412  3D Computer Vision

Direct Linear Transformation(DLT)

• Solving for H

0Ah 0h

A

A

A

A

4

3

2

1

size A is 8x9 or 12x9, but rank 8

Trivial solution is h=09T is not interesting

1-D null-space yields solution of interestpick for example the one with 1h

Page 24: CMPUT 412  3D Computer Vision

Direct Linear Transformation(DLT)

• Over-determined solution

No exact solution because of inexact measurementi.e. “noise”

0Ah 0h

A

A

A

n

2

1

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

- not possible, so minimize

1h Ah0Ah

Page 25: CMPUT 412  3D Computer Vision

DLT algorithmObjective

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

Page 26: CMPUT 412  3D Computer Vision

Normalized DLT algorithmObjective

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-1

norm TH~

TH

Page 27: CMPUT 412  3D Computer Vision

Reprojection error

221- Hx,xxHx, dd

22 x̂,xx̂x, dd

Page 28: CMPUT 412  3D Computer Vision

OpenCV

• cvFindHomography()

• cvFindFundamentalMat()

• …

Page 29: CMPUT 412  3D Computer Vision

cvFindHomographyFinds perspective transformation between two planes void cvFindHomography( const CvMat* src_points, const CvMat* dst_points,

CvMat* homography ); src_points

Point coordinates in the original plane, 2xN, Nx2, 3xN or Nx3 array (the latter two are for representation in homogeneous coordinates), where N is the number of points.

dst_pointsPoint coordinates in the destination plane, 2xN, Nx2, 3xN or Nx3 array (the latter two are for

representation in homogeneous coordinates) homography

Output 3x3 homography matrix. The function cvFindHomography finds perspective transformation H=||hij|| between the

source and the destination planes: [x',,i,,] [x,,i,,] s,,i,,[y',,i,,]~H*[y,,i,,] [1 ] [ 1] So that the back-projection error is minimized: sum_i((x',,i,,-(h11*x,,i,, + h12*y,,i,, + h13)/(h31*x,,i,, + h32*y,,i,, + h33))^2^+ (y',,i,,-

(h21*x,,i,, + h22*y,,i,, + h23)/(h31*x,,i,, + h32*y,,i,, + h33))^2^) -> min The function is used to find initial intrinsic and extrinsic matrices. Homography matrix is determined up to a scale, thus it is normalized to make h33=1.