Ultralytics YOLO27:

Deteção de objetos com Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

A deteção de objetos é uma tarefa que envolve identificar a localização e a classe dos objetos numa imagem ou transmissão de vídeo.

O resultado de um detetor de objetos é um conjunto de caixas delimitadoras que envolvem os objetos na imagem, juntamente com os rótulos de classe e as pontuações de confiança de cada caixa. A deteção de objetos é uma boa opção quando precisa de identificar objetos de interesse numa cena, mas não precisa de saber exatamente onde o objeto está nem a sua forma exata.



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Dica

Os modelos Detect do YOLO26 são os modelos YOLO26 predefinidos, ou seja, yolo26n.pt, e são pré-treinados em COCO.

Modelos#

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

Os modelos são baixados automaticamente da versão mais recente do lançamento da Ultralytics na primeira utilização.

Modelotamanho
(píxeis)
mAPval
50-95
mAPval
50-95(e2e)
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • mAPval valores são para modelo único em escala única no conjunto de dados COCO val2017.
    Reproduz através de yolo val detect data=coco.yaml device=0. Adiciona nms=False para reproduzir a coluna e2e.
  • A velocidade é calculada como a média das imagens COCO val utilizando uma instância Amazon EC2 P4d.
    Reproduza com yolo val detect data=coco.yaml batch=1 device=0|cpu nms=False
  • Os valores de Params e FLOPs são para modelos fundidos após a dobragem de Conv/BatchNorm e a remoção da ramificação de deteção não utilizada. Os pontos de controlo pré-treinados retêm a arquitetura de treino completa e podem apresentar contagens mais elevadas.

Consulta a pré-visualização não lançada de YOLO27 para obteres resultados preliminares de deteção no COCO.

Treinar#

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

Exemplo
from ultralytics import YOLO

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

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

Consulte os detalhes completos do modo train na página Train. Os modelos de deteção também podem ser treinados com o treino na nuvem da Ultralytics Platform.

Formato do dataset#

O formato do conjunto de dados de deteção do YOLO pode ser encontrado em detalhe no Guia de Conjuntos de Dados. Para converter um conjunto de dados JSON do COCO existente para o formato YOLO, utiliza a função incorporada convert_coco descrita no Guia de COCO para YOLO. Também podes anotar e gerir conjuntos de dados de deteção com as ferramentas de anotação assistidas por IA da Ultralytics Platform.

Validação#

Valide a precisão do modelo YOLO26n treinado no conjunto de dados COCO8. Não são necessários argumentos, pois model mantém os seus data e argumentos de treino como atributos do modelo.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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 containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Previsão#

Utilize um modelo YOLO26n treinado para executar predições em imagens.

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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

Consulta todos os detalhes do modo predict na página Predict.

Saída dos resultados#

A deteção de objetos devolve um objeto Results por imagem. O campo de predição principal é result.boxes, que contém as coordenadas das caixas, os IDs das classes e as pontuações de confiança de cada objeto detetado.

AtributoTipoFormaDescrição
result.boxesBoxes(N)Caixas de deteção.
result.boxes.datatorch.float32(N,6/7)[x1,y1,x2,y2,conf,cls] bruto, além de um ID de rastreio opcional.
result.boxes.xyxytorch.float32(N,4)Caixas de pixels xyxy.
result.boxes.conftorch.float32(N,)Pontuações de confiança.
result.boxes.clstorch.float32(N,)IDs de classe; converte para int para obter os nomes.

Para consultar os campos Results específicos da tarefa em todas as tarefas, vê a secção Resultados de Previsão por Tarefa.

Exportação#

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

Exemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.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 do YOLO26 encontram-se na tabela abaixo. Pode exportar para qualquer formato utilizando o argumento format, ou seja, format='onnx' ou format='engine'. Pode executar predições ou validar diretamente em modelos exportados, ou seja, yolo predict model=yolo26n.onnx. Os exemplos de utilização do seu modelo são apresentados após a conclusão da exportação.

FormatoArgumento formatModeloMetadadosArgumentos
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

nms=None por padrão utiliza saídas brutas para NMS externo. Define nms=False para selecionar uma cabeça livre de NMS disponível; os formatos não suportados recorrem ao seu caminho de saída nativo. As entradas nms acima identificam formatos que podem incorporar NMS com nms=True.

Consulta todos os detalhes de export na página Export.

Perguntas frequentes#

  • Sim. O guia de início rápido da Ultralytics Platform apresenta um fluxo de trabalho baseado no navegador para anotar conjuntos de dados, treinar modelos de deteção em GPUs na nuvem e implementá-los em endpoints de inferência.

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

    1. Preparar o conjunto de dados: certifique-se de que o seu conjunto de dados está no formato YOLO. Para obter orientações, consulte o nosso Guia de conjuntos de dados.
    2. Carregar 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("yolo26n.pt")
    
    # Train the model on your custom dataset
    model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)

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

  • O Ultralytics YOLO26 disponibiliza vários modelos pré-treinados para deteção de objetos, segmentação de instâncias, segmentação semântica e estimativa de pose. Estes modelos são pré-treinados no conjunto de dados COCO, no Cityscapes para segmentação semântica ou no ImageNet para tarefas de classificação. Eis alguns dos modelos disponíveis:

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

  • Para validar a precisão do seu modelo YOLO26 treinado, pode utilizar o método .val() em Python ou o comando yolo detect val na CLI. Isto fornecerá métricas como mAP50-95, mAP50, entre outras.

    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

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

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

    Exemplo
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

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

  • O Ultralytics YOLO26 foi concebido para oferecer desempenho de última geração em deteção de objetos, segmentação de instâncias, segmentação semântica e estimativa de pose. Eis algumas das principais vantagens:

    1. Modelos pré-treinados: utilize modelos pré-treinados em conjuntos de dados populares, como COCO e ImageNet, para acelerar o desenvolvimento.
    2. Alta precisão: alcança pontuações mAP impressionantes, garantindo uma deteção de objetos fiável.
    3. Velocidade: otimizado para inferência em tempo real, sendo ideal para aplicações que exigem um processamento rápido.
    4. Flexibilidade: exporte modelos para vários formatos, como ONNX e TensorRT, para implementação em várias plataformas.

    Explore o nosso Blog para conhecer casos de utilização e histórias de sucesso que demonstram o YOLO26 em ação.

Comentários