Segmentation semi-automatique d'images médicales

De Ensiwiki
Aller à : navigation, rechercher

Cadre du projet

  • Encadrants : Matthieu Chabanas, Céline Fouard
  • Nombre d'étudiants : 3 à 4.
  • Prérequis : programmation C++, notions de traitement d'images. Optionnel : graphique 3D, connaissance des librairies Qt, VTK et ITK.

Contexte

La majorité des applications dans le domaine des Gestes Médico-Chirurgicaux Assistés par Ordinateur nécessitent l'acquisition de données d'imagerie de natures diverses : radiologies, examens scanner ou IRM, imagerie échographique, vidéo, etc. Une tâche fondamentale dans le traitement de ces données est la segmentation, c'est-à-dire l'extraction des structures d'intérêt dans les images, en 2D ou en 3D. Ces informations servent notamment de base à la visualisation des organes, la génération de modèles de simulation, ou des mesures surfaciques ou volumiques.

SegmentationReinCT.png SegmentationCartilageUS.png
A gauche : segmentation des contours du rein à partir d'images scanner et le modèle 3D généré correspondant [Leroy,2004]. A droite : extraction des interfaces eau/cartilage et cartilage/os dans des images échographiques intra-articulaires pour la mesure de l'épaisseur du tissu cartilagineux du genou [Moreau-Gaudry,2012].

Dans le cadre de ce projet, on s'intéressera à quelques méthodes de segmentation semi-automatique, nécessitant une interaction plus ou moins importante de l'utilisateur. Ce type d'outil est intéressant soit pour traiter directement les données, soit pour définir un résultat de référence qui pourra être utilisé pour l'évaluation de méthodes de segmentation automatiques.

Différentes approches plus ou moins complexes, en 2D ou 3D, pourront être abordées :

  • tracé « manuel » via le positionnement à la souris de points de contrôles, interpolés par une courbe de type Spline
  • méthodes de contours actifs, dites Snakes : pour chaque position de la souris, un point « idéal » est proposé à l'utilisateur selon les caractéristiques des images sous-jacentes (niveaux de gris, gradients, …)
  • méthodes types Level Set : déformations itératives d'une courbe ou d'une surface type pour épouser les contours des structures, là encore selon les informations issues des images.
  • etc.

Certaines méthodes peuvent nécessiter des pré-traitements des images (seuillages, morphologie mathématique, etc.).

Travail demandé

La plupart de ces méthodes sont implémentées dans des librairies de visualisation et de traitement d'images comme VTK (The Visualization Toolkit) ou ITK (Insight Segmentation and Registration Toolkit.

L'objectif de ce projet est d'intégrer ces méthodes dans la plate-forme de travail CamiTK de l'équipe GMCAO du laboratoire TIMC. Cet environnement C++, multi-OS (Windows, Linux, Mac) et Open Source, s'adresse non seulement à des développeurs de tous niveaux, mais aussi à des spécialistes de différents domaines des GMCAO (médical, robotique, mathématiques, etc.) pour permettre la collaboration et l'échange de savoir-faire entre ces différents domaines.

La travail demandé comporte plusieurs aspects :

  • la compréhension des méthodes de segmentation, de leurs paramètres, pour une utilisation adéquate sur des images de nature variées ;
  • la spécification d'une interface utilisateur intuitive ;
  • l'implémentation d'un module de segmentation, intégré sous forme d'un ou plusieurs plugins dans la plate-forme CamiTK.

Les développements se feront en C++, en utilisant les libraires Qt (interface graphique), VTK et ITK déjà utilisées dans CamiTK. Si le projet abouti, ces plugins seront intégrés directement à la prochaine version Open-Source de CamiTK (v3.2 prévue pour mi-juillet).

Références

  • Voir par exemple le projet itksnap : fonctionnalités similaires à ce qui est attendu ici, documentation très bien faite.