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