Recalage de vidéo et de modèle 3D SIG
Transcription
Recalage de vidéo et de modèle 3D SIG
Recalage de vidéo et de modèle 3D SIG Utilisation d’informations géométriques Rapport de Master Vincent Jantet Juin 2008 Encadrants : Luce Morin MCF à l’IFSIC - IRISA : Temics Gaël Sourimant Ingénieur de recherche - IRISA : Temics Résumé Ce document est un rapport de stage de fin d’étude, réalisé à Rennes, dans l’équipe TEMICS de l’IRISA. Le problème global s’inscrit dans le domaine de la génération automatique de modèles 3D d’environnement urbain texturé, en utilisant une caméra mobile. Ce rapport traite la partie du recalage initial entre les données vidéo et un modèle 3D incomplet préexistant, en utilisant des méthodes proches de celles utilisées en reconstruction. Plusieurs solutions sont disponibles dans l’état de l’art pour résoudre ce problème ouvert de recalage, mais la plupart sont mal adaptées aux informations disponibles, ou ne sont pas totalement automatisables. Elles n’utilisent généralement le contenu que d’une seule image, et n’exploitent pas complètement les données 3D issues d’un modèle SIG. La démarche développée ici, consiste à extraire de la vidéo, des informations géométriques concernant le relief perceptible, pour faciliter le recalage. La première étape consiste à délimiter approximativement la zone visible du modèle SIG, elle ne se base que sur des informations de position GPS et de déplacement caméra. La seconde étape utilise deux images de la vidéo judicieusement choisies, pour mettre en correspondance les contours et en déduire leurs coordonnées 3D. Cette mise en correspondance de contour se base sur une méthode de suivi de points dans la vidéo, et sur une estimation robuste (basé RANSAC) d’homographie. La dernière étape effectue le recalage final en comparant le modèle calculé au modèle SIG. Elle se concentre sur la position du plan vertical principal visible dans la vidéo, estimée encore une fois de façon robuste (basé RANSAC), puis en détermine les contours et les utilise pour effectuer le recalage final. Cette solution a été appliquée sur des séquences réelles, et fonctionne déjà correctement sur des cas simples. 3 Table des matières 1 Introduction 1.1 Présentation du contexte . . . . . . . . . . . . . 1.2 Fondements théoriques . . . . . . . . . . . . . . 1.2.1 Équations de projection . . . . . . . . . 1.2.2 Géométrie épipolaire . . . . . . . . . . . 1.2.3 Reconstruction 3D . . . . . . . . . . . . 1.2.4 Recalage . . . . . . . . . . . . . . . . . . 1.3 Etat de l’art . . . . . . . . . . . . . . . . . . . . 1.3.1 Image seule . . . . . . . . . . . . . . . . 1.3.2 Images multiples . . . . . . . . . . . . . 1.3.3 Estimation robuste . . . . . . . . . . . . 1.3.4 Solution précédente de l’équipe TEMICS 1.4 Nouvelle solution proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Estimation du mouvement de la caméra 2.1 Suivi de points d’intérêt . . . . . . . . . . . . . . . 2.2 Estimation robuste de F, puis de E . . . . . . . . . 2.3 Calcule de la pose relative [R|t] . . . . . . . . . . . 2.4 Estimation d’une pose approximative de la caméra 2.4.1 Principe . . . . . . . . . . . . . . . . . . . . 2.4.2 Alignement de tGP S et tCamera . . . . . . . . 3 Extraction de la structure géométrique 3.1 Géométrie Épipolaire . . . . . . . . . . . . . . 3.1.1 Projection sur les droites épipolaires . 3.1.2 Calcul de F à partir de la pose relative 3.2 Reconstruction 3D des points d’intérêt . . . . 3.2.1 Calcul de la profondeur . . . . . . . . . 3.2.2 Résultats . . . . . . . . . . . . . . . . 3.3 Reconstruction d’une ligne en 3D . . . . . . . 3.3.1 Détection des contours rectilignes . . . 3.3.2 Mise en correspondance de segments . 3.3.3 Positionnement du segment en 3D . . . 3.4 Conclusion . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 8 8 9 10 11 12 12 13 15 16 19 . . . . . . 21 21 22 23 23 23 23 . . . . . . . . . . . 27 27 27 28 29 30 30 31 31 32 35 35 4 Recalage final 4.1 Recherche du plan principal . . . . . . . . . . . 4.2 Sélection des primitives contenues dans ce plan . 4.3 Détection des limites de la façade . . . . . . . . 4.4 Mise en correspondance 2D-3D et calcul de pose 4.5 Résultats et conclusion . . . . . . . . . . . . . . 5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 37 38 39 39 39 41 6 Chapitre 1 Introduction Générer un modèle 3D photo-réaliste d’une zone urbaine est un travail fastidieux s’il est fait à la main. Cependant, de nombreuses applications comme les visites virtuelles ou la cartographie, en sont friandes. En effet, le modèle 3D offre à l’utilisateur un confort supplémentaire et une immersion plus importante. On peut citer par exemple l’application Google Earth avec son complément Sketchup, ainsi que leur équivalent Microsoft Virtual Earth 3D, qui permettent de construire et d’explorer en 3D un environnement urbain. Il serait intéressant de pouvoir générer ces modèles, rapidement et à moindre coût, en automatisant au maximum toutes les étapes. Ce chapitre sert d’introduction au problème, avant les explications détaillées de la solution adoptée. – Il expose pour commencer le contexte dans lequel se situe l’équipe TEMICS, en introduisant le problème qu’elle se pose. – Il détaille ensuite les notations et quelques fondements mathématiques qui seront utilisés par la suite. – Il résume enfin un vaste état de l’art des méthodes automatiques de recalage, en attachant une attention particulière à la solution précédemment utilisée dans l’équipe TEMICS. – Il annonce pour finir les différentes étapes d’une nouvelle méthode, détaillée dans toute la suite du document. 1.1 Présentation du contexte Les données SIG (Acronyme pour "Système d’Information Géographique") sont des données géographiques géo-référencées, qui contiennent entre autre les contours au sol, et la hauteur de chaque bâtiment. Cette base de données permet de représenter les bâtiments sous forme de polyèdres simples comme on peut le voir sur la figure 1.1, mais ne contient ni les textures des façades, ni leur géométrie précise (portes, fenêtres, ...). L’idée suivie par l’équipe TEMICS à l’IRISA est de se baser sur les données SIG, puis de raffiner le modèle en lui appliquant des textures issues d’une vidéo faite autour des bâtiments. Ce problème a fait l’objet de la thèse de Gaël Sourimant [1], mais nécessite au préalable un recalage entre la vidéo et le modèle 3D, c’est à dire qu’il faut connaître pour chaque image de la séquence, la position de la caméra exprimée dans le repère des données SIG. Ainsi, la projection perspective du modèle SIG dans les images doit 7 (a) Représentation 2D (b) Représentation 3D Figure 1.1 – Représentation planaire et 3D des données SIG. correspondre aux contours réels des bâtiments. L’acquisition des coordonnées GPS de la caméra permet un premier recalage peu précis, mais qui limite l’espace de recherche lors du calcul de pose plus précis. Le calcul de la pose pour la première image de la séquence est particulièrement critique pour la suite des traitements. Pour les images suivantes, la pose calculée à l’instant précédent fournit une initialisation confortable alors que la phase d’initialisation n’a aucune connaissance a priori sur la pose. La première solution de l’équipe TEMICS est un recalage semi-interactif mis en oeuvre par G. Sourimant [1], où une intervention humaine est nécessaire. Elle a été automatisée par T. Colleu [2] mais présente des résultats pas toujours satisfaisants lorsque les arêtes des bâtiments sont peu contrastées. L’objectif du stage est donc de poursuivre les travaux de l’équipe sur le recalage initial, en proposant une initialisation qui tire parti d’informations 3D extraites de la vidéo afin de combler les lacunes de l’approche précédente. Les méthodes qui pourraient être utilisées par la suite pour calculer la pose de chaque image et pour raffiner le modèle ne sont pas abordées ici, mais peuvent être trouvées dans d’autres publications telle que celle de G. Sourimant [1]. 1.2 Fondements théoriques Cette section présente les bases théoriques nécessaires à la compréhension de la méthode de recalage que nous proposons dans ce document. Elle présente trois points importants, que sont : – Les équations de projection, qui sont à la base de la vision par ordinateur. – La géométrie épipolaire, qui apparaît lorsque l’on a plusieurs images d’une même scène. – La reconstruction d’un point 3D à partir de deux images le représentant. 1.2.1 Équations de projection Dans une image, les coordonnées de chaque pixel sont liées à celles du point physique qu’il représente par les équations de projections. Avec M un point physique de coordonnées homogènes (X, Y, Z, 1), le pixel m qui le représente a pour coordonnées dans 8 l’image : X x Y y ≡ P × Z 1 1 La matrice de projection P peut se décomposer en séparant d’une part les paramètres intrinsèques de la caméra, notés K, et d’autre part les paramètres extrinsèques de pose, notés [R|t]. P = K[R|t] Ces différents paramètres sont expliqués dans les sections suivantes. Paramètres intrinsèques Les différents paramètres liés à l’objectif de la caméra et aux déformations qu’il engendre sur les images sont regroupés dans une matrice K de taille 3 × 3. On y trouve : – Le couple (u0 , v0 ) qui représente les coordonnées de la projection dans l’image du centre optique de la caméra. – La distance focale f de la caméra, c’est à dire la distance entre le centre optique et le plan image. – Le couple (ku , kv ) qui sont des paramètres dépendants de la taille des pixels. – Un paramètre de déformation α qui sera supposé nul par la suite. f kx α u0 K = 0 f ky v0 0 0 1 On suppose ici que la caméra est déjà calibrée, c’est à dire que la matrice K est déjà connue. Si ce n’est pas le cas, il est possible d’effectuer le calibrage à partir de la vidéo, en utilisant les travaux présentés dans [4, 5]. Paramètres extrinsèques Les paramètres extrinsèques de la caméra sont les six degrés de liberté qui définissent sa position dans le référentiel absolu. Ils sont représentés sous la forme d’une matrice [R | t] contenant une matrice de rotation R, et un vecteur de translation t. [R | t] = R tx ty tz La matrice R représente la rotation entre le repère RC de la caméra et le repère absolu R0 , qui pour nous correspond au repère des données SIG. La translation t représente le déplacement entre les origines de ces deux repères, exprimé dans le repère caméra RC . 1.2.2 Géométrie épipolaire Lorsque une scène est photographiée de deux points de vue différents, alors les primitives des deux images I et I 0 vérifient automatiquement la géométrie épipolaire, quelle 9 que soit la géométrie de la scène. En plus d’être très utile dans l’estimation de mouvement de la caméra, la géométrie épipolaire possède d’autres propriétés, qui permettent d’augmenter la précision de la reconstruction. Figure 1.2 – Représentation de la géométrie épipolaire Pour chaque point physique M , la géométrie épipolaire découle de l’existence d’un unique plan épipolaire passant par ce point M et par les centres optiques des deux images C et C 0 . A partir d’un pixel m de l’image I, il n’est pas possible de connaître les coordonnées exactes du point 3D qu’il représente, mais on sait que ce point 3D est positionné sur la demi-droite [C; m) appelé ligne de vue. Le pixel m0 est donc positionné sur la droite épipolaire, définie comme l’intersection du plan image I 0 et du plan épipolaire. 1.2.3 Reconstruction 3D Les projections ne sont pas des fonctions injectives, et projeter un point 3D dans une image a pour effet de “perdre” la profondeur du point. Il est cependant possible de retrouver les coordonnées 3D d’un point M si l’on connaît les coordonnées des pixels m et m0 qui le représentent dans deux images I et I 0 . Bien sûr, il faut pour cela que les poses P et P 0 des deux images ne soient pas dans une configuration dégénérée. Il faut en pratique que les deux centres optiques des caméras soient distincts. R. Hartley et A. Zisserman proposent une méthode générique pour calculer les coordonnées 3D du point M à partir de deux vues, qui s’applique quelles que soient les matrices de projections P et P 0 . En utilisant les équations de projections, qui sont m ≡ P M pour l’image I et m0 ≡ P 0 M pour l’image I 0 , leur solution consiste à calculer les coordonnées 3D du point M qui vérifient au mieux les équations de projections. En développant ces équations, on trouve un système de six équations à résoudre, qui sont fortement liées entre elles. λx = p11 X +p12 Y λy = p21 X +p22 Y ( λ = p31 X +p32 Y +p13 Z +p14 +p23 Z +p24 et de même pour m0 ≡ P 0 M +p33 Z +p34 ) × x Une écriture matricielle de ces mêmes équations permet d’appliquer des méthodes géné10 riques pour les résoudre. X p11 − p31 x p12 − p32 x p13 − p33 x p14 − p34 x p − p y p − p y p − p y p − p y Y 21 31 22 32 23 33 24 34 × =0 0 0 0 0 0 0 0 0 0 0 0 0 p11 − p31 x p12 − p32 x p13 − p33 x p14 − p34 x Z 1 p021 − p031 y 0 p022 − p032 y 0 p023 − p033 y 0 p024 − p034 y 0 ⇐⇒ A×M =0 Pour trouver les coordonnées de M , il suffit de faire une décomposition de A en valeurs singulières par une méthode classique, pour ensuite récupérer le vecteur propre associé à la valeur propre nulle. En pratique, il n’y a jamais de valeur propre nulle, mais on utilise comme point M le vecteur associé à la valeur propre la plus petite. 1.2.4 Recalage Le problème du recalage consiste à trouver la transformation géométrique qui permet de faire se superposer deux ensembles de données. Dans le cadre de la vision par ordinateur, le recalage consiste à trouver la pose de la caméra, qui permet de projeter chaque point 3D d’un modèle sur le pixel de l’image qui lui correspond. Ainsi, le modèle 3D projeté sur une caméra virtuelle ayant cette pose se superpose correctement au contenu de l’image. Image | + Modèle 3D {z } Recalage Incorrect Correct A partir d’une image ou d’une vidéo, connaître avec précision les paramètres extrinsèques de la caméra est très intéressant pour la suite. Cela permet par exemple d’asservir le mouvement de la caméra réelle afin d’accomplir un certain objectif comme la saisie d’un objet. Il est également possible de l’utiliser pour raffiner le modèle 3D par des informations géométriques supplémentaires, ou par des informations de texture, comme c’est le cas dans les travaux de G. Sourimant [1] 11 1.3 Etat de l’art Le problème du recalage initial entre un modèle 3D et une photo ou une vidéo, est très étudié depuis les années 1980. De nombreuses solutions ont été proposées, utilisant des procédés variés. Historiquement, les premières méthodes ont été manuelles ou semimanuelles, et une intervention humaine était nécessaire au long du processus [6]. Notre approche se veut complètement automatisable, et dans cette optique, nous avons détaillé ici les méthodes les plus adaptées aux données dont nous disposons. La première classe de méthodes présentée, se base uniquement sur une image pour estimer la pose de celle ci. La seconde classe de méthodes utilise plusieurs images pour parvenir au même objectif, avec une légère distinction entre les méthodes travaillant directement avec les images, et celles qui calculent d’abord une reconstruction de la scène. Nous verrons ensuite un algorithme fondamental d’estimation robuste, appelé Ransac, puis une description précise de l’algorithme utilisé précédemment par l’équipe TEMICS. 1.3.1 Image seule Toutes les méthodes permettant de faire du recalage à partir d’une seule image ont des organisations similaires. Elles commencent par extraire de l’image certaines primitives intéressantes qui peuvent être des points, des lignes ou d’autres structures remarquables. Ces primitives sont ensuite mises en correspondance avec des éléments du modèle 3D. Enfin, le calcul de pose peut être effectué, pour aligner ces correspondances 2D-3D. Extraction de primitive Les primitives peuvent être de plusieurs types. Ce sont parfois des points de l’image qui sont des points précis du modèle 3D, ou bien des lignes de l’image, représentant des arêtes du modèle 3D à recaler [7, 8, 9]. Une méthode intéressante utilise les points particuliers que sont les points de fuites pour aider au recalage. Ces points de fuite peuvent être extraits d’une image par des méthodes comme celles de C. Rother [10]. Parmi leurs multiples utilisations envisagées [11, 12], il est possible de les utiliser pour faire un recalage, si on les met en correspondance avec les points de fuite récupérés dans le modèle 3D. Cependant, il y a en général un nombre très restreint de points de fuite pouvant être extraits d’une image, et bien souvent, seulement deux sont vraiment marqués. Ces primitives sont ensuite mises en correspondance avec les éléments du modèle 3D qu’elles représentent. L’étape suivante est de calculer la pose qui aligne au mieux ces correspondances. Le but final étant que les éléments 3D soient bien projetés dans l’image aux emplacements des primitives qui leur sont associées. Calcul de pose Le calcul de pose est un problème non linéaire, très étudié dans le domaine de la vision par ordinateur. En partant d’une pose initiale approximative, et d’un ensemble de primitives en correspondance, le problème revient à calculer une nouvelle pose qui réduit l’écart au modèle. Les algorithmes POSIT [13] et SOFTPOSIT [14] sont parmi les plus répandus. La solution proposée par E. Marchand [15] est similaire, et cherche à faire 12 Figure 1.3 – Points de fuite extraits d’une photo en zone urbaine. converger la pose par un asservissement sur sa vélocité, c’est à dire son déplacement. Le déplacement v de la pose est représenté par trois valeurs de translation, et trois valeurs de rotation. h i v = tx ty tz rx ry rz Ce déplacement est estimé par la loi de commande : v = −λ(Ls )+ (s(C) − s∗ ) La matrice d’interaction Ls est la matrice jacobienne qui s’écrit : " # λ cos θ λθ sin θ −λθ ρ −ρ cos θ −ρ sin θ −1 Ls = θ λρ cos θ λρ cos θ −λρ ρ (1 + ρ)2 sin θ −(1 + ρ)2 cos θ 0 La pose est mise à jour itérativement, en lui appliquant le déplacement v calculé à l’étape précédente, jusqu’à ce que ce déplacement devienne négligeable. En théorie, il y a six paramètres à estimer, ce qui implique que seuls trois couples de points ou de droites en correspondance sont nécessaires au calcul de la pose. En pratique, pour éliminer les configurations dégénérées et améliorer le résultat, c’est un ensemble de primitives un peu plus gros qui est utilisé. Conclusion Ces algorithme se basant sur une seule image, ils évitent une reconstruction 3D difficile. Il existe cependant une autre classe d’algorithmes utilisant pour leur part plusieurs images et s’aidant d’informations géométriques pour effectuer le recalage. Certains de ces algorithmes sont présentés dans la section suivante. 1.3.2 Images multiples L’utilisation de plusieurs images permet de récupérer un certain nombre d’informations géométriques sur la scène à recaler. Certaine méthodes favorisent des traitements 13 rapides, en ne récupérant que le minimum d’informations géométriques, alors que d’autres font à partir des images une reconstruction 3D complète de la scène, et utilisent ce modèle reconstruit pour le recaler avec le modèle 3D. Méthodes basées images Les équations de projections montrent que des points coplanaires en 3D, sont projetés de façon cohérente dans les images. Ils respectent des homographies entre les images. Une méthode de recalage se base sur cette idée, et cherche les plans visibles dans les images en repérant des ensembles de points dont le déplacement apparent est une homographie [16]. Elle utilise ensuite ces plans visibles pour les mettre en correspondance avec des plans 3D connus et calculer la pose. C’est une méthode qui marche bien à condition qu’au moins trois plans soient visibles dans les images. Avec moins de plans, le recalage est plus approximatif. Méthodes basées pseudo-modèle 3D Certaines méthodes effectuent le recalage plutôt dans des repères 3D, en effectuant une reconstruction de la scène à partir des images. Les méthodes les plus simples n’utilisent l’ensemble des images que pour calculer une carte de profondeur plus ou moins fine [17]. Les méthodes les plus évoluées font une complète reconstruction de la scène en calculant les coordonnées 3D d’un ensemble de points [3, 11] ou d’un ensemble de lignes [18]. Ce pseudo-modèle de la scène, peu précis à cause du bruit dans les images, est ensuite utilisé pour être recalé directement avec le modèle 3D. Une méthode traditionnelle de recalage entre deux modèles 3D, est l’utilisation d’un algorithme ICP, détaillé dans la section suivante. Il est également possible d’utiliser ce modèle 3D reconstruit pour extraire des primitives d’un niveau supérieur, comme les plans, qui sont invisibles dans les images de base. Les méthodes par balayage de plan peuvent être utilisées à cette fin, et sont détaillées dans la section d’après. Algorithme ICP L’algorithme “Iterative Closest Point” ou “ICP” est très utilisé pour effectuer un recalage entre deux modèles 3D. En connaissant N correspondances (~ ai ; b~i ) entre les primitives des deux modèles A et B, il est possible de calculer la transformation optimale qui superpose au mieux ces correspondances. Cette transformation T doit minimiser l’erreur quadratique M (T ) définie par : M (T ) = 1 X ~ d(bi , T (~ ai ))2 N La principale difficulté est donc de trouver les bons appariements entre les différentes primitives des modèles à recaler. On peut résoudre ce problème en choisissant de mettre en correspondance les primitives du modèle A avec les primitives les plus proches du modèle B. Après le calcul de T , la pose n’est pas parfaite à cause des mauvais appariements qui ont été considérés. Le principe de l’algorithme est donc d’itérer un recalage en utilisant les primitives les plus proches comme association, jusqu’à obtenir une stabilisation. Cela 14 permet de remettre en cause les correspondances faites à une étape, pour les refaire de façon plus précise à l’étape suivante une fois la pose un peu mieux définie. Cette méthode s’adapte bien à des types de primitives autres que les points, du moment que l’on peut calculer une distance entre elles. P. J. Besl et N. D. McKay [19] donnent par exemple une formule de calcul pour la distance entre un point p~ et un triangle T (s~1 , s~2 , s~3 ), qui est : d(p, T ) = min(u,v,w)∈E (kus~1 + v s~2 + ws~3 − p~k) avec E = {(u, v, w) ∈ [0; 1]3 , u + v + w = 1} P. J. Besl et N. D. McKay [19] démontrent que cet algorithme converge vers un minimum local, et proposent d’augmenter la probabilité de converger vers le minimum global en utilisant plusieurs fois l’algorithme, à partir d’états initiaux différents. Balayage de plan (Plane Sweeping) La méthode par balayage de plan (Plane Sweeping) consiste à estimer un des paramètres d’un plan (la profondeur) dont les deux autres paramètres (l’orientation) sont déjà connus. En connaissant les trois paramètres du plan, il est possible de connaître les homographies que doivent vérifier les points du plan entre les différentes images. Il est difficile d’estimer l’homographie que vérifie chaque pixel de l’image, mais il est plus simple de connaître quels pixels de l’image vérifient une certaine homographie. Sur ce constat, l’algorithme de Plane Sweeping va tester plusieurs paramètres de profondeur, jusqu’à trouver celui qui aboutit à une homographie effectivement présente dans l’image. Cela permet donc de connaître les pixels représentant un point sur le plan supposé. En faisant varier la profondeur du plan, il est possible de détecter de petits reliefs, comme des fenêtres ou des portes. Un inconvénient cependant à cette méthode est de ne pas fonctionner sur des zones uniformes de l’image, où les pixels peuvent vérifier un grand nombre d’homographies. 1.3.3 Estimation robuste La plupart des méthodes précédentes font des mises en correspondance de primitives, mais pour être assurées que les vrais couples en correspondance ont bien été considérés, elles génèrent bien souvent de faux couples, qui ne sont en réalité pas en correspondance. Ces associations aberrantes perturbent les algorithmes d’estimation de paramètres si ces derniers ne sont pas robustes. L’algorithme RANSAC, abréviation de “RANdom SAmple Consensus” [20], est un algorithme robuste d’estimation de paramètres. Son principe de base est générique et s’adapte bien à l’estimation de la matrice fondamentale F vue précédemment, à l’élimination des fausses associations ou encore à l’estimation de l’équation du plan passant par un nuage de points 3D dont la plupart sont coplanaires. L’implémentation de l’algorithme RANSAC est le suivant : – La première étape est de sélectionner aléatoirement parmi toutes les données disponibles, un ensemble plus petit, et souvent minimal, permettant d’estimer le modèle. – Ce petit échantillon est supposé ne contenant pas de données aberrantes, et est donc utilisé pour estimer les paramètres par une méthode d’estimation non robuste. 15 – Le modèle obtenu est testé sur le jeu de données complet. Les données ne suivant pas le modèle, c’est à dire dont la distance au modèle est supérieure à un seuil S, sont appelées des outliers. A l’inverse, les données proches du modèle sont appelées des inliers et font partie de l’ensemble de consensus. Leur nombre est représentatif de la qualité du modèle estimé. – Les étapes précédentes sont réitérées tant que le nombre d’inliers n’est pas suffisant, c’est à dire que l’hypothèse que l’échantillon ne contenait pas de données aberrantes n’est pas vérifiée. Si le taux de données aberrantes n’est pas trop important dans l’ensemble de départ, alors la probabilité est forte que l’hypothèse soit vérifiée après un nombre fini N d’itérations. – Le plus grand ensemble de consensus sélectionné aux étapes précédentes est donc un sous ensemble du jeu de données initial, qui ne contient pas de données aberrantes. Il est utilisé pour estimer les paramètres finaux du modèle. Les constantes S et N de l’algorithme doivent être connues avant l’utilisation de l’algorithme ou peuvent être estimées au cours de l’algorithme pour le rendre plus général. 1.3.4 Solution précédente de l’équipe TEMICS La solution précédente utilisée dans notre l’équipe a été proposée par T. Colleu [2]. Elle effectue le recalage initial entre une vidéo issue d’une caméra mobile, et un modèle 3D issu de données SIG. Elle se scinde en deux grandes étapes : – La première étape associe des données GPS et issues de la vidéo pour effectuer une estimation approximative de la pose. L’estimation de la position et de l’orientation de la caméra permet d’identifier la zone du modèle SIG présente dans la vidéo. – La seconde étape utilise une estimation du contexte géométrique [21] pour associer les lignes de contour visibles dans la première image aux arêtes du modèle. Le calcul de la pose précise est ensuite effectué par la méthode d’asservissement visuel d’E. Marchand [15] décrite précédemment. Recalage approximatif Le recalage approximatif est une étape importante puisqu’elle permet de réduire le modèle SIG et de ne se focaliser que sur les primitives visibles dans la vidéo. Son principe est de faire coïncider les informations de translation contenues dans la séquence vidéo avec celles issues de données GPS. – Le vecteur déplacement de la caméra dans le repère absolu est immédiatement déduit des informations GPS prélevées en même temps que la vidéo. – Le vecteur déplacement de la caméra dans le repère de la caméra est calculé à partir de deux images de la vidéo dont un certain nombre de points sont mis en correspondance. C’est une méthode classique en vision par ordinateur [3], qui est mieux détaillée dans le chapitre 2. Aligner ces deux déplacements permet d’obtenir la relation liant le repère caméra au repère global, c’est à dire la pose. Ce calcul approximatif sert deux objectifs. Il permet d’une part de réduire le modèle SIG aux seules primitives visibles dans la séquence vidéo, et sert d’autre part d’initialisation au recalage précis, qui fait l’objet de la section suivante. 16 Recalage précis Le recalage précis utilise les travaux de D. Hoiem, A. A. Efros et M. Hebert sur l’extraction de contexte géométrique [21] pour effectuer la mise en correspondance des lignes de contour visibles dans la première image, avec les arêtes du modèle 3D. Le recalage précis s’effectue en deux étapes : – La première étape consiste à extraire de l’image les contours rectilignes, puis à filtrer ces lignes en utilisant une estimation du contexte géométrique [21]. Seules les lignes représentant le plus probablement des arêtes de bâtiment sont conservées. – La seconde étape recherche des correspondances parmi ces lignes et le modèle SIG par une approche basée RANSAC, et calcule la pose précise par une méthode de convergence décrite par E. Marchand [15]. Extraction et labellisation des primitives Les lignes de contour présentes dans la première image de la vidéo sont extraites par une méthode traditionnelle. L’algorithme de Canny [7, 8] appliqué sur l’image permet de détecter les pixels de contour, et une transformée de Hough probabiliste [9] sur ces contours permet de récupérer les alignements de contours visibles. Parmi toutes les primitives de l’image, seul un petit nombre correspond effectivement aux arêtes des bâtiments. Il est donc important de filtrer ces lignes et ainsi limiter les correspondances possibles. La phase de mise en correspondance, expliquée par la suite, en sera largement facilitée en raison de l’élimination de certaines correspondances aberrantes. Une méthode ingénieuse est proposée pour effectuer ce tri, et se base sur l’estimation de contexte proposée dans [21], dont l’implémentation est disponible sur Internet. Cet algorithme s’applique à une image, et classifie chaque pixel selon qu’il appartient au ciel, au sol ou à une paroi verticale. Cet algorithme permet également de détecter les zones poreuses, qui représentent généralement la végétation. Le résultat de cette classification est représenté sur la figure 1.4. (a) Image originale (b) Classification par contexte Figure 1.4 – Résultat d’une classification par contexte : en bleu le ciel, en vert le sol et en rouge fléché les façades des bâtiments. 17 En utilisant cette classification, il devient possible de labelliser les lignes détectées par l’algorithme de Hough en fonction des zones qu’elles délimitent le mieux. Pour cela, on réutilise les algorithmes de détection de contours expliqués précédemment (Canny + Hough) mais cette fois sur la carte représentant chaque classe. Le résultat est une linéarisation des frontières des classes. Pour déterminer ce que représentent probablement les lignes de l’image, il suffit de calculer leurs distances aux frontières de classes. Cela permet de les labelliser suivant qu’elles représentent plutôt une arête de ciel (frontière entre une façade et le ciel), une arête de sol (frontière entre une façade et le sol) ou bien une arête verticale (frontière entre deux façades). Les lignes ne se rapprochant d’aucune frontière de classes sont directement supprimées car elles ne représentent probablement rien de géométrique. La figure 1.5 représente les lignes du contour qui ont été conservées après comparaison à la carte des classes, et après labellisation en fonction de ce qu’elles délimitent le plus probablement. Figure 1.5 – Lignes conservées et labellisées, en bleu les arêtes de ciel, en vert les arêtes de sol, et en rouge les arêtes verticales. Mise en correspondance Cette même opération de labellisation des lignes peut être faite sur les arêtes du modèle SIG. A l’aide de la pose approximative, les arêtes du modèle 3D probablement visibles dans la première image sont extraites, et labellisées en fonction de ce qu’elles délimitent. Le recalage précis consiste ensuite à mettre en correspondance des lignes de contour et des arêtes, et à calculer la pose permettant une bonne superposition des deux ensembles. La mise en correspondance s’effectue entre les lignes de contour et les arêtes du modèle qui ont le même label. Même après la phase d’élimination des lignes éloignées d’un contour de classe, il reste encore un grand nombre de lignes issues de l’image. Elles sont donc mises en correspondance avec les arêtes du modèle par un algorithme basé RANSAC. Les différentes poses calculées par la méthode d’asservissement visuel [15], sont testées 18 en fonction du nombre de correspondances entre lignes qu’elles vérifient. La pose faisant correspondre le plus de lignes est conservée comme résultat de recalage final. Limites et discussions Les résultats obtenus par l’association d’un classificateur par contextes géométriques, et d’un algorithme de recherche de correspondances (comme RANDSAC), sont satisfaisants, mais ne sont pas toujours parfaits. On remarque par exemple que le recalage représenté par la figure 1.6 est incorrect, puisque l’arête au pied du bâtiment s’est recalée avec la frontière de l’ombre. La véritable ligne délimitant le pied du bâtiment n’avait pas été considérée comme importante lors de la détection de contour (Canny et Hough), erreur due à des seuils de détection trop élevés. Figure 1.6 – Résultat final du recalage. Pour effectuer le recalage précis, utiliser les contextes géométriques pour limiter les couples de droites potentiellement en correspondance est une idée innovante, peu souvent exploitée. Cependant, la classification est une des étapes longues de l’exécution du programme, alors que seule une infime partie des résultats qu’elle fournit est utilisée par la suite. En effet, sur les sept classes détectées par l’algorithme, seuls les contours linéaires de cinq d’entre elles sont utilisés pour labelliser les lignes. 1.4 Nouvelle solution proposée La solution que nous détaillons dans ce document est inspirée de la méthode précédente utilisée dans l’équipe TEMICS. Elle se décompose également en un recalage approximatif, suivi d’un recalage précis, mais leurs approches du recalage précis diffèrent largement. Dans ce document, le recalage précis utilisé fait intervenir un modèle 3D reconstruit à partir de la vidéo. Il se place donc dans la catégorie des méthodes basées pseudo-modèle, vue à la section 1.3.2. 19 Le chapitre 2 présente les méthodes traditionnelles d’estimation de mouvement, à partir d’une vidéo. Il détaille également une méthode de calcul d’une pose approximative qui découle de ce mouvement estimé. Cette méthode est une amélioration de celle proposée par T. Colleu [2]. Le chapitre 3 utilise l’estimation de mouvement effectuée au chapitre précédent, pour reconstruire la scène visible dans la vidéo. Il détaille deux méthodes de reconstruction qui n’utilisent pas les mêmes primitives des images. La première utilise des points, alors que la seconde utilise des segments. Le chapitre 4 décrit une méthode pour effectuer le recalage final, en utilisant les modèles reconstruits au chapitre précédent. Le chapitre 5 conclut sur les points forts de notre approche, et propose quelques améliorations qui doivent être apportées pour pallier aux points faibles de la méthode. 20 Chapitre 2 Estimation du mouvement de la caméra Les méthodes de reconstructions géométriques les plus répandues se basent sur un petit nombre de prises de vue différentes d’une même scène. Dans le cadre qui nous occupe, les objets à reconstruire sont figés puisque ce sont des bâtiments. Il est donc possible d’utiliser différentes images d’une vidéo prises par une caméra mobile. Les clichés ne sont pas pris au même instant, mais cela n’a pas d’influence puisque la scène n’est pas modifiée entre les différents instants. La première phase consiste donc à sélectionner dans la séquence vidéo, les images-clés qui seront utilisées pour la reconstruction, et à calculer la pose relative de la caméra, c’est à dire son déplacement, entre les différentes prises de vue. Ce chapitre détaille les trois étapes qui décomposent cette estimation de mouvement, et consacre une quatrième partie à la description d’une méthode de calcul très approximative de la pose qui utilise cette estimation. – La première partie définit un certain nombre de points d’intérêt et les suit dans la vidéo. Cela permet de définir des pixels dans les images-clés qui représentent les mêmes points physiques. – La seconde partie utilise ces pixels mis en correspondance pour estimer les relations épipolaires qui lient les images-clés. Ces relations épipolaires dépendent directement des poses relatives des prises de vue. – La troisième partie utilise cette géométrie épipolaire pour calculer les poses relatives des images-clés. – La dernière partie utilise cette pose relative pour calculer une pose approximative permettant de restreindre le modèle à la zone visible dans la vidéo. 2.1 Suivi de points d’intérêt Dans la vidéo d’une caméra en mouvement, des objets statiques semblent pourtant se déplacer. Pour réussir à suivre des points dans la vidéo, il faut que ceux-ci soient judicieusement choisis. Il est par exemple impossible de suivre un élément dans une zone uniforme de l’image, si celui ci n’est pas contrasté avec le fond. L’algorithme de suivi de 21 Kanade, Lucas et Tomasi (KLT) [22] permet de suivre des points d’intérêt, définis comme des pixels dont le gradient est élevé dans les deux directions de l’image. Cet algorithme de suivi se base sur la texture de l’image dans un petit voisinage autour des points d’intérêt. Malheureusement, de nombreuses zones de l’image sont similaires. C’est le cas des secteurs presque uniformes, ce qui ne pose pas trop de problèmes puisque ceux-ci ne contiennent pas de points d’intérêt. Par contre, c’est également le cas des zones situées à la frontière de deux secteurs presque uniformes, qui elles peuvent comporter des points d’intérêt selon la définition de l’algorithme. Les points d’intérêt positionnés sur ces frontières sont instables, et sont mal suivis d’une image à l’autre. Ils “glissent” progressivement le long de la frontière, et finalement, ne représentent plus du tout le même point physique. Grâce à cet algorithme de suivi, les points d’intérêt définis dans la première image I de la vidéo sont mis en correspondance avec leurs homologues dans l’image I 0 , plus loin dans la séquence. Pour éviter d’exécuter l’algorithme de suivi jusqu’à la fin de la séquence vidéo, celui-ci est interrompu à une image-clé définie manuellement, à condition que le mouvement apparent des points d’intérêt soit suffisant pour estimer correctement la matrice fondamentale F , ce qui fait l’objet de la partie suivante. 2.2 Estimation robuste de F, puis de E A partir des correspondances entre les points mi de l’image I et m0i de l’image I 0 , il est possible de retrouver la géométrie épipolaire, c’est à dire la matrice fondamentale F qui vérifie les équations : T ∀i : m0i ∗ F ∗ mi = 0 L’estimation de cette matrice F nécessite au moins sept couples de points en corrélation. A cause des erreurs de suivi et du bruit dans l’image, une estimation robuste est nécessaire, et est faite par une méthode basée RANSAC (RANdom SAmple Consensus) comme expliqué dans [3]. L’idée est de prendre sept couples de points aléatoirement dans l’ensemble des couples mis en corrélation, et de s’en servir pour calculer la matrice F . Si un des couples utilisés est aberrant, la matrice F ainsi calculée ne correspondra pas à la réalité, et elle ne sera pas adaptée pour décrire la plupart des autres couples de points de l’échantillon. On attribue donc une note à la matrice F , en fonction du nombre de couples de l’échantillon qui font partie de l’ensemble de consensus, c’est à dire qui sont proches du modèle estimé par F (avec une marge d’erreur ). Si la note est trop basse (il faut définir un seuil), alors la matrice F calculée est considérée comme fausse, et on recommence avec un nouvel ensemble de couples aléatoires. Statistiquement, on finira par tirer un ensemble de couples ne contenant pas d’élément aberrant, et on finira par trouver une matrice F proche de la réalité. On pourra alors utiliser cette matrice F qui maximise l’ensemble de consensus pour supprimer les points aberrants (les outliers) qui ne suivent pas le modèle. Puisque l’on a supposé que la matrice des paramètres intrinsèques K de la caméra était connue, il est possible de calculer la matrice essentielle E qui représente le mouvement relatif de la caméra entre les deux images. E = KT ∗ F ∗ K 22 Il ne reste plus qu’a décomposer cette matrice E en valeurs singulières pour retrouver les paramètres extrinsèques RCamera et tCamera de la caméra, ce qui fait l’objet de paragraphe suivant. 2.3 Calcule de la pose relative [R|t] R. Hartley et A. Zisserman [3] détaillent une méthode pour récupérer la pose relative de la caméra à partir de la matrice essentielle E. Constatant que la translation est, au signe et à la norme près, le vecteur propre de E associé à la valeur propre nulle, ils utilisent une décomposition en valeurs singulières (SVD : Singular Value Decomposition) pour exprimer simplement RCamera et tCamera . Cette méthode ne permet pas de connaître l’amplitude du déplacement. En effet, il n’est pas possible de savoir, uniquement à partir de la vidéo, si la caméra effectue un petit mouvement autour d’une maquette, ou un grand déplacement autour d’un vrai bâtiment. Pour résoudre ce problème, nous avons mis à l’échelle l’amplitude du mouvement, en utilisant la norme du vecteur déplacement fourni par le GPS. La rotation RCamera reste inchangée, alors que la translation tCamera est multipliée par une constante pour devenir de norme égale à la translation tGP S 2.4 Estimation d’une pose approximative de la caméra L’estimation approximative de la pose de la caméra est une étape importante pour réduire la taille du modèle SIG à étudier. En connaissant à peu près la pose de la caméra, il est possible de ne conserver du modèle que les primitives qui sont effectivement visibles dans la vidéo. 2.4.1 Principe Les données GPS à l’instant initial de la vidéo sont converties dans le repère global R0 pour donner une approximation à 5m près de la position de la caméra C. Pour estimer l’orientation de la caméra, c’est à dire la matrice de rotation RC , l’idée est de faire coïncider le vecteur de déplacement extrait des données GPS, avec le vecteur de déplacement extrait de deux images de la séquence. Entre l’instant initial et un autre instant plus loin dans la séquence, les données GPS fournissent directement le déplacement tGP S de la caméra dans le repère R0 . De ces mêmes instants-clés, on peut extraire le déplacement tCamera de la caméra dans le repère RC par une approche de type SFM (Structure from Motion) [3] comme on l’a vu précédemment. L’alignement du vecteur tGP S avec le vecteur tCamera permet de trouver l’orientation de la caméra dans le repère R0 . 2.4.2 Alignement de tGP S et tCamera Les vecteurs de déplacement tGP S et tCamera sont dus au même déplacement physique de la caméra, mais ils ne sont pas exprimés dans le même repère. Avec la notation R2 RR1 23 pour la rotation entre le repère R1 et R2 , on peut définir le point C 0 dans le repère R0 de deux façons différentes : C 0 R0 = = R0 CR0 + tGP S RRC ∗ tCamera + CR0 On a donc : tCamera = R0 RRC −1 ∗ tGP S En utilisant cette équation, il n’est possible de calculer que deux des trois degrés de liberté de la rotation RC RR0 . La solution proposée par T. Colleu [2] fait l’hypothèse que la caméra est portée “normalement”, c’est à dire qu’elle est orientée dans le plan du sol (ni pointée vers le ciel, ni pointée vers le sol) et qu’elle est tenue droite (pas inclinée). Cela permet de fixer deux des paramètres de la rotation, et n’en laisse qu’un seul à estimer. L’apport que nous proposons ici est de libérer un des degrés de liberté sur l’inclinaison de la caméra. L’angle que forme son axe de vue et le plan horizontal peut être estimé, à condition que le mouvement ne soit pas dégénéré. Figure 2.1 – Orientation de la caméra dans le repère R0 . Les hypothèses nous amènent à prendre l’angle ψ = 0 pour l’angle de rotation de la caméra autour de l’axe optique. Les informations GPS étant peu précises sur les données d’altitude, on considérera toujours que le déplacement de la caméra s’effectue dans le plan ~ Y~ ) du repère R0 . Le plan du sol, dans le repère caméra RC , contient donc horizontal (0, X, les vecteurs tCamera et xC . Il a pour vecteur normal ~n ≡ tCamera ∧ x~C , avec ~n unitaire. L’angle φ de la caméra correspond à l’angle entre l’axe optique et l’axe vertical Z du repère R0 . Il peut être calculé dans le repère caméra comme l’angle entre l’axe optique zC et le vecteur normal au sol ~n. Pour finir, l’angle θ représente (à π2 près) l’angle entre les vecteurs X et xC , qui ne sont pas exprimés dans le même repère. Il peut être calculé en s’aidant du vecteur déplacement, qui d’une part est lui aussi situé dans le plan du sol, et d’autre part est exprimé dans les deux repères. π \ \ θ − = (X, xC ) = (X, tGP S ) − (xC \ , tCamera ) = θGP S − θCamera 2 24 (a) Translation tCamera dans le repère RC . (b) Translation tGP S dans le repère R0 . Figure 2.2 – Représentation des vecteurs tCamera et tGP S Le résultat de ce recalage approximatif est représenté sur la figure 2.3. On remarque que les arêtes du modèle SIG projetées sont bien présentes dans l’image, mais ne se superposent pas parfaitement aux contours présents dans celle-ci. Dans la pratique, l’erreur d’alignement réalisée par cette méthode est suffisamment faible pour que des primitives du modèle SIG projetées puissent être retrouvées dans l’image. Le calcul de pose plus précis, permettant de superposer les contours de l’image et les arêtes du modèle SIG, fait l’objet des chapitres suivants. Figure 2.3 – Recalage approximatif effectué par identifications du déplacement dans l’image, et du déplacement GPS. 25 Chapitre 3 Extraction de la structure géométrique L’utilisation d’une seule image présente des risques de confusion entre une arête de bâtiment et le contour d’une ombre, ce qui était un point limitant de la méthode de T. Colleu [2]. Pour éviter de mettre en correspondance des primitives 3D avec des détails de l’image qui ne sont pas représentatifs de la structure géométrique, l’idée qui a été retenue est d’extraire la géométrie de la scène à partir de la vidéo, et de s’en servir pour faire des mises en correspondance entre la vidéo et le modèle SIG. Ce chapitre présente les solutions employées pour effectuer l’extraction de la structure géométrique, qui sont des méthodes de reconstruction très étudiées dans le domaine de la reconstruction 3D. Après une première partie consacrée aux gains de précision qu’apporte la géométrie épipolaire dans la reconstruction, nous étudierons deux méthodes de reconstruction. Le première, basée sur des points, est plus simple à mettre en oeuvre, mais possède un taux élevé de points aberrants. Le seconde, basée sur des contours rectilignes visibles dans la vidéo, a l’avantage d’éliminer naturellement les objets qui ne sont pas des constructions humaines. 3.1 Géométrie Épipolaire La géométrie épipolaire, présentée dans la section 1.2.2, est une aide précieuse pour comprendre la structure géométrique de la scène observée. Nous verrons dans un premier temps comment elle peut être utilisée pour améliorer la mise en correspondance de points, effectuée par la méthode de suivi. Puis nous verrons dans un second temps, une méthode pour calculer la matrice F , représentative de cette géométrie épipolaire, à partir du mouvement de la caméra. 3.1.1 Projection sur les droites épipolaires Les différents pixels m et m0 en correspondance entre deux images, devraient vérifier la géométrie épipolaire m0t F m = 0. En pratique, les pixels en correspondance issus de l’algorithme de suivi ne respectent pas tout à fait cette géométrie, ce qui pose un problème lors de l’estimation des coordonnées 3D du point physique qu’ils représentent. En effet, 27 on calcule les coordonnées du point 3D comme étant l’intersection des deux lignes de vue, mais si le couple de pixels ne vérifie pas la géométrie épipolaire, cela signifie que les lignes de vue ne se coupent pas. Pour forcer l’intersection des lignes de vue, et ainsi améliorer la précision des algorithmes de reconstruction, le principe est de ne pas directement utiliser les couples en correspondance issus de l’algorithme de suivi, mais de ré-effectuer cette mise en correspondance de points. C’est le point m00 , calculé comme étant le projeté orthogonal du point m0 sur la droite épipolaire associée à m, qui est considéré comme en correspondance avec ce dernier. Pour calculer les coordonnées de ce point m00 , il est important de constater qu’elles doivent vérifier un certain nombre d’équations. Premièrement, ce point m00 est sur la droite épipolaire associée à m, il vérifie donc l’équation m00t F m = 0. Une façon plus simple de voir les choses est de considérer le vecteur n~1 = F m comme le vecteur normal au plan épipolaire dans le repère R2 . M étant dans le plan épipolaire, on a m00 n~1 = 0. Ensuite, le point m00 est le projeté orthogonal du point m0 sur la droite épipolaire, il est donc sur la droite passant par m0 , et orthogonal à la droite épipolaire. Cette droite peut être représentée par le plan la contenant, et passant par le centre optique de la caméra, qui est facilement caractérisable puisqu’il contient le point C 0 , le point m0 et le projeté du vecteur F m dans le plan image. Un de ses vecteurs normaux est n~2 = proj(F m) ⊗ m0 , avec proj(x, y, z) = (x, y, 0) Étant à l’intersection de ces deux plans, le point m00 est sur la droite passant par C 0 et de vecteur directeur n~1 ⊗ n~2 Enfin, le point m00 doit être en coordonnées homogènes, c’est à dire que sa troisième et dernière coordonnée vaut 1. D’un point de vue géométrique, cela signifie simplement que le point m00 est dans le plan image. Les coordonnées de m00 sont donc exprimables directement à partir des coordonnées de m, m0 et de la matrice F par : m00 = homog(F m ⊗ (proj(F m) ⊗ m0 )) avec homog(x, y, z) = ( xz , yz , 1) La distance entre le point m0 et son projeté m00 est représentative de l’erreur de suivi du point m. Une distance de quelques pixels est fréquente et vient le plus souvent d’un glissement du point sur un contour, et dans ce cas, la méthode expliquée ici permet d’améliorer légèrement les résultats de reconstruction. Cependant, si cette distance est grande comparée à un seuil de tolérance, cela signifie probablement que l’algorithme de suivi a commis une erreur, et le couple de points soi-disant en correspondance est ignoré, éliminant ainsi un certain nombres d’outliers. Dans la suite des explications, nous considérerons que les points en correspondance vérifient la géométrie épipolaire, et pour simplifier les notations, nous confondrons les points m0 et m00 . 3.1.2 Calcul de F à partir de la pose relative A partir des couples de points mis en correspondance par l’algorithme de suivi, il est possible d’estimer la matrice fondamentale F comme on l’a vu précédemment. Cependant, 28 Figure 3.1 – Calcul du point m00 , projeté du point m0 sur la droite épipolaire à cause des nombreuses erreurs de suivi, cette matrice F n’est qu’une approximation de la véritable géométrie épipolaire. De plus, lors de l’estimation du mouvement de la caméra, un certain nombre de nouvelles approximations sont faites. Utiliser directement cette matrice F pour la suite n’est pas conseillé. Il est préférable de recalculer la géométrie épipolaire à partir de la pose relative des caméras, pour que la matrice F soit cohérente avec la matrice de passage d’un repère image à l’autre. Le calcul de F à partir de la rotation R et de la translation t de la caméra entre les deux prises de vue est grandement détaillé dans le livre de R. Hartley et A. Zisserman [3]. En travaillant dans le repère image RI de la première image, on a P = K[I|0] et P 0 = K[R|t] les deux matrices de projections pour les images I et I 0 . L’équation de F qui a été utilisée s’écrit alors : F = K −T [t]× RK −1 avec la notation : 0 −t3 t2 0 −t1 [t]× = t3 −t2 t1 0 3.2 Reconstruction 3D des points d’intérêt Puisqu’un certain nombre de points d’intérêt des images I et I 0 ont été mis en correspondance par la méthode de suivi, il est possible d’utiliser ces correspondances pour reconstruire en 3D chaque point d’intérêt. La méthode de reconstruction d’un point, présentée dans la section 1.2.3 peut être utilisée sur chaque couple en correspondance. Cette section consacre cependant une première partie à expliquer une autre méthode de reconstruction, plus adaptée à notre problème. La seconde partie présente les résultats de reconstruction obtenus sur une séquence réelle. 29 3.2.1 Calcul de la profondeur La seconde méthode s’intéresse uniquement à la profondeur des points, qui est l’information manquante lorsque l’on n’a qu’une seule image. Nous ne l’expliquons que dans le cas simplifié, mais très courant, où la pose P est la matrice identité 3 × 4. Elle peut cependant tout à fait se généraliser à des poses P et P 0 quelconques. Si la projection P est supposée être l’identité, les coordonnées de M peuvent s’écrire directement à partir du pixel m, à un coefficient de profondeur λ près, ce qui simplifie également la seconde équation de projection. ! λm M= 1 µm0 = [R|t] M = λRm + t et Afin de résoudre ce système simplement, il suffit de l’écrire sous la forme AX = B et d’appliquer une méthode classique de résolution, basée elle aussi sur une décomposition en valeurs propres de A. " # −λ [Rm|m0 ] × =t µ 3.2.2 Résultats L’implémentation de la reconstruction présentée ci-dessus fournit des résultats semblables à celle présentée à la section 1.2.3, à condition que la géométrie épipolaire soit bien respectée. Si ce n’est pas le cas, cela signifie que les lignes de vue ne s’intersectent pas, et les deux approches ont alors des comportements différents. La méthode de l’état de l’art renvoie les coordonnées du point qui minimise l’erreur, c’est à dire du point le plus proche des deux lignes de vue. La projection de ce point 3D dans les images ne donne pas exactement les pixels m et m0 . A l’inverse, la solution qui vient d’être présentée fournit la profondeur du point dans les deux images. Cela a comme avantage de fournir deux points 3D, l’un se projetant exactement en m dans l’image I et l’autre en m0 dans I 0 . Cette seconde solution a également l’avantage d’être plus simple à calculer puisque la matrice à décomposer en valeurs propres est de taille 3 × 2, soit beaucoup plus petite que celle de la solution initiale, qui est de taille 4 × 4. Le résultat de cette reconstruction des points d’intérêt est un nuage de points présenté dans la figure 3.2. Principalement à cause des algorithmes de suivi, qui commettent quelques erreurs dans l’appariement des pixels, ce nuage n’est pas parfaitement représentatif de la scène, mais permet déjà un certain nombre de traitements. La vue de profil permet de constater l’existence de deux plans principaux, que sont le sol et une façade du bâtiment. L’arête au sol du bâtiment, même si elle n’était pas facilement détectable dans les images, à cause d’une ombre ou d’une occlusion, devient décelable dans ce modèle 3D, comme l’intersection des deux plans. 30 (a) Vu de face (b) Vu de profil Figure 3.2 – Nuage de points 3D. 3.3 Reconstruction d’une ligne en 3D Le nuage de points 3D reconstruit précédemment représente en général bien la structure géométrique de la scène, mais contient également un grand nombre de points aberrants. Pour éviter de reconstruire des points d’intérêt disposés dans la végétation, nous avons décidé de focaliser notre attention sur les contours rectilignes présents dans la vidéo. Ces contours rectilignes étant bien souvent causés par des constructions humaines, cette méthode met naturellement les façades en évidence. Cette partie est consacrée à la reconstruction en 3D des lignes présentes dans les images. – Le premier point explique la méthode employée pour détecter ces lignes. – Le second point détaille la mise en correspondance de ces segments entre les images I et I 0 . – Le troisième point se consacre à la méthode de reconstruction appliquée cette fois à des correspondances entre segments. 3.3.1 Détection des contours rectilignes Le principe est d’extraire de l’image les contours, et de chercher ensuite des alignements dans ces contours. Détecter les contours dans une image revient à chercher les pixels dont le gradient est élevé. Il existe plusieurs algorithmes de détection de contours, et celui qui a été retenu est l’algorithme de Canny [7] qui est un des plus classiques. Son exécution se fait en trois temps. – Dans un premier temps, l’image est lissée par une convolution avec un filtre gaussien. L’image ainsi floutée contient moins de contours provenant simplement du bruit. – Dans un second temps, le gradient est calculé en chaque pixel, en appliquant à l’image les filtres de Sobel. Seuls les maxima locaux du gradient peuvent représenter des contours, les non-maxima sont donc directement éliminés. – Finalement, la différenciation des contours se fait par un seuillage à hysteresis de l’intensité du gradient. C’est à dire que les gradients de valeurs supérieures à un seuil haut sont considérés comme des contours, ceux de valeurs inférieures à un 31 seuil bas sont éliminés, et ceux entre les deux seuils ne sont conservés que s’ils sont connectés à un point de contour. Le résultat de l’algorithme est donc une image binaire, représentée sur la figure 3.3(a), dont les pixels notés Vrai sont les points de contour. (a) Contours de Canny (b) Alignement de Hough Figure 3.3 – Détection de contours linéaires Une fois les contours détectés, l’utilisation de la transformée de Hough permet de repérer des alignements dans ces contours. Cette transformée consiste à représenter l’ensemble des droites passant par un point comme une sinusoïde dans le repère des coordonnées polaires (θ, ρ) et à chercher des intersections entre ces courbes. Sans rentrer plus dans le détail, le résultat de l’algorithme est un ensemble de segments de droite, visibles sur la figure 3.3(b), positionnés sur des contours présents dans l’image. Les déformations dues à la caméra ont été modélisées par la matrice K des paramètres intrinsèques, mais celle-ci ne tient pas compte des légers rayons de courbures qui incurvent les lignes droites. Cette déformation nuit à la bonne détection des contours rectilignes, et devrait être compensée par un pré-traitement sur la séquence vidéo. 3.3.2 Mise en correspondance de segments Après avoir extrait les contours linéaires des images I et I 0 , il faut mettre en correspondance les paires qui représentent les mêmes arêtes physiques. Une méthode de suivi de contours dans la vidéo [23], analogue à la méthode de suivi de points d’intérêt, pourrait fonctionner. Cependant, un algorithme de suivi prend du temps à s’exécuter, et le suivi des points d’intérêt est important pour l’estimation de mouvement. Il nous a donc paru inutile d’exécuter juste après un algorithme de suivi de contours. La solution adoptée est donc de faire la mise en correspondance des segments entre les deux images, en se basant uniquement sur les points qui sont déjà en correspondance. Le principe général, synthétisé sur la figure 3.4, est le suivant : – Pour chaque segment de contour détecté dans l’image I, la première étape consiste à sélectionner parmi les points d’intérêt suivis, ceux qui le représentent le mieux, et qui ont donc un déplacement dans la vidéo semblable au déplacement de ce segment. – Une fois cette sélection effectuée, il est possible d’estimer le déplacement global de ces points, et donc d’inférer le déplacement du contour qu’ils représentent. Cela nous donne une position approximative dans l’image I 0 où chercher le contour en correspondance. – La dernière étape est donc de sélectionner parmi les contours détectés dans l’image I 0 , celui qui est le plus proche de ce contour estimé. Chacune de ces étapes est détaillée ci-dessous. 32 (b) Image I 0 avec le contour estimé et le vrai contour mis en correspondance. (a) Image I avec un contour mis en avant, et les points d’intérêt qui le décrivent. Figure 3.4 – Mise en correspondance de deux segments de I et I 0 qui représentent le même élément 3D. Recherche des points d’intérêt décrivant un segment Les points constitutifs du segment de contour ne sont en général pas considérés comme des points d’intérêt par l’algorithme de suivi. Cependant, les points d’intérêt étant répartis uniformément dans l’image I, il y en a un certain nombre qui sont “proches” de ce segment. Les pixels proches du segment dans l’image ont plus de chance de représenter des points proches du segment dans le monde 3D, et donc d’avoir des mouvements apparents semblables. Le choix qui nous a semblé le plus judicieux pour sélectionner les points d’intérêt proches du segment, est de prendre tous les points d’intérêt de l’image qui sont dans une ellipse de foyers les deux extrémités du segment, et de petit diamètre fixé. Connaissant les deux extrémités du segment, qui est l’information fournie par l’algorithme de Hough, il suffit de tester tous les points d’intérêt définis à l’étape de suivi, pour sélectionner ceux qui se situent dans l’ellipse. Un point m est situé à l’intérieur de l’ellipse de foyers s1 et s2 et de petit diamètre r s’il vérifie les équations : d(m, s1 ) + d(m, s2 ) ≤ q d(s1 , s2 )2 + 4 ∗ r2 = 2R où R est le grand rayon. Estimation robuste de l’homographie Il est connu que les points 3D coplanaires ont un déplacement apparent entre l’image I et l’image I 0 qui suit une homographie. Même si les points sélectionnés à l’étape précédente ne sont pas réellement coplanaires dans le repère 3D, nous allons tenter de définir le mouvement homographique qu’ils décrivent d’une image à l’autre. Cette estimation d’homographie est faite de façon robuste, en utilisant un algorithme RANSAC. Parmi les points d’intérêt appartenant à l’ellipse précédemment définie, plusieurs ensembles de 4 points sont sélectionnés aléatoirement, et utilisés pour définir l’unique homographie qu’ils vérifient. Ces différentes homographies sont testées sur l’ensemble de l’échantillon, et seule l’homographie faisant correspondre le plus de points d’intérêt est 33 conservée. Cette méthode permet de détecter les outliers, c’est à dire les couples de points ne vérifiant pas les hypothèses de coplanarité, et les empêcher de nuire à la bonne estimation de cette homographie. Connaissant l’homographie suivie par les points d’intérêt, il suffit de l’appliquer aux extrémités du segment de I pour obtenir la position approximative du segment associé dans l’image I 0 . Ce segment estimé n’est pas exactement situé sur un contour dans l’image I 0 , l’étape suivante est donc de trouver parmi les segments de contour de I 0 celui qui s’en rapproche le plus. Recherche du contour le plus proche Pour sélectionner parmi les segments de contour de l’image I 0 , celui qui est le plus proche du segment estimé, il suffit de définir une notion de distance, et de sélectionner le plus proche. Cette notion de distance doit faire intervenir un certain nombre de paramètres. Lors de la détection de segments de contour par les algorithmes de Canny et Hough, on remarque que la plupart des arêtes de bâtiments ne sont pas détectées dans toute leur longueur, mais seulement sur une partie où elles sont plus marquées. Le problème est que cette partie plus marquée peut varier entre l’image I et l’image I 0 , ce qui à pour conséquence que les extrémités du segments ne sont pas du tout les mêmes. Deux segments alignés doivent donc être proches, même s’ils ne se superposent pas. La figure 3.5 montre différents cas de figure et le comportement que doit avoir notre distance pour que des contours en correspondance soient proches. Figure 3.5 – Le segment S est très proche du segment 1, moyennement proche des segments 2 et 20 , et très éloigné du segment 3 La solution employée consiste à sommer les distances entre les extrémités d’un segment et la droite porteuse de l’autre. L’idée est similaire à celle proposée par M. Bleyer et M. Gelautz [17], sans pour autant négliger le cas où les segments s’intersectent en leur milieu. La figure 3.6 montre les quatre longueurs à sommer pour calculer la distance entre deux segments. La notion de distance définie par ce calcul ne vérifie pas l’inégalité triangulaire. Ce n’est donc pas une distance au sens mathématiques du terme, mais elle convient tout à fait à la recherche de couples de segments en correspondance. Après que chaque contour de l’image I ait été mis en correspondance avec un contour de l’image I 0 la reconstruction des segments en 3D est possible, et fait l’objet de la section d’après. 34 Figure 3.6 – Calcul de la distance entre deux segments 3.3.3 Positionnement du segment en 3D Après que les segments de contour aient été mis en correspondance, il ne reste plus qu’à les reconstruire en 3D pour obtenir un modèle approximatif de la scène visible dans la vidéo. Ne reconstruire que les extrémités des segments, en utilisant une méthode de reconstruction de points vue précédemment, n’est possible que si les extrémités des deux segments en correspondance représentent bien le même point physique. En général, ce n’est pas le cas puisque les segments de contour issus des images ne sont pas détectés dans toute leur longueur. Il faut donc redéfinir les extrémités des segments pour qu’ils forment eux-mêmes des points en correspondance. En utilisant conjointement les contraintes de la géométrie épipolaire, et le fait que les extrémités des segments ne peuvent se déplacer que selon la ligne porteuse du segment, il est possible de redéfinir de façon unique les extrémités des segments de l’image I 0 pour qu’ils soient en correspondance avec ceux des segments de l’image I. La méthode de reconstruction basée sur les points peut donc s’appliquer, donnant les résultats présentés dans la figure 3.7. (a) Vue de face (b) Vue de trois quarts (c) Vue de profil Figure 3.7 – modèle 3D généré par mise en correspondance des segments de contour. 3.4 Conclusion L’utilisation de plus de deux images-clés aurait permis de détecter certaines erreurs de reconstruction et ainsi d’améliorer grandement le modèle géométrique extrait. Cependant, le choix a été fait de n’utiliser que deux images-clés. Cette limitation rend la reconstruction plus approximative, mais l’objectif final étant plutôt de faire un recalage, il nous a semblé peu judicieux de complexifier encore la méthode de reconstruction pour gagner en réalisme sur le modèle calculé. L’utilisation de seulement deux images permet 35 l’extraction d’une structure géométrique de la scène convenable et exploitable pour effectuer le recalage. Le chapitre suivant est consacré à une méthode de recalage utilisant un de ces modèles reconstruits. 36 Chapitre 4 Recalage final Le modèle 3D reconstruit, issu de la vidéo, est une aide précieuse pour effectuer le recalage. Il est utilisé dans ce chapitre pour aider la mise en correspondance 2D-3D. En effet, la connaissance des paramètres du plan principal, visible dans la vidéo, permet d’en détecter plus facilement les contours, qui peuvent ensuite être mis en correspondance avec les arêtes 3D du modèle SIG. De cette façon, des détails de texture ne perturbent pas le bon recalage, qui s’effectue par des informations géométriques. La solution proposée dans ce chapitre se focalise sur la façade principale présente dans le modèle 3D reconstruit. Elle se décompose en quatre étapes, qui sont détaillées dans les sections suivantes : – La détection du plan du modèle reconstruit contenant le plus de primitives. Elle est faite par une approche RANSAC pour être robuste, à la fois aux erreurs de reconstruction, et aux primitives ne faisant pas partie de ce plan. Ce plan principal contient la façade du bâtiment la plus visible dans la vidéo. – La sélection de l’ensemble des primitives représentant un élément 3D de ce plan. Les primitives choisies sont encore une fois les segments, pour leur résistance au bruit. – La détection des limites de la façade principale qui contient toutes ces primitives. Ces limites sont des éléments des images qui ont un correspondant dans le modèle SIG. – La mise en correspondance des limites de cette façade principale et des arêtes du modèle qui leur sont associées, ce qui permet un calcul de pose plus précis. Cette dernière étape réutilise l’implémentation précédemment utilisée dans l’équipe TEMICS, présentée dans l’état de l’art. 4.1 Recherche du plan principal Le modèle 3D construit au chapitre précédent contient un grand nombre de primitives, réparties sur plusieurs plans, que sont le sol et les façades. Effectuer une régression linéaire en utilisant toutes les primitives fournirait l’équation d’un plan aberrant, ne représentant rien de réel. La solution adoptée est d’utiliser une approche RANSAC pour estimer les paramètres du plan contenant le plus de primitives. Un ensemble de quelques primitives du modèle est choisi aléatoirement et utilisé dans une régression linéaire, pour estimer l’équation d’un plan πC dans le repère caméra RC . 37 La connaissance de la matrice de passage T du repère global au repère caméra, qui est une réécriture de la pose P = [R|t], permet de calculer les paramètres de ce plan π dans le repère global RO . πC T M = 0 ⇐⇒ T t πC M = 0 ⇐⇒ π = T t πC ~ Dans le repère global R0 , le produit scalaire entre le vecteur π et le vecteur vertical Z fournit une indication sur l’inclinaison de ce plan. Si le plan est trop horizontal, c’est qu’il représente probablement le sol, ou un plan aberrant. Puisque c’est le plan contenant la façade principale qui nous intéresse, nous ignorons ce plan, et réitérons l’algorithme de RANSAC, comme si le plan générait un Ensemble de Consensus vide. A la fin de l’algorithme RANSAC, le plus grand Ensemble de Consensus obtenu ne contient que des primitives sur la façade principale, et une régression linéaire permet d’estimer l’équation de la façade principale. Le modèle reconstruit que nous avons utilisé pour cette étape est celui généré au chapitre précédent par la mise en correspondance de segments de contour. Il présente l’avantage d’avoir peu d’outliers, car la plupart des segments de l’image sont situés sur la façade. Il est également possible d’utiliser le modèle généré par la reconstruction des points d’intérêt. Même s’il présente un plus grand nombre d’outliers, il suffit d’augmenter le nombre d’itérations de l’algorithme RANSAC pour que l’estimation du plan principal soit tout aussi bonne. 4.2 Sélection des primitives contenues dans ce plan Le modèle reconstruit au chapitre précédent est trop bruité pour qu’il puisse être exploité directement pour récupérer les primitives contenues dans la façade principale. Il nous a semblé plus judicieux de revenir aux images, maintenant que l’équation du plan est connue. Lorsqu’elles sont appliquées à une scène plane, les équations de projection se transforment en une transformation homographique. Cela implique que les points en correspondance m et m0 dans deux images d’une scène plane suivent également une homographie. Celle-ci peut être calculée si les paramètres du plan π = (a, b, c, 1) et la pose relative des caméras Pr = [R|t] sont connus. Les équations sont données par R. Hartley et A. Zisserman [3] et sont rappelées ici : m0 = [R|t]M a = R − t cb m En testant cette homographie sur les primitives des images, il est possible de savoir si celles-ci sont dans le plan ou pas. Les primitives dans le plan vérifient cette homographie, alors que les autres ne la vérifient pas. Nous avons refait une détection de segments de contour par les algorithmes de Canny et Hough, mais en baissant les seuils, pour obtenir beaucoup plus de détails. Les primitives de l’image I qui après transformation par l’homographie se trouvent superposées à une primitive de l’image I 0 , sont considérées comme faisant partie du plan π. Un grand nombre de primitives sont ainsi détectées, restreintes à la petite zone de l’image où la façade est visible. Il est probable que les contours de la façade eux-mêmes 38 fassent partie de ces primitives sélectionnées. Il reste donc à les trouver, et à les mettre en correspondance avec les arêtes du modèle SIG. 4.3 Détection des limites de la façade Parmi tous les segments de contour présents sur la façade du bâtiment, nous sélectionnons ceux qui délimitent les limites de cette façade par une solution naïve. Nous parcourons la liste de ces segments pour récupérer ceux pratiquement horizontaux, qui sont situés le plus en haut dans l’image, et le plus en bas. De même nous récupérons ceux pratiquement verticaux situés le plus à gauche et le plus à droite. Cette solution commet souvent des erreurs, dues à la détection de segments de contour qui ne sont pas sur la façade, mais qui sont dans des plans proches, et donc suivent des homographies semblables. Il n’est donc pas possible de mettre en correspondance ces quatre frontières directement avec le modèle SIG. 4.4 Mise en correspondance 2D-3D et calcul de pose Puisque les segments de frontière sélectionnés à l’étape précédente ne sont pas les frontières réelles, mais en sont très proches, nous avons terminé le recalage par la méthode robuste utilisée précédemment dans l’équipe TEMICS. Les frontières détectées par notre algorithme sont légèrement décalées, mais fournissent tout de même une information de position approximative. La solution précédente implémentée dans l’équipe utilisait, pour obtenir des résultats similaires, une extraction de contexte géométrique, ce qui constituait une opération longue et coûteuse au vu du peu de résultats réellement exploités. Le principe est donc de récupérer toutes les frontières proches des limites détectées précédemment, et de les mettre en correspondance de façon robuste avec les arêtes du modèle 3D. 4.5 Résultats et conclusion La figure 4.1 montre les quatre frontières de façade extraites par cette méthode. On remarque dans cet exemple que les limites droite et gauche sont très bonnes, mais que les limites haute et basse sont mauvaises. Il n’est pas possible pour cette raison, de mettre directement ces frontières en correspondance avec les arêtes du modèle SIG. Il est nécessaire de faire une mise en correspondance robuste, en récupérant plus de primitives de l’image. Le principe du recalage final qui vient d’être proposé focalise son attention sur le seul plan principal. Cela ne lui permet pas de détecter correctement certaines limites de façade qui sont pourtant calculables à partir du modèle reconstruit, comme l’intersection de plusieurs plans. Une amélioration majeure de cette étape consistera donc à mieux tirer parti du modèle 3D reconstruit, pour réduire le nombre d’associations à tester dans l’algorithme RANSAC final. Elle pourrait être implémentée d’ici la fin du stage. Dans l’état actuel, la phase finale du recalage précis concernant la mise en correspondance robuste, est la même que celle implémentée par T. Colleu [2]. Il est donc normal 39 Figure 4.1 – limites de la façade principale détectées. que les résultats finaux soient comparables. Il arrive dans les deux implémentations que des arêtes du modèle soient misent en correspondance avec des ombres, ce qui nuit au calcul de pose, et conduit à un recalage imparfait. 40 Chapitre 5 Conclusion L’objectif du stage était d’effectuer le recalage initial entre une vidéo et un modèle 3D SIG, en exploitant les informations géométriques qui peuvent être récupérées d’une reconstruction. La phase de reconstruction est une étape difficile dont les résultats sont parfois déroutants. Certaines vidéos s’y prêtent par exemple très mal et aucun plan ne peut être détecté au milieu du nuage de points 3D reconstruit. Effectuer la reconstruction en utilisant les segments n’améliore alors pas assez le modèle pour pouvoir y détecter un plan cohérent et permettre la poursuite de l’algorithme. Heureusement, d’autres vidéos se prêtent bien mieux à une reconstruction, en partie parce que le mouvement de la caméra y est fluide. Cela rend le suivi des points d’intérêt plus facile, limitant de ce fait les erreurs lors de cette étape préliminaire. La méthode proposée présente plusieurs limitations et hypothèses restrictives, qui devront être corrigées dans le futur : Lors du recalage final, le modèle reconstruit n’est pas complètement exploité puisque seul un plan est extrait. Bien que cette solution soit fonctionnelle pour les vidéos utilisées en test, il parait indispensable de poursuivre les recherches, et de mieux tirer partie des multiples informations présentes dans le modèle reconstruit. Si l’objectif de départ avait été de ne récupérer que le plan principal, des méthodes plus simples, inspirées des travaux de G. Simon, M.-O. Berger [16], auraient pu être utilisées. Parmi les solutions qui paraissent intéressantes à exploiter, on peut citer : – Un recalage entre le modèle 3D et le modèle reconstruit sans passer par des mises en correspondance avec des primitives 2D issues des images. L’algorithme ICP présenté à la section 1.3.2 de l’état de l’art pourrait répondre à cette attente, et mériterait d’être implémenté dans ce contexte. – Une approche par balayage de plan (Plane Sweeping) pourrait également être envisagée. Elle ferait l’hypothèse des paramètres du plan principal, en se basant par exemple sur la pose approximative, et ajusterait petit à petit ces paramètres par des vérifications de cohérence avec les images. Toutes les étapes de la méthode utilisent des paramètres de seuils dont les valeurs doivent être choisies avec soins. On peut citer par exemple la distance maximum entre 41 un inlier et son modèle, ou encore le petit rayon de l’ellipse utilisée pour sélectionner les points d’intérêt représentant au mieux un segment. Le jeu de paramètres utilisé a été choisi en fonction des quelques vidéos de test, mais il ne correspondra peut-être pas à des vidéos différentes, qui n’ont par exemple pas les mêmes résolutions. Il serait donc également nécessaire de proposer des paramètres, soit indépendants de la séquence (fixes pour toute séquence), soit d’estimer leurs valeurs en fonction des données à traiter. 42 Bibliographie [1] Gael Sourimant. Reconstruction de scènes urbaines à l’aide de fusions de données de type GPS, SIG et Vidéo. PhD Thesis, université de Rennes, 2007 [2] Thomas Colleu, Gael Sourimant et Luce Morin. Une méthode d’initialisation automatique pour le recalage de données SIG et vidéo. COmpression et REpresentation des Signaux Audiovisuels (CORESA 2007) [3] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Press, ISBN : 0521540518, seconde édition, Cambridge University, 2004 [4] Martin Armstrong and Andrew Zisserman and Richard I. Hartley. Self-Calibration from Image Triplets. ECCV (1), p. 3–16, 1996 [5] Q. Luong and O. Faugeras. Self-calibration of a moving camera from point correspondances and fundamental matrices. IJCV, 22(3), p. 261–89, 1997 [6] Paul E. Debevec and Camillo J. Taylor and Jitendra Malik. Modeling and Rendering Architecture from Photographs : A Hybrid Geometry- and Image-Based Approach. Computer Graphics 30, Annual Conference Series, p. 11–20, 1996 [7] Canny, J. A computational approach to edge detection. IEEE Computer Society, 1986 [8] L. Ding and A. Goshtasby. The Canny edge detector. Pattern Recognition, 34(3), p. 721–725, 2001 [9] Analysis Josep Llados. The Hough Transform As A Tool For Image. [10] C. Rother. A new approach for vanishing point detection in architectural environments. In BMVC2000, p. 382–391, 2000 [11] Thomas Werner and Andrew Zisserman. New Techniques for Automated Architectural Reconstruction from Photographs. Robotics Research Group, Department on Engineering Science, University of Oxford, 2002 [12] Konrad Schindler and Joachim Bauer. A Model-based Methode For Building Reconstruction. Inffeldgasse 16, 8010 Graz, Austria, 2003 [13] D. DeMenthon and L. S. Davis. Model-Based Object Pose in 25 Lines of Code. European Conference on Computer Vision, p. 335–343, 1992 [14] P. David, D. DeMenthon, R. Ruraiswami and H. Samet. Softposit : Simultaneous pose and correspondance determination. In ECCV (3), p. 698–714, 2002 [15] E. Marchand and F. Chaumette. Virtual visual servoing : a framework for real-time augmented reality. In EUROGRAPHICS’02 Conference Proceeding, volume 21(3) of Computer Graphics Forum, p. 289–298, Saarebrcken, Germany, 2002 [16] G. Simon, M.-O. Berger. Pose estimation for planar structures. IEEE CG-A, 22(6), p. 46–53, 2002 43 [17] M. Bleyer and M. Gelautz. A Layered Stereo Matching Algorithm using Image Segmentation and Global Visibility Constraints ISPRS Journal of Photogrammetry & Remote Sensing 59, p. 128-150, 2005 [18] C. Baillard and C. Schmid and A. Zisserman and A. Fitzgibbon. Automatic line matching and 3D reconstruction of buildings from multiple views. In Proc. ISPRS Conference on Automatic Extraction of GIS Objects from Digital Imagery, IAPRS Vol.32, Part 3-2W5, 1999 [19] B. Le Callennec. Mise en cohérence de modèles 3D pour la navigation interactive. Rapport de stage de DEA, 2001 [20] Martin A. Fischler and Robert C. Bolles. Random sample consensus : a paradigm for model fitting with applications to image analysis and automated cartography. Commun.ACM, 24(6), p. 381–395, 1981 [21] Derek Hoiem, Alexei A. Efros, and Martial Hebert. Geometric context from a single image. InICCV, volume1, p. 654–661.IEEE, 2005 [22] Carlo Tomasi and Takeo Kanade. Detection and Tracking of Point Features. CMUCS-91-132, Carnegie Mellon University, 1991 [23] R. Deriche and O. Faugeras. Tracking line segments. In Image Vision Comput. 02628856, p. 261–270, 1990 44
Documents pareils
Recalage de vidéo et de modèle 3D SIG
à la main. Cependant, de nombreuses applications comme les visites virtuelles ou la cartographie, en sont friandes. En effet, le modèle 3D offre
à l’utilisateur un confort supplémentaire et une
imm...