2018 – Projet n°97 – Reconstruction ptychographique accélérée sur GPU

Ce projet est réalisé par Florent Devillers.

La microscopie offre de nombreuses applications, particulièrement dans le domaine de la recherche
et de la santé. Ses capacités de grossissements se sont infiniment améliorées au cours des derniers
siècles, permettant d'obtenir une vision nette avec un agrandissement significatif pour un prix
relativement modeste, ce qui démocratise ses applications. Néanmoins, pour obtenir de minuscules
détails il convient d'utiliser un microscope de meilleure qualité avec des optiques qui coûtent cher,
ou bien il faut réaliser plusieurs captures et les réassembler, ce qui impose un temps de
manipulation de l'objet non négligeable. Une méthode suggérée pour éviter ces déboires consiste à
effectuer plusieurs captures du même objet sans le déplacer, avec la même focale mais en faisant
varier plus l'éclairement : c'est la ptychographie.
Plus particulièrement, une grille de LED est placée en-dessous de l'objet au lieu d'une unique lampe.
Les LED sont allumées une à une, et l'on capture l'image fournie par le microscope à chaque fois.
On obtient donc une suite d'images de l'objet, prises sous différents angles d'éclairement, qui offrent
des informations précieuses sur les détails invisibles avec une seule lampe. Afin de traiter
efficacement ces informations visuelles, on peut passer dans le domaine fréquentiel, en effectuant
une transformée de Fourier de chaque image. Par un astucieux traitement de superposition, on
obtient une image fréquentielle bien plus large que celle obtenue initialement. En réalisant une
transformée de Fourier inverse de l'image obtenue, on crée une image finale avec une meilleure
définition, offrant donc des détails bien plus fins que ceux que l'on peut obtenir traditionnellement
avec de telles optiques. L'inconvénient d'une telle méthode est le temps de traitement,
essentiellement dû à la complexité des calculs de transformées de Fourier. Ces calculs ont
cependant l'avantage d'être parallélisables, c'est à dire qu'ils peuvent être répartis sur plusieurs
unités de calculs (les cœurs). Ces traitements ont donc l'opportunité d'être optimisés en faisant
effectuer les opérations non pas par le processeur (CPU, ~4 coeurs, ~4GHz) mais par la carte
graphique dédiée (GPU, >1000coeurs, ~1GHz) qui est bien plus efficace pour les calculs
parallélisables.
Ce projet Cassiopée consiste donc à modifier les algorithmes ptychographiques actuels pour
optimiser leurs temps de traitement sur GPU, et de réécrire le code MatLab (language propriétaire)
dans un langage open-source permettant cette parallélisation des calculs sur GPU.

Annonce