Pipeline d'annotation d'espèces marines par IA (Project Moorev - Marine)

Description générale
Creative Commons License: CC-BY Questions:
  • Comment utiliser l’intelligence artificielle pour annoter des images d’espèces marines ?

  • Comment vérifier et corriger ces annotations ?

Objectifs:
  • Utiliser SAM3 pour détecter automatiquement des espèces marines à partir d’un simple mot-clé

  • Corriger les annotations générées avec Edit COCO Annotation

Pré-requis:
Durée estimée: 30 Minutes
Traductions: English
supports:
Publication: Jul 24, 2026
Dernière modification: Jul 24, 2026
Licence: Le contenu de ce didacticiel est sous licence Creative Commons Attribution 4.0 International License. Le Framework GTN est sous licence MIT
version Révision: 1

Dans ce tutoriel, nous allons explorer un pipeline complet pour l’annotation d’images et de vidéos d’espèces marines. Nous utiliserons comme exemple une vidéo issue du projet Moorev, découpée et disponible sur Zenodo.

Ce pipeline se décompose en deux grandes étapes :

  1. Annotation automatique par prompt textuel avec SAM3 Semantic Segmentation ( Galaxy version 1.0.1+galaxy6)
  2. Correction et validation des annotations avec Edit COCO Annotation ( Galaxy version 1.0.0+galaxy0)

MOOREV : Microclimats et outils d’observation des réponses du vivant sur les fonds marins

Observer les interactions entre espèces marines face aux gradients microclimatiques sur l’estran

Le projet MOOREV, porté par Nadine Le Bris (Sorbonne Université, Station Marine de Concarneau), avec le soutien du Muséum National d’Histoire Naturelle, du CNRS et de la Fondation de France, a été lancé en 2022. Son objectif : mieux comprendre et faire comprendre les effets des perturbations climatiques sur la biodiversité du littoral.

L’approche repose sur des méthodes d’imagerie sous-marine pour observer les espèces benthiques à l’échelle individuelle, sur différents habitats de l’estran. Des groupes de scolaires répètent des acquisitions de données sur leurs sites d’étude, labellisés par le programme Aires Marines Éducatives de l’Office Français de la Biodiversité, au fil des cycles de marée, des saisons et des années.

Le projet associe chercheurs et professionnels de l’éducation à l’environnement, et est co-construit avec des classes et leurs enseignants, en utilisant le littoral comme laboratoire naturel. À terme, il vise à soutenir la mise en œuvre de mesures de protection et de conservation, en tenant compte des interactions entre changement climatique et socio-écosystèmes marins.

Agenda: Dans ce tutoriel, nous allons couvrir :
  1. Chargement des données
  2. Annotation automatique avec SAM3
  3. Correction et validation des annotations
    1. Corriger avec Edit COCO Annotation
  4. Conclusion

Chargement des données

La vidéo utilisée dans ce tutoriel est un extrait issu directement du projet Moorev, disponible sur Zenodo. Cet extrait a été sélectionné car il permet d’illustrer la majorité des fonctionnalités des outils présentés.

En pratique: Charger la vidéo dans Galaxy
  1. Créez un nouvel historique pour ce tutoriel (par exemple : “Annotation Moorev”)

    To create a new history simply click the new-history icon at the top of the history panel:

    UI for creating new history

    1. Click on galaxy-pencil (Edit) next to the history name (which by default is “Unnamed history”)
    2. Type the new name
    3. Click on Save
    4. To cancel renaming, click the galaxy-undo “Cancel” button

    If you do not have the galaxy-pencil (Edit) next to the history name (which can be the case if you are using an older version of Galaxy) do the following:

    1. Click on Unnamed history (or the current name of the history) (Click to rename history) at the top of your history panel
    2. Type the new name
    3. Press Enter

  2. Importez le fichier depuis Zenodo :

    https://zenodo.org/records/20639741/files/Lieujaune-PorzBreign-GOPR5167_Edited.mp4?download=1
    
    • Copy the link location
    • Click galaxy-upload Upload at the top of the activity panel

    • Select galaxy-wf-edit Paste/Fetch Data
    • Paste the link(s) into the text field

    • Press Start

    • Close the window

    Galaxy upload link

  3. Vérifiez que le fichier apparaît en vert dans l’historique avant de continuer

  4. Vérifiez le type de données

    Le type de données est attribué automatiquement par Galaxy. Comme la majorité des outils l’utilisent pour filtrer leurs entrées, il est important de s’assurer qu’il est correct. Dans notre cas, vérifiez que le type est bien mp4. Si ce n’est pas le cas, l’import a peut-être rencontré une erreur, vous pouvez modifier le type manuellement.

    Vérifier le type de données.

    • Click on the galaxy-pencil pencil icon for the dataset to edit its attributes
    • In the central panel, click galaxy-chart-select-data Datatypes tab on the top
    • In the galaxy-chart-select-data Assign Datatype, select mp4 from “New Type” dropdown
      • Tip: you can start typing the datatype into the field to filter the dropdown menu
    • Click the Save button

Annotation automatique avec SAM3

SAM3 est un modèle de segmentation guidé par texte. Il détecte et segmente automatiquement les objets correspondant à votre prompt, sans nécessiter d’annotations préalables.

Si vous souhaitez en savoir plus sur SAM3 et ses paramètres, consultez le tutoriel dédié : Tutoriel SAM3

En pratique: Paramétrage de SAM3
  1. SAM3 Semantic Segmentation ( Galaxy version 1.0.1+galaxy6) avec ces paramètres :

    • param-file “Model data” : Segment Anything Model 3 (SAM 3) (par défaut)
    • param-select “Input type” : One video
      • param-file “Input video file” : 1: Lieujaune-PorzBreign-GOPR5167_Edited.mp4
      • param-select “Video quality” : Original quality (lossless) (par défaut)
      • param-select “Additional output formats” : Empty (par défaut)
      • param-select “Export individual frames” : Both annoted and raw frames
    • param-text “Text prompt” : fish
    • version “Confidence threshold” : 0.5
    • version “Video frame stride” : 5
    • param-toggle “Show bounding boxes on annotated output” : Yes
    • param-toggle “Inference image size”: 644 (default, balanced) (par défaut)
    • param-toggle “Normalize outputs?” : No (par défaut)
  2. Cliquez sur Run Tool

    Commentaire: Temps de traitement

    Le traitement peut prendre plusieurs minutes selon la longueur de la vidéo et les ressources du serveur. Patientez jusqu’à ce que les sorties apparaissent en vert dans l’historique.

  3. Une fois terminé, vous obtenez dans votre historique :
    • 5: Annotation COCO : annotations.json — les masques de segmentation au format COCO
    • 4: Annotated Frames : la collection d’images extraites (annotées)
    • 3: Raw Frames : la collection d’images extraites (non annotées)
    • 2: COCO Extracted Frames : la vidéo annotée pour vérification visuelle
  4. Vérifiez visuellement les résultats en cliquant sur galaxy-eye sur Annotated Outputs

    Résultat de segmentation SAM3 sur la vidéo.

    Commentaire: Limites de SAM3

    Comme vous pouvez le constater, toutes les annotations ne sont pas parfaites, les faux positifs sont le problème le plus fréquent. C’est pourquoi l’étape suivante de correction et validation est indispensable.

Correction et validation des annotations

Nous allons voir comment corriger les annotations avec Edit COCO Annotation, puis vérifier le résultat avec COCO Annotation Visualizer.

Corriger avec Edit COCO Annotation

L’outil Edit COCO Annotation permet de modifier les annotations COCO sans avoir à ouvrir les images. Il propose trois modes :

  • Keep : garder uniquement les IDs listés (supprimer tous les autres) — utile quand peu d’IDs sont à conserver, permet aussi de les renommer
  • Remove : supprimer uniquement les IDs listés
  • Rename : renommer les IDs listés sans en supprimer d’autres
En pratique: Garder, supprimer ou renommer des annotations
  1. Edit COCO Annotation ( Galaxy version 1.0.0+galaxy0) avec ces paramètres :

    • param-file “COCO annotation file” : 5: Annotation COCO
      • param-repeat “1: Track to keep”
        • param-text “Track IDs” : 0,4-6
        • param-text “Rename” : Gobiusculus flavescens
        • param-text “Frame min” : Empty (par défaut)
        • param-text “Frame max” : Empty (par défaut)
      • param-repeat “2: Track to keep”
        • param-text “Track IDs” : 2
        • param-text “Rename” : Crenilabre
        • param-text “Frame min” : Empty (par défaut)
        • param-text “Frame max” : Empty (par défaut)
      • param-text “Frame max” : Empty (par défaut)
    Commentaire: Résultat équivalent en deux étapes

    Il est aussi possible d’obtenir le même résultat en deux étapes : utiliser Remove pour supprimer les IDs 1 et 3, puis Rename pour renommer les groupes restants.

    À noter : SAM3 peut parfois attribuer le même Track ID à deux objets différents à des moments distincts de la vidéo. C’est pour cette raison que les paramètres Frame min et Frame max ont été ajoutés.

  2. Une fois terminé, vous obtenez dans votre historique :

    • 54: Edited COCO annotations : le fichier JSON au format COCO, modifié selon les paramètres renseignés ci-dessus

Visualiser les annotations avec COCO Annotation Visualizer

Cet outil permet de visualiser facilement un fichier JSON au format COCO superposé sur une vidéo ou des images. Nous l’utilisons ici pour vérifier nos annotations après correction.

En pratique: Visualiser les annotations COCO
  1. COCO Annotation Visualizer ( Galaxy version 1.0.0) avec ces paramètres :

    - <i class="far fa-file" aria-hidden="true"></i><span class="visually-hidden">param-file</span> *"Input video file"* : `1: Lieujaune-PorzBreign-GOPR5167_Edited.mp4`
    - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Frame stride"* : `5` - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Frame stride"* : `5` - <i class="far fa-file" aria-hidden="true"></i><span class="visually-hidden">param-file</span> *"COCO annotation file"* : `54: Edited COCO annotations` - <i class="fas fa-pencil-alt" aria-hidden="true"></i><span class="visually-hidden">param-text</span> *"Filter categories"* : `Empty` (par défaut) - Dans *"Display options"* :
    - <i class="fas fa-toggle-on" aria-hidden="true"></i><span class="visually-hidden">param-toggle</span> *"Show bounding boxes"* : `No`
    - <i class="fas fa-toggle-on" aria-hidden="true"></i><span class="visually-hidden">param-toggle</span> *"Show segmentation masks"* : `Yes` (par défaut)
    - <i class="fas fa-toggle-on" aria-hidden="true"></i><span class="visually-hidden">param-toggle</span> *"Show category labels"* : `Yes` (par défaut)
    - <i class="fas fa-toggle-on" aria-hidden="true"></i><span class="visually-hidden">param-toggle</span> *"Show annotation count"* : `No` (par défaut)
    - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Mask opacity"* : `0.4` (par défaut)
    - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Bounding box thickness"* : `2` (par défaut)
    - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Label font scale"* : `0.6` (par défaut)
    - <i class="fas fa-filter" aria-hidden="true"></i><span class="visually-hidden">param-select</span> *"Color mode"* : `Per instance (different color for each annotation)`
    - <i class="fas fa-filter" aria-hidden="true"></i><span class="visually-hidden">param-select</span> *"Output image format"* : `PNG (lossless)` (par défaut)
    - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Video frame rate (FPS)"* : `5.0` - <i class="fas fa-code-commit" aria-hidden="true"></i><span class="visually-hidden">version</span> *"Video frame rate (FPS)"* : `5.0` - <i class="fas fa-toggle-on" aria-hidden="true"></i><span class="visually-hidden">param-toggle</span> *"Annotated frames only"* : `Yes` (par défaut)
    
  2. Une fois terminé, vous obtenez dans votre historique :

    • 56: Annoted video : la vidéo annotée
    • 55: Annotated images : chaque frame annotée
    Vidéo annotée avec les masques de segmentation COCO. Open image in new tab

    Figure 1: 56: Annoted video

Conclusion

Vous savez maintenant utiliser ce pipeline complet pour annoter des vidéos d’espèces marines :

  • SAM3 génère automatiquement des annotations à partir d’un simple prompt textuel
  • Edit COCO permet de nettoyer rapidement les annotations en gardant, supprimant ou renommant des IDs de tracks
  • COCO Annotation Visualizer permet de vérifier visuellement les résultats à chaque étape

Ce pipeline est réutilisable pour d’autres espèces ou d’autres projets d’imagerie marine — il suffit d’adapter le prompt et les paramètres de confiance de SAM3.