YOLO Vision 2026:

Segmentação de Instância#

Instance segmentation examples

A segmentação de instâncias vai um passo além da detecção de objetos e envolve identificar objetos individuais em uma imagem e segmentá-los do restante da imagem.

A saída de um modelo de segmentação de instâncias é um conjunto de máscaras ou contornos que delineiam cada objeto na imagem, juntamente com rótulos de classe e pontuações de confiança para cada objeto. A segmentação de instâncias é útil quando você precisa saber não apenas onde os objetos estão em uma imagem, mas também qual é a sua forma exata.



Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
Dica

Os modelos YOLO26 Segment usam o sufixo -seg, por exemplo, yolo26n-seg.pt, e são pré-treinados no COCO.

Modelos#

Os modelos Segment pré-treinados do YOLO26 são mostrados aqui. Os modelos Detect, Segment e Pose são pré-treinados no dataset COCO, os modelos Semantic são pré-treinados no Cityscapes e os modelos Classify são pré-treinados no dataset ImageNet.

Os Modelos são baixados automaticamente da versão mais recente do Ultralytics no primeiro uso.

Modelotamanho
(pixels)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052,544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054,445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • Os valores de mAPval são para modelo único em escala única no dataset COCO val2017.
    Reproduza com yolo val segment data=coco.yaml device=0
  • Velocidade média sobre imagens de validação do COCO usando uma instância Amazon EC2 P4d.
    Reproduza com yolo val segment data=coco.yaml batch=1 device=0|cpu
  • Os valores de Parâmetros (Params) e FLOPs são para o modelo fundido após model.fuse(), que mescla camadas Conv e BatchNorm e, para modelos end-to-end, remove a cabeça de detecção auxiliar one-to-many. Checkpoints pré-treinados mantêm a arquitetura de treinamento completa e podem apresentar contagens maiores.

Treinar#

Treine o YOLO26n-seg no dataset COCO8-seg por 100 épocas com tamanho de imagem 640. Para uma lista completa de argumentos disponíveis, veja a página de Configuração.

Exemplo
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)

Consulta os detalhes completos do modo train na página de Treino. Os modelos de segmentação também podem ser treinados com o treino na cloud da Ultralytics Platform.

Formato do conjunto de dados#

O formato do dataset de segmentação YOLO pode ser encontrado em detalhe no Guia de Datasets. Para converteres o teu dataset existente de outros formatos (como COCO, etc.) para o formato YOLO, utiliza a ferramenta JSON2YOLO da Ultralytics. Também podes criar máscaras de segmentação com a anotação da Ultralytics Platform usando ferramentas de polígono e anotação inteligente com tecnologia SAM.

Validar#

Valide a precisão do modelo YOLO26n-seg treinado no dataset COCO8-seg. Nenhum argumento é necessário, pois o model retém seus dados de treinamento (data) e argumentos como atributos do modelo.

Exemplo
from ultralytics import YOLO

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

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics  # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FN

Prever#

Use um modelo YOLO26n-seg treinado para executar previsões em imagens.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.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:
    xy = result.masks.xy  # mask polygons in pixel coordinates
    xyn = result.masks.xyn  # normalized mask polygons
    masks = result.masks.data  # binary masks, shape (N,H,W), dtype torch.uint8

Veja os detalhes completos do modo predict na página Previsão.

Saída de Resultados#

A segmentação de instâncias YOLO retorna um objeto Results por imagem. Cada resultado armazena previsões em nível de objeto, onde cada instância detectada tem sua própria máscara binária, classe, confiança e caixa.

AtributoTipoFormaDescrição
result.masksMasks(N)Máscaras de instância.
result.masks.datatorch.uint8(N,H,W)Máscaras binárias, valores 0 ou 1.
result.masks.xynp.float32list[(P,2)]Polígonos de pixels.
result.masks.xynnp.float32list[(P,2)]Polígonos normalizados.
result.boxesBoxes(N)Caixas/classes/confianças de instância.
result.boxes.clstorch.float32(N,)IDs de classe; converta para int para obter nomes.

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

Como isso difere da segmentação semântica#

A segmentação de instâncias é uma segmentação em nível de objeto: dois carros produzem duas máscaras, duas caixas e duas pontuações de confiança. A segmentação semântica é uma classificação em nível de pixel: esses mesmos carros se tornam pixels com o mesmo ID de classe em um mapa de classes do tamanho da imagem, sem caixas, confidências ou lista de polígonos padrão por objeto.

Exportar#

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

Exemplo
from ultralytics import YOLO

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

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

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

Nota

As pipelines de NMS incorporadas do CoreML (nms=True) suportam apenas modelos de deteção de objetos. As exportações de segmentação para CoreML emitem um aviso e forçam nms=False, produzindo um modelo bruto sem NMS.

FormatoArgumento formatModeloMetadadosArgumentos
PyTorch-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-seg.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo26n-seg.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-seg_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-seg_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-seg_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n-seg.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n-seg_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n-seg_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms

Veja detalhes completos de export na página Export.

FAQ#

Como treino um modelo de segmentação YOLO26 em um dataset personalizado?#

Para treinar um modelo de segmentação YOLO26 em um dataset personalizado, você primeiro precisa preparar seu dataset no formato de segmentação YOLO. Você pode usar ferramentas como o JSON2YOLO para converter datasets de outros formatos. Assim que seu dataset estiver pronto, você pode treinar o modelo usando Python ou comandos CLI:

Exemplo
from ultralytics import YOLO

# Load a pretrained YOLO26 segment model
model = YOLO("yolo26n-seg.pt")

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

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

Qual é a diferença entre detecção de objetos e segmentação de instâncias no YOLO26?#

A detecção de objetos identifica e localiza objetos dentro de uma imagem desenhando caixas delimitadoras ao redor deles, enquanto a segmentação de instâncias não apenas identifica as caixas delimitadoras, mas também descreve a forma exata de cada objeto. Os modelos de segmentação de instâncias YOLO26 fornecem máscaras ou contornos que delineiam cada objeto detectado, o que é particularmente útil para tarefas onde conhecer a forma precisa dos objetos é importante, como em imagens médicas ou condução autônoma.

Por que usar o YOLO26 para segmentação de instâncias?#

O Ultralytics YOLO26 é um modelo de última geração reconhecido por sua alta precisão e desempenho em tempo real, tornando-o ideal para tarefas de segmentação de instâncias. Os modelos YOLO26 Segment vêm pré-treinados no dataset COCO, garantindo um desempenho robusto em uma variedade de objetos. Além disso, o YOLO suporta funcionalidades de treinamento, validação, previsão e exportação com integração perfeita, tornando-o altamente versátil tanto para pesquisa quanto para aplicações industriais.

Como carrego e valido um modelo de segmentação YOLO pré-treinado?#

Carregar e validar um modelo de segmentação YOLO pré-treinado é simples. Veja como você pode fazer isso usando Python e CLI:

Exemplo
from ultralytics import YOLO

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

# Validate the model
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)

Essas etapas fornecerão métricas de validação como a Precisão Média Média (mAP), cruciais para avaliar o desempenho do modelo.

Como posso exportar um modelo de segmentação YOLO para o formato ONNX?#

Exportar um modelo de segmentação YOLO para o formato ONNX é simples e pode ser feito usando comandos Python ou CLI:

Exemplo
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-seg.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 de Exportação.

Comentários