Stage - Accélération GPU d'algorithmes de traitement d'images satellites

Ramonville-Saint-Agne - Stage (6 mois)

À propos de Magellium Artal Group

Magellium (Groupe Artal), avec ses 300 collaborateurs, est un acteur indépendant, spécialiste sur la chaine de valorisation du pixel et de la donnée image et vidéo (du capteur satellite, aéroporté ou drone jusqu’à son utilisation dans les systèmes d’information géographique, la cartographie et la Géointelligence). Magellium promeut la maîtrise des technologies du logiciel, de l’IA, du traitement d’image et de la géomatique.  

L’unité Earth Observation est en charge des activités de traitement d’images d’origine spatiale. Ses domaines d’expertise sont : la géométrie des capteurs et le traitement d’image, la calibration/validation et le contrôle qualité et les services d’observation de la Terre. Nos experts en télédétection, nos scientifiques et nos concepteurs de logiciels spécialisés se concentrent sur les programmes de R&D, les algorithmes de traitement, les systèmes de segment sol et les services environnementaux. Observer la Terre depuis l'espace, surveiller notre environnement et les changements climatiques sont nos défis.

Le poste

Pour ces projets concernant son activité de conception de systèmes segment sol, Magellium propose le stage suivant intitulé :

Accélération GPU d’algorithmes de corrélation et de ré-échantillonnage d’images satellites

CONTEXTE

Les chaînes de traitement des segments sol d’observation de la Terre transforment les données brutes acquises par les satellites en produits image exploitables par les utilisateurs. Au niveau L1, ces chaînes réalisent les corrections radiométriques et géométriques des images. C’est la partie géométrique qui concentre l’essentiel du temps de calcul : corrélation entre images ou entre bandes spectrales pour affiner la localisation, puis ré-échantillonnage des images dans leur géométrie finale.

Avec l’augmentation de la résolution des capteurs, du nombre de bandes spectrales et de la fréquence de revisite, les volumes de données à traiter ne cessent de croître, tout comme les exigences sur les délais de mise à disposition des produits. Les algorithmes de corrélation et de ré-échantillonnage développés par Magellium sont aujourd’hui implémentés en C++ et exécutés sur CPU : ils sont devenus le principal levier pour réduire les temps de traitement.

Les processeurs graphiques (GPU) offrent une puissance de calcul massivement parallèle, mais en tirer pleinement parti ne se résume pas à traduire un code existant : il faut repenser les algorithmes en fonction de l’architecture matérielle (hiérarchie mémoire, accès irréguliers aux données, images plus grandes que la mémoire disponible, précision numérique…).

SUJET

L’objectif du stage est de concevoir des versions GPU hautes performances des algorithmes de corrélation et de ré-échantillonnage d’images, afin de réduire significativement leur temps de calcul. En vous appuyant sur les implémentations C++ actuelles des outils Magellium comme référence fonctionnelle, vous proposerez, développerez et évaluerez des solutions algorithmiques adaptées au GPU, en garantissant des résultats numériquement conformes à ceux de la version CPU.

Le choix de la technologie de programmation GPU (CUDA, OpenCL…) fera partie de l’étude et sera discuté avec l’équipe, en tenant compte des performances atteignables, de la portabilité entre matériels et de la facilité d’intégration dans les outils existants.

Analyse et conception

  • Prendre en main les implémentations C++ existantes des algorithmes de corrélation et de ré-échantillonnage, et en comprendre les principes.

  • Mettre en place un banc de mesure de performance (temps de calcul, débit, occupation mémoire) et établir les performances de référence des outils CPU actuels.

  • Réaliser un état de l’art des approches GPU pour ces traitements :

  • corrélation : mesures de similarité sur fenêtres glissantes (ZNCC) et recherche de pic sous-pixellique

  • ré-échantillonnage : noyaux d’interpolation (bilinéaire, bicubique, sinus cardinal…) et accès mémoire irréguliers induits par les déformations géométriques.

  • Concevoir les solutions GPU : parallélisation et réorganisation des calculs, exploitation de la hiérarchie mémoire, gestion des transferts CPU/GPU et traitement d’images de grande taille (tuilage, flux de données).

Développement

  • Développer les versions GPU des algorithmes de corrélation et de ré-échantillonnage.

  • Optimiser les noyaux de calcul : organisation des accès mémoire, utilisation de la mémoire partagée et des textures, recouvrement des calculs et des transferts, compromis entre précision et performance.

  • Intégrer les versions GPU dans les outils existants en conservant une interface commune avec les versions CPU (choix de l’implémentation à l’exécution, repli sur CPU en l’absence de GPU).

  • Mettre en place des tests unitaires et de non-régression comparant les sorties GPU et CPU.

Évaluation et documentation

  • Valider la conformité numérique des résultats GPU par rapport aux résultats CPU de référence (précision, impact du calcul en simple précision).

  • Comparer les performances des solutions GPU à celles des outils CPU existants sur des jeux de données réels de missions spatiales, et analyser le comportement en fonction de la taille des données et des paramètres des algorithmes.

  • Documenter les choix de conception, rédiger un bilan des performances obtenues et formuler des recommandations pour la suite (industrialisation, extension à d’autres algorithmes).

PERSPECTIVE

Dans la continuité de ce stage, un poste en CDI pourra être proposé au candidat.

Profil recherché

Étudiant(e) en dernière année d’école d’ingénieur ou de master (Bac+5) dans le domaine de l’informatique, du calcul haute performance ou du traitement d’images.

Vous maîtrisez la programmation en C++ et avez une première expérience de la programmation parallèle, idéalement sur GPU (CUDA ou équivalent).

Des connaissances en traitement d’images (interpolation, corrélation, filtrage) ainsi qu’un intérêt pour l’observation de la Terre et les missions satellites optiques seront appréciés.

Rigueur, curiosité et goût pour l’optimisation et l’algorithmique seront vos principaux atouts pour mener à bien ce stage.

Chez Magellium Artal Group, la diversité et l'inclusion sont fondamentales pour notre fonctionnement et ancrées dans nos valeurs. Nous respectons la diversité de nos employés, leurs expériences, leurs origines, leurs handicaps, et offrons des chances égales à tous. Tous différents, tous compétents !

Mots clés : GPU, CUDA, C++, Calcul haute performance, Traitement d’images, Ré-échantillonnage, Corrélation, Observation de la Terre.

Détails sur le poste
Ramonville-Saint-Agne, Occitanie, France
Stage (6 mois) - Temps plein
Ingénierie
Propulsé parTaleez