Semantic Segmentation
A segmentação semântica atribui uma classe a cada píxel e devolve um único mapa denso de classes. Como funcionam os modelos, em que difere da segmentação de instâncias e código.
A segmentação semântica é uma tarefa de visão computacional que atribui um rótulo de classe a cada pixel de uma imagem. A saída é um mapa de classes denso com a mesma altura e largura da entrada, em que cada valor é um ID de classe, como estrada, calçada, edifício, céu ou pessoa. Enquanto a classificação de imagens atribui um rótulo por imagem e a detecção de objetos desenha uma caixa por objeto, a segmentação semântica descreve toda a cena região por região, incluindo áreas de fundo amorfas, como grama e céu, que não têm instâncias contáveis.
Como funciona a segmentação semântica#
Um modelo de segmentação semântica é um classificador por pixel. Uma rede neural convolucional (CNN) ou um Transformer de visão gera um mapa de pontuação por classe, geralmente em resolução reduzida; os mapas são ampliados para o tamanho da imagem e cada pixel recebe a classe com a maior pontuação. Durante o treinamento, a previsão de cada pixel é comparada com uma máscara rotulada usando entropia cruzada, e os pixels marcados com um valor a ignorar, geralmente 255, não entram no cálculo da perda.
A principal dificuldade é que reconhecer o que é uma região exige um campo receptivo amplo e muita redução de resolução, enquanto desenhar limites precisos exige detalhes espaciais finos. As redes totalmente convolucionais (FCN) foram as primeiras a transformar redes de classificação em preditores densos, em 2014. Em seguida, arquiteturas codificador-decodificador como a U-Net recuperaram os limites passando características do codificador em alta resolução para o decodificador por meio de conexões de atalho, e a DeepLab usou convoluções dilatadas (atros) para ampliar o contexto sem reduzir o mapa de características. Os modelos em tempo real combinam contexto amplo com detalhes finos desta forma:
Os modelos de segmentação semântica Ultralytics YOLO26, identificados pelo sufixo -sem, seguem esse padrão: classificam os pixels a partir de características do neck em escala de 1/8 que já contêm contexto combinado e, em seguida, ampliam os logits 8× até o tamanho da entrada. Eles vêm pré-treinados com as 19 classes de Cityscapes ou as 150 classes de ADE20K e são treinados com imagens de máscara ou rótulos poligonais YOLO convertidos em máscaras durante a execução.
from ultralytics import YOLO
# Load a YOLO26 semantic segmentation model trained on the 19 Cityscapes classes
model = YOLO("yolo26n-sem.pt")
# Predict one class ID for every pixel of a street image
results = model("https://ultralytics.com/images/bus.jpg")
class_map = results[0].semantic_mask.data
# Measure how much of the image each class covers
ids, counts = class_map.unique(return_counts=True)
for class_id, count in zip(ids.tolist(), counts.tolist()):
print(f"{results[0].names[class_id]}: {count / class_map.numel():.1%}")A saída lista cada classe presente e sua proporção da imagem. Todas as pessoas na foto compõem uma única proporção da classe pessoa, porque o mapa de classes armazena uma classe por pixel e não informa a qual objeto o pixel pertence.
Segmentação semântica versus segmentação de instâncias e panóptica#
A segmentação semântica é uma das três tarefas de segmentação de imagens:
- Segmentação de instâncias: Atribui uma máscara e um ID próprios a cada objeto contável; assim, três carros se tornam carro 1, carro 2 e carro 3, e os pixels de fundo ficam sem rótulo.
- Segmentação panóptica: Atribui uma classe a cada pixel, como na segmentação semântica, e adiciona um ID de instância aos pixels de objetos contáveis.
A segmentação semântica é adequada para cenas em que as regiões importam mais do que a contagem de objetos, como áreas de estrada transitáveis ou cobertura do solo.
Para ajudares a escolher entre segmentação semântica e de instâncias, consulta o guia de comparação entre segmentação semântica e de instâncias. A lição da Ultralytics Academy Segmentação semântica: rotule cada pixel explica como rotular dados e treinar um modelo para essa tarefa.
Aplicações no mundo real#
- Veículos autônomos: Os sistemas de condução segmentam os quadros das câmeras em estrada, calçada, marcações de faixa, veículos e pedestres para identificar áreas transitáveis e obstáculos.
- Imagens médicas: Os modelos contornam órgãos, tumores e lesões em exames de CT e MRI para que os profissionais de saúde possam medir volumes e planejar tratamentos; a U-Net foi originalmente projetada para imagens biomédicas.
- Análise de imagens de satélite: Os mapas de cobertura do solo classificam cada pixel como água, floresta, área de cultivo ou área construída para acompanhar o desmatamento e o crescimento urbano.
- Agricultura: Robôs agrícolas e drones classificam os pixels como cultura, erva daninha ou solo para que os pulverizadores tratem apenas as ervas daninhas.
Benchmarks e métricas#
Os modelos são avaliados com a média de interseção sobre união (IoU), ou mIoU: a sobreposição entre os pixels previstos e os reais é calculada para cada classe e depois é feita a média, de modo que classes raras, como postes e placas de trânsito, tenham o mesmo peso que estrada e céu. O ADE20K abrange 150 classes internas e externas para a compreensão geral de cenas, e o Cityscapes, o benchmark de condução mais conhecido, contém 5.000 imagens de ruas de 50 cidades com rótulos precisos por pixel, classificadas por mIoU em 19 classes de avaliação.










