Meet YOLO26: next-gen vision AI.

Link to this sectionSegmentação Semântica#

Semantic segmentation examples

A segmentação semântica atribui um rótulo de classe a cada pixel em uma imagem, produzindo um mapa de classes denso que cobre toda a cena. Ao contrário da segmentação de instâncias, que separa objetos individuais, a segmentação semântica agrupa todos os pixels da mesma classe, independentemente de quantos objetos distintos estejam presentes.

A saída de um modelo de segmentação semântica é um único mapa de classes com altura e largura, onde cada valor de pixel corresponde a um ID de classe previsto. Isso torna a segmentação semântica ideal para tarefas de análise de cena, como direção autônoma, imagens médicas e mapeamento de cobertura do solo.

Dica

Use task=semantic ou a tarefa yolo semantic da CLI para segmentação semântica. Os arquivos de modelo de segmentação semântica YOLO26 usam o sufixo -sem, como yolo26n-sem.pt.

Link to this sectionModelos#

Modelos de segmentação semântica YOLO26 pré-treinados no conjunto de dados Cityscapes são mostrados abaixo.

Os Modelos baixam automaticamente a partir do release mais recente da Ultralytics no primeiro uso.

Modelotamanho
(pixels)
mIoUvalVelocidade
RTX3090 PyTorch
(ms)
parâmetros
(M)
FLOPs
(B)
YOLO26n-sem1024 × 204878.34.4 ± 0.01.622.7
YOLO26s-sem1024 × 204880.88.4 ± 0.06.588.8
YOLO26m-sem1024 × 204882.019.9 ± 0.114.3304.5
YOLO26l-sem1024 × 204882.926.5 ± 0.117.9384.7
YOLO26x-sem1024 × 204883.648.9 ± 0.240.2861.7
  • Os valores de mIoUval são para modelo único em escala única no conjunto de validação Cityscapes.
    Reproduza com yolo semantic val data=cityscapes.yaml device=0 imgsz=2048
  • As métricas de Velocidade são calculadas a partir da média das imagens de validação do Cityscapes usando uma instância RTX3090.
    Reproduza com yolo semantic val data=cityscapes.yaml batch=1 device=0|cpu imgsz=2048
  • Os valores de Params e FLOPs são para o modelo fundido após model.fuse(), que combina camadas Conv e BatchNorm. Checkpoints pré-treinados mantêm a arquitetura de treinamento completa e podem apresentar contagens maiores.

Link to this sectionTreinar#

Treine o YOLO26n-sem no conjunto de dados Cityscapes8 por 100 épocas com tamanho de imagem 1024. Para uma lista completa de argumentos disponíveis, consulte a página de Configuração.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-sem.yaml")  # build a new model from YAML
model = YOLO("yolo26n-sem.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-sem.yaml").load("yolo26n-sem.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)

Veja detalhes completos do modo train na página Treinar.

Link to this sectionFormato do conjunto de dados#

Conjuntos de dados de segmentação semântica usam imagens de máscara de canal único, geralmente PNG, onde cada valor de pixel representa um ID de classe. Pixels com valor 255 são tratados como "ignorar" e excluídos do cálculo de perda. O YAML do conjunto de dados deve especificar os caminhos para as imagens e seus diretórios de máscara correspondentes. Veja o Guia de Conjunto de Dados de Segmentação Semântica para detalhes de formato. Conjuntos de dados suportados incluem Cityscapes e ADE20K.

Link to this sectionValidar#

Valide a precisão do modelo YOLO26n-sem treinado em um conjunto de dados de segmentação semântica. Passe data explicitamente para que a validação use o YAML do conjunto de dados pretendido.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-sem.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val(data="cityscapes.yaml")
metrics.miou  # mean Intersection over Union
metrics.pixel_accuracy  # overall pixel accuracy

Link to this sectionPrever#

Use um modelo YOLO26n-sem treinado para realizar predições em imagens.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-sem.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    semantic_mask = result.semantic_mask.data  # class map, shape (H,W), integer dtype selected by class count

Veja os detalhes completos do modo predict na página Predict.

Link to this sectionSaída de Resultados#

A segmentação semântica YOLO retorna um objeto Results por imagem. Cada resultado armazena um mapa de classes denso para a imagem inteira em vez de uma lista de máscaras de objetos. Pixels com a mesma classe prevista compartilham o mesmo ID de classe, mesmo quando pertencem a objetos separados.

AtributoTipoFormaDescrição
result.semantic_maskSemanticMask(H,W)Mapa de classes denso.
result.semantic_mask.datatorch.uint8
torch.int16
torch.int32
(H,W)IDs de classe; dtype selecionado pela contagem de classes.
result.masks--Sem máscaras de instância.
result.boxes--Sem caixas/confianças de instância.
result.masks.xy--Sem polígonos padrão.

Para campos de Results específicos de cada tarefa em todas as tarefas, veja a seção Prever Resultados por Tarefa.

Link to this sectionSegmentação de Instância vs Semântica#

AspectoSegmentação de Instância (task="segment")Segmentação Semântica (task="semantic")
Objetivo da prediçãoSegmentar cada objeto detectado separadamenteAtribuir um ID de classe a cada pixel
Campo de saídaresult.masksresult.semantic_mask
Dados principaisresult.masks.dataresult.semantic_mask.data
Forma(N,H,W)(H,W)
Valores de pixelValores de máscara binária: 0 ou 1IDs de classe: 0, 1, 2, ...
Dtypetorch.uint8torch.uint8
torch.int16
torch.int32
Objetos da mesma classeMantidos como instâncias separadasMesclados na mesma região de classe
PolígonosSim, através de result.masks.xy e result.masks.xynSem saída de polígono por padrão
Caixas e confiançaSim, através de result.boxesSem caixas por instância ou pontuações de confiança
Uso típicoContagem, rastreamento, recorte, medição em nível de objetoRotulagem densa de cena, área dirigível, cobertura do solo, regiões médicas

Link to this sectionExportar#

Exporte um modelo YOLO26n-sem para um formato diferente como ONNX, CoreML, etc.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-sem.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Export the model
model.export(format="onnx")

Os formatos de exportação de segmentação semântica do YOLO26 disponíveis estão na tabela abaixo. Você pode exportar para qualquer formato usando o argumento format, i.e., format='onnx' ou format='engine'. Você pode prever ou validar diretamente nos modelos exportados, i.e., yolo predict model=yolo26n-sem.onnx. Exemplos de uso são mostrados para seu modelo após a conclusão da exportação.

FormatoArgumento formatModeloMetadadosArgumentos
PyTorch-yolo26n-sem.pt-
TorchScripttorchscriptyolo26n-sem.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-sem.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-sem_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-sem.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-sem.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-sem_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-sem.pbimgsz, batch, device
TF Litetfliteyolo26n-sem.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-sem_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-sem_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-sem_paddle_model/imgsz, batch, device
MNNmnnyolo26n-sem.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-sem_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-sem_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-sem_rknn_model/imgsz, batch, name, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-sem_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-sem_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-sem_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-sem_qnn_model/imgsz, batch, name, int8, data, fraction, device

Vê os detalhes completos de export na página de Exportação.

Link to this sectionFAQ#

Link to this sectionComo treino um modelo de segmentação semântica YOLO26 em um conjunto de dados personalizado?#

Para treinar um modelo de segmentação semântica YOLO26 em um conjunto de dados personalizado, você precisa preparar imagens de máscara PNG onde cada valor de pixel representa um ID de classe (0, 1, 2, ...) e pixels com valor 255 são ignorados durante o treinamento. Crie um arquivo YAML de conjunto de dados apontando para seus diretórios de imagens e máscaras, então treine o modelo:

Exemplo
from ultralytics import YOLO

# Load a pretrained YOLO26 semantic segmentation model
model = YOLO("yolo26n-sem.pt")

# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=512)

Verifique a página de Configuração para mais argumentos disponíveis.

Link to this sectionQual é a diferença entre segmentação de instância e segmentação semântica?#

A segmentação de instância e a segmentação semântica são tarefas de nível de pixel, mas diferem de uma forma fundamental:

  • Segmentação semântica atribui um rótulo de classe a cada pixel, mas não distingue entre objetos individuais da mesma classe. Por exemplo, todos os carros em uma cena compartilham o mesmo rótulo de classe.
  • Segmentação de instância identifica cada objeto individual separadamente, produzindo máscaras distintas para cada objeto, mesmo que pertençam à mesma classe.

A segmentação semântica é mais adequada para tarefas de compreensão de cena, como direção autônoma e mapeamento de cobertura do solo, enquanto a segmentação de instância é preferida quando contar ou rastrear objetos individuais é importante.

Link to this sectionPosso usar dados de segmentação de instância para treinar segmentação semântica?#

Sim. Se seu conjunto de dados usa rótulos de polígono Ultralytics YOLO (um .txt por imagem), omita masks_dir do YAML do conjunto de dados e o carregador converterá polígonos em máscaras semânticas por imagem instantaneamente. Para conjuntos de dados com múltiplas classes (N > 1), uma classe background extra é anexada aos names automaticamente. Para conjuntos de dados de classe única (N == 1), o treinamento permanece em 1 classe — sua classe declarada torna-se 1 na máscara e pixels não cobertos tornam-se 0. Veja o Guia de Conjunto de Dados de Segmentação Semântica para detalhes.

Link to this sectionQuais conjuntos de dados são suportados para segmentação semântica?#

O Ultralytics YOLO26 fornece configurações integradas para vários conjuntos de dados de segmentação semântica:

  • Cityscapes: Cenas de rua urbanas com 19 classes, amplamente utilizadas para pesquisa em direção autônoma.
  • ADE20K: Um conjunto de dados de análise de cena em larga escala com 150 classes.

Você também pode usar qualquer conjunto de dados personalizado que forneça anotações de máscara PNG, onde os valores dos pixels correspondem aos IDs das classes.

Link to this sectionComo faço para validar um modelo de segmentação semântica YOLO26 pré-treinado?#

Valide um modelo de segmentação semântica YOLO26 pré-treinado com o YAML de conjunto de dados usado para avaliação:

Exemplo
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-sem.pt")

# Validate the model
metrics = model.val(data="cityscapes.yaml")
print("Mean IoU:", metrics.miou)
print("Pixel Accuracy:", metrics.pixel_accuracy)

Essas etapas fornecerão métricas de validação como a média da Interseção sobre União (mIoU) e precisão de pixel, que são medidas padrão para avaliar o desempenho da segmentação semântica.

Link to this sectionComo posso exportar um modelo de segmentação semântica YOLO26 para o formato ONNX?#

Exporte um modelo de segmentação semântica YOLO26 para o formato ONNX com Python ou comandos CLI:

Exemplo
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-sem.pt")

# Export the model to ONNX format
model.export(format="onnx")

Para mais detalhes sobre exportação para vários formatos, consulte a página Exportar.

Comentários