Deteção de objetos com Ultralytics YOLO#
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.
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.
| Modelo | tamanho (píxeis) | mAPval 50-95 | mAPval 50-95(e2e) | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | parâmetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 194.4 |
- mAPval valores são para modelo único em escala única no conjunto de dados COCO val2017.
Reproduz através deyolo val detect data=coco.yaml device=0. Adicionanms=Falsepara reproduzir a coluna e2e. - A velocidade é calculada como a média das imagens COCO val utilizando uma instância Amazon EC2 P4d.
Reproduza comyolo 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.
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.
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 FNPrevisão#
Utilize um modelo YOLO26n treinado para executar predições em imagens.
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 boxConsulta 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.
| Atributo | Tipo | Forma | Descrição |
|---|---|---|---|
result.boxes | Boxes | (N) | Caixas de deteção. |
result.boxes.data | torch.float32 | (N,6/7) | [x1,y1,x2,y2,conf,cls] bruto, além de um ID de rastreio opcional. |
result.boxes.xyxy | torch.float32 | (N,4) | Caixas de pixels xyxy. |
result.boxes.conf | torch.float32 | (N,) | Pontuações de confiança. |
result.boxes.cls | torch.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.
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.
| Formato | Argumento format | Modelo | Metadados | Argumentos |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, 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:
- 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.
- 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.
- Treinar o modelo: execute o método
trainem Python ou o comandoyolo detect trainna CLI.
Exemplofrom 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 comandoyolo detect valna CLI. Isto fornecerá métricas como mAP50-95, mAP50, entre outras.Exemplofrom ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95Para 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.
Exemplofrom 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:
- Modelos pré-treinados: utilize modelos pré-treinados em conjuntos de dados populares, como COCO e ImageNet, para acelerar o desenvolvimento.
- Alta precisão: alcança pontuações mAP impressionantes, garantindo uma deteção de objetos fiável.
- Velocidade: otimizado para inferência em tempo real, sendo ideal para aplicações que exigem um processamento rápido.
- 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.