Projet image 2013 : Segmentation semi-automatique d'images médicales

De Ensiwiki
Aller à : navigation, rechercher
Project schedule.png
Titre du projet Segmentation semi-automatique d'images médicales
Cadre Projets de spécialité
Page principale Projets de spécialité image

Encadrants Chabanas Matthieu, Fouard Céline


Étudiants

Dias Alves Thomas - MMIS

Jehanno Benoit - MMIS

Menézo-Schlosser Céline - MMIS

Pfister Pierre - MMIS

Le contexte

Un intérêt concret

La majorité des applications dans le domaine des Gestes Médico-Chirurgicaux Assistés par Ordinateur nécessite 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.

Dans le domaine médical, on souhaite laisser au médecin un contrôle sur ce qui a été tracé (par exemple en déplacant le point d'un contour) mais une segmentation manuelle serait laborieuse et imprécise. L'objectif de ce projet est d'implémenter un module de segmentation semi-automatique intégré à un environnement spécifique et disposant d'une interface utilisateur intuitive afin de faciliter le travail des médecins tout en leur laissant la possibilité d'interagir vis-à-vis de la segmentation réalisée.

Un environnement de développement : CamiTK

CamiTK (Computer Assisted Medical Intervention ToolKit) est un logiciel open source développé depuis 2001 par des chercheurs du laboratoire TIMC-IMAG. Il permet la visualisation et l'analyse d'images médicales afin de servir de support aux chirurgiens et médecins lors de leurs interventions. Il est extrêmement modulaire afin de faciliter l'utilisation des extensions incluses et l'intégration de nouvelles fonctionnalités: tout est construit autour d'un noyau ("core") sur lesquels viennent se greffer des objets (des images médicales ou des maillages) ou des actions sur ces objets. L'interface graphique est gérée par les bibliothèques VTK et QT.

Structure modulaire de CamiTK

Des objectifs spécifiques

Affinement de la segmentation manuelle par exploitation des données de l’image en deux dimensions

Pour ceci nous pourrons envisager deux méthodes.

La première est une méthode reposant sur la descente de gradient. Ainsi nous approchons chaque point de manière itérative dans la direction du gradient. Cette méthode a l’intérêt d’être simple à implémenter.

La deuxième repose sur un algorithme de snake. A chaque fois que l’on ajoute un point, on essaye de minimiser l’énergie de notre spline en la rapprochant du contour. Cette méthode est plus complexe.

Itération de la segmentation 2D sur différents plans de coupe et création d’un maillage 3D

A nouveau nous avons deux approches différentes.

La première et la plus simple est d’effectuer une segmentation 2D sur des plans de coupe parallèles et de regrouper ces segmentations dans un unique maillage 3D. Pour ce faire il nous suffira d’effectuer une première segmentation manuellement, puis de se déplacer dans les plans de coupe et de mettre à jour les contours par descente de gradient. Il faudra alors pouvoir rectifier des erreurs possibles de la descente de gradient. Cette méthode aura alors la limitation de ne s’appliquer dans un premier temps qu’à des contours avec une seule composante connexe.

La deuxième est de pouvoir ajouter à notre contour des points appartenant à des coupes choisies de manière arbitraire. ainsi en partant d’une première segmentation 2D nous utilisons le croisement de la spline crée avec une nouvelle coupe pour démarrer une nouvelle segmentation et ainsi créer un maillage 3D auquel on ajoutera des points de contrôle dans des coupes arbitraires pour affiner le contour. Cette méthode sera plus complexe à réaliser mais aura l’avantage de pouvoir plus rapidement donner une forme 3D à l’organe segmenté. On pourra sûrement exploiter un algorithme snake pour approcher au plus près la courbe créée de notre contour.

Un des enjeux majeurs de cette étape est le passage d’un ensemble de contours à une surface 3D. On pourra dans un premier temps estimer qu’un volume peut être délimité par un ensemble de contours, mais une amélioration souhaitable serait de créer une vraie surface 3D.

Extensions aux objets avec changement de topologie

La plupart des organes ont plusieurs composantes connexes. Il serait donc souhaitable de pouvoir segmenter un organe qui n’a pas forcement qu’une seule topologie. Pour ce faire nous pourrons procéder de manière automatique ou manuelle. Dans tous les cas cela impliquera de nombreux problèmes mathématiques sur la représentation 3D de la spline.

Le travail réalisé

Recherche de maximum de gradient

Avant.png Apres.png
Avant et après une descente de gradient

La méthode de descente de gradient permet d'affiner un contour grossier et le médecin aura toujours la possibilité à partir de la spline obtenue de déplacer, rajouter ou supprimer des points.

Snake

Watershed

Nous avons implémenté la méthode Watershed qui est un filtre Itk. Pour cela nous suivons la pipeline standard : filtre Anisotropique, gradient, filtre Watershed, sélection du label.

Cerveau watershed.png Cerveau watershed select.png Cerveau reconstruction.png
Reconstruction du ventricule du cerveau via Watershed

Conclusion

Ce projet basé sur des motivations très concrètes constitue une grande opportunité de découvrir des outils de traitement d'image et de segmentation. Il représente également une expérience professionnelle permettant de s'intégrer à une plate-forme open-source modulaire regroupant déjà de nombreuses fonctionnalités. Enfin, ce projet donne l'occasion de développer nos capacités organisationnelles (élaboration du cahier des charges, gestion du temps etc) et d'expérimenter le travail en équipe.