Missions
Dans le cadre d'un projet financé par le CNRS suite à l'appel à projet OPEN sur la valorisation des logiciels libres, la personne recrutée aura en charge le support et le développement de la plateforme logicielle libre de reconstruction tomographique RTK pour
- créer une communauté d'utilisateurs plus large en proposant une documentation utilisateur associée à des outils en ligne de commande Python et des notebooks,
- améliorer la rapidité en faisant appel à des logiciels alternatifs pour certaines opérations élémentaires,
- utiliser RTK dans des algorithmes de reconstruction utilisant l'apprentissage automatique.
Activités
Les besoins en développement identifiés sont :
- mise en place d’une documentation utilisateur intégrée au code.
- mise en place d’outils en ligne de commande Python qui pourraient être distribués via Pypi pour éviter l’étape de compilation qui est actuellement nécessaire et difficile pour certains utilisateurs.
- interconnexion avec d’autres logiciels de reconstruction (https://www.astra-toolbox.com/, https://www.ccpi.ac.uk/CIL, https://github.com/CERN/TIGRE, etc) pour un bénéfice mutuel (rapidité et nouvelles fonctionnalités pour RTK),
- possibilité d’intégrer efficacement RTK à un modèle d’apprentissage automatique ce qui nécessiterait d’éviter les transferts entre les mémoires CPU et GPU. Cette fonctionnalité permettrait d’interconnecter RTK avec Pytorch par exemple ou des plateformes plus haut niveau telle que Spyrit, développée à CREATIS.
Compétences
Maitrise de Git, CMake, Python et C++ requises, Cuda serait un plus.
Bonne connaissance de l'anglais.
Doctorat dans le domaine de la reconstruction tomographique.
Contexte de travail
RTK est une boite à outil logiciel permettant de reconstruire des images tomographiques 3D à partir de projections radiographiques 2D. Ce calcul est au cœur des scanners, médicaux ou industriels. RTK permet une reconstruction rapide, parallélisée sur CPU ou sur GPU, d’images 3D ou 4D (spatio-temporelles ou spectrales), avec des algorithmes analytiques ou itératifs. Il peut lire les données de nombreux scanners médicaux et industriels. RTK a été développé pour être un module d’ITK, un logiciel de segmentation et de recalage d’images médicales. RTK est un ensemble de codes C++ et Cuda, et peut être utilisé pour être intégré à une application logicielle, d’un scanner par exemple. Il est également distribué sous forme d’un package binaire Python pour être utilisé sans compilation préalable. Plus simplement, un ensemble d’outils en lignes de commande permet une utilisation sans développement Python ou C++.