Interactive Segmentation
A segmentação interativa transforma cliques, caixas ou rabiscos do utilizador em máscaras de objetos e aperfeiçoa-as com cliques corretivos, desde o GrabCut até ao SAM da Meta.
A segmentação interativa produz uma máscara de um objeto com precisão ao nível do píxel a partir de algumas indicações dadas por uma pessoa, como cliques, uma caixa delimitadora ou rabiscos, e refina a máscara à medida que a pessoa acrescenta correções. Um clique positivo assinala um ponto pertencente ao objeto, e um clique negativo assinala um ponto que não lhe pertence; assim, após cada ronda, basta ao utilizador indicar o maior erro restante. A abordagem é independente da classe: o modelo segmenta aquilo que o utilizador indicar, incluindo objetos que nunca viu durante o treino, o que a torna uma ferramenta padrão para a anotação de dados, a edição de fotografias e a delimitação de estruturas em exames médicos. É uma forma de interação com intervenção humana na segmentação de imagens.
Como funciona o ciclo de cliques#
O modelo recebe a imagem juntamente com todos os cliques feitos até ao momento, e muitos modelos também recebem a máscara anterior; em seguida, prevê uma nova máscara. O ciclo repete-se até a máscara ter qualidade suficiente:
Os benchmarks simulam este utilizador: cada novo clique vai para o centro da maior região de erro, e a pontuação é o número de cliques necessários para atingir uma interseção sobre união de 85% ou 90% em relação à verdade de referência, apresentada como NoC@85 e NoC@90 em conjuntos de dados como GrabCut, Berkeley e DAVIS.
O pacote Ultralytics executa os modelos SAM da Meta com prompts de pontos, em que o rótulo 1 marca um clique positivo e o 0 um clique 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")O resultado mostra 32.598 pixels de máscara após um clique e 33.120 após três. Portanto, um único clique no casaco já seleciona quase todo o pedestre, e os cliques adicionais refinam a máscara em cerca de 500 pixels. A Ultralytics Platform executa o mesmo ciclo em seu editor de anotação: no modo Smart, um clique fora da máscara SAM atual adiciona essa região e um clique dentro dela a subtrai. A máscara concluída é salva como polígono, caixa delimitadora ou caixa orientada, conforme a tarefa do conjunto de dados.
Dos cortes de grafos aos modelos orientáveis por prompts#
As primeiras ferramentas otimizavam diretamente os contornos. O Intelligent Scissors (1995) ajustava um contorno traçado às arestas mais marcadas, e GrabCut, publicado pela Microsoft Research em 2004 e incluído no OpenCV, segmenta o objeto dentro de uma caixa desenhada pelo utilizador, ajustando iterativamente modelos de cor para o primeiro plano e o fundo e resolvendo um corte de grafo. Desde 2016, os métodos de aprendizagem profunda codificam os cliques como canais de entrada adicionais junto à imagem e aprendem a máscara com uma rede neural convolucional, e os modelos posteriores também usam a máscara anterior como entrada para a refinar.
O Modelo Segment Anything (SAM) da Meta, lançado em 2023, separou o trabalho para que a interação fosse quase instantânea: um transformador de visão pesado codifica a imagem uma vez, e um codificador de prompts leve e um descodificador de máscaras transformam cada novo conjunto de cliques numa máscara em cerca de 50 milissegundos. O SAM também foi treinado com o seu próprio ciclo interativo: durante a criação do conjunto de dados SA-1B, os anotadores clicavam para segmentar objetos com versões sucessivas do modelo, e o tempo médio por máscara caiu de 34 para 14 segundos. O SAM 2 estende os cliques ao vídeo, propagando uma máscara pelos fotogramas, e o SAM 3 acrescenta a segmentação de conceitos orientável por prompts, encontrando cada instância correspondente a uma frase curta.
Segmentação interativa vs. automática#
Os modelos de segmentação de instâncias segmentam automaticamente um conjunto fixo de classes treinadas, sem intervenção humana, o que é adequado para pipelines de produção que têm de processar todos os fotogramas. A segmentação interativa troca essa automatização por flexibilidade e é frequentemente usada para criar as máscaras de treino destes modelos, muitas vezes num ciclo de aprendizagem ativa que envia aos anotadores as imagens sobre as quais o modelo tem menos certezas. O prompting visual é a ideia mais abrangente de orientar um modelo de visão com pontos, caixas ou imagens de exemplo, e a segmentação interativa é a sua forma iterativa que produz máscaras.
Aplicações no mundo real#
- Rotulagem de conjuntos de dados: Os anotadores contornam objetos com alguns cliques em vez de traçarem centenas de vértices de polígonos, e os anotadores assistidos pelo SAM precisaram de 14 segundos por máscara, 6,5 vezes menos do que a anotação manual de máscaras do COCO.
- Diagnóstico por imagem: Os radiologistas delineiam tumores e órgãos em exames de TC e RM com caixas e cliques corretivos, e o MedSAM adaptou o SAM à medicina, ajustando-o com 1.570.263 pares de imagens e máscaras médicas que abrangem 10 modalidades de imagiologia.










