• Aucun résultat trouvé

Positionner d’abord la caméra réelle calibrée dans l’environnement réel et

L’objectif de la méthode étant de comparer l’objet d’intérêt dans l’image réelle acquise avec la caméra à son vis-à-vis théorique obtenu à partir du modèle CAO, il était nécessaire de résoudre le problème de localisation entre le modèle théorique et la caméra réelle. Les étapes pour obtenir les données synthétiques sont les suivantes :

D.2.1. Calibrage de la caméra.

Le but du calibrage est de trouver les différents paramètres intrinsèques de la caméra et de corriger les distorsions dues à l’optique qu’une image peut subir. Nous avons testé trois méthodes différentes de calibrage. Le calibrage de base présent dans la librairie OpenCV qui est une implémentation en C++ de la méthode de Bouguet [Bouguet, ] et la méthode de calibrage itérative proposée par Ankur Datta dans [Datta et al., 2009]. Nous avons aussi testé une troisième méthode qui consiste en

un calibrage par le logiciel propriétaire Vic3D c.

Pour la première méthode nous avons utilisé une mire en damier et une mire circu-laire. Pour les tests avec la deuxième méthode nous avons utilisé une mire circulaire et une mire en anneau. Les résultats les plus encourageants ont été obtenus avec le logiciel Vic3D c. C’est cette méthode qui a permis d’obtenir la plus faible erreur de reprojection. Les résultats obtenus en utilisant la mire en anneau, dans le cadre de la méthode itérative [Datta et al., 2009] montrent une erreur de reprojection plus élevée comparée au calibrage avec le système Vic3D c. Néanmoins, cette méthode permet de mettre en place un système de calibrage plus pratique. Il s’agit ici d’un problème de simplicité face à la précision. Dans tous les cas, on ne peut vraiment ju-ger cette étape qu’après la procédure d’estimation de pose, de projection du modèle et de génération de l’image synthétique car c’est seulement en fin de procédure que l’on peut comparer l’écart entre l’image théorique générée et l’image réelle capturée avec la caméra réelle calibrée.

D.2.2. Estimation de la pose.

Le problème de localisation est aussi bien une affaire de détermination de paramètres intrinsèques de la caméra mais c’est surtout une affaire de géométrie mettant en jeu la position de la caméra au moment de la prise de vue, par rapport à la scène 3D à étudier. Cette position de la caméra est donnée par les paramètres extrinsèques de la caméra, une matrice de rotation de taille3et un vecteur (colonne par convention) de translation, de taille 1. De manière simplifiée, on peut assimiler l’estima-tion de pose à un processus de mise en correspondance entre les points 3D connus de la scène réelle (monde) avec les points 2D dans le plan image. Il a été démon-tré qu’il s’agit d’un problème d’optimisation non linéaire. Ce problème d’estimation de pose est souvent résolu par une méthode d’optimisation non linéaire, de type Levenberg-Marquardt. Pour obtenir les paramètres extrinsèques de la caméra, nous avons employé deux stratégies différentes selon la méthode de calibrage utilisée, soit le calibrage par le logiciel Vic3D c ou par la méthode itérative de [Datta et al., 2009]. En effet, pour calibrer la caméra, il y a déjà une mise en correspondance entre les points 3D et les points 2D de la scène qui peut permettre de récupérer directe-ment les paramètres de localisation pour chaque mire plane utilisée lors du calibrage. Ceci est le cas notamment de la méthode itérative de [Datta et al., 2009]. Bien que cette méthode ne fournisse pas automatiquement les paramètres extrinsèques à la fin de la procédure de calibrage, elle les calcule pendant cette phase de calibrage. Nous avons donc pu extraire ces paramètres en indiquant au programme de les donner en fin de procédure, après la convergence de la méthode de calibrage. En revanche

ceci n’est pas possible avec le logiciel propriétaire Vic3D cdont le code source n’est pas libre. Il est néanmoins possible de récupérer les points 2D utilisés dans le calcul des paramètres intrinsèques. Afin d’obtenir les paramètres extrinsèques lorsque nous avons utilisé Vic3D c, nous avons récupéré les points 2D fournis par le logiciel pour une position de mire jugée pertinente. Il s’agit ici d’une position facilement repérable sur le modèle CAO en vue de l’étape de projection future du modèle CAO sur le plan image. Les points 3D de la mire étant connus, nous avons pu effectuer l’optimisation souhaitée en utilisant l’implémentation d’OpenCV de la méthode d’optimisation de Levenberg-Marquadt et nous avons ainsi pu obtenir les paramètres extrinsèques.

D.2.3. Génération des données à partir du modèle CAO pour une mise en correspondance entre un objet théorique avec un objet réel

Solution 1 : génération d’une image synthétique.

Après l’obtention des paramètres intrinsèques et de la pose il devient alors pos-sible d’utiliser ces données pour projeter le modèle CAO sur le plan image. Cette tâche est réalisée en deux phases. Pour commencer, dans la maquette numérique, on isole le modèle CAO de l’élément à évaluer. Ce modèle CAO est ensuite converti au format STL, c’est à dire en ensemble de triangles pour lesquels les cordonnées de chaque point sont connues. Pour finir, ces points, constituants les triangles, sont projetés dans le plan image en appliquant le modèle de projection perspective en tenant compte notamment des paramètres de distorsions optiques calculés pendant la phase de calibrage. Après la projec-tion de l’élément du modèle CAO sur le plan image, l’ensemble des triangles vides projetés subissent une procédure de remplissage qui permet de générer la surface pour tous les triangles et de respecter les endroits où il doit y avoir un trou. A la fin, connaissant la taille de l’image réelle, on peut créer une image matricielle de même taille que l’image réelle et qui contient les triangles projetés et remplis, c’est à dire l’objet CAO.

Solution 2 : Projection directe des primitives CAO.

Cette solution consiste à projeter directement sur l’image réelle les éléments du modèle CAO qui nous intéresse, en réalité augmentée, sans passer par l’inter-médiaire d’une image synthétique.

Afin d’obtenir les données pouvant servir au test de l’algorithme présenté dans le cha-pitre 4, nous avons utilisé dans un premier temps une caméra PTZ avec l’assemblage mis à notre disposition par notre collaborateur G2Metric puis une caméra CCD classique dans un deuxième temps, en utilisant cette fois-ci le panneau mis à disposition par la société Aérolia dans le cadre du projet CAAMVis. Nous allons dans les sections suivantes donner

des détails qui sont propres à chacune de ces deux expérimentations.

D.3 Expérimentation avec la caméra PTZ et