Ir para o conteúdo

Detecção de Objetos

Exemplos de detecção de objetos

A detecção de objetos é uma tarefa que envolve identificar a localização e a classe de objetos em uma imagem ou fluxo de vídeo.

A saída de um detector de objetos é um conjunto de caixas delimitadoras que envolvem os objetos na imagem, juntamente com rótulos de classe e pontuações de confiança para cada caixa. A detecção de objetos é uma boa escolha quando você precisa identificar objetos de interesse em uma cena, mas não precisa saber exatamente onde o objeto está ou seu formato exato.



Assista: Detecção de Objetos com o Modelo YOLO Ultralytics Pré-treinado.

Dica

Os modelos de Detecção YOLO11 são os modelos YOLO11 padrão, ou seja, yolo11n.pt e são pré-treinados em COCO.

Modelos

Os modelos de Detecção YOLO11 pré-treinados são mostrados aqui. Os modelos de Detecção, Segmentação e Pose são pré-treinados no conjunto de dados COCO, enquanto os modelos de Classificação são pré-treinados no conjunto de dados ImageNet.

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

Modelo tamanho
(pixels)
mAPval
50-95
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(M)
FLOPs
(B)
YOLO11n 640 39.5 56.1 ± 0.8 1.5 ± 0.0 2.6 6.5
YOLO11s 640 47.0 90.0 ± 1.2 2.5 ± 0.0 9.4 21.5
YOLO11m 640 51.5 183.2 ± 2.0 4.7 ± 0.1 20.1 68.0
YOLO11l 640 53.4 238.6 ± 1.4 6.2 ± 0.1 25.3 86.9
YOLO11x 640 54.7 462.8 ± 6.7 11.3 ± 0.2 56.9 194.9
  • mAPval Os valores são para modelo único, em escala única, em COCO val2017 dataset.
    Reproduzir por yolo val detect data=coco.yaml device=0
  • Velocidade com média sobre imagens COCO val usando uma Amazon EC2 P4d instância.
    Reproduzir por yolo val detect data=coco.yaml batch=1 device=0|cpu

Treinar

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

Exemplo

from ultralytics import YOLO

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

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

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

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

Formato do conjunto de dados

O formato do conjunto de dados de deteção YOLO pode ser encontrado em detalhes no Guia do Conjunto de Dados. Para converter seu conjunto de dados existente de outros formatos (como COCO, etc.) para o formato YOLO, use a ferramenta JSON2YOLO da Ultralytics.

Validar

Validar o modelo YOLO11n treinado precisão no conjunto de dados COCO8. Não são necessários argumentos, pois o model mantém seu treinamento data e argumentos como atributos do modelo.

Exemplo

from ultralytics import YOLO

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

Prever

Use um modelo YOLO11n treinado para executar previsões em imagens.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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:
    xywh = result.boxes.xywh  # center-x, center-y, width, height
    xywhn = result.boxes.xywhn  # normalized
    xyxy = result.boxes.xyxy  # top-left-x, top-left-y, bottom-right-x, bottom-right-y
    xyxyn = result.boxes.xyxyn  # normalized
    names = [result.names[cls.item()] for cls in result.boxes.cls.int()]  # class name of each box
    confs = result.boxes.conf  # confidence score of each box
yolo detect predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'      # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

Veja todos os detalhes do modo predict na Prever página.

Exportar

Exporte um modelo YOLO11n para um formato diferente, como ONNX, CoreML, etc.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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.pt format=onnx      # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

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

Formato format Argumento Modelo Metadados Argumentos
PyTorch - yolo11n.pt -
TorchScript torchscript yolo11n.torchscript imgsz, half, dynamic, optimize, nms, batch, device
ONNX onnx yolo11n.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n.pb imgsz, batch, device
TF Lite tflite yolo11n.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n_paddle_model/ imgsz, batch, device
MNN mnn yolo11n.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n_rknn_model/ imgsz, batch, name, device

Veja todos os detalhes do modo export detalhes em Exportar página.

FAQ

Como faço para treinar um modelo YOLO11 no meu conjunto de dados personalizado?

Treinar um modelo YOLO11 num conjunto de dados personalizado envolve alguns passos:

  1. Prepare o Conjunto de Dados: Certifique-se de que o seu conjunto de dados está no formato YOLO. Para orientação, consulte o nosso Guia do Conjunto de Dados.
  2. Carregue o Modelo: Utilize a biblioteca Ultralytics YOLO para carregar um modelo pré-treinado ou criar um novo modelo a partir de um ficheiro YAML.
  3. Treinar o Modelo: Execute o método train em python ou o comando yolo detect train na CLI.

Exemplo

from ultralytics import YOLO

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

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=my_custom_dataset.yaml model=yolo11n.pt epochs=100 imgsz=640

Para opções de configuração detalhadas, visite a página de Configuração.

Quais modelos pré-treinados estão disponíveis no YOLO11?

O Ultralytics YOLO11 oferece vários modelos pré-treinados para deteção de objetos, segmentação e estimativa de pose. Estes modelos são pré-treinados no conjunto de dados COCO ou ImageNet para tarefas de classificação. Aqui estão alguns dos modelos disponíveis:

Para uma lista detalhada e métricas de desempenho, consulte a secção Modelos.

Como posso validar a precisão do meu modelo YOLO treinado?

Para validar a precisão do seu modelo YOLO11 treinado, pode utilizar o comando .val() em python ou o comando yolo detect val na CLI. Isto fornecerá métricas como mAP50-95, mAP50 e muito mais.

Exemplo

from ultralytics import YOLO

# Load the model
model = YOLO("path/to/best.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # mAP50-95
yolo detect val model=path/to/best.pt

Para mais detalhes sobre a validação, visite a página Val.

Para quais formatos posso exportar um modelo YOLO11?

Ultralytics YOLO11 permite exportar modelos para vários formatos, como ONNX, TensorRT, CoreML e outros, para garantir a compatibilidade entre diferentes plataformas e dispositivos.

Exemplo

from ultralytics import YOLO

# Load the model
model = YOLO("yolo11n.pt")

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

Consulte a lista completa de formatos suportados e as instruções na página Exportar.

Por que devo usar o Ultralytics YOLO11 para detecção de objetos?

O Ultralytics YOLO11 foi concebido para oferecer um desempenho de ponta para deteção de objetos, segmentação e estimativa de pose. Aqui estão algumas vantagens principais:

  1. Modelos Pré-Treinados: Utilize modelos pré-treinados em conjuntos de dados populares como COCO e ImageNet para um desenvolvimento mais rápido.
  2. Alta Precisão: Atinge pontuações mAP impressionantes, garantindo uma detecção de objetos confiável.
  3. Velocidade: Otimizado para inferência em tempo real, tornando-o ideal para aplicações que exigem processamento rápido.
  4. Flexibilidade: Exporte modelos para vários formatos como ONNX e TensorRT para implementação em múltiplas plataformas.

Explore o nosso Blog para casos de uso e histórias de sucesso que mostram o YOLO11 em ação.



📅 Criado há 1 ano ✏️ Atualizado há 5 meses

Comentários