Interactive Segmentation
La segmentación interactiva convierte los clics, cuadros o trazos del usuario en máscaras de objetos y las refina con clics correctivos, desde GrabCut hasta SAM de Meta.
La segmentación interactiva genera una máscara precisa a nivel de píxel de un objeto a partir de unas pocas indicaciones de una persona, como clics, un cuadro delimitador o trazos, y refina la máscara a medida que la persona añade correcciones. Un clic positivo marca un punto que pertenece al objeto y uno negativo marca un punto que no pertenece; así, tras cada ronda, el usuario solo tiene que señalar el mayor error restante. El enfoque no depende de las clases: el modelo segmenta cualquier elemento que indique el usuario, incluidos objetos que no ha visto durante el entrenamiento, lo que lo convierte en una herramienta habitual para la anotación de datos, la edición de fotos y la delimitación de estructuras en exploraciones médicas. Es una forma de interacción humana en el bucle aplicada a la segmentación de imágenes.
Cómo funciona el ciclo de clics#
El modelo recibe la imagen junto con todos los clics realizados hasta el momento y, en muchos casos, también la máscara anterior; después predice una máscara nueva. El ciclo se repite hasta que la máscara tiene la calidad necesaria:
Los benchmarks simulan a este usuario: cada nuevo clic se dirige al centro de la región de error más grande, y la puntuación es el número de clics necesarios para alcanzar una intersección sobre unión del 85 % o del 90 % con la verdad de referencia, indicado como NoC@85 y NoC@90 en conjuntos de datos como GrabCut, Berkeley y DAVIS.
El paquete Ultralytics ejecuta los modelos SAM de Meta con indicaciones de puntos, donde la etiqueta 1 marca un clic positivo y 0 uno negativo:
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")Tras un clic, imprime 32.598 píxeles de máscara; tras tres clics, 33.120. Así, el clic sobre el abrigo ya selecciona casi todo el peatón, y los clics adicionales refinan la máscara en unos 500 píxeles. Ultralytics Platform ejecuta el mismo ciclo en su editor de anotaciones: en el modo Smart, un clic fuera de la máscara SAM actual añade esa región y un clic dentro la resta. La máscara final se guarda como polígono, caja delimitadora o caja orientada, según la tarea del conjunto de datos.
De los cortes de grafos a los modelos guiados por indicaciones#
Las primeras herramientas optimizaban directamente los contornos. Intelligent Scissors (1995) ajustaba un contorno trazado a los bordes marcados, y GrabCut, publicado por Microsoft Research en 2004 e incluido en OpenCV, segmenta el objeto dentro de un recuadro dibujado por el usuario mediante el ajuste iterativo de modelos de color para el primer plano y el fondo y la resolución de un corte de grafo. Desde 2016, los métodos de aprendizaje profundo codifican los clics como canales de entrada adicionales junto a la imagen y aprenden la máscara con una red neuronal convolucional; los modelos posteriores también usan como entrada la máscara anterior para refinarla.
El modelo Segment Anything (SAM) de Meta, publicado en 2023, dividió el trabajo para que la interacción fuera casi instantánea: un Transformer de visión pesado codifica la imagen una sola vez, y un codificador de indicaciones y un decodificador de máscaras ligeros convierten cada nuevo conjunto de clics en una máscara en unos 50 milisegundos. SAM también se entrenó con su propio bucle interactivo: durante la creación del conjunto de datos SA-1B, los anotadores segmentaban objetos con clics mediante versiones sucesivas del modelo, y el tiempo medio por máscara bajó de 34 a 14 segundos. SAM 2 amplía los clics al vídeo y propaga una máscara por los fotogramas, y SAM 3 incorpora la segmentación de conceptos guiada por indicaciones, que encuentra todas las instancias que coinciden con una frase de texto breve.
Segmentación interactiva frente a automática#
Los modelos de segmentación de instancias segmentan automáticamente un conjunto fijo de clases entrenadas, sin intervención humana, lo que resulta adecuado para canalizaciones de producción que deben procesar cada fotograma. La segmentación interactiva sacrifica esa automatización a cambio de flexibilidad y es la forma en que suelen crearse las máscaras de entrenamiento de estos modelos, a menudo dentro de un bucle de aprendizaje activo que envía a los anotadores las imágenes sobre las que el modelo tiene menos certeza. La indicación visual es la idea más amplia de guiar un modelo de visión con puntos, recuadros o imágenes de ejemplo; la segmentación interactiva es su variante iterativa que genera máscaras.
Aplicaciones en el mundo real#
- Etiquetado de conjuntos de datos: Los anotadores delinean objetos con unos pocos clics en vez de trazar cientos de vértices de polígonos, y los anotadores asistidos por SAM necesitaron 14 segundos por máscara, 6,5 veces menos que la anotación manual de máscaras de COCO.
- Imagen médica: Los radiólogos delimitan tumores y órganos en exploraciones de TC y RM con recuadros y clics correctivos, y MedSAM adaptó SAM a la medicina mediante el ajuste fino con 1.570.263 pares de imágenes y máscaras médicas de 10 modalidades de imagen.










