Top Banner
Review of Last Lectures CSE P576 Vitaly Ablavsky
40

Review of Last Lectures - courses.cs.washington.edu

Jan 05, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Review of Last Lectures - courses.cs.washington.edu

Review of Last Lectures

CSE P576Vitaly Ablavsky

Page 2: Review of Last Lectures - courses.cs.washington.edu

Mathematical Morphology

0.2[ Ritter and Wilson, Handbook of Computer Vision Algorithms in Image Algebra, 1996 ]

Page 3: Review of Last Lectures - courses.cs.washington.edu

Mathematical Morphology

0.3

Page 4: Review of Last Lectures - courses.cs.washington.edu

Mathematical Morphology

0.4

Page 5: Review of Last Lectures - courses.cs.washington.edu

Corner Detection Revisited

what’s the size of W?do all pixels contribute equally?

0.5

Page 6: Review of Last Lectures - courses.cs.washington.edu

Peak-finding: PracticalitiesA 1D example:

(Pdb) a2array([0, 1, 2, 3, 4, 5, 5, 5, 5, 4, 5, 4, 7, 6, 2])(Pdb) se2array([ 1.000, 1.000, 1.000])(Pdb) a2dse2 = ndimage.grey_dilation(a2, footprint=se2)(Pdb) a2dse2array([1, 2, 3, 4, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 6])(Pdb) a2peaks_se2 = np.where((a2dse2 - a2) == 0,1,0)(Pdb) a2peaks_se2array([0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0])(Pdb) a2peaks_skimg = skimage.feature.peak_local_max(a2,footprint=se2)(Pdb) a2peaks_skimgarray([[12],

[ 5],[ 6],[ 7],[ 8],[10]])

(Pdb) idx_1 = np.sort(a2peaks_skimg.flatten())(Pdb) idx_1array([ 5, 6, 7, 8, 10, 12])(Pdb) idx_0 = np.where(a2peaks_se2)(Pdb) idx_0(array([ 5, 6, 7, 8, 10, 12]),)(Pdb)

0.6

Page 7: Review of Last Lectures - courses.cs.washington.edu

Random Sampling Consensus (RANSAC)

[ Hartley and Zisserman, Ch. 4 ]0.7

Page 8: Review of Last Lectures - courses.cs.washington.edu

RANSAC: How Many Samples Are Needed?

0.8

Page 9: Review of Last Lectures - courses.cs.washington.edu

Epipolar GeometryCSE P576

Vitaly Ablavsky

These slides were developed by Dr. Matthew Brown for CSEP576 Spring 2020 and adapted (slightly) for Fall 2021 credit → Matt blame → Vitaly

Page 10: Review of Last Lectures - courses.cs.washington.edu

Epipolar Geometry• Epipolar Lines, Plane Constraint

• Fundamental Matrix, Linear solution

• RANSAC for F, 2-view SFM

2[ Szeliski Chapters 7+11]

Page 11: Review of Last Lectures - courses.cs.washington.edu

Correspondence• Find all matches between views

3

Page 12: Review of Last Lectures - courses.cs.washington.edu

Geometric Constraints• Find subset of matches that are consistent with a geometric

transformation

4

Consistent matches can be used for subsequent stages, e.g., 3D reconstruction, object recognition etc.

Page 13: Review of Last Lectures - courses.cs.washington.edu

2-view Geometry• How do we transfer points between 2 views?

5

(u1, v1) (u2, v2)?

Page 14: Review of Last Lectures - courses.cs.washington.edu

2-view Geometry• How do we transfer points between 2 views? (planar case)

6

(u1, v1) (u2, v2)

Planar case: one-to-one mapping via plane (Homography)

?

X<latexit sha1_base64="NIETpjtpXuzHajhPrtGJAy03bgk=">AAAB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0lEqMeiF48VTFtoQ9lsJ+3SzSbsboQS+hu8eFDEqz/Im//GbZuDtj4YeLw3w8y8MBVcG9f9dkobm1vbO+Xdyt7+weFR9fikrZNMMfRZIhLVDalGwSX6hhuB3VQhjUOBnXByN/c7T6g0T+SjmaYYxHQkecQZNVby+2FEuoNqza27C5B14hWkBgVag+pXf5iwLEZpmKBa9zw3NUFOleFM4KzSzzSmlE3oCHuWShqjDvLFsTNyYZUhiRJlSxqyUH9P5DTWehqHtjOmZqxXvbn4n9fLTHQT5FymmUHJlouiTBCTkPnnZMgVMiOmllCmuL2VsDFVlBmbT8WG4K2+vE7aV3XPrXsP17XmbRFHGc7gHC7BgwY04R5a4AMDDs/wCm+OdF6cd+dj2VpyiplT+APn8wc4FI5I</latexit><latexit sha1_base64="NIETpjtpXuzHajhPrtGJAy03bgk=">AAAB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0lEqMeiF48VTFtoQ9lsJ+3SzSbsboQS+hu8eFDEqz/Im//GbZuDtj4YeLw3w8y8MBVcG9f9dkobm1vbO+Xdyt7+weFR9fikrZNMMfRZIhLVDalGwSX6hhuB3VQhjUOBnXByN/c7T6g0T+SjmaYYxHQkecQZNVby+2FEuoNqza27C5B14hWkBgVag+pXf5iwLEZpmKBa9zw3NUFOleFM4KzSzzSmlE3oCHuWShqjDvLFsTNyYZUhiRJlSxqyUH9P5DTWehqHtjOmZqxXvbn4n9fLTHQT5FymmUHJlouiTBCTkPnnZMgVMiOmllCmuL2VsDFVlBmbT8WG4K2+vE7aV3XPrXsP17XmbRFHGc7gHC7BgwY04R5a4AMDDs/wCm+OdF6cd+dj2VpyiplT+APn8wc4FI5I</latexit><latexit sha1_base64="NIETpjtpXuzHajhPrtGJAy03bgk=">AAAB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0lEqMeiF48VTFtoQ9lsJ+3SzSbsboQS+hu8eFDEqz/Im//GbZuDtj4YeLw3w8y8MBVcG9f9dkobm1vbO+Xdyt7+weFR9fikrZNMMfRZIhLVDalGwSX6hhuB3VQhjUOBnXByN/c7T6g0T+SjmaYYxHQkecQZNVby+2FEuoNqza27C5B14hWkBgVag+pXf5iwLEZpmKBa9zw3NUFOleFM4KzSzzSmlE3oCHuWShqjDvLFsTNyYZUhiRJlSxqyUH9P5DTWehqHtjOmZqxXvbn4n9fLTHQT5FymmUHJlouiTBCTkPnnZMgVMiOmllCmuL2VsDFVlBmbT8WG4K2+vE7aV3XPrXsP17XmbRFHGc7gHC7BgwY04R5a4AMDDs/wCm+OdF6cd+dj2VpyiplT+APn8wc4FI5I</latexit><latexit sha1_base64="NIETpjtpXuzHajhPrtGJAy03bgk=">AAAB7HicbVBNS8NAEJ3Ur1q/qh69LBbBU0lEqMeiF48VTFtoQ9lsJ+3SzSbsboQS+hu8eFDEqz/Im//GbZuDtj4YeLw3w8y8MBVcG9f9dkobm1vbO+Xdyt7+weFR9fikrZNMMfRZIhLVDalGwSX6hhuB3VQhjUOBnXByN/c7T6g0T+SjmaYYxHQkecQZNVby+2FEuoNqza27C5B14hWkBgVag+pXf5iwLEZpmKBa9zw3NUFOleFM4KzSzzSmlE3oCHuWShqjDvLFsTNyYZUhiRJlSxqyUH9P5DTWehqHtjOmZqxXvbn4n9fLTHQT5FymmUHJlouiTBCTkPnnZMgVMiOmllCmuL2VsDFVlBmbT8WG4K2+vE7aV3XPrXsP17XmbRFHGc7gHC7BgwY04R5a4AMDDs/wCm+OdF6cd+dj2VpyiplT+APn8wc4FI5I</latexit>

Page 15: Review of Last Lectures - courses.cs.washington.edu

2-view Geometry• How do we transfer points between 2 views? (non-planar)

7

(u1, v1) (u2, v2)

X?X?

X?

Non-planar case: depends on the depth of the 3D point

?

Page 16: Review of Last Lectures - courses.cs.washington.edu

Epipolar Line• How do we transfer points between 2 views? (non-planar)

8

(u1, v1) (u2, v2)?

X?X?

X?

A point in image 1 gives a line in image 2

Page 17: Review of Last Lectures - courses.cs.washington.edu

Epipolar Lines from F• What is the equation of the epipolar line for point x?

8.1

Page 18: Review of Last Lectures - courses.cs.washington.edu

Epipolar Lines

9

10 Engineering Part IIB 4F12 Computer Vision

Epipolar geometry examples

Converging cameras

O /Oe /e

Epipolar lines3 corner featuresin left image in right image

Epipolar linesin left image

3 corner featuresin right image

10 Engineering Part IIB 4F12 Computer Vision

Epipolar geometry examples

Converging cameras

O /Oe /e

Epipolar lines3 corner featuresin left image in right image

Epipolar linesin left image

3 corner featuresin right image

10 Engineering Part IIB 4F12 Computer Vision

Epipolar geometry examples

Converging cameras

O /Oe /e

Epipolar lines3 corner featuresin left image in right image

Epipolar linesin left image

3 corner featuresin right image

10 Engineering Part IIB 4F12 Computer Vision

Epipolar geometry examples

Converging cameras

O /Oe /e

Epipolar lines3 corner featuresin left image in right image

Epipolar linesin left image

3 corner featuresin right image

[ R. Cipolla ]

Page 19: Review of Last Lectures - courses.cs.washington.edu

Epipolar Lines

10

Stereo Vision 11

Epipolar geometry examples

Near parallel cameras

O /

e /

Oat infinity

e at infinity

3 corner featuresin right image

Epipolar linesin left image

Epipolar linesin right image

3 corner featuresin left image

Stereo Vision 11

Epipolar geometry examples

Near parallel cameras

O /

e /

Oat infinity

e at infinity

3 corner featuresin right image

Epipolar linesin left image

Epipolar linesin right image

3 corner featuresin left image

Stereo Vision 11

Epipolar geometry examples

Near parallel cameras

O /

e /

Oat infinity

e at infinity

3 corner featuresin right image

Epipolar linesin left image

Epipolar linesin right image

3 corner featuresin left image

Stereo Vision 11

Epipolar geometry examples

Near parallel cameras

O /

e /

Oat infinity

e at infinity

3 corner featuresin right image

Epipolar linesin left image

Epipolar linesin right image

3 corner featuresin left image

[ R. Cipolla ]

Page 20: Review of Last Lectures - courses.cs.washington.edu

Focus of Expansion

[ Hartley and Zisserman, Ch. 9 ]

forward motion

10.1

Page 21: Review of Last Lectures - courses.cs.washington.edu

The Epipolar Constraint• For rays to intersect at a point (X), the two rays and the

camera translation must lie in the same plane

Appendix A. Multiple View Geometry 129

Figure A.5: The epipolar constraint expresses the fact that the two camera centresand the 3D point lie in the same plane (the epipolar plane). Hence the scalar tripleproduct pT

1 (t⇥ p2) is equal to zero.

describes the motion between points that are (infinitely) far from both camera centres

(see appendix A.6). If the camera centres are coincident, this homography describes

the motion of all points. The elements of H are typically linearised to facilitate linear

solution by SVD.

A.5.2 Epipolar geometry

In the general case of moving cameras a point viewed in one image defines a line in the

second, corresponding to a continuous range of possible depths for that point. Hence

there is a point to line mapping between images. Consider a point X viewed in a pair

of images

x̃1 = Xc1 X = R1Xc1 + t1 (A.28)

x̃2 = Xc2 X = R2Xc2 + t2 (A.29)

The homogeneous coordinates x̃ are related to the normalised ray directions x̂ via the

unknown depths s

[ Szeliski 11.3 ] 11

Page 22: Review of Last Lectures - courses.cs.washington.edu

Epipolar geometry: geometric and algebraic derivations

11.1

Page 23: Review of Last Lectures - courses.cs.washington.edu

Computing F• Single correspondence gives us one equation

12

u1x1f11 + u1y1f12 + u1f13 + v1x1f21 + v1y1f22

+v1f23 + x1f31 + y1f32 + f33 = 0

⇥u1 v1 1

⇤2

4f11 f12 f13f21 f22 f23f31 f32 f33

3

5

2

4x1

y11

3

5 = 0

<latexit sha1_base64="3MYAfGFbZ85tQXRLYkM907s7qUg=">AAACs3ichZFNT9wwEIadUL7SQhc4crG6KuppFSdUcEFC7aVHkNgFabMKjjNZLBwnsh3EKsof5Nhb/02dsBFlQepIHr2aZ0YznklKwbXx/T+Ou/ZhfWNza9v7+Gln9/Ngb3+ii0oxGLNCFOomoRoElzA23Ai4KRXQPBFwndz/bPn1AyjNC3llFiXMcjqXPOOMGhuKB09elMCcyzrJqVH8sfGqmOAj/NB5TLwIZPoCV5OzuCaksZmtCHoRNlHUoqBHQY+CHoU9CnsUhs1/mj3GxBYvOr862Jnnx4OhP/I7w28FWYohWtpFPPgdpQWrcpCGCar1lPilmdVUGc4E2P6VhpKyezqHqZWS5qBndbfzBn+1kRRnhbJPGtxF/62oaa71Ik9spp3xTq+yNvgem1YmO53VXJaVAcmeG2WVwKbA7QFxyhUwIxZWUKa4nRWzO6ooM/bMnl0CWf3yWzEJRsQfkcvj4fmP5Tq20CH6gr4hgk7QOfqFLtAYMcd3Jk7s3Lrf3ambuOlzqussaw7QK3Pzv55Szeg=</latexit><latexit sha1_base64="3MYAfGFbZ85tQXRLYkM907s7qUg=">AAACs3ichZFNT9wwEIadUL7SQhc4crG6KuppFSdUcEFC7aVHkNgFabMKjjNZLBwnsh3EKsof5Nhb/02dsBFlQepIHr2aZ0YznklKwbXx/T+Ou/ZhfWNza9v7+Gln9/Ngb3+ii0oxGLNCFOomoRoElzA23Ai4KRXQPBFwndz/bPn1AyjNC3llFiXMcjqXPOOMGhuKB09elMCcyzrJqVH8sfGqmOAj/NB5TLwIZPoCV5OzuCaksZmtCHoRNlHUoqBHQY+CHoU9CnsUhs1/mj3GxBYvOr862Jnnx4OhP/I7w28FWYohWtpFPPgdpQWrcpCGCar1lPilmdVUGc4E2P6VhpKyezqHqZWS5qBndbfzBn+1kRRnhbJPGtxF/62oaa71Ik9spp3xTq+yNvgem1YmO53VXJaVAcmeG2WVwKbA7QFxyhUwIxZWUKa4nRWzO6ooM/bMnl0CWf3yWzEJRsQfkcvj4fmP5Tq20CH6gr4hgk7QOfqFLtAYMcd3Jk7s3Lrf3ambuOlzqussaw7QK3Pzv55Szeg=</latexit><latexit sha1_base64="3MYAfGFbZ85tQXRLYkM907s7qUg=">AAACs3ichZFNT9wwEIadUL7SQhc4crG6KuppFSdUcEFC7aVHkNgFabMKjjNZLBwnsh3EKsof5Nhb/02dsBFlQepIHr2aZ0YznklKwbXx/T+Ou/ZhfWNza9v7+Gln9/Ngb3+ii0oxGLNCFOomoRoElzA23Ai4KRXQPBFwndz/bPn1AyjNC3llFiXMcjqXPOOMGhuKB09elMCcyzrJqVH8sfGqmOAj/NB5TLwIZPoCV5OzuCaksZmtCHoRNlHUoqBHQY+CHoU9CnsUhs1/mj3GxBYvOr862Jnnx4OhP/I7w28FWYohWtpFPPgdpQWrcpCGCar1lPilmdVUGc4E2P6VhpKyezqHqZWS5qBndbfzBn+1kRRnhbJPGtxF/62oaa71Ik9spp3xTq+yNvgem1YmO53VXJaVAcmeG2WVwKbA7QFxyhUwIxZWUKa4nRWzO6ooM/bMnl0CWf3yWzEJRsQfkcvj4fmP5Tq20CH6gr4hgk7QOfqFLtAYMcd3Jk7s3Lrf3ambuOlzqussaw7QK3Pzv55Szeg=</latexit><latexit sha1_base64="3MYAfGFbZ85tQXRLYkM907s7qUg=">AAACs3ichZFNT9wwEIadUL7SQhc4crG6KuppFSdUcEFC7aVHkNgFabMKjjNZLBwnsh3EKsof5Nhb/02dsBFlQepIHr2aZ0YznklKwbXx/T+Ou/ZhfWNza9v7+Gln9/Ngb3+ii0oxGLNCFOomoRoElzA23Ai4KRXQPBFwndz/bPn1AyjNC3llFiXMcjqXPOOMGhuKB09elMCcyzrJqVH8sfGqmOAj/NB5TLwIZPoCV5OzuCaksZmtCHoRNlHUoqBHQY+CHoU9CnsUhs1/mj3GxBYvOr862Jnnx4OhP/I7w28FWYohWtpFPPgdpQWrcpCGCar1lPilmdVUGc4E2P6VhpKyezqHqZWS5qBndbfzBn+1kRRnhbJPGtxF/62oaa71Ik9spp3xTq+yNvgem1YmO53VXJaVAcmeG2WVwKbA7QFxyhUwIxZWUKa4nRWzO6ooM/bMnl0CWf3yWzEJRsQfkcvj4fmP5Tq20CH6gr4hgk7QOfqFLtAYMcd3Jk7s3Lrf3ambuOlzqussaw7QK3Pzv55Szeg=</latexit>

• Multiply out

Page 24: Review of Last Lectures - courses.cs.washington.edu

Computing F• Rearrange for unknowns, add points by stacking rows

13

[ u1x1 u1y1 u1 v1x1 v1y1 v1 x1 y1 1 ][ u2x2 u2y2 u2 v2x2 v2y2 v2 x2 y2 1 ][ u3x3 u3y3 u3 v3x3 v3y3 v3 x3 y3 1 ][ u4x4 u4y4 u4 v4x4 v4y4 v4 x4 y4 1 ][ u5x5 u5y5 u5 v5x5 v5y5 v5 x5 y5 1 ][ u6x6 u6y6 u6 v6x6 v6y6 v6 x6 y6 1 ][ u7x7 u7y7 u7 v7x7 v7y7 v7 x7 y7 1 ][ u8x8 u8y8 u8 v8x8 v8y8 v8 x8 y8 1 ]

2

6666666666664

f11f12f13f21f22f23f31f 32

f33

3

7777777777775

2

66666666664

00000000

3

77777777775

=

• This is a linear system of the form Af = 0can be solved using Singular Value Decomposition (SVD)

Page 25: Review of Last Lectures - courses.cs.washington.edu

Epipolar Geometry• Example: 2-view matching in 3D

14

Page 26: Review of Last Lectures - courses.cs.washington.edu

Epipolar Geometry• Raw SIFT matches

15

Page 27: Review of Last Lectures - courses.cs.washington.edu

Epipolar Geometry• Epipolar lines

16

Can use RANSAC to find inliers with small distance from epipolar line

? ✘

Page 28: Review of Last Lectures - courses.cs.washington.edu

Epipolar Geometry• Consistent matches

17

Page 29: Review of Last Lectures - courses.cs.washington.edu

RANSAC for F1. Match Features between 2 views2. Randomly select set of 8 matches3. Compute F using 8-point algorithm (SVD to solve Af=0)4. Check consistency of all points with F, compute distances to

epipolar lines and count #inliers with distance < threshold5. Repeat steps 2-4 to maximise #inliers

18

Page 30: Review of Last Lectures - courses.cs.washington.edu

RANSAC for F

20

Raw feature matches (after ratio test filtering)

Solved for F and RANSAC inliers

Page 31: Review of Last Lectures - courses.cs.washington.edu

2-view Structure from Motion• We can use the combination of SIFT/RANSAC and

triangulation to compute 3D structure from 2 views

21

K1,R1, t1 K2,R2, t2

X

u1

u2

Raw SIFT matches

RANSAC for F

Triangulate to 3D Point CloudExtract R, t

Page 32: Review of Last Lectures - courses.cs.washington.edu

Cameras from F• The Fundamental matrix is derived from the cameras

22

uT2 K

�T2 RT

2 (t2 � t1)⇥R1K�11 u1 = 0

K1,R1, t1 K2,R2, t2

FCan we invert it to get the cameras from F?

Page 33: Review of Last Lectures - courses.cs.washington.edu

Cameras from F• First simplify by writing in terms of relative translation/

rotation and assume

23

E = [t]⇥R can be solved for t, R [Szeliski p350]

R, t

K1,K2 are known

Page 34: Review of Last Lectures - courses.cs.washington.edu

5 Point Algorithm• Instead of using the 8 point algorithm to solve for F, we can

directly solve for R and t using only 5 correspondences

• This involves solving a 10th degree polynomial [Nister 2004]

• Often we can guess the focal length (e.g., guess field of view),and solve for it later using bundle adjustment

24

R, t

Page 35: Review of Last Lectures - courses.cs.washington.edu

Triangulation

25K1,R1, t1 K2,R2, t2

Given cameras and corresponding

points...

...we can triangulateto find the 3D point

X

u1

u2

Page 36: Review of Last Lectures - courses.cs.washington.edu

Triangulation

26K1,R1, t1 K2,R2, t2

With real feature detections,

rays do not intersect exactly

X

u1

u2

“true point”

feature measurement

m1

m2

1

m1

m2

1

projection

Page 37: Review of Last Lectures - courses.cs.washington.edu

Triangulation • We can solve for the 3D point X by minimising the closest

approach of the rays in 3D (linear), or better find an X suchthat image measurement errors are minimised (non-linear)

27[ Szeliski 7.1 ]

Page 38: Review of Last Lectures - courses.cs.washington.edu

Recap: 2-view Geometry• Planar geometry: one to one mapping of points

28

full 3D

u = Hx viewing a plane, rotation

Page 39: Review of Last Lectures - courses.cs.washington.edu

uTFx = 0

Recap: 2-view Geometry• Epipolar (3D) geometry: point to line mapping

29

moving camera, 3D scene

Page 40: Review of Last Lectures - courses.cs.washington.edu

Next Lecture• Multiview alignment, structure from motion

30