IFT 6145 Vision tridimensionelle Calibration II

Transcription

IFT 6145 Vision tridimensionelle Calibration II
IFT 6145
Vision tridimensionelle
Calibration II
Sébastien Roy
Département d’informatique et de recherche opérationelle
Université de Montréal
hiver 2005
En bref...
Pas dans le livre Trucco & Verri.
– Estimation analytique de la pose
Déterminer la pose
=
Calibration des paramètres externes.
(paramètres internes connus)
1
Méthode analytique
• Utilise 3 paires de points correspondants 2D-3D
• Pas de système d’équation linéaires (→ analytique)
2
Le problème
• Soit trois points 3D quelquonques u, v, et w. Ces points
représentent un triangle dans la scène.
• Le triangle d, e, f est l’image du triangle u, v, w
• Soit trois vecteurs d0, e0 et f 0 normalisés attachés à l’origine
et définis comme
d
d =
||d||
0
e
e =
||e||
0
f
f =
||f ||
0
• Soit le triangle a0, b0 et c0 décrivant un triangle dans le
système de la caméra, obtenu par
a0 = a d 0
b0 = b e 0
c0 = c f 0
o‘u a, b, c sont des scalaires.
3
Le problème
v
a’
b’
d
w
u
f’
c’
e
f
e’
d’
Monde
Caméra
Il faut donc trouver où placer a0, b0, c0 tels que le triangle
formé soit identique à u, v, w.
4
Le problème
Caméra
c’
b
w
a
Monde
v
b’
Luv
a’
u
Puisque a0 = a d0, . . . → équivaut à trouver a, b, c.
On peut transposer la longeur Luv du segment u, v du monde
vers le syst‘eme de la caméra.
→ On forme le triangle défini par les longueurs a, Luv , b
5
Quelques exemples
Hummm... plusieurs solutions possibles...
6
Reformulons le probème
Soit les longueurs des cotés du triangle u, v, w tels que
Luv = ku − vk
Lvw = kv − wk
Lwu = kw − uk
et a, b, c les longueurs des points a0, b0, c0.
a
Luv
h
t
b1
b2
b
Quel est le rapport entre a, b, et Luv ?
7
a
Luv
h
t
b1
b2
b
h = a sin θ
b1 = a cos θ
b2 = b − b 1
L2uv = h2 + b22
= a2 sin2 θ + b2 + a2 cos2 θ − 2ba cos θ
= a2 + b2 − 2ba cos θ
8
Équations de base
Si on applique sur chaque triangle (a, Luv , b), (b, Lvw , c),
(c, Lwu, a), on obtient
L2uv = a2 + b2 − 2ab cos θab
L2vw = b2 + c2 − 2bc cos θbc
L2wu = c2 + a2 − 2ca cos θca
→
→
→
⇒
on cherche a, b, c
on connait Luv , Lvw , Lwu
on connait cos θab, cos θbc, cos θca (parce que θab = θd0e0 , . . .)
trois systèmes à trois inconnues... hummm....
9
Solution
10
Solution
À partir des 3 équations de base, on obtient un polynome de
degré 4.
g4 x 4 + g 3 x 3 + g 2 x 2 + g 1 x + g 0 = 0
avec
Luv
a=√ 2
x − 2x cos θab + 1
La solution de ce polynome nous donne a, et on peut ensuite
retouver b et c directement par les équations de base.
– Il peut y avoir jusqu’à 4 solutions
– Les solutions complexes ou négatives sont éliminées
11
(Solution d’un polynome de degré 4)
ax4 + bx3 + cx2 + dx + e = 0
Solution analytique :
{x →
−b
−
4a
v
u
u
u
u
u
u b2
2c +
u 2 −3
a
u4 a
u
t
3a
2 c3 −9 b c d+27 a d2 +27 b2 e−72 a c e+
r
”
1“
2 3 c2 −3 b d+12 a e
“
”3 “
−4 c2 −3 b d+12 a e + 2 c3 −9 b c d+27 a d2 +
12
Retrouver la transformation
• Le triangle u, v, w définit un système de coordonnées par
rapport à la scène.
v
u
axex = v−u
axey = w−u
w
axez = (w−u)×(v−u)
• Le triangle a0, b0, c0 définit un système de coordonnées par
raport au système de la caméra.
→ La transformation est obtenue en comparant ces deux
systèmes d’axes.
13
Stabilité, Robustesse, Solutions multiples
Stabilité
Si les points a, b, c et u, v, w ne sont pas colinéraires, le
polynome n’est pas dégénéré et la solution est stable.
Robustesse
On utilise que 3 points. Que faire lorsque plus de points
sont disponibles ?
Solutions multiples
On obtient jusqu’à 4 solutions. Comment trouver la bonne ?
14
Robustesse
Avec plusieurs points...
• Résoudre toutes les permutation de 3 points possibles.
(1,2,3,4) → (1,2,3) (1,2,4) (1,3,4) (2,3,4)
• Pour chaque solution, reprojeter les points 3D non utilisés
selon la transformation obtenue
• Calculer l’erreur de reprojection avec les points 2D correspondants.
• La transformation qui minimise l’erreur gagne.
Une pierre, deux coups : le problème des solutions multiple
est disparu !
15