PDF - thèse - Université Toulouse III

Transcription

PDF - thèse - Université Toulouse III
THÈSE
En vue de l'obtention du
DOCTORAT DE L’UNIVERSITÉ DE TOULOUSE
Délivré par l'Université Toulouse III - Paul Sabatier
Spécialité : Radiophysique et Imagerie Médicales
Présentée et soutenue par Guillaume VIGUIE
Le 18 décembre 2008
APPORT DE LA PROGRAMMATION GRAPHIQUE POUR LA
RECONSTRUCTION RAPIDE D’IMAGES 3D EN
TOMOGRAPHIE PAR EMISSION MONOPHOTONIQUE
JURY :
Jean-Louis BARAT, Professeur, Université de Bordeaux, Rapporteur
Denis MARIANO-GOULART, Professeur, Université de Montpellier, Rapporteur
Jean-Paul ESQUERRE, Professeur, Université de Toulouse III, Directeur de thèse
Dominikus NOLL, Professeur, Université Toulouse III, Directeur de thèse
Daniel GOURION, Maître de conférences, Université d’Avignon
Pierre GANTET, Maître de conférences, Université Toulouse III
Ecole doctorale : Génie Electrique, Electronique, Télécommunications, UPS
Unité de recherche : Traceurs et Traitement de l’Image EA3033,
Laboratoire de Biophysique 133 Route de Narbonne, 31062 Toulouse Cedex
2
Remerciements
Cette thèse a été réalisée en collaboration entre l’équipe d’accueil traceurs et traitement de l’image
EA3033, le laboratoire mathématiques pour l’industrie et la physique (UMR5640), pour
l’encadrement scientifique et la société Segami qui en a assuré le financement par l’intermédiaire
d’une bourse CIFRE.
Je remercie M. Jean-Paul Esquerré, chef du service de médecine nucléaire de l’hôpital de Purpan et
M. Dominikus Noll, professeur de mathématiques à l’université Paul Sabatier, pour avoir encadré
cette thèse, et m’avoir fourni leur aide dans leurs domaines respectifs.
Je remercie également M. Denis Mariano-Goulart et M. Jean-Louis Barat, pour avoir accepté d’être
mes rapporteurs et m’avoir fourni leurs conseils éclairés pour la correction de ce document.
Remerciement tout particulier à M. Pierre Gantet pour l’aide inestimable qu’il a pu m’apporter tout
au long de cette thèse par ses grandes connaissances dans le domaine de l’imagerie médicale, ainsi
que pour son dévouement.
Je remercie M. Daniel Gourion dont les travaux ont servi de base solide pour la correction
d’atténuation, M. Pierre Payoux qui est souvent intervenu pour me fournir ses conseils, ainsi que
M. Pierre Maréchal.
Je remercie la société Segami pour avoir financé cette thèse, tout particulièrement Maleaume
Bonnin pour m’avoir beaucoup appris sur la programmation des cartes graphiques.
Je remercie le personnel du laboratoire de Biophysique en particulier Mme. Pierrette Azuelos.
Je tiens à remercier mes parents sans qui je ne serais là, mes grands-parents sans qui je ne serais là,
mes arrières grands-parents… etc. Et à toute ma famille en général, que ce soit pour la fourniture du
patrimoine génétique, le soutien moral, les gâteaux et de tout type de nourriture que je n’aurais
jamais cuisiné moi-même, etc.
Finalement, pour être sûr de ne rien oublier, je remercie toute personne, animal, végétal ou objet
3
qui directement, indirectement, volontairement ou non, aurait contribué à cette thèse. On parle
beaucoup de l’effet des battements d’ailes des papillons, mais on oublie souvent de remercier les
dits papillons, car même si certains produisent des cyclones, il ne faut pas généraliser, d’autres ont
des effets très positifs. Sans compter tous les autres animaux qui ont des ailes ou pas.
4
Table des matières
TABLE DES MATIERES ................................................................................................................................................. 5
TABLE DES ILLUSTRATIONS ....................................................................................................................................... 10
FIGURES ................................................................................................................................................................... 10
ABREVIATIONS ET NOTATIONS ................................................................................................................................. 14
INTRODUCTION ........................................................................................................................................................ 17
1.
ACCELERATION MATERIELLE AVEC LE GPU ...................................................................................................... 21
1.1.
LA CARTE GRAPHIQUE ET SES COMPOSANTS ............................................................................................................. 21
1.1.1.
Le GPU ...................................................................................................................................................... 21
1.1.2.
Mémoire vidéo .......................................................................................................................................... 23
1.1.3.
Interface entre la carte graphique et la carte mère ................................................................................. 23
1.1.4.
BIOS Vidéo ................................................................................................................................................ 23
1.1.5.
RAMDAC ................................................................................................................................................... 24
1.2.
2.
PIPELINE GRAPHIQUE .......................................................................................................................................... 24
1.2.1.
API graphique ........................................................................................................................................... 24
1.2.2.
Pilote graphique ....................................................................................................................................... 25
1.2.3.
Transformation et éclairage ..................................................................................................................... 25
1.2.4.
Assemblage des primitives ....................................................................................................................... 26
1.2.5.
Rastérisation ............................................................................................................................................. 26
1.2.6.
Application de texture et frame buffer ..................................................................................................... 27
1.2.7.
Shaders programmables ........................................................................................................................... 28
1.3.
BASES DU GPGPU ............................................................................................................................................. 29
1.4.
PLATEFORMES DEDIES AU GPGPU ........................................................................................................................ 32
LA TOMOGRAPHIE PAR EMISSION MONOPHOTONIQUE ................................................................................. 33
2.1.
PRINCIPE .......................................................................................................................................................... 33
2.2.
RADIOISOTOPES ................................................................................................................................................. 33
2.2.1.
Définition .................................................................................................................................................. 33
2.2.2.
Le technétium 99 métastable ................................................................................................................... 34
2.2.3.
Le thallium 201 ......................................................................................................................................... 34
2.2.4.
L’iode 123 ................................................................................................................................................. 34
2.3.
GAMMA-CAMERA .............................................................................................................................................. 35
2.3.1.
Historique ................................................................................................................................................. 35
2.3.2.
Collimateur ............................................................................................................................................... 35
2.3.2.1.
Rôle ................................................................................................................................................................. 35
2.3.2.2.
Géométries des collimateurs. ......................................................................................................................... 36
5
2.3.2.3.
2.3.3.
Cristal scintillant ....................................................................................................................................... 39
2.3.4.
Photomultiplicateur .................................................................................................................................. 40
2.3.5.
Le système électronique de positionnement ............................................................................................ 40
2.4.
RAPPEL SUR LES INTERACTIONS DES PHOTONS AVEC LA MATIERE .................................................................................. 41
2.4.1.
Effet photoélectrique ................................................................................................................................ 41
2.4.2.
Diffusion Compton .................................................................................................................................... 42
2.4.3.
Matérialisation ......................................................................................................................................... 44
2.5.
3.
Calcul des performances des collimateurs multi-trous ................................................................................... 37
FACTEURS DE DEGRADATION DE L’IMAGE ................................................................................................................ 44
2.5.1.
Atténuation............................................................................................................................................... 44
2.5.2.
Diffusion.................................................................................................................................................... 45
2.5.2.1.
Définition......................................................................................................................................................... 45
2.5.2.2.
Correction ....................................................................................................................................................... 46
2.5.3.
Résolution spatiale variable avec la distance ........................................................................................... 47
2.5.4.
Effet de volume partiel ............................................................................................................................. 48
2.5.5.
Décroissance du taux d’activité ................................................................................................................ 49
2.5.6.
Mouvements du patient ........................................................................................................................... 49
2.5.7.
Bruit poissonien ........................................................................................................................................ 50
2.5.7.1.
Principe ........................................................................................................................................................... 50
2.5.7.2.
Correction ....................................................................................................................................................... 50
2.5.7.3.
Simulation ....................................................................................................................................................... 51
RECONSTRUCTION TOMOGRAPHIQUE ............................................................................................................ 52
3.1.
INTRODUCTION .................................................................................................................................................. 52
3.2.
METHODES ANALYTIQUES .................................................................................................................................... 53
3.2.1.
Modélisation de l’acquisition .................................................................................................................... 53
3.2.2.
Rétroprojection ......................................................................................................................................... 54
3.2.3.
Le théorème des projections ..................................................................................................................... 55
3.2.4.
La rétroprojection filtrée ........................................................................................................................... 56
3.2.5.
La fonction de filtrage............................................................................................................................... 57
3.2.6.
Limite des méthodes analytiques ............................................................................................................. 58
3.3.
METHODES ITERATIVES ........................................................................................................................................ 59
3.3.1.
Algorithme d’Espérance Maximisée ......................................................................................................... 59
3.3.2.
Algorithme OSEM ..................................................................................................................................... 60
3.3.3.
Algorithme du Gradient Conjugué ............................................................................................................ 62
3.4.
OPTIMISATION MATHEMATIQUE ............................................................................................................................ 63
3.4.1.
Principe général de l’optimisation ............................................................................................................ 63
3.4.2.
Exemples de fonction objectif avec régularisateur ................................................................................... 64
3.4.3.
Exemples d’optimiseurs ............................................................................................................................ 65
6
3.5.
4.
CALCUL DES COEFFICIENTS DE LA MATRICE DE PROJECTION ET IMPLEMENTATION ............................................................. 66
3.5.1.
Projection simple (1D)............................................................................................................................... 66
3.5.2.
Projection avec modélisation de la perte de résolution avec la profondeur ............................................. 67
3.5.3.
Projection avec atténuation ..................................................................................................................... 67
3.5.4.
Calcul implicite des coefficients par rotation du volume .......................................................................... 68
3.5.5.
Utilisation du GPU pour accélérer la reconstruction ................................................................................ 69
TOMOGRAPHIE CARDIAQUE ........................................................................................................................... 71
4.1.
LE CŒUR .......................................................................................................................................................... 71
4.1.1.
Anatomie générale ................................................................................................................................... 71
4.1.2.
Vascularisation du cœur ........................................................................................................................... 72
4.1.3.
Le ventricule gauche ................................................................................................................................. 73
4.2.
5.
ACQUISITION TOMOGRAPHIQUE ............................................................................................................................ 73
4.2.1.
Acquisition simple ..................................................................................................................................... 73
4.2.2.
Acquisition synchronisée........................................................................................................................... 74
4.3.
VISUALISATION AVEC LE « BULL’S EYE » ................................................................................................................. 75
4.4.
FANTOMES MATHEMATIQUES DE COEUR ................................................................................................................. 75
4.4.1.
Le fantôme MCAT ..................................................................................................................................... 75
4.4.2.
Le fantôme NCAT ...................................................................................................................................... 76
CORRECTION DE L’ATTENUATION ................................................................................................................... 77
5.1.
CONSEQUENCES ................................................................................................................................................. 77
5.1.1.
Exemple d’atténuation sur un cylindre homogène ................................................................................... 77
5.1.2.
Atténuation diaphragmatique .................................................................................................................. 78
5.1.3.
Atténuation mammaire ............................................................................................................................ 78
5.2.
ESTIMATION DE LA CARTE D’ATTENUATION .............................................................................................................. 79
5.2.1.
Carte uniforme sur un contour ................................................................................................................. 79
5.2.2.
Utilisation d’une source externe de transmission gamma........................................................................ 80
5.2.3.
Correction avec utilisation d’un scanner à rayons X ................................................................................. 81
5.2.4.
Estimation préalable par utilisation des conditions de consistance ......................................................... 82
5.2.4.1.
Conditions de consistance analytiques ........................................................................................................... 82
5.2.4.2.
Conditions de consistance algébriques ........................................................................................................... 83
5.2.5.
6.
Reconstruction simultanée de l’émission et de l’atténuation ................................................................... 83
METHODES DEVELOPPEES ............................................................................................................................... 86
6.1.
CREATION D’UN PROJECTEUR ET D’UN RETROPROJECTEUR SUR GPU............................................................................. 86
6.1.1.
Projecteur ................................................................................................................................................. 87
6.1.1.1.
Base ................................................................................................................................................................. 87
6.1.1.2.
Prise en compte de la perte de résolution avec la profondeur ....................................................................... 87
6.1.1.3.
Atténuation ..................................................................................................................................................... 89
7
6.1.1.4.
Fan beam ......................................................................................................................................................... 89
6.1.1.5.
Algorithme ...................................................................................................................................................... 90
6.1.2.
6.1.2.1.
Base ................................................................................................................................................................. 90
6.1.2.2.
Prise en compte de la perte de résolution avec la profondeur ....................................................................... 90
6.1.2.3.
Atténuation ..................................................................................................................................................... 90
6.1.2.4.
Fan beam ......................................................................................................................................................... 91
6.1.2.5.
Algorithme ...................................................................................................................................................... 91
6.2.
VERSION CPU DU PROJECTEUR ET DU RETROPROJECTEUR ........................................................................................... 91
6.3.
OSEM ............................................................................................................................................................. 92
6.3.1.
Emission .................................................................................................................................................... 92
6.3.2.
Transmission ............................................................................................................................................. 93
6.3.3.
Optimisation de l’émission et de la transmission en alternance .............................................................. 94
6.4.
GRADIENT CONJUGUE ......................................................................................................................................... 95
6.5.
METHODE AVEC KNITRO .................................................................................................................................... 95
6.5.1.
Introduction .............................................................................................................................................. 95
6.5.2.
Objectif de Poisson ................................................................................................................................... 96
6.5.3.
Objectif de Gauss ...................................................................................................................................... 98
6.5.4.
Calcul du gradient pour l’atténuation....................................................................................................... 99
6.5.5.
Estimation par zones .............................................................................................................................. 100
6.5.6.
Régularisation ......................................................................................................................................... 100
6.6.
PLATEFORME DE TEST ET DONNEES UTILISEES ......................................................................................................... 101
6.6.1.
Fantôme numérique de cœur NCAT........................................................................................................ 101
6.6.2.
Données cliniques ................................................................................................................................... 103
6.6.2.1.
Examen TEMP-CT avec atténuation diaphragmatique .................................................................................. 103
6.6.2.2.
Base de données de 33 TEMP myocardiques ................................................................................................ 104
6.6.3.
Affichage des trois vues .......................................................................................................................... 104
6.6.4.
Maximum Intensity Projection................................................................................................................ 105
6.6.5.
Bull’s Eye ................................................................................................................................................. 106
6.7.
7.
Rétroprojecteur......................................................................................................................................... 90
SIMULATEUR DE MONTE-CARLO ......................................................................................................................... 107
6.7.1.
Algorithme général ................................................................................................................................. 107
6.7.2.
Version GPU ............................................................................................................................................ 109
RESULTATS ACCELERATION GPU ................................................................................................................... 111
7.1.
EVALUATION DE LA QUALITE DE RECONSTRUCTION .................................................................................................. 111
7.1.1.
Comparaison OSEM/Gradient Conjugué ................................................................................................ 111
7.1.2.
Influence du nombre de sous-ensembles ................................................................................................ 114
7.1.3.
Importance de la précision de l’interpolation ......................................................................................... 116
7.1.4.
Influence de la correction symétrique/asymétrique de l’atténuation .................................................... 118
8
7.1.5.
7.2.
TEMPS DE CALCULS ........................................................................................................................................... 120
7.2.1.
Temps de calculs sur la 7950GX2 ............................................................................................................ 120
7.2.2.
Temps de calculs sur la GTX 280 ............................................................................................................. 123
7.3.
8.
Comparaison OSEM GPU/CPU ................................................................................................................ 118
SIMULATEUR DE MONTE CARLO .......................................................................................................................... 124
RESULTATS CORRECTION D’ATTENUATION A PARTIR DES DONNEES D’EMISSION ........................................ 125
8.1.
ETUDE EN SIMULATION ...................................................................................................................................... 125
8.1.1.
Atténuation seule inconnue .................................................................................................................... 125
8.1.1.1.
Activité uniforme........................................................................................................................................... 125
8.1.1.2.
Activité réaliste ............................................................................................................................................. 126
8.1.2.
Reconstruction simultanée activité et atténuation ................................................................................ 127
8.1.2.1.
Acquisition sur 360° sans bruit ...................................................................................................................... 127
8.1.2.2.
Acquisition sur 180° avec bruit poissonnien ................................................................................................. 128
8.2.
ETUDE SUR PATIENTS......................................................................................................................................... 129
8.2.1.
Exemple d’atténuation diaphragmatique ............................................................................................... 129
8.2.2.
Exemple d’atténuation mammaire ......................................................................................................... 130
8.2.3.
Etude des Bull’s Eyes d’une série de patients référencés ........................................................................ 131
CONCLUSION .......................................................................................................................................................... 135
BIBLIOGRAPHIE ...................................................................................................................................................... 138
BIBLIOGRAPHIE PERSONNELLE EN RELATION AVEC LA THESE................................................................................. 147
ANNEXE A.
ALGORITHME DE CALCUL DE LA DISTRIBUTION ANGULAIRE DES PHOTONS COMPTON EN FONCTION
DE LEUR ENERGIE E0 ............................................................................................................................................... 148
ANNEXE B.
ALGORITHME DU PROJECTEUR AVEC GPU ....................................................................................... 149
ANNEXE C.
ALGORITHME DU RETROPROJECTEUR AVEC GPU ............................................................................ 151
ANNEXE D.
EXEMPLE DE PROGRAMME GPGPU ................................................................................................. 153
9
Table des illustrations
Figures
FIGURE 1-1 EVOLUTION DE LA PUISSANCE DES GPU (SOURCE : NVIDIA) .......................................................................................... 22
FIGURE 1-2 PIPELINE GRAPHIQUE ............................................................................................................................................. 24
FIGURE 1-3 RASTERISATION D’UNE LIGNE DEFINIE PAR DEUX SOMMETS A ET B. ................................................................................. 27
FIGURE 2-1 REPRESENTATION DES DIFFERENTES GEOMETRIES DE COLLIMATEURS ............................................................................... 36
FIGURE 2-2 : REPONSES SIMULEES POUR UNE SOURCE PONCTUELLE DE
99M
TC DE 9 COLLIMATEURS DE MEME RESOLUTION SPATIALE, POUR
DIFFERENTES EPAISSEURS DE CLOISONS (A) : 0,12MM – ON NOTE UNE PENETRATION SEPTALE IMPORTANTE, (B)
: 0,25 MM, (C) :
0,28 MM, ET POUR DIFFERENTES DIMENSIONS DE TROUS, (1) : 2 MM, (2) : 3 MM, (3) : 4 MM. (D’APRES [16]). .......................... 38
FIGURE 2-3 SCHEMA D'UN PHOTOMULTIPLICATEUR COUPLE A UN SCINTILLATEUR .............................................................................. 40
FIGURE 2-4 PREDOMINANCE RELATIVE DES TROIS PRINCIPALES INTERACTIONS PHOTON-MATIERE, EN FONCTION DE L’ENERGIE DES PHOTONS
GAMMA ET DU NUMERO ATOMIQUE DU MILIEU.................................................................................................................. 41
FIGURE 2-5 SCHEMATISATION DE L’EFFET PHOTOELECTRIQUE ........................................................................................................ 41
FIGURE 2-6 SCHEMATISATION DE LA DIFFUSION COMPTON ........................................................................................................... 42
FIGURE 2-7 DISTRIBUTION ANGULAIRE DES PHOTONS DIFFUSES COMPTON POUR TROIS ENERGIES DE PHOTONS INCIDENTS : 70, 150 ET 200
KEV. .......................................................................................................................................................................... 43
FIGURE 2-8 SCHEMATISATION DE LA MATERIALISATION................................................................................................................. 44
FIGURE 2-9 PHENOMENE D’ATTENUATION ................................................................................................................................. 45
FIGURE 2-10 ARTEFACTS DUS A L’EFFET COMPTON...................................................................................................................... 46
FIGURE 2-11 : ILLUSTRATION DE LA VARIATION DE LA REPONSE DU COLLIMATEUR POUR TROIS SOURCES PONCTUELLES DANS DEUX PLANS DE
PROJECTIONS. LA REPONSE IMPULSIONNELLE S’ELARGIT QUAND LA DISTANCE SOURCE-DETECTEUR AUGMENTE ............................... 48
FIGURE 2-12 : BRUIT POISSONIEN EN FONCTION DU NOMBRE DE PHOTONS DETECTES......................................................................... 50
FIGURE 3-1 PROJECTION D’ANGLE Θ=0 (A) D’UN EXAMEN DE PERFUSION CEREBRALE, ET SINOGRAMME POUR Z CORRESPONDANT A LA LIGNE
ROUGE (B). ................................................................................................................................................................ 52
FIGURE 3-2 VOLUME DE LA DISTRIBUTION DU TRACEUR D’UNE PERFUSION CEREBRALE, VISUALISE SOUS LES PLANS AXIAL, CORONAL ET
SAGITTAL. ................................................................................................................................................................... 52
FIGURE 3-3 RELATION ENTRE LE SYSTEME DE COORDONNEES FIXE (X,Y) ET LE SYSTEME DE COORDONNEES TOURNANT (T,L), Θ ETANT L’ANGLE
DE ROTATION PAR RAPPORT A L’AXE X. ............................................................................................................................. 54
FIGURE 3-4 PROJECTIONS CHOISIES POUR COMPOSER UN SOUS-ENSEMBLE (EN CLAIR) A PARTIR D’UN ENSEMBLE DE 64 PROJECTIONS
PARTITIONNE EN 8 SOUS-ENSEMBLES ............................................................................................................................... 61
FIGURE 3-5 DISCRETISATION DE L’OPERATEUR DE PROJECTION. ...................................................................................................... 66
FIGURE 3-6 : MODELISATION 1D ET 3D DE LA PROJECTION D’UN VOXEL. EN 3D LA REPONSE S’ETALE SUR PLUSIEURS PIXELS, DU FAIT DE LA
RESOLUTION LIMITEE. ................................................................................................................................................... 67
FIGURE 3-7 DISCRETISATION DE L’OPERATEUR DE PROJECTION, CAMERA PARALLELE A LA GRILLE DES PIXELS PAR ROTATION DU VOLUME. ...... 68
FIGURE 4-1 SCHEMA DU CŒUR (SOURCE : WIKIMEDIA COMMONS) ................................................................................................ 71
10
FIGURE 4-2 ARTERES CORONAIRES (CC PATRICK J. LYNCH, 2006) .................................................................................................. 72
FIGURE 4-3 SCHEMA VENTRICULES DROITS ET GAUCHE ET PLANS DE COUPE. ..................................................................................... 73
FIGURE 4-4 CARTE D’ACTIVE EN TOMOGRAPHIE CARDIAQUE APRES REORIENTATION D’UN CŒUR NORMAL. ............................................. 74
FIGURE 4-5 IMAGE RECONSTRUITE DE TOMOGRAPHIE CARDIAQUE AVEC DEFAUT DE PERFUSION DE LA PAROI INFERIEURE. .......................... 74
FIGURE 4-6 CARTE POLAIRE DES ACTIVITES CARDIAQUES (BULL’S EYE). CŒUR NORMAL A GAUCHE ET HYPOFIXATION INFERIEURE A DROITE. .. 75
FIGURE 4-7 FANTOME NCAT, DISTRIBUTION D’ACTIVITE. ............................................................................................................. 76
FIGURE 4-8 FANTOME NCAT, CARTE D’ATTENUATION. ................................................................................................................ 76
FIGURE 5-1 RECONSTRUCTION DES PROJECTIONS ATTENUEES D’UN FANTOME NUMERIQUE REPRESENTANT UN CYLINDRE HOMOGENE SANS
CORRECTION D’ATTENUATION......................................................................................................................................... 77
FIGURE 5-2 VUE CORONALE D’UNE ATTENUATION DIAPHRAGMATIQUE. IMAGE TEMP SANS CORRECTION, IMAGE CT, IMAGE TEMP CORRIGEE
DE L’ATTENUATION (ACQUISITION TEMP/CT). .................................................................................................................. 78
FIGURE 5-3 VUE SAGITTALE D’UNE ATTENUATION MAMMAIRE. IMAGE TEMP SANS CORRECTION, IMAGE CT, IMAGE TEMP CORRIGEE DE
L’ATTENUATION (ACQUISITION TEMP/CT). ...................................................................................................................... 79
FIGURE 6-1 INTERFACE DE LA PLATEFORME DE TEST ................................................................................................................... 101
FIGURE 6-2 FANTOME NCAT D’ATTENUATION ET EMISSION ........................................................................................................ 102
FIGURE 6-3 ACQUISITION TEMP/CT AVEC ATTENUATION DIAPHRAGMATIQUE. .............................................................................. 104
FIGURE 6-4 SCHEMA POUR LA GENERATION DU BULL’S EYE ......................................................................................................... 107
FIGURE 7-1 EVOLUTION DE L’ERREUR AVEC LES ITERATIONS AVEC OSEM 1 SUBSET (EM) ET LE GRADIENT CONJUGUE (GC) AVEC (+AC) OU
SANS CORRECTION D’ATTENUATION ET AVEC (3D) OU SANS (1D) PRISE EN COMPTE DU COLLIMATEUR SUR LE FANTOME NCAT EN
PRECISION 32 BITS. .................................................................................................................................................... 112
FIGURE 7-2 EVOLUTION DE L’ERREUR AVEC LES ITERATIONS AVEC OSEM3D+AC 1ET LE GRADIENT CONJUGUE+AC SELON LA PRECISION
16BITS OU 32BITS SUR LE FANTOME NCAT. ................................................................................................................... 112
FIGURE 7-3 COMPARAISON VISUELLE PAR LES DIFFERENTES METHODES DE RECONSTRUCTION SUR LE FANTOME NCAT. .......................... 113
FIGURE 7-4 EVOLUTION DE L’ERREUR AVEC LE NOMBRE DE MISE A JOUR EN FONCTION DU NOMBRE DE SOUS-ENSEMBLES POUR UNE
RECONSTRUCTION OSEM1D+AC SUR LE FANTOME NCAT. .............................................................................................. 114
FIGURE 7-5 EVOLUTION DE L’ERREUR AVEC LE NOMBRE DE MISE A JOUR EN FONCTION DU NOMBRE DE SOUS-ENSEMBLES POUR UNE
RECONSTRUCTION OSEM3D+AC SUR LE FANTOME NCAT. .............................................................................................. 115
FIGURE 7-6 EVOLUTION DE L’ERREUR AVEC LE NOMBRE DE MISE A JOUR EN FONCTION DU NOMBRE DE SOUS-ENSEMBLES POUR OSEM3D+AC
AVEC UN NOMBRE DE COUPS TRES FAIBLE (PROJECTIONS DE TYPE DATSCAN AVEC UN MAXIMUM DE 10) ................................... 115
FIGURE 7-7 EVOLUTION DE L’ERREUR AVEC LE NOMBRE D’ITERATIONS POUR CHAQUE PRECISION ET CHAQUE MODE D’INTERPOLATION SUR LE
FANTOME NCAT. ...................................................................................................................................................... 116
FIGURE 7-8 COMPARAISON VISUELLE EN FONCTION DU MODE D’INTERPOLATION ET DE LA PRECISION EN VIRGULE FLOTTANTE SUR UNE
PERFUSION CEREBRALE. ............................................................................................................................................... 117
FIGURE 7-9 EVOLUTION DE L’ERREUR AVEC LES ITERATIONS EN OSEM3D+AC SELON LE MODE D’ATTENUATION AVEC LA CARTE
D’ATTENUATION EXACTE SUR LE FANTOME NCAT. ........................................................................................................... 118
FIGURE 7-10 EVOLUTION DE L’ERREUR AVEC LES ITERATIONS EN OSEM3D+AC AVEC CORRECTION D’ATTENUATION POUR LES VERSIONS CPU
ET GPU SUR LE FANTOME NCAT. ................................................................................................................................. 119
FIGURE 8-1 ATTENUATION RECONSTRUITES SUR FANTOME NCAT A PARTIR DE PROJECTIONS 360° SANS BRUIT AVEC ACTIVITE UNIFORME. . 126
11
FIGURE 8-2 ATTENUATION RECONSTRUITE SUR FANTOME NCAT A PARTIR DE PROJECTIONS 360° SANS BRUIT. ..................................... 126
FIGURE 8-3 ATTENUATION ET EMISSION RECONSTRUITE SUR FANTOME NCAT A PARTIR DE PROJECTIONS 360° SANS BRUIT AVEC OSEM3DA.
.............................................................................................................................................................................. 127
FIGURE 8-4 RECONSTRUCTION EMISSION SUR FANTOME NCAT A PARTIR DE PROJECTIONS 360° SANS BRUIT AVEC BULL’S EYE................. 128
FIGURE 8-5 RECONSTRUCTION EMISSION SUR FANTOME NCAT A PARTIR DE PROJECTIONS 180° AVEC BRUIT AVEC BULL’S EYE................. 128
FIGURE 8-6 RECONSTRUCTION CARDIAQUE DANS LE CAS D’UNE ATTENUATION DIAPHRAGMATIQUE. .................................................... 129
FIGURE 8-7 RECONSTRUCTION CARDIAQUE DANS LE CAS D’UNE ATTENUATION MAMMAIRE. .............................................................. 130
FIGURE 8-8 BULL’S EYES MOYENS SUR 8 SUJETS AVEC ATTENUATION DIAPHRAGMATIQUE SUPPOSEE. .................................................. 131
FIGURE 8-9 BULL’S EYES MOYENS SUR 10 SUJETS AVEC ATTENUATION MAMMAIRE SUPPOSEE. ........................................................... 132
FIGURE 8-10 BULL’S EYES MOYENS SUR 9 SUJETS NORMAUX. ...................................................................................................... 133
FIGURE 8-11 BULL’S EYES MOYENS SUR 6 SUJETS AVEC HYPOFIXATION INFERIEURE SUPPOSEE. ........................................................... 134
12
Tableaux
TABLEAU 5-1 NOMBRES HOUNSFIELD ET TISSUS .......................................................................................................................... 81
TABLEAU 6-1 ACTIVITE ET ATTENUATIONS FIXEES POUR LE FANTOME NCAT. .................................................................................. 102
TABLEAU 6-2 STRUCTURE D’UN PHOTON EN MEMOIRE VIDEO ...................................................................................................... 110
3
TABLEAU 7-1 TEMPS DE CALCULS SUR 7950GX2 POUR 8 ITERATIONS ET 5 SOUS-ENSEMBLES : CERVEAU 128 120 PROJECTIONS. .......... 120
3
TABLEAU 7-2 TEMPS DE CALCULS SUR 7950GX2 POUR 8 ITERATIONS ET 5 SOUS-ENSEMBLES : CŒUR 64 30 PROJECTIONS. .................. 120
TABLEAU 7-3 FACTEUR D’ACCELERATION SUR 7950GX2 POUR OSEM3D 8 ITERATIONS ET 5 SOUS-ENSEMBLES EN FONCTION DE LA TAILLE
DES DONNEES ............................................................................................................................................................ 121
3
TABLEAU 7-4 TEMPS PRIS PAR CHACUN DES OPERATEURS SUR 7950GX2 POUR UNE ITERATION EM 3D SUR UN VOLUME 128 , 120
PROJECTIONS. ........................................................................................................................................................... 122
TABLEAU 7-5 PROPORTION DU TEMPS DE CALCUL TOTAL PRIS PAR LES OPERATEURS EN FONCTION DU TYPE DE RECONSTRUCTION SUR GPU.
.............................................................................................................................................................................. 122
3
TABLEAU 7-6 TEMPS DE CALCULS SUR GTX 280 POUR 8 ITERATIONS ET 5 SOUS-ENSEMBLES : CERVEAU 128 120 PROJECTIONS............. 123
3
TABLEAU 7-7 TEMPS DE CALCULS SUR GTX 280 POUR 8 ITERATIONS ET 5 SOUS-ENSEMBLES : CŒUR 64 30 PROJECTIONS..................... 123
TABLEAU 7-8 FACTEUR D’ACCELERATION SUR GTX 280 POUR OSEM3D 8 ITERATIONS ET 5 SOUS-ENSEMBLES EN FONCTION DE LA TAILLE DES
DONNEES. ................................................................................................................................................................ 124
TABLEAU 8-1
PROPORTION DE COUPS PAR RAPPORT AU TOTAL DANS LES BULL’S EYES AVEC OSEM3D ET OSEM3DA SUR DES EXAMENS
AVEC ATTENUATION DIAPHRAGMATIQUE SUPPOSEE. ......................................................................................................... 131
TABLEAU 8-2
PROPORTION DE COUPS PAR RAPPORT AU TOTAL DANS LES BULL’S EYES AVEC OSEM3D ET OSEM3DA SUR DES EXAMENS
AVEC ATTENUATION MAMMAIRE SUPPOSEE. .................................................................................................................... 132
TABLEAU 8-3
PROPORTION DE COUPS PAR RAPPORT AU TOTAL DANS LES BULL’S EYES AVEC OSEM3D ET OSEM3DA SUR DES EXAMENS
CONSIDERES NORMAUX. .............................................................................................................................................. 133
TABLEAU 8-4
PROPORTION DE COUPS PAR RAPPORT AU TOTAL DANS LES BULL’S EYES AVEC OSEM3D ET OSEM3DA SUR DES EXAMENS
AVEC HYPOFIXATION INFERIEURE SUPPOSEE. .................................................................................................................... 134
13
Abréviations et notations
AGP : Accelerated Graphics Port. Norme de bus informatique.
API : Application Programming Interface. Interface de programmation.
ARB : OpenGL Architecture Review Board. Groupe d’industriels surveillant la specification
OpenGL.
ART : Algebric Reconstruction Technique.
Cg : C for graphics. Langage shaders.
CPU : Central Processing Unit. Processeur central.
CT : Computed Tomography. Scanner à rayon X.
CTM : Close To Metal. Interface de programmation GPGPU.
CUDA : Compute Unified Device Architecture. Interface de programmation GPGPU.
DVI : Digital Video Interface.
EM : Algorithme d’Espérance Maximisée.
FLOPS : FLoating-point Operations Per Second. Operation en virgule flottante par seconde.
GLSL : OpenGL Shading Language. Langage shaders.
GPU : Graphic Processing Unit. Processeur graphique.
GPGPU : General Purpose computing on Graphics Processing Units. Utilisation des GPUs pour
réaliser des calculs généraux non liés à l’affichage graphique.
ISA : Industry Standart Architecture. Norme de bus informatique.
KNITRO : Karush Non-linear Interior point Trust Region Optimization. Algorithme
d’optimisation
L-BFGS-B : L pour "Limited memory", B pour "Bounded", BFGS les initiales de Broyden
Fletcher Goldfarb Shano. Algorithme d’optimisation.
LUT : Look-Up Table. Table de correspondance permettant d’associer des valeurs.
MCAT : Mathematical CArdiac Torso. Fantôme numérique de cœur.
MIP : Maximum Intensity Projection.
NCAT : NURBS-based CArdiac Torso. Fantôme numérique de cœur.
OpenGL : Open Graphic Library.
OSEM : Ordered Subsets Expectation Maximisation, version d’EM utilisant les sous-ensembles.
OSEM1D : OSEM sans prise en compte de la perte de résolution avec la profondeur.
14
OSEM2D : OSEM avec prise en compte de la perte de résolution avec la profondeur uniquement
dans le plan de la coupe.
OSEM3D : OSEM avec prise en compte de la perte de résolution avec la profondeur en 3D.
OSEMA : OSEM avec calcul Alterné de l’émission et de la transmission à partir des seules
données d’émission, de manière à corriger les images d’activité de l’Atténuation
OSEM3DA : OSEMA avec prise en compte de la perte de résolution avec la profondeur en 3D.
PCI : Peripheral Component Interconnect. Norme de bus informatique.
RAM : Random Access Memory. Mémoire vive ou mémoire centrale.
RAMDAC : Random Access Memory Digital-Analog Converter.
ROM : Read Only Memory. Mémoire morte.
SIMD : Single Instruction Mutilple Data. Une seule instruction, données multiples, mode de calcul
parallèle.
TEMP : Tomographie d’Emission MonoPhotonique.
SPECT en anglais : Single Photon Emission Computed Tomography.
15
16
Introduction
L’imagerie médicale est devenue un outil indispensable dans l’établissement de nombreux
diagnostics. Certaines modalités comme la radiographie et le scanner à rayons X s’attachent à
visualiser l’anatomie du corps humain, tandis que d’autres permettent la visualisation de son
fonctionnement. Parmi ces dernières, on trouve les techniques d’imagerie de médecine nucléaire,
qui permettent de visualiser la répartition d’un produit radioactif (le traceur) préalablement
administré dans le corps humain. Le but est d’obtenir des informations sur le fonctionnement de
l’organe ciblé, comme l’irrigation, la capacité de fixation et la redistribution du traceur.
Le présent travail concerne le développement de techniques de traitement d’image dans le
domaine de la Tomographie par Emission Mono-Photonique (TEMP). La TEMP est une modalité
d’imagerie nucléaire qui utilise un détecteur de photons gamma, appelée gamma caméra, pour
enregistrer plusieurs images de la concentration radioactive selon différents plans de projection en
effectuant une rotation autour du patient. La principale problématique réside dans la mise en œuvre
d’un algorithme de reconstruction performant permettant d’obtenir, à partir de cet ensemble
d’images planes (2D), la distribution volumique (3D) du traceur.
Le problème de la reconstruction d’un volume à partir de ses projections est résolu depuis
longtemps dans le cas théorique idéal, c'est-à-dire sans le bruit statistique lié à la désintégration
radioactive ni la prise en compte des nombreux facteurs physiques qui dégradent la qualité des
images acquises. Parmi ces facteurs, citons les plus importants :
-
Premièrement, la perte de résolution spatiale, variable avec la distance entre la source
d’émission et le détecteur. Cette perte de résolution est liée à « l’optique » utilisée par les
gamma caméras, appelée collimateur.
-
Un autre facteur perturbant la qualité d’image est l’atténuation : un
photon émis depuis
l’intérieur du sujet examiné a une certaine probabilité de disparaître avant d’arriver au
détecteur. Cette probabilité dépend de la distance parcourue au sein des différents tissus
traversés, et de la nature de ces tissus. Dans le cas de la tomographie cardiaque, il en résulte des
artefacts de reconstruction qui peuvent rendre le diagnostic difficile, voire erroné.
17
-
Enfin, un troisième facteur est la diffusion Compton : un photon peut changer de direction avant
d’être détecté. Ce phénomène se traduit par une sorte de voile de fond, diminuant le contraste
dans les images.
L’étude de la correction de ces différents phénomènes physiques a déjà fait l’objet de
nombreux travaux. Ces travaux ont montré l’intérêt des méthodes itératives de reconstruction, par
rapport aux méthodes analytiques, comme la rétroprojection filtrée. En effet, ces dernières, bien
qu’encore très utilisées en routine clinique du fait de leur rapidité d’exécution, sont difficilement
adaptables à la prise en compte des facteurs de dégradation physiques. Par contre, les méthodes
itératives permettent d’intégrer plus efficacement au sein du processus de reconstruction une
modélisation fine de ces phénomènes physiques. L’algorithme le plus populaire en TEMP est
OSEM (Ordered Subsets Expectation Maximisation), que l’on nomme OSEM3D lorsque la perte
de résolution avec la profondeur est modélisée. Or, l’inconvénient majeur des méthodes itératives
est, qu’elles demandent beaucoup plus de temps de calculs que les méthodes analytiques, ce qui fait
que ces méthodes sont encore peu utilisées en routine clinique.
Le premier objectif de cette thèse est donc de chercher une méthode rapide de
reconstruction des images en TEMP intégrant les principaux facteurs physiques de dégradation des
images, notamment la perte de résolution et l’atténuation.
Pour atteindre cet objectif, notre axe de recherche s’est orienté dans un domaine très
particulier de l’informatique : celui de la programmation directe des cartes graphiques. En effet, le
marché actuel des jeux vidéo pousse les constructeurs de cartes graphiques à proposer à moindre
coût des processeurs de plus en plus performants dans le but d’améliorer le réalisme des scènes
virtuelles dynamiques 3D. Les processeurs graphiques (GPU : Graphics Processing Unit) ont
récemment acquis plus de flexibilité dans leur utilisation, ce qui permet de les détourner de leur
utilisation graphique habituelle, et de s’en servir pour des calculs plus généraux, ce que l’on nomme
le GPGPU (General-purpose computing on graphics processing units). Les GPUs sont conçus pour
traiter de grands flux de données en parallèle, chose qui n’était auparavant possible que sur les
grilles de processeurs de superordinateurs très couteux ; ce qui, à-priori, offre de bonnes
perspectives pour créer une implémentation d’OSEM3D dans un temps raisonnable pour une
utilisation en routine clinique.
18
Le deuxième objectif de cette thèse est de chercher une méthode permettant de corriger
l’atténuation à partir des seules données d’émission pouvant être appliquée en particulier à la
tomographie cardiaque en routine clinique.
En effet, corriger l’atténuation en TEMP nécessite généralement de disposer des
informations anatomiques supplémentaires sur le patient, en utilisant d’autres modalités d’imagerie
comme le scanner à rayons X ou l’emploi d’une source radioactive externe. Les méthodes qui
n’utilisent pas ces données dites « de transmission » font l’approximation que l’atténuation est
uniforme à l’intérieur du corps. Si une telle approximation peut être justifiée dans certains cas,
comme dans celui de l’imagerie cérébrale, il n’en est pas de même en imagerie cardiaque. Or, en
pratique quotidienne, il est rare de disposer des données de scanner X permettant de corriger
l’atténuation des données TEMP. Depuis ces dernières années, il existe des systèmes hybrides
TEMP-scanner qui permettent de réaliser les deux examens sur un même appareil, mais ces
systèmes sont encore peu répandus et la réalisation d’une image scanner X augmente la dose
d’irradiation patient. Nous avons donc cherché à mettre au point une méthode qui permette de
corriger l’atténuation en imagerie cardiaque sans données de transmission. Les travaux effectués
jusqu’à présent dans ce domaine étaient limités à la reconstruction de coupes jointives
indépendantes, et ne tenaient donc pas compte du phénomène de résolution en 3D. Par ailleurs, à
notre connaissance, aucun de ces travaux n’était allé jusqu’à proposer une méthode réellement
utilisable et testée sur une série d’examens 3D de patients en routine clinique. Nous avons donc
abordé ce sujet de recherche en utilisant la programmation graphique, et en testant la faisabilité de
plusieurs méthodes de correction.
Le plan de cette thèse comporte deux grandes parties : la première (chapitres 1 à 5) présente
un état des lieux des thèmes abordés, et la deuxième partie (chapitres 6 à 8) présente les travaux
réalisés.
Concernant la première partie, on peut noter que ce travail se situe au carrefour de plusieurs
disciplines : informatique, physique, mathématique, et médicale. Aussi, cette première partie n’est
pas un exposé spécialisé dans un domaine particulier, mais essaie plutôt de présenter les éléments
essentiels concernant les différents domaines dans le but d’introduire les méthodes développées
dans la deuxième partie.
En premier lieu, nous présentons les bases de l’élément clef de ce travail, à savoir le
principe de la programmation graphique et l’utilisation du GPU, principal thème de recherche en
informatique de cette thèse. Le deuxième chapitre énonce les généralités sur la TEMP, expliquant
le processus d’acquisition ainsi que les phénomènes physiques qui s’y rattachent. Le troisième
19
chapitre parle de la reconstruction des tomographies et décrit les algorithmes mathématiques
associés. Le quatrième chapitre présente plus précisément le cas de la tomographie cardiaque et
décrit l’anatomie et la physiologie du cœur. Le cinquième chapitre rappelle les différentes
méthodes de correction de l’atténuation développées par le passé, plus particulièrement celles
utilisant seulement les données de l’émission.
Dans la deuxième partie sont présentés les méthodes développées et les résultats obtenus. Le
chapitre 6 décrit notamment l’implémentation sur GPU du projecteur et du rétroprojecteur en
géométrie 1D et 3D ainsi que l’utilisation des ces opérateurs dans les méthodes de
reconstruction OSEM, Gradient Conjugué, et par optimisation KNITRO. Sont présentés notamment
la manière de calculer alternativement les images d’activité et d’atténuation à partir des seules
données d’émission dans un processus appelé OSEMA (OSEM Alterné) ainsi que les calculs
mathématiques détaillés concernant la manière de calculer le gradient des images d’activité et
d’atténuation pour l’optimisation simultanée par KNITRO des deux types d’image, en fonction des
objectifs envisagés (critères de Poisson ou de Gauss). Par ailleurs, la plateforme de test et les jeux
de données utilisés pour tester les algorithmes sont présentés. Enfin, nous décrivons comment nous
avons implémenté la méthode de Monte Carlo pour simuler le rayonnement diffusé sur GPU.
Les deux derniers chapitres rassemblent les résultats obtenus. Le chapitre 7 évalue les
différentes méthodes de reconstruction envisagées, d’abord en comparant ces méthodes entre elles
du point de vue de la qualité de la reconstruction, puis en comparant les temps de calcul entre CPU
et GPU dans différentes configurations. Le huitième chapitre présente l’évaluation de la correction
de l’atténuation à partir des données de l’émission seule, d’abord en simulation avec OSEMA et
KNITRO, puis sur les données cliniques réelles dont nous disposions.
En conclusion, nous soulignons le gain apporté par la programmation graphique pour la
reconstruction en TEMP, permettant l’utilisation en routine clinique des algorithmes de
reconstruction tomographiques les plus performants. Ce gain permet également d’envisager d’aller
plus loin dans le développement des méthodes de reconstruction, comme le développement de
méthodes de résolution simultanée de l’émission et de la carte d’atténuation. Nous terminons par
des perspectives de travail, notamment pour améliorer la méthode OSEMA développée. .
20
1. Accélération matérielle avec le GPU
Au début, simple élément électronique servant à gérer l’affichage sur les écrans
d’ordinateurs, la carte graphique est devenue, au cours du temps, un élément clef de l’ergonomie
des ordinateurs et de leur réussite commerciale. En fait, aujourd’hui ces cartes sont dotées d’une
puissance de calcul bien supérieure aux processeurs centraux pour certaines tâches.
1.1. LA CARTE GRAPHIQUE ET SES COMPOSANTS
La carte graphique ou carte vidéo, a pour objectif principal de convertir les données
numériques internes à l’ordinateur en signal compatible avec un moniteur afin d’obtenir une image.
Les premières cartes vidéo ne pouvaient effectuer que des calculs en 2D. Vint ensuite l’époque des
cartes dites accélératrices 3D qui se présentaient sous la forme d’une carte séparée. Chacune des
deux cartes était alors dotée d’un processeur spécifique. Aujourd’hui toutes les cartes gèrent à la
fois la 2D et la 3D.
1.1.1. Le GPU
Le GPU (Graphic Processing Unit) est un processeur présent sur les cartes graphiques des
ordinateurs actuels. A l’origine il était censé décharger le processeur central (CPU) de certaines
tâches. Il est spécialisé dans le rendu graphique et la production d’images de synthèse.
Ils se sont généralisés à la fin des années 1990, leur puissance a évolué exponentiellement,
bien plus que celle des CPUs. Cette remarque est toutefois à pondérer, car même si les GPUs
surpassent les CPUs en termes de milliards d’instructions en virgule flottante à la seconde
(GFLOPS), ces deux composants s’attaquent à des problèmes très différents.
Un CPU est capable de traiter tout type de tâches, il est très flexible. Le GPU, quant à lui va
traiter un nombre de tâches plus limitées, mais va être capable de l’appliquer à un très grand
nombre de données. Si les premiers GPU avait un pipe-line assez rigide qui ne permettait que
d’activer ou de désactiver certaines fonctions, l’introduction d’unités programmables permet
aujourd’hui de les utiliser à d’autres fins que le rendu graphique, on parle alors de GPGPU
(General-Purpose Computing on Graphics Processing Units).
Leur architecture utilise une forme de parallélisme nommée SIMD (Single Instruction
Multiple Data). Les GPUs sont dotés de plusieurs unités de traitement, sur les anciennes
21
générations de GPU les unités étaient réparties entre les unités de traitement des sommets (vertex
pipeline) et unités de traitement des pixels (pixel pipeline), sur les versions récentes l’architecture
est unifiée et il n’y a plus qu’un seul type d’unité de traitement nommé processeur de flux. Par
exemple une nVidia GeForce 7950 GX travaille avec 24 unités de pixels et 8 unités de sommets.
Les GeForce 8800 GTX plus récentes disposent de 128 processeurs de flux, et les GeForce GTX
280, tout dernier modèle de la marque, de 240 processeurs de flux. Les HD 4850 de la marque ATI,
disposent de 800 processeurs de flux, toutefois les différences d’architecture font que la puissance
n’est pas directement proportionnelle au nombre de processeurs, la puissance de cette dernière carte
étant de l’ordre de celle des GTX 280.
Figure 1-1 Evolution de la puissance des GPU (source : Nvidia)
L’importance du marché des jeux vidéo permet de grands volumes de production qui
conduisent à des économies d’échelle, le coût unitaire de production d’un GPU devient donc
relativement faible. Le coût pour une puissance d’un GFLOP était de 50000 $ en 1997 [1], alors
que les GPUs actuels sont descendus à moins de 1$/GFLOPS. Ainsi un problème qui, il y a dix ans,
aurait nécessité un super ordinateur et engendré des coûts faramineux, peut être aujourd’hui résolu
sur des ordinateurs de bureau.
L’idée d’implémenter des algorithmes généraux sur du matériel destiné à des applications
graphiques a été introduite en 1990 avec Lengyel qui l’utilise pour planifier les mouvements d’un
robot en temps réel [2]. Un peu plus tard en 1994, Cabral l’utilise pour accélérer la reconstruction
tomographique [3], travaux qui vont nous intéresser et dont nous reparlerons au chapitre 3.
22
1.1.2. Mémoire vidéo
La mémoire vidéo est une mémoire embarquée sur la carte graphique, dédiée au stockage
des éléments destinés à être affichés. Elle offre des temps d’accès plus courts et un débit nettement
supérieur à la mémoire centrale de par sa voie de communication privilégiée avec le processeur
graphique.
Cette mémoire va permettre de stocker les diverses données géométriques comme les
sommets des primitives et colorimétriques comme les textures, ainsi que les images avant
affichage, partie de la mémoire vidéo que l’on nomme « frame buffer ».
1.1.3. Interface entre la carte graphique et la carte mère
La connexion entre la carte graphique et la carte mère se fait par un port relié à un bus. Cette
connexion permet au CPU et à la mémoire centrale de communiquer avec le GPU et la mémoire
vidéo.
Les premières cartes graphiques utilisaient les bus standard comme les bus ISA (Industry
Standard Architecture), puis leurs remplaçants les bus PCI (Peripheral Component Interconnect),
qui permettent de rajouter des extensions à la carte mère, comme les cartes son, les carte réseaux,
etc.
En 1997, trouvant le bus PCI trop lent pour l’affichage 3D avec ses 133 Mo/s, Intel lança le
bus AGP (Accelerated Graphics Port) destiné exclusivement aux cartes graphiques. Dans sa
dernière version le bus AGP atteint des débits de 2Go/s
Actuellement, une nouvelle norme, le PCI Express est en train de remplacer le bus AGP
avec des débits pouvant aller jusqu’à 8 Go/s.
1.1.4. BIOS Vidéo
Le BIOS vidéo de la carte graphique a la même fonction que celui de la carte mère. C’est un
petit programme enregistré dans une mémoire morte (ROM) qui sert au démarrage de la carte
graphique et à stocker des informations sur la carte graphique, comme par exemple les modes
graphiques supportés.
23
1.1.5. RAMDAC
Le RAMDAC (random access memory digital-analog converter) permet de convertir les
images numériques stockées dans le frame buffer en signaux analogiques à envoyer au moniteur.
La fréquence du RAMDAC détermine les taux de rafraîchissement que la carte graphique peut
supporter. Il est inutilisé dans le cas d’une connexion DVI (Digital Video Interface) où des signaux
numériques sont directement envoyés au moniteur.
1.2. PIPELINE GRAPHIQUE
API Graphique
Application
OpenGL ou
CPU
DirectX
Pilote(Driver)
Transformation
Assemblage
& Eclairage
Primitives
Rastérisation
Application
Frame Buffer
Texture
Vertex
Pixel
Shader
Shader
GPU
Texture
Figure 1-2 Pipeline graphique
1.2.1. API graphique
Il existe des APIs (Application Programming Interface, interface de programmation)
graphiques, qui permettent de faire abstraction du matériel et d’assurer que quel que soit le GPU sur
lequel le programme tourne on ait le même résultat, à condition toutefois que la carte graphique ait
les fonctionnalités requises.
OpenGL (Open Graphics Library) est une spécification qui définit une API multiplateforme pour la conception d'applications générant des images 3D et 2D. Cette spécification est
24
contrôlée par l’ARB (OpenGL Architecture Review Board), constitué d’un ensemble de sociétés
intéressées par la conception d'une interface standard.
Il existe de nombreuses implémentations suivant cette norme généralement fournies par les
constructeurs de matériels graphiques, avec les pilotes de la carte graphique. L’avantage d’OpenGL
est sa grande portabilité qui lui permet de fonctionner sur de nombreux systèmes d’exploitations et
architectures.
DirectX et plus particulièrement sa composante nommée Direct3D fournit des fonctions
similaires mais est uniquement disponible pour les systèmes d’exploitation Windows.
1.2.2. Pilote graphique
Le pilote (ou driver en anglais) est un programme qui permet à l’API de communiquer avec
le matériel en traduisant les instructions dans un langage spécifique au matériel. Dans le cas des
cartes graphiques, il est très important et son implémentation peut affecter les performances, ainsi
le temps d’exécution d’un même programme tournant sur GPU peut varier selon la version du
pilote. Le moindre bug dans le pilote peut avoir des conséquences catastrophiques.
1.2.3. Transformation et éclairage
L’unité transformation et éclairage, également nommée vertex pipeline a pour but de
calculer la transformation des vertices (vertex en anglais), les sommets 3D des objets fournis par
l’application et les calculs d'éclairage appliqués à ces sommets. Chacun des sommets est défini par :
-
sa position dans l’espace objet (x,y,z).
-
sa couleur définie par les composantes rouge, vert, bleu et alpha.
-
sa normale, un vecteur qui va servir pour calculer comment la lumière va se réfléchir.
-
sa coordonnée de texture qui permet de définir comment la texture va se plaquer sur
l’objet.
L’objectif est de projeter les objets de la scène 3D dans l’espace 2D que constitue l’image à
afficher.
Si nous avons un objet défini par ses sommets et que cet objet doit se déplacer ou tourner, il
est bien plus simple de donner des coordonnées de base une fois pour toutes, et de leur appliquer
une matrice de transformation, que de calculer et de fournir de nouvelles coordonnées à chaque
affichage. C’est ce qu’on nomme la matrice de modèle, elle contiendra toutes les transformations
de type translation, rotation et mise à l’échelle que subit l’objet.
25
Les coordonnées de textures associées au vertex, qui permettront plus tard de définir
comment va se placer le placage de texture subissent également une transformation au moyen d’une
matrice de texture.
Viennent ensuite divers effets comme l’éclairage, qui peut être défini pour chaque sommet
en fonction de la position de la lumière et de la normale associée au vertex.
Au final le tout est transformé par une matrice de projection qui peut donner un effet de
perspective ou effectuer une simple projection orthogonale.
1.2.4. Assemblage des primitives
L’assemblage des primitives est une étape qui va transformer les sommets en primitives
géométriques comme des points, des lignes et des triangles.
On y retrouve des opérations comme le culling, par exemple pour spécifier un triangle on
peut donner ses sommets dans le sens des aiguilles d’une montre ou dans le sens contraire selon les
paramètres. Cela permet de définir si c’est une face avant ou une face arrière. Si le culling est activé
on peut décider de ne pas afficher les triangles qui tournent le dos à la caméra.
Egalement le clipping va détecter et éliminer les fragments qui sont en dehors de l’écran, et
comme le culling éviter ainsi de faire des calculs inutiles.
1.2.5. Rastérisation
La rastérisation convertit les primitives géométriques en pixels, aussi nommés fragments.
La primitive est définie par son type et ses sommets, les pixels appartenant à la primitive recevront
pour caractéristiques (couleur, coordonnées de textures, etc.), une valeur interpolée en fonction de
leur distance à chacun des sommets. Ainsi, si deux points d’une ligne sont de couleurs différentes
on obtiendra un dégradé Figure 1-3. A noter que la couleur du pixel donnée à la fin de la
rastérisation ne sera pas forcément celle qui sera affichée au rendu final, car le module
d’application de texture peut encore la modifier.
26
B
A
Figure 1-3 Rastérisation d’une ligne définie par deux sommets A et B.
1.2.6. Application de texture et frame buffer
Une texture est une image qui va être appliquée à une surface ou à un volume 3D. On peut
l’assimiler à un papier peint très déformable que l'on applique en 3D en fonction des coordonnées
de textures fournies pour chaque sommet.
Chaque unité de texture, le texel, contient 4 composantes, rouge, vert, bleu et alpha qui
représentent les trois couleurs primaires de la synthèse additive plus l’alpha qui est utilisé pour le
mélange des couleurs et sert généralement à créer des effets de transparence.
A l’origine il n’y avait que 8 bits par composante car cela suffit pour générer suffisamment
de couleurs différentes pour l’œil humain. Mais les cartes actuelles supportent une précision de 16
bits ou 32 bits par composantes. La version 32 bits correspondant à la simple précision de la norme
IEEE sur l'arithmétique en virgule flottante (IEEE-754).
Le frame buffer ou tampon d’image est un espace mémoire réservé de la mémoire vidéo.
Parmi eux le front buffer stocke l’image en cours d’affichage, le back buffer, lui, contient l’image
suivante qui est en train d’être générée. Le Z buffer est le tampon qui permet de déterminer quels
pixels sont visibles en fonction de leur profondeur (si par exemple un pixel n’en cache pas un
autre). Le stencil buffer est un masque utile pour certains algorithmes comme la génération
d’ombres portées. Les cartes récentes permettent de définir des frames buffers additionnels.
27
Une texture peut ainsi être directement liée à un frame buffer, et peut ainsi être accédée en
écriture directement, sans passer par la mémoire centrale. La texture remplace ainsi l’écran et c’est
elle qui reçoit le rendu. On peut ainsi utiliser les textures comme des tableaux de flottants, pour
faire du calcul non graphique.
Pour le GPGPU, on se contentera d’appliquer la texture sur un carré ou un rectangle qui
remplira l’image de sortie. Grâce à un fragment shader, on peut ainsi prendre une ou plusieurs
textures en entrée, faire les opérations voulues et les afficher dans une autre texture en sortie.
1.2.7. Shaders programmables
Pour donner plus de flexibilité aux GPUs, on a introduit les shaders programmables qui vont
permettre de reprogrammer les fonctions câblées du GPU. Pour cela le vertex shader court-circuite
le module de transformation et d’éclairage, et le fragment shader se charge du module d’application
de texture.
Dans un premier temps la programmation des cartes graphiques se faisait par l’intermédiaire
d’un langage bas niveau de style assembleur, mais des langages de haut niveau se sont vite
développés.
Le premier développé fut le Cg Shader Language développé au début de l’année 2001 par
nVidia [4], un fabricant de processeurs graphiques, qui fournit une interface de programmation
indépendante fonctionnant autant sur OpenGL que DirectX et même sur des cartes avec des
processeurs autres que les siens. Pour gérer les différences de fonctionnalités qu’il peut y avoir
entre les anciens et les nouveaux GPUs, on utilise des « profils ».
Vient ensuite le DirectX High-Level Shader Language (HLSL) qui ne fonctionne qu’avec
l’API DirectX [5]. A part ce point, il est quasiment identique à Cg du fait qu’il a été conjointement
développé par Microsoft et nVidia.
Enfin, l’OpenGL shading language (GLSL) [6] est un langage de shader standardisé par
l'ARB qui s’utilise dans OpenGL.
Ces trois langages sont très proches syntaxiquement, tous ressemblant au langage C. Leur
principale différence étant dans leur mode de compilation.
28
Pour Cg un code assembleur bas niveau intermédiaire est généré en fonction du profil.
L’API le transforme ensuite dans un assembleur au format binaire, et ensuite le driver le transforme
dans un format spécifique au matériel.
Pour DirectX HLSL comme il est lié à l’API, le compilateur le transforme directement en
assembleur binaire qui est envoyé au driver.
GLSL quant à lui court-circuite toutes ces opérations et envoie directement le code au
niveau du driver. L’avantage de cette dernière méthode est que le fabricant de matériel est le plus à
même de connaître les optimisations pour chaque instruction, l’inconvénient étant qu’il oblige tous
les fabricants à intégrer un compilateur à leurs drivers.
1.3. BASES DU GPGPU
Nous n’avons pas à nous soucier du nombre de processeurs dont dispose la carte, le pilote
graphique gérant cela de façon transparente. Nous allons juste devoir définir un traitement pour
chaque pixel.
C’est surtout le fragment shader qui va nous intéresser pour le traitement d’image, car pour
chaque pixel affiché dans le frame buffer le même programme va être appliqué. Prenons ce simple
programme en GLSL qui réalise une simple addition de deux textures :
uniform sampler2D Texture1;
uniform sampler2D Texture2;
void main()
{
vec4
texelColor1 = texture2D( Texture1, gl_TexCoord[0].xy );
vec4
texelColor2 = texture2D( Texture2, gl_TexCoord[0].xy );
gl_FragColor = texelColor1 + texelColor2;
}
29
Les paramètres précédés de uniform sont donnés à l’extérieur du shader par le programme
principal.
gl_TexCoord[0].xy est la coordonnée en x et y du pixel sur le frame buffer de sortie,
L’instruction texture2D va chercher dans une texture en entrée la couleur d’un pixel à une
certaine coordonnée. Dans cet exemple on va donc chercher dans les deux textures en entrée un
pixel situé à la même coordonnée que le pixel de sortie. gl_FragColor est la couleur du pixel de
sortie, ici on lui affecte la somme des couleurs des deux textures.
Dans le programme principal, le code OpenGL aura la forme suivante :
frameBuffer->attach(textureOut);
program->setTexParameter("Texture1", texture1);
program->setTexParameter("Texture2", texture2);
program->enable();
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex2f(0,0);
glTexCoord2f(0,1);
glVertex2f(0,1);
glTexCoord2f(1,1);
glVertex2f(1,1);
glTexCoord2f(1,0);
glVertex2f(1,0);
glEnd();
program->disable();
D’abord on attache la texture de sortie au frame buffer, pour que tous les affichages se
déroulent à l’intérieur de celle-ci. Ensuite on passe les deux textures au shader, puis on active le
30
programme pour qu’il affecte le fragment. Ensuite on dessine un carré en spécifiant chacun de ses
sommets avec l’instruction glVertex, on donne par la même occasion la coordonnée de texture avec
l’instruction glTexCoord2f. Ici les coordonnées sont normalisées entre 0 et 1, sur les dernières
versions on peut choisir un type particulier de textures nommées « textures rectangles » qui
permettent de spécifier des coordonnées non normalisées, cela peut être plus pratique ou non, tout
dépend du problème. Le programme complet en C++ est décrit en Annexe D.
Autre exemple, on peut également réaliser une convolution :
uniform sampler2D Texture1;
uniform float step
void main()
{
Vec2 coords = gl_TexCoord[0].xy;
vec4
texelColor = texture2D( Texture1, coords);
coords.x = gl_TexCoord[0].x - step;
vec4
texelColorM = texture2D( Texture1, coords);
coords.x = gl_TexCoord[0].x + step;
vec4
texelColorP = texture2D( Texture1, coords);
gl_FragColor = (texelColorM + texelColor + texelColorP)/3;
}
Ici nous avons une seule texture en entrée, mais on va chercher trois pixels dans cette
texture, celui à la même position que le pixel de sortie, et ceux d’avant et d’après. La variable step
est le déplacement nécessaire pour aller au pixel d’à coté, elle est donnée à l’extérieur du shader,
car à l’intérieur on ne sait pas la taille totale de l’image en cas de coordonnées normalisées entre 0
et 1.
On peut placer des structures de contrôle comme en langage C de type choix conditionnel à
l’intérieur du shader pour effectuer un traitement sélectif. On peut également utiliser des boucles,
mais celles-ci vont être très limitées, car elles doivent pouvoir être entièrement déroulées par le
compilateur. On ne peut donc pas effectuer toute l’algorithmique qui serait normalement disponible
sur un programme s’exécutant sur le CPU, il faudra donc parfois ruser et par exemple faire générer
le shader par l’application.
31
Autre point, le shader est limité en nombre d’instructions, qui dépend des capacités de la
carte graphique, il faut donc faire attention à ce point, un shader trop gros risque de ne pas passer
sur des cartes trop anciennes, où de ne pas passer du tout.
Pour un tutoriel sur l’utilisation du GPGPU pour des calculs mathématiques de base on peut
également consulter [7].
1.4. PLATEFORMES DEDIES AU GPGPU
Dans les approches précédemment citées, la création de programmes utilisant le GPU
nécessite de bonnes connaissances en programmation graphique, afin de savoir comment détourner
certaines fonctions des cartes dans le but de faire des calculs généraux. La nécessité d’avoir ces
connaissances additionnelles étant un frein au développement industriel, des langages et des
bibliothèques spécifiques ont été développées.
Brook a été développé par l’université de Stanford pour la programmation de « streaming
processors », des processeurs parallèles utilisés dans les superordinateurs [8]. Il a été ensuite adapté
par Buck et al en 2004 pour utiliser les GPU [9], et est devenu ainsi le premier langage dédié au
GPGPU. Il utilise le langage C standard avec quelques variations. Son développement a été
abandonné pendant une longue période avant d’être repris en 2007.
L’environnement CUDA (Compute Unified Device Architecture), introduit par nVIDIA en
2006 avec la série des GeForce 8 est un compilateur avec des outils de développement. Le langage
est assez similaire à Brook.
AMD Stream SDK, le successeur de CTM (Close to Metal), quant à lui est développé pour
les cartes ATI.
Dans sa thèse Jansen décrit GPU++ [10], un système de développement intégré au langage
C++ en utilisant la surcharge d’opérateur, qui permet de faire abstraction du matériel. Il rajoute des
optimisations sur le code.
Ces plateformes sont en plein développement et les choses évoluent très vite pour pouvoir profiter
de la puissance et des nouvelles fonctionnalités des GPUs.
32
2. La tomographie par émission monophotonique
2.1. PRINCIPE
La Tomographie par Emission Mono-Photonique (TEMP) dite en anglais SPECT (Single
photon emission computerized tomography) est une modalité d’imagerie médicale qui a pour
objectif la visualisation de la fixation d’une molécule marquée par un isotope radioactif, émetteur
de photons gamma, dans l’organisme d’un patient. Un détecteur de photons gamma, la gammacaméra, va ensuite effectuer une rotation autour de l’organe et ainsi récupérer plusieurs plans de
projection qu’il sera ensuite nécessaire de reconstruire pour obtenir un volume en 3D.
C’est une imagerie de type fonctionnel et métabolique, elle permet d’observer le
fonctionnement de nombreux organes en fonction de la distribution ou de la cinétique du produit
radioactif utilisé.
Ce chapitre a pour but de décrire le processus d’acquisition ainsi que les phénomènes
physiques qui lui sont associés.
2.2. RADIOISOTOPES
2.2.1. Définition
Le radioisotope, ou marqueur, est un atome radioactif possédant les mêmes propriétés
chimiques que l’atome stable dont il est l’isotope. Il suit donc le même parcours dans l’organisme
mais a la particularité de pouvoir être détecté grâce au rayonnement qu’il émet.
Il est souvent intégré dans une molécule que l’on nomme alors traceur radioactif, ou encore
radiopharmaceutique.
Les radioisotopes les plus utilisés en médecine nucléaire sont des émetteurs gamma
artificiels produits à l’aide d’accélérateurs de particules ou de réacteurs nucléaires. L’énergie des
photons varie de plusieurs dizaines à quelques centaines de keV. Il faut qu’elle soit suffisante pour
traverser les tissus de l’organisme sans être trop atténuée, sans toutefois être trop importante pour
faciliter leur détection et diminuer les problèmes de radioprotection.
Une des caractéristiques importantes des radioisotopes est la durée de demi-vie ou période
physique Tp, c'est-à-dire le temps au bout duquel la moitié des atomes de l’isotope s’est
désintégrée. Il faut aussi considérer la durée de demi-vie biologique Tb, qui est le temps au bout
duquel la moitié des molécules marquées ont été éliminées de l’organisme. La demi-vie effective Te
33
est alors le temps au bout duquel la moitié des molécules radioactives ont disparu de l’organisme et
se calcule de la manière suivante :
1 1 1
 
Te Tp Tb
Parmi les nombreux radio-isotopes utilisés en médecine nucléaire nous retiendrons les trois
suivants avec lesquels nous avons le plus travaillé.
2.2.2. Le technétium 99 métastable
Le technétium 99 métastable (Tc99m) est très utilisé car il a de nombreux avantages. Sa
demi-vie de 6 heures est suffisamment longue pour permettre le suivi des processus physiologiques
mais assez courte pour limiter l’irradiation. C’est un émetteur gamma pur (du fait qu’il est
métastable), produit par désintégration du molybdène 99, et dont le spectre ne comporte qu’une
seule raie à 140 keV. Cette énergie est suffisante pour traverser les tissus vivants et peut être
interceptée efficacement par les cristaux d’iodure de sodium utilisés dans les gamma caméras.
Il peut être associé à de nombreuses molécules biologiques, ce qui lui permet d’être utilisé
aussi bien dans les scintigraphies osseuses, que pour les études cardiaques ou les perfusions
cérébrales.
2.2.3. Le thallium 201
Sous sa forme ionisée, cet atome possède un comportement biologique voisin de celui du
potassium. Il est utilisé notamment pour évaluer la perfusion sanguine myocardique. Il émet
essentiellement des photons X, causés par capture électronique, autour de 75 keV et quelques
photons gammas à plus haute énergie (167 keV). L'énergie de la majeure partie de ses photons étant
faible, les images obtenues sont donc particulièrement sujettes à la dégradation causée par
l'atténuation et la diffusion. De plus, la dose qu'il est possible d'administrer est limitée en raison de
l'abondance relativement importante de radiations non pénétrantes, auxquelles il convient de limiter
l'exposition des patients. Pour toutes ces raisons il tend à être délaissé au profit des marqueurs au
technétium.
2.2.4. L’iode 123
L’iode 123 est bien adapté à l’imagerie de par sa période de 13 heures et de par ses
radiations riches en photons gamma de 159 keV, mais le coût de fabrication est élevé. Il est utilisé
34
pour l’imagerie des récepteurs de l’organisme, notamment les neurorécepteurs, et également pour
étudier le métabolisme thyroïdien.
2.3. GAMMA-CAMERA
2.3.1. Historique
Les premières applications de médecine nucléaire, développées au début du XXème siècle,
utilisaient des compteurs Geiger-Muller (GM) et avaient un très faible rendement pour les photons
gamma (environ 2%). Seidling, Marinelli et Oshry ont découvert en 1943, en traitant des patients
atteints d'un cancer de la thyroïde avec de l'iode 131, que l'ont pouvait, grâce au compteur GM,
procéder à la localisation de métastases du cancer de la thyroïde, fixant elles aussi l'iode 131.
Les travaux de recherche du physicien allemand Heinz Kallmann ont montré en 1948 que
l'utilisation de tubes photomultiplicateurs en association avec un cristal scintillateur était plus
efficace pour la détection des rayons gamma. Benedict Cassen a ensuite exploré le remplacement
des tubes Geiger-Muller par des scintillateurs et des tubes photomultiplicateurs. En 1957 Hal Anger
mit au point la première caméra à scintillations avec une possibilité de translation pour l’image en
corps entier et possibilité de rotation pour la tomographie [11]. Si les caméras actuelles ont évolué,
notamment au niveau de leurs performances, leur principe est toujours basé sur la caméra d’Anger.
Elles sont constituées d’une optique : le collimateur, d’un transformateur d’énergie gammaUV : le cristal, d’un détecteur de photons UV : les photomultiplicateurs, et d’une électronique.
2.3.2. Collimateur
2.3.2.1. Rôle
Le collimateur joue le rôle de l’optique des appareils photographiques. Sans lui des photons
venant de n’importe où frapperaient le détecteur et l’image ne serait qu’une tâche floue. Le
collimateur est généralement constitué par une plaque de plomb percée de trous. Le plomb arrête la
quasi-totalité des photons qui le frappent et ne laisse arriver au détecteur que les photons passant
par les trous.
Il faut noter que les photons traversant le collimateur ne sont pas tous strictement dans la
direction de l’axe des trous. Un collimateur accepte des photons incidents dont la direction est
comprise dans un certain « cône d’acceptance ». La conséquence est que la résolution se dégrade
avec la distance du point source à la caméra. Pour améliorer la résolution spatiale, on peut utiliser
35
des trous de plus petits diamètres, mais cela diminue la sensibilité, c'est-à-dire le nombre de
photons détectés, et augmente le bruit dans les images.
2.3.2.2. Géométries des collimateurs.
Il existe différentes géométries de collimateurs, en particulier les collimateurs parallèles, les
collimateurs en éventail (fan-beam) ou coniques (cone-beam), et les collimateurs sténopé (pin-hole)
(Figure 2-1).
Profil de la réponse impulsionnelle moyenne
(A)
Cristal
h
Profil de la réponse impulsionnelle
e
moyenne
(C)

Cristal
P
h
e
Profil de la réponse impulsionnelle moyenne

(B)
Cristal
h
e
P


 : distance source/cristal
e : diamètre des trous
P
 : distance focale
h : hauteur du collimateur
(A) Parallèle
(B) Eventail ou conique
(C) Sténopé
Figure 2-1 Représentation des différentes géométries de collimateurs
36
Les géométries permettant d’avoir un effet de grandissement (éventail, conique, ou sténopé)
améliorent la sensibilité de détection, mais sont réservées à l’imagerie des organes de petites
dimensions par rapport au diamètre du détecteur. Dans le reste de ce document, nous
n’envisagerons plus que le cas le plus répandu, celui de la collimation parallèle à trous hexagonaux
disposés en forme de nid d’abeille.
2.3.2.3.Calcul des performances des collimateurs multi-trous
Les performances d’un collimateur peuvent être calculées selon trois approches différentes :
Les formules analytiques, les méthodes de simulation, et le calcul de la fonction de transfert de
modulation. Nous présentons ici succinctement ces différentes approches dans le cas du collimateur
parallèle.
Formules dites de « Anger » pour le calcul de la résolution collimateur
Cette approche, la plus immédiate, consiste à appliquer des formules obtenues par des
considérations géométriques simples ( [11] [12] [13] [14]). Dans ces calculs, on s’intéresse à la
réponse moyenne du collimateur, comme s’il était en mouvement. La résolution collimateur
s’exprime alors par la largeur à mi-hauteur de la réponse impulsionnelle moyenne.
Soit e le diamètre d’un trou du collimateur, et h la hauteur du collimateur. Pour un point
situé à une distance , la résolution collimateur Rc est donnée par :
𝑒
𝑅𝑐 =  ×
𝑕
La résolution totale du système (collimateur et détecteur) Rt s’écrit alors :
Rt  Rc2  Ri2
avec : Ri la résolution intrinsèque de la caméra.
Si on souhaite prendre en plus compte la pénétration septale, il faut remplacer
h
par he .
2
h  he


étant le coefficient d’atténuation du collimateur en plomb, par exemple
μ =27 cm-1 à 140 keV.
Ces formules simples présentent un intérêt pratique évident. Bien qu’elles ne rendent pas
compte de tous les aspects physiques qui entrent en jeu dans la collimation, le seul paramètre de
37
largeur à mi-hauteur suffit dans la plupart des situations pour décrire la réponse impulsionnelle en
approximant celle-ci par une gaussienne.
Méthodes de simulation
La deuxième approche est la simulation numérique, soit par « lancé de rayons » ( [15], [16])
soit par méthode de Monte Carlo ( [17], [18]). Une méthode de type « lancé de rayon » permet de
prendre en compte, pour le calcul de la réponse impulsionnelle, la géométrie exacte des trous, ainsi
que la pénétration septale, et la géométrie de la source (linéaire ou ponctuelle) (Figure 2-2).
Figure 2-2 : Réponses simulées pour une source ponctuelle de 99mTc de 9 collimateurs de
même résolution spatiale, pour différentes épaisseurs de cloisons (A) : 0,12mm Ŕ
on note une pénétration septale importante, (B) : 0,25 mm, (C) : 0,28 mm, et pour
différentes dimensions de trous, (1) : 2 mm, (2) : 3 mm, (3) : 4 mm. (d’après [16]).
Une simulation de type Monte Carlo permet en plus de modéliser le rayonnement diffusé
Compton produit dans le collimateur, au prix de temps de calcul beaucoup plus importants. On peut
noter cependant que le numéro atomique du matériau du collimateur étant très élevé, l’effet
Compton est très peu probable comparativement à l’effet photoélectrique, et peut donc être négligé
pour les photons de basse énergie.
38
Notion de fonction de transfert appliquée aux collimateurs
La troisième approche fait référence à la notion de fonction de transfert géométrique (FTG),
ou fonction de transfert de modulation (FTM) du collimateur. L'intérêt essentiel de la notion de
fonction de transfert est de pouvoir analyser les différents éléments d’une chaîne de mesure, en
calculant la réponse système (collimateur+détecteur) à partir de la réponse du collimateur et de
celle du détecteur, par simple multiplication dans le domaine des fréquences. Plusieurs auteurs ont
proposé le calcul analytique de la fonction de transfert des collimateurs pour chaque distance
source-détecteur, soit en considérant la réponse moyenne et l’invariance par translation [19], [20],
[21] soit en calculant la réponse géométrique théorique en chaque point [22].
Or, la collimation ne correspond pas un opérateur linéaire, car la présence des trous et des
septas introduit une non-invariance par translation, qui peut par exemple se traduire par l'apparition
des trous du collimateur sur l'image. En toute rigueur, il n’est donc pas juste de parler de fonction
de transfert d’un collimateur. Pour ne pas perdre de vue ce phénomène, de Lagrevol et al. [23] a
proposé de noter FTM* la transformée de Fourier de la FTG calculée en un point particulier, et a
proposé des formules simples pour la calculer. L'allure générale de cette FTM* comporte deux
parties. Une première partie décroissante à basse fréquence, puis un rebond à haute fréquence. La
première partie caractérise la réponse "utile", alors que le rebond est dû à la présence des trous. Par
ailleurs, la pénétration septale introduit une composante importante à très basse fréquence. Dans ce
cas, la tangente à la fréquence 0 cm-1 n'est plus parallèle à l'axe des abscisses, mais s'incline vers le
bas d'autant plus que la pénétration septale est importante [23].
2.3.3. Cristal scintillant
La scintillation est un phénomène de fluorescence. Des atomes du matériau reçoivent un
rayonnement incident et sont excités, c'est-à-dire qu’un électron passe à un niveau énergétique
supérieur. Lors de la désexcitation, un photon est émis, qui est dans ce cas précis un photon
ultraviolet proche du visible.
En TEMP la plupart des caméras sont équipées d’un cristal d’iodure de sodium activé au
Thallium (NaI(Tl)), dont la plus grande dimension peut dépasser les 50 cm, mais dont l’épaisseur
est faible (0,625 à 1,25 cm). Le cristal absorbe l’énergie des photons collectés qui excite les
électrons des atomes de Thallium situés au voisinage de l’interaction et provoque la scintillation. Le
cristal étant transparent à la lumière qu’il émet, celle-ci va frapper la photocathode du
photomultiplicateur.
39
2.3.4. Photomultiplicateur
Les photomultiplicateurs convertissent l’énergie lumineuse des photons de scintillation en
signal électrique. Ils sont composés d'un tube à vide contenant une photocathode, plusieurs
dynodes, et une anode.
Les photons incidents arrivant sur la photocathode interagissent par effet photoélectrique et
produisent des électrons qui sont accélérés par un champ électrique. A chaque fois qu’un électron
percute une dynode, de nouveaux électrons sont à leur tour arrachés et sont attirés vers la dynode
suivante. Lorsque l'anode est atteinte, l'accumulation de charges crée une impulsion de courant, qui
marque l'arrivée d'un photon sur la cathode. A la sortie le gain est d’un facteur supérieur à 106.
Les premières caméras comportaient une dizaine de photomultiplicateurs de forme
circulaire, à l’heure actuelle elles en comportent une centaine, en général de forme hexagonale, de
façon à mieux couvrir le champ de détection.
Photocathode
Electrons
Anode
Photon
incident
Connecteurs
électriques
Scintillateur
Photon UV
Dynode
Tube photomultiplicateur
Figure 2-3 Schéma d'un photomultiplicateur couplé à un scintillateur
2.3.5. Le système électronique de positionnement
Les impulsions électriques fournies par les photomultiplicateurs sont converties en signaux
numériques par des convertisseurs analogiques digitaux. Pour chaque photon incident, on
détermine ses coordonnées, en calculant le barycentre de la tâche lumineuse reçue par les différents
photomultiplicateurs dans le détecteur, et d’autre part, l’énergie gamma cédée au cristal,
proportionnelle à la quantité d’énergie lumineuse totale produite.
Grâce à des fenêtres en énergie préétablies, on peut séparer les photons gamma primaires
des photons diffusés et également, le cas échéant, séparer plusieurs traceurs.
40
2.4. RAPPEL SUR LES INTERACTIONS DES PHOTONS AVEC LA MATIERE
Une partie des photons gamma émis par le traceur vont interagir avec la matière contenue
dans le corps du patient avant d’atteindre le détecteur. Ceci va fausser la reconstruction de
l’activité, et causer deux phénomènes qui vont être parmi les principaux facteurs de dégradation de
Numéro Atomique Z
l’image à savoir l’atténuation et la diffusion.
100
90
80
70
60
50
40
30
20
10
0
0.01
Effet
photoélectrique
dominant
Matérialisation
de paires
dominante
Diffusion
Compton
dominante
0.1
1
10
Energie (MeV)
100
Figure 2-4 Prédominance relative des trois principales interactions photon-matière, en
fonction de l’énergie des photons gamma et du numéro atomique du milieu.
2.4.1.
Effet photoélectrique
Cette interaction est dominante pour les photons de faible énergie. Lorsqu’un photon
percute un électron, il lui transfère toute son énergie et disparaît.
Electron secondaire
Photon
primaire
Interaction photoélectrique
Figure 2-5 Schématisation de l’effet photoélectrique
L’effet photoélectrique est beaucoup plus efficace sur les électrons des couches internes de
l'atome, donc surtout sur la couche K, la plus profonde. Si l'énergie du photon incident est
41
inférieure à l'énergie de liaison de la couche K, il ne peut se produire d'interaction photoélectrique
avec les électrons de cette couche. Quand l'énergie du photon atteint l'énergie de liaison de la
couche K, on aura donc une augmentation très importante de la section efficace d'interaction. C'est
ce qu'on appelle la discontinuité K ("K-edge"). On fait souvent appel à des formules empiriques
pour calculer la section efficace d’interaction, valides seulement dans des intervalles restreints en
énergie et en numéro atomique.
2.4.2. Diffusion Compton
Dans le cas de la diffusion Compton seule une partie de l’énergie sert à arracher un électron
de son orbite. L'énergie restante est réémise sous forme d'un nouveau photon gamma de moindre
énergie et dont la direction d'émission est différente de la direction incidente du photon gamma
d'origine. C'est le principal mécanisme d'absorption des rayons gamma dans la gamme d'énergie
entre 100 keV et 10 MeV.
Photon diffusé
θ
Photon primaire
Interaction Compton
Electron secondaire
Figure 2-6 Schématisation de la diffusion Compton
L’énergie Ed emportée par le photon diffusé et l’angle de déviation θ qu’il subit sont liés
par la formule suivante :
Ei
Ei
avec  
E 
d 1 (1cos  )
m e c2
me étant la masse de l’électron, c la vitesse de la lumière dans le vide et Ei l’énergie du photon
2
incident. Donc me c =511 kev.
La loi de Klein et Nishina [24], donne la section efficace σ par unité d’angle solide Ω, en
fonction de l’énergie du photon incident et de l’angle de diffusion :
42
2
d r0  Ed


d  2  Ei




2
 E E

 i  d sin 2   
E

 d Ei

r02 
1 cos2 
 2 (1cos  )2 



2  (1 (1cos  ))2 (1 (1cos  ))3 


-13
Avec r0 , rayon classique de l’électron ( re  2.817 10 cm ). Ce qui nous permet de déduire la
distribution angulaire des photons diffusées.
Section efficace par unité d’angle θ :
r02 
d d d 
1 cos 2 
 2 (1cos  )2 



 2 sin 

d d  d
2  (1 (1cos  )) 2 (1 (1cos  ))3 


0.012
70 keV
0.01
150 keV
d
d
0.008
500 keV
0.006
0.004
0.002
0
0
20
40
60
80
100
120
140
160
180
Figure 2-7 Distribution angulaire des photons diffusés Compton pour trois énergies de
photons incidents : 70, 150 et 200 keV.
L’intégration de la formule de Klein-Nishina nous permet d’obtenir la section efficace totale
pour un électron :
 =
𝑗 =2,=2
𝑗 =0,=0
𝑑 = 2𝑟02
1 +  2(1 + ) ln⁡(1 + 2)
𝑙𝑛(1 + 2𝛼)
1 + 3𝛼
−
+
−
𝑐𝑚²/é𝑙𝑒𝑐𝑡𝑟𝑜𝑛
1 + 2

2𝛼
²
1 + 2𝛼 ²
Dans une très mince couche de matériau absorbant de numéro atomique Z, qui possède N
atomes par cm3, d'épaisseur dx, on trouve (NZ) électrons par cm3 et (NZdx) électrons par cm2. On
définit le coefficient Compton d'atténuation linéaire par :
c =NZσ cm
43
-1
Pour créer un générateur aléatoire qui suit la distribution angulaire des photons Compton on
peut utiliser l’algorithme décrit dans [25], voir aussi Annexe A.
2.4.3. Matérialisation
L'énergie du photon gamma incident peut spontanément être convertie en masse à proximité
d’un noyau, sous la forme d'une paire électron-positon. La production d'une telle paire nécessite un
photon d’une énergie supérieure ou égale à la masse au repos des particules qui la composent, soit
1,022 MeV, mais cette réaction ne devient importante que pour des énergies supérieures à 5 MeV.
L'énergie excédentaire est transférée sous forme d'énergie cinétique à la paire formée. Après
ralentissement, le positon se combine avec un autre électron du milieu, la masse totale de ces deux
particules est alors convertie en deux photons gamma de 0,511 MeV chacun qui sont émis à 180°
l’un de l’autre.

e-
Annihilation
e
+
Photon
primaire

Matérialisation
eFigure 2-8 Schématisation de la matérialisation
En imagerie nucléaire, on travaille généralement à des énergies bien inférieures à celles
nécessaires pour produire une matérialisation, heureusement car cette dernière pourrait causer un
grand nombre d’artefacts.
2.5. FACTEURS DE DEGRADATION DE L’IMAGE
2.5.1. Atténuation
L’atténuation est consécutive aux interactions que subissent les photons avec la matière,
comme l’effet photoélectrique, la diffusion Compton et la matérialisation.
44
Soit N un nombre de photons monoénergétiques émis dans une direction donnée. Après traversée
d’une épaisseur l d’un matériau, il reste une quantité N de photon transmis selon la relation
suivante :
N = N0e- l
N
N0
l
Figure 2-9 Phénomène d’atténuation

est le coefficient d’atténuation linéique, il dépend de l’énergie des photons et du numéro
atomique du milieu traversé, il est la somme des coefficients d’atténuation de chaque interaction
photon matière.




Total
Compton
Photoéléctrique
Matérialisation
Par exemple, pour des photons de 140 keV (émission gamma du Tc99m ) il est égal à
0.03 cm-1 dans les poumons, à 0.12 cm-1 dans les tissus mous, et à 0.3 cm-1 dans les os.
Les méthodes de correction seront traitées plus loin dans le chapitre 5.
2.5.2. Diffusion
2.5.2.1. Définition
Pour l’énergie des radioéléments utilisés en TEMP qui vont de 70 à 600 keV, et pour les
éléments des milieux qui composent l’organisme qui ont des numéros atomiques peu élevés, la
diffusion Compton est l’interaction la plus probable.
Deux problèmes distincts sont issus du phénomène de diffusion. Certains photons qui
devraient être détectés ne le sont pas (Figure 2-10, cas A). D’autres photons qui n’auraient pas dû
être détectés le sont (Figure 2-10, cas B).
45
A
B
Figure 2-10 Artefacts dus à l’effet Compton
Dans le cas des reconstructions tomographiques c’est le cas B qu’on appelle généralement
par abus de langage phénomène de diffusé Compton. Le cas A, où le photon ne sera pas détecté,
sera considéré dans le phénomène d’atténuation.
2.5.2.2. Correction
Comme les photons diffusés ont une énergie plus faible que les photons primaires, la
première chose à faire est de régler la caméra pour qu’elle n’accepte que les photons ayant des
énergies proches du pic photoélectrique. Malgré tout, à cause de la résolution en énergie des
systèmes d’acquisition, cela ne suffit pas à éliminer complètement le rayonnement diffusé.
La méthode la plus connue est sans doute la soustraction de Jaszczak [26], elle est
pratiquement la seule à être utilisée en routine clinique du fait de sa simplicité. Elle consiste à
prendre une fenêtre d’acquisition secondaire à une énergie plus basse que celle du pic principal et à
la soustraire aux mesures en la pondérant par un facteur k.
Dcorrigé  Dpic  kDcompton
Il peut arriver que l’on obtienne des valeurs négatives ce qui n’a pas de sens du point de vue
physique. Dans ce cas on met la valeur à 0. Le facteur k est choisi en fonction de la largeur
respective des fenêtres du primaire et de diffusé. On considère généralement qu’à largeurs de
fenêtres égales, il y a deux fois plus de photons diffusés dans la fenêtre secondaire que dans la
principale. Par exemple, pour du 99mTc avec une fenêtre de largeur ±10% du pic photoélectrique
(126 à 154 keV) et une fenêtre de même largeur (24 keV) pour le diffusé soit de 97 à 125 keV,
46
alors k = 0,5. Bien que cette méthode paraisse assez grossière elle donne des résultats satisfaisants
dans la plupart des cas [27].
Il existe aussi une méthode de triple fenêtrage qui reprend ce principe en ajoutant une
troisième fenêtre pour prendre en compte le diffusé Compton de rayonnement à plus haute énergie
que le pic photoélectrique considéré [28].
Le phénomène de diffusion peut également être intégré au processus de reconstruction en
utilisant des simulations par la méthode de Monte-Carlo. Cette méthode est basée sur le suivi
statistique du devenir d’un grand nombre de photons émis depuis une source. Ces photons sont
considérés l’un après l’autre, et les lois statistiques d’interaction des photons sont appliquées en
fonction de leur énergie et des caractéristiques du milieu. Les résultats sont d’autant plus précis
que le nombre de photons considérés est grand. Aussi, cette méthode est connue pour être très
lourde en temps de calcul.
Nous analyserons la faisabilité d’une programmation sur carte graphique de la modélisation
de Monte-Carlo avec prise en compte de la diffusion Compton (Chapitre 6).
2.5.3. Résolution spatiale variable avec la distance
Nous avons rappelé dans le paragraphe 2.3.2.1 le principe de fonctionnement des
collimateurs, et les différentes méthodes de détermination de leur réponse impulsionnelle. Nous
avons vu que chaque point du volume exploré se projette sur le plan de détection sous la forme
d’une tâche, et non d’un point. Du fait du fonctionnement du collimateur, plus le point est éloigné
du détecteur, plus le diamètre de la tâche est important (Figure 2-11)
Le calcul précis de la tâche, ou réponse impulsionnelle, nécessite le recours à des méthodes
sophistiquées rappelées précédemment. Ces méthodes sont utiles dans le cadre de la conception, et
de l’évaluation des performances d’un collimateur. Toutefois, dans le domaine de la reconstruction
tomographique, on utilise uniquement l’approximation de la réponse par une gaussienne dont la
largeur à mi-hauteur est égale à la résolution spatiale Rt calculée selon les formules de Anger.
Citons par exemple les auteurs de [29] qui ont travaillé à élaborer une méthode de calcul de la
fonction de transfert géométrique [22], [30] mais qui, dans les algorithmes de reconstruction,
utilisent l’approximation gaussienne [29].
47
Figure 2-11 : Illustration de la variation de la réponse du collimateur pour trois sources
ponctuelles dans deux plans de projections. La réponse impulsionnelle s’élargit
quand la distance source-détecteur augmente
L’écart-type  de la gaussienne modélisant la réponse impulsionnelle système est telle que :
Rt  2 2ln 2
En chaque point du détecteur de distance x par rapport au centre le tâche, la réponse est
donc :
- x2
P( x) 
1
2
e 2
 2
Cette gaussienne, modélisant la réponse impulsionnelle variable avec la profondeur, peut
être prise en compte dans le processus de reconstruction tomographique, de manière à compenser la
perte résolution, soit en filtrant les projections selon le principe de fréquence-distance avant
reconstruction, analytique [31] [32] ou itérative [33], soit en incorporant cette réponse dans le
projecteur et le rétroprojecteur dans les algorithmes itératifs, comme l’espérance maximisée [34] ou
le gradient conjugué [35]. Kohli et al [33] a montré la supériorité de la prise en compte de la
réponse dans le projecteur-rétroprojecteur par rapport au filtrage fréquence-distance en terme de
rapport signal sur bruit.
2.5.4. Effet de volume partiel
Après reconstruction tomographique, la quantification de la concentration de l’activité se
trouve faussée lorsque cette activité est contenue dans des structures de petite taille par rapport à la
résolution système post-reconstruction [36]. En TEMP, la résolution spatiale étant de l’ordre du
48
centimètre, la quantification se trouve faussée dans des structures de taille inférieure à 3 cm. C’est
le cas en imagerie oncologique [37] ou en imagerie de la neurotransmission dopaminergique [38].
Des techniques de correction de l’effet de volume partiel peuvent être appliquées pour tenter
de restaurer l’activité, à partir de la connaissance de la forme de ces structures généralement
obtenue à l’aide d’une imagerie anatomique haute résolution (scanner ou IRM) [39], [40], [41],
[42].
2.5.5. Décroissance du taux d’activité
La loi de décroissance radioactive exprime le fait que le nombre d’atomes susceptibles de
subir une désintégration diminue au cours du temps. La loi est exponentielle de paramètre  qui est
spécifique au traceur :
N (t )  N e- t
0
La durée de demi-vie T, représente le temps nécessaire en moyenne à la désintégration de la
moitié des atomes est obtenue par la relation suivante :
T 
ln(2)

Cette durée ne doit pas être trop importante pour des raisons de radioprotection du malade et
de l’environnement, ni trop courte pour des raisons d’acquisition et de gestion des stocks. Pour le
Technétium 99m, on a λ=1,1151 h -1 donc T=6,02 h, au bout de 20 minutes la concentration
radioactive a baissé de 3,8%, phénomène faible mais non négligeable pour la reconstruction, c’est
pourquoi les caméras sont équipées de dispositifs permettant de corriger ce phénomène. Pour le
Thallium 201, on a λ=0,014 h -1 donc T=72 h. La baisse de concentration radioactive durant
l’acquisition est ici négligeable.
2.5.6.
Mouvements du patient
Une bonne acquisition en TEMP suppose que le patient ne bouge pas pendant l’examen.
Celui-ci est parfois immobilisé par divers dispositifs (sangles pour les bras, gouttière pour la boite
crânienne).
Restent les mouvements liés à la respiration du patient et son activité interne, mais ceux-ci
sont difficiles à empêcher. Pour les examens cardiaques, certaines acquisitions sont faites en
simultanéité avec un électrocardiogramme pour examiner le cœur dans les différentes phases de
fonctionnement.
49
2.5.7. Bruit poissonien
2.5.7.1. Principe
La désintégration radioactive est un phénomène aléatoire, statistique, ce qui se traduit au
niveau des images par des variations aléatoires d’un pixel à l’autre. Ces variations suivent une loi
précise en fonction de l’activité moyenne, appelée loi de Poisson. Plus le nombre de photons
détectés est faible, plus le bruit est important (Figure 2-12).
En principe, il faut essayer de détecter le plus possible de photons. Or le nombre de photons
détectés dépend de nombreux facteurs qu’il n’est pas toujours facile d’optimiser. Il s’agit
notamment de l’activité administrée au patient (qui ne doit pas dépasser un certain seuil pour
limiter l’irradiation du patient), de la durée de l’acquisition (limitée par l’inconfort du patient
pouvant entraîner une perte de l’immobilité requise pendant l’examen), de l’efficacité géométrique
du collimateur (limitée par la nécessité d’avoir une résolution spatiale correcte), mais aussi de la
spécificité du radiopharmaceutique, et de l’atténuation des tissus (liée à la corpulence du patient).
Projection idéale
Nombre de coups moyen : 60
Nombre de coups moyen : 6
Figure 2-12 : Bruit poissonien en fonction du nombre de photons détectés.
2.5.7.2. Correction
La solution la plus simple est d’appliquer un filtre passe-bas sur l’image pour atténuer le
problème, mais il va s’ensuivre une perte de contraste. D’autres méthodes comme SHINE
(Statistical and Heuristic Image Noise Extraction) [43] sont plus spécifiquement adaptées à la
réduction du bruit poissonien. Une restauration itérative tenant compte de la fonction de dispersion
moyenne a pour effet de diminuer le bruit tout en rehaussant le contraste [44]. De même, la
correction de la perte de résolution avec la profondeur diminue généralement le bruit dans les
images 3D reconstruites, puisqu’elle entraine la contribution de plusieurs pixels d’une projection
sur chaque pixel du volume, le tout en conservant un meilleur contraste [45].
50
2.5.7.3. Simulation
Pour générer des projections réalistes à partir de fantômes numériques, il est donc nécessaire
d’introduire un bruit poissonien. Pour cela on peut utiliser l’algorithme de Knuth [46] :
Pour chaque pixel de l’image de valeur λ :
L ← e−λ
k ← 0
p ← 1
Faire :
k ← k + 1
Générer un nombre aléatoire uniforme u compris dans [0 1].
p ← p * u
Tant que p ≥ L
Le pixel bruité a pour valeur k-1.
51
3. Reconstruction tomographique
3.1. INTRODUCTION
Après l’acquisition, la caméra nous donne une série d’images correspondant chacune à une
incidence d’angle  autour de l’objet. La Figure 3-1 A, présente un exemple d’une image de
projection. Une autre manière de présenter les mêmes données est de faire varier l’angle
d’incidence pour chaque niveau de coupe z : c’est le sinogramme au niveau z. La Figure 3-1 B
montre un exemple de sinogramme. Pour pouvoir visualiser la distribution du traceur en trois
dimensions, il sera nécessaire d’effectuer une reconstruction, qui va, à partir de cette série d’image
2D, générer le volume 3D correspondant (Figure 3-2)
A
B
z
θ
t
t
Figure 3-1 Projection d’angle θ=0 (A) d’un examen de perfusion cérébrale, et sinogramme
pour z correspondant à la ligne rouge (B).
y
z
z
z
x
y
x
Figure 3-2 Volume de la distribution du traceur d’une perfusion cérébrale, visualisé sous les
plans axial, coronal et sagittal.
52
Il existe deux grandes familles de méthodes pour reconstruire un objet à partir de ses
projections : les méthodes analytiques et les méthodes itératives. Dans le cas des méthodes
analytiques, l’objet à reconstruire est considéré comme étant une fonction continue représentant la
concentration radioactive dans l’espace, et l’image de la projection de cet objet est modélisée par
une intégrale spatiale de la fonction objet perpendiculairement au plan de détection. Dans le cas des
méthodes itératives, l’objet à reconstruire est considéré comme étant un ensemble de voxels
(discrets), et la projection de cet objet est modélisée par un opérateur discret décrivant la probabilité
de détection d’un voxel donné en un lieu de projection donné.
3.2. METHODES ANALYTIQUES
Dans ce type de méthode la projection est considérée comme étant une projection
orthogonale simple, sans prendre en compte la fonction de dispersion ponctuelle du système
d’imagerie. Aussi, il est possible, pour simplifier l’écriture, de considérer que l’objet 3D à
reconstruire est un empilement de coupes 2D indépendantes, dont chacune se projette selon une
ligne 1D pour chaque angle de projection. Autrement dit, il s’agit de reconstruire une à une chaque
coupe de l’objet à partir de leur sinogramme, puis d’empiler ces coupes.
Il faut remarquer que ce problème a été résolu d’un point de vue théorique bien avant
l’invention de la tomographie, en 1917 par J. Radon [47].
3.2.1. Modélisation de l’acquisition
Soit un objet contenant de la radioactivité et une coupe de cet objet définie dans un plan
perpendiculaire à l’axe de rotation de la caméra (axe z sur Figure 3-3 et Figure 3-1). Soit f(x,y) la
quantité de radioactivité au point (x,y) contenu dans le plan. Des projections sont obtenues sous
différentes incidences, tout autour de la coupe considérée, en intégrant l’activité dans la direction
d’une ligne L perpendiculaire à la ligne de détection, et passant par le point correspondant. L’angle
de projection suit le repère tournant de coordonnée cartésienne (t,l) ; ce repère est tourné de l’angle
θ par rapport au repère fixe de l’image (x,y).
53
y
l
L
t
f(x,y)
x,y
θ
x
p(t, θ)
)x,y
Figure 3-3 Relation entre le système de coordonnées fixe (x,y) et le système de coordonnées
tournant (t,l), θ étant l’angle de rotation par rapport à l’axe x.
La fonction p(t,θ) représente les données de projection, c’est la « transformée de Radon » de
la fonction f :
p(t , )   f ( x, y)dl
L
Les lieux des points (x,y) qui participent au domaine d’intégration (L) pour le point t d’une
projection d’angle θ est donné par :
t  x cos   y sin 
Autrement dit, par :
t  A  sin(   )
2
2
avec : A  ( x  y )
et
 12
  atan( y / x) pour x  0
   / 2 pour x=0
D’où l’appellation sinogramme des projections.
3.2.2. Rétroprojection
Une méthode simpliste pour reconstruire serait de projeter en sens inverse (rétroprojeter) la
valeur de chacun des éléments de détection sur le plan de reconstruction. Pour un angle donné θ la
54
valeur de p(t,θ) est assignée à tous les pixels qui se trouvent le long de la ligne d’intégration (L). La
superposition linéaire de toutes les rétroprojections forme l’image de rétroprojection.
L’opération de rétroprojection peut être formalisée par :

f * ( x, y )   p (t ,  )d
0
Bien que la plupart de l’information qualitative de la distribution originale soit préservée,
les structures de l’image n’apparaissent pas nettement. Une composante importante à basse
fréquence perturbe l’image.
3.2.3. Le théorème des projections
Le problème est d’obtenir une bonne estimation, ou reconstruction, de f(x,y), à partir de la
connaissance des p(t,θ). Pour cela on montre qu’il existe un théorème qui relie la transformée de
Fourier de f(x,y) à la transformée de Fourier de p(t,θ).
La transformée de Fourier à 1 dimension de la projection d’angle θj est :
𝑃 𝜔, 𝜃𝑗 =
𝑃 𝜔, 𝜃𝑗 =
𝑝 𝑡, 𝜃𝑗 𝑒 −𝑖𝜔𝑡 𝑑𝑡
𝑓(𝑥, 𝑦)𝑒 −𝑖𝜔𝑡 𝑑𝑡 𝑑𝜃
où t, θj, x et y sont reliés par :
t  x cos  j  y sin  j
Le point défini en coordonnées polaires par (ω,θj) peut être exprimé dans un système de
coordonnées orthogonales par :
 x   cos  j
 y   sin  j
La transformée de Fourier bi-dimensionnelle de la distribution originale est :
F ( x  y )   f ( x, y )e
 i ( x x  y y )
dxdy
d’où :
P(, j )  F (x ,  y )
Le théorème des projections peut s’énoncer de la façon suivante : La transformée de Fourier
1D d’une projection selon un certain angle, correspond au profil central pris à cet angle de la
transformée de Fourier 2D de la fonction originale.
55
Ce théorème permet d’envisager la reconstruction par une méthode directe à l’aide de la
transformée de Fourier inverse. En pratique, cette méthode directe est très peu utilisée en SPECT à
cause du difficile problème d’interpolation en coordonnées polaires. On peut noter cependant qu’en
tomographie par émission de positons en acquisition 3D1 (3D-TEP), des travaux récents ont montré
qu’il était possible d’avoir par méthode directe des temps de reconstruction inférieurs à la méthode
de rétroprojection filtrée [48] [49].
3.2.4. La rétroprojection filtrée
A partir de la transformée de Fourier 2D inverse de F(ωx, ωy), on peut obtenir la fonction
f(x,y).
On a :
f ( x, y ) 
1
4
1
f ( x, y ) 
4 2
2



F ( x ,  y )eit d  x d  y


 
 
P ( ,  )eit d  x d  y
La fonction P(ω,θ) est en coordonnées polaires. Pour changer l’intégration dans le système
de coordonnées orthogonales vers un système de coordonnées polaires, on utilise :
dx d y   d d
d’où :
f ( x, y ) 
1
4
2
2

0

 
P(,  )eit dd
Comme le point défini par (ω,θ) est le même que celui défini par (-ω,θ+π), on a :
f ( x, y ) 
1
4
2


0

 
P(,  )  eit dd
et soit :
1

p(t ,  ) 
2



P( ,  )  eit d
alors :
f ( x, y) 
1
2

1

0

p(t ,  )d
Remarquons que le terme 3D a une signification différente en TEP et en TEMP. En TEP, il s’agit d’un type
d’acquisition qui permet d’enregistrer des projections obliques sur le plan de détection. Ce que nous appellerons
géométrie 3D en reconstruction TEMP est le fait considérer la fonction de dispersion ponctuelle variable avec la
distance source caméra.
56
Ceci revient à dire que f(x,y) peut être obtenue par rétroprojection de la fonction p(t , ) . Si
on définit une fonction  (t ) telle que sa transformée de Fourier soit |ω| :

    (t )eit dt

alors la convolution de la projection p(t,θ) avec cette fonction donne :
p(t ,  )   (t ) 
1
2



P(,  )  eit d  
p(t ,  )
En d’autres termes, les données de projection originales doivent être filtrées par la fonction
 (t ) puis rétroprojetées.
3.2.5. La fonction de filtrage
La fonction  (t ) , dont la transformée de Fourier de |ω| est :

 (t )    eit d

Cette intégrale, qui définit la fonction de filtrage dans le domaine spatial, diverge dans le
cas où on ne limite pas le domaine d’intégration. Limiter le domaine d’intégration revient à
multiplier la fonction rampe R(ω)=|ω| avec une fenêtre rectangulaire.
1 si -< <
0 sinon
 ( )  

 (t )    eit d 
-
Puisque l’objet est échantillonné à des intervalles égaux à la distance entre points adjacents
dans la projection,  t cm, la fréquence spatiale significative la plus haute est donnée par la
fréquence de Nyquist :

1
cm1
2t
La coupure brusque de la fenêtre rectangulaire à la fréquence Ω donne lieu à des oscillations
en bordure d’objet. Ceci est connu sous le nom de phénomène de Gibbs. Cet effet peut être réduit
en utilisant d’autres types de fenêtre, dans lesquelles la coupure s’effectue lentement, par exemple :

La fenêtre introduite par Shepp et Logan :
 sinc( ) si -< <

0 sinon
est très similaire à la fenêtre rectangulaire. Elle donne une résolution comparable et a pour effet de
réduire l’amplification du bruit pour des données comportant des fluctuations statistiques.
57

La fenêtre de Hamming :
  -  (1   ) cos(2 )  si -< <

0 sinon
avec 0    1
est une fenêtre générale. Si α=1, la fenêtre devient rectangulaire. Si α=0, la fenêtre est
consinusoïdale. Le filtre de Hamming avec α=0.5 est souvent utilisé. Il permet de réduire le bruit
dans les images, mais s’accompagne d’une perte de résolution.
Il est intéressant de pouvoir jouer sur la fréquence maximale ωm de ces fenêtres, en fonction
des conditions physiques, notamment pour atténuer le bruit haute fréquence.
Si on diminue ωm, on obtient des images moins sensibles au bruit et plus lissées. La
contrepartie inévitable est alors une dégradation de la résolution spatiale. Le choix de la fenêtre
dépend donc du bruit dans les données et de la nature de l’objet à reconstruire.
En plus de ces fenêtres de filtrage passe-bas, certains ont proposé d’ajouter des filtres
compensateurs de résolution soit stationnaires, par exemple : filtre de Metz et filtre de Wiener [50],
soit variables selon la distance [31] [32]. Ces filtres inverses ont bien pour effet d’améliorer le
contraste au niveau des détails dans les images, mais, dans la pratique, ils ont aussi pour effet
d’augmenter le bruit statistique puisqu’ils rehaussent certaines hautes fréquences [51].
3.2.6. Limite des méthodes analytiques
Les méthodes analytiques sont encore très utilisées, du fait de la rapidité de leurs
algorithmes. Toutefois, elles ne permettent pas de prendre en compte de manière satisfaisante une
modélisation précise des phénomènes physiques intervenant dans l’acquisition des images.

Comme nous l’avons vu, avec ces méthodes l’amélioration de la résolution, selon le
principe de déconvolution stationnaire [50] ou non stationnaire [31] [32],
s’accompagne classiquement d’une augmentation du bruit, contrairement aux
méthodes itératives.

Par ailleurs, des méthodes ont été proposées pour corriger une atténuation uniforme
[52] [53], mais il n’existe pas, à notre connaissance, de technique pour prendre en
compte l’atténuation non uniforme au sein du processus de reconstruction. Une
post-correction par une méthode itérative est possible [54] [55] [56] mais il semble
58
que les résultats soient inférieurs à ceux obtenus d’emblée par une méthode
itérative, par exemple en tomographie cardiaque [57] [58].
Dans la suite de cette présentation, le problème de la prise en compte des phénomènes
physiques intervenant dans les données réelles sera abordé seulement en rapport avec les techniques
itératives.
3.3. METHODES ITERATIVES
L’avantage de ce type de méthodes est de pouvoir incorporer au sein du processus de
reconstruction une modélisation précise des phénomènes réels intervenant dans l’acquisition des
images. L’inconvénient majeur de ces méthodes est la quantité de calculs plus importante qui
accroît considérablement les temps de reconstruction.
Le principe général repose sur le fait qu’il est possible de calculer la projection d’un objet
discret quelconque, par une somme pondérée des voxels de cet objet.
Soit Rijk la probabilité conditionnelle pour qu’un photon provenant du voxel i soit détecté
dans le dexel j de la caméra à l’angle k, soit fi l’activité inconnue dans le voxel i, et soit djk les
données mesurées dans le dexel j à l’angle k. Alors,
𝑑𝑗𝑘 =
𝑅𝑖𝑗𝑘 . 𝑓𝑖
𝑖
Sous forme matricielle, soit R l’opérateur de projection et R* l’opérateur de rétroprojection
associé, et f et d respectivement les vecteurs objet et données de projection, on a :
𝑑 = 𝑅𝑓.
Les méthodes de reconstruction itératives consistent à calculer l’objet f en fonction d grâce
à des estimations f(n) successives de f en minimisant l’erreur entre les projections calculées Rf(n) et
les projections réelles mesurées d.
3.3.1. Algorithme d’Espérance Maximisée
L’algorithme d’Espérance Maximisée (EM) donné en 1977 par Dempster [59], est un
algorithme itératif permettant de calculer le maximum de vraisemblance à partir de données
incomplètes. Il a l’avantage de prendre en compte la nature poissonienne des variables en jeu. La
formule itérative de l’algorithme d’espérance maximisée est la suivante [60], [61] :
59
f
(n+1)
i
f i(n)
=
 R ijk

j,k
j,k
R ijk d jk
R
(n)
ljk l
f
l
Ce qui équivaut sous forme matricielle à :
𝑓 (𝑛+1) =
𝑓 (𝑛) ∗
𝑑
𝑅
𝑉
𝑅𝑓 (𝑛)
V étant le volume de normalisation défini de cette façon :
Vi   Rijk
j ,k
On a donc la division des projections mesurées par les projections calculées qui sont rétroprojetées
puis multipliées par le volume de l’itération précédente.
A chaque itération de l’algorithme, l’estimation de f au sens du maximum de vraisemblance
est améliorée. De plus, la positivité des mesures et de l’estimée initiale f
(0)
implique la positivité
des f (n), ce qui est utile en TEMP où les valeurs de f sont positives.
Le bruit statistique présent dans les mesures empêche l’algorithme de converger vers une
solution non bruitée. Au fur et à mesure que le nombre d’itérations augmente, le bruit devient de
plus en plus important dans les images reconstruites. L’ajout d’une régularisation ou d’une
connaissance a priori sur f dans le modèle permet de forcer l’algorithme à converger vers une
solution moins bruitée [62] [63] [64] [65] [66]. Malheureusement cela complexifie cet algorithme
qui a pour intérêt d’être simple. Dans la pratique, on opère souvent une régularisation artificielle en
stoppant l’algorithme après un certain nombre d’itérations dépendant du type d’acquisition, ce qui
permet de reconstruire suffisamment d’informations à partir des projections pour le diagnostic, sans
trop amplifier le bruit.
3.3.2. Algorithme OSEM
L’algorithme EM convergeant très lentement une méthode dérivée appelée OSEM (Ordered
Subsets Expectation Maximization) [67] a suscité beaucoup d’intérêt.
Au lieu de prendre l’ensemble des projections pour le calcul d’une itération, ce sont des sousensembles (subsets) qui sont utilisés.
Soit f (0,0) notre point initial et S1..SM les sous ensembles, on a l’algorithme suivant pour N itérations :
60
Pour n=0..N-1 (itérations de l’algorithme)
{
Pour m=1..M (parcours des subsets)
{
On effectue une itération de type EM avec les projections
correspondant au sous-ensemble Sm :
fi ( m,n ) 
d jk
fi ( m-1,n )
  Rijk
( m -1, n )
 Rijk j ,kSm
 Rljk fl
j , kSm
l
}
Tous les sous ensembles ayant été utilisés, on a notre nouveau
point de départ pour l’itération suivante :
f (0,n1)  f ( M ,n )
}
La manière de partitionner les projections est importante. Il faut que chaque sous-ensemble
contienne le même nombre de projections, afin qu’aucun d’entre eux n’ait plus d’importance qu’un
autre lors de la mise à jour. A l’intérieur de chaque sous-ensemble les projections doivent avoir une
répartition angulaire régulière et la plus étendue possible.
Figure 3-4 Projections choisies pour composer un sous-ensemble (en clair) à partir d’un
ensemble de 64 projections partitionné en 8 sous-ensembles
Enfin l’ordre de passage des sous-ensembles est également choisi afin que chacun d’entre
eux soit le plus éloigné possible du précédent.
Par exemple si on dispose de 64 projections sur 360°, S = { s1 = 0° , …. , s64 = 354,37° },
on peut le partitionner en 8 sous-ensembles de 8 projections chacun. Ainsi on prendra :
S1 = { s1, s9, s17, … , s57 }, S2 = { s2, s10, s18, … , s58 }, S8 = { s8, s16, s24, … , s64 }
Après l’ordre de parcours sera le suivant :
S1, S5, S3, S7, S2, S6, S4, S8.
61
L’algorithme OSEM souffre d’un défaut de convergence par rapport à EM, car il n’utilise
pas le même ensemble de données à chaque itération et tend vers un cycle limite. Cela n’est en
général pas néfaste en pratique pour la reconstruction car les valeurs du cycle limite sont proches
les unes des autres. Ce défaut théorique est traité dans une méthode appelée RBI (Rescaled Block
Itération) [68] qui est une version convergente de OSEM.
Néanmoins, la modélisation de la perte de résolution avec la profondeur entraîne une sorte
de lissage des données ce qui permet d’utiliser OSEM avec un grand nombre de sous-ensembles.
Dans [69] on propose même de n’utiliser que 2 projections par sous-ensemble, la différence
obtenue entre OSEM et EM étant minime.
3.3.3. Algorithme du Gradient Conjugué
La méthode du gradient conjugué est un algorithme itératif qui permet de résoudre des
systèmes d'équations linéaires dont la matrice est symétrique et définie positive.
Soit un système de la forme :
Γf=b
Dans notre cas X est un vecteur qui représente le volume à reconstruire. On prend :
Γ=R*R, ce qui correspond à un opérateur qui effectue une projection puis une rétroprojection.
b=R*d, ce qui correspond à la rétroprojection des projections mesurées.
On va donc résoudre :
R*Rf=R*d
Initialisation :
f0 quelconque.
G0  R* Rf 0 - R*d
H 0 =G0
Mise à jour à chaque itération :
62
N 
Vitesse de descente :
H N 1 ,GN 1
H N 1 , R* RH N 1
f N  f N 1  H N 1   N
GN  GN 1  R* RH N 1   N  R* RX N  R*d
H N  GN  H N 1 
GN ,GN
GN 1 ,GN 1
Où 𝑋 , 𝑌 représente le produit scalaire de X par Y.
Critère d’arrêt :
GN ,GN  
Ici le critère d’arrêt a une importance toute particulière car le gradient conjugué est une
méthode dont la convergence est rapide, mais parallèlement l’amplification du bruit est également
très rapide. Bien sûr, pour cette méthode aussi il existe des techniques de régularisation, par
exemple [70].
3.4. OPTIMISATION MATHEMATIQUE
3.4.1. Principe général de l’optimisation
En mathématiques, l’optimisation d’une fonction dépendante de f consiste à chercher les
valeurs de f qui minimisent cette fonction en respectant certaines règles sur les valeurs possible de
f, appelées contraintes.
Les problèmes d’optimisation comportent trois composantes principales :

Une fonction dite « objectif » à minimiser, représentant le plus souvent l’écart entre les
données observées et des prédictions.

Un jeu d’inconnues f ou de variables qui modifient la valeur de la fonction objectif.

Les contraintes qui déterminent le domaine possible des valeurs des solutions f, c’est-à-dire
excluent certaines valeurs et en autorisent d’autres, par exemple, la positivité est une
contrainte évidente dans les problèmes de reconstruction d’images en TEMP.
63
En ce qui concerne les variables, il faut distinguer deux types de problèmes d’optimisation,
celui où les variables sont discrètes (optimisation combinatoire) et celui où les variables sont
continues dérivables.
Dans le domaine de la reconstruction d’image, on ne s’intéressera qu’à l’optimisation
continue, puisque les variables représenteront la concentration radioactive, ou le coefficient
d’atténuation linéique, en tous points du volume. Par ailleurs, dans le domaine continu, on distingue
les problèmes linéaires, c'est-à-dire ceux dont la fonction objectif dépend linéairement des
variables, des problèmes non linéaires. Par exemple, en TEMP, si l’on considère seulement la
reconstruction des données d’émission (concentration radioactive), il s’agit d’un problème linéaire
car le contenu des images acquises d dépend linéairement de l’activité f, par contre, si l’on cherche
à connaître l’atténuation des tissus (carte des µ), il s’agit d’un problème non linéaire (introduction
d’une somme d’exponentielles).
3.4.2. Exemples de fonction objectif avec régularisateur
Prenons l’exemple de la reconstruction tomographique de l’activité en TEMP. Les critères
utilisés comme fonction objectif peuvent prendre par exemple les formes suivantes :

Critère des moindres carrés, ou critère de Gauss, régularisé :
𝑅𝑖𝑗𝑘 𝑓𝑖 − 𝑑𝑗𝑘 ² + 𝐼(𝑓)
min
𝑓

𝑗𝑘
𝑖
Critère du maximum de vraisemblance, qui découle de la loi statistique de Poisson
pour l’émission radioactive, régularisé :
min −
𝑓
𝑅𝑖𝑗𝑘 . 𝑓𝑖 ) + 𝐼(𝑓)
𝑅𝑖𝑗𝑘 𝑓𝑖 − 𝑑𝑗𝑘 𝑙𝑜𝑔(
𝑗𝑘
𝑖
𝑖
o 𝐼(𝑓) est un terme de régularisation qui a pour rôle d’éviter que les solutions ne soient trop
bruitées. 𝐼(𝑓) est donc une valeur qui doit augmenter lorsque f présente de rapides variations
d’un voxel à l’autre.
o  est un facteur de pondération à choisir de manière nuancer l’importance du terme régularisant
par rapport au critère.
64
Dans le cas d’un problème mal posé, comme celui de la reconstruction, une régularisation
est nécessaire. La minimisation avec régularisation revient à sélectionner, parmi les solutions
possibles, celle qui est la plus éloignée des solutions bruitées. Un des régularisateurs les plus
utilisés en optimisation est l’opérateur de Tikhonov qui utilise le gradient de voisinage en
différence finie de f. Il a pour expression :
𝐼 𝑓 =
𝑓𝑖+𝑁 − 𝑓𝑖
2
+ 𝑓𝑖+1 − 𝑓𝑖
2
𝑖
où i+N est le voxel situé au dessus du voxel i, et i+1 le voxel situé à droite du voxel i.
3.4.3. Exemples d’optimiseur
La résolution de ce genre de problème passe par l’utilisation d’un « optimiseur ». Les
optimiseurs sont des logiciels développés au sein de laboratoires de mathématiques ou de sociétés
privées qui permettent la recherche des solutions d’un problème d’optimisation quelconque. Selon
la méthode utilisée ces optimiseurs demandent en plus de la fonction f(x) à minimiser, le gradient,
composé par la dérivée première de f(x), et le Hessien, composé par la dérivée seconde de f(x).
L’optimiseur BFGS (des initiales de ses concepteurs Broyden-Fletcher-Goldfarb-Shanno est
très connu pour résoudre un problème d'optimisation continu non-linéaire sans contraintes. L'intérêt
principal de cet optimiseur est de ne pas demander explicitement le Hessien, mais de le construire
lui-même par approximation, en analysant les différents gradients successifs. Une variante de cet
optimiseur est le L-BFGS-B (L pour "Limited memory", B pour "Bounded"), permettant
d’économiser la mémoire de calcul et acceptant des contraintes de bords [71] [72].
L’optimiseur KNITRO (Karush Non-linear Interior point Trust Region Optimization) est un
optimiseur non linéaire avec contraintes moderne. Particulièrement adapté aux problèmes de grande
traille et mal conditionnés, il utilise les techniques d'optimisation les plus performantes, aussi bien
du point de vue de la robustesse que de la rapidité d'exécution. Outre les avantages offerts par
BFGS, il offre plusieurs possibilités pour l’approximation du hessien, et même l’approximation du
gradient, mais aussi pour l’utilisation de différents types de contraintes. En France, ce logiciel est
commercialisé par la société Artelys, Paris.
65
3.5. CALCUL
DES
COEFFICIENTS
DE
LA
MATRICE
DE
PROJECTION
ET
IMPLEMENTATION
3.5.1. Projection simple (1D)
Ici on se place dans le cas où on ne cherche pas à modéliser la réponse du collimateur. Si on
considérait le problème en trois dimensions on se retrouverait avec une matrice très creuse puisque
les projections s’effectuent toujours dans le plan de la coupe. On traite donc les coupes
indépendamment en posant le problème de manière bidimensionnelle.
On dispose alors d’un système d’équation linéaire à N inconnues et MxS données, N étant le
nombre de voxels à reconstruire dans une coupe, S le nombre d’angles de la caméra et M le nombre
de dexels pour chaque angle. Pour des raisons de simplicité on choisit une taille de pixel égale à la
taille des dexels et on prend N=M² car la résolution de reconstruction ne peut être meilleure que
celle des projections.
La discrétisation idéale pour un collimateur parallèle parfait est de calculer directement la
fraction d’aire interceptée par un dexel j,k dans un pixel i (Figure 3-5). On a alors :
Rijk 
Aijk
A
Aijk est l’aire interceptée par le voxel i par la bande provenant du dexel j,k et A est l’aire totale du
voxel i.
Caméra à
l’angle k
dexel j
Aijk
Pixel i
Figure 3-5 Discrétisation de l’opérateur de projection.
Ces coefficients de projections correspondent à une géométrie d’acquisition particulière de
la caméra. Comme en routine clinique on utilise un protocole d’acquisition qui ne varie qu’avec le
66
type d’acquisition, il est inutile de calculer avant chaque reconstruction des coefficients que l’on
peut préalablement stocker sur disque.
3.5.2. Projection avec modélisation de la perte de résolution avec la
profondeur
On peut considérer plusieurs façons de modéliser la perte de résolution. On peut se
contenter de laisser les coupes indépendantes et de ne modéliser la perte de résolution seulement
dans le plan de coupe, on parlera alors d’EM2D, OSEM2D, ou GC2D, lorsqu’EM, OSEM, ou GC
utiliseront ce type de projecteur. Mais pour plus de précision on peut également faire une
modélisation complète et rendre les coupes dépendantes, ce que l’on nommera alors sur le même
principe EM3D, OSEM3D, GC3D.
Le nombre de coefficients non nuls de la matrice R augmente alors sensiblement par rapport
à la version 1D, surtout dans la version 3D où les coupes ne sont plus indépendantes. La mémoire
vive nécessaire pour contenir les informations relatives à la matrice devient alors très importante
pour des volumes 1283, de l’ordre de 1 giga-octet, si bien qu’il peut être préférable de les rééchantillonner en 643 [73].
Figure 3-6 : Modélisation 1D et 3D de la projection d’un voxel. En 3D la réponse s’étale sur
plusieurs pixels, du fait de la résolution limitée.
3.5.3. Projection avec atténuation
On note R[μ] le projecteur qui prend en compte les effets de la carte d’atténuation, cette fois
les coefficients ne vont pas dépendre seulement de l’aire du pixel i, mais de l’aire de tous les pixels
devant i. Il faudra donc ordonner les pixels en fonction de leur distance à la caméra. On notera
67
i  jk i ' si le pixel i’ est plus proche que le pixel i’ de la caméra en une position k et s’ils sont tous
les deux traversés par la bande issue du dexel j.
On obtient :
Rijk     Rijk e

Ai ' jk
Ai ' jk
 i

i '
e i i '
e

jk






On prend α=0.5 pour prendre en compte l’atténuation due au pixel duquel est issue
l’activité.
3.5.4. Calcul implicite des coefficients par rotation du volume
Ici on propose d’effectuer une rotation du volume initial autour de l’axe z et ainsi de
calculer un nouveau volume en effectuant une interpolation des voxels [74]. Ainsi, quel que soit
l’angle on se retrouve toujours dans le cas idéal (Figure 3-7) où le dexel est aligné avec une colonne
entière de voxels.
Aijk
Figure 3-7 Discrétisation de l’opérateur de projection, caméra parallèle à la grille des pixels
par rotation du volume.
Les coefficients de la matrice de radon ne sont donc pas réellement calculés et n’ont pas
besoin d’être stockés ce qui élimine les problèmes de mémoire des versions précédentes. On se
retrouve donc avec un problème simplifié, ce qui va faciliter la tâche pour rajouter toutes les
corrections futures.
Pour la correction d’atténuation, il suffit de faire subir la même rotation à la carte
d’atténuation pour obtenir les bons coefficients, chaque pixel situé devant le pixel projeté est
parcouru durant la même distance qui est égale à la taille du pixel.
68
Autre avantage de cette méthode le projecteur et le rétroprojecteur deviennent aisément
parallèlisables.
Le mode d’interpolation utilisée lors de la rotation va influer sur la qualité de l’image
reconstruite. Di Bella dans [75] teste différentes méthodes d’interpolation. Sur des données non
bruitées, le plus proche voisin est celui qui donne les plus mauvais résultats comme on pouvait s’y
attendre, alors que les interpolations bilinéaires et bicubiques donnent des résultats à peu près
équivalents. Néanmoins la conclusion est que dans le cas de données bruitées, l’interpolation au
plus proche voisin donne des résultats acceptables.
3.5.5. Utilisation du GPU pour accélérer la reconstruction
Les premières tentatives sont réalisées par Cabral en 1994 [3] sur l’accélération de la
rétroprojection filtrée, réalisé à l’époque sur des SGI (Silicon Graphics) Onyx.
Mueller et Yagel [76] appliquent la méthode à l’algorithme ART (Algebric Reconstruction
Technique). Exécutée à l’époque sur une station SGI Octane avec un frame buffer de 12 bits par
composante et utilisant la bibliothèque OpenGL. Les temps passaient de 51 minutes par itération
pour la version logicielle à 42.2 secondes pour la version accélérée soit un facteur de 73 pour un
volume 1283 et 80 projections, ces stations SGI, ancêtres des GPUs modernes, ayant un coût
pouvant dépasser les 20 000$.
Plus récemment, avec l’émergence de PC ayant les mêmes capacités graphiques pour des
prix grand public, Chidlow et Möller [77] ont utilisé une NVidia GeForce 4 pour accélérer OSEM.
La carte ne supportant que 8 bits entiers par composante, cela limite beaucoup la précision de la
reconstruction. Les additions et les multiplications sont réalisées à l’époque en utilisant les
fonctionnalités du blending qui permettent normalement de gérer les paramètres de fusion des
couleurs lors de l’affichage. Il est alors nécessaire de faire des transferts entre la mémoire centrale
et la mémoire vidéo pour effectuer certaines opérations.
A partir de 2005, Xu et Mueller [78] commencent à utiliser les shaders avec des NVidia FX
5900 et des ATI Radeon 9800. Wang [79] utilise la même génération de cartes graphiques et
l’applique aux géométries fan beam.
69
La reconstruction tomographique est un problème qui se prête bien à l’accélération par le
GPU. Nous verrons au Chapitre 6 comment l’appliquer à l’algorithme OSEM3D avec une prise en
compte de la réponse de collimateur et de l’atténuation.
70
4. Tomographie cardiaque
4.1. LE CŒUR
4.1.1. Anatomie générale
Le cœur est un muscle qui est constitué de quatre cavités. Les deux cavités inférieures sont
les appelées les ventricules tandis que les deux cavités supérieures sont nommées les oreillettes. Le
cœur est aussi séparé en deux parties : droite et gauche. Chacune comprenant une oreillette et un
ventricule. La paroi qui sépare les oreillettes et les ventricules de la partie droite et gauche est
appelée le septum (Figure 4-1).
1 : Oreillette droite
2 : Oreillette gauche
3 : Veine cave supérieure
4 : Aorte
5 : Artère pulmonaire
6 : Veine pulmonaire
7 : Valve mitrale (auriculo-ventriculaire)
8 : Valve aortique
9 : Ventricule gauche
10 : Ventricule droit
11 : Veine cave inférieure
12 : Valve tricuspide (auriculo-ventriculaire)
13 : Valve sigmoïde (pulmonaire)
Figure 4-1 Schéma du cœur (source : Wikimedia Commons)
L’oreillette droite récupère le sang qui a parcouru tout le corps, et l’envoie dans le
ventricule droit qui l’éjecte vers les poumons pour y être ré-oxygéné. L’oreillette gauche collecte le
sang fraîchement oxygéné qui vient de traverser les poumons et l’achemine au ventricule gauche
qui éjecte le sang dans l’ensemble du corps.
Le sang circule toujours dans le cœur dans la même direction grâce aux quatre valves
cardiaques (tricuspide, pulmonaire, mitrale et aortique). Le sang entre dans le cœur depuis les
71
veines caves inférieure et supérieure, transite dans l’oreillette droite et est éjecté par le ventricule
droit. De façon similaire, le sang parvient au cœur gauche via les quatre veines pulmonaires,
transite dans l’oreillette gauche, et est éjecté dans le corps par le ventricule gauche. Les valves
servent de clapets anti-retour en empêchant le sang de refluer dans le mauvais sens.
Le cœur comprend un système de conduction électrique automatique qui assure chacun de
ses battements. C’est ce que l’on appelle le nœud sinusal, il se trouve dans la paroi de l’oreillette
droite. Cette région produit une impulsion électrique qui gagne une région centrale du cœur appelée
nœud auriculo-ventriculaire, d’où elle est transmise à l’ensemble du tissu musculaire ventriculaire.
Cette onde électrique produit la contraction du muscle cardiaque responsable de l’éjection du sang
vers les poumons et l’aorte. Le nombre de contractions observées par minute correspond au rythme
cardiaque.
4.1.2. Vascularisation du cœur
Figure 4-2 Artères coronaires (CC Patrick J. Lynch, 2006)
Le muscle cardiaque est vascularisé par les artères coronaires qui le nourrissent en lui
apportant l’oxygène nécessaire à son fonctionnement. Il peut arriver que les artères soit obstruées
ce qui entraine une diminution de l’apport sanguin au myocarde et peut perturber son
fonctionnement. C’est ce que l’on nomme une ischémie myocardique. En cas d’obstruction
partielle d’une artère on a des symptômes de type angine de poitrine. Si l’obstruction est totale, les
cellules ne sont plus oxygénés ce qui entraine leur mort, on a alors une nécrose d’une partie du
muscle cardiaque. C’est ce qu’on appelle un infarctus du myocarde.
72
4.1.3. Le ventricule gauche
Le ventricule gauche est la partie du cœur la plus étudiée en médecine nucléaire. Ses parois
étant bien plus épaisses que celles du ventricule droit, on le distingue nettement sur les images alors
que celles du ventricule droit sont très peu visibles. Il est segmenté en plusieurs parties :
-
L’apex, qui est la pointe.
-
Le septum qui est la séparation entre les deux ventricules.
-
La paroi inférieure sur laquelle repose le cœur dans le corps.
-
La paroi latérale.
-
La paroi antérieure se situant à l’avant, près des côtes.
Paroi inférieure (postérieure)
Septum
Coupes grand axe
VD
Paroi latérale
VG
Coupe petit axe
Paroi antérieure
Apex
Figure 4-3 Schéma ventricules droits et gauche et plans de coupe.
4.2. ACQUISITION TOMOGRAPHIQUE
4.2.1. Acquisition simple
On réalise ici une tomographie classique sans se soucier du mouvement du cœur, on obtient
alors une image moyenne sur l’ensemble du cycle cardiaque. Sur un cœur normal (Figure 4-4) on
aperçoit alors très bien la paroi du ventricule gauche.
73
Antérieur
Apex
Antérieur
Septal
Septal
Latéral
Apex
Latéral
Inférieur
Inférieur
Figure 4-4 Carte d’activé en tomographie cardiaque après réorientation d’un cœur normal.
En cas de pathologie ischémique, le sang ne circulant pas correctement dans une partie du
cœur, cela entraine un défaut de fixation du traceur dans certaines zones du cœur. On peut ainsi voir
sur la Figure 4-5, que la paroi inférieure n’est pas correctement irriguée.
Apex
Antérieur
Antérieur
Septal
Septal
Latéral
Latéral
Inférieur
Apex
Inférieur
Figure 4-5 Image reconstruite de tomographie cardiaque avec défaut de perfusion de la paroi
inférieure.
4.2.2. Acquisition synchronisée
Ici l’acquisition TEMP est couplée avec un électrocardiogramme. Au lieu d’avoir une image
pour chaque angle, on en a plusieurs, généralement 8. Chaque image correspond à une étape du
cycle cardiaque. Après reconstruction tomographique, on se retrouve ainsi avec une sorte de
« film » de la distribution de la radioactivité dans le cœur, qui permet d’en étudier la cinétique.
74
4.3. VISUALISATION AVEC LE « BULL’S EYE »
Antérieur
Septal
Apex
Antérieur
Latéral
Septal
Apex
Latéral
Inférieur
Inférieur
Figure 4-6 Carte polaire des activités cardiaques (Bull’s Eye). Cœur normal à gauche et
hypofixation inférieure à droite.
Une fois l’activité cardiaque reconstruite, on peut également la visualiser sous la forme
d’une carte polaire en deux dimensions (Figure 4-6) nommée « bull’s eye ». Il existe de
nombreuses méthodes pour le calculer, l’objectif étant à chaque fois de représenter toutes les
coupes d’une manière concentrique avec l’apex au centre et la base du cœur en périphérie.
4.4. FANTOMES MATHEMATIQUES DE COEUR
Les fantômes mathématiques en TEMP sont des simulations numériques qui tentent de
modéliser de la façon la plus réaliste possible la distribution de l’activité ainsi que l’atténuation
d’une partie du corps. On peut ainsi générer un jeu de projections correspondant et, le volume de
départ étant connu, vérifier de la validité, au moins du point de vue numérique, des algorithmes de
reconstruction.
4.4.1. Le fantôme MCAT
Le fantôme MCAT (Mathematical Cardiac-Torso Phantom) modélise les organes internes
du torse humain en utilisant des combinaisons d’objets et de surfaces géométriques décrits par des
équations mathématiques simples. Défini avec des surfaces continues il peut être généré à toute
résolution spatiale.
75
4.4.2. Le fantôme NCAT
Le fantôme MCAT décrit précédemment est limité dans sa capacité à modéliser les organes
et les variations anatomiques, aussi une nouvelle version nommée NCAT a été développée [80].
Elle intègre une méthode de modélisation des formes à base de NURBS (Non-Uniform Rational BSplines). Une surface NURBS est une représentation paramétrique en deux dimensions d’un objet,
elle est définie par des points de contrôles. La modification d’un point de contrôle ne modifie la
surface que localement, ce qui offre de nombreux avantages pour réaliser des modèles
mathématiques de torse humain.
Pour créer le fantôme NCAT les points de contrôles des NURBS ont été définis pour le
cœur à partir d’image IRM et pour le reste des organes du torse à partir de la base de données
d’images du « visible human project » [81].
On pourra ainsi générer les cartes d’activité (Figure 4-7) et d’atténuation (Figure 4-8).
Figure 4-7 Fantôme NCAT, distribution d’activité.
Figure 4-8 Fantôme NCAT, carte d’atténuation.
76
5. Correction de l’atténuation
Nous avons décrit précédemment (2.5.1) les phénomènes physiques qui sont la cause de
l’atténuation, et comment intégrer l’atténuation au processus de reconstruction une fois la carte des
coefficients d’atténuation linéiques connue (3.5.3). Dans ce chapitre seront développées les
conséquences de l’atténuation en TEMP ainsi que les différentes méthodes utilisées pour estimer la
carte des coefficients.
5.1. CONSEQUENCES
L’atténuation est responsable d’une déperdition d’environ 50% des photons dans le cas
cérébral et 70% dans le cas cardiaque. Cette baisse de la statistique de comptage associée à la
nature poissonienne de l’émission radioactive se traduit par une dégradation du rapport signal sur
bruit. Plus grave pour la reconstruction, l’atténuation est rarement uniforme, ce qui peut induire des
artefacts. Les structures les plus proches de la caméra sont moins affectées que les plus éloignées.
Si l’angle de rotation est 360° les zones les plus centrales seront sous estimées.
5.1.1. Exemple d’atténuation sur un cylindre homogène
Voici l’illustration de la reconstruction d’un cylindre de 10 cm de diamètre avec une
atténuation uniforme (μ=0.15 cm-1). 64 projections sont simulées sur 360° en ne modélisant que
l’atténuation. On reconstruit sans correction d’atténuation avec l’algorithme EM arrêté au bout de
40 itérations.
Fantôme numérique homogène
Reconstruction sans correction
Figure 5-1 Reconstruction des projections atténuées d’un fantôme numérique représentant
un cylindre homogène sans correction d’atténuation.
La perte des photons est de plus de 20% au bord, alors qu’elle est de 50% au milieu du
cylindre (Figure 5-1). La reconstruction est donc mauvaise même à un facteur multiplicatif près.
77
5.1.2. Atténuation diaphragmatique
En imagerie du myocarde, le diaphragme et les organes sous-diaphragmatiques [82] peuvent
occasionner des artefacts liés à l’hétérogénéité de l’atténuation, et conduire à des erreurs de
diagnostic.
Sur la figure suivante un fantôme numérique de cœur NCAT a été projeté sur 180°, avec les
paramètres de rotation d’une acquisition cardiaque classique en prenant en compte l’atténuation. La
carte d’atténuation (CT) montre la morphologie du patient, dont le diaphragme élevé va passer
entre le cœur et la caméra durant l’acquisition.
Poumon
Artéfact
d’atténuation
Diaphragme
CT
Atténuation
corrigée
Figure 5-2 Vue coronale d’une atténuation diaphragmatique. Image TEMP sans correction,
image CT, image TEMP corrigée de l’atténuation (acquisition TEMP/CT).
Sur cet exemple l’effet de l’atténuation pourrait être confondu avec une ischémie ou un
infarctus de la partie inférieure du ventricule gauche. Ce type d’artefact se rencontre fréquemment
en routine clinique, et peut perturber le diagnostic.
5.1.3. Atténuation mammaire
Chez la femme, la présence des seins peut également entrainer des artefacts. Cette
atténuation peut s’avérer problématique en raison de la grande variabilité interindividuelle de la
quantité de tissu mammaire. On aura alors une diminution apparente de l’activité sur la partie
antérieure, comme l’illustre la figure 5-3.
78
Artéfact
Sein
d’atténuation
CT
Atténuation
corrigée
Figure 5-3 Vue sagittale d’une atténuation mammaire. Image TEMP sans correction, image
CT, image TEMP corrigée de l’atténuation (acquisition TEMP/CT).
5.2. ESTIMATION DE LA CARTE D’ATTENUATION
Pour corriger l’atténuation en TEMP, il est nécessaire de disposer d’une estimation de la
carte d’atténuation. Plusieurs méthodes ont été proposées, soit sans données supplémentaires, soit à
partir d’une image proche de la carte d’atténuation.
5.2.1. Carte uniforme sur un contour
C’est l’estimation la plus simple et la première utilisée en routine clinique associée à la
méthode de Chang [52]. Elle nécessite d’obtenir le contour du corps atténuant et un coefficient
d’atténuation qui sera uniforme à l’intérieur du contour. Cette méthode est surtout utilisée sur des
images de cerveau, car dans ce cas la carte d’atténuation est quasi uniforme à l’exception des os du
crâne.
Pour obtenir le contour, on peut utiliser les données d’émission, on procède alors à une
première reconstruction rapide de l’objet, par une rétroprojection filtrée, ou après quelques
itérations d’OSEM, pour ensuite obtenir le contour par seuillage.
On peut utiliser soit le rayonnement direct acquis dans la fenêtre du pic photoélectrique, soit
le rayonnement diffusé dans une fenêtre énergétique plus basse [83]. Comme le diffusé Compton
provient de toutes les structures anatomiques et pas seulement de celles qui ont fixé le traceur, ces
méthodes donnent de meilleurs résultats que celles à partir du pic photoélectrique [84].
79
Le coefficient uniforme μ de l’objet est généralement laissé au choix de l’utilisateur. On
choisit en principe un μ égal à celui de l’eau pour l’énergie du traceur correspondant, donc proche
de 0.15 cm-1 pour une acquisition au technétium à 140keV.
5.2.2. Utilisation d’une source externe de transmission gamma
Ici on utilise une source radioactive placée à l’extérieur du patient, tournant autour du
patient de façon à se retrouver toujours face à la caméra. Le même détecteur (la gamma caméra)
réalise à la fois l’acquisition des données d’émission liées à la concentration radioactive, et aussi
l’acquisition des données de transmission, relatives à l’atténuation des photons de la source externe
par les tissus à l’intérieur du sujet. Les deux acquisitions tomographiques sont réalisées soit
simultanément, soit successivement.
Cette méthode possède plusieurs limitations. Si les deux modalités sont acquises
simultanément, il peut y avoir contamination entre les deux types de sources, externes et internes,
d’énergies différentes. Les photons de la source radioactive de plus haute énergie peuvent par effet
Compton diffuser et donner naissance à des photons d’une énergie proche de celle des photons émis
par l’autre source. Si le phénomène n’est pas corrigé des artefacts apparaîtront sur l’image
reconstruite. Celler et al. [85] préconisent d’utiliser une source de transmission à pic photoélectrique plus élevé que celle d’émission pour réduire les problèmes.
On peut aussi faire l’acquisition des données de transmission après celles des données
d’émission, mais ceci entraîne un autre inconvénient, celui d’augmenter le temps d’examen et
l’inconfort pour le patient.
Après reconstruction des données de transmission, on obtient les coefficients d’atténuation
µE2(i) en chaque voxel i du volume pour l’énergie de la source de transmission (E2). Or, pour
corriger les données d’émission de l’atténuation des tissus, il est nécessaire de disposer des
coefficients d’atténuation des tissus pour l’énergie (E1) de la source d’émission. On peut utiliser
une approximation par la relation suivante :
𝐸1 𝑖 = 𝐸2 𝑖
𝐸1 𝑒𝑎𝑢
𝐸2 𝑒𝑎𝑢
Il s’agit d’une méthode de référence pour la correction d’atténuation, car elle permet
d’obtenir une carte d’atténuation non-uniforme pour la correction des tomographies cardiaques.
80
Malheureusement elle nécessite du matériel supplémentaire peu répandu en France, et provoque
une irradiation supplémentaire pour le patient
5.2.3.
Correction avec utilisation d’un scanner à rayons X
Un scanner à rayons X mesure l’atténuation des tissus à des photons X. Le principe est
comparable au dispositif de transmission gamma vu précédemment, sauf que dans ce cas, il s’agit
d’un tube à rayons X au lieu de la source radioactive externe, et que par ailleurs le détecteur n’est
pas une gamma caméra, mais un détecteur haute résolution. L’intérêt majeur d’utiliser un scanner X
est d’avoir des images peu bruitées et à haute résolution.
Actuellement, il existe des caméras multi-modalités TEMP/CT, permettant d’effectuer sur
un même appareil à la fois une acquisition TEMP, et une acquisition scanner. L’intérêt d’une telle
configuration est d’améliorer le confort du patient, et d’éviter d’effectuer des procédures délicates
de recalage d’images inter-modalités.
Classiquement, l’image scanner est en unités Hounsfield (NH) qui sont directement liées
aux coefficients d’atténuation :
NH=
μ tissu -μ eau
×1000
μ eau
Ce qui donne donc :
μ tissu =
NH  μ eau
 μ eau
1000
Tissu
Nombre Hounsfield
Air
-1000
Poumons
-500
Graisse
-100
Eau
0
Muscle
50
Cartilage+Os
1000
Aluminium
2700
Tableau 5-1 Nombres Hounsfield et tissus
L’énergie des photons X du CT n’étant pas la même que celle des photons gamma du radioisotope, il faudra effectuer une correction de même type que celle appliquée dans le cas de la source
radioactive externe. Par ailleurs, les photons issus d’un tube à rayons X n’étant pas mono-
81
énergétiques, la relation entre les coefficients d’atténuation pour les deux énergies n’est pas
strictement linéaire.
L’idéal pour évaluer les correspondances entre les unités Hounsfield et les coefficients
d’atténuation linéique TEMP est de mettre en place un protocole expérimental qui consiste à un
étalonnage précis en employant des matériaux de densités différentes.
En TEMP cardiaque, les données d’émission dans la périphérie du thorax peuvent être
tronquées sur certaines projections sans que cela n’ait d’importance sur la reconstruction, aussi
longtemps que le cœur est dans le champ de vision [86]. Malheureusement ce n’est pas la même
chose pour les images de transmission utilisées pour la correction d’atténuation. Il est fréquent
d’observer des acquisitions où le thorax dépasse les bords de l’image CT, ce qui entraine une sous
correction de l’activité.
Egalement, il arrive souvent que l’activité de l’apex soit sous évaluée et qu’il se retrouve
aminci sur les images [87] [88].
Malgré ces quelques difficultés, une carte d’atténuation déduite d’un scanner sera plus
précise qu’une carte uniforme et permettra de supprimer certains artefacts créés lors d’examens
cardiaques comme l’atténuation diaphragmatique.
5.2.4. Estimation préalable par utilisation des conditions de consistance
Seules certaines cartes d’atténuation sont compatibles avec les projections. A partir de là,
plusieurs approches permettent d’estimer les coefficients d’atténuation sans reconstruire la
distribution d’activité. La relation qui relie les projections calculées à la carte d’atténuation est
nommée condition de consistance.
5.2.4.1.Conditions de consistance analytiques
Natterer [89] est l’un des premiers à s’intéresser à ce type de méthodes. Par la suite Wetch
reprend ses idées [90] et a développé une méthode nommée ConTraSPECT dans laquelle la carte
d’atténuation est recherchée sous la forme d’une ellipse de μ uniforme. Cette méthode a été
programmée et testée sur des données cliniques par Gourion dans [91] et [73]. D’autres essais avec
des à priori plus complexes [92], ne furent pas très fructueux : la solution se révèle instable et très
dépendante des conditions initiales.
82
Natterer dans [93], utilise une procédure de déformation d’une carte d’atténuation de
référence afin de vérifier au mieux les conditions de consistance, et obtenir ainsi des cartes plus
précises que celles obtenues avec ConTraSPECT. Faghihi dans [94], utilise une image scanner et
utilise les conditions de consistance pour recaler au mieux la carte d’atténuation qui en est déduite.
Bronnikov dans [95] utilise des conditions de consistance simplifiées en exploitant la
relation linéaire qui existe entre la carte d’atténuation et les projections mesurées à deux positions
opposées de 180°. Mais il faut que l’atténuation soit suffisamment faible, car si elle est trop forte
les projections opposées risquent de perdre leur relation.
Ces méthodes ne fonctionnent que lorsque l’ensemble des projections acquis par la caméra
est réparti sur 360°, ce qui risque de poser problème dans le cas d’acquisition cardiaque qui sont sur
180°.
5.2.4.2.Conditions de consistance algébriques
A cause de l’instabilité numérique des conditions de consistance analytiques, certains
auteurs ont tenté de créer des conditions de consistance algébriques [96] [97] [98]. Ces approches
semblent moins instables que les conditions de consistances analytiques, elles ne nécessitent pas
toujours d’information à priori sur la carte d’atténuation et engendrent des cartes d’atténuation plus
proches de la réalité.
5.2.5. Reconstruction simultanée de l’émission et de l’atténuation
Il s’agit de déterminer la carte d’atténuation et l’activité simultanément à partir des seules
données d’émission. Dans sa thèse de 2002 intitulée « Correction d’atténuation à partir des seules
données d’émission » D Gourion [73] a présenté un panorama complet de ces méthodes.
Le problème est rendu difficile d’une part par le fait de la non-linéarité en μ, et d’autre part
par le fait que le nombre d’inconnues est doublé par rapport au problème classique où il faut
trouver l’activité avec une carte d’atténuation connue. Par ailleurs, il faut rappeler que si la
transformée de Radon atténuée est injective par rapport à l’activité seule [99], elle ne l’est plus si
elle est aussi fonction de l’atténuation. On constate facilement qu’une source ponctuelle peut
engendrer la même transformée de Radon avec deux distributions d’atténuation différentes [100]
[101].
83
Il n’y a donc pas la plupart du temps une unique solution à l’inversion de la transformée de
Radon atténuée. De plus le but d’une acquisition TEMP est la reconstruction précise de la carte des
distributions de l’activité radioactive du traceur et non de la carte des coefficients d’atténuation.
Ainsi, même si cette dernière n’est pas exacte, ce qui importe, est qu’elle engendre une valeur de f
proche de la réalité. Dans la pratique, on observe généralement un artefact de cross-talk qui se
traduit par une sous-estimation importante de l’atténuation aux endroits de forte activité.
Le premier article sur ce sujet date de 1979 [102]. Dicken [103] [104], emploie un critère
des moindres carrés et une régularisation de Tikhonov. Une autre approche, basée sur le même
principe, est proposée par Panin [105]. Elle procède à une décomposition en valeurs singulières
pour linéariser partiellement la dépendance non linéaire par rapport à μ.
Une autre façon de résoudre la transformée de Radon atténuée est de prendre en compte la
statistique de Poisson pour les données d’émission, associée au critère de maximum de
vraisemblance. On obtient un problème d’optimisation de la forme :
M S
N
N

min   R ijk [µ]fi - d jk log( R ijk [µ]f i ) +αI[f,µ]
f,µ
j=1 k=1  i=1
i=1

dont le but est de minimiser l’opposé du logarithme de la vraisemblance des variables
poissoniennes indépendantes auquel on ajoute d’un terme régularisant I[f,µ].
Krol [106] utilise un algorithme de type EM. Les méthodes de type EM ont l’avantage
d’être des procédures itératives simples, mais le cross-talk est très présent. Cet algorithme servira
de base pour la méthode implémentée dans la section 6.3.3.
Nuyts [107] utilise pour sa part une approche de maximum a posteriori qui incorpore une
connaissance a priori sur les coefficients d’atténuation et prend aussi en compte la nature
poissonienne de l’émission radioactive. Le cross-talk bien que présent est beaucoup plus léger.
Dans toutes les approches citées précédemment, chaque itération de l’algorithme se
décompose en une étape optimisant f et une étape optimisant µ. Bien que cela réduise la taille du
problème et permette d’utiliser la linéarité du problème en f, cette façon de procéder amplifie le
phénomène de cross-talk dans les reconstructions.
84
La méthode développée par Daniel Gourion [73] [108] se distingue par le fait qu’elle
optimise vraiment simultanément par rapport à f et µ et par l’étude de plusieurs critères,
régularisateurs et points initiaux possibles. L’algorithme d’optimisation utilisé est L-BFGS-B.
La méthode a été testée sur une coupe du fantôme MCAT, générée en tenant compte de
l’atténuation et du bruit poissonien. Les résultats obtenus sont très proches d’une reconstruction
avec la vraie carte d’atténuation, mais le choix du point initial était très important pour parvenir à
de tels résultats.
Des tests ont également eu lieu sur un fantôme physique striatal RSD rempli d’une activité
homogène. Pour obtenir une bonne quantification relative sur l’ensemble du volume il a été
nécessaire d’utiliser des a priori anatomiques contraignant les coefficients d’atténuation.
L’optimisation n’a pas été réalisée en tenant compte de réponse impulsionnelle 3D du
collimateur à cause de la taille du problème et des limitations techniques de l’époque. C’est pour
cette raison que nous avons développé une méthode semblable qui traite le volume dans son
ensemble tout en prenant en compte la réponse du collimateur dans la section 6.5.
85
6. Méthodes développées
Ce chapitre présente les méthodes et les algorithmes que nous avons développés. Les deux
opérateurs de base des algorithmes itératifs sont le projecteur et le rétroprojecteur. Une fois ceux-ci
réalisés, il est possible de les intégrer à n’importe quel algorithme itératif. Ce sont eux qui
consomment le plus de temps sur le CPU et dont le gain de vitesse est le plus important lors du
passage à une implémentation sur GPU. D’autres étapes plus simples des algorithmes peuvent
également être réalisées sur le GPU pour limiter au maximum les transferts entre la mémoire vidéo
et la mémoire centrale.
Nous présentons donc dans ce chapitre l’implémentation de ces opérateurs sur GPU, puis
comment ces opérateurs ont été utilisés dans différentes méthodes de reconstruction, soit pour
reconstruire l’émission radioactive seule par les méthodes OSEM, Gradient Conjugué, et
optimisation KNITRO, soit pour reconstruire à la fois l’émission et la transmission avec les
méthodes OSEMA et KNITRO. Puis, nous présentons succinctement l’interface du programme de
test que nous avons développée pour tester nos méthodes et algorithmes. Enfin, nous présentons
l’implémentation d’un simulateur de Monte Carlo sur GPU pour la simulation de l’effet Compton.
6.1. CREATION D’UN PROJECTEUR ET D’UN RETROPROJECTEUR SUR GPU
Pour calculer la projection et la rétroprojection nous procédons à une rotation de la texture
des coupes du volume en utilisant la méthode avec rotation du volume [74]. La carte graphique
possédant des fonctions câblées pour la rotation, cette dernière est accélérée matériellement et donc
très rapide par rapport aux versions logicielles des processeurs centraux.
La précision utilisée dans les textures utilisées pour le stockage des données est réglable,
nous utilisons les deux seules qui nous intéressent à savoir 16 bits et 32 bits par composante.
Les sections suivantes décriront chacun des opérateurs, avec une algorithmique spécifique à
l’implémentation sur le GPU.
86
6.1.1. Projecteur
6.1.1.1. Base
Nous avons donc une pile TexVolume de nbCoupes textures 2D qui représente le volume de
distribution de la radioactivité de taille (tailleX, tailleX, nbCoupes), chaque texture de taille
(tailleX, tailleX) représentant une des coupes.
Nous avons également une autre pile de nbProjs textures nommée TexProj où chaque
texture de taille (tailleX, nbCoupes) est destinée à recevoir la projection calculée pour un angle
donné. Nous avons également besoin d’une texture temporaire temp1 de taille (tailleX, nbCoupes)
pour contenir les résultats intermédiaires.
6.1.1.2. Prise en compte de la perte de résolution avec la profondeur
Pour prendre en compte la perte de résolution nous utilisons un fragment shader qui
applique une convolution gaussienne à l’image (voir l’exemple section 1.3). Le filtre gaussien étant
séparable, on applique une convolution horizontale et verticale pour effectuer OSEM3D, pour
OSEM2D, on n’applique que la convolution horizontale.
Comme nous voulons appliquer la convolution sous la forme d’un masque nous devons la
discrétiser et tronquer les valeurs trop faibles, puisque le masque doit avoir une taille finie. Les
coefficients du masque variant avec la profondeur il faut donc un masque pour chaque
profondeur. Nous prenons comme unité le pixel, ce qui simplifie les calculs.
Nous avons vu précédemment (en page 37) comment calculer la résolution totale Rt en
fonction de la distance par rapport à la caméra (), de la taille des trous (e), de l’épaisseur du
collimateur (h) et de la résolution intrinsèque de la caméra Ri:
𝑅𝑡 =
𝑒
𝑕
×
2
+ 𝑅𝑖2
Et nous connaissons son lien avec σ :
R  2 2ln 2
t
Ce qui équivaut à :
𝑒
=
×𝑕
2
+ 𝑅𝑖2
8 𝑙𝑛2
87
Déterminons tout d’abord la profondeur maximale. Pour cela nous avons besoin du rayon de
giration de la caméra qui nous donne la distance avec le centre de l’image, ensuite on lui ajoute la
moitié de la taille de l’image, ce qui nous permet d’englober tout l’espace entre la caméra et la fin
de l’image dans la direction visée, on a donc :
𝑚𝑎𝑥 =
𝑟𝑎𝑦𝑜𝑛_𝑔𝑖𝑟𝑎𝑡𝑖𝑜𝑛 𝑡𝑎𝑖𝑙𝑙𝑒_𝑖𝑚𝑎𝑔𝑒
+
2
𝑡𝑎𝑖𝑙𝑙𝑒_𝑝𝑖𝑥𝑒𝑙
Cette distance va nous permettre d’obtenir l’écart-type maximal de la gaussienne σmax :
𝑒
𝑚𝑎𝑥 =
𝑚𝑎𝑥 × 𝑕
2
+ 𝑅𝑖2
8 𝑙𝑛2
Comme la gaussienne est symétrique nous n’avons besoin de stocker qu’un demi-masque qui est
donc de taille :
taille _ masque  floor ( max  t )  1
floor étant la fonction partie entière et t la variable d’entrée de la fonction de répartition de la
gaussienne pour obtenir la population désirée. Ainsi pour t=3.5 on aura 99.98% de la gaussienne.
Il ne nous reste plus qu’à calculer les coefficients de la gaussienne, reprenons donc son
expression :
P( x) 
-x2
1
exp( 2 )
2
 2
Comme nous avons pris pour unité le pixel, P(0) correspond au pixel sur lequel le masque
est centré et P(i) au i-ème pixel après ou avant. Puisque nous avons tronqué les valeurs trop petites
de la gaussienne, il faut ensuite normaliser les valeurs pour que la somme soit égale à 1. Pour cela
on divise toutes les valeurs par le maximum du masque.
Il faut répéter ce calcul pour chaque profondeur, nous avons donc au total tailleX masques.
Ces masques seront stockés dans une texture 2D de taille ( taille _ masque ,tailleX), qui passée à un
fragment shader lui permettent de trouver aisément les bons coefficients. Dans le cas éventuel où
nous avons une acquisition de type « body contour », où la distance avec la caméra est variable
avec l’angle, il faut donc une texture pour chaque angle avec les coefficients correspondants, et
changer la texture passée au shader à chaque fois.
88
De plus nous utilisons une deuxième texture temporaire temp2 qui est comme la texture
temporaire de la version de base de la même taille qu’une projection c’est à dire (tailleX,
nbCoupes). On a besoin de cette deuxième texture car la convolution crée une indirection, c'est-àdire que des pixels lus sur la texture de départ n’ont pas la même coordonnée que celui sur la
texture d’arrivée, car à cause du parallélisme des opérations, lire et écrire sur la même texture aurait
des effets imprévisibles.
6.1.1.3. Atténuation
Nous créons une nouvelle pile de textures TexVolumeAtn de même taille que TexVolume qui
contient les coefficients multiplicatifs pour l’atténuation, les
e -μ i l avec μi coefficient d’atténuation
du voxel i et l longueur du voxel.
Ici, il faut rajouter une texture temporaire atn qui reçoit la tranche perpendiculaire à l’axe de
projection courante, donc toujours de taille (tailleX, nbCoupes).
6.1.1.4. Fan beam
Ici, juste après le calcul de la tranche perpendiculaire (émission et atténuation) on applique
un facteur de zoom horizontal :
𝑧𝑜𝑜𝑚 =

−
Avec  la distance focale et  la distance de la tranche à la caméra. Normalement, dans une
acquisition fan beam on s’arrange pour que le point focal ne soit pas dans l’image, donc le cas où
 -  = 0 ne doit pas se présenter. Mais pour la robustesse lorsque  est égal à , le facteur de zoom
est égal à la dimension de l’image, ce qui fait que le pixel central (en fait l’interpolation des 4
pixels centraux puisque souvent l’image à une dimension puissance de 2) occupe toute l’image.
Ce zoom s’effectue avant d’appliquer la convolution. La déformation ainsi créée va simuler
les caractéristiques du collimateur.
Si, de plus, nous voulons prendre en compte l’atténuation, tous les pixels ne sont plus
traversés d’une même distance. Les pixels sur les bords de l’image subissent une atténuation plus
importante que les pixels centraux. Soit c la distance au centre et  la focale :
89
𝑥𝑓 =
𝑐 ² + ²

On obtient ainsi xf le facteur qu’il faut appliquer à la distance normalement traversée (taille du
pixel) dans le cas parallèle.
6.1.1.5. Algorithme
L’algorithme correspondant au calcul du projecteur est présenté en Annexe B.
6.1.2. Rétroprojecteur
6.1.2.1. Base
Nous avons ici aussi TexVolume et TexProj de même taille que pour le projecteur, sauf que
cette fois-ci on lit TexProj et on écrit dans TexVolume. Nous avons également besoin d’une texture
temporaire temp1 et temp2 cette fois de la taille d’une coupe (tailleX, tailleX) pour contenir les
résultats intermédiaires.
6.1.2.2.Prise en compte de la perte de résolution avec la profondeur
Les coefficients sont calculés de la même façon que pour la projection. Les shaders sont
toutefois quelque peu différents dans leur conception. Il faut d’abord appliquer un shader spécial
pour la rétroprojection verticale qui prend la projection courante en entrée et en lisant les lignes audessus et au-dessous de la ligne correspondant à la coupe courante et affiche le résultat sur cette
coupe. Pour la convolution horizontale, on l’applique sur la coupe épandue. Ici contrairement à la
projection on utilise tous les masques à chaque affichage puisque toutes les profondeurs sont
concernées lors de l’épandage.
6.1.2.3. Atténuation
Il faut cette fois calculer à partir de la carte d’atténuation l’image des e-dμl pour l’angle
courant que l’on multiplie à la coupe épandue.
Les e-dμl est une image représentant le cumul des atténuations des pixels traversés pour
atteindre le détecteur pour un certains angle. Pour les calculer on applique l’algorithme suivant :
Rotation de la carte d’atténuation puis résultat dans tex1
90
Pour la profondeur y de 0 à tailleX-1
(de la plus proche à la plus
éloignée)
{
Si y impair
{
On multiplie par la ligne y de tex1 les lignes allant de y+1
à tailleX-1 on place le résultat dans tex2.
}
Si y pair
{
On multiplie par la ligne y de tex2 les lignes allant de y+1
à tailleX-1 on place le résultat dans tex1.
}
}
6.1.2.4. Fan beam
Comme pour la projection, on a le même facteur de zoom qui dépend de la profondeur et de
la focale, mais cette fois on fait un épandage sur une coupe. Nous rétroprojetons normalement sur
la coupe, puis après la convolution on étire la coupe de façon à ce que la géométrie soit suivie.
6.1.2.5.Algorithme
L’algorithme du rétroprojecteur est présenté en Annexe C.
6.2. VERSION CPU DU PROJECTEUR ET DU RETROPROJECTEUR
Pour comparer la qualité des résultats et la vitesse d’exécution, nous avons implémenté une
version CPU du projecteur et rétroprojecteur. On utilise toujours la même méthode avec rotation du
volume. Pour les tests concernant le temps de calcul, le programme est compilé sous Visual C++
2005 en mode Release en utilisant l’optimisation de vitesse. Si pour la version GPU, ce genre
d’optimisation n’a pas grand effet vu que les instructions CPU de contrôle passent le plus clair de
leur temps à attendre le GPU, ici elle a toute son importance.
91
Les variables utilisées pour stocker les données seront en 32 bits (le type float) ce qui
permettra de comparer à la version GPU qui utilisera des textures en 32 bits par composantes.
6.3. OSEM
6.3.1. Emission
Soit la formule d’EM :
f
(n 1)
i
d jk
fi(n )

 R ijk
(n )
 R ijk j,k
 R ljk f l
j,k
l
Le projecteur et le rétroprojecteur sont réalisés de telle manière, que s’il n’y a pas
d’atténuation symétrique, le volume de normalisation V soit égal à 1. On obtient donc en utilisant
les opérateurs précédents :
f ( n 1) 


f (n)
d
Retroprojection 
(n) 
V
 Projection( f ) 
S’il y a atténuation symétrique on crée un tableau normVolume
de taille
égale au nombre des sous-ensembles. normVolume[subset] contient la piles
de texture correspondant au volume de normalisation du sous-ensemble
courant.
On initialise les textures du volume à 1
Pour chaque itération
{
Pour chaque sous-ensemble
{
Projection de volume, résultat dans projCalculées
Division
de
projMesurées
par
projCalculées,
résultat
dans
projCalculées
Retroprojection de projCalculées, résultat dans volumeRetro
92
Multiplication
de
volumeRetro
et
volume,
résultat
dans
volume.
Si correction d’atténuation symétique, division de volume par
normVolume[subset] du sous ensemble, résultat dans volume.
}
}
On ne sort à aucun moment de la mémoire vidéo durant le déroulement de l’algorithme, tout
est chargé au début et sauvegardé à la fin.
6.3.2. Transmission
Ici c’est la carte d’atténuation que l’on optimise au lieu du volume d’émission.

( n 1)
 Projection    ( f ( n ) ) 
  Retroprojection 

d


(n)
A chaque itération l’atténuation de l’itération précédente est donc multipliée par la
rétroprojection non atténuée de la projection atténuée de l’activité précédente par les projections
mesurées.
Ce qui nous donne l’algorithme suivant :
On défini un contour par seuillage.
A l’extérieur du contour la valeur de la texture est 1 (donc μ=0) et à
l’intérieur on prend μeau. Le résultat est placé dans volumeAtn
Pour chaque itération
{
Pour chaque sous-ensemble
{
Projection
de
volume
atténuée
projCalculées.
93
par
volumeAtn,
résultat
dans
Division
de
projCalculées
par
projMesurées
(Attention c’est l’inverse de
l’émission), résultat dans projCalculées.
Retroprojection
non
atténuée
de
projCalculées,
résultat
dans
volumeRetro.
On fait volumeAtn = –log(volumeAtn)/ taillePixel pour retrouver les
coefficient d’atténuation linéiques.
Multiplication
de
volumeRetro
et
volumeAtn,
résultat
dans
volumeAtn.
On fait volumeAtn = exp(-volumeAtn * taillePixel) pour retrouver
les coefficients multiplicatifs de l’atténuation pour la suite du
calcul.
}
}
On fait volumeAtn = –log(volumeAtn)/taillePixel pour récupérer l’image
finale
6.3.3. Optimisation de l’émission et de la transmission en alternance
Cette méthode est basée sur la méthode de Krol [106]. On effectue alternativement une
itération d’émission puis une itération de transmission à la suite, de manière à corriger l’image
d’émission de l’atténuation, sans données supplémentaires de transmission. Nous appelons cette
méthode OSEMA, ou OSEM3DA (comme OSEM ou OSEM3D Alternée avec correction
d’Atténuation).
Si l’atténuation est symétrique, il ne faut pas oublier de recalculer le normVolume du sous
ensemble courant après chaque itération de transmission car la carte d’atténuation est modifiée.
A cause du cross talk un problème apparaît dans les zones où l’activité est faible, au fil des
itérations les valeurs d’atténuation vont augmenter très vite parfois jusqu’au dépassement de
94
capacité de stockage des valeurs flottantes. Ceci entraînant des artefacts importants rendant l’image
reconstruite totalement inutilisable.
Un masque sur le contour résout une partie du problème, mais restent les pixels près des
bords qui restent affectées. Pour cela dès qu’une valeur d’atténuation dépasse un certain seuil, par
exemple une atténuation qu’on n’est pas sensé retrouver sur le patient à l’énergie du traceur
courant, on met le pixel d’atténuation à 0.
On peut également faire varier la vitesse d’optimisation du critère d’une itération par
rapport à l’autre pour que l’optimisation de l’atténuation n’aille pas trop vite par rapport à celle de
l’émission.
6.4. GRADIENT CONJUGUE
Ici seul l’opérateur R*R (la rétroprojection de la projection) est implémenté sur GPU, le
reste des opérations s’effectuant sur CPU, en particulier le produit scalaire. On applique donc
l’algorithme tel qu’il est décrit dans la section 3.3.3.
Cette méthode s’est révélée plus instable que la méthode OSEM, comme nous le montrerons
dans le chapitre 7.1. Aussi, nous ne l’avons mise en œuvre et testée que pour le calcul de l’émission
radioactive seule corrigée ou pas de la résolution (GC1D ou GC3D) et pas pour le calcul alterné
activité-atténuation.
6.5. METHODE AVEC KNITRO
6.5.1. Introduction
Ici nous utilisons l’optimiseur non-linéaire KNITRO (cf. paragraphe 3.4.3) qui prend une
fonction objectif qu’il cherche à minimiser. Cet optimiseur a également besoin d’un gradient. Il faut
donc calculer les dérivées pour les fonctions objectifs de Poisson et de Gauss.
95
La relation de base est :
 R ij  Tk μ   Tk f i , pour tout j  B et k  S
iV
Ici :
-
pjk est la donnée mesurée pour la projection
j  B à la position k ou θk  S . B=série de
projections, S=série de position angulaire de la caméra, V=série de voxels.
-
*
Tk rotation inverse au sens de la caméra d’angle θk . Et sont adjoint Tk qui est la rotation
*
« inverse » de même angle mais dans le sens de la caméra, alors on a Tk Tk  I .
-
f i =activité du voxel i, i =coefficient d’atténuation du voxel i.
Le coefficient R ij  v  g dépend linéairement de l’activité gi mais non linéairement de
l’atténuation v.
-
R ij Tk   = l’activité pour la projection j à la position angulaire k, quand le voxel i à une
activité unitaire, tous les autres voxels ont un activité nulle, et où l’atténuation des tissus est
donnée par
.
-
(…)i est le i-ème élément du vecteur dont les indices sont les voxels.
-
Pour simplifier i sont toujours les voxels, j les projections, k les positions angulaires.
Les coefficients ont la forme :


Rij v   Rij exp    vi ' 
 i ':ii ' 
Ici on introduit la notation i  i '  voxel i’ est derrière le voxel i.
6.5.2. Objectif de Poisson
On définit la fonction qui correspond à l’opérateur de projection atténué :
Θ jk (f,μ)=  R ij  Tk μ   Tk f i
iV
Si le modèle de Poisson est utilisé comme dans OSEM on doit minimiser :
 ( f ,  )     jk ( f ,  )  p jk log  jk ( f ,  ) 
jk
Alors les dérivées sont :
96
  ( f ,  )
p jk  jk ( f ,  ) 
( f ,  )
  jk


jk 
i*



(
f
,

)


i
*
jk
i
*



p jk   jk ( f ,  )
 1 

jk 
  jk ( f ,  )  i*
Cela explique pourquoi le travail est de calculer essentiellement les gradients de
respectivement pour μ et f.
Naturellement, la dérivée pour f est obtenue par la même formule.
  ( f ,  )
p jk  jk ( f ,  ) 
( f ,  )
  jk


jk 
fi*

f

(
f
,

)

f
i
*
jk
i
*



p jk   jk ( f ,  )
 1 

jk 

(
f
,

)
jk

 fi*
Donc ici nous devons connaître :
 jk ( f ,  )
fi*
  Rij Tk  
iV
 Tk f i
fi*
Maintenant nous avons :
Tk f i   tiik ' fi '
i 'V
 Tk f i
 tiik*
fi*
En substituant on a :
 jk ( f ,  )
fi*
  Rij Tk  tiik*
iV
On écrit :
v jk =1-
p jk
Θ jk  f,μ 
On obtient en substituant par les précédents :
( f ,  )
  v jk  Rij Tk  tiik*   tiik* Rij Tk   v jk
fi*
jk
iV
iV jk
97
 jk
Ce n’est rien de plus que l’application de l’opérateur adjoint de l’opérateur sur le vecteur v.
On peut calculer le gradient de f avec l’objectif de poisson comme il suit :
v=R[mu]f ; // projection de f
v=ones-p/v;
nabla=R[mu]*v; // retroprojection de v
return nabla;
6.5.3. Objectif de Gauss
Ici nous avons :
( f ,  ) 
2
1
   jk ( f ,  )  p jk 
2 jk
Alors les dérivées sont :
 jk ( f ,  ) 

 ( f ,  )
     jk ( f ,  )  p jk 

i*
i*
jk 

Donc le travail est essentiellement le même que pour l’objectif de poisson. On peut écrire :
 jk ( f ,  )
( f ,  )
  v jk
i*
i*
jk
Où :
1  p jk  jk ( f ,  )

v jk  
 ( f ,  )  p
jk
 jk
Pour Poisson
Pour Gauss
L’essentiel du travail est de calculer v.
Le gradient pour l’objectif de Gauss pour f est obtenu par la procédure suivante :
v=R[mu]f ; // projection de f
v-=p;
nabla=R[mu]*v; // retroprojection de v
return nabla;
98
6.5.4. Calcul du gradient pour l’atténuation
On écrit
v=Tk μ sous la forme vi   tiik i alors  Rij Tk   (Tk f )i  Tk*v Rij v (Tk f )i . Ce qui
*
*
i*V
signifie utiliser la règle de dérivation des fonctions composées avec

i*
  tik'i*
i 'V

.
vi*
On doit calculer pour les deux
choix possible de v :
 f , 
  v jk 
iV
jk

Rij Tk  (Tk f )i
i*

 
  v jk    tik'i*
Rij Tk   Tk f
vi ' 
jk
i  i 'V
  v jk  tik'i* 
i 'V
jk
i

Rij Tk   Tk f i
vi '
  v jk  tik'i*  Rij Tk   Tk f
i 'V
jk
i
i:i i '
i
  tik'i*  v jk Rij Tk   Tk f i
k
i'
j i:i i '


 
   Tk*    v jk Rij Tk   Tk f i  
 j i:ii '
i 'V  i*
 k
On peut l’écrire de la façon suivante : On calcule les vecteurs wk, où wik'    v jk Rij Tk   Tk f i
j
et calculer      Tk* wk qui est le gradient.
k
nablaphi=zeros
pour  k  S  {
w=zeros;
pour  i V  {
pour  j  B  {
help=Rij[Tkμ](Tkf)i*v[j][k] ;
pour (i’ derrière i) {
w[i’]+=help ;
}
99
i:i i '
}
}
*
nablaphi-= Tk w;
}
Pour paralléliser cet algorithme et permettre le calcul par le GPU nous allons créer un nouvel
opérateur Rpente[μ] et appliquer la formule suivante :
    R    ( Rpente   )  f 
*
6.5.5. Estimation par zones
Pour diminuer le nombre de variables à optimiser, on peut prendre le cas où l’activité ou
l’atténuation sont uniformes dans une zone. Si on découpe la carte en N zones, le gradient aura
donc N valeurs. Notre gradient précédemment calculé lui est d’une taille égale au nombre de pixels.
Par conséquent pour calculer le gradient spécifique à chaque zone on prendra la somme des
gradients des pixels de la zone.
6.5.6. Régularisation
Un opérateur de Thikonov a été implémenté, on peut également compter sur l’effet
« lissant » de la correction de la réponse du collimateur.
100
6.6. PLATEFORME DE TEST ET DONNEES UTILISEES
Les logiciels de visualisation étant limités dans les traitements disponibles et ne permettant
pas de rajouter tout ce dont on a besoin, nous avons développé un programme de visualisation
spécifique qui permet de rajouter tous les traitements nécessaires pour les validations.
L’API utilisée pour le fenêtrage est wxWidgets, conjointement avec OpenGL. Ce dernier
étant cette fois utilisé à des fins graphiques.
Figure 6-1 Interface de la plateforme de test
Cette plateforme permet de tester les différents algorithmes que nous avons développés, soit
sur des données numériques (fantômes), soit sur des données réelles de patients.
Nous présentons ci-dessous d’une part les données test sur lesquelles ont été testées les
méthodes développées ainsi que quelques outils de visualisation de cette plateforme.
6.6.1. Fantôme numérique de cœur NCAT
Le fantôme numérique de cœur NCAT (www.bme.unc.edu/~wsegars/phantom.html) a été
utilisé pour tester les possibilités de correction d’atténuation en imagerie cardiaque. Ce fantôme a
été paramétré de telle façon que la partie supérieure du diaphragme arrive à un niveau supérieur à la
partie inférieure du cœur.
Pour chaque organe, nous avons fixé des activités et des coefficients d’atténuation réalistes :
101
Organe
Activité (valeurs relatives)
Atténuation (cm-1)
Cœur
6
0.19
Foie
4
0.19
Poumon
0.25
0.05
Reste du corps
1
0.19
Os
1
0.32
Tableau 6-1 Activité et atténuations fixées pour le fantôme NCAT.
Les projections données d’émission et d’atténuation :
Activité
Atténuation
Figure 6-2 Fantôme NCAT d’atténuation et émission
Ce fantôme a été considéré comme donnée de référence pour évaluer la qualité des
différentes méthodes de reconstruction.
Ce volume de référence a été projeté en prenant en compte le collimateur (taille des trous
2 mm, profondeur 3.5 cm, rayon de giration 20 cm, résolution intrinèque de la caméra 3.5 mm) et
une atténuation (unifome sur le contour). 120 projections sur 360°, au format 128x128x120, ont été
ensuite bruitées par un bruit poissonnien (valeur maximale dans les projections 69, 17 millions de
coups au total). On obtient ainsi des projections proches d’une véritable acquisition.
102
La qualité des reconstructions est alors évaluée en les comparant au volume de référence
initial, soit visuellement, soit quantitativement à l’aide d’un calcul de l’écart quadratique
normalisée :
n
2
 (reci  refi )
r e c r e f
 i 1
ref
n
2
 (refi )
i 1
Où refi et reci sont respectivement les activités réelles et reconstruites au voxel i.
6.6.2. Données cliniques
Pour étudier la correction d’atténuation, nous disposons de deux types de données cliniques.
Premièrement une acquisition sur un appareil multimodalité TEMP-CT du Centre Hospitalier de
Perpignan où l’image TEMP non corrigée de l’atténuation présente un artefact d’atténuation
diaphragmatique, deuxièmement, une base de données référencée de 33 TEMP myocardiques
provenant du CHU de Toulouse Purpan.
L’étude consiste à reconstruire ces examens avec OSEM et OSEMA, puis de comparer les
Bull’s Eye après réorientation.
6.6.2.1. Examen TEMP-CT avec atténuation diaphragmatique
Il s’agit du seul examen TEMP dont nous disposons avec carte d’atténuation scanner
associée et atténuation diaphragmatique.
L’acquisition TEMP est réalisée avec le patient sur le dos. Les projections sont en 64x64
pixels avec 30 projections sur 180° et une résolution de 5,9 mm par pixel. Réalisée au thallium-201
avec une fenêtre en énergie de 59,5 à 80,5 keV.
Le système d’acquisition fournit une carte d’atténuation générée à partir du CT, recalée dans
l’espace du TEMP en résolution 643, avec les coefficients d’atténuation linéique. Elle est donc prête
à être utilisée. (Figure 6-3).
103
CT
TEMP
p
Figure 6-3 Acquisition TEMP/CT avec atténuation diaphragmatique.
6.6.2.2. Base de données de 33 TEMP myocardiques
Nous disposons d’une série de patients provenant du CHU de Purpan à Toulouse,
projections en 64x64 pixels, 30 projections sur 180° et 6,6 mm par pixel, également réalisées au
thallium-201. On dispose des diagnostics mais pas du CT associé.
Cette base de données a été classée en 8 sujets avec artefact d’atténuation diaphragmatique,
10 avec artefact d’atténuation mammaire, 9 sujets normaux sans artefact d’atténuation, 6 cas
pathologiques avec une hypofixation inférieure.
En effet, pour le praticien expérimenté, il est possible de suspecter des atténuations
diaphragmatiques ou mammaires grâce à l’ombre qu’elles laissent sur les projections. Toutefois, il
reste difficile d’évaluer subjectivement l’impact d’une ombre dans les projections sur la
reconstruction finale. Aussi, nous parlerons d’atténuations suspectées, plutôt que certaines.
6.6.3. Affichage des trois vues
Ici nous allons charger l’image sous la forme d’une texture 3D dans la mémoire graphique.
La fenêtre sera ensuite découpée en trois et dans chacune des parties s’affichera un carré avec des
coordonnées de textures différentes. A chacun de ces carrés on appliquera la texture 3D. Les
104
coordonnées de textures des carrés provoqueront ainsi l’affichage du volume sous la forme de
coupes axiales, coronales et sagittales.
Pour améliorer la visualisation, nous allons en plus rajouter un shader qui va appliquer une
LUT (Look-Up Table) à l’image. La LUT est sous forme d’une texture 1D que le shader va prendre
en entrée en plus de la texture 3D. La valeur initiale de chaque pixel de la texture 3D va être
transformée en coordonnée de texture sur la texture de LUT. La valeur de la LUT à cette
coordonnée devient alors la valeur finale du pixel affiché.
6.6.4. Maximum Intensity Projection
La MIP (Maximum Intensity Projection) est un mode de visualisation d’un volume 3D qui
affiche sur une image 2D l’intensité maximale de l’image dans l’axe de projection [109].
Nous allons ici effectuer un travail similaire à celui du projecteur d’OSEM. Sauf que cette
fois, nous n’avons pas qu’un seul axe de rotation, puisque celle-ci est totalement libre. Mais ce ne
sera pas gênant vu qu’il n’y a pas de retroprojection à effectuer ensuite.
On aura trois textures. TexVolume la texture 3D qui contient le volume. Et deux texture 2D
temp1 et temp2.
Initialisation de la texture temp2 à 0.
Pour chaque profondeur
{
Appliquer la matrice de transformation courante à TexVolume.
Affichage dans temp1 de TexVolume.
Application du fragment program qui prend le max entre temp1 et
temp2 et résultat dans temp2.
}
Affichage de temp2.
105
6.6.5. Bull’s Eye
Soit une image de tomographie cardiaque reconstruire réorientée et masquée pour éliminer
les sources d’activités provenant de l’extérieur du cœur. Le Bull Eye sera généré comme suit :

BE ( x, y)  max L( M xy , D xy )
Chaque point du Bull’s Eye est le maximum d’activité située sur une demi-droite qui par
d’un point Mxy et suit une direction Dxy, avec :
M xy  (0, 0, x 2  y 2 )
Dxy  Rot (1, 0, 0)
Rotθ(1,0,0) étant la rotation du vecteur unité (1,0,0) d’un angle θ autour du grand axe
(0,0,1), θ étant obtenu de la façon suivante :
y

arctan( x )   si x  0 et y  0

y

  arctan( )   si x  0 et y<0
x


y
arctan( x ) sinon
Ainsi le Bull’s Eye est constitué de cercles concentriques qui représentent chacun une coupe
de la reconstruction cardiaque.
Mais près de l’apex on effectue un traitement particulier. Les cercles concentriques ne
représentent plus des plans. Les lignes vont se redresser progressivement jusqu’à atteindre la
verticale de façon à ce que la partie la plus supérieure de l’apex ne forme plus qu’un point. Il faut
donc changer le calcul de Dxy.
Dxy  Rot ( Rot (1,0,0))
Rotφ est la rotation d’angle φ autour de l’axe y (0,1,0), avec :
 z z
   turn
2
zturn
zturn étant le point où l’on décide de tourner.
L’image doit avec cette méthode être préalablement lissée pour éviter que des artefacts ne
soient pris en compte.
L’image finale est placée dans une texture 2D, on peut également lors de l’affichage
appliquer une LUT en utilisant un shader.
106
y
x
φ
ztu
x
θ
rn
z
Coupe perpendiculaire
Coupe parallèle au grand
au grand axe
axe
y
z
x
Bull’s Eye
θ
Figure 6-4 Schéma pour la génération du Bull’s Eye
6.7. SIMULATEUR DE MONTE-CARLO
Cette application a pour but de tester la faisabilité d’un calcul rapide des projections en
prenant en compte l’effet Compton sur GPU. Chaque photon émis par le traceur est traité
indépendamment. On utilise pour cela la carte d’activité qui va donner pour chaque voxel le
nombre de photons à envoyer (valeur du voxel multipliée par un facteur) et la carte d’atténuation
pour déterminer les probabilités d’interactions.
6.7.1. Algorithme général
Pour chaque photon
{
Générer une direction aléatoire d selon une loi uniforme.
107
Tant que le photon n’a pas atteint le détecteur ou n’est pas sorti de
l’image.
{
Déterminer les probabilités pour l’atténuation courante d’avoir un effet
photoélectrique, Compton ou rien.
Générer un nombre aléatoire uniforme qui permettra de déterminer quel
effet c’est produit.
Si on a un effet photoélectrique.
{
Destruction du photon.
}
Sinon si on a un effet Compton.
{
Changement de direction et d’énergie du photon.
Le photon avance d’un pas unitaire dans la nouvelle direction.
}
Sinon
{
Le photon avance d’un pas unitaire.
}
}
Choix du plan de projection en fonction de l’angle du photon dans le
plan horizontal.
Projeter le photon sur le plan de projection choisi.
Si (Probabilité de passer le collimateur > 0)
{
Ajouter le photon au jeu de projection correspondant à son énergie.
}
}
Pour déterminer la probabilité d’avoir une interaction photoélectrique ou Compton, les
formules étant assez complexes, on utilise une table avec des valeurs pré-calculées pour chaque
type de tissus.
108
Pour le changement de direction aléatoire du photon lors de l’effet Compton et son
changement d’énergie on utilise l’algorithme donné dans la section 2.4.2.
Pour projeter le photon sur le plan de projection, on calcule l’intersection entre la droite
qu’il suit et le plan de projection. On représente le plan par sa normale N et un point du plan A. Le
calcul de l’intersection avec le photon de position P et de direction D se calcule comme il suit :
   
  OP.N  OA.N 
 
OI  OP 
D
N .D
 
O est l’origine, si N .D  0 , alors la trajectoire du photon est parallèle au plan, il n’y a donc
pas d’intersection.
Pour calculer la probabilité de passer le collimateur, on calcule l’angle avec lequel le photon
percute le collimateur :
 
N .D
1  cos 1 (   )
N . D
et l’angle maximum que le collimateur peut laisser passer :
h
e
max  tan 1 ( )
Avec e diamètre des trous et h hauteur du collimateur. Il ne suffit pas de prendre les photons
où θ1 est inférieur à θmax. Car plus un photon arrive en biais, plus il a de chance de percuter le
collimateur. Aussi la probabilité est donc
 max  1
.
 max
6.7.2. Version GPU
Les données relatives à un même photon sont rangées dans trois texels chacun trois textures
à la même position.
109
Rouge
Vert
Bleu
Alpha
Texture 1
Position x
Position y
Position z
Non utilisé
Texture 2
Direction x
Direction y
Direction z
Energie
Atténuation de
Atténuation
Non utilisé
Drapeau de
destruction
cumulée
Texture 3
destruction
Tableau 6-2 Structure d’un photon en mémoire vidéo
Il est difficile de générer un nombre aléatoire à l’intérieur d’un shader. On prend donc le
problème d’une autre façon. A l’initialisation de la texture 3, on génère de manière aléatoire sur
CPU l’atténuation au bout de laquelle le photon sera détruit :
d l   log(r1)
avec r1 nombre aléatoire entre 0 et 1. Ceci étant équivalent à dire que :
r1  e d l
On retrouve donc la probabilité d’atténuation du photon sur une distance l.
Le champ atténuation cumulé sera ensuite mis à jour et s’incrémentera en fonction de
l’atténuation traversée. Lorsque l’atténuation cumulée aura dépassé le seuil de destruction, le
drapeau de destruction sera activé et la position du photon ne sera plus mise à jour.
Les photons qui ne sont pas détruits continuent de bouger dans leur direction propre, jusqu’à
un nombre d’itérations égal à la diagonale de l’image pour être sûr que tous ont atteint les bords.
On ne pourra pas toujours traiter les photons en une seule fois à cause de la limitation de
taille des textures, aussi il faudra effectuer plusieurs passes. A la fin de chaque passe, on recharge
les photons en mémoire centrale pour les traiter individuellement sur CPU. Les photons qui sont
sortis du champ de l’image sont soit détruits, soit ajoutés à la projection correspondante. Les
photons qui ont subi l’atténuation sont testés pour savoir s’ils ont fait un effet Compton. Si c’est le
cas, on calcule leur nouvelle direction et leur nouvelle énergie. Ils sont ensuite réinjectés dans
l’étape suivante et complétés avec les photons primaires qui n’ont pas encore été traités.
110
7. Résultats accélération GPU
Dans ce chapitre, nous avons testé et comparé nos méthodes OSEM, GC, OSEM3D, GC3D
avec ou sans correction d’atténuation (carte connue), en version GPU ou CPU, à partir des données
de projections numériques du fantôme NCAT.
Cette comparaison s’est effectuée à deux niveaux, d’une part concernant la qualité des
reconstructions, et d’autre part concernant les temps de calculs.
Le dernier paragraphe présente les résultats de notre étude de faisabilité concernant un
simulateur Monte Carlo sur GPU.
7.1. EVALUATION DE LA QUALITE DE RECONSTRUCTION
7.1.1. Comparaison OSEM/Gradient Conjugué
La Figure 7-1 présente l’erreur quadratique normalisée pour les algorithmes OSEM avec 1
seul sous-ensemble (EM) et GC, sans (1D) et avec (3D) prise en compte de la réponse
impulsionnelle du collimateur dans le projecteur et le rétroprojecteur, avec (AC) et sans correction
d’atténuation, au fil des itérations.
En absence de correction d’atténuation, le GC converge plus vite que EM, mais ensuite
s’éloigne plus rapidement de la solution. Comme on pouvait l’espérer, avec la correction
d’atténuation les résultats sont meilleurs, mais il apparaît cette fois que le GC converge moins vite
que OSEM et donne de moins bons résultats. Par ailleurs, on remarque que la prise en compte de
réponse impulsionnelle agit à la manière d’un régularisateur, en ce qu’il stabilise la solution, à la
fois pour GC et OSEM.
OSEM3D avec correction d’atténuation est donc finalement la méthode qui donne la
solution la meilleure et la plus stable, l’erreur n’augmentant que très peu au bout d’un grand
nombre d’itérations. Ces résultats numériques se confirment visuellement Figure 7-3.
La Figure 7-2 montre qu’utiliser une précision 16 bits n’a pas beaucoup de conséquences
sur le résultat final par rapport à une précision 32 bits, du moins tant que l’on reste à un nombre
d’itérations raisonnables.
Dans la suite des tests, nous ne parlerons plus que de OSEM.
111
Erreur quadratique normalisée
1.2
1
EM1D
0.8
GC1D
EM3D
0.6
GC3D
0.4
EM3D+AC
GC3D+AC
0.2
EM1D+AC
GC1D+AC
0
0
10
20
30
40
50
Nombre d'itérations
Figure 7-1 Evolution de l’erreur avec les itérations avec OSEM 1 subset (EM) et le Gradient
Conjugué (GC) avec (+AC) ou sans correction d’atténuation et avec (3D) ou sans
(1D) prise en compte du collimateur sur le fantôme NCAT en précision 32 bits.
Erreur quadratique normalisée
16 bits vs 3 2bits
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
OSEM3D+AC 16bits
GC3D+AC 16bits
OSEM3D+AC 32bits
GC3D+AC 32bits
0
10
20
30
40
50
Nombre d'itérations
Figure 7-2 Evolution de l’erreur avec les itérations avec OSEM3D+AC 1et le Gradient
Conjugué+AC selon la précision 16bits ou 32bits sur le fantôme NCAT.
112
GC 1D +AC
15 itérations
OSEM 1D
+AC
10 itérations
GC 3D +AC
25 itérations
OSEM 3D
+AC
35 itérations
Fantôme
NCAT
Figure 7-3 Comparaison visuelle par les différentes méthodes de reconstruction sur le
fantôme NCAT.
113
7.1.2. Influence du nombre de sous-ensembles
Jusqu’ici, nous avions testé OSEM avec un seul sous-ensemble, ce qui correspond à la
version originale de EM. Mais il est également intéressant d’observer l’évolution de la qualité de
reconstruction en fonction du nombre de sous-ensembles, car le temps de calcul est pratiquement
divisé par le nombre de sous-ensembles.
Dans la figure ci-dessous, nous présentons l’erreur quadratique normalisée pour les
méthodes OSEM1D (Figure 7-4) et OSEM3D (Figure 7-5) avec correction d’atténuation (carte
d’atténuation fournie), en fonction du nombre de sous-ensembles (subsets), au fil des itérations. Ici
le fantôme NCAT a été projeté sur 128 projections, car ce nombre donne plus de possibilités dans
le choix du nombre de sous-ensembles.
On montre que sans prise en compte du collimateur, il vaut mieux rester en dessous du quart
du nombre de projections.
Erreur quadratique normalisée
OSEM1D
1
0.8
1 subset
0.6
2 subsets
4 subsets
0.4
8 subsets
0.2
16 subsets
32 subsets
0
0
20
40
60
64 subsets
Nombre d'itérations
Figure 7-4 Evolution de l’erreur avec le nombre de mise à jour en fonction du nombre de
sous-ensembles pour une reconstruction OSEM1D+AC sur le fantôme NCAT.
114
Erreur quadratique normalisée
OSEM3D
1
0.8
1 subset
0.6
2 subsets
0.4
4 subsets
8 subsets
0.2
16 subsets
0
32 subsets
0
20
40
60
64 subsets
Nombre d'itérations
Figure 7-5 Evolution de l’erreur avec le nombre de mise à jour en fonction du nombre de
sous-ensembles pour une reconstruction OSEM3D+AC sur le fantôme NCAT.
Avec prise en compte du collimateur, le nombre de sous-ensembles n’a plus beaucoup
d’incidences sur le résultat final.
Néanmoins pour une statistique de coups très faible les résultats en OSEM3D seront moins
bons, et il faudra éviter d’utiliser un nombre de sous-ensembles trop élevé, comme le montrent les
résultats suivants (Figure 7-6) obtenus en considérant comme volume de référence un volume de
fixation des neurotransmetteurs dopaminergiques, caractérisé par un bruit statistique élevé dans les
Errreur quadratique normalisée
projections (maximum : 10 coups/pixels).
3D Neurotransmission
1
0.8
1 subset
0.6
2 subsets
4 subsets
0.4
8 subsets
0.2
16 subsets
32 subsets
0
64 subsets
0
20
40
Nombre d'itérations
60
Figure 7-6 Evolution de l’erreur avec le nombre de mise à jour en fonction du nombre de
sous-ensembles pour OSEM3D+AC avec un nombre de coups très faible
(projections de type DaTSCAN avec un maximum de 10) .
115
7.1.3. Importance de la précision de l’interpolation
Nous avons également testé l’influence des deux modes d’interpolations disponibles lors de
la rotation du volume à savoir l’interpolation linéaire et au plus proche voisin sur la qualité de la
reconstruction (Figure 7-7).
Du point de vue de l’erreur quadratique l’interpolation linéaire en 16 bits semble très proche
Erreur quadratique normalisée
de l’interpolation au plus proche voisin en 32 bits.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
Lineaire 16bits
Plus proche voisin 16bits
Linéaire 32bits
Plus proche voisin 32bits
0
10
20
30
40
50
Nombre d'itérations
Figure 7-7 Evolution de l’erreur avec le nombre d’itérations pour chaque précision et chaque
mode d’interpolation sur le fantôme NCAT.
Cependant, visuellement on observe (de manière plus évidente sur écran que sur papier) la
supériorité de l’interpolation linéaire, en 16 bits ou mieux encore en 32 bits. Les versions « au plus
proche voisin » créent de légers artefacts de type trame sur les images. Le phénomène est plus
particulièrement visible sur les TEMP cérébrales (Figure 7-8).
116
16 bits
32 bits
Linéaire
Plus
proche
voisin
Figure 7-8 Comparaison visuelle en fonction du mode d’interpolation et de la précision en
virgule flottante sur une perfusion cérébrale.
117
7.1.4. Influence de la correction symétrique/asymétrique de l’atténuation
La prise en compte de l’atténuation à partir d’une carte d’atténuation connue peut se faire
uniquement dans le projecteur (méthode dite asymétrique), ou bien à la fois dans le projecteur et le
rétroprojecteur (méthode symétrique). Ci-dessous, nous montrons l’évolution de l’erreur
quadratique moyenne pour la méthode OSEM3D (Figure 7-9) avec correction d’atténuation
symétrique et asymétrique, en précision 16 bits et 32 bits, au fil des itérations.
3D
Erreur quadratique normalisée
1
0.9
0.8
0.7
0.6
Pas de correction 16bits
0.5
Correction sym 16bits
0.4
Correction asym 16bits
Pas de correction 32bits
0.3
Correction sym 32bits
0.2
Correction asym 32bits
0.1
0
0
10
20
30
40
50
60
Nombre d'itérations
Figure 7-9 Evolution de l’erreur avec les itérations en OSEM3D+AC selon le mode
d’atténuation avec la carte d’atténuation exacte sur le fantôme NCAT.
7.1.5. Comparaison OSEM GPU/CPU
Il est bien sûr souhaitable d’effectuer la comparaison entre les versions CPU et GPU, même
si théoriquement la version GPU 32 bits et la version CPU devrait donner exactement les mêmes
résultats puisqu’ils ont tous les deux la même précision.
La Figure 7-10 compare la même méthode OSEM3D avec correction d’atténuation pour les
versions GPU 16 bits, GPU 32 bits, et CPU (32 bits). On ne voit pas de différences importantes
entre les versions. La version GPU 16 bits va s’éloigner du volume de référence au bout d’un grand
118
nombre d’itérations. Les versions 32bits GPU et CPU vont rester proches, toutefois les valeurs ne
seront pas rigoureusement identiques. Il faut penser que même si l’on utilise la même méthode et la
même précision nous avons deux implémentations différentes, sur GPU les opérateurs de rotation et
d’interpolation sont câblés dans la carte, alors que sur CPU nous les avons programmés nousmêmes, l’instabilité numérique même minime va entraîner une différence sur les résultats lorsque
un très grand nombre d’opérations seront effectuées.
Erreur quadratique normalisée
1
0.9
0.8
0.7
0.6
0.5
CPU
0.4
GPU 16bits
0.3
GPU 32bits
0.2
0.1
0
0
10
20
30
40
50
60
Nombre d'itérations
Figure 7-10 Evolution de l’erreur avec les itérations en OSEM3D+AC avec correction
d’atténuation pour les versions CPU et GPU sur le fantôme NCAT.
119
7.2. TEMPS DE CALCULS
Les temps de calculs suivant on été obtenus sur un PC DELL XPS équipé pour le CPU avec
un processeur Intel Core 2 Duo E6700 - 2.66 GHz et pour le GPU sur une NVidia GeForce
7950GX2 et une GeForce GTX 280.
7.2.1. Temps de calculs sur la 7950GX2
Sortie en 2006, c’est avec cette carte que la plus grosse partie de nos travaux a été réalisée.
CPU
GPU 32 bits
GPU 16 bits
OSEM1D
4 min
23 min
12 sec
OSEM3D
20 min
24 min
30 sec
OSEM3D + AC
23 min
50 min
1 min 47
OSEM3D +aAC
22 min
37 min
33 sec
Tableau 7-1 Temps de calculs sur 7950GX2 pour 8 itérations et 5 sous-ensembles : Cerveau
1283 120 projections.
CPU
GPU 32 bits
GPU 16 bits
OSEM1D
8 sec
30 sec
3 sec
OSEM3D
18 sec
30 sec
4 sec
OSEM3D + AC
25 sec
88 sec
10 sec
OSEM3D +aAC
25 sec
44 sec
4 sec
Tableau 7-2 Temps de calculs sur 7950GX2 pour 8 itérations et 5 sous-ensembles : Cœur
643 30 projections.
Le Tableau 7-1 et le Tableau 7-2 montrent un réel gain de temps entre la version CPU et la
version GPU 16 bits. La version GPU 32 bits, par contre, s’avère beaucoup plus lente, et on ne peut
plus parler d’accélération graphique.
120
Pour trouver l’origine de cette contre performance en 32 bits. Il suffit de désactiver
l’interpolation linéaire, utilisée lors de la rotation du volume dans les opérateurs de projection et de
rétroprojection. On la remplace par une interpolation au plus proche voisin (GL_LINEAR à
GL_NEAREST en OpenGL). Dans le cas d’une reconstruction OSEM3D d’un volume 128 3 à partir
de 120 projections. On passe à 25 secondes en 16 bits (au lieu de 30sec) à 40 sec en 32 bits (au lieu
de 24min). Ce qui signifie que l’interpolation linéaire représente 17% du temps de calcul en 16 bits
et 97% en 32 bits.
La correction d’atténuation, dans sa version symétrique, alors qu’elle n’a qu’un effet
minime sur le temps de calcul CPU, augmente considérablement le temps de calcul sur GPU. La
raison est la nécessité de créer un volume de normalisation au départ et la création de textures de
coefficients pour la projection et la rétroprojection à chaque itération. La version asymétrique
comme on pouvait s’y attendre, du fait qu’il n’y a pas besoin de calculer les coefficients pour la
rétroprojection, ni de créer un volume de normalisation prend beaucoup moins de temps et se
rapproche des temps sans correction.
CPU
GPU 16bits
Facteur d’accélération
643, 30 proj.
18 sec
4 sec
4.5
643, 60 proj.
56 sec
5.5 sec
10
1283, 120 proj.
20 min
28 sec
43
2563, 240 proj.
13 heures
10 min
80
Tableau 7-3 Facteur d’accélération sur 7950GX2 pour OSEM3D 8 itérations et 5 sousensembles en fonction de la taille des données
Sur le Tableau 7-3 on observe que le facteur d’accélération augmente avec la taille des
données, ce qui suit la logique de parallélisme des GPU.
La mesure des temps de calcul sur la version GPU dépend aussi du CPU qui contrôle le tout.
Elle dépend également de la version des pilotes de la carte graphique, on peut en effet observer des
variations de quelques secondes entre deux versions pour les volumes en 1283, et la version du
pilote la plus récente n’est pas forcement la meilleure.
121
Temps GPU 16bits Temps CPU
Projection 1D
0.66 s
6s
Projection 3D
2s
80 s
Projection 3D + AC
2.5 s
86 s
Rétroprojection 1D
0.20 s
5s
Rétroprojection 3D
1.2 s
80 s
Rétroprojection 3D + AC
10 s
80 s
Division projections
0.03 s
0.025 s
Multiplication volumes
0.01 s
0.01 s
Tableau 7-4 Temps pris par chacun des opérateurs sur 7950GX2 pour une itération EM 3D
sur un volume 1283, 120 projections.
On s’aperçoit sur le Tableau 7-4 que les opérateurs autres que ceux de projection et de
rétroprojection représentent un temps négligeable dans l’algorithme. Pour cette raison dans le
tableau suivant les pourcentages pour la projection et rétroprojection seront arrondis pour faire un
total de 100%.
Projection GPU
Rétroprojection GPU
OSEM 1D
77%
23%
OSEM 3D
62.5%
37.5%
OSEM 3D + aAC
67.5 %
32.5 %
OSEM 3D + AC
20 %
80 %
Tableau 7-5 Proportion du temps de calcul total pris par les opérateurs en fonction du type de
reconstruction sur GPU.
Sur CPU, la proportion de temps pris par chaque opérateur, projection ou rétroprojection,
est toujours autour 50%.
Sur GPU du fait de l’implémentation spécifique de chacun d’entre eux, on constate
clairement que l’opérateur le plus lent est le projecteur, sauf dans le cas où le rétroprojecteur prend
en compte l’atténuation, ce qui explique la rapidité de la version asymétrique de la correction
122
d’atténuation par rapport à la version symétrique. Cela s’explique très bien du fait que l’épandage
qui est normalement très rapide, se retrouve contrarié lorsqu’il est nécessaire de calculer la coupe
des e-dμl (Section 6.1.2.3) pour chaque profondeur.
7.2.2. Temps de calculs sur la GTX 280
Cette carte comporte une nouvelle génération de processeur graphique. Elle est sortie en
2008 et n’a été testée que vers la fin de cette thèse. Nous avons donc mesuré les temps de la même
manière que pour la précédente carte.
CPU
GPU 32 bits
GPU 16 bits
OSEM1D
4 min
9 sec
8 sec
OSEM3D
20 min
13 sec
11 sec
OSEM3D + AC
23 min
66 sec
63 sec
OSEM3D +aAC
22 min
19 sec
17 sec
Tableau 7-6 Temps de calculs sur GTX 280 pour 8 itérations et 5 sous-ensembles : Cerveau
1283 120 projections.
CPU
GPU 32 bits
GPU 16 bits
OSEM1D
8 sec
2 sec
2 sec
OSEM3D
18 sec
3 sec
3 sec
OSEM3D + AC
25 sec
8 sec
8 sec
OSEM3D +aAC
25 sec
4 sec
4 sec
Tableau 7-7 Temps de calculs sur GTX 280 pour 8 itérations et 5 sous-ensembles : Cœur
643 30 projections.
Le choix de la précision entre 16 bits et 32 bits était une problématique importante pour les
cartes des générations précédentes comme la 7950GTX, qui nous avait amenés à faire le choix de la
précision 16 bits pour profiter pleinement de l’accélération graphique tout en ayant une précision
suffisante. Le Tableau 7-6 et le Tableau 7-7 montrent qu’avec la GTX 280 cette problématique a
123
disparue et que l’utilisation de la précision 32 bits, même si elle n’apporte pas un gain de qualité
particulièrement notable sur la reconstruction, peut être maintenant utilisée sans qu’il n’y ait une
perte notable de rapidité d’exécution de l’algorithme.
CPU
GPU
Facteur
32bits
d’accélération
643, 30 proj.
18 sec
3 sec
6
643, 60 proj.
56 sec
5 sec
11
1283, 120 proj.
20 min
11 sec
109
2563, 240 proj.
13 heures
3 min 17
sec
237
Tableau 7-8 Facteur d’accélération sur GTX 280 pour OSEM3D 8 itérations et 5 sousensembles en fonction de la taille des données.
7.3. SIMULATEUR DE MONTE CARLO
La simulation de Monte Carlo a été testée pour le calcul des projections du fantôme de cœur
NCAT, en prenant en compte le rayonnement diffusé, l’atténuation et la résolution collimateur. Le
fantôme contenait une activité de 815 268 photons primaires à traiter avec la carte des coefficients
d’atténuation associée. La précision est nécessairement en 32 bits, car si on se contente de 16 des
artefacts apparaissent nettement dans les projections simulées.
Sur CPU il faut 5 secondes pour tous les traiter, alors que sur GPU il faut 20 minutes.
La contre-performance du GPU s’explique assez bien. Comme on traite les photons en
parallèle on est obligé d’itérer sur toute la texture tant que la plus grande distance possible, la
diagonale du cube, n’est pas parcourue. Cela entraîne que des photons qui ont déjà atteint les bords
de l’image ou qui sont détruits continuent d’être traités, alors que sur CPU ils seraient abandonnés.
Ceci montre que le parallélisme du GPU est délicat à manipuler et ne s’adapte pas toujours
au problème pour provoquer l’accélération souhaitée.
Au vu de ces résultats, nous avons donc abandonné l’idée d’accélérer la méthode de Monte Carlo
par la carte graphique.
124
8. Résultats correction d’atténuation
à partir des données d’émission
Dans ce chapitre nous présentons nos résultats dans l’étude de la correction d’atténuation
sans source de transmission, uniquement à partir des données d’émission. Rappelons que l’objectif
de ce travail est de proposer une méthode de correction automatique de l’atténuation en imagerie
cardiaque. Le problème se résume à chercher deux fois plus d’inconnues que dans le cas d’une
reconstruction classique, à savoir à la fois le volume d’activité et le volume des coefficients
d’atténuation, toujours à partir des mêmes données TEMP d’émission.
Dans un premier temps, nous présentons les résultats obtenus en simulation, et dans un
deuxième temps sur des données cliniques de patients.
8.1. ETUDE EN SIMULATION
Reconstruire le volume de l’activité en connaissant au préalable la carte d’atténuation a fait
l’objet du chapitre précédent. Dans ce paragraphe, nous nous plaçons d’abord dans le cas, irréaliste,
où l’on chercherait à reconstruire la carte d’atténuation alors que l’on connaîtrait l’activité. Il s’agit
bien sûr d’un problème non conventionnel, mais qui d’un point de vue mathématique permet de
tester la capacité respectives des méthodes OSEMA et par optimisation KNITRO à construire une
carte d’atténuation correcte.
Ensuite nous présentons les résultats obtenus en simulation avec reconstruction alternée de
l’activité et de l’atténuation sur fantôme NCAT, en acquisition sur 360° et 180°.
8.1.1. Atténuation seule inconnue
Nous avons supposé deux scénarios pour la répartition de l’activité connue. Premièrement, que
l’activité était uniformément répartie dans le corps, deuxièmement que l’activité était répartie de
manière plus réaliste.
8.1.1.1. Activité uniforme
On a donc supposé une activité uniforme dans les contours du fantôme et on l’a projetée
avec atténuation sur 360° et sans rajout de bruit. Ensuite on ne reconstruit que l’atténuation en
utilisant le volume d’émission connu.
KNITRO et OSEMA donnent de bons résultats (Figure 8-1), KNITRO donnant un résultat
vraiment très proche de la carte d’origine.
125
KNITRO
OSEMA
Atténuation seule
Figure 8-1 Atténuation reconstruites sur fantôme NCAT à partir de projections 360° sans
bruit avec activité uniforme.
8.1.1.2. Activité réaliste
Cette fois, on prend une activité plus réaliste (Figure 8-2), et on reconstruit l’atténuation
uniquement. KNITRO se révèle moins performant pour trouver la solution, le phénomène de crosstalk apparaissant nettement, alors qu’OSEMA donne quasiment le même résultat.
KNITRO
OSEMA
Atténuation seule
Figure 8-2 Atténuation reconstruite sur fantôme NCAT à partir de projections 360° sans
bruit.
126
8.1.2. Reconstruction simultanée activité et atténuation
8.1.2.1. Acquisition sur 360° sans bruit
On reprend les projections à 360° sans bruit générées précédemment et cette fois on
optimise simultanément l’activité et l’atténuation.
La version KNITRO montre ses limites et la carte d’atténuation ne dévie pas du point initial,
sauf dans de rares cas très bien choisis. On ne peut donc obtenir de résultats satisfaisants avec cette
méthode pour la reconstruction simultanée. C’est pourquoi nous parlerons plus que d’OSEMA dans
les sections suivantes.
Activité
Atténuation
Figure 8-3 Atténuation et émission reconstruite sur fantôme NCAT à partir de projections
360° sans bruit avec OSEM3DA.
Sur les reconstructions (Figure 8-3) on remarque l’apparition du cross-talk avec sous
évaluation de l’atténuation dans les zones de forte activité. On compare ensuite la reconstruction
selon différents modes (Figure 8-4). On voit que sans correction la pointe de la paroi inférieure est
atténuée par le diaphragme. Ceci est en grande partie corrigé par la correction automatique à partir
des données de l’émission seule. La correction avec la carte d’atténuation connue donnant tout de
même des résultats plus proches de la vraie activité.
127
OSEM
OSEMA
OSEM avec vraie carte
d’atténuation
Figure 8-4 Reconstruction émission sur fantôme NCAT à partir de projections 360° sans
bruit avec Bull’s Eye.
8.1.2.2. Acquisition sur 180° avec bruit poissonnien
On projette maintenant le fantôme dans des conditions plus réalistes à savoir en 180° avec
rajout de bruit poissonnien. Cette fois la différence entre correction automatique et avec la vraie
carte se fait davantage sentir, même si malgré tout la paroi inférieure est nettement rehaussée par
rapport à la reconstruction sans correction.
OSEM
OSEMA
OSEM avec vraie carte
d’atténuation
Figure 8-5 Reconstruction émission sur fantôme NCAT à partir de projections 180° avec
bruit avec Bull’s Eye.
128
8.2. ETUDE SUR PATIENTS
Nous présentons ici les résultats obtenus sur patients. Deux exemples sont donnés concernant
respectivement l’atténuation diaphragmatique et l’atténuation mammaire, puis une étude
préliminaire sur quelques sujets.
8.2.1. Exemple d’atténuation diaphragmatique
Pour le seul patient dont nous disposions d’une acquisition TEMP/CT avec artefact
d’atténuation diaphragmatique en TEMP non corrigée, nous avons obtenu un résultat assez
similaire à celui avec le fantôme : la correction automatique donne un résultat intermédiaire entre la
reconstruction sans correction et la reconstruction avec une carte d’atténuation tirée du scanner CT.
OSEM
OSEMA
OSEM avec Scanner
Figure 8-6 Reconstruction cardiaque dans le cas d’une atténuation diaphragmatique.
129
8.2.2. Exemple d’atténuation mammaire
Nous présentons ci-dessous un exemple d’atténuation mammaire. Nous n’avions pas
malheureusement de scanner pour ce patient. On ne peut donc avoir qu’une suspicion d’atténuation
mammaire. Toutefois, ce type d’atténuation est plus facilement repérable visuellement en mode
ciné des projections que les atténuations diaphragmatiques.
On montre que dans ce cas, la paroi antérieure est rehaussée et le résultat semble meilleur
qu’avec une correction uniforme sur un contour.
OSEM
OSEM avec correction uniforme
sur un contour
OSEMA
Figure 8-7 Reconstruction cardiaque dans le cas d’une atténuation mammaire.
130
8.2.3. Etude des Bull’s Eyes d’une série de patients référencés
Rappelons que nous disposions d’une série de 33 patients classés en 4 catégories :




normal avec artefact d’atténuation diaphragmatique,
normal avec artefact d’atténuation mammaire
normal sans artefact
anormal avec hypofixation inférieure
Pour chacun de ces patients, nous avons effectué une reconstruction avec OSEM3D et
OSEM3DA, puis mesuré sur les images Bull’s Eye la différence haut-bas (antérieur-inférieur) pour
déceler une anomalie de fixation.

Avec artefact d’atténuation diaphragmatique supposé :
Différence Haut-Bas
Différence Haut-Bas
Différence
OSEM3D
OSEM3DA
OSEM3DA- OSEM3D
Patient 0
10%
16%
6%
Patient 1
10%
12%
2%
Patient 2
12%
12%
0%
Patient 3
12%
8%
-4%
Patient 4
4%
2%
-2%
Patient 5
6%
0%
-6%
Patient 6
14%
12%
-2%
Patient 7
10%
8%
-2%
Moyenne
9.75%
8.75%
-1%
Tableau 8-1 Proportion de coups par rapport au total dans les Bull’s Eyes avec OSEM3D et
OSEM3DA sur des examens avec atténuation diaphragmatique supposée.
OSEM3D
OSEM3DA
Figure 8-8 Bull’s Eyes moyens sur 8 sujets avec atténuation diaphragmatique supposée.
131
Théoriquement la correction d’atténuation diaphragmatique doit rehausser la partie
inférieure, par conséquent la différence haut-bas doit diminuer avec la correction d’atténuation. Par
conséquent les valeurs de la troisième colonne du Tableau 8-1 devraient être négatives. On
remarque que sur 3 car sur 8, il n’y a pas de correction ou que celle-ci part dans le mauvais sens.

Avec artefact d’atténuation mammaire supposé :
Différence Haut-Bas
Différence Haut-Bas
Différence OSEM3DA-
OSEM3D
OSEM3DA
OSEM3D
Patient 8
-8%
2%
10%
Patient 9
-10%
-6%
4%
Patient 10
-4%
0%
4%
Patient 11
-4%
2%
6%
Patient 12
-8%
-2%
6%
Patient 13
-4%
0%
4%
Patient 14
-8%
-8%
0%
Patient 15
-2%
-4%
-2%
Patient 16
0%
2%
2%
Patient 17
-10%
-4%
6%
Moyenne
-5.8%
-1.8%
4%
Tableau 8-2 Proportion de coups par rapport au total dans les Bull’s Eyes avec OSEM3D et
OSEM3DA sur des examens avec atténuation mammaire supposée.
OSEM3D
OSEM3DA
Figure 8-9 Bull’s Eyes moyens sur 10 sujets avec atténuation mammaire supposée.
Ici nous sommes dans le cas contraire de l’atténuation diaphragmatique les valeurs de la
troisième colonne du Tableau 8-2 doivent être positives. On remarque que sur les 10 cas on a une
mauvaise correction dans 2 cas.
132

Examen normal supposé :
Différence Haut-Bas
Différence Haut-Bas
Différence OSEM3DA-
OSEM3D
OSEM3DA
OSEM3D
Patient 18
-2%
2%
4%
Patient 19
0%
-2%
-2%
Patient 20
0%
4%
4%
Patient 21
-2%
2%
4%
Patient 22
2%
2%
0%
Patient 23
4%
4%
0%
Patient 24
-4%
-4%
0%
Patient 25
-2%
6%
8%
Patient 26
4%
4%
0%
Moyenne
0%
2%
2%
Tableau 8-3 Proportion de coups par rapport au total dans les Bull’s Eyes avec OSEM3D et
OSEM3DA sur des examens considérés normaux.
OSEM3DA
OSEM3D
Figure 8-10 Bull’s Eyes moyens sur 9 sujets normaux.
On observe des variations dans certains cas, la plupart concernant des rehaussements de la
paroi supérieure.
133

Avec hypofixation inférieure supposée :
Différence Haut-Bas
Différence Haut-Bas
Différence
OSEM3D
OSEM3DA
OSEM3DA- OSEM3D
Patient 27
10%
8%
-2%
Patient 28
6%
4%
-2%
Patient 29
2%
2%
0%
Patient 30
-2%
-2%
0%
Patient 31
18%
16%
-2%
Patient 32
0%
-2%
-2%
Moyenne
5%
4%
-1%
Tableau 8-4 Proportion de coups par rapport au total dans les Bull’s Eyes avec OSEM3D et
OSEM3DA sur des examens avec hypofixation inférieure supposée.
OSEM3D
OSEM3DA
Figure 8-11 Bull’s Eyes moyens sur 6 sujets avec hypofixation inférieure supposée.
Ces résultats montrent qu’il est difficile de différencier un cas d’atténuation
diaphragmatique d’une véritable hypofixation inférieure.
Au total, cette étude très préliminaire sur cette série de patients ne permet pas de montrer
que la résolution simultanée de l’émission et de l’atténuation par OSEM3DA apporte une aide
significative dans le diagnostic par rapport à OSEM3D pour déceler les artefacts d’atténuation
diaphragmatiques. Pour les artefacts d’atténuation mammaire, les résultats semblent plus
encourageants, même si dans un certain nombre de cas la correction est inefficace.
134
Conclusion
Les algorithmes de reconstruction itératifs sont reconnus comme des méthodes de
reconstruction efficaces en TEMP, mais les temps de calculs peuvent être importants lorsqu’ils sont
effectués sur CPU. Les GPUs, processeurs dédiés au rendu graphique utilisés dans les cartes vidéo,
ne cessent de gagner en puissance. Les dernières générations ayant beaucoup gagné en flexibilité
d’utilisation, on peut aujourd’hui les utiliser pour des calculs plus généraux éloignés du rendu
graphique. L’accélération des méthodes de reconstructions comporte un réel intérêt non seulement
du point du vue de l’utilisation en routine clinique, mais aussi du point de vue de la recherche car il
permet de faire des études sur un grand nombre de sujets en peu de temps et en essayant de
nombreux paramètres différents.
Le but de cette thèse était l’amélioration des méthodes de reconstruction sur deux axes.
Premièrement, l’accélération de la vitesse d’exécution des algorithmes itératifs comme OSEM avec
les corrections des facteurs de dégradation physique en particulier la perte de résolution avec la
profondeur et la correction d’atténuation. Deuxièmement la correction d’atténuation à partir des
données d’émission seules.
Pour l’accélération de OSEM3D, l’objectif est atteint. Notre programme utilisant le GPU
sur une carte récente est environ 100 fois plus rapide que la version CPU, pour des données de
taille classique (volume 1283, 120 projections de 128x128 pixels) ; ce facteur d’accélération
augmentant avec la taille des données. Pour OSEM3D+AC, c'est-à-dire avec correction
d’atténuation asymétrique à partir d’une carte connue, le facteur d’accélération est d’environ 70.
Au sujet des méthodes itératives non régularisées que nous avons testées, OSEM a montré
sa supériorité par rapport au gradient conjugué. La correction de la perte de résolution avec la
profondeur a montré son efficacité. On observe que le nombre d’itérations au bout duquel on arrête
l’algorithme, ainsi que le nombre de sous-ensembles choisis, a beaucoup moins d’incidence sur la
reconstruction que dans la version sans correction. Enfin concernant la précision des opérations en
virgule flottante, dans un premier temps nous avions conclu qu’une précision sur 16 bits était
suffisante car 32 bits étaient beaucoup trop lents et faisaient perdre tout l’intérêt de l’accélération
en étant plus lents que le CPU, tout en offrant une qualité de reconstruction suffisante. Mais la
dernière génération de cartes testée a montré que la perte de temps est aujourd’hui négligeable et
donc que cette problématique disparaît avec l’évolution des technologies.
135
L’étude de faisabilité de la programmation GPU pour la réalisation d’un simulateur de
Monte Caro s’est avérée décevante. Cela montre clairement que la programmation graphique ne
peut pas s’appliquer de manière performante à tous les problèmes. Cependant il serait intéressant,
dans un autre travail, de chercher une méthode de prise en compte de la diffusion Compton qui
puisse bénéficier de l’accélération graphique.
La réalisation préalable d’un programme d’accélération par le GPU a été très utile pour la
correction d’atténuation à partir de données de l’émission seule, car elle a permis de réaliser en un
temps raisonnable tous les tests nécessaires à sa mise au point.
En simulation, la correction d’atténuation à partir des données de l’émission seule utilisant
la méthode OSEMA a donné des résultats prometteurs. La méthode à base d’optimiseur s’est
révélée peu robuste.
L’étude préliminaire sur une série de patients n’a pas permis de montrer clairement
qu’OSEM3DA apporte un gain diagnostique par rapport à OSEM3D.
Dans le cas où l’on suspectait une atténuation mammaire, on montre bien dans la plupart des
cas un rehaussement de la paroi antérieure, les résultats avec OSEM3DA étant meilleurs qu’avec
OSEM3D avec correction uniforme, mais il faudrait néanmoins disposer de davantage de données
TEMP-CT pour valider ce point.
Dans le cas de l’atténuation diaphragmatique, nous avons obtenu de bons résultats sur un
exemple dont nous disposions du scanner du patient, ce qui est prometteur mais bien insuffisant
pour valider la méthode. Les résultats obtenus sur les sujets diagnostiqués comme atténuation
diaphragmatique ont montré des contre-performances qui ne nous permettent pas de les dissocier
des cas d’hypofixation alors que c’était un des buts de l’algorithme.
Pour les perspectives, l’évolution des GPUs continue à grande vitesse. Au début de la thèse
les reconstructions devaient se dérouler avec une précision de 16 bits si on voulait garder
l’accélération graphique, à la fin, les dernières cartes sur lesquelles le programme a été testé
supportaient la simple précision (32 bits) avec une perte de temps minime de quelques secondes.
Les dernières cartes sorties sur le marché supportent déjà la double précision (64 bits).
L’augmentation de puissance va donc réduire les temps d’exécution, et on peut penser que dans les
prochaines années des algorithmes itératifs s’exécuteront dans des temps négligeables. Cela ouvre
la voie à l’ajout de nouvelles corrections qui n’étaient autrefois pas rajoutées au processus de
reconstruction du fait de leur lourdeur.
136
Pour la correction d’atténuation à partir des données de l’émission seule, de nombreuses
voies sont à explorer pour améliorer la méthode. Parmi elles, l’ajout d’à priori anatomiques ou
l’utilisation de cartes déformables, ou encore la modification des algorithmes existants pour réduire
de manière empirique le cross-talk. Enfin, l’effet du rayonnement diffusé sur la correction
d’atténuation mériterait également d’être étudié.
137
Bibliographie
[1] M. S. Warren et al., "Pentium Pro inside: I. a treecode at 430 Gigaflops on ASCI Red, II.
Price/performance of $50/Mflop on Loki and Hyglac," Supercomputing '97, Los Alamitos,
IEEE Comp. Soc, 1997.
[2] J. Lengyel, M. Reichert, B. R. Donald, and D. P. Greenberg, "Real-time robot motion
planning using rasterizing computer graphics hardware," In Proc. SIGGRAPH, pp. 327-335,
1990.
[3] B. Cabral, N. Cam, and J. Foran, "Accelerated volume rendering and tomographic
reconstruction using texture mapping hardware," VVS '94: Proceedings of the 1994
symposium on Volume visualization, pp. 91-98, 1994.
[4] W. Mark, R. Glanville, K. Akeley, and M. Kilgard, "Cg: A System for Programming
Graphics Hardware in a C-Like Language," Proc. SIGGRAPH’03, p. 896–907, 2003.
[5] K. Gray, The Microsoft DirectX 9 Programmable Graphics Pipeline.: Microsoft Press, 2003.
[6] J. Kessenich, D. Baldwin, and R. Rost, The OpenGL Shading Language.: 3Dlabs, 2006.
[7] D. Göddeke. (2005) GPGPU:Basic Math Tutorial. [Online]. http://www.mathematik.unidortmund.de/~goeddeke/gpgpu
[8] W. J. Dally et al., "Merrimac: Supercomputing with streams," Super Computing (SC'03
Proceedings), 2003.
[9] I. Buck et al., "Brook for GPUs: stream computing on graphics hardware.," ACM
Transactions on Graphics, vol. 23, pp. 777-786, 2004.
[10] T. Jansen, "GPU++: An Embedded GPU Development System for General-Purpose
Computations," University of Munich, Thèse 2007.
[11] H. O. Anger, "A new instrument for mapping gamma-ray emitters.," Biology and Medicine
Quarterly Report UCRL, 1957.
[12] P. Gantet, J. P. Esquerré, B. Danet, and R. Guiraud, "Les collimateurs des gamma-caméras et
leurs performances," Revue de l’Acomen, pp. 175-181, 1996.
[13] H. O. Anger, "Scintillation camera with multichannel collimators," J. Nucl. Med., vol. 5, pp.
515-531, 1964.
[14] R. N. Beck, "Collimation of gamma rays," Gottschalk A, Beck RN (eds) Fundamental
problems in scanning, pp. 71-92, 1968.
138
[15] R. N. Beck and L. D. Redtung, "Collimator design using ray-tracing techniques," IEEE Trans
Nucl Sci, vol. 32, pp. 865-869, 1985.
[16] P. Gantet, J. P. Esquerré, B. Danet, and R. Guiraud, "Une méthode d'étude par simulation des
collimateurs des caméras à scintillation," Physics in Medicine & Biology, vol. 35, no. 659669, 1990.
[17] Y. K. Dewaraja, M. Ljungberg, and K. F. Koral, "Characterization of Scatter and Penetration
Using Monte Carlo Simulation in 131I Imaging," The Journal of Nuclear Medicine, vol. 41,
no. 1, pp. 123-130.
[18] D. Autret, A. Bitar, L. Ferrer, A. Lisbona, and M. Bardies, "Monte Carlo Modeling of
Gamma Cameras for I-131 Imaging in Targeted Radiotherapy," Cancer Biotherapy &
Radiopharmaceuticals, vol. 20, no. 1, pp. 77-84, 2005.
[19] C. E. Metz, F. B. Atkins, and R. N. Beck, "The geometric transfer function component for
scintillation camera collimators with straight parallel holes," Phys. Med. Biol., vol. 25, no. 6,
pp. 1059-1070, 1980.
[20] R. N. Beck, "Nomenclature for Fourier transforms of spread functions of imaging systems
used in nuclear medicine.," J Nucl Med., vol. 13, no. 9, pp. 704-705, 1972.
[21] B. Tsui and G. Gullberg, "The geometric transfer function for cone and fan beam
collimators.," Physics in Medicine and Biology , vol. 35, no. 1, pp. 81-93, 1990.
[22] A. R. Formiconi, "Geometrical response of multihole collimators," Phys. Med. Biol., vol. 43,
pp. 3359-3379, 1998.
[23] R. de Lagrevol, P. Gantet, J. P. Esquerré, B. Danet, and R. Guiraud, "Caractérisation de la
réponse des collimateurs à trous parallèles hexagonaux des caméras à scintillation
Characterization of the response of hexagonal parallel-hole collimators of scintillation
cameras," Phys. Med. Biol., vol. 41, pp. 851-863, 1996.
[24] O. Klein and T. Nishina, "Über die Streuung von Strahlung durch freie Elektronen nach der
neuen relativistischen Quantendynamik von Dirac," Zeitschrift für Physik A Hadrons and
Nuclei, vol. 52, pp. 853-868, 1929.
[25] J. C. Butcher and H. Messel, "Electron Number Distribution in Electron-Photon Showers,"
Phys. Rev., vol. 112, pp. 2096-2106, 1958.
[26] R. J. Jaszczak, C. E. Floyd, and R. E. Coleman, "Scatter compensation techniques for
SPECT," IEEE Trans Nucl Sci, vol. 32, pp. 786-793, 1985.
139
[27] I. Buvat et al., "Effets de la diffusion et de méthodes de correction simples d’emploi en
SPECT," Revue de l’Acomen, vol. 4, pp. 130-140, 1998.
[28] K. Ogawa, Y. Harata, A. Kubo, and S. Hashimoto, "A practical method for positiondependent Compton scattered correction in single photon emission CT," IEEE Trans. Nucl.
Imag., vol. 10, pp. 408-412, 1991.
[29] P. Boccacci, P. Bonetto, P. Calvini, and A. R. Formiconi, "A simple model for the efficient
correction of collimator blur in 3D SPECT imaging," Inverse Problems, vol. 15, pp. 907-930,
1999.
[30] A. Formiconi, A. Passeri, and P. Calvini, "Theoretical determination of the collimator
geometrical transfer function for the reconstruction of SPECT data," IEEE Transactions on
Nuclear Science, vol. 46, no. 4, pp. 1075-1080, 1999.
[31] R. M. Lewitt, P. R. Edholm, and W. Xia, "Fourier method for correction of depth-dependent
collimator blurring," Proceedings of the SPIE 1989, vol. 1092, pp. 232-243, 1989.
[32] W. Xia, R. Lewitt, and P. Edholm, "Fourier correction for spatially variant collimator
blurring in SPECT," IEEE Transactions on Medical, vol. 14, pp. 100-115, 1995.
[33] V. Kohli, M. King, S. Glick, and T.-S. Pan, "Comparison of frequency-distance relationship
and Gaussian-diffusion-based methods of compensation for distance-dependent spatial
resolution in SPECT imaging ," Physics in Medicine and Biology, vol. 43, no. 4, pp. 10251037, 1998.
[34] B. Tsui, H.-B. Hu, D. Gilland, and G. Gullberg, "Implementation of simultaneous attenuation
and detector response correction in SPECT," IEEE Transactions on Nuclear Science, vol. 35,
no. 1, pp. 778-783, 1988.
[35] A. Formiconi, A. Pupi, and A. Passeri, "Compensation of spatial system response in SPECT
with conjugate gradient reconstruction technique," Physics in medicine & biology, vol. 34,
no. 1, pp. 69-84, 1989.
[36] A. Kojima, M. Matsumoto, M. Takahashi, Y. Hirota, and H. Yoshida, "Effect of Spatial
Resolution on SPECT Quantification Values ," The Journal of Nuclear Medicine, vol. 30, no.
4, pp. 508-514.
[37] G. Boening, P. H. Pretorius, and M. A. King, "Study of relative quantification of Tc-99mwith
partial volume effect and spillover correction for SPECT oncology imaging," IEEE
Transactions on Nuclear Science, vol. 53, no. 3, pp. 1205-1212, 2006.
[38] M. Soret, P. M. Koulibaly, J. Darcourt, S. Hapdey, and I. Buvat, "Quantitative Accuracy of
140
Dopaminergic Neurotransmission Imaging with 123I SPECT ," Journal of Nuclear Medicine,
vol. 44, no. 7, pp. 1184-1193, 2003.
[39] C. Meltzer, P. Leal, S. Mayberg, N. Wagner, and J. Frost, "Correction of PET data for partial
volume effects in human cerebral cortex by MR imaging," Journal of computer assisted
tomography, vol. 14, no. 4, pp. 561-570, 1990.
[40] H. W. Mïller-Gärtner, A. A. Wilson, R. F. Dannals, H. N. Wagner, and J. J. Frost, "Imaging
muscarinic cholinergic receptors in human brain in vivo with SPECT, [123]4iododexetimide, and [123I]4-iodolevetimide," Journal of cerebral blood flow and
metabolism, vol. 12, no. 4, pp. 562-570, 1992.
[41] L. Itti, L. Chang, T. Ernst, and F. Mishkin, "Improved 3D correction for partial volume
effects in brain SPECT," Human Brain Mapping, vol. 5, no. 5, pp. 379-388, 1997.
[42] O. G. Rousset, Y. Ma, and A. C. Evans, "Correction for Partial Volume Effects in PET:
Principle and Validation ," The Journal of Nuclear Medicine, vol. 39, no. 5, pp. 904-911,
1998.
[43] P. Hannequin and J. Mas, "Statistical and heuristic image noise extraction (SHINE): a new
method for processing Poisson noise in scintigraphic images," Physics in Medicine and
Biology, vol. 47, pp. 4329-4344, 2002.
[44] P. Gantet et al., "Iterative three-dimensional expectation maximization restoration of single
photon emission computed tomography images: Application in striatal imaging," Medical
physics, vol. 33, no. 1, pp. 52-60, 2006.
[45] C. Majorel, P. Gantet, D. Gourion, P. Payoux, and J. Esquerré, "Modélisation de la réponse
du collimateur dans un algorithme de reconstruction OSEM en TEMP," Méd Nucl-Imag
Fonct Métabol, vol. 25, p. 253–296, 2001.
[46] D. Knuth, Art of Computer Programming, Volume 2: Seminumerical Algorithms (3rd
Edition).: Addison-Wesley Professional, 1997.
[47] J. Radon, "Uber die bestimmung von funktionen durch ihre integralwerte tangs gewisser
mannigfaltigkeiten, Bertichte Saechsiche Akad Wissenschaften," Math. Phys. Klass, vol. 69,
pp. 262-277, 1917.
[48] S. Matej and R. Lewitt, "3D-FRP: Direct Fourier Reconstruction with Fourier Reprojection
for Fully 3-D PET," IEEE Transactions on Nuclear Science, vol. 48, no. 4, pp. 1378-1385,
2001.
[49] F. Ben Bouallègue, J. Crouzet, and D. Mariano-Goulart, "Evaluation of a new gridding
141
method for fully 3D direct Fourier PET reconstruction based on a two-plane geometry,"
Computerized Medical Imaging and Graphics, vol. 32, no. 7, pp. 580-589, 2008.
[50] M. A. King, R. B. Schwinger, P. W. Doherty, and B. C. Penney, "Two-Dimensional Filtering
of SPECT Images using the Metz and Wiener Filters ," The Journal of Nuclear Medicine,
vol. 25, no. 11, pp. 1234-1240, 1984.
[51] P. Pretorius, M. King, S. Glick, T.-S. Pan, and D.-S. Luo, "Reducing the effect of nonstationary resolution on activityquantitation with the frequency distance relationship in
SPECT," in IEEE Nuclear Science Symposium and Medical Imaging Conference Record, San
Francisco, CA, , 1995, pp. 1302-1306.
[52] L. Chang, "A method for attenuation correction in radionuclide computed tomography,"
IEEE Trans. Nucl. Sci., vol. 25, pp. 638-643, 1978.
[53] S. Bellini, M. Piacentini, C. Cafforio, and F. Rocca, "Compensation of tissue absorption in
emission tomography," IEEE Transactions on Acoustics, Speech and Signal Processing, vol.
27, no. 3, pp. 213-218, 1979.
[54] T. L. Faber, M. H. Lewis, J. R. Corbett, and E. M. Stokely, "Attenuation Correction for
SPECT: An Evaluation of Hybrid Approaches," IEEE Transactions on Medical Imaging, vol.
3, no. 3, pp. 101-107, 1984.
[55] S. Manglos et al., "Non-isotropic attenuation in SPECT: phantom tests of quantitative effects
and compensation techniques," The Journal of Nuclear Medicine, no. 28, pp. 1584-1991,
1987.
[56] S. Manglos, R. Jaszczak, and C. Floyd, "Weighted back projection implemented with a nonuniform attenuation map for improved SPECT quantitation," IEEE Trans Nucl Sci, vol. NS35, pp. 625-628, 1988.
[57] B. M. W. Tsui et al., "Correction of Nonuniform Attenuation in Cardiac SPECT Imaging ,"
The Journal of Nuclear Medicine, vol. 30, no. 4, pp. 497-507, 1989.
[58] M. King, B. Tsui, T. Pan, S. Glick, and E. Soares, "Attenuation compensation for cardiac
single-photon emission computed tomographic imaging: Part 2. Attenuation compensation
algorithms," Journal of nuclear cardiology, vol. 3, no. 1, pp. 55-63, 1996.
[59] A. P. Dempster, N. M. Laird, and D. B. Rubin, "Maximum Likelihood from Incomplete Data
via the EM Algorithm," Journal of the Royal Statistical Society. Series B (Methodological),
vol. 39, pp. 1-38, 1977.
[60] L. A. Shepp and Y. Vardi, "Maximum likelihood reconstruction for emission tomography.,"
142
IEEE Trans Med Imaging, vol. MI-1, pp. 113-122, 1982.
[61] K. Lange and R. Carson, "EM reconstruction algorithms for emission and transmission
tomography," Journal of computer assisted tomography, vol. 8, pp. 306-316, 1984.
[62] T. Hebert and R. Leahy, "A generalized EM algorithm for 3-D Bayesian reconstruction
fromPoisson data using Gibbs priors," IEEE Transactions on Medical Imaging, vol. 8, no. 2,
pp. 194-202, 1989.
[63] T. J. Hebert and R. Leahy, "Statistic-based MAP image reconstruction from poisson data
using gibbs priors," IEEE Transactions on signal processing, vol. 40, no. 9, pp. 2290-2303,
1992.
[64] V. Panin, G. Zeng, and G. Gullberg, "Total Variation Regulated EM Algorithm," IEEE
Transactions on nuclear science, vol. 46, no. 6, pp. 2302-2210, 1999.
[65] J. Nuyts and J. Fessler, "A penalized-likelihood image reconstruction method for emission
tomography, compared to postsmoothed maximum-likelihood with matched spatial
resolution," IEEE Transactions on Medical Imaging, vol. 22, no. 9, pp. 1042-1052, 2003.
[66] N. Denisova, "Bayesian reconstruction in SPECT with entropy prior and iterative statistical
regularization," IEEE Transactions on Nuclear Science, vol. 51, no. 1, pp. 136-141, 2004.
[67] H. Hudson and R. Larkin, "Accelerated image reconstruction using ordered subsets of
projection data," Medical Imaging, IEEE Transactions on, vol. 13, pp. 601-609, 1994.
[68] C. Byrne, "Accelerating the EMML algorithm and related iterative algorithms by rescaled
block-iterative methods," Image Processing, IEEE Transactions on, vol. 7, pp. 100-109,
1998.
[69] C. Kamphuis, F. Beekman, and M. Viergever, "Accelerated SPECT reconstruction using OSEM with only two projections per subset," Nuclear Science Symposium and Medical Imaging
Conference Record, vol. 2, pp. 1193-1197, 1995.
[70] D. Lalush and B. Tsui, "A fast and stable maximum a posteriori conjugate gradient
reconstruction algorithm," Medical physics, vol. 22, pp. 1273-1284, 1995.
[71] R. H. Byrd, P. Lu, J. Nocedal, and C. Y. Zhu, "A Limited Memory Algorithm for Bound
Constrained Optimization," SIAM Journal on Scientific Computing, vol. 16, pp. 1190-1208,
1995.
[72] C. Zhu, R. H. Byrd, P. Lu, and J. Nocedal, "Algorithm 778: L-BFGS-B: Fortran subroutines
for large-scale bound-constrained optimization," ACM Trans. Math. Softw., vol. 23, pp. 550-
143
560, 1997.
[73] D. Gourion, "Correction d'atténuation à partir des seules données d'émission en TEMP : Un
problème inverse mal posé," Université Paul Sabatier, Toulouse III, Thèse 2002.
[74] G. Zeng, Y.-L. Hsieh, and G. Gullberg, "A rotating and warping projector/backprojector for
fan-beam and cone-beam iterative algorithm," IEEE Transactions on Nuclear Science, vol.
41, pp. 2807-2811, 1994.
[75] E. Di Bella, A. Barclay, R. Eisner, and R. Schafer, "A comparison of rotation-based methods
for iterative reconstruction algorithms," IEEE Transactions on Nuclear Science, vol. 43, pp.
3370-3376, 1996.
[76] K. Mueller and R. Yagel, "Use of graphics hardware to accelerate algebraic reconstruction
methods," in Proceedings 1999 SPIE Medical Imaging, 1999, pp. 615-625, n°3659.
[77] K. Chidlow and T. Möller, "Rapid emission tomography reconstruction," Volume Graphics,
pp. 15-26, 2003.
[78] F. Xu and K. Mueller, "Accelerating popular tomographic reconstruction algorithms on
commodity PC graphics hardware," Nuclear Science, IEEE Transactions on, vol. 52, pp. 654663, 2005.
[79] Z. Wang, G. Han, T. Li, and Z. Liang, "Speedup OS-EM Image Reconstruction by PC
Graphics Card Technologies for Quantitative SPECT with Varying Focal-Length Fan-Beam
Collimation," IEEE Transactions on Nuclear Science, vol. 52, pp. 1274-1280, 2005.
[80] W. P. Segars, "Development and Appication ot the new dynamic nurbs-based cardiac-torso
(NCAT) phantom," 2001.
[81] X. G. Xu, T. C. Chao, and A. Bozkurt, "VIP-Man : an image-based whole-body adult male
model constructed from color photographs of the Visible Human Project for multiparticle
Monte Carlo calculations," Health Phys, vol. 78, pp. 476-486, 2000.
[82] J.-P. Esquerre, F. J. Coca, S. J. Martinez, and R. F. Guiraud, "Prone Decubitus: A Solution to
Inferior Wall Attenuation in Thallium-201 Myocardial Tomography," J Nucl Med, vol. 30,
pp. 398-401, 1989.
[83] R. J. Jaszczak, L.-T. Chang, N. A. Stein, and F. E. Moore, "Whole-body single-photon
emission computed tomography using dual, large-field-of-view scintillation cameras,"
Physics in Medicine and Biology, vol. 24, pp. 1123-1143, 1979.
[84] R. Z. Stodilka, B. J. Kemp, F. S. Prato, and R. L. Nicholson, "Importance of Bone
144
Attenuation in Brain SPECT Quantification," J Nucl Med, vol. 39, pp. 190-197, 1998.
[85] A. Celler, D. Axen, D. Togane, and J. El-Khatib, "Investigation of scatter in SPECT
transmission studies," Nuclear Science, IEEE Transactions on, vol. 47, pp. 1251-1257, 2000.
[86] B. Tsui et al., "Cardiac SPECT reconstruction with truncated projections in different SPECT
system designs.," J. Nucl. Med., vol. 33, p. 831, 1992.
[87] E. P. Ficaro et al., "Simultaneous Transmission-Emission Thallium-201 Cardiac SPECT:
Effect of Attenuation Correction on Myocardial Tracer Distribution," J Nucl Med, vol. 36,
pp. 921-931, 1995.
[88] P. Pretorius, M. King, B. Tsui, K. LaCroix, and W. Xia., "A mathematical model of motion
of the heart for use in generating source and attenuation maps for simulating emission
imaging.," Med Phys, vol. 26, no. 11, p. 2323–2332, 1999.
[89] F. Natterer, "Computerized Tomography with Unknown Sources," SIAM Journal on Applied
Mathematics, vol. 43, pp. 1201-1212, 1983.
[90] A. Welch, R. Clack, F. Natterer, and G. T. Gullberg, "Toward Accurate Attenuation
Correction in SPECT Without Transmission Measurements," IEEE Trans. Med. Imaging,
vol. 16, pp. 532-541, 1997.
[91] D. Gourion, X. Hatchondo, P. Gantet, D. Noll, and J.-P. Esquerre, "Comparison of two
methods for SPECT attenuation correction without transmission measurements," Nuclear
Science Symposium Conference Record, 2001 IEEE, vol. 4, pp. 2183-2187, 2001.
[92] I. Laurette, R. Clackdoyle, A. Welch, F. Natterer, and G. Gullberg, "Comparison of three
applications of ConTraSPECT," Nuclear Science Symposium, 1998. Conference Record.
1998 IEEE, vol. 3, pp. 1824-1829, 1998.
[93] F. Natterer, "Determination of tissue attenuation in emission tomography of optically dense
media," Inverse Problems, vol. 9, pp. 731-736, 1993.
[94] R. Faghihi and L. Desbat, "Experiments on the DCC for SPECT and CT scanner data
registration," Nuclear Science Symposium Conference Record, 2001 IEEE, vol. 3, pp. 14371440, 2001.
[95] A. Bronnikov, "Approximate reconstruction of attenuation map in SPECT imaging," Nuclear
Science, IEEE Transactions on, vol. 42, pp. 1483-1488, 1995.
[96] A. V. Bronnikov, "Numerical solution of the identification problem for the attenuated Radon
transform," Inverse Problems, vol. 15, pp. 1315-1324, 1999.
145
[97] A. Bronnikov, "Reconstruction of attenuation map using discrete consistency conditions,"
Medical Imaging, IEEE Transactions on, vol. 19, pp. 451-462, 2000.
[98] H. Kudo and H. Nakamura, "A new approach to SPECT attenuation correction without
transmission measurements," Nuclear Science Symposium Conference Record, 2000 IEEE,
vol. 2, pp. 13/58-13/62, 2000.
[99] R. Novikov, "An inversion formula for the attenuated X-ray transformation," Arkiv för
Matematik, vol. 40, pp. 145-167, 2002.
[100] A. Hertle, "The identification problem for the constantly attenuated Radon transform,"
Mathematische Zeitschrift, vol. 197, pp. 13-19, 1988.
[101] F. Natterer, The mathematics of computerized tomography.: J. Wiley & Sons, 1986.
[102] Y. Censor, D. E. Gustafson, A. Lent, and H. Tuy, "A New Approach to the Emission
Computerized Tomography Problem: Simultaneous Calculation of Attenuation and Activity
Coefficients," Nuclear Science, IEEE Transactions on, vol. 26, pp. 2775-2779, 1979.
[103] V. Dicken, "Simultaneous activity and attenuation reconstruction in single photon emission
computerized tomography, a nonlinear ill-posed problem," Universität Postdam, Thèse 1998.
[104] V. Dicken, "Simultaneous activity and attenuation reconstruction in emission tomography,"
Inv. Prob., vol. 15, pp. 931-960, 1999.
[105] V. Y. Panin, G. L. Zeng, and G. T. Gullberg, "A method of attenuation map and emission
activity reconstruction from emission data," IEEE Transactions on Nuclear Science, vol. 48,
pp. 131-138, 2001.
[106] A. Krol et al., "An EM algorithm for estimating SPECT emission and transmission
parameters from emission data only," Medical Imaging, IEEE Transactions on, vol. 20, pp.
218-232, 2001.
[107] J. Nuyts et al., "Simultaneous maximum a posteriori reconstruction of attenuation and
activity distributions from emission sinograms," Medical Imaging, IEEE Transactions on,
vol. 18, pp. 393-403, 1999.
[108] D. Gourion and D. Noll, "The inverse problem of emission tomography," Inverse Problems,
vol. 18, pp. 1435-1460, 2002.
[109] J. Wallis, T. Miller, C. Lerner, and E. Kleerup, "Three-dimensional display in nuclear
medicine," Medical Imaging, IEEE Transactions on, vol. 8, no. 4, pp. 297-303, 1989.
146
Bibliographie personnelle en relation avec la thèse
Revues nationales
Pierre Payoux, Guillaume Viguié, Jean-Paul Esquerré, Pierre Gantet, Scintigraphie de perfusion et
scintigraphie de la neurotransmission dopaminergique présynaptique, le traitement des données,
Médecine Nucléaire, Volume 31, Issue 6, June 2007, Pages 314-319
Congrès internationaux avec comité de lecture et publication des actes
G. Viguié, P. Gantet, D. Noll, P. Payoux, P. Maréchal, J. P. Esquerré, Fast OSEM3D SPECT
reconstruction with GPU, Communication orale, European Association of Nuclear Medicine
Annual Congress, Copenhagen, october 2007
Congrès nationaux avec comité de lecture et publication des actes
G Viguié, P Gantet, D Noll, P Payoux, P Maréchal, JP Esquerré, La puissance graphique utilisée
dans les jeux vidéo au service de la reconstruction itérative OSEM3D en TEMP, Poster, Journées
de la Recherche en Imagerie Médicale, Dijon, septembre 2007
147
Annexe A.
Algorithme de calcul de la distribution angulaire des photons
Compton en fonction de leur énergie E0
0 
1
2  E0
1  - log( 0 )
1
2
 2 = (1- 02 )
rand() : générateur aléatoire uniforme entre 0 et 1
Faire
{
Si
1
 rand () alors
1   2
ε=exp(-1  rand())
Sinon
ε= ε 02 +(1-ε 02 )  rand()
onecost=
1 
  E0
sint2=onecost  (2-onecost)
greject=
1-  sin t 2
1  2
} tant que (greject< rand());
Angle obtenu : acos(1. – onecost);
148
Annexe B.
Algorithme du projecteur avec GPU
Pour chaque projection j d’angle θj
{
Initialisation de la texture qui contiendra la projection (TexProj[j])
à 0.
Pour chaque profondeur
{
Calcul de la tranche perpendiculaire à l’axe de projection pour
l’angle θj affichant la ligne se situant à la profondeur courante
de chaque texture 2D de TexVolume, résultat placé dans temp1.
Si Atténuation
{
Calcul de la tranche perpendiculaire à l’axe de projection
pour l’angle θj affichant la ligne se situant à la profondeur
courante de chaque texture 2D de TexVolumeAtn, résultat placé
dans atn.
}
Si FanBeam
{
Copie de temp1 dans temp2.
Zoom de temp2 correspondant à la profondeur affiché dans
temp1.
Si Atténuation
{
Copie de atn dans temp2.
Zoom de temp2 correspondant à la profondeur affiché dans
atn.
Application facteurs de distance en x à atn.
}
}
Si OSEM2D
149
{
Appliquer un fragment program de convolution 1D horizontal à
temp1 et placer le résultat dans temp2.
Copie de temp2 dans temp1.
}
Sinon si OSEM3D
{
Appliquer un fragment program de convolution 1D horizontal à
temp1 et placer le résultat dans temp2.
Appliquer un fragment program de convolution 1D vertical à
temp2 et placer le résultat dans temp1.
}
Si Atténuation
{
Utilisation d’un fragment program qui fait
(TexProj[j]+temp1*(1/tailleX))*atn
et place le résultat dans
TexProj[j].
}
Sinon
{
Utilisation d’un fragment program qui fait
TexProj[j]+temp1*(1/tailleX) et place le résultat dans
TexProj[j].
}
}
}
150
Annexe C.
Algorithme du rétroprojecteur avec GPU
Pour chaque coupe i
{
On initialise la coupe TexVolume[i] à 0.
Pour chaque projection j d’angle θj
{
Si OSEM1D
{
On
applique
coordonnées
la
texture
spéciales
TexProj[j]
qui
feront
sur
que
un
carré
c’est
la
avec
des
ligne
qui
correspond à la coupe qui va être épandue, on met le résultat
dans temp1.
}
Sinon si OSEM2D
{
On
applique
coordonnées
la
texture
spéciales
TexProj[j]
qui
feront
sur
que
un
carré
c’est
la
avec
des
ligne
qui
correspond à la coupe qui va être épandue, on met le résultat
dans temp2.
On applique le shader de convolution horizontal sur temp2 et
on met le résultat dans temp1.
}
Sinon si OSEM3D
{
On applique le shader de convolution vertical sur TexProj[j]
qui fait un épandage avec convolution donc le résultat se
retrouve dans temp2.
On applique le shader de convolution horizontal sur temp2 et
on met le résultat dans temp1.
}
Si Atténuation
151
{
Calcul des e-dμl et affichage du résultat dans atn.
Utilisation d’un fragment program qui fait temp1*atn et met
le resultat dans temp1.
}
Si FanBeam
{
Copie de temp1 dans temp2.
Utilisation d’un fragment program qui étire la texture temp2
pour suivre la géométrie et met le résultat dans temp1.
}
On affiche temp1 avec une rotation d’angle θj dans temp2.
Utilisation d’un fragment program qui fait
TexVolume[i]+temp2*(1/nbProj) et place le résultat dans
TexVolume[i].
}
}
152
Annexe D.
Exemple de programme GPGPU
/*
Exemple de programme GPGPU faisant l'addition de deux textures. Pour compiler
rajouter les bibliothèques :
GLUT http://www.opengl.org/resources/libraries/glut/ et
GLEW http://glew.sourceforge.net/
*/
#include <iostream>
#include <string>
#include <gl/glew.h>
#include <gl/glut.h>
// code source du shader d'addition de deux textures
GLchar codeShaderAdd[]=
"uniform sampler2D Texture0;"
"uniform sampler2D Texture1;"
"void main()"
"{"
"vec4 texelColor0 = texture2D( Texture0, gl_TexCoord[0].xy );"
"vec4 texelColor1 = texture2D( Texture1, gl_TexCoord[0].xy );"
"gl_FragColor = texelColor0 + texelColor1;"
"}";
using namespace std;
#define IMAGE_SIZE 4
#define NB_TEXT 3
// Variables pour contenir les différentes IDs
GLuint mProgram,mShader;
GLuint mTexTemp[NB_TEXT];
GLint mParamTex[NB_TEXT];
GLuint mFrameBufferID;
// Récupère les erreurs dans les framebuffers objects
std::string checkFBO()
{
string result;
GLenum status;
status = (GLenum) glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
switch(status) {
case GL_FRAMEBUFFER_COMPLETE_EXT:
result="";
break;
case GL_FRAMEBUFFER_UNSUPPORTED_EXT:
result="Unsupported framebuffer format\n";
break;
case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT:
result="Framebuffer incomplete, missing attachment\n";
break;
case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT:
result="Framebuffer incomplete, attached images must have same
dimensions\n";
break;
case GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT:
result="Framebuffer incomplete, attached images must have same
format\n";
break;
case GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT:
153
result="Framebuffer incomplete, missing draw buffer\n";
break;
case GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT:
result="Framebuffer incomplete, missing read buffer\n";
break;
default:
result="Unknown Error\n";
break;
}
return result;
}
// Récupère les données de la compilation
std::string getLastListing()
{
GLsizei logsize;
glGetShaderiv(mShader, GL_INFO_LOG_LENGTH, &logsize);
char *logStr=new char[logsize];
glGetShaderInfoLog(mShader,logsize, &logsize,logStr);
return logStr;
}
// Dessine un carré
void drawQuad()
{
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(0,0,0);
glTexCoord2f(0,1);
glVertex3f(0,1,0);
glTexCoord2f(1,1);
glVertex3f(1,1,0);
glTexCoord2f(1,0);
glVertex3f(1,0,0);
glEnd();
}
// Initialise la matrice de projection de façon a ce que le carré remplisse le
framebuffer
void initProjMatrix()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,1,0,1,-1,1);
glMatrixMode(GL_MODELVIEW);
}
void initTex()
{
// Création des IDs de texture
glGenTextures(NB_TEXT,mTexTemp);
for(int i=0;i<NB_TEXT;i++)
{
// initialisation des données de la texture
float *data=new float[IMAGE_SIZE*IMAGE_SIZE];
154
for(int j=0;j<IMAGE_SIZE*IMAGE_SIZE;j++)
{
data[j]=i+j;
}
glBindTexture(GL_TEXTURE_2D, mTexTemp[i]);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA16F_ARB,IMAGE_SIZE,IMAGE_SIZE,0,GL_RED
,GL_FLOAT,data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,
GL_CLAMP_TO_EDGE);
delete data;
}
}
void initShader()
{
const GLchar *source=codeShaderAdd;
// compilation du shader a partir de la chaîne de caractères
mShader=glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(mShader, 1, &source, NULL);
glCompileShader(mShader);
// verification de la compilation
GLint compile_status;
glGetShaderiv(mShader, GL_COMPILE_STATUS, &compile_status);
if(compile_status != GL_TRUE)
{
/* erreur a la compilation
recuperation du log d'erreur */
cout << getLastListing();
}
mProgram=glCreateProgram();
glAttachShader(mProgram,mShader);
glLinkProgram(mProgram);
GLint linked_status;
glGetObjectParameterivARB( mProgram, GL_OBJECT_LINK_STATUS_ARB,
&linked_status );
if(linked_status != GL_TRUE)
{
cout << getLastListing();
}
// recuperation des ids des paramètres
mParamTex[0]=glGetUniformLocationARB(mProgram,"Texture0");
mParamTex[1]=glGetUniformLocationARB(mProgram,"Texture1");
}
155
void applyShader()
{
initProjMatrix();
glViewport(0,0,IMAGE_SIZE,IMAGE_SIZE);
glColor4f(1.,1.,1.,1.);
// activation du programme
glUseProgram(mProgram);
// On lie les deux textures au programme
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D,mTexTemp[0]);
glUniform1i(mParamTex[0],0);
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D,mTexTemp[1]);
glUniform1i(mParamTex[1],1);
drawQuad();
// desactivation
glUseProgram(0);
}
// Affiche le contenu des textures
void printTex(GLuint textureID)
{
float *data=new float[IMAGE_SIZE*IMAGE_SIZE];
// recuperation de la texture en mémoire centrale
glBindTexture(GL_TEXTURE_2D,textureID);
glGetTexImage(GL_TEXTURE_2D,0,GL_RED,GL_FLOAT,data);
cout << "Texture " << textureID << endl ;
for(int j=0;j<IMAGE_SIZE*IMAGE_SIZE;j++)
{
cout << data[j] << "\t";
}
cout << endl << endl;
delete data;
}
int main(int argc,char **argv)
{
// intialisation du contexte OPENGL
glutInit(&argc,argv);
glutInitWindowPosition(0,0);
glutInitWindowSize(IMAGE_SIZE,IMAGE_SIZE);
glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Fenêtre OpenGL");
GLenum err = glewInit();
initTex();
156
// on affiche le contenu des textures avant traitement
for(int i=0;i<NB_TEXT;i++)
printTex(mTexTemp[i]);
// création du framebuffer
glGenFramebuffersEXT(1,&mFrameBufferID);
initShader();
// activation du framebuffer
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mFrameBufferID);
// on attache le framebuffer à la texture mTexTemp[2]
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
GL_TEXTURE_2D, mTexTemp[2], 0);
string errorFBO=checkFBO();
if(errorFBO!="")
{
cout << errorFBO << endl;
return 1;
}
// Effectue le traitement
// mTexTemp[2]=mTexTemp[0]+mTexTemp[1]
applyShader();
// désactivation du framebuffer
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
// Contenu de mTexTemp[2] après traitement
printTex(mTexTemp[2]);
getchar();
// libération des ressources
glDeleteFramebuffersEXT(1,&mFrameBufferID);
glDetachShader(mProgram,mShader);
glDeleteShader(mShader);
glDeleteTextures(NB_TEXT,mTexTemp);
return 0;
}
Sortie :
Texture 1
0
1
2
3
3
4
4
5
5
7
Texture 2
1
2
Texture 3
2
3
Texture 3
1
3
157
158
TITLE: CONTRIBUTION OF GRAPHICS PROGRAMMING FOR FAST SINGLE PHOTON
EMISSION COMPUTED TOMOGRAPHY IMAGES RECONSTRUCTION
ABSTRACT :
Single Photon Emission Computed Tomography (SPECT) is a non-invasive medical imaging
modality which visualizes radioactively labeled molecules administered to a patient. Photons
emitted by the radio-isotopes are detected by a rotating camera system equipped by a lead
collimator. A mathematical inversion technique is used to reconstruct the unknown 3D distribution
of radio-activity in the body from the series of 2D projection images recorded by the system.
In this process, image quality may be affected by two major degrading phenomena, collimator
blurring, and attenuation of photons via the photoelectric and the Compton effects. The aim of this
thesis is to enhance the quality of SPECT reconstructed images by reducing these degrading
effects.
- Several methods have been proposed to correct the effects of collimator blurring. The most
efficient is to include a physical model of the collimator response function and to
reconstruct images by an iterative method, which includes this model. Here we extend this
line by improving convergence. The use of graphic cards can accelerate this process by a
factor of 100.
- We have implemented non-uniform attenuation correction methods which do not need
additional transmission measurements, but uses emission data only. Reconstruction of
activity based on emission data is a difficult non-linear ill-posed inverse problem. Two
approaches have been tested, one based on non-linear optimization techniques, a second
based on iterative techniques similar to those currently in use. The iterative technique
performed more stably and generally produced better results. In simulated studies we were
able to demonstrate an improvement over existing techniques, while this rests to be
established in the case of clinical data.
In conclusion, we have shown that programming with graphic processors is a new and powerful
tool for SPECT image reconstruction, capable to include collimator response compensation and
attenuation correction based on known attenuation maps. It may become equally useful to
reconstruct activity and attenuation maps simultaneously from emission data once the underlying
mathematical technique will be proven to be clinically useful.
KEYWORDS: GPU, SPECT, tomographic reconstruction, OSEM, attenuation, resolution.
159
AUTEUR : Guillaume VIGUIE
TITRE : APPORT DE LA PROGRAMMATION GRAPHIQUE POUR LA RECONSTRUCTION
RAPIDE D’IMAGES 3D EN TOMOGRAPHIE PAR EMISSION MONOPHOTONIQUE
DIRECTEURS DE THESE : Jean-Paul ESQUERRE, Dominikus NOLL
LIEU ET DATE DE SOUTENANCE: Université Paul Sabatier, Toulouse le 18 décembre 2008
RESUME :
La Tomographie par Emission Mono-Photonique (TEMP) est une modalité d’imagerie médicale
qui a pour objectif la visualisation 3D de la fixation d’une molécule marquée par un isotope
radioactif administrée à un patient. Les photons émis par le radioisotope sont détectés sous forme
d’images planes selon différentes incidences par une caméra tournante munie d’un collimateur. Le
problème de la reconstruction tomographique consiste à calculer le volume 3D de la concentration
de la molécule radiomarquée à partir d’une série d’images de projection 2D.
Deux phénomènes physiques principaux perturbent les données : une résolution limitée variable
avec la distance du fait du collimateur, et une atténuation par les tissus du patient des photons émis.
L’objectif de cette est de contribuer à l’amélioration de la prise en compte de ces phénomènes.
- Au sujet de la prise en compte de la résolution limitée, plusieurs méthodes ont été
proposées. Les plus performantes, basées sur la modélisation de la réponse du collimateur
au sein de méthodes de reconstruction itératives, sont très coûteuses en temps de calcul, ce
qui limite leur utilisation en pratique. Dans ce travail nous présentons une technique
informatique, basée sur la programmation des cartes graphiques « grand public »,
permettant de diviser par 100 le temps de calcul pour ce type de méthode.
- Au sujet de la prise en compte de l’atténuation, nous avons mis en œuvre une méthode
permettant de corriger l’atténuation non uniforme à partir des seules données d’émission.
Mathématiquement, il s’agit d’un problème inverse non linéaire sous déterminé. Deux
méthodes ont été testées, l’une par optimisation, l’autre par méthode itérative en estimant
alternativement le volume de la concentration radioactive et le volume du coefficient
d’atténuation. La méthode itérative s’est révélée plus rapide et plus stable que la méthode
par optimisation, et a donné, dans quelques cas, des résultats intéressants. Toutefois sur un
ensemble de données cliniques réelles de patients présentant des artefacts d’atténuation
suspectés, nous n’avons pas réussi à montrer que cette méthode apportait dans tous les cas
une correction efficace.
En conclusion, nous avons montré que la programmation des processeurs graphiques est
aujourd’hui une solution très performante pour la reconstruction en tomographie par émission
monophotonique, avec prise en compte de la réponse collimateur et correction d’atténuation à partir
d’une carte d’atténuation connue. Quant à l’estimation de l’atténuation à partir des seules données
d’émission, les quelques résultats encourageants obtenus permettent de dire que cette approche
mérite d’être développée, car pour l’instant elle n’est pas encore utilisable en routine clinique.
MOTS-CLES : GPGPU, TEMP, reconstruction tomographique, OSEM, atténuation, résolution.
DISCIPLINE ADMINISTRATIVE: Radiophysique et Imagerie médicales.
INTITULE ET ADRESSE LABORATOIRE:
160
Laboratoire de Biophysique, EA 3033
Faculté de Médecine de Toulouse-Purpan
133, Route de Narbonne
31062 Toulouse Cedex