Ce tutoriel vous guidera dans l’utilisation de l’outil SAM3 ( Galaxy version 1.0.1+galaxy4) (Segment Anything Model 3) sur Galaxy. SAM3 permet de détecter et segmenter automatiquement des objets dans des images ou des vidéos grâce à des prompts, sans nécessiter d’entraînement spécifique.
Nous allons travailler sur deux exemples concrets (liés au projet Moorev) :
Rendez-vous sur votre instance Galaxy (Attention vérifier que l’instance Galaxy que vous utilisez propose l’outil SAM3, comme l’instance Galaxy Europe)
Connectez-vous ou créez un compte
Cette capture d’écran présente l’instance Galaxy Ecology, accessible à l’adresse usegalaxy.eu
La page d’accueil de Galaxy est divisée en 3 parties :
Les outils sur la gauche
Le panneau de visualisation au centre
L’historique des analyses et des fichiers sur la droite
La première fois que vous utiliserez Galaxy, il n’y aura aucun fichier dans votre panneau d’historique.
Charger les données dans Galaxy
Avant de lancer SAM3, vous devez importer les fichiers suivants dans Galaxy :
La photo de méduse : https://zenodo.org/records/19890809/files/Moorev-jellyfish.jpg
La vidéo de crevettes : https://zenodo.org/records/19891364/files/2024-09-20-PorzBreign-shrimps.mp4
Copiez le lien correspondant au fichier à importer
1- Cliquez sur galaxy-uploadUpload en haut du panneau d’activité
2- Sélectionnez galaxy-wf-editPaste/Fetch Data
3- Collez le lien dans le champ de texte https://zenodo.org/records/19890809/files/Moorev-jellyfish.jpg
4- Cliquez sur Start
5- Cliquez sur Close pour fermer la fenêtre
Segmentation d’une image : la photo de méduse
Dans cette première partie, nous allons utiliser SAM3 sur la photo Moorev-jellyfish.jpg pour détecter et segmenter la méduse.
Tapez SAM3 dans la barre de recherche des outils en haut à gauche, puis cliquez sur l’outil dans les résultats.
param-select“Input type” : One or more images (par défaut)
param-file“Input images” : Moorev-jellyfish.jpg
param-select“Output formats” : COCO
param-text“Text prompt” : jellyfish
version“Confidence threshold” : 0.5
version“Video frame stride” : 5 (par défaut)
param-toggle“Show bounding boxes on annotated output” : Yes (par défaut)
param-toggle“Normalize outputs?” : No (par défaut)
Le prompt textuel doit décrire l’objet à segmenter en anglais, en termes simples et précis.
Pour détecter plusieurs classes simultanément, séparez-les par des virgules :
jellyfish, shrimp, fish
Évitez les descriptions trop vagues comme animal si vous cherchez une méduse spécifiquement.
Il est aussi possible de formuler des prompts plus descriptifs comme small blue fish, mais les résultats peuvent varier.
Cliquez sur Execute
Commentaire: Temps de traitement
Le traitement peut prendre quelques minutes selon la taille de l’image et les ressources disponibles sur le serveur. Patientez jusqu’à ce que les sorties apparaissent en vert dans l’historique.
Une fois le traitement terminé, les sorties suivantes apparaissent dans votre historique :
Annotation COCO : le fichier annotations.json contenant les masques de segmentation
Annotated Outputs : la collection d’images annotées avec les masques superposés
Visualisation du résultat annoté
Vous devriez voir la méduse entourée d’un masque coloré et d’une boîte englobante (bounding box).
Cliquez sur Annotated Outputs dans le panneau d’historique :
Puis cliquez sur l’icône galaxy-eye pour afficher l’image dans le panneau central :
Ou cliquez sur galaxy-save pour télécharger le fichier directement.
Cliquez sur galaxy-eye pour visualiser le JSON, ou sur galaxy-save pour télécharger le fichier
Le fichier contient les champs images, annotations et categories. Chaque annotation comprend :
segmentation : les coordonnées du contour polygonal du masque
bbox : la boîte englobante [x, y, width, height]
category_id : l’identifiant de la classe détectée (1 = jellyfish)
Si vous avez besoin d’entraîner un modèle YOLO avec vos annotations, vous pouvez exporter les résultats au format YOLO en plus du format COCO.
Dans le paramètre param-select“Output formats”, sélectionnez COCOet/ouYOLO segmentation maskset/ouYOLO bounding boxes.
Chaque ligne d’un fichier label YOLO segmentation suit ce format :
<class_id> <x1> <y1> <x2> <y2> ... <xn> <yn>
Les coordonnées sont normalisées entre 0 et 1 par rapport aux dimensions de l’image.
Exemple pour une méduse (classe 0) : 0 0.423 0.312 0.456 0.298 ...
Segmentation d’une vidéo : la vidéo de crevettes
Dans cette seconde partie, nous allons appliquer SAM3 à la vidéo 2024-09-20-PorzBreign-shrimp.mp4. SAM3 analyse la vidéo frame par frame en suivant les crevettes au fil du temps.
Paramétrage de SAM3 pour la vidéo
En pratique: Segmenter les crevettes dans la vidéo
SAM3 Semantic Segmentation ( Galaxy version 1.0.1+galaxy4) avec ces paramètres :
param-select“COCO output mode” : Annotate the video — one COCO entry per frame, referencing the video file (par défaut)
param-text“Text prompt” : shrimp
version“Confidence threshold” : 0.25 (par défaut)
version“Video frame stride” : 5 (par défaut)
param-toggle“Show bounding boxes on annotated output” : Yes (par défaut)
param-toggle“Normalize outputs?” : No (par défaut)
version“Video frame stride” : détermine la fréquence d’analyse. Un stride de 5 signifie qu’une frame sur cinq est traitée.
Stride faible (1–3) : analyse plus précise, mais plus longue
Stride élevé (10–30) : traitement rapide, utile pour des vidéos longues où les objets bougent lentement
param-select“Video quality” : contrôle la qualité de la vidéo annotée en sortie, sans impact sur la vitesse de traitement ni sur les annotations.
param-select“COCO output mode” : contrôle la façon dont les annotations COCO sont générées.
Annotate the video : une entrée COCO par frame, référençant le fichier vidéo (par défaut)
Annotate extracted frames : sauvegarde les frames en JPG avec une entrée COCO par image. utile pour du pré-traitement, par exemple avec l’outil AnyLabeling Interactive comme dans le Tuto Moorev
Cliquez sur Execute
Commentaire: Temps de traitement vidéo
Le traitement peut prendre quelques minutes selon la taille de la vidéo et les ressources disponibles sur le serveur. Patientez jusqu’à ce que les sorties apparaissent en vert dans l’historique.
Les sorties suivantes apparaissent dans votre historique :
Annotation COCO : le fichier JSON avec les annotations pour chaque frame traitée
Annotated Outputs : la vidéo annotée avec les masques superposés frame par frame
Visualisation de la vidéo annotée
Cliquez sur Annotated Outputs dans le panneau d’historique
Cliquez sur galaxy-eye
Cliquez sur galaxy-visualise
Sélectionnez Media Player
Attention: La vidéo ne s'affiche pas ?
Il est possible que la vidéo ne se charge pas dans Galaxy pour plusieurs raisons :
La vidéo est trop volumineuse pour votre connexion internet
Le paramètre param-select“Video quality” : Original quality (copy) rend l’affichage dans Galaxy indisponible
Dans ce cas, utilisez galaxy-save pour télécharger la vidéo et la lire localement avec votre lecteur vidéo habituel.
Vous verrez les crevettes suivies avec un masque de segmentation coloré tout au long de la vidéo.
Téléchargement de la vidéo annotée
Cliquez sur la collection Annotated Outputs
Cliquez sur galaxy-save pour télécharger la vidéo .mp4
Commentaire: Limites de SAM3 et pré-traitement
L’outil SAM3 est une première tentative de proposer un outil Galaxy basé sur des prompts. Comme il utilise le modèle SAM3, les résultats peuvent être très hétérogènes en termes de qualité selon les objets que vous cherchez à segmenter, notamment si ce type d’objet était présent dans les données utilisées pour entraîner le modèle SAM3. Ajuster le seuil de confiance peut aider, mais cela ne résout pas tout. Un pré-traitement de vos images ou vidéos est souvent nécessaire pour améliorer les résultats.
Pour en savoir plus, consultez le tutoriel dédié : Tuto Moorev
Conclusion
Vous savez maintenant utiliser SAM3 sur Galaxy pour :
Segmenter des objets dans une image à partir d’un simple prompt textuel
Segmenter des objets dans une vidéo frame par frame avec suivi temporel
Exporter les résultats au format COCO (pour les outils d’annotation et d’évaluation) ou YOLO (pour l’entraînement de modèles)
You've finished the tutorial
Please also consider filling out the Feedback Form as well!
Points clés
L’annotation automatique d’images et de vidéos par prompt est une avancée très attendue dans le domaine de la biodiversité.
Segmenter, identifier et suivre des animaux est désormais possible grâce à plusieurs outils Galaxy.
L’outil Galaxy SAM3 permet de le faire à partir d’un simple prompt.
Questions fréquentes
Vous avez des questions sur ce tutoriel ? Consultez les pages FAQ disponibles et les canaux d'assistance.
Further information, including links to documentation and original publications, regarding the tools, analysis techniques and the interpretation of results described in this tutorial can be found here.
Retours
Utilisation de ce matériel en tant que formateur ? Partagez votre expérience.
Avez-vous utilisé ce matériel en tant qu'apprenti ou étudiant ? Cliquez sur le formulaire ci-dessous pour nous laisser votre avis
Hiltemann, Saskia, Rasche, Helena et al., 2023 Galaxy Training: A Powerful Framework for Teaching! PLOS Computational Biology 10.1371/journal.pcbi.1010752
Batut et al., 2018 Community-Driven Data Analysis Training for Biology Cell Systems 10.1016/j.cels.2018.05.012
@misc{ecology-SAM3,
author = "Arthur Barreau and Yvan Le Bras and Nadine Le Bris",
title = "SAM3 – Segmentation sémantique d'images et de vidéos via IA (Galaxy Training Materials)",
year = "",
month = "",
day = "",
url = "\url{https://training.galaxyproject.org/training-material/topics/ecology/tutorials/SAM3/tutorial_FR.html}",
note = "[Online; accessed TODAY]"
}
@article{Hiltemann_2023,
doi = {10.1371/journal.pcbi.1010752},
url = {https://doi.org/10.1371%2Fjournal.pcbi.1010752},
year = 2023,
month = {jan},
publisher = {Public Library of Science ({PLoS})},
volume = {19},
number = {1},
pages = {e1010752},
author = {Saskia Hiltemann and Helena Rasche and Simon Gladman and Hans-Rudolf Hotz and Delphine Larivi{\`{e}}re and Daniel Blankenberg and Pratik D. Jagtap and Thomas Wollmann and Anthony Bretaudeau and Nadia Gou{\'{e}} and Timothy J. Griffin and Coline Royaux and Yvan Le Bras and Subina Mehta and Anna Syme and Frederik Coppens and Bert Droesbeke and Nicola Soranzo and Wendi Bacon and Fotis Psomopoulos and Crist{\'{o}}bal Gallardo-Alba and John Davis and Melanie Christine Föll and Matthias Fahrner and Maria A. Doyle and Beatriz Serrano-Solano and Anne Claire Fouilloux and Peter van Heusden and Wolfgang Maier and Dave Clements and Florian Heyl and Björn Grüning and B{\'{e}}r{\'{e}}nice Batut and},
editor = {Francis Ouellette},
title = {Galaxy Training: A powerful framework for teaching!},
journal = {PLoS Comput Biol}
}
Références
These individuals or organisations provided funding support for the development of this resource