YOLO Vision 2026:

Benchmarking de modelos com Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Visualização de Benchmark#

Introdução#

Assim que o teu modelo estiver treinado e validado, o passo lógico seguinte é avaliar o seu desempenho em vários cenários do mundo real. O modo de benchmark no Ultralytics YOLO26 serve este propósito, fornecendo uma estrutura robusta para avaliar a velocidade e a precisão do teu modelo numa variedade de formatos de exportação.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

Por que o Benchmarking é Crucial?#

  • Decisões Informadas: Obtenha insights sobre os compromissos entre velocidade e precisão.
  • Alocação de Recursos: Entenda como diferentes formatos de exportação funcionam em diferentes hardwares.
  • Otimização: Aprenda qual formato de exportação oferece o melhor desempenho para o seu caso de uso específico.
  • Eficiência de Custos: Faça um uso mais eficiente dos recursos de hardware com base nos resultados dos benchmarks.

Principais Métricas no Modo Benchmark#

Formatos de Exportação Suportados#

  • ONNX: Para desempenho ideal em CPU
  • TensorRT: Para eficiência máxima em GPU
  • OpenVINO: Para otimização de hardware Intel
  • CoreML, TensorFlow SavedModel, e mais: Para diversas necessidades de implantação.
Dica
  • Exporte para ONNX ou OpenVINO para um aumento de até 3x na velocidade da CPU.
  • Exporte para TensorRT para um aumento de até 5x na velocidade da GPU.

Exemplos de uso#

Instalação recomendada

Instale o Ultralytics com dependências de exportação antes de realizar o benchmarking para evitar pacotes ausentes.

pip install ultralytics[export]

Execute benchmarks do YOLO26n em todos os formatos de exportação suportados (ONNX, TensorRT, etc.). Veja a seção Argumentos abaixo para uma lista completa de opções de exportação.

Exemplo
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

Argumentos#

Argumentos como model, data, imgsz, quantize, device, verbose e format dão aos utilizadores a flexibilidade de afinar os benchmarks de acordo com as suas necessidades específicas e comparar o desempenho de diferentes formatos de exportação com facilidade.

ChaveValor PadrãoDescrição
modelNoneEspecifica o caminho para o ficheiro do modelo. Aceita formatos .pt e .yaml, por exemplo, "yolo26n.pt" para modelos pré-treinados ou ficheiros de configuração.
dataNoneCaminho para o YAML do conjunto de dados para benchmark, incluindo tipicamente caminhos e definições para dados de validação. Exemplo: "coco8.yaml". A classificação utiliza em alternativa um diretório de conjunto de dados ou um nome de conjunto de dados integrado (por exemplo, imagenet10).
imgsz640O tamanho da imagem de entrada para o modelo. Tem de ser um único número inteiro para imagens quadradas (por exemplo, 640); benchmark() apenas suporta tamanhos de imagem quadrados.
quantizeNonePrecisão de quantização: 16 (FP16) ou 8 (INT8/PTQ; necessita de calibração data/fraction); 32/não definido é FP32. Substitui as flags obsoletas half/int8.
device'cpu'Define o(s) dispositivo(s) de computação para benchmark, tais como "cpu" ou "cuda:0".
verboseFalseControla o nível de detalhe na saída de registo. Define verbose=True para registos detalhados.
eps0.001Pequeno épsilon (milissegundos) adicionado ao tempo de inferência por imagem antes de convertê-lo para FPS, prevenindo a divisão por zero. Raramente alterado.
format''Faz o benchmark apenas do formato de exportação especificado (por exemplo, format=onnx). Deixa em branco para testar automaticamente todos os formatos suportados.
Padrões da função `benchmark()` autônoma

A função autónoma benchmark() (from ultralytics.utils.benchmarks import benchmark) utiliza os seus próprios valores predefinidos de assinatura em vez dos valores da tabela acima, nomeadamente model="yolo26n.pt" e imgsz=160; passa imgsz explicitamente para corresponder à CLI yolo benchmark.

Formatos de Exportação#

Os benchmarks tentarão ser executados automaticamente em todos os formatos de exportação possíveis listados abaixo. Em alternativa, podes executar benchmarks para um formato específico utilizando o argumento format, que aceita qualquer um dos formatos mencionados abaixo.

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

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

FAQ#

  • O Ultralytics YOLO26 oferece um modo Benchmark para avaliar o desempenho do teu modelo em diferentes formatos de exportação. Este modo fornece informações sobre métricas principais como a precisão média máxima (mAP50-95), precisão e tempo de inferência em milissegundos. Para executar benchmarks, podes utilizar comandos Python ou da CLI. Por exemplo, para executar o benchmark numa GPU:

    Exemplo
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Para mais detalhes sobre os argumentos de benchmark, visita a secção Arguments.

  • Exportar modelos YOLO26 para diferentes formatos como ONNX, TensorRT e OpenVINO permite-te otimizar o desempenho com base no teu ambiente de implementação. Por exemplo:

    • ONNX: Proporciona até 3x de aceleração na CPU.
    • TensorRT: Oferece até 5x de aceleração na GPU.
    • OpenVINO: Especificamente otimizado para hardware da Intel.

    Estes formatos melhoram tanto a velocidade como a precisão dos teus modelos, tornando-os mais eficientes para várias aplicações do mundo real. Visita a página Export para obteres detalhes completos.

  • Realizar o benchmark dos seus modelos YOLO26 é essencial por várias razões:

    • Decisões Informadas: Entenda os compromissos entre velocidade e precisão.
    • Alocação de Recursos: Avalie o desempenho em diferentes opções de hardware.
    • Otimização: Determine qual formato de exportação oferece o melhor desempenho para casos de uso específicos.
    • Eficiência de Custos: Otimize o uso de hardware com base nos resultados do benchmark.

    Métricas-chave como mAP50-95, precisão Top-1 e tempo de inferência ajudam a realizar estas avaliações. Consulta a secção Key Metrics para mais informações.

  • O YOLO26 suporta uma variedade de formatos de exportação, cada um adaptado para hardware e casos de uso específicos:

    • ONNX: Melhor para desempenho em CPU.
    • TensorRT: Ideal para eficiência em GPU.
    • OpenVINO: Otimizado para hardware da Intel.
    • CoreML & TensorFlow: Útil para iOS e aplicações de ML em geral.

    Para uma lista completa dos formatos suportados e respetivas vantagens, consulta a secção Supported Export Formats.

  • Ao executar benchmarks, vários argumentos podem ser personalizados para atender a necessidades específicas:

    • model: Caminho para o arquivo do modelo (por exemplo, "yolo26n.pt").
    • data: Caminho para o YAML do conjunto de dados (por exemplo, "coco8.yaml"); a classificação utiliza em alternativa um diretório de conjunto de dados ou um nome de conjunto de dados integrado (por exemplo, imagenet10).
    • imgsz: O tamanho da imagem de entrada quadrada como um único número inteiro, tal como 640. O modo Benchmark utiliza o mesmo tamanho de imagem quadrada em PyTorch e formatos exportados para uma comparação justa.
    • quantize: Precisão de quantização: 16 para FP16, 8 para INT8 (útil para dispositivos de edge); 32/não definido é FP32.
    • device: Especifica o dispositivo de computação (por exemplo, "cpu", "cuda:0").
    • verbose: Controla o nível de detalhe dos registros (logs).

    Para uma lista completa de argumentos, consulta a secção Arguments.

Comentários