Deteção de objetos com Ultralytics YOLO#
A deteção de objetos é uma tarefa que consiste em identificar a localização e a classe dos objetos numa imagem ou num fluxo de vídeo.
O resultado de um detetor de objetos é um conjunto de caixas delimitadoras que envolvem os objetos na imagem, acompanhado por rótulos de classe e pontuações de confiança para cada caixa. A deteção de objetos é uma boa opção quando precisas de identificar objetos de interesse numa cena, mas não precisas de conhecer a sua forma exata.
Assista: Detecção de objetos com modelo Ultralytics YOLO pré-treinado.
Os modelos YOLO26 Detect são os modelos YOLO26 predefinidos, ou seja, yolo26n.pt, e são pré-treinados com COCO.
Modelos#
Os modelos YOLO26 Detect pré-treinados com o conjunto de dados COCO são apresentados abaixo.
Os modelos são transferidos automaticamente da versão mais recente do Ultralytics na primeira utilização.
| Modelo | tamanho (pixels) | 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 |
- Os valores de mAPval são para um único modelo e uma única escala no conjunto de dados COCO val2017.
Reproduz os resultados comyolo detect val data=coco.yaml device=0. Adicionanms=Falsepara reproduzir a coluna e2e. - Velocidade média nas imagens de COCO val com ONNX em CPU e TensorRT10 numa GPU NVIDIA T4.
Reproduz os resultados comyolo detect val data=coco.yaml batch=1 device=0|cpu nms=False - Os valores de Params e FLOPs referem-se a modelos fundidos após a fusão de Conv/BatchNorm e a remoção do ramo de deteção não utilizado. Os pontos de controlo pré-treinados mantêm a arquitetura de treino completa e podem apresentar contagens superiores.
Consulta a pré-visualização não lançada do YOLO27 para ver resultados preliminares de deteção em COCO.
Treinar#
Treina YOLO26n no conjunto de dados COCO8 durante 100 épocas, com um tamanho de imagem de 640. Para ver a lista completa dos argumentos disponíveis, consulta a página de configuração.
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.yaml") # crie um novo modelo a partir de YAML
model = YOLO("yolo26n.pt") # carregue um modelo pré-treinado (recomendado para treinamento)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # crie a partir de YAML e transfira os pesos
# Treinar o modelo
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Consulta os detalhes completos do modo train na página Treino. Também podes treinar modelos de deteção com o treino na nuvem da Ultralytics Platform.
Formato do conjunto de dados#
Encontras informações detalhadas sobre o formato de conjuntos de dados de deteção YOLO no guia de conjuntos de dados. Para converter um conjunto de dados COCO JSON existente para o formato YOLO, usa a função integrada convert_coco descrita no guia de conversão 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.
Validar#
Valida a precisão do modelo YOLO26n treinado. Não são necessários argumentos, porque model mantém os valores de data do treino e os argumentos como atributos do modelo: path/to/best.pt do exemplo de Treino valida o modelo em COCO8. Os pesos oficiais registam um caminho para o conjunto de dados de treino que não existe na tua máquina, por isso recorrem ao coco8.yaml predefinido para a tarefa e apresentam um aviso. Indica data para validar noutro conjunto de dados.
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.pt") # carrega um modelo oficial
model = YOLO("path/to/best.pt") # carregar um modelo personalizado
# Valida o modelo
metrics = model.val() # não são necessários argumentos; o conjunto de dados e as definições são guardados
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # uma lista com mAP50-95 para cada categoria
metrics.box.image_metrics # dicionário de métricas por imagem com precisão, revocação, F1, TP, FP e FNPrever#
Usa um modelo YOLO26n treinado para executar previsões em imagens.
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.pt") # carrega um modelo oficial
model = YOLO("path/to/best.pt") # carregar um modelo personalizado
# Faz previsões com o modelo
results = model("https://ultralytics.com/images/bus.jpg") # faz uma previsão numa imagem
# Acede aos resultados
for result in results:
xywh = result.boxes.xywh # centro-x, centro-y, largura, altura
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # canto superior esquerdo-x, canto superior esquerdo-y, canto inferior direito-x, canto inferior direito-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # nome da classe de cada caixa
confs = result.boxes.conf # pontuação de confiança de cada caixaConsulta os detalhes completos do modo predict na página Previsão.
Saída dos resultados#
A deteção de objetos devolve um objeto Results por imagem. O campo principal de previsão é 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 | Formato | Descrição |
|---|---|---|---|
result.boxes | Boxes | (N) | Caixas de detecção. |
result.boxes.data | torch.float32 | (N,6/7) | [x1,y1,x2,y2,conf,cls] brutos, além do 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; converta para int para obter os nomes. |
Para ver os campos Results específicos de cada tarefa, consulta a secção Resultados da previsão por tarefa.
Exportar#
Exporta um modelo YOLO26n para outro formato, como ONNX, CoreML, etc.
from ultralytics import YOLO
# Carregar um modelo
model = YOLO("yolo26n.pt") # carrega um modelo oficial
model = YOLO("path/to/best.pt") # carregar um modelo personalizado
# Exporta o modelo
model.export(format="onnx")Os formatos de exportação YOLO26 disponíveis são apresentados na tabela abaixo. Podes exportar para qualquer formato usando o argumento format, ou seja, format='onnx' ou format='engine'. Podes fazer previsões ou validar diretamente com modelos exportados, ou seja, yolo predict model=yolo26n.onnx. Os exemplos de utilização do teu modelo são apresentados quando a exportação estiver concluída.
| 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 |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, 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 |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, 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 |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou, device |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms, device |
| AMD Xilinx | xilinx | yolo26n_xilinx_model/ | ✅ | imgsz, name, quantize, data, fraction, opset, simplify, device |
nms=None usa por predefinição saídas brutas para NMS externo. Define nms=False para selecionar uma cabeça sem NMS disponível; os formatos não suportados recorrem ao respetivo caminho de saída nativo. As entradas nms acima identificam os formatos que podem incorporar NMS com nms=True.
Consulte os detalhes completos de export na página Exportação.
Perguntas frequentes#
Sim. O guia de início rápido da Ultralytics Platform apresenta um fluxo de trabalho no navegador para anotar conjuntos de dados, treinar modelos de deteção em GPUs na nuvem e implementá-los em pontos de acesso de inferência.
O treino de um modelo YOLO26 com um conjunto de dados personalizado envolve alguns passos:
- Prepara o conjunto de dados: Certifica-te de que o teu conjunto de dados está no formato YOLO. Para obteres orientações, consulta o nosso guia de conjuntos de dados.
- Carrega o modelo: Usa a biblioteca Ultralytics YOLO para carregar um modelo pré-treinado ou criar um novo modelo a partir de um ficheiro YAML.
- Treina o modelo: Executa o método
trainem Python ou o comandoyolo detect trainna CLI.
Exemplofrom ultralytics import YOLO # Carregar um modelo pré-treinado model = YOLO("yolo26n.pt") # Treina o modelo com o teu conjunto de dados personalizado model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)Para consultar as opções de configuração detalhadas, visita a página de configuração.
Ultralytics YOLO26 oferece vários modelos pré-treinados para deteção de objetos, segmentação de instâncias, segmentação semântica, estimativa de profundidade, classificação, estimativa de pose e caixas delimitadoras orientadas. Estes modelos são pré-treinados com o conjunto de dados COCO, Cityscapes para segmentação semântica, uma mistura de vários conjuntos de dados para estimativa de profundidade, ImageNet para classificação ou DOTAv1 para OBB. Eis alguns dos modelos disponíveis:
Para consultar uma lista detalhada e as métricas de desempenho, visita a secção Modelos.
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 fornece métricas como mAP50-95, mAP50 e outras.Exemplofrom ultralytics import YOLO # Carrega o modelo model = YOLO("path/to/best.pt") # Valida o modelo metrics = model.val() print(metrics.box.map) # mAP50-95Para mais detalhes sobre a validação, visita a página Validação.
O Ultralytics YOLO26 permite exportar modelos para vários formatos, como ONNX, TensorRT, CoreML e outros, para garantir a compatibilidade com diferentes plataformas e dispositivos.
Exemplofrom ultralytics import YOLO # Carrega o modelo model = YOLO("yolo26n.pt") # Exporta o modelo para o formato ONNX model.export(format="onnx")Consulta a lista completa dos formatos suportados e as instruções na página Exportação.
Ultralytics YOLO26 foi concebido para oferecer desempenho de ponta em deteção de objetos, segmentação de instâncias, segmentação semântica e estimativa de pose. Eis algumas vantagens principais:
- Modelos pré-treinados: Usa modelos pré-treinados com conjuntos de dados populares, como COCO e ImageNet, para acelerar o desenvolvimento.
- Elevada precisão: Obtém resultados impressionantes de mAP, garantindo uma deteção de objetos fiável.
- Velocidade: Otimizado para inferência em tempo real, é ideal para aplicações que exigem processamento rápido.
- Flexibilidade: Exporta modelos para vários formatos, como ONNX e TensorRT, para os implementar em diversas plataformas.
Explora o nosso Blog para veres casos de utilização e histórias de sucesso que mostram YOLO26 em ação.