next up previous contents
suivant: Bibliographie monter: Rapport de Stage sur précédent: Travaux futurs   Table des matières

Conclusion

Ces trois mois de stage nous ont permis de découvrir plusieurs laboratoires: le département de Traitement du Signal et de l'Image de l'ENST, ainsi que le Laboratoire de Recherche des Musées de France, liés par le projet européen ACOHIR, auquel nous avons ainsi contribué. Le rôle de l'ENST étant de mener la partie recherche, nous avons été amenés à travailler sur des programmes encore en évolution et dirigés par un axe: reconstruire à partir d'une séquence d'images en rotation un objet virtuel en trois dimensions, les intérêts d'une telle représentation étant multiples.

D'abord, un objet 3D permet une observation sous n'importe quel angle de vue contrairement à une séquence figée d'images. Ensuite, la conservation d'un unique objet 3D est beaucoup moins imposante en espace mémoire que la conservation d'une séquence d'images bitmaps, même compressées. Finalement, la structure 3D de l'objet qui a été adoptée permet d'obtenir plusieurs niveaux de détail de l'objet. Il s'agit d'une structure octree, décomposition hiérarchique de l'espace en cubes: chaque cube est sous-divisé en huit cubes fils, et ainsi de suite jusqu'au dernier niveau de granularité. Dans chaque cube se trouvant sur la surface de l'objet est conservé une particule de la surface de l'objet (position, couleur et normale), les autres cubes n'étant pas considérés.

Pour réaliser cette reconstruction, une série de programmes avaient été développés, et c'est dans leur totalité que nous les avons documentés, retravaillés et fait évoluer. Ces programmes prennent en entrée trois séquences d'images: une séquence contenant une mire de calibration afin déterminer les paramètres de la camera, une séquence en contre-jour afin d'obtenir la silhouette de l'objet et construire l'objet 3D, et une séquence en éclairage diffus afin de dóbtenir la couleur de la surface de l'objet. Chacun des programmes correspond à une étape de la reconstruction: calibration de la caméra, génération du fichier de données et visualisation de ce dernier.

Le but des programmes de calibration est de déterminer les paramètres intrinsèques de la caméra (focale, distorsion radiale et tangeantielle et centre optique) ainsi que ses paramètres extrinsèques (matrices de transformation entre les repères de la caméra et de l'objet). Seules les interfaces de ces programmes ont étés modifiées. Le programme de reconstruction permet en réalité plusieurs types de reconstructions: une reconstruction en triangles texturés (ancien format de données), et une reconstruction en arbre octree multiniveaux, qui permet plusieurs niveaux de détails. D'abord l'architecture du programme et son interface ont été refaites, mais aussi le texturage de la première reconstruction, ainsi que certaines améliorations du code, qui ont permis notamment de l'adapter aux séquences d'images en hautes résolution fournies par le Louvre. Ces fichiers peuvent alors être visualisés: il y a ainsi un visualisateur par format, le visualisateur du format octree générant en temps réel les triangles à partir des particules. Alors que les modifications apportées au premier visualisateur ne sont que de l'ordre de l'optimisation, les algorithmes du second ont par contre été repris afin d'obtenir une triangulation à partir des particules qui soit meilleure et plus rapide.

De manière parallèle ont été programmés une bibliothèque de traitement d'images ainsi qu'un programme automatisant ces traitements, afin de réduire les images pour effectuer des tests de reconstruction, traiter celles-ci afin d'éliminer les impuretés ou encore générer notre format d'images binaires, ce dernier ayant été porté sous windows.

A ce travail s'ajoute également celui de documentation, car celle-ci était quasi-inexistante et cela n'a pas facilité notre immersion dans le projet, ainsi qu'un travail de restructuration du projet, aussi bien au niveau du code que des programmes. Le code sur lequel il nous a été donné de travailler était par ailleurs de mauvaise qualité, aussi bien dans la syntaxe que dans la logique; mélange anarchique de C et de C++ sans aucune norme ni aucune rigueur, donnant un avis à prioris assez objectif de ce qui se fait en programmation par des personnes non formées à l'informatique.

A côté des connaissances en ingénieurie que nous a procuré ce stage telle qu'une réorganisation et une gestion d'un projet de grande taille nécessitant l'acquisition de nouvelles connaissances, il est à noter qu'une modeste expèrience en photographie et en éclairage ont été acquises lors des scéances d'acquisition au Louvre.


next up previous contents
suivant: Bibliographie monter: Rapport de Stage sur précédent: Travaux futurs   Table des matières
FOUQUIER Geoffroy
2000-01-11