Professional Documents
Culture Documents
Peter Corke
CyberPhysical Systems Lab.
CVPR Summer School
Kioloa 2012
petercorke.com/kioloa.pdf
CRICOS No. 00213J
real
world
What is a robot?
real
world
1956
1977
1921
a university for the
real
world
2004
Robot: a definition
where am I?
where are you?
A goal oriented machine that can
sense, plan and act.
real
world
real
world
real
world
real
world
years ago
10 different eye designs
lensed eye invented 7
times
real
world
brain
1g
106 neurons
real
world
real
world
real
world
real
world
real
world
real
world
real
world
real
world
Pupil
Sclera
Iris
Pupil
Iris
Sclera
real
world
real
world
brain
1.5 kg
1011 neurons
~1/3 for vision
bee brain
1g
106 neurons
real
world
real
world
real
world
real
world
real
world
real
world
real
world
real
world
real
world
real
world
real
world
Robots underwater
real
world
real
world
Image
geometry
real
world
Reflection of light
i r
Specular reflection
- angle of incidence equals
angle of reflection
real
world
Reflection of light
I
I cos r
Lambertian reflection
- diffuse/matte surface
- brightness invariant to
observers angle of view
real
world
Extramission theory
real
world
Image formation
real
world
Image formation
real
world
image plane
CRICOS No. 00213J
Image formation
real
world
image plane
CRICOS No. 00213J
real
world
real
world
http://www.legacyphotoproject.com
a university for the
real
world
Image formation
real
world
real
world
Image formation
f
bigger
area
F = f /
image plane
a university for the
real
world
Y
Z
y
Y
=
Z
z
real
world
No unique inverse
real
world
zo
f
focal points
ideal
thin
lens
real
world
zi
The
elementary aspec
inverted
f11.1.
The
positive
z-a
image
and its image are relat
image plane
object
1
1
1
+ =
zo zi
f
pin
object
er
equivalent
pin hole
ay
zi
zo
f
focal points
ideal
thin
lens
zo
zi f
real
world
inverted
image
image plane
hol
pin
object
er
equivalent
pin hole
ay
zi
zo
f
focal points
ideal
thin
lens
real
world
inverted
image
image plane
hol
Y
Z
fX
fY
x=
,y=
Z
Z
real
world
X
x
=
Z
f
(X,Y, Z) (x, y)
3
R R
Y
y
=
Z
f
Perspective transform
real
world
Perspective projection
Lines lines
parallel lines not necessarily parallel
Conics conics
real
world
real
world
real
world
real
world
Homogeneous coordinates
a
"
!
# "
Fig. 2.1.
"
!
!
'
$ " % "
!
" "
"
b
!
% "
!
"
" *!
"
( )
"#
!
!
'
!
& !
"
! % "
" ! ' "
! % "
%
2 ! '
% "
!
"!
Cartesian homogeneous
" "
%
" $
P = (x, y)
P R
"
!%
'
% $
"
"
P = (x, y, 1)
P P
homogeneous Cartesian
P = (x,
y,
z)
P = (x, y)
x
y
x= , y=
z
z
Fig. 2.2.
"
!
'
" $ " !
" $ "
( )
(
)
!
a university for the" real
world
( )
" $ " ( ) !
0
f
0
X
0 0
Y
0 0
Z
1 0
1
x = f X, y = fY, z = Z
y
x
x= , y=
z
z
fY
fX
,y=
x=
Z
Z
x
f
y = 0
0
z
0
f
0
X
0 0
Y
0 0
Z
1 0
1
1 0 0 0
f
0 1 0 0 0
0 0 1 0 0
0
real
world
0
f
0
0
0 0
0 0
1 0
0 1
P = (X, Y, Z)
z
opt
ica
l ax
is
0
f
0
X
0 0
Y
0 0
Z
1 0
1
p
z=f
pa
i
c
prin t
poin
ima
an
l
p
e
xC
zC
{C}
yC
camera
origin
y
real
world
Change of coordinates
P = (X, Y, Z)
0
0
z
opt
ica
l ax
is
0
0
1
u
0
1
v
u0
v0
1
z=f
ipal
c
n
pri t
poin )
{C}
yC
, v0
0
u
(
ma
i
1
lan
p
e
g
xC
zC
camera
origin
v
a university for the
real
world
P = (X, Y, Z)
C
x
f
y = 0
z
0
1
u
u
v = 0
w
0
X
0 0
Y
0 0
Z
1 0
1
0
f
0
0
1
v
u0
f
v0 0
0
1
intrinsic
parameters
real
world
{C}
y
C
{0}
extrinsic parameters
0
f
0
0 0
R
0 0
013
1 0
camera matrix
X
1
Y
t
Z
1
1
MATLAB example
>> cam = CentralCamera('focal', 0.015, 'pixel', 10e-6, ...
'resolution', [1280 1024], 'centre', [640 512], ...
'name', 'mycamera')
cam =
name: mycamera [central-perspective]
focal length:
0.015
pixel size:
(1e-05, 1e-05)
principal pt:
(640, 512)
number pixels: 1280 x 1024
T:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> whos cam
Name
Size
cam
1x1
Bytes
112
Class
CentralCamera
Attributes
0
1.5000
0
0.6400
0.5120
0.0010
real
0
0
0
world
MATLAB example
real
world
Fish-eye lens
real
world
real
world
Imaging by reflection
real
world
real
world
real
world
real
world
Multi-view
correspondence
The problem of finding the
same point in different views of
the same scene
a university for the
real
world
real
world
real
world
145
147
147
147
147
147
147
147
147
147
147
147
145
144
145
145
144
145
144
143
145
147
147
147
147
147
145
144
144
147
148
147
145
145
147
147
147
144
145
147
147
145
145
147
147
real
145
145
145
147
147
147
145
147
147
144
145
145
144
147
147
144
147
147
world
145
145
145
144
145
144
144
147
144
144
147
145
143
144
145
145
145
144
131
131
131
130
131
131
131
130
131
131
131
133
130
131
131
131
130
130
131
131
131
131
131
130
130
128
130
131
131
131
130
130
130
131
130
130
131
130
130
131
130
130
130
130
131
131
131
131
131
130
131
130
130
130
131
130
131
131
131
130
128
130
130
130
131
130
131
131
130
130
130
130
131
131
130
131
130
130
131
130
130
Corner detector
real
world
Corner detector
real
world
%"
' Corner Detectors
' ' # " ! ' " !
l
Classical
Corner
! " %
'" '
! detector
" * ) % %
! '
'
%
13.3.1
&
&'%" !
%
! ' !
% '
! & " * *
! & ' ' # +
% ! * % " " " ) %' , (
' ' ' & ! # " ! ' " " (! % & " ! ! '
& ! & '! % " !" ! ' % % & ' ! ! ' !
'
! ' ' ! " % ' ! " &" ! " * * % ' " ! & ' ! & ' ' '
! " % & ' "# " ' ! ' ' ! ' "& * ) % %
! '%
&' !
! # + * ' " ' " & ) % & , ! ( ! ' , ' & % ! ! ' ! ' " ! (& % &' , " ' ! " ' " ! ' & ! ! " ! " ' (% % & ' " %
' & ' % # ", ! ' ' # + ' " & ! '
" % ! % "
! %"
! ' ' ! ! " % ' " % " ! % " ! # " ! ' & % % ' $ " (! ' &
'& ! ! ' ' # , + ) ' ' ( &
!"
& %!
! "' " , "
% ! ! ' % ! ' ! ,& ' , ' ' " '
'& %! ! ' )
" '
' & ' % & ,!
# , + % " ' ! ' % " % " % ! , % ' " " (! ' " ) * ' ' ! ! $ ( & " %& (! % # & " & '! ' % & " % !
" ' " ! &'
' " ! *
* *
& (& & ! '
! + '
# ' %
' ! ' ' , )
(
%
" " "
! %
, ' '
!
% &' " % ! % # " ! '
' '" % * &
" % ) .&
& "
" ( '& ' & !
&' ! # " ! ' & !, ' % & ' ! % ' " % ' * % , ' "
( ' ) % * " ' ' % ! $ (! & # & (% & # & ' )
' * " ' & " ! & & ' " ! ' ' " ! ! '* ( ' " ! '* ' * ! & ( & &% ! " ' ! ! & + ' '"
(# ! ' %
(" (& , " '
' ! ' ,' " % * % & ! ' ' " " % ) " ).& % # # !
! ! " ' u% % v& ' ' " % ! ( & % ' # " & ! ( '
! ' % & "" !
%" !
'! %
! ! '# %
" (% & ) ' ! ! ' ' # & " ! ' & % ! ' ,'
'& * ! ! ' % ' * " ! % ! ' %
'
'"*! & & # &
" ! ,' ! ' ( ' & " ! ' '
!
%
" !
& '"
(!
(" (
( , )
! " ' %
" % )
" !
&#
!
'
(& '
'
&
,
&(
% ',
&
%
! ' ,
'*
!
" !
'
!
%
' ,#
' ' *
!
&
'
&
'
) ( '
# # %"
' ,#
' ' *
!
# # !
!
!
, !
&$ ( % * ! " *
& & '
& (& &
# % ) " (& ,
% ', & )
' " ! &
! '
!
(
%
% ! ' '"
" ) %
" !
! '%
'
, !
&$ ( % * ! " *
& (& &
# % ) " (& ,
%
' " ! &
! '
% , # +
! '
!
! ' % &' # " ! '&
' ' " ! " '
" % )
' '" % & ' ' ' & ! "
!
&& ! '
, %
! ' !
'
! (
%
'" %
!
)
& ' % " ! " (' # (' " % # " ! ' " !
!
,
" %
) % , # +
! !
'
&
! '
'
! ' % &'
&(
) (
& '
! ' % &'
& (%
Corner detector
(! ' " !
/ &
' " & *
%
&
&" '%" # & !
' +
!
% ' " ! & " ! & $ ( ! ' ,
*
& ! " '
& %
!
! % - '
&$ ( %
% ! &
'*
) ( '
" %
) %, # +
! '
!
! ' % &' # " ! '& %
' ' " ! " '
" % )
' ' " % & ' ' ' & ! 13.3
" ! Point Features
!
&& ! '
, %
! ' !
'
! (
% "
'" %
!
)
& ' % " ! " (' # (' " % # " ! ' " !
!
&
More general approach
'
'
# # %"
! '
! !
" !
'
!
&
'
'
" !
&(
"
&
'
13.3 Point Features
* !
&
" *
' !
!
'
'% + '
' %
'
!
) ,
) # " )' - (
,) $ # ' .
$ # + $ !* )$ # ) #
*
'
* (( #
) % '
! " * * % '
) ,
) # " )' - (
* (( #
' # !
''
), $ # . ( $ # (.
+ $ " ! * )" $ # )') # " )' - '
' # !
! '& % &#
' % !
' ) ,
(* " "
structure tensor
' % !
)$ + ' $ * (! . ( )
$ ' ' ! ) $ # " )' - $ ' ( $ # " $ " # ) " )' - ) % )* ' ( )
!$ ! #
$ * ' $ $
#
)(
# + !* (% ' $ +
' $ ) )$ #
$ ) #
$ * ' $ $
! " # )( $ )
" )' - '
$
'
# for)(the(& real
* ' world
$ ' " * ! ) % !
# ) # (" $ $ )
* (#
a university
,*
( ! (. " * " % ' ' )' ! " # " ' ,)' & - '
''
)$ + ' $ * (! . ( ) ()' * )*
' * (# $ ( #
" % ' $ + ( ) () ! ). # ' !
! ). $ )
(* " "
()' * )* ' ) # ($
# ) # ( ). ()' * )* '
!!. # + ' # ) (
" % * )
'$ " )
, CRICOS) No.
# 00213J
" )'
' ) # ($ ' * )$
) )$ '
'
* )$
$ )
' % )$ #
"
(
'
# )
Convolution
12.4.1
'
& " )
lConvolution
" $
# $
'
( # "
$
a university for the real
$"
$
'
' world
" #
"
kernel
&
" $ " #
% $
% $
"
"
#
#
&
% $
12.4.1.1 Smoothing
" ! &
% !
&
&$ ( %
!
'
&
"
( ! ' )" (
%!
& !
!
'
' &
real
world
!
& '" & " " ' !
(% % ! " %
% ( , * *
&
& "
! ' " % -" ! '
% ! !
" % &( '
% !
" % & " " '
& &,
'%
" %
0.02
0.015
0.01
0.005
0
0.005
0.01
0.015
0.02
15
10
10
5
0
10
15
real
world
10
15
real
world
# )( (& * '
$ ' " * !)% !
# ) # (" $ $ )
* (#
,
) # " )' " $ " # ) " )' - ) % )* ' ( ) # ) # ( ). ()' * )
)$ ' ( ' !& ' ) $ #! ' " % & ' )' - & $ ( % ' ( $ #
' * (# $ ( #
" % ' $ + ( ) () ! ). # ' !
! ). $ )
) )$ '
'
! $" ! # (
$
*
'
$
$
#
)(
#
+
!
*
(
%
'
$
+
'
$
)
)
$
#
!
!
.
#
+
'
#
)
#
' ). %
!!. ! * ! ) * (#
' + )+ $
* (( #
'# ! "
$ )) #
$ ,* ' ) $ $ (" $ $ ) # ! " % ' # )(
" )' - '
$ " % * )
'$ "
" $ ) ' )
Point Features
' # # ( #! )()' " (&' ! ()
* %' / $ & # $ ))' (" ' * ! )" % % ( ! )$ # % , # + #$ ' ! ,)' # (" 1$ ! $ )( ! ' % & * ' (# " $ # ! ' ' & 13.3
% , ' )) # $ # (" $
' + ' " & *)$ * ' (% # $ ( & # ) (" % # ' $ ,! + ()' )+ ' " ' ! ()" ' ' ! ) ).$ " # % ),# " ' ' $ ! + ' " % )& ! ' )., ' $ ' # & )$! " , ! ) ' ) % )$ ! ' .
'%" # & !
' + approach
! &
!
&& ! '
, %
! ' !
'
! (
% "
More" & " general
% (( ' " " (! ! & ' " )$! # & )$ ( ! $ ' ' ' , ' ).# % ! ' ' ' ! " ! % . $ # ! ! * ) ,! )& ' % $ " # ! * ((" # ( ' '# ()' " % $ ' ' # + " )! # ' + " ! ! $ " ! * ((( # (* ' ' #
*
# ) + & ! ! * " ' weighting
( $ & % , ' ) ) ("% matrix
' $ # $ )% # ! * % ' + ' )* " ' () $ ' ) (* '
)) )% $ # )
$ )
Gaussian
+ , ! * ' # ( ! # ' ) ! ("' % ()!-! % )' $ # # )# )% " (* ' , ( $ ! # !( '! $ )' & ), )% ' (, ) & ' 1 " * ( ' ' & ( $ $ # "'
( % % ' ' $ -) "$
&$ ( %
% ! &
'*
! '
%
" ! ! '
&#
%
" ! &
+ $ # )$()' # ) ! $ ! # ) # )( ).( # $ , # ) + # ' + ! * ' () $ # , # " $ ) + $ )) ' , ! $ # , $ ), # ))' % (* ' ! .
' (( " ( ! % ' )$ , ) $ ' # # )! ' ( # $ #
, $ )$ # ( # + ' )! * ($ ' ' # ! )" (* '
( ( ((*
13.3 Point Features
!
ompression removes %
,
,
$
#
(
'
)$
$
'
#
'
# + !* ($
' ) % ' # % ! * ' + )* ' ( $ ) (* '
)) )% $ # )
$
etail from the image,
$ " ! '! (! ) # ) ' % ))$+ ' ' (*' $ ' # (# based
' (& ( )& on! # gradients
()'
# " )& ) (% '$ )" ' ) " ! $ ' '% # " ' ' ' $ ' $ #
+
!
*
(
'
("
)
)
( % % '
*
%
&
*
&
"
!
'
&
what defines a corso intensity
difference is
" * $ !# # ()
" " )* # * )" , ! $
! ! ) # # # + )' " ! * # (' )' ).
% - ( ! $ # * # ((
# % " + # # + ' ' ! # * ! , ( ' % ( ! ' # # , )" % , & $ % ' ) & % ! ' ! $ ), )(* " # " )
detectors should be
that have not been
decompressed.
mpression removes
'
Corner detector
'
)$ #
$ # + $ !* )$ # ) #
)( #
, '
%
,
,
$ # ( ' )$
*
%
!
$ % " ' ( " % -") ! ' )$ ' ! $ )# % ('
# + !* ($
$
,! " * *' % ' ' )
" ' # ' " * ' " ' )$ # (+ / ! *
,
( (. " " )'
" )' - '
'
eliminated
$ )
# + !* ( '
(* '
structure
tensor
' ) ,
!
$ '# ' !
' ( ) % ()' ! # ' & %) & # $
# )( # )
0)$ + ' $
'
# $ (' ' ) ! )), $ * # )" ) # )' # " - $ ()'' -($ ' (# $ # ' ()'
* " (($ " # # )# )' # " (! )' - ) %
"
$ '
' ' ( )
* (! . ( )
) ("
(* ' (
!
2 large
)$2 small
'
(
(
$ # ) (
()' * )* ' ) # ($ ' * )$
er detector.
a university for the real
#,)'* " ( ()! (.* "# )* " % ' ' )' ! )# ' world
(
$
((
# ($+ ' # ! No.
* * 00213J
# % " ' ' ' # ,! )'(! .' & - ()'
' )! * ' # )$!' )' ))$' * (%+ (' $ # $ # * (!(. , (' )+ # )()'+ $ * )$ )* ' *)CRICOS
)$(' # ' ! " ! ' ) $ #
" ).
real
world
real
world
real
world
real
world
Comparing features
Weve found the coordinates of some interesting
points in each image:
1
{ pi , i 1 N1 }
{ 2p j , j 1 N2 }
real
world
Feature matching
Chapter 12 Image Processing
real
world
MATLAB example
real
world
>> m = C1.match(C2)
m =
39 corresponding points (listing suppressed)
>> whos m
Name
Size
Bytes Class
Attributes
m
1x39
416 FeatureMatch
>> m(1:5)
ans =
(999, 602) <-> (770, 624), dist=0.125548
(885, 570) <-> (659, 588), dist=0.131761
(251, 599) <-> (26, 588), dist=0.148539
(272, 647) <-> (42, 638), dist=0.161652
(591, 314) <-> (448, 290), dist=0.172520
>> idisp({b1, b2});
>> m.plot()
For tracking
>> t = Tracker(im, c)
200 continuing tracks, 41 new tracks, 0 retired
241 continuing tracks, 46 new tracks, 0 retired
287 continuing tracks, 34 new tracks, 0 retired
.
.
a university for the
real
world
Tracking results
real
world
Non-unique matches
many to one
visual similarity
left
real
world
right
view direction
perspective
scale change
rotation
real
world
real
world
Epipolar
geometry
The geometry underlying
different views of the same
scene
a university for the
real
world
Epipolar geometry
P!
P
I1
epipolar plane
I2
ima
ge p
lane
z1
{1}
epipolar
line
x1
real
world
!
p
p
2
2
y1
ne
a
l
p
ge
ima
z2
x2
{2}
y2
Homogeneous coordinates
a
"
!
# "
Fig. 2.1.
"
!
!
'
$ " % "
!
" "
"
b
!
% "
!
"
" *!
"
( )
"#
!
!
'
!
& !
"
! % "
" ! ' "
! % "
%
2 ! '
% "
!
"!
Cartesian homogeneous
" "
%
" $
P = (x, y)
P R
"
!%
'
% $
"
"
P = (x, y, 1)
P P
homogeneous Cartesian
P = (x,
y,
z)
P = (x, y)
x
y
x= , y=
z
z
Fig. 2.2.
"
!
'
" $ " !
" $ "
"
( )
( )
!
such that
T p = 0
p = (x,
y,
z)
= (l1 , l2 , l3 )
y = mx + c
real
world
p 2 = (d, e, f )
p 1 = (a, b, c)
= p 1 p 2
real
world
p
p = 1 2
1 = (a, b, c)
real
world
Fundamental matrix
2 2
p =0
2 T
Fundamental
matrix
p F p=0
a university for the
real
world
2 T
p F p=0
real
world
Computing F
F has special structure
rank 2
null vector is the epipole coordinate
real
world
real
world
-0.0000
-0.0000
-0.0023
0.0052
0.0010
1.0682
>> idisp({b1,b2})
>> m.outlier.plot(r);
real
world
2 T
x E x = 0
must be F
p Kx
2 T
T
1 1
K2 EK1 p
E=
T
K2 FK1
real
world
=0
E S(t)R
CRICOS No. 00213J
Dealing with
scale
real
world
view direction
perspective
scale change
rotation
real
world
Gaussian sequence
real
world
)1" / + 1& 3" * " + 0 1, # & + ! 1% " - , & + 1, # * 5& * 2* $ / ! & " + 1& 0 1, , * - 21" 1% " 0" , + !
! " / & 3 1& 3" + ! ! " 1" / * & + " 4 % " / " 1% & 0 & 0 7 " / , % "
- ) & + , - " / 1, /
& 0 1% " 02* , # 1% " 0" , + ! 0- 1& )! " / & 3 1& 3" & + 1% " % , / & 7 , + 1 ) + ! 3" / 1& )! & / " 1& , + 0 , /
! & 0 / " 1" & * $ " 1% & 0 + " , * - 21" ! 6 , + 3, )21& , + 4 & 1% 1% "
- ) & + (" / + " )
>> L = klaplace()
L =
0
1
0
1
-4
1
0
1
0
4 % & % & 0 & 0, 1/ , - & 8 & 1/ " 0- , + ! 0 " . 2 ))6 1, " ! $ " 0 & + + 6 ! & / " 1& , +
% " 0" , + ! ! " / & 3
1& 3" & 0 " 3" + * , / " 0" + 0& 1& 3" 1, + , & 0" 1% + 1% " # & / 01 ! " / & 3 1& 3" + ! & 0 $ & + , 4* % & *% & 0,& 0,+ 1/ )6
, - & 8 & 1/ " 0- , + ! 0 " . 2 )
1& 3" & 0 " 3" + * , / " 0" + 0& 1& 3" 1, + , & 0" 1%
20" ! & + , + ' 2+ 1& , + 4 & 1%
200& + 0* , , 1% " ! & * $ "
20" ! & + , + ' 2+ 1& , + 4 & 1%
200& + 0
4% & % 4" , *
( " / + " ) $ & 3" +
+ !
& 0 1% "
real
world
-) & + ,
" 4 / & 11"
-) & +
4 % & % & 0( + , 4 +
&+ &$
"
0 1% "
/ /
& )! / " 1% ,
real
world
real
world
real
world
real
world
Characteristic scale
real
world
real
world
100
100
200
200
300
300
v (pixels)
v (pixels)
400
500
400
500
600
600
700
700
800
800
200
400
600
u (pixels)
800
1000
1200
Harris corner
real
world
200
400
600
u (pixels)
800
1000
SIFT
1200
image 1
real
world
image 2
484
v (pixels)
200
400
600
800
500
1000
1500
u (pixels)
2000
2500
image
1
image
2
Feature matching. Subset (100 out of 1664) of matches based on SURF de-
Figure 14.3:
scriptor similarity. We note some (low in the image) that some are clearly incorrect.
a university
the realof SurfPointFeature objects. ManyCRICOS
No. 00213J
which results in
two forvectors
thousands
of
world
v (pixels)
200
400
600
800
500
1000
1500
u (pixels)
2000
500
1000
1500
u (pixels)
2000
2500
v (pixels)
200
400
600
800
real
world
2500
497
Epipolar magic
noname
100
200
v (pixels)
300
400
image 2
500
600
700
epipolar plane
I 1 image plan
I2
800
200
400
600
u (pixels)
800
1000
z1
1200
{1}
y
image
1
re 14.10: Image from Figure 14.1(a) showing epipolar lines converging on the projection
e second cameras centre. In this case the second camera is clearly visible in the bottom
of the image.
a university for the
real
world
x1
epipolar
line
e
lan
ge p
ima
! z2
1 epipolar
point
x2
{2}
y2
3 dimensional
vision
real
world
real
world
real
world
real
world
real
world
29
Figure 1. Just-discriminable ordinal depth thresholds as a function of the logarithm of distance from the observer, from 0.5 to 10,000 m, for nine sources of information about layout. I assume that more potent sources of
information are associated with smaller depth-discrimination thresholds; and that these thresholds reflect
suprathreshold utility. This array of functions is idealized for the assumptions given in Table 1. From Perceiving
Layout and Knowing Distances: The Integration, Relative Potency, and Contextual Use of Different Information
About Depth, by J. E. Cutting and P. M. Vishton, 1995, in W. Epstein and S. Rogers (Eds.), Perception of Space
and Motion (p. 80), San Diego: Academic Press, Copyright 1995 by Academic Press. Reprinted with permission.
real
worldBecause occlusion can never be more than ordinal informationone can only know that one object is in front
of another, but not by how muchit may not seem im-
real
world
real
world
29
Figure 1. Just-discriminable ordinal depth thresholds as a function of the logarithm of distance from the observer, from 0.5 to 10,000 m, for nine sources of information about layout. I assume that more potent sources of
information are associated with smaller depth-discrimination thresholds; and that these thresholds reflect
suprathreshold utility. This array of functions is idealized for the assumptions given in Table 1. From Perceiving
Layout and Knowing Distances: The Integration, Relative Potency, and Contextual Use of Different Information
About Depth, by J. E. Cutting and P. M. Vishton, 1995, in W. Epstein and S. Rogers (Eds.), Perception of Space
and Motion (p. 80), San Diego: Academic Press, Copyright 1995 by Academic Press. Reprinted with permission.
real
worldBecause occlusion can never be more than ordinal informationone can only know that one object is in front
of another, but not by how muchit may not seem im-
29
Figure 1. Just-discriminable ordinal depth thresholds as a function of the logarithm of distance from the observer, from 0.5 to 10,000 m, for nine sources of information about layout. I assume that more potent sources of
information are associated with smaller depth-discrimination thresholds; and that these thresholds reflect
suprathreshold utility. This array of functions is idealized for the assumptions given in Table 1. From Perceiving
Layout and Knowing Distances: The Integration, Relative Potency, and Contextual Use of Different Information
About Depth, by J. E. Cutting and P. M. Vishton, 1995, in W. Epstein and S. Rogers (Eds.), Perception of Space
and Motion (p. 80), San Diego: Academic Press, Copyright 1995 by Academic Press. Reprinted with permission.
real
worldBecause occlusion can never be more than ordinal informationone can only know that one object is in front
of another, but not by how muchit may not seem im-
No unique inverse
real
world
Binocular disparity
real
world
real
world
Stereo disparity
50
100
150
v (pixels)
200
250
300
350
400
450
500
550
200
400
600
u (pixels)
800
1000
1200
real
world
1954-59
a university for the
real
world
Disparity
The horizontal displacement in an image point due
to horizontal translation of the camera
fb
d
Z
b
f
real
world
2010
a university for the
real
world
real
world
Prague
real
world
real
world
Anaglyph images
real
world
real
world
Anaglyph image
real
world
real
world
real
world
left
real
world
right
real
world
Shutter glasses
real
world
Computational
stereo
Depth from 2 images
real
world
Disparity
The horizontal displacement in an image point due
14.3 Stereo Vision
to horizontal translation of the camera
Fig. 14.21.
( & # ! ( "
' &
" (&
(
" ( &
(
!
' ' + $ ( # & .# " ( )" ( (! ( ' (
+ " # +
&# ! (
( !
fb
d
Z
a university for the
real
world
T =
vL
d
dmax
left
uL
right
uL
Computational stereo
50
100
150
50
85
100
80
150
75
250
300
350
400
450
500
200
550
200
400
600
u (pixels)
800
1000
1200
v (pixels)
v (pixels)
200
70
250
65
300
60
350
55
400
450
50
500
45
550
40
100
200
300
400
u (pixels)
500
600
real
world
50
85
100
80
150
75
v (pixels)
200
70
250
65
300
60
350
55
400
450
50
500
45
550
40
100
200
300
400
u (pixels)
500
600
Planar
homgraphy
The problem of finding the
same point in different views of
the same scene
a university for the
real
world
Homography
n
object plane
epipolar plane
I 1 image plane
p
{1}
I2
ne
e pla
g
a
im
z1
z2
x2
x1
{2}
y1
1
y2
p=H p
real
world
Homography
The matrix H is called an homography
The 3x3 matrix contains 9 elements
Overall scale factor is arbitrary, that is kH is the
same as H
So only 8 unique numbers to determine
Can be computed from 4 or more corresponding
point pairs
p=H p
real
world
Corresponding points
p1
q1
p2
q3
p3
pi = (ui , vi )
u1 u2 u3
v1 v2 v3
p4
u4
v4
q2
q4
qi = (ui , vi )
u1 u2 u3
v1 v2 v3
u4
v4
>> H = homography(P, Q)
>> Q = homtrans(H, P)
a university for the
real
world
Perspective rectification
p=H p
a university for the
real
world
Perspective rectification
50
100
150
v (pixels)
200
250
300
350
400
450
500
550
100
200
300
400
500 600
u (pixels)
p=H p
a university for the
real
700
800
900
1000
world
Virtual camera
&
&
&
&
0
("
&
(
%
&
"
>> tr2rpy(sol(2).T, 'deg')
ans =
-76.6202 9.4210 -13.8081
&
real
world
- #
&
%
"
CRICOS No. 00213J
Optical flow
How points in an image move
as the camera moves
real
world
tx
tz
100
100
200
200
300
300
400
v (pixels)
v (pixels)
400
500
600
700
500
600
700
800
800
900
900
1000
100
200
300
400
500 600
u (pixels)
700
800
900
1000
1000
100
200
300
400
500 600
u (pixels)
700
800
900
1000
100
200
300
v (pixels)
400
500
600
700
800
900
1000
100
200
300
400
500 600
u (pixels)
700
800
900
real
1000
world
'
"
#%
#$ $% $
flow
" equation
$
(
"
Optical
"
" & $ & #
$ # "
$ &
# $
(u,
v)
are distances from principal point
real
world
"
tx
100
200
200
300
300
400
400
v (pixels)
v (pixels)
100
500
600
500
600
700
700
800
800
900
900
1000
1000
100
200
300
400
500 600
u (pixels)
700
800
real
900
1000
world
100
200
300
400
500 600
u (pixels)
700
800
900
1000
tx
#%
#$ $% $
# $
100
200
300
v (pixels)
400
500
600
700
800
900
1000
100
200
300
400
700
800
900
1000
small f
large f
100
100
200
200
300
300
400
400
v (pixels)
v (pixels)
500 600
u (pixels)
500
600
500
600
700
700
800
800
900
900
1000
1000
100
200
300
400
500 600
u (pixels)
700
800
900
real
1000
world
100
200
300
400
500 600
u (pixels)
700
800
900
1000
* /
# !& %
,! + ! &
points
+ & Motion
of $ multiple
+)/ .
. ##
% ,## * '
$ ) $ & + & % * & )) * ' & % * + & )& + + & % )& , %
Consider the& case
) + ) of' & three
% + * points, in matrix form
!. /
# %
/ * !,
' -+ ' * / *
' % ( * ! + + ,*
, % & ! (-$
!0
&
'
ob0(qn)
.0144
# ! & % ,! + /
& + $ ,! ' & $ &
,' + * $ ' + ) ! / & .
% (-,
!*
15.2.2
& ).
- * & . %
$ & + & real
%
* * & + 0% +
0.3197
. $ ' ! ,1 '
, ,*# ! ) * & # & ' %
jacob0
world
!+
% ( ' & & ,+
! *& + ' & % + * )
% , ' ' ,
' # %
+
+&
$ +)/ .
. ##
% ,## * '
. +
$ & ))Inverting
% % *+ * + &2 )& + + & % )& , !
%
+ $ & + & * % &* +& ))the
) * ' ' & & problem
3# % ! & &
. & )% + % )- )+' & %( + *
p to p*
0$ 0
0$ ! " ! 01. ! / 0+ 3 . 0$ ! % . ! / % . ! 2 (1! /
+3 % 0$ $ + -) / . # # 3 ! 3% & . %% 0!0$ * % 0 , # ) * 0$& !# & " %! 01.* ! +/ 0+ 3' & . % + 0$* ! % ). %
% * & #- & )+
) ( ,3 )% 0$ - $ ) 3 -! 3# & . % 0!+ 0
15.2.2
&
).
$ & + & %
%/
' # %
+ *
$ .07/3% 0% (( $ .% / % 2 !+ *0.
+ *0. + ((!
0$ !+ ((! .)3 !% ((
. /. % + 2 !0
CRICOS No. 00213J
Desired view
real
world
Current view
real
world
real
world
(u,
v)
(u, v)
real
world
IBVS simulation
real
world
New concepts
Image convolution
Gaussian, Laplacian operators
Homogeneous coordinates
Feature detectors
Scale-space
Geometry of image formation
Fundamental and essential matrix
Homography
Image correspondence
RANSAC
real
world
Further reading
Peter Corke
Peter C0rke
Robotics,
isbn 978-3-642-20143-1
9 783642 201431
real
world
Corke
For more than 10 years the author has maintained two opensource matlab Toolboxes, one for robotics and one for vision.
They provide implementations of many important algorithms and
allow users to work with real problems, not just trivial examples.
This new book makes the fundamental algorithms of robotics,
vision and control accessible to all. It weaves together theory, algorithms and examples in a narrative that covers robotics and computer vision separately and together. Using the latest versions
of the Toolboxes the author shows how complex problems can be
decomposed and solved using just a few simple lines of code.
The topics covered are guided by real problems observed by the
author over many years as a practitioner of both robotics and
computer vision. It is written in a light but informative style, it is
easy to read and absorb, and includes over 1000 matlab and
Simulink examples and figures. The book is a real walk through
the fundamentals of mobile robots, navigation, localization, armrobot kinematics, dynamics and joint level control, then camera
models, image processing, feature extraction and multi-view
geometry, and finally bringing it all together with an extensive
discussion of visual servo systems.
Robotics,
Vision
and
Control
FUNDAMENTAL
ALGORITHMS
IN MATLAB
springer.com
Homework
How could a robot vision system exploit other (non
binocular) depth cues to determine distance?
How could a robot recognize a place (kitchen,
bathroom, garden) in a way that is invariant to:
lighting levels
position of the robot
small changes in the environment
real
world