Romain Vernoux Reconstruction d une scène 3D par stéréovision TIPE Informatique 2011 1
Table des matières Introduction 3 I. Modélisation des caméras 4 1. Espace projectif.............................. 4 2. La projection de E 3 dans E 2 est linéaire................ 4 2.1. Les rotations et les translations sont linéaires.......... 5 2.2. Les projections perspectives sont linéaires........... 5 3. Calcul de la matrice de projection.................... 6 3.1. Situation.............................. 6 3.2. Décomposition en Valeurs Singulières (SVD).......... 7 3.3. Trouver x qui minimise Ax et tel que x = 1........ 8 3.4. Algorithme de calcul de P par Transformation Linéaire Directe (DLT)............................ 8 II. Triangulation 9 1. Situation.................................. 9 2. Algorithme de triangulation DLT.................... 9 3. Condition d existence d une solution.................. 10 III. Suivi de la trajectoire 11 1. Algorithme naïf de détection de l objet................. 11 2. Algorithme de suivi de trajectoire.................... 11 IV. Un premier essai : cas idéal 12 1. Description de l expérience........................ 12 2. Résultats.................................. 12 V. Deuxième essai : en situation réelle 13 1. Description de l expérience........................ 13 2. Résultats.................................. 13 VI. Généralisation et extensions 14 1. Retour sur les hypothèses simplificatrices................ 14 2. Vision à n caméras............................ 14 3. D autres utilisations de la stéréovision.................. 14 Bibliographie 15 2
Introduction La stéréovision consiste en la localisation dans l espace d objets filmés simultanément sous des angles différents par au moins deux caméras en position générale. Cette opération se décompose en trois phases principales : La calibration des caméras, c est-à-dire la détermination des paramètres intrinsèques des capteurs L association (ou appariement), fait de reconnaitre sur chaque paire d images les pixels correspondant au même objet réel La reconstruction de la scène, ou le calcul des coordonnées des objets la constituant uniquement à partir des images fournies par les capteurs. Mon objectif est d étudier l aspect théorique de la reconstruction d une scène en trois dimensions, puis d implémenter ces algorithmes et de construire une version simplifiée du système Hawk-Eye. Actuellement utilisé dans les tournois de tennis comme une aide à l arbitrage, celui-ci propose une simulation en 3D du dernier échange et donne la position des impacts de balles avec une erreur moyenne annoncée de 3.6 mm, et cela uniquement à partir d images filmées par six caméras disposées autour du terrain. Figure 1 Ralenti 3D et jugement de l impact donnés par un système Hawk-Eye Ce modèle fera plusieurs hypothèses simplificatrices. Tout d abord, on s affranchira de l étape d appariement en nous limitant à la détection d une balle lumineuse sur un fond sombre. Ensuite, on remplacera, dans les calculs, l ensemble des lentilles composant les optiques des capteurs par une unique lentille équivalente convergente. Enfin, nous supposerons que cette lentille est immobile au cours du déplacement de l objet, une approximation correcte si celui-ci ne s écarte pas trop de sa position initiale. Nous verrons enfin que si la première simplification correspond à un épineux problème, les deux autres peuvent être aisément contournées. 3
I. Modélisation des caméras Afin de pouvoir exploiter les images filmées dans le processus de reconstruction de la scène, il est nécessaire de déterminer l application P qui à un point X de l espace associe son projeté x sur le capteur d une caméra. Après une courte introduction sur les espaces projectifs, nous montrerons que P est linéaire et calculerons sa matrice. 1. Espace projectif On définit l espace projectif E n comme suit. À chaque vecteur (x 1,..., x n ) de R n, on associe la classe d équivalence des vecteurs colinéaires à (x 1,..., x n, 1). On appelle E n l ensemble de ces classes d équivalence. En somme, on associe (x 1,..., x n ) à R (x 1,..., x n, 1) et inversement (z 1,..., z n, d) est associé à ( z 1 d,..., zn ). On appelle d coordonnées homogènes de x R n les composantes de n importe quel vecteur de E n associé à x. Figure 2 Interprétation graphique : on associe R n à l hyperplan affine d équation x n+1 = 1 dans R n+1 représentant E n. À tout vecteur (x 1,..., x n ) de R n, on associe la droite vectorielle passant par (x 1,..., x n, 1) et O. L espace projectif possède de nombreuses propriétés utiles dans la construction de scènes 3D. En particulier, certaines transformations non linéaires de R 3 le deviennent une fois que l on passe dans E 3. Nous allons ainsi montrer que l application P est linéaire. Dans toute la suite, on utilisera les coordonnées homogènes de manière systématique. 2. La projection de E 3 dans E 2 est linéaire On décompose cette transformation en un changement de repère d une part, nous permettant de passer du repère-monde R M à un repère R CAM aligné sur le centre optique de la lentille convergente de la caméra, et une projection perspective sur le capteur d autre part. Figure 3 Changement de référentiel : R M R CAM 4
2.1. Les rotations et les translations sont linéaires On décompose le premier changement de repère en une translation selon le vecteur T = O M O CAM puis une rotation R bien choisie. Cela constitue une application non linéaire de R 3 mais linéaire de E 3, dont voici la matrice : R T 0 0 0 1 X 1 = RX + T 1 2.2. Les projections perspectives sont linéaires Figure 4 Projection perspective dans R CAM Une fois dans le repère R CAM, la projection perspective sur R CAP T réalisée par la lentille équivalente convergente s écrit simplement : x = f X Z y = f Y Z Encore une fois, c est une transformation non linéaire de R 3 dans R 2, mais linéaire de E 3 dans E 2 ; en voici la matrice : f 0 0 0 0 f 0 0 0 0 1 0 X Y Z 1 = fx fy Z = f X Z f Y Z 1 5
3. Calcul de la matrice de projection 3.1. Situation J ai tout d abord tenté d établir la matrice P de projection correspondant à une caméra à partir des matrices précédemment données. Cependant, cela nécessite une connaissance précise de la position de O CAP T, le centre optique de la lentille et de la valeur de f, des données inconnues si l on utilise des caméras grand public. Une estimation de ces valeurs de l ordre du centimètre m a permis de construire un système commettant une erreur de 5 à 10% sur les mesures qu il effectue. Je propose ici une méthode de calcul de P bien plus précise et facilement automatisable. On place une mire de calibration dans le champ de la caméra. Cette mire est composée de n points X i dont on mesure les coordonnées dans le repère R M. On mesure par ailleurs la position de leurs projetés respectifs x i sur une image de la caméra. On dispose donc de n correspondances X i x i. Soit i {1,..., n}, alors x i = P X i. En coordonnées homogènes, les facteurs scalaires n ont pas d importance, on ne perd donc pas d information en écrivant x i P X i = 0. x y w P 1 P 2 P 3 yp 3 X i wp 2 X i X i = wp 1 X i xp 3 X i xp 2 X i yp 1 X i = 0 0 0 0 w t X i y t X i w t X i 0 0 0 0 x t X i y t X i x t X i 0 0 0 0 t P 1 t P 2 t P 3 = A 3,12. P = 0 Chaque correspondance ne fournit en fait que deux équations indépendantes étant donné que xl 1 + yl 2 = wl 3. Cela nous donne donc un système à 2n équations et 12 inconnues : A 2n,12. P = 0. On pourrait ne conserver que 11 équations indépendantes et trouver P comme un vecteur du noyau de A 11,12, mais cela donne trop d importance à une possible erreur de mesure ponctuelle. On prendra donc n > 6 et on cherchera à minimiser A 2n,12. P, tout en sachant que la solution P = 0 ne nous intéresse pas. Comme les facteurs scalaires n importent pas, on va minimiser A 2n,12. P avec la contrainte P = 1. 6
3.2. Décomposition en Valeurs Singulières (SVD) Soit m n et A M m,n (R). Il existe U M m,n (R) à vecteurs colonnes orthonormaux, V O n (R) et S D + n (R) à entrées décroissantes tels que Démonstration : A = US t V t MM S + n (R), donc d après le théorème spectral, il existe V O n (R), r n et D D + r (R) à entrées décroissantes tels que t V t MMV = D 0 r,n r 0 n r,r 0 n r,n r Soit, en décomposant en blocs compatibles de tailles bien choisies : t V 1 t V 2 t MM ( V 1 V 2 ) = t V t 1MMV 1 t V t 2MMV 1 t V t 1MMV 2 t V t 2MMV 2 = D (0) (0) (0) On note alors que t V1MMV t 1 = D, MV 2 = 0 et on rappelle que V O n (R) donc V1 t V 1 + V2 t V 2 = I n Reste à poser U 1 = MV 1 D 1/2 M m,r (R) et à la compléter avec U 2 M m,n r (R) formée de vecteurs orthogonaux entre eux et orthogonaux aux vecteurs colonnes de U 1 de manière à former U = (U 1 U 2 ) M m,n (R). On vérifie alors que t U 1 U 1 = D 1/2. t V 1. t M.M.V 1.D 1/2 = D 1/2.D.D 1/2 = I r t UU = t U 1 t U 2 ( U 1 U 2 ) = t U 1 U 1 t U 1 U 2 t U 2 U 1 t U 2 U 2 = I r (0) (0) I n r = I n D 1/2 (0) En prenant par ailleurs S =, on vérifie que (0) (0) ( ) U.S. t V = MV 1 D 1/2 D 1/2 (0) t V 1 U 2 = MV 1 t V 1 = M(I n V2 t V 2 ) = M (0) (0) t V 2 Soit le résultat annoncé. 7
3.3. Trouver x qui minimise Ax et tel que x = 1 Soit m n et A M m,n (R). On effectue la décomposition SVD de A. Ax = US t V x = S t V x et x = t V x. En posant y = t V x, cela revient à minimiser Sy y. S étant diagonale à entrées positives décroissantes, on trouve y = (0,..., 0, 1) et comme x = V y, x est la dernière colonne de V. 3.4. Algorithme de calcul de P par Transformation Linéaire Directe (DLT) Objectif : À partir de n 6 correspondances X i x i, déterminer la matrice de projection P telle que x = P X. Algorithme : Pour tout i {1,..., n} calculer A (i) 2,12. Fusionner les n matrices A (i) 2,12 pour former A 2n,12. Effectuer la décomposition SVD de A 2n,12. La dernière colonne de V contient les coefficients de P. Amélioration : Le système dont on cherche une solution approchée est l intersection de n systèmes yp 3 X i wp 2 X i = 0 wp 1 X i xp 3 X i Or en pratique, x et y sont de l ordre de 10 2 et w = 1. En minimisant A 2n,12 P, on fait donc de plus grosses erreurs sur P 1 et P 2 que sur P 3. On voudrait ainsi x, y et w du même ordre de grandeur. De même, on veut éviter qu une partie A (i) 2,12 du système ait un plus grand «poids» qu une autre, il faudrait donc que cet ordre de grandeur soit le même pour tous les x i. Ce raisonnement s applique aussi aux X i. On rajoute de ce fait une étape préliminaire à l algorithme précédent : on calcule une matrice T (resp. T ) qui centre le nuage des x i (resp. X i ) sur l origine et telle que la moyenne des normes des x i (resp. X i ) égale 2 (resp. 3). On aura alors les T x i de l ordre de (1, 1, 1) et les T X i de (1, 1, 1, 1). On applique notre algorithme à ces nouvelles correspondances T x i T X i et l on retourne T 1 P T au lieu de P. 8
II. Triangulation Maintenant que l on connait les matrices de projection associées aux différentes caméras, on souhaite retrouver la position X d un objet de l espace uniquement à partir des positions x i des images de cet objet sur les capteurs des caméras. 1. Situation Figure 5 Objet vu par deux caméras Pour une caméra, on a x = P X, que l on écrira plutôt x P X = 0 : x P 1 yp 3 wp 2 y P 2 X = wp 1 xp 3 X = 0 w P 3 xp 2 yp 1 Encore une fois, ce système ne contient que deux équations indépendantes. On en conserve les deux premières, auxquelles on joint les équations provenant de la deuxième caméra : yp 3 wp 2 wp 1 xp 3 y P 3 w X = A 4,4.X = 0 P 2 w P 1 x P 3 2. Algorithme de triangulation DLT Objectif : À partir d un couple (x, x ) d images par deux caméras (P, P ) du même point réel, calculer les coordonnées de ce point. Algorithme : Calculer A 4,4. Effectuer sa décomposition SVD. X est la dernière colonne de V. 9
3. Condition d existence d une solution En pratique, à cause des erreurs de mesure et de l utilisation de flottants, ce système est déterminé, d où l intérêt d appliquer le même algorithme DLT, qui nous fournit lui une solution approchée non nulle. Figure 6 Cas idéal (en haut) et cas pratique (en bas) À quelle condition un point de l espace est-il filmé par les deux caméras? Figure 7 L objet doit être dans l intersection des champs de deux caméras 10
III. Suivi de la trajectoire On sait désormais, à partir des images de l objet sur les capteurs, déterminer sa position dans l espace. Reste donc d une part à produire un algorithme capable de détecter effectivement l objet sur une image et d autre part à appliquer tous les algorithmes précédents à une série d images correspondant au film de l objet en mouvement. 1. Algorithme naïf de détection de l objet Objectif : Détecter un objet lumineux unique sur une image de p q pixels. Algorithme : Convertir l image en une matrice p q. Pour chaque pixel, calculer sa luminance Y = 0, 299R + 0, 587G + 0, 114B. Calculer le contraste moyen et établir un seuil de détection. Le point cherché est le barycentre des pixels dont la luminance est supérieure à ce seuil. 2. Algorithme de suivi de trajectoire Objectif : À partir de deux séries de photographies simultanées de la même scène en mouvement, déterminer la trajectoire d un objet donné. Algorithme : Calibrer les deux caméras avec l algorithme DLT. Pour chaque image, détecter l objet avec l algorithme précédent. Avec chaque couple d images, déterminer la position de l objet par triangulation DLT. Tracer la trajectoire en reliant les positions obtenues. 11
IV. Un premier essai : cas idéal 1. Description de l expérience Afin de tester ce système, j ai simulé une scène représentant le déplacement d une balle à l aide du logiciel 3ds Max. Celui-ci donne la position exacte de l objet au cours du temps et produit des images de la scène vue par des caméras virtuelles. Figure 8 Vue d ensemble de la scène et balle filmée par la caméra 2 2. Résultats Voici la superposition de la trajectoire exacte de la balle d une part, et de la trajectoire calculée avec l algorithme de suivi à partir des images simulées : Figure 9 Trajectoires théorique et expérimentale superposées, vues d ensemble et rapprochée L erreur relative mesurée (en module) est de l ordre de 0.10%. Si un tel système surveillait une surface de la taille d un demi-court de tennis, il ferait une erreur moyenne d environ 1 cm. 12
V. Deuxième essai : en situation réelle 1. Description de l expérience J ai enfin testé la capacité de ce système à suivre, en situation réelle, le mouvement d une balle de tennis rebondissant au sol. J ai pour cela utilisé deux appareils photo numériques grand public différents en mode vidéo. Figure 10 Mire de calibration et balle filmée par la caméra 2 2. Résultats La calibration n a pas posé de problèmes et la trajectoire déterminée correspond qualitativement au mouvement observé de la balle. Figure 11 Trajectoires estimées pour deux jets différents Il faut toutefois noter que l algorithme naïf de détection de la balle lumineuse a échoué sur plusieurs images et que la fin de la trajectoire, située dans l extrémité droite du champ de la caméra 1, a fait les frais des aberrations géométriques inhérentes à l objectif grand-angle de celle-ci. 13
VI. Généralisation et extensions 1. Retour sur les hypothèses simplificatrices Nous avons ici montré comment fabriquer un système de stéréovision relativement précis. Donnons maintenant quelques pistes d améliorations. Rappelons tout d abord les simplifications faites lors de l élaboration de ce système : le suivi d une unique balle lumineuse sur un fond sombre, la possibilité de modéliser l optique du capteur par une seule lentille convergente et enfin l immobilité de cette lentille. Sans revenir sur la première d entre elles, les deux dernières peuvent être écartées assez facilement. Pour ce qui est de la modélisation par une lentille convergente, il faudrait compenser les aberrations géométriques observées sur les bords des images. En fait, notre méthode de calibration, qui ne fait, en dehors de la linéarité, aucune hypothèse sur le type de projection, prend en compte toutes les déformations linéaires (dans l espace projectif). Pour les phénomènes plus complexes, on dispose de même déjà d une correction au premier ordre. Sans nous plonger davantage dans la gestion des aberrations, il serait relativement simple de calculer une matrice P générale pour l ensemble du champ de vision, puis des matrices plus précises pour chaque subdivision de l espace, réalisant une correction linéaire plus fine des aberrations dans une zone plus petite. La première nous fournirait une estimation de la position, la deuxième une mesure précise. Cette amélioration permettrait aussi de régler le problème de la lentille mobile, sa position dépendant de la mise au point donc de la position de l objet dans l espace. 2. Vision à n caméras Notre algorithme de triangulation DLT possède l avantage de facilement se généraliser à un système à n caméras. Le système A 4,4 X = 0 ayant pour solution la position de l objet est l intersection de deux systèmes A 2,4 X = 0 provenant des deux caméras. Pour n caméras, on obtiendra simplement un système A 2n,4 X = 0 duquel on pourra de la même manière obtenir une décomposition SVD. En ne joignant à ce système que les équations venant des caméras qui ont l objet dans leur champ de vision, on peut ainsi créer un système dont les capteurs se partagent l étendue d un court de tennis, par exemple. 3. D autres utilisations de la stéréovision Les systèmes permettant d effectuer des mesures en 3D à partir d image fournies par des caméras ont l avantage de ne pas être intrusifs et sont de plus en plus utilisés, dans des domaines très divers. Citons par exemple la restitution des reliefs à partir de photographies aériennes, les systèmes d aide au créneau pour les voitures et à l accostage en aérospatiale, de «Motion Capture» au cinéma, la détection des fronts de flamme dans les feux de forêts, la surveillance des piscines, la vision de robots et bien sûr les systèmes d arbitrage vidéo comme le Hawk-Eye. 14
Bibliographie Orteu, Jean-José, Calibrage géométrique d une caméra ou d un capteur de vision stéréoscopique, SCIRN-PRN Université du Maine, 2008. Durou, Jean-Denis et Pocquet, Anne-Marie, Vision par ordinateur, IRIT, 2007. Hartley, Richard et Zisserman, Andrew, Multiple View Geometry in computer vision, Cambridge University Press, 2003. Merci à Cédric Awanzino de Bertin Technologies pour ses précieux conseils et sa patience. 15