Interactive Segmentation
La segmentation interactive transforme les clics, les cadres ou les tracés de l’utilisateur en masques d’objets, puis les affine avec des clics correctifs, de GrabCut au SAM de Meta.
La segmentation interactive produit un masque précis au pixel près d’un objet à partir de quelques indications fournies par une personne, comme des clics, une boîte englobante ou des traits dessinés, et affine le masque à mesure que la personne ajoute des corrections. Un clic positif marque un point appartenant à l’objet, tandis qu’un clic négatif marque un point qui n’en fait pas partie ; après chaque étape, l’utilisateur n’a qu’à indiquer la plus grande erreur restante. Cette approche est indépendante des classes : le modèle segmente tout ce que l’utilisateur désigne, y compris les objets jamais vus pendant l’entraînement. C’est donc un outil courant pour l’annotation de données, la retouche photo et la délimitation de structures sur des examens médicaux. Il s’agit d’une forme de traitement avec intervention humaine appliquée à la segmentation d’images.
Fonctionnement de la boucle de clics#
Le modèle reçoit l’image avec tous les clics effectués jusque-là ; de nombreux modèles reçoivent aussi le masque précédent, puis prédisent un nouveau masque. La boucle se répète jusqu’à ce que le masque soit assez précis :
Les benchmarks simulent cet utilisateur : chaque nouveau clic est placé au centre de la plus grande région d'erreur, et le score correspond au nombre de clics nécessaires pour atteindre une intersection sur union de 85 % ou 90 % avec la vérité terrain, indiqué sous les noms NoC@85 et NoC@90 sur des jeux de données tels que GrabCut, Berkeley et DAVIS.
Le package Ultralytics exécute les modèles SAM de Meta avec des invites ponctuelles, où le label 1 indique un clic positif et le label 0 un clic négatif :
from ultralytics import SAM
# Meta's SAM 2.1 base model, run through the Ultralytics package
model = SAM("sam2.1_b.pt")
image = "https://ultralytics.com/images/bus.jpg"
# Round 1: a single positive click on the pedestrian's dark coat
results = model(image, points=[[[250, 620]]], labels=[[1]])
print(f"1 click: {int(results[0].masks.data.sum())} mask pixels")
# Round 2: add a positive click on the pedestrian's jeans and a negative click on the bus
results = model(image, points=[[[250, 620], [290, 760], [420, 560]]], labels=[[1, 1, 0]])
print(f"3 clicks: {int(results[0].masks.data.sum())} mask pixels")
results[0].save(filename="interactive_mask.jpg")Le résultat affiche 32 598 pixels de masque après un clic et 33 120 après trois : le clic unique sur le manteau sélectionne donc déjà presque tout le piéton, et les clics supplémentaires affinent le masque d’environ 500 pixels. Ultralytics Platform exécute la même boucle dans son éditeur d’annotation : en mode Smart, un clic à l’extérieur du masque SAM actuel ajoute cette région et un clic à l’intérieur la soustrait. Le masque final est enregistré sous forme de polygone, de boîte englobante ou de boîte orientée, selon la tâche du jeu de données.
Des coupes de graphes aux modèles guidés par des invites#
Les premiers outils optimisaient directement les contours. Intelligent Scissors (1995) faisait coïncider le contour tracé avec les arêtes marquées, et GrabCut, publié par Microsoft Research en 2004 et intégré à OpenCV, segmente l'objet à l'intérieur d'une boîte dessinée par l'utilisateur en ajustant de manière itérative les modèles de couleur de l'avant-plan et de l'arrière-plan, puis en résolvant une coupe de graphe. Depuis 2016, les méthodes d'apprentissage profond encodent les clics sous forme de canaux d'entrée supplémentaires à côté de l'image et apprennent le masque avec un réseau neuronal convolutif ; les modèles ultérieurs utilisent également le masque précédent en entrée pour l'affiner.
Le Segment Anything Model (SAM) de Meta, publié en 2023, a réparti le travail de sorte que l'interaction soit presque instantanée : un lourd transformeur de vision encode l'image une seule fois, puis un encodeur léger d'invites et un décodeur de masques transforment chaque nouvel ensemble de clics en masque en environ 50 millisecondes. SAM a également été entraîné avec sa propre boucle interactive : lors de la création du jeu de données SA-1B, les annotateurs cliquaient pour segmenter des objets avec des versions successives du modèle, et le temps moyen par masque est passé de 34 à 14 secondes. SAM 2 étend les clics à la vidéo en propageant un masque d'une image à l'autre, et SAM 3 ajoute la segmentation de concepts guidée par des invites, qui repère chaque instance correspondant à une courte expression textuelle.
Segmentation interactive ou automatique#
Les modèles de segmentation d'instances segmentent automatiquement, sans intervention humaine, un ensemble fixe de classes entraînées, ce qui convient aux pipelines de production qui doivent traiter chaque image. La segmentation interactive échange cette automatisation contre de la flexibilité ; c'est souvent ainsi que sont créés les masques d'entraînement de ces modèles, fréquemment dans une boucle d'apprentissage actif qui transmet aux annotateurs les images dont le modèle est le moins sûr. Le guidage visuel est le principe plus général qui consiste à orienter un modèle de vision à l'aide de points, de boîtes ou d'images exemples ; la segmentation interactive en est la forme itérative qui produit des masques.
Applications concrètes#
- Étiquetage des jeux de données : Les annotateurs délimitent les objets en quelques clics au lieu de tracer des centaines de sommets de polygones, et les annotateurs assistés par SAM avaient besoin de 14 secondes par masque, soit 6,5 fois moins que pour l'annotation manuelle des masques de COCO.
- Imagerie médicale : Les radiologues délimitent les tumeurs et les organes sur des scanners CT et IRM à l'aide de boîtes et de clics correctifs, et MedSAM a adapté SAM à la médecine en l'affinant sur 1 570 263 paires image-masque médicales couvrant 10 modalités d'imagerie.










