Saltar para o conteúdo

Segmentação de instâncias

Exemplos de segmentação de instâncias

A segmentação de instâncias vai um passo além da deteção de objectos e envolve a identificação de objectos individuais numa imagem e a sua segmentação do resto da imagem.

O resultado de um modelo de segmentação de instâncias é um conjunto de máscaras ou contornos que delineia cada objeto na imagem, juntamente com etiquetas de classe e pontuações de confiança para cada objeto. A segmentação de instâncias é útil quando é necessário saber não só onde estão os objectos numa imagem, mas também qual é a sua forma exacta.



Ver: Executar a segmentação com o modelo Ultralytics YOLO pré-treinado em Python.

Dica

YOLO11 Os modelos de segmento utilizam o -seg sufixo, ou seja yolo11n-seg.pt e são pré-treinados em COCO.

Modelos

YOLO11 Os modelos Segment pré-treinados são mostrados aqui. Os modelos Detetar, Segmentar e Pose são pré-treinados no conjunto de dados COCO, enquanto os modelos Classificar são pré-treinados no conjunto de dados ImageNet.

Os modelos são transferidos automaticamente a partir daversão mais recentede Ultralytics na primeira utilização.

Modelo tamanho
(pixéis)
mAPbox
50-95
mAPmask
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO11n-seg 640 38.9 32.0 65.9 ± 1.1 1.8 ± 0.0 2.9 10.4
YOLO11s-seg 640 46.6 37.8 117.6 ± 4.9 2.9 ± 0.0 10.1 35.5
YOLO11m-seg 640 51.5 41.5 281.6 ± 1.2 6.3 ± 0.1 22.4 123.3
YOLO11l-seg 640 53.4 42.9 344.2 ± 3.2 7.8 ± 0.2 27.6 142.2
YOLO11x-seg 640 54.7 43.8 664.5 ± 3.2 15.8 ± 0.7 62.1 319.0
  • mAPval são valores para modelo único e escala única em COCO val2017 conjunto de dados.
    Reproduzir por yolo val segment data=coco-seg.yaml device=0
  • Velocidade média das imagens COCO val utilizando um Amazon EC2 P4d instância.
    Reproduzir por yolo val segment data=coco-seg.yaml batch=1 device=0|cpu

Comboio

Treinar YOLO11n-seg no conjunto de dados COCO8-seg para 100 épocas com o tamanho de imagem 640. Para obter uma lista completa dos argumentos disponíveis, consulte a página Configuração.

Exemplo

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml pretrained=yolo11n-seg.pt epochs=100 imgsz=640

Formato do conjunto de dados

YOLO O formato do conjunto de dados de segmentação pode ser consultado em pormenor no Guia do conjunto de dados. Para converter o seu conjunto de dados existente de outros formatos (como COCO, etc.) para o formato YOLO , utilize a ferramenta JSON2YOLO em Ultralytics.

Val

Validar o modelo YOLO11n-seg treinado exatidão no conjunto de dados COCO8-seg. Não são necessários argumentos, uma vez que o model mantém a sua formação data e argumentos como atributos do modelo.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list contains map50-95(M) of each category
yolo segment val model=yolo11n-seg.pt  # val official model
yolo segment val model=path/to/best.pt  # val custom model

Prever

Utilizar um modelo YOLO11n-seg treinado para executar previsões em imagens.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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
yolo segment predict model=yolo11n-seg.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

Ver completo predict detalhes do modo no Prever página.

Exportação

Exportar um modelo YOLO11n-seg para um formato diferente, como ONNX, CoreML, etc.

Exemplo

from ultralytics import YOLO

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

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Os formatos de exportação disponíveis em YOLO11-seg encontram-se na tabela abaixo. É possível exportar para qualquer formato usando o format argumento, ou seja format='onnx' ou format='engine'. É possível prever ou validar diretamente nos modelos exportados, ou seja yolo predict model=yolo11n-seg.onnx. São apresentados exemplos de utilização para o seu modelo após a conclusão da exportação.

Formato format Argumento Modelo Metadados Argumentos
PyTorch - yolo11n-seg.pt -
TorchScript torchscript yolo11n-seg.torchscript imgsz, optimize, batch
ONNX onnx yolo11n-seg.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n-seg_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolo11n-seg.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n-seg.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-seg_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolo11n-seg.pb imgsz, batch
TF Leve tflite yolo11n-seg.tflite imgsz, half, int8, batch
TF Borda TPU edgetpu yolo11n-seg_edgetpu.tflite imgsz
TF.js tfjs yolo11n-seg_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolo11n-seg_paddle_model/ imgsz, batch
MNN mnn yolo11n-seg.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-seg_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-seg_imx_model/ imgsz, int8

Ver completo export pormenores no Exportação página.

FAQ

Como é que treino um modelo de segmentação YOLO11 num conjunto de dados personalizado?

Para treinar um modelo de segmentação YOLO11 em um conjunto de dados personalizado, primeiro é necessário preparar o conjunto de dados no formato de segmentação YOLO . Você pode usar ferramentas como JSON2YOLO para converter conjuntos de dados de outros formatos. Quando o conjunto de dados estiver pronto, é possível treinar o modelo usando os comandos Python ou CLI :

Exemplo

from ultralytics import YOLO

# Load a pretrained YOLO11 segment model
model = YOLO("yolo11n-seg.pt")

# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo segment train data=path/to/your_dataset.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

Consulte a página Configuração para obter mais argumentos disponíveis.

Qual é a diferença entre a deteção de objectos e a segmentação de instâncias em YOLO11?

A deteção de objectos identifica e localiza os objectos numa imagem desenhando caixas delimitadoras à sua volta, enquanto a segmentação de instâncias não só identifica as caixas delimitadoras como também delineia a forma exacta de cada objeto. YOLO11 modelos de segmentação de instâncias fornecem máscaras ou contornos que delineiam cada objeto detectado, o que é particularmente útil para tarefas em que é importante conhecer a forma exacta dos objectos, como a imagiologia médica ou a condução autónoma.

Porquê utilizar YOLO11 para a segmentação de exemplos?

Ultralytics YOLO11 é um modelo de última geração reconhecido pela sua elevada precisão e desempenho em tempo real, tornando-o ideal para tarefas de segmentação de instâncias. YOLO11 Os modelos de segmentação são pré-treinados no conjunto de dados COCO, garantindo um desempenho robusto numa variedade de objectos. Além disso, o YOLO suporta funcionalidades de formação, validação, previsão e exportação com uma integração perfeita, tornando-o altamente versátil para aplicações de investigação e industriais.

Como é que 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("yolo11n-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)
yolo segment val model=yolo11n-seg.pt

Estes passos fornecer-lhe-ão métricas de validação como a precisão média (mAP), crucial para avaliar o desempenho do modelo.

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

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

Exemplo

from ultralytics import YOLO

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

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx

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

📅C riado há 1 ano ✏️ Atualizado há 1 mês

Comentários