Aller au contenu

Stage: Développement d'une bibliothèque unifiée pour la vision par ordinateur (wrapper C/C++)

  • Sur site
    • 16000 Angoulême, Nouvelle-Aquitaine, France
  • Stage/Alternance

Description de l'offre d'emploi

Nous recherchons un(e) stagiaire pour intervenir au sein de notre division Land & Sea à partir du 1er trimestre 2026. Ce stage a pour vocation de développer une bibliothèque afin d’unifiée la vision par ordinateur sur notre site de Angoulême.

Contexte :

Les solutions de vision par ordinateur utilisent aujourd’hui une grande diversité de bibliothèques (OpenCV, CUDA/NVIDIA, etc.), chacune ayant ses avantages en termes de performances, de compatibilité matérielle et de fonctionnalités. Cependant, leur intégration conjointe dans un même projet est souvent complexe à cause des différences d’interfaces, de structures de données et de dépendances.

🎯 Objectif du stage

Développer une bibliothèque C++ modulaire unifiant les opérations courantes de vision, avec :

  • Une interface simple et cohérente ;

  • Le support de différents backends : CPU (OpenCV) et GPU (CUDA/NPP), avec sélection explicite ;

  • Une validation sur des projets existants ;

  • La rédaction de la documentation associée.

🧩 Missions principales

1.Audit et conception :

  • Définir un ensemble d’interfaces C/C++ unifiées (structures de données, API, etc.) ;

  • Concevoir une architecture modulaire et évolutive.

2. Implémentation des modules :

  • Préprocessing : filtrage, normalisation, etc.

  • Processing : segmentation, détection, tracking, …

  • Postprocessing : extraction, filtrage, export des résultats.

  • Pipeline orchestrator :

    • Gestion dynamique des backends (CPU/GPU) ;

    • Chaînage des modules (ex. : preprocess → segment → filtre Kalman → output).

3. Optimisation et validation :

  • Gestion mémoire efficace, notamment réutilisation des buffers GPU ;

  • Profiling intégré (mesure de la latence par étape) ;

  • Validation et benchmarking sur cas d’usage réels.

4. Documentation :

  • Rédaction de la documentation technique et d’utilisation.

🎓 Formation

Étudiant(e) en dernière année de :

  • École d’ingénieurs ou Master 2 spécialisé(e) en :

    • Informatique / Génie logiciel,

    • Vision par ordinateur,

    • Informatique embarquée,

    • Intelligence artificielle ou traitement d’image.

🧠 Compétences techniques attendues

  • Maîtrise du C++ (C++11/14/17 minimum) : classes, templates, pointeurs intelligents, conception orientée objet.

  • Connaissances en traitement d’image / vision par ordinateur (idéalement avec OpenCV).

  • Notions de calcul parallèle :

    • CUDA / NPP pour l’accélération GPU ;

    • éventuellement OpenCL ou frameworks similaires.

  • Compréhension des structures de données et de la gestion mémoire (buffers, pointeurs, optimisation).

  • Connaissances de base en profiling (analyse de performance, latence, etc.).

  • Bon niveau en algorithmique et esprit d’optimisation.

💡 Qualités personnelles

  • Curiosité technique et goût pour la performance logicielle.

  • Esprit analytique et rigoureux.

  • Autonomie, sens du détail et capacité à documenter proprement son travail.

  • Bon relationnel et capacité à collaborer avec une équipe R&D.

ou