Développement d'une chaîne de traitements pour caractériser les états de surface de sols nus

Le 21 septembre 2004 : Bonjour et bienvenue sur cette page qui  traitera de mon stage de deuxième année ENSEIRB, réalisé au CETP.

Au cours de mon cursus en école d'ingénieur à l'ENSEIRB en informatique, j'ai été amené à effectuer plusieurs stages.

Au cours de ma seconde année, j'avais un stage de 4 mois que j'ai effectué au CETP, un laboratoire parisien situé à Vélizy. Ce stage portait principalement sur le remaniement du code réalisé par Etienne Huot pour sa thèse à l'INRIA.

La problèmatique

Au CETP, dans l'équipe EMA, quelques personnes cherchent à étudier l'altération des surfaces de sols agricoles nus par la pluie. Des mesures ont été réalisées, permettant d'obtenir l'état d'une surface à un instant t donné, et après avoir fait pleuvoir pendant un certain temps, pour donner la surface à l'instant t+1. On cherche à interpoler l'état de la surface à un temps t+1/2. Différentes méthodes permettent de calculer l'evolution d'une surface vers une autre, en utilisant diverses techniques comme le morphing, le warping, etc...

Etienne Huot, lors de sa thèse à l'INRIA, présente une technique d'interpolation par l'utilisation de distances géodésiques. Cette technique permet une approximation plus réaliste de l'état de la surface à un temps t+1/2. Pour ses calculs, il a réalisé une chaîne de traitements composée de plusieurs petits programmes basés sur la bibliothèque de traitement d'image Inrimage, de l'INRIA. Ces programmes présentent le désavantage d'être hétérogènes, et les calculs sont plutôt longs. Dans ce cadre on a besoin d'homogénéiser le code, et aussi de l'optimiser si possible.

Second problème : Etienne, pour visualiser le résultat de ses calculs, utilise un logiciel complexe mais puissant et coûteux, pour mettre en forme ses résultats en 3D. De plus, il doit bien être le seul à encore s'en servir à l'INRIA. Du coup, on aimerait bien avoir un petit programme de visualisation de surfaces en 3D, facile à utiliser.

Mon travail au CETP

Dans un premier temps je me suis familiarisé avec la bibliothèque Inrimage et avec le sujet, avant de me lancer dans le remaniement de code à proprement parler. Dans un premier temps j'ai réécrit pas mal de code, et j'ai conçu le programme GLvis, permettant la visualisation de surfaces au format Inrimage. Le remaniement et la lecture du code ont permis d'homogénéiser le tout, mais aussi de déceler quelques erreurs dans les programmes originaux. En plus de l'homogénéisation du code et de la mise au point de GLvis, j'ai aussi mis en place la structure inricache, une structure permettant la manipulation d'images au format inrimage de manière plus aisée, et proposant une optimisation de l'utilisation mémoire par le biais de caches, dont la taille est spécifiée par l'utilisateur.

La documentation réalisée

L'ENSEIRB demande un certain nombre de documents à rédiger au long du stage. Certains sont à fournir au fur et à mesure, pour donner au tuteur ENSEIRB (Georges Eyrolles, ce très cher Georgy, pour l'occasion) des nouvelles de l'avancement du stage, et d'autres à fournir à la fin du stage :

Le code ayant été réalisé au format doxygen, Une API-doc a été générée et est disponible ici.
Quelques screenshots de GLvis ont aussi été réalisés pour montrer un peu le résultat de mon labeur.

Codes sources

Vous pouvez trouver les sources des fichiers utilisés pour la documentation ici.
J'ai aussi placé les codes sources dans une archive ici.
Vous pouvez naviguer dans l'arborescence du projet à cette adresse.
Quelques fichiers de données se trouvent .

Si vous souhaitez me contacter pour de plus amples renseignements, ou pour donner des avis, n'hésitez pas : inricache@yahoo.fr