Florent Paccault, Vincent Vidal
Projets image 2006 :
Contours actifs (snakes) 3D
Introduction

L'objectif du sujet

L'objectif de notre projet était la détection de caractéristiques (features) sur un maillage 3D, à l'aide de snakes (contours actifs).

Concrètement, nous sommes partis de l'article Geometric Snakes For Triangular Meshes, par Y. Lee et S. Lee.

Le schéma de cet algorithme est le suivant :

Schéma de l'algo

Les tâches demandées étaient :

  1. Implémenter cet algorithme.
  2. Tester ses performances (temps de calcul, place mémoire ...) sur diverses surfaces maillées (de tailles diverses, pour des maillages uniformes et non uniformes) et en tirer des conclusions.
  3. Proposer d'autres définitions de features, et modifier l'algorithme en conséquence.
  4. Proposer des améliorations (notamment vis-à-vis du plongement sur un plan, du calcul de plus court chemin, ...), et faire un bilan critique de cet algorithme.

Notre organisation

Nous avons réalisé ce projet en binôme.
Semaines 1-2
  • Etude des différentes librairies (CGAL, OpenGL...)
  • Sélection d'un snake par l'utilisateur
Semaine 3
  • Calcul de la région locale
  • Détection du bord d'un mesh ouvert
  • Calcul d'un plus court chemin approximatif en 3D
Semaine 4
  • Calcul de la paramétrisation 2D
  • Minimisation de l'énergie
Nous avons effectué les tests au fur et à mesure du développement.

Ce qui a été fait

Par rapport aux tâches demandées, nous avons presque terminé l'implémentation de l'algorithme. Ce qui a été implémenté et testé :

  • Sélection d'un snake initial par l'utilisateur.
  • Calcul de la surrounding region de ce snake
  • Calcul de la paramétrisation 2D de cette région (forme choisie = carré)
Ce qui a été implémenté et est en cours de test :
  • Minimisation de l'énergie du snake
  • Mise à jour du snake
Ce qui reste à implémenter :
  • Autres formes de base pour la paramétrisation
  • Bordure virtuelle pour la paramétrisation
  • Autres définitions de l'énergie du snake

Outils utilisés

Voici les librairies dont nous avons disposé :
  • libQGLViewer : pour créer des interfaces graphiques basées sur Qt et OpenGL.
  • Qt : pour définir des fenêtres et des interactions utilisateur
  • OpenGL : pour afficher des objets géométriques
  • CGAL : un ensemble de fonctions et de structures géométriques. Beaucoup de fonctions sont disponibles, mais cette librairie est trop difficile à mettre en oeuvre. Au final nous nous sommes servis uniquement de la structure de Polyèdre 3D.

Valid HTML 4.01 Strict

Valid CSS

Dernière mise à jour de la page : Fri 16 Jun 2006 à03:40:57