Université Paris Sud 11 - Supélec Stage 6 mois (mars - août) Accélération sur cartes graphiques de la projection pour la reconstruction Tomographique X Auteur: Asier Rabanal Encadrants: Nicolas Gac Ali Mohammad-Djafari Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion 1 Objectifs du stage Contexte 2 Méthodes de reconstruction tomographique itératives Reconstruction tomographique Algorithmes de projection et de rétroprojection 3 Implémentation Projecteurs L’algorithme d’échantillonnage régulier 3D sur GPU 4 Expérimentation numérique et validation Qualité de reconstruction Temps de reconstruction 5 Conclusion 2 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Contexte 1 Objectifs du stage Contexte 2 Méthodes de reconstruction tomographique itératives 3 Implémentation 4 Expérimentation numérique et validation 5 Conclusion 3 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Contexte Contexte Tomographie X Obtenir la structure interne d’un objet à partir de données externes (domaine clinique, contrôle non destructif) Volume de données important (jusqu’à 20483 voxels) / Algorithmes itératifs ⇔ Algorithmes analytiques (Feldkamp) Très bonne qualité d’image , Projet TOMOX Transfert technologique. Déploiement rapide d’algorithmes de reconstruction 3D Segmentation des objets 4 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Contexte Projet TOMOX IMAGEUR 3D HAUTE RESOLUTION Objet 1 phi 1 ACQUISITION − Plateforme de microtomographie X haute resolution Projections Tomographe phi 2 2 RECONSTRUCTION − Algorithme iteratif − Acceleration sur processeurs graphiques Objet reconstruit GPU 5 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection 1 Objectifs du stage 2 Méthodes de reconstruction tomographique itératives Reconstruction tomographique Algorithmes de projection et de rétroprojection 3 Implémentation 4 Expérimentation numérique et validation 5 Conclusion 6 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection Tomographie X Detecteurs Volume φ Source Système d’acquisition Système de traitement Méthodes analytiques Méthodes itératives 7 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection L’algorithme itératif simple g = Hf + g → données du tomographe fˆ(n) f → volume H → système d’acquisition Projection H1fˆ(n) → le bruit ĝ (n) g N iterations δg (n) Retroprojection H2t δg (n) J(f ) = JMC (f ) JMC (f ) = ||g − Hf ||2 (n) δfMC δf (n+1) f (n+1) = f (n) + δMC f (n) δMC f (n) = −2 · H2t (g − H1 f (n) ) 8 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection L’algorithme itératif bayésien fˆ(n) J(f ) = JMC (f ) + λ · Jreg (f ) JMC (f ) = ||g − Hf ||2 Jreg (f ) = ||Df ||2 Projection H1fˆ(n) ĝ (n) g Regularisation δg (n) (n) f (n+1) = f (n) + δf (n) δf (n) = δMC f (n) + δreg f (n) Retroprojection H2t δg (n) δfMC N iterations (n) δfreg δf (n+1) δMC f (n) = −2 · H2t (g − H1 f (n) ) δreg f (n) = D t Df 9 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection Projection Detecteurs u y θ Source φ x Volume 10 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection Choix algorithmiques Algorithme ray-driven Algorithme pixel-driven Detecteurs u Detecteurs u y y φ φ x Source Volume x Source Volume 11 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection Projecteurs (I) Joseph Voxel driven avec interpolation Detecteurs u ye + 1 y(x) Detecteurs u ue +1 u(x) ue ye y D(u, φ) = Di y φ x Source φ x u Source Source Volume for φ for x,y u(x,y,φ)=... P(ue ,φ)+=(1-u )V(x,y) P(ue + 1,φ)+=u V(x,y) Volume for φ for u −−→ − if (SDi , → x ) < 45◦ for x y (x ) = ... P(u, φ)+ = (1 − y )V (x , ye ) + y V (x , ye + 1) else for y x (y ) = ... P(u, φ)+ = (1 − x )V (xe , y ) + x V (xe + 1, y ) 12 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection Projecteurs (II) Échantillonnage régulier f (xk , yk ) Detecteurs u Siddon Detecteurs u ye + 1 y y ye gi y δx xe x xe + 1 φ D(ue , φ) = Di δy x k=0 lij Source φ x Volume for φ for u for k u(xk , yk (x )) = ... P(u, φ)+ = (1 − x )(1 − y )V (xe , ye ) +(1 − x )y V (xe , ye + 1) +x (1 − y )V (xe + 1, ye ) +x y V (xe + 1, ye + 1) Source Volume forφ for u for PixelTrav lij =... P(u, φ)+ = lij V (x , y ) 13 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Reconstruction tomographique Algorithmes de projection et de rétroprojection Rétroprojecteur Voxel driven avec interpolation Detecteurs u ue +1 u(x) ue y Source φ x u Source Volume for φ for x,y u(x,y,φ)=... V(xn,yn)+=(1-u )·P(ue ,φ)+u ·P(ue + 1,φ) 14 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Projecteurs L’algorithme d’échantillonnage régulier 3D sur GPU 1 Objectifs du stage 2 Méthodes de reconstruction tomographique itératives 3 Implémentation Projecteurs L’algorithme d’échantillonnage régulier 3D sur GPU 4 Expérimentation numérique et validation 5 Conclusion 15 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Projecteurs L’algorithme d’échantillonnage régulier 3D sur GPU Projecteurs Projection 2D Projection 3D u y (x1 , y1 ) v (xdet , ydet , zdet ) θ z R (x2 , y2 ) x θ α φ y u (xs , ys ) (xs , ys , zs ) x 16 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Projecteurs L’algorithme d’échantillonnage régulier 3D sur GPU Graphics Processing Unit (GPU) 17 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Projecteurs L’algorithme d’échantillonnage régulier 3D sur GPU Programme séquence Paralléliser le code: découper l’algorithme en tâches indépendantes Thread lancement d’un rayon. Reduction du temps d’accès à la mémoire : Cache de constantes texture 2D et texture 3D Registres 18 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Qualité de reconstruction Temps de reconstruction 1 Objectifs du stage 2 Méthodes de reconstruction tomographique itératives 3 Implémentation 4 Expérimentation numérique et validation Qualité de reconstruction Temps de reconstruction 5 Conclusion 19 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Qualité de reconstruction Temps de reconstruction Algorithmes 2D itératifs : Reconstruction Image d’origine (f ) et image de régularisation (Df ) Images reconstruites avec régularisation (“VI”,“J2D”,“ER” et “SI”) 20 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Qualité de reconstruction Temps de reconstruction Algorithmes 2D itératifs : Coupes des images Coupe x = 128 21 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Qualité de reconstruction Temps de reconstruction Algorithmes 2D itératifs : Erreur quadratique moyenne eqmrelative VI J2D ER SI λ=0 λ=1 λ = 10 0.0071321 0.0065626 0.0069313 0.022629 0.0075727 0.0070131 0.0073715 0.02219 0.010633 0.01025 0.010438 0.020608 22 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Qualité de reconstruction Temps de reconstruction Algorithmes 3D sur GPU itératif Résultats en itératif 3D avec régularisation (λ = 1) eqmrel λ=0 λ=1 λ = 10 0.022702 0.022376 0.024085 Comparaison entre l’image obtenue avec échantillonnage régulier et avec Joseph Échantillonnage régulier sur GPU Joseph sur GPU eamrel eqmrel 0.10063 0.099241 0.022376 0.024467 eqmrelative avec H t opérateur adjoint et H t opérateur pas adjoint Projection Rétroprojection VI Joseph ER Siddon Voxel Voxel Voxel Voxel driven driven driven driven eamrelative eqmrelative 0.056536 0.055782 0.056031 0.1104 0.0075727 0.0070131 0.0073715 0.02219 23 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Qualité de reconstruction Temps de reconstruction Comparaison C et GPU Échantillonnage régulier 3D sur C Sinogram et image rétroprojetée 140.4 secondes Échantillonnage régulier 3D sur GPU (sans optimisation du code) 8.568 secondes Échantillonnage régulier 3D sur GPU (avec optimisation du code) 0.282 secondes (0.82% calcul, 99.18% Échantillonnage) Algorithme itératif en 3D Temps de traitement Une itération Convolution simple 12,74 secondes 9,6 secondes (75%) 24 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Conclusion 1 Objectifs du stage 2 Méthodes de reconstruction tomographique itératives 3 Implémentation 4 Expérimentation numérique et validation 5 Conclusion 25 / 27 Objectifs du stage Méthodes de reconstruction tomographique itératives Implémentation Expérimentation numérique et validation Conclusion Conclusion Conclusion Bilan technique Qualité de la reconstruction Facteur d’accélération du GPU: 500 pour l’operateur de projection Problème de coherence pour Siddon Travaux futures Développement de tout l’algorithme itératif en C Parallélisation sur plusieurs cartes graphiques (GPUs) Parallélisation sur GPU de la convolution (en cours) Algorithme itératif original d’Ali Mohammad-Djafari: régularisation par regions homogènes Projet TOMOX (Sept. - Mai) 26 / 27 Université Paris Sud 11 - Supélec Stage 6 mois (mars - août) Accélération sur cartes graphiques de la projection pour la reconstruction Tomographique X Auteur: Asier Rabanal Encadrants: Nicolas Gac Ali Mohammad-Djafari