Plan
EsBmaBon de la mesure :
◦ Avec 4 points coplainaires
◦ Avec au moins 4 points non coplanaires
◦ Avec le Jacobien image
◦ Avec projecBon de marqueurs
◦ UBlisaBon d’OpenCV
EsFmaFon de pose
A parFr de 4 points coplanaires
Soit la configuraBon suivante:
La cible est consBtuée de 4 points P
0, P
1, P
2, P
3coplanaires dans (P
0x y) où P
0est l’origine de R
o. Trouver M
co, la matrice homogène de transformaBon entre R et R .
z x
y R c
M co x
z y
R o P 0
0
P
n=
X
nY
n0 1
⎡
⎣
⎢ ⎢
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
⎥
EsFmaFon de pose
A parFr de 4 points coplanaires
Soit le modèle d’une projecBon perspecBve:
z
n cp
n= K Π M
co oP
navec
cp
n=
x
ny
n1
⎡
⎣
⎢ ⎢
⎢ ⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
et
oP
n=
X
nY
nZ
n1
⎡
⎣
⎢ ⎢
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
⎥ K =
G
x0 u
00 G
yv
00 0 1
⎛
⎝
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟
et Π =
1 0 0 0 0 1 0 0 0 0 1 0
⎛
⎝
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟
EsFmaFon de pose
A parFr de 4 points coplanaires Si :
Alors, en considérant pour simplifier que u 0 = v 0 = 0 : M
co=
r
11r
12r
13t
xr
21r
22r
23t
yr
31r
32r
33t
z0 0 0 1
⎡
⎣
⎢ ⎢
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
⎥
EsFmaFon de pose
A parFr de 4 points coplanaires On obBent :
En divisant tout par t z : x
n= ( θ
1X
n+ θ
2Y
n+ θ
3)
θ
7X
n+ θ
8Y
n+ 1 y
n= ( θ
4X
n+ θ
5Y
n+ θ
6)
θ
7X
n+ θ
8Y
n+ 1
⎧
⎨
⎪ ⎪
⎩
⎪ ⎪
EsFmaFon de pose
A parFr de 4 points coplanaires Avec :
Notes :
◦ G
xet G
ysont les grandissements suivant x et y du capteur.
◦ Ils dépendent de la taille du pixel.
◦ Ils sont égaux lorsque le pixel est carré.
◦ Ils permeZent d’obtenir une coordonnée dans l’image en pixels.
◦ On a :
θ
1= r
11G
xt
zθ
2= r
12G
xt
zθ
3= t
xG
xt
z! θ
8= r
32t
zf f
EsFmaFon de pose
A parFr de 4 points coplanaires Il vient :
x
n( θ
7X
n+ θ
8Y
n+ 1 ) = ( θ
1X
n+ θ
2Y
n+ θ
3)
y
n( θ
7X
n+ θ
8Y
n+ 1 ) = ( θ
4X
n+ θ
5Y
n+ θ
6)
⎧
⎨ ⎪
⎩⎪
x
n= ( θ
1X
n+ θ
2Y
n+ θ
3) − x
n( θ
7X
n+ θ
8Y
n)
y
n= ( θ
4X
n+ θ
5Y
n+ θ
6) − y
n( θ
7X
n+ θ
8Y
n)
⎧
⎨ ⎪
⎩⎪
EsFmaFon de pose
A parFr de 4 points coplanaires
Sous forme matricielle :
EsFmaFon de pose
A parFr de 4 points coplanaires
En appliquant ceZe équaBon aux 4 points : x
0y
0! x
3y
3⎡
⎣
⎢ ⎢
⎢ ⎢
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
⎥ ⎥
⎥
"#$
B=
M
0M
1M
2M
3⎛
⎝
⎜ ⎜
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟ ⎟
⎟
M8×8
" # % $ %
θ
1θ !
8⎡
⎣
⎢ ⎢
⎢ ⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
"#$
Θd'où : Θ =M
−1B
EsFmaFon de pose
A parFr de 4 points coplanaires
En uBlisant le fait que r 11 2 + r 21 2 + r 31 2 = 1 :
On en déduit tous les termes de M . θ
1t
zG
x⎛
⎝⎜
⎞
⎠⎟
2
+ θ
4t
zG
y⎛
⎝ ⎜ ⎞
⎠ ⎟
2
+ ( ) θ
7t
z 2= 1
⇒ t
z= 1
θ
1G
x⎛
⎝⎜
⎞
⎠⎟
2
+ θ
4G
y⎛
⎝ ⎜ ⎞
⎠ ⎟
2
+ θ
72car t
z> 0
EsFmaFon de pose
A parFr de 4 points coplanaires Conclusions :
◦ Méthode simple exploitant les propriétés de planéité de la cible.
◦ Le calcul implique l’inversion d’une matrice 8x8.
◦ Le calcul se fait en un nombre d’opéraBons fixe.
◦ CeZe méthode est sensible au bruit : il n’y a aucune garanBe que la matrice de rotaBon esBmée respecte les propriétés d’ortho-
normalité.
◦ PotenBellement, il faudrait normaliser ceZe matrice et rendre ses
lignes/colonnes perpendiculaires 2 à 2.
EsFmaFon de pose
A parFr d’au moins 4 points non coplanaires : POSIT
Référence bibliographique :
D. DeMenthon et L. S. Davis, Model-Based Object Pose in 25 Lines of Code, Interna'onal Journal of Computer Vision, volume 15, pages 123 à 141, 1995.
Méthode itéraBve, basée sur l’approximaBon de projecBon
orthographique.
EsFmaFon de pose
POSIT : définiFons
i j
k C f
O
Plan moyen
H
Z
0u w v M
0M
iPlan image
M
coR
cR
oEsFmaFon de pose
POSIT : définiFons
k C f
H
Z
0u
w v M
0M
iP
iN
ip
im
im
0EsFmaFon de pose
POSIT : objecFfs
Soit :
M
co=
o
i
u oi
v oi
wCoord. de i
! ##
dans repère objet" ## $
o
j
u oj
v oj
wCoord. de j dans repère objet
! ## " ## $
o
k
u ok
v ok
wok=oi×oj
! ### " ### $
T
x= x
0Z
0f T
y= y
0Z
0f T
z= Z
00 0 0 1
⎛
⎝
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟
avec :
c
m
0= x
0y
0⎛
⎝ ⎜
⎜
⎞
⎠ ⎟
⎟
EsFmaFon de pose
POSIT : calculs
Pour déterminer M co il suffit de :
◦ Déterminer les coordonnées dans R
ode i et j
◦ Déterminer la profondeur Z
0le long de l’axe opBque du plan moyen.
Démontrer les relaBons suivantes : M
0M
i! !!!!! "
i f
Z
0i = x
i(1 + ε
i) − x
0(1) M
0M
i! !!!!! "
i f
Z
0j = y
i(1 + ε
i) − y
0(2)
avec
cm = ⎡ x y f ⎤
Tet ε = 1
M M
! !!!!! "
i k
EsFmaFon de pose
POSIT : calculs
i j
k C f
O H
Z
0u
w v M
0M
iP
iN
ip
im
im
0Utiliser les triangles
Cm
iO et N
iP
iM
iEsFmaFon de pose
POSIT : calculs
On a : Avec :
Les triangles C m i O et N i P i M i sont semblables dans le
rapport entre M i P i et C O . Ce rapport est égale à :
EsFmaFon de pose
POSIT : calculs
On obBent :
Produit scalaire par i :
On obBent l’équaBon (1) :
Le produit scalaire par j donne l’équaBon (2).
M
0M
i! !!!!! "
i f
Z
0i = x
i(1 + ε
i) − x
0avec ε
i= 1
Z
0! M !!!!!
0M "
ii k
EsFmaFon de pose
POSIT : calculs
Les équaBons (1) et (2) peuvent s’écrire dans R o :
Sous forme matricielle pour tous les n points M i :
Avec :
o
( M
0M
i)
T oI = ζ
iavec
oI = Z f
0
o
i et ζ
i= x
i( ) 1 + ε
i− x
0o
( M
0M
i)
T oJ = η
iavec
oJ = Z f
0
o
j et η
i= y
i( ) 1 + ε
i− y
0A
oI = x ′ A
oJ = y ′
⎧ ⎨
⎩ A =
o
( M
0M
1)
T!
o
( )
T⎛ ⎜
⎜ ⎜
⎞ ⎟
⎟ ⎟ x ′ =
ζ
1ζ !
⎡ ⎢
⎢ ⎢
⎤ ⎥
⎥ ⎥ y ′ =
η
1η !
⎡ ⎢
⎢ ⎢
⎤ ⎥
⎥ ⎥
EsFmaFon de pose
POSIT : calculs
Si on a au moins 4 points, la matrice A est de dimension 3×3 et est inversible. Si n>3 on uBlise la pseudo-inverse :
Et on en déduit : Et finalement :
o
I = B x ′
o
J = B y ′
⎧ ⎨
⎩ avec B = ( ) A
TA
−1A
To
i =
oI I
o
j =
oJ J
o
k =
oi ×
oj
T
z= Z
0= 2 f
I + J T
x= x
0Z
0f T
y= y
0Z
0f
EsFmaFon de pose
POSIT : algorithme
n nombre de points, A de dimension 3 × ( n − 1)
Calcul de B, pseudo-inverse de A . ε
i= 0 ∀ i = 1 … n
IniBalisaBon
Calcul de la pose
o
I = B x ′
oJ = B y ′
o
i =
oI I
o
j =
oJ J
o
k =
oi ×
oj Evaluation de x ′ et y ′ .
T
z= Z
0= 2 f ( I + J )
−1T
x= x
0Z f
0T
y= y
0Z f
0Mise à jour
ε = 1 ! !!!!! "
∀ = Arrêt si tous les ε
EsFmaFon de pose
POSIT : algorithme
i j
k C f
O
Plan moyen
H
Z
0u w v M
0M
iPlan image
M
coR
cR
oEsFmaFon de pose
POSIT : algorithme
k C f
Plan moyen
H
Z
0u w v M
0M
iPlan image
M
coR
oEsFmaFon de pose
POSIT : définiFons
i j
k C f
O
Plan moyen
H
Z
0u w v M
0M
iPlan image
M
coR
cR
oEsFmaFon de pose
POSIT : algorithme
k C f
Plan moyen
H
Z
0u w v M
0M
iPlan image
M
coR
oEsFmaFon de pose
POSIT : exercice
Une caméra munie d'un objecBf de focale 1 cm a dans son champ de vision un objet consBtué de 4 points dont les
coordonnées dans le repère R o sont les suivantes :
x z y
z
x y M
2M
1M
0M
3R
oR
cM
co? M
0( 0 0 0 ) M
1( 0.1 0 0 )
M
2( 0 0.1 0 ) M
3( 0 0 0.1 )
EsFmaFon de pose
POSIT : exercice
1. Synthèse de l’image idéale
Calculer les coordonnées des projecBons des 4 points dans le plan image sachant que la matrice homogène de transformaBon entre la caméra et l’objet est égale à :
2. Retrouver M co avec POSIT
Retrouver M
coà parBr de l’image idéale synthéBsée en 1.
M
co=
1 0 0 0.15 0 0 − 1 0.1 0 1 0 0.3 0 0 0 1
⎛
⎝
⎜ ⎜
⎜ ⎜
⎞
⎠
⎟ ⎟
⎟ ⎟
EsFmaFon de pose
POSIT : exercice
1. Synthèse de l’image idéale
2. ApplicaBon de POSIT
EsFmaFon de pose
POSIT : exercice
IniBalisaBon de ε i à 0
ItéraBon 1 :
EsFmaFon de pose
POSIT : exercice
ItéraBon 1 :
EsFmaFon de pose
POSIT : exercice
ItéraBon 2 :
o
I =
4.32 ⋅ 10
−2− 5.85 ⋅ 10
−4− 3.97 ⋅ 10
−3⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
J =
3.97 ⋅ 10
−3− 3.9 ⋅ 10
−4− 3.333 ⋅ 10
−2⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
i =
0.996
− 1.35 ⋅ 10
−2− 9.14 ⋅ 10
−2⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
j =
0.118
− 1.16 ⋅ 10
−2− 0.993
⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
k =
1.123 ⋅ 10
−20.998
− 0.997 ⋅ 10
−3⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
Z
0= 0.26
ε
1= 4.74 ⋅ 10
−3ε
2= 0.377
ε
3= − 3.84 ⋅ 10
−3EsFmaFon de pose
POSIT : exercice
ItéraBon 5 :
o
I =
3.33 ⋅ 10
−2− 2.56 ⋅ 10
−42.11 ⋅ 10
−5⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
J =
− 2.17 ⋅ 10
−5− 1.7 ⋅ 10
−4− 3.333 ⋅ 10
−2⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
i =
0.99997
− 7.68 ⋅ 10
−36.33 ⋅ 10
−4⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
j =
− 6.5 ⋅ 10
−4− 5.11 ⋅ 10
−3− 0.99999
⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
o
k =
1.123 ⋅ 10
−20.998
− 0.997 ⋅ 10
−3⎡
⎣
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥
Z
0= 0.3002
ε
1= 2.56 ⋅ 10
−3ε
2= 0.333
ε
3= − 1.7 ⋅ 10
−3EsFmaFon de pose
POSIT : exercice
Arrêt à l’itéraBon 5 :
On retrouve à 10 -4 près les termes de M co qui nous avait servie à calculer l’image idéale de l’objet.
T
x= x
0Z
0f = 5 ⋅ 10
−3⋅ 0.3002
0.01 = 0.1501 T
y= y
0Z
0f = 0.1001 T
z= Z
0= 0.3002 R
co=
0.99997 − 7.68 ⋅ 10
−36.33 ⋅ 10
−4− 6.5 ⋅ 10
−4− 5.11 ⋅ 10
−3− 0.99999 7.69 ⋅ 10
−30.99995 − 5.12 ⋅ 10
−3⎛
⎝
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟
EsFmaFon de pose
Pose relaFve
EsBmer la pose relaBve entre 2 images :
◦ Tâche de suivi de cible
◦ Faible erreur de suivi
◦ p
*pose désirée
◦ p pose courante
◦ Trouver e = p - p
*p
p
*R
ce
R
c*R
oEsFmaFon de pose
Pose relaFve
Soit : Avec :
Soit : Avec :
F ! = L
FC
cF ! vitesse des primitives dans l'image
L
Fmatrice d'interaction (Jacobien image) C
ctorseur cinématique de R
c!
e = L
eC
cL le Jacobien de la pose
EsFmaFon de pose
Pose relaFve
On obBent :
ApproximaBon au 1 er ordre : Avec :
!
e = L
eL
+FF ! avec L
+F= ( ) L
TFL
F −1L
TFe ≈ L
eL
+F( F − F
*) pour F − F
*petit.
F
*les primitives en p
*F les primitives en p
EsFmaFon de pose
Pose relaFve
Si les primiBves sont les coordonnées x i y i de n points (pix) :
L
F=
− G
xZ
10 x
1Z
1x
1y
1G
y− G
x2+ x
12G
xy
1G
xG
y0 − G
yZ
1y
1Z
1G
y2+ y
12G
y− x
1y
1G
x− x
1G
yG
x! ! ! ! ! !
− G
xZ
n0 x
nZ
nx
ny
nG
y− G
x2+ x
n2G
xy
nG
xG
y0 − G
yZ
ny
nZ
nG
y2+ y
n2G
y− x
ny
nG
x− x
nG
yG
x⎛
⎝
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟ ⎟
⎟
F =
x
1y
1! x
ny
n⎡
⎣
⎢ ⎢
⎢ ⎢
⎢ ⎢
⎢
⎤
⎦
⎥ ⎥
⎥ ⎥
⎥ ⎥
⎥
EsFmaFon de pose
Pose relaFve
Si les angles sont exprimés avec la représentaBon angle/
axe :
L
e= R
c*c0 0 L
θu⎛
⎝ ⎜
⎜
⎞
⎠ ⎟
⎟ avec e = t
c*cθ u
⎡
⎣ ⎢
⎢
⎤
⎦ ⎥
⎥
L
θu= I
3− θ
2 ⎡⎣ ⎤⎦ u
×+ 1 − sinc θ sinc
2θ
2
⎛
⎝
⎜ ⎜
⎜
⎞
⎠
⎟ ⎟
⎟
⎡⎣ ⎤⎦ u
×2
et ⎡⎣ ⎤⎦ u
×=
0 − u
zu
yu
z0 − u
x− u
yu
x0
⎛
⎝
⎜ ⎜
⎜⎜
⎞
⎠
⎟ ⎟
⎟⎟
EsFmaFon de pose
Pose relaFve
Dans ce cas : D’où :
◦ Adapté au suivi de cible car e est maintenu peBt par l’asservissement visuel.
◦ Rapide car la pseudo-inverse peut être calculée au préalable.
◦ Imprécis quand e augmente.
L
e⎯ →
e⎯⎯
→0I
6e ≈ L
+F( F − F
*) pour F − F
*petit.
EsFmaFon de pose
Pose relaFve : exemple
Soit :
Qui correspond à :
On obBent alors:
t
c*c= ⎡ 0.1 0 0
⎣ ⎤
⎦
T
, θ = 0.1 rad et u = ⎡ 1 0 0
⎣ ⎤
⎦
T
F
*= ⎡ 500 333 833 333 375 250 500 0
⎣ ⎤
⎦
T
F = ⎡ 173.3 448.7 519.9 448.7 128.9 359.3 167.5 100.3
⎣ ⎤
⎦
T
L
+F( F − F
*) = 0.099 0.002 0.002 0.102 0.986 0.06 ⎡ − 0.15
⎣ ⎤
⎦
⎡
T⎣ ⎢
⎢
⎤
⎦ ⎥
⎥
T