69
Vision Algorithms for Mobile Robotics Lecture 02 Image Formation Davide Scaramuzza http://rpg.ifi.uzh.ch 1

Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Vision Algorithms for Mobile Robotics

Lecture 02 Image Formation

Davide Scaramuzzahttp://rpg.ifi.uzh.ch

1

Page 2: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Lab Exercise 1 - This afternoon

Implement an augmented reality wireframe cube and practice the perspective projection

2

Page 3: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Today’s Outline

• Image Formation• Other camera parameters• Digital camera• Perspective camera model• Lens distortion

3

Page 4: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Historical context

• Pinhole model: Mozi (470-390 BCE), Aristotle (384-322 BCE)

• Principles of optics (including lenses): Alhacen (965-1039)

• Camera obscura: Leonardo da Vinci (1452-1519), Johann Zahn (1631-1707)

• First photo (heliography): Joseph Nicephore Niepce (1822)

• Daguerréotypes (1839)

• Photographic film (Eastman, 1888, founder of Kodak)

• Cinema (Lumière Brothers, 1895)

• Color Photography (Lumière Brothers, 1908)

• Television (Baird, Farnsworth, Zworykin, 1920s)

• First consumer camera with CCD: Sony Mavica (1981)

• First fully digital camera: Kodak DCS100 (1990)

4

First surviving photo ever: “View from the Window at Le Gras”, by Niepce, 1827

CCD chip

Alhacen’s notes

Page 5: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

How to form an image

5

• Would this work?

filmobject

Page 6: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Camera obscura

6

object barrier film

• Add a barrier to block off most of the rays• This reduces blurring• The opening is known as the aperture

Page 7: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Home-made camera obscura

• Image is inverted

• Depth of the room is the focal length

• How can we reduce the blur?

7How to build a camera obscura at home (link)

Page 8: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Effects of the Aperture Size

• A large aperture makes the image blurry because multiple rays of light are let through from each world’s point

8

Page 9: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Effects of the Aperture Size

• Shrinking the aperture makes the image sharper• The ideal aperture is a pinhole that only lets through one ray of light from

each world’s point

9

Page 10: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Why not make the aperture as small as possible?

10

• With small apertures, less light gets through → must increase exposure time

• If aperture gets too small, diffraction effects start to appear

Page 11: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Image formation using a converging lens

• A lens focuses light onto the film satisfying two properties:

11

filmobject Lens

Optical Axis

Page 12: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Image formation using a converging lens

• A lens focuses light onto the film satisfying two properties:1. Rays passing through the Optical Center are not deviated

12

Film (image plane)object Lens

Optical Axis

Optical center

Page 13: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Image formation using a converging lens

• A lens focuses light onto the film satisfying two properties:1. Rays passing through the Optical Center are not deviated2. All rays parallel to the Optical Axis converge at the Focal Point

13

Lens

Focal Point

fFocal Length:

Optical Axis

Page 14: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Thin lens equation

14

• Find a relationship between 𝑓𝑓, 𝑍𝑍, and 𝑒𝑒

Object Lens

Focal Point

Image

B

A

Z e

f

Page 15: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Thin lens equation

15

• Find a relationship between 𝑓𝑓, 𝑍𝑍, and 𝑒𝑒

Focal Point

Image

B

A

Z e

f

Similar Triangles:

Ze

AB=

Object Lens

Page 16: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Thin lens equation

16

• Find a relationship between 𝑓𝑓, 𝑍𝑍, and 𝑒𝑒

Focal Point

Image

B

A

Z e

f

A Ze

AB=

ffe

AB −= 1−=

fe eZfZ

efe 1111 +=⇒=−

“Thin lens equation”

Any object point satisfying this equation is in focus Can I use this to measure distances?

Similar Triangles:Object Lens

Page 17: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

“In focus”

• For a given point on the object, there is a specific distance between the lens and the film, at which the object appears in focus in the image

• Other points project to a blur circle in the image

17

LensObject

f

Optical AxisFocal Point

Blur Circle or Circle of Confusion

Image plane

Page 18: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Blur Circle

• The blur circle has radius: 𝑹𝑹 = 𝑳𝑳𝜹𝜹/(𝟐𝟐𝟐𝟐)• Observe how both small aperture (𝑳𝑳) and 𝜹𝜹 yield a small blur circle (𝑹𝑹)• To capture a sharp image, we must adjust camera settings such that R remains

smaller than the 1 pixel

18

eLR2δ

=

LensObject

f

Focal Point

Blur Circle

Image plane

L

δ

Focal Plane

e

Optical Axis

Page 19: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

The Pin-hole approximation

• What happens if 𝑧𝑧 ≫ 𝑓𝑓 and 𝑧𝑧 ≫ 𝐿𝐿 ?

1919

f

Focal Point

Focal Plane

Z e

LensObject

Page 20: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

The Pin-hole approximation

• What happens if 𝑧𝑧 ≫ 𝑓𝑓 and 𝑧𝑧 ≫ 𝐿𝐿 ?

2020

f

Focal Point

Z e

LensObject

Focal Plane

Page 21: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

The Pin-hole approximation

• What happens if 𝑧𝑧 ≫ 𝑓𝑓 and 𝑧𝑧 ≫ 𝐿𝐿 ?

• We observe that

2121

f

Focal Point

Z e

ezf111

+= ⇒≈⇒≈⇒ 11 efef

0≅

focal plane approaches the focal point

LensObject

Focal Plane

Page 22: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

The Pin-hole approximation

• This is known as Pinhole Approximation • The relation between the image and object becomes:• This is called Perspective Projection

2222

Focal Point

Focal Plane

Z

Object

fe =

COptical Centeror

Center of Projection

ZXfx

Zf

Xx

−=⇒=−

𝑥𝑥

𝑋𝑋

Page 23: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective effects

• Far away objects appear smaller, with size inversely proportional to distance

23

Page 24: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective can be used as a prior

• Perspective gives us very strong depth cues and, thanks to experience (e.g., Manhattan world assumption), we can perceive a 3D scene by viewing its 2D representation (i.e. the image)

24

Page 25: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Playing with Perspective: the Ames room

• However, our perception of a 3D scene can be fooled. An example is the Ames room (btw, check out the Ames room in the Technorama science museum in Winterthur)

25

Ames room documentary by neuroscientist Dr. V.S. Ramachandran:

https://youtu.be/Ttd0YjXF0no

Page 26: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection: what is preserved or lost?

• Straight lines are still straight• Lengths and angles are not preserved

26

Perpendicularity is lost

Parallelism is lost

Page 27: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Vanishing points and lines

• Parallel lines intersect at a “vanishing point” in the image• Parallel planes intersect at a “vanishing line” in the image• Notice that vanishing points can fall both inside or outside the image

27

Vanishingpoint

Vanishingline

Vanishingpoint

Vertical vanishingpoint

(at infinity)

Page 28: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Today’s Outline

• Image Formation• Other camera parameters• Digital camera• Perspective camera model• Lens distortion

28

Page 29: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Focus and Depth of Field

• Depth of Field is the distance between the nearest and farthest objects in a scene that appear acceptably sharp in an image

29

Depth of field

Page 30: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Focus and Depth of Field

• A smaller aperture increases the depth of field but reduces the amount of light into the camera

30What is the depth of field of an ideal pinhole camera?

Page 31: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Field of View (FOV)

• The FOV is the angular portion of 3D scene seen by the camera

31

Page 32: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Field of View (FOV)

• As focal length 𝑓𝑓 gets smaller, image becomes more wide angle

• As focal length 𝑓𝑓 gets larger, image becomes more narrow angle

• Relation between field of view, 𝜃𝜃, image size, 𝑊𝑊, and focal length, 𝑓𝑓:

32

tan𝜃𝜃2

=𝑊𝑊2𝑓𝑓

→ 𝑓𝑓 =𝑊𝑊2

tan𝜃𝜃2

−1

𝜃𝜃/2𝑊𝑊/2

𝑓𝑓

Page 33: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Today’s Outline

• Image Formation• Other camera parameters• Digital camera• Perspective camera model• Lens distortion

33

Page 34: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Digital camera

• In a digital camera the film is a array of CCD or CMOS photodiodes that convert photons (light energy) into electrons

34

Page 35: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Digital images

35

im[176][201] has value 164 im[194][203] has value 37

width 640j=1

height480

i=1Pixel Intensity with 8 bits ranges between [0,255]

NB. Matlab coordinates: [rows, cols]; C/C++ [cols, rows]

Page 36: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Color sensing in digital cameras

• The Bayer pattern (invented by Bayer in 1976, who worked at Kodak) places interleaved RGB filters over the pixel array

• The reason why the number of green filters is twice as that of red and blue ones is because the luminance signal is mostly determined by green values and the human visual system is much more sensitive to spatial differences in luminance than in chrominance.

36

Bayer grid

For each pixel, the missing color components can be estimated from neighboring values

by interpolation (demosaicing)

Page 37: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Color sensing in digital cameras

37R G B

RGB color space

… but there are also many other color spaces… (e.g., YUV)

Page 38: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Rolling vs Global Shutter Camera

38

Global Shutter• All pixels are exposed simultaneously• No distortion of moving objects• More costly

Rolling Shutter• Rows of pixels are exposed and read at different

times, one after the other• May distort (skew) moving objects• Cheap

Page 39: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Rolling vs Global Shutter Camera

• Rolling Shutter cameras may distort (skew) moving objects• Global Shutter cameras do not have this problem

39Rolling shutter Global shutter

Page 40: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Cool application of rolling shutter cameras

• High speed wave-form capturing from a guitar

40

Recorded from an iPhone 4 (rolling shutter):https://youtu.be/TKF6nFzpHBU

Page 41: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

An example camera datasheet

41

Nano-drone of my lab equipped with this camera

Page 42: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Today’s Outline

• Image Formation• Other camera parameters• Digital camera• Perspective camera model• Lens distortion

42

Page 43: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Camera

Nomenclature:

• C = optical center = center of the lens= center of projection

• Xc, Yc, Zc= axes of the camera reference frame• Zc = optical axis• O = principal point

= intersection of optical axis and image plane

43Image plane

Pc

C

O

Zc

fp

Xc

Yc

Page 44: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Camera

• Note that a camera does not measure distances but angles. • So, we call it a “bearing sensor”

44Image plane

Pc

C

O

ϕ

Zc

f

Xc

Yc

p

Page 45: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Camera

• For convenience, the image plane is usually represented in front of the lens, 𝑪𝑪, such that the image preserves the same orientation (i.e. not flipped)

45

Pc

O

p

Zc

f

C Xc

Yc

Image plane

Page 46: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

From World to Pixel coordinates

Goal: Find pixel coordinates (𝒖𝒖,𝒗𝒗) of the projection of world point 𝑷𝑷𝑾𝑾 onto the image plane:• Convert world point 𝑃𝑃𝑊𝑊 to camera point 𝑃𝑃𝐶𝐶 through rigid body transformation [𝑅𝑅,𝑇𝑇]• Convert 𝑃𝑃𝐶𝐶 to image-plane coordinates (𝑥𝑥,𝑦𝑦)• Convert (𝑥𝑥,𝑦𝑦) to (discretized) pixel coordinates (𝑢𝑢, 𝑣𝑣)

46

[𝑹𝑹|𝑻𝑻]

W

Zw

Yw

Xw

= 𝑹𝑹𝑷𝑷𝒘𝒘 + 𝑻𝑻

C = optical center = center of the lens

Image plane

Pc

C

O

p

Zc

f

O = principal point

Zc = optical axis

Xc

Yc

u

vx

y

Page 47: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection – 1/4

From the Camera frame to the image plane coordinates (𝒙𝒙,𝒚𝒚)

• The Camera point Pc=[Xc , 0 , Zc ]T projects to 𝑝𝑝 = (𝑥𝑥,𝑦𝑦) onto the image plane

• From similar triangles:

• Similarly, for 𝑦𝑦:

47

c

c

c

c

ZfXx

ZX

fx

=⇒=

c

c

c

c

ZfYy

ZY

fy

=⇒=

Image Planef

Pc=[Xc , 0 , Zc ]T

C

p

xXc

Xc

Zc

O

Page 48: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection – 2/4

From image plane coordinates (𝒙𝒙,𝒚𝒚) to pixel coordinates (𝒖𝒖,𝒗𝒗)• Let 𝑂𝑂 = (𝑢𝑢0,𝑣𝑣0) be the pixel coordinates of the camera optical center• Let 𝑘𝑘𝑢𝑢,𝑘𝑘𝑣𝑣 be the pixel conversion factors (inverse of the pixel-size along 𝑥𝑥 and 𝑦𝑦)

48

𝑢𝑢 = 𝑢𝑢0 + 𝑘𝑘𝑢𝑢𝑥𝑥 → 𝑢𝑢 = 𝑢𝑢0 + 𝑘𝑘𝑢𝑢𝑓𝑓𝑋𝑋𝐶𝐶𝑍𝑍𝐶𝐶

𝑣𝑣 = 𝑣𝑣0 + 𝑘𝑘𝑣𝑣𝑦𝑦 → 𝑣𝑣 = 𝑣𝑣0 + 𝑘𝑘𝑣𝑣𝑓𝑓𝑌𝑌𝐶𝐶𝑍𝑍𝐶𝐶

Ov

(0,0) u

(u0,v0) x

y p

Image plane

Page 49: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection – 2/4

From image plane coordinates (𝒙𝒙,𝒚𝒚) to pixel coordinates (𝒖𝒖,𝒗𝒗)• Let 𝑂𝑂 = (𝑢𝑢0,𝑣𝑣0) be the pixel coordinates of the camera optical center• Let 𝑘𝑘𝑢𝑢,𝑘𝑘𝑣𝑣 be the pixel conversion factors (inverse of the pixel-size along 𝑥𝑥 and 𝑦𝑦)

49

Ov

(0,0) u

(u0,v0) x

y p

Image plane

𝑢𝑢 = 𝑢𝑢0 + 𝑘𝑘𝑢𝑢𝑥𝑥 → 𝑢𝑢 = 𝑢𝑢0 + 𝛼𝛼𝑢𝑢𝑋𝑋𝐶𝐶𝑍𝑍𝐶𝐶

𝑣𝑣 = 𝑣𝑣0 + 𝑘𝑘𝑣𝑣𝑦𝑦 → 𝑣𝑣 = 𝑣𝑣0 + 𝛼𝛼𝑣𝑣𝑌𝑌𝐶𝐶𝑍𝑍𝐶𝐶

Focal lengths (expressed in pixels)

Page 50: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection – 3/4

• Use Homogeneous Coordinates for linear mapping from 3D to 2D:

• Using matrix form and homogeneous coordinates, the perspective projection becomes:

50

=

vu

p

=

=

1~~~

~ vu

wvu

p λ

=

c

c

c

v

u

ZYX

vu

vu

1000

0

10

0

αα

λ

This matrix is called “Calibration matrix” or “Intrinsic Parameter Matrix” and is often denoted as 𝑲𝑲

In the past it was common to assume a skew factor (𝐾𝐾12 ≠ 0) to account for possible skew in the pixel manufacturing process. However, the camera manufacturing process today is so good that we can safely assume 𝐾𝐾12 = 0 and 𝛼𝛼𝑢𝑢= 𝛼𝛼𝑣𝑣 (i.e., square pixels).

Page 51: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection – 3/4

• Use Homogeneous Coordinates for linear mapping from 3D to 2D:

• Using matrix form and homogeneous coordinates, the perspective projection becomes:

51

=

vu

p

=

=

1~~~

~ vu

wvu

p λ

Compact form

=

c

c

c

ZYX

Kvu

Page 52: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Exercise 1

• Determine the Intrinsic Parameter Matrix (𝑲𝑲) of a digital camera with an image size 640 × 480 pixels and a horizontal field of view of 90°

• Assume square pixels and the principal point be the center of the diagonals• What is the vertical field of view?

• What’s the projection on the image plane of Pc = 1, 1, 2 T

52

Page 53: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Exercise 1 - Solution

• Recall: tan 𝜃𝜃2

= 𝑊𝑊2𝛼𝛼

→ 𝛼𝛼 = 𝑊𝑊2

tan 𝜃𝜃2

−1= 640

2 tan𝜋𝜋/22

= 320 [𝑝𝑝𝑝𝑝𝑥𝑥𝑝𝑝𝑝𝑝𝑝𝑝]

→ 𝛼𝛼𝑢𝑢 = 𝛼𝛼𝑣𝑣 = 𝛼𝛼 = 320 𝑝𝑝𝑝𝑝𝑥𝑥𝑝𝑝𝑝𝑝𝑝𝑝 (because pixels are square)

• Because the Principal Point is center of the diagonals → 𝑂𝑂 = 𝑢𝑢0,𝑣𝑣0 = 6402

, 4802

= (320 , 240)

• Vertical FOV: 𝜃𝜃𝑉𝑉 = 2 tan−1 𝐻𝐻2𝛼𝛼

= 2 tan−1 4802�320

= 73.74°

53

=

10024032003200320

K→

𝜃𝜃/2𝑊𝑊/2

𝛼𝛼

Page 54: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Exercise 1 - Solution

• What’s the projection on the image plane of Pc = 1, 1, 2 T

• Solution 1 (using Perspective Projection Equation in plane form)

• Solution 2 (using Perspective Projection Equation in matrix form)

54

𝑢𝑢 = 𝑢𝑢0 + 𝛼𝛼𝑋𝑋𝐶𝐶𝑍𝑍𝐶𝐶

= 320 + 320�12

= 480 [𝑝𝑝𝑝𝑝𝑥𝑥𝑝𝑝𝑝𝑝𝑝𝑝]

𝑣𝑣 = 𝑣𝑣0 + 𝛼𝛼𝑌𝑌𝐶𝐶𝑍𝑍𝐶𝐶

= 240 + 320�12

= 400 [𝑝𝑝𝑝𝑝𝑥𝑥𝑝𝑝𝑝𝑝𝑝𝑝]

=

=

2800960

211

100

24032003200320

λλλ

vu 𝑢𝑢 =

9602

= 480 [𝑝𝑝𝑝𝑝𝑥𝑥𝑝𝑝𝑝𝑝𝑝𝑝]

𝑣𝑣 =800

2= 400 [𝑝𝑝𝑝𝑝𝑥𝑥𝑝𝑝𝑝𝑝𝑝𝑝]

Page 55: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Exercise 2

• Prove that world’s parallel lines intersect at a vanishing point in the camera image

55

Vanishingpoint

Vanishingpoint

Vertical vanishingpoint

(at infinity)

Page 56: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Exercise 2 - Solution

• World’s parallel lines with direction 𝑝𝑝,𝑚𝑚,𝑛𝑛 , passing through (𝑋𝑋0,𝑌𝑌0,𝑍𝑍0), are described by these equations:

• Let’s consider the perspective projection equation in plane form:

• Substitute line equations into the perspective projection equation and compute limit for 𝑝𝑝 → ∞

• These are the image coordinates of the vanishing point. Notice that they only depend on the line direction.

56

𝑢𝑢 = 𝑢𝑢0 + 𝛼𝛼 𝑋𝑋𝑍𝑍

, 𝑣𝑣 = 𝑣𝑣0 + 𝛼𝛼 𝑌𝑌𝑍𝑍

lim𝑠𝑠→∞

𝑢𝑢0 + 𝛼𝛼 𝑋𝑋0+𝑠𝑠𝑠𝑠𝑍𝑍0+𝑠𝑠𝑠𝑠

= 𝑢𝑢0+ 𝛼𝛼 𝑠𝑠𝑠𝑠

, lim𝑠𝑠→∞

𝑣𝑣0 + 𝛼𝛼 𝑌𝑌0+𝑠𝑠𝑠𝑠𝑍𝑍0+𝑠𝑠𝑠𝑠

= 𝑣𝑣0+ 𝛼𝛼 𝑠𝑠𝑠𝑠

𝑋𝑋 = 𝑋𝑋0 + 𝑝𝑝𝑝𝑝𝑌𝑌 = 𝑌𝑌0 + 𝑝𝑝𝑚𝑚𝑍𝑍 = 𝑍𝑍0 + 𝑝𝑝𝑛𝑛

Page 57: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Exercise 2 - Solution

• You can verify that the solution satisfies this matrix equation. Can you show it geometrically?

57

=

nml

vu

vu

1000

0

0

0

αα

λλλ

Page 58: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Perspective Projection – 4/4

From the World frame to the Camera frame

58

+

=

3

2

1

333231

232221

131211

ttt

ZYX

rrrrrrrrr

ZYX

w

w

w

c

c

c

Pc

O

u

vp

XcCZc

Yc [R|T]

Extrinsic Parameters

W

Zw

Yw

Xw

≡ Pw

Page 59: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

=

13333231

2232221

1131211

w

w

w

c

c

c

ZYX

trrrtrrrtrrr

ZYX

Perspective Projection – 4/4

From the World frame to the Camera frame

59

=

1w

w

w

ZYX

TR

Perspective Projection Equation

Pc

O

u

vp

XcCZc

Yc [R|T]

Extrinsic Parameters

W

Zw

Yw

Xw

≡ Pw

Projection Matrix (M)

=

c

c

c

ZYX

Kvu

By substituting the above one into the Perspective Projection Equation:

[ ]

⋅=

1

1 w

w

w

ZYX

TRKvu

λ

Page 60: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Normalized image coordinates

It is often convenient to use normalized image coordinates onto the unit plane • Let 𝑢𝑢, 𝑣𝑣 be the pixel coordinates of an image point• We define the unit-plane normalized image coordinates �𝑢𝑢, �̅�𝑣 :

• Normalized image coordinates can be interpreted as image coordinates on an virtual image plane with focal length equal to 1 unit (adimensional)

60

=

11

1 vu

Kvu

XcCZc

Yc

𝒇𝒇 = 𝟏𝟏

=1

100

10

01

0

0

vu

v

u

αα

αα

=

1

0

0

α

αvv

uu�𝒖𝒖

�𝒗𝒗

Page 61: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Normalized image coordinates

It is often convenient to use normalized image coordinates onto the unit plane • Let 𝑢𝑢, 𝑣𝑣 be the pixel coordinates of an image point• We define the unit-plane normalized image coordinates �𝑢𝑢, �̅�𝑣 :

• Normalized image coordinates can be interpreted as image coordinates on an virtual image plane with focal length equal to 1 unit (adimensional)

61

=

11

1 vu

Kvu

=1

100

10

01

0

0

vu

v

u

αα

αα

=

1

0

0

α

αvv

uu

=

=

c

c

c

ZYX

vv

uu

vu

1

1

0

0

α

αλλ

Perspective projection

Page 62: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Today’s Outline

• Image Formation• Other camera parameters• Digital camera• Perspective camera model• Lens distortion

62

Page 63: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Radial Distortion

63

Negative radial distortion(Pincushion distortion)

𝑘𝑘1 < 0

Positive radial distortion(Barrel distortion)

𝑘𝑘1 > 0

No distortion

Page 64: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Radial Distortion in the OpenCV and Matlab Camera Models

• The standard model of radial distortion is a transformation from the ideal (non-distorted) coordinates (𝑢𝑢, 𝑣𝑣) to the real (distorted) coordinates (𝑢𝑢𝑑𝑑 ,𝑣𝑣𝑑𝑑)

• For a given non distorted image point 𝑢𝑢,𝑣𝑣 , the amount of distortion is a nonlinear function of its distance 𝑟𝑟 from the principal point. For most lenses, this simple quadratic model of radial distortion produces good results:

where

64

𝑢𝑢𝑑𝑑𝑣𝑣𝑑𝑑 = 1 + 𝑘𝑘1𝑟𝑟2

𝑢𝑢 − 𝑢𝑢0𝑣𝑣 − 𝑣𝑣0 +

𝑢𝑢0𝑣𝑣0

𝑟𝑟2= 𝑢𝑢 − 𝑢𝑢0 2+ 𝑣𝑣 − 𝑣𝑣0 2

Page 65: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Radial & Tangential Distortion in the OpenCV and Matlab Camera Models

• Radial Distortion: Depending on the amount of distortion (an thus on the camera field of view), higher order terms can be introduced for the radial distortion

• Tangential Distortion: if the lens is misaligned (not perfectly parallel to the image sensor), a non-radial(tangential) distortion is introduced

65

𝑢𝑢𝑑𝑑𝑣𝑣𝑑𝑑 = 1 + 𝑘𝑘1𝑟𝑟2 + 𝑘𝑘2𝑟𝑟4 + 𝑘𝑘3𝑟𝑟6

𝑢𝑢 − 𝑢𝑢0𝑣𝑣 − 𝑣𝑣0 + 2𝑘𝑘4 𝑢𝑢 − 𝑢𝑢0 𝑣𝑣 − 𝑣𝑣0 + 𝑘𝑘5(𝑟𝑟2+2(𝑢𝑢 − 𝑢𝑢0)2)

𝑘𝑘4(𝑟𝑟2+2(𝑣𝑣 − 𝑣𝑣0)2+2𝑘𝑘5 𝑢𝑢 − 𝑢𝑢0 𝑣𝑣 − 𝑣𝑣0+

𝑢𝑢0𝑣𝑣0

Radial distortion Tangential distortionThis formula

won’t be asked at the exam

The left figure shows the impact of the complete distortion model (radial + tangential) on each pixel of the image. Each arrow represents the effective displacement of a pixel induced by the lens distortion. Observe that points at the corners of the image are displaced by as much as 25 pixels. The center figure shows the impact of the tangential component of distortion. On this plot, the maximum induced displacement is 0.14 pixel (at the upper left corner of the image). Finally, the right figure shows the impact of the radial component of distortion. This plot is very similar to the full distortion plot,

showing that the tangential component could very well be discarded in the complete distortion model. On the three figures, the cross indicates the center of the image (i.e., the center of the two diagonals), and the circle the location of the principal point.

Page 66: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Summary: Perspective projection equations

• A world’s 3D point 𝑃𝑃𝑤𝑤 = 𝑋𝑋𝑤𝑤 ,𝑌𝑌𝑤𝑤,𝑍𝑍𝑤𝑤 projects into the image point 𝑝𝑝 = 𝑢𝑢, 𝑣𝑣

• To account for radial distortion, distorted pixel coordinates 𝑢𝑢𝑑𝑑 , 𝑣𝑣𝑑𝑑 can be obtained as:

• For convenience, the projection of 𝑃𝑃𝑤𝑤 into pixel coordinates, including lens distortion, is usually denoted:

66

[ ]

⋅=

1

1 w

w

w

ZYX

TRKvu

λ

=

1000

0

0

0

vu

K αα

where

𝑢𝑢𝑑𝑑𝑣𝑣𝑑𝑑 = 1 + 𝑘𝑘1𝑟𝑟2

𝑢𝑢 − 𝑢𝑢0𝑣𝑣 − 𝑣𝑣0 +

𝑢𝑢0𝑣𝑣0 where 𝑟𝑟2= 𝑢𝑢 − 𝑢𝑢0 2+ 𝑣𝑣 − 𝑣𝑣0 2

See also the OpenCV documentation (link)

𝑢𝑢𝑑𝑑𝑣𝑣𝑑𝑑 = 𝜋𝜋 𝑃𝑃𝑊𝑊 ,𝐾𝐾,𝑅𝑅,𝑇𝑇

Page 67: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Summary (things to remember)

• Perspective Projection Equation• Intrinsic and extrinsic parameters (𝑲𝑲,𝑹𝑹,𝑻𝑻)• Homogeneous coordinates• Normalized image coordinates• Radial distortion

67

Page 68: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Readings

• Chapter 4 of Autonomous Mobile Robots book: link

68

Page 69: Vision Algorithms for Mobile Robotics Lecture 01 Introductionrpg.ifi.uzh.ch/docs/teaching/2020/02_image_formation.pdf · Camera obscura 6 object barrier film •Add a barrier to block

Understanding Check

Are you able to:• Explain what a blur circle is?• Derive the thin lens equation and perform the pinhole approximation?• Explain how to build an Ames room?• Derive a relation between the field of view and the focal length?• Proof the perspective projection equation, including lens distortion and

world-to-camera projection?• Explain normalized image coordinates and their geometric explanation?• Define vanishing points and lines?• Prove that parallel lines intersect at vanishing points?

69