Chef d'œuvre

Implémentation en C++ d'une méthode Bayesienne de reconstruction en imagerie ultrasonore

lPrésentation du projet

Dans domaine médical, l'imagerie ultrasonore (ou échographie) est un type d'imagerie très utilisée dans de nombreuses applications comme le suivi de grossesse, en cardiologie ou pour l'estimation du flux sanguin. Cette utilisation vient du fait que l'imagerie ultrasonore présente de nombreux avantages. Elle a un caractère d'innocuité, donc elle est sans danger et est indolore pour le patient, et peut être répétée sans problème. De plus, c'est une technologie qui est mobile et peu chère. Son caractère temps réel est également apprécié. Toutefois, ce caractère temps-réel en imagerie ultrasonore 3D n'est pas toujours garanti, du fait de la croissance de la quantité d'information qui rend couteux les calculs et le stockage.

L'échantillonnage compressif [1] et la méthode de reconstruction Bayesienne sont des techniques récentes avec objectif de réduire la taille des données à collecter et ensuite pouvoir reconstruire le signal compressé.

Le principe de l'échantillonnage compressif dans le cadre de l'imagerie ultrasonore est le suivant. Des ondes ultrasonores sont envoyées par le transducteur (figure 1). A chaque obstacle rencontré par une onde, une partie continue sa propagation et l'autre est réfléchie, il s'agit alors de l'écho. C'est cet écho qui va être capté à la sortie par le transducteur.

Principe de l'échographie
Figure 1 : Représentation graphique de l'imagerie ultrasonore [5].
Principe de l'échantillonnage compressif
Figure 2 : Représentation de l'échantillonnage compressif. Le signal analogique est sous-échantillonné avec les échantillons pris d'une manière aléatoire (points rouges en haut) et selon une grille régulière (points rouge en bas). Le premier cas permet de reconstruire le signal de départ, contrairement au deuxième cas ou l'ambiguïté apparaissent [6].

On obtient donc un signal avec différentes réponses qui correspondent aux obstacles traversés. Ensuite un échantillonnage du signal est requis. L'échantillonnage compressif, contrairement à la technique classique d'échantillonnage respectant la théorème de Shannon, consiste à mesurer seulement certaines valeurs du signal choisies aléatoirement (cf. figure 2). Autrement dit, le nombre d'échantillons du signal à enregistrer est inférieur au nombre d'échantillons nécessaires par la méthode classique, ce qui réduit la taille de l'information à stocker.

La méthode de reconstruction Bayesienne est une méthode qui permet de générer le signal initial à partir du signal compressé par échantillonnage compressif. Plus précisément, il s'agit de générer les valeurs du signal initial à partir d'un modèle statistique d'une manière itérative. Les paramètres du modèle et autres paramètres, intervenants dans la description de la méthode, sont déterminées par des lois statistiques de la manière habituelle de la reconstruction Bayesienne. L'objectif est de maximiser la vraisemblance du signal reconstruit sachant le signal compressé et les valeurs des paramètres.

Cette méthode a l'avantages d'être robuste et précise. Elle ne dépend pas de paramètres liés aux images traitées et elle n'est pas sensible au bruit du signal. On insiste sur le fait que l'utilisation de ces techniques est fortement liée à la nature du signal initial qui est un signal parcimonieux (contenant beaucoup de zéros). Ces deux techniques ont été déjà utilisées en imagerie médicale en particulier en IRM et tomographie.

lObjectifs

Au cours de ce chef d'oeuvre nous nous sommes intéréssé qu'à la reconstruction Bayesienne. L'objectif principal étant d'implémenter cette méthode en nous aidant des articles de recherches (cf. liens) fournis par les enseignants-chercheurs de l'IRIT, Adrian Basarab et Denis Kouamé.

lRésultats

Les résultats que nous avons obtenus sont très convaincant et les temps de calcul est de 1 à 2 fois plus rapide que ceux obtenus par l'aplication codée en Matlab (fournis par nos clients). Nous avons comparé des images reconstruite par notre application et celle génrée par l'application Matlab. Les comparaisons ont été réalisés sur des images compréssées via l'échantillionnage compressif de taille 32 x 32 pixels.

Sur la figure 3, au centre, l'image originale que l'on cherche à reconstruire. L'image a droite est le résultat de la reconstruction via le code Matlab fourni par le client. Sur l'image de gauche, se trouve le résultat fourni par notre application.

Résultats de reconstruction
Figure 3 : Résultats de reconstruction.

La figure 4 affiche deux cartes d'erreur. Celle de gauche est la carte d'erreur entre notre résultat de reconstruction et l'image originale. Celle de droite est celle entre la reconstruction avec matlab et l'image originale. Elles sont, là aussi, proches.

Résultats de reconstruction
Figure 4 : Carte d'erreur.

lVersions du logiciel

Nous avions aussi pour mission de rendre notre application utilisable avec le langage Matlab. Nous avons donc compiler la fonction principale de reconstruction via l'application mex qui génère les fichiers nécéssaires la rendant ainsi fonctionnelle sous ce langage de programmation.
Les temps d'excution sont restés inchangés par rapport à l'application écrite en C++.

Vous pouvez télécharger c'est dans versions dans la rubrique téléchargement