Detecção de Objetos com Ultralytics YOLO#
Object detection é uma tarefa que envolve identificar a localização e a classe de objetos em uma imagem ou fluxo de vídeo.
O resultado 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 sua forma exata.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Os modelos YOLO26 Detect são os modelos YOLO26 padrão, ou seja, yolo26n.pt, e são pré-treinados no COCO.
Modelos#
Os modelos Detect pré-treinados do YOLO26 são mostrados 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 Models são baixados automaticamente do release mais recente da Ultralytics no primeiro uso.
| Modelo | tamanho (pixels) | mAPval 50-95 | mAPval 50-95(e2e) | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.4 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.7 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.2 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.4 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 193.9 |
- Os valores de mAPval são para modelo único e escala única no conjunto de dados COCO val2017.
Reproduza comyolo val detect data=coco.yaml device=0 - Speed calculada como média nas imagens de validação do COCO usando uma instância Amazon EC2 P4d.
Reproduza comyolo val detect data=coco.yaml batch=1 device=0|cpu - Os valores de Params e FLOPs são para o modelo fundido após
model.fuse(), que mescla as camadas Conv e BatchNorm e, para modelos end2end, remove o cabeçote de detecção auxiliar de um para muitos. Os checkpoints pré-treinados retêm a arquitetura de treinamento completa e podem apresentar contagens maiores.
Treinar#
Treina o YOLO26n no conjunto de dados COCO8 por 100 epochs com tamanho de imagem 640. Para ver uma lista completa de argumentos disponíveis, consulta a página Configuration.
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)Vê os detalhes completos do modo train na página Train. Os modelos de deteção também podem ser treinados com o Ultralytics Platform cloud training.
Formato do conjunto de dados#
O formato de conjunto de dados de deteção do YOLO pode ser encontrado em detalhe no Dataset Guide. Para converter o teu conjunto de dados existente de outros formatos (como COCO, etc.) para o formato YOLO, usa a ferramenta JSON2YOLO da Ultralytics. Também podes anotar e gerir conjuntos de dados de deteção com as Ultralytics Platform's AI-assisted annotation tools.
Validar#
Valida a accuracy do modelo YOLO26n treinado no conjunto de dados COCO8. Não são necessários argumentos, pois o model mantém o seu 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 FNPrever#
Use um modelo YOLO26n treinado para executar previsõ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 Prever.
Saída de Resultados#
A deteção de objetos devolve um objeto Results por imagem. O campo de previsão principal é result.boxes, que contém coordenadas de caixa, IDs de classe e pontuações de confiança para cada objeto detetado.
| Atributo | Tipo | Forma | Descrição |
|---|---|---|---|
result.boxes | Boxes | (N) | Caixas de detecção. |
result.boxes.data | torch.float32 | (N,6/7) | [x1,y1,x2,y2,conf,cls] bruto, mais ID de rastreamento 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; convertidos para int para nomes. |
Para campos de Results específicos de tarefas em cada tarefa, consulta a seção Resultados de Previsão por Tarefa.
Exportar#
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 do YOLO26 disponíveis encontram-se na tabela abaixo. Podes exportar para qualquer formato usando o argumento format, ou seja, format='onnx' ou format='engine'. Podes prever ou validar diretamente em modelos exportados, ou seja, yolo predict model=yolo26n.onnx. Exemplos de utilização são mostrados para o teu modelo 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 |
Consulta todos os detalhes de export na página Exportar.
FAQ#
Sim. O Ultralytics Platform quickstart aborda um fluxo de trabalho baseado no browser 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 em um conjunto de dados personalizado envolve algumas etapas:
- Prepare the Dataset: Garante que o teu conjunto de dados está no formato YOLO. Para orientações, consulta o nosso Dataset Guide.
- Carregue o Modelo: Use a biblioteca YOLO da Ultralytics para carregar um modelo pré-treinado ou crie um novo modelo a partir de um arquivo YAML.
- Train the Model: Executa 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 opções de configuração detalhadas, visita a página Configuration.
O Ultralytics YOLO26 oferece vários modelos pré-treinados para object detection, instance segmentation, semantic segmentation e pose estimation. Estes modelos são pré-treinados no conjunto de dados COCO, Cityscapes para segmentação semântica ou ImageNet para tarefas de classificação. Aqui estão alguns dos modelos disponíveis:
Para uma lista detalhada e métricas de desempenho, consulta a secção Models.
Para validar a precisão do teu modelo YOLO26 treinado, podes usar o método
.val()em Python ou o comandoyolo detect valna CLI. Isto fornecerá métricas como mAP50-95, mAP50 e muito mais.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 mais detalhes sobre a validação, visita a página Val.
O Ultralytics YOLO26 permite exportar modelos para vários formatos como ONNX, TensorRT, CoreML e mais, para garantir a compatibilidade entre 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")Consulta a lista completa de formatos suportados e instruções na página Export.
O Ultralytics YOLO26 foi concebido para oferecer desempenho de ponta para object detection, instance segmentation, semantic segmentation e pose estimation. Aqui estão algumas vantagens principais:
- Pretrained Models: Utiliza modelos pré-treinados em conjuntos de dados populares como COCO e ImageNet para um desenvolvimento mais rápido.
- Alta Precisão: Alcança pontuações de mAP impressionantes, garantindo uma detecção de objetos confiável.
- Speed: Otimizado para real-time inference, tornando-o ideal para aplicações que exigem processamento rápido.
- Flexibilidade: Exporte modelos para vários formatos como ONNX e TensorRT para implantação em múltiplas plataformas.
Explora o nosso Blog para casos de uso e histórias de sucesso que demonstram o YOLO26 em ação.