Benchmarking de modelos com Ultralytics YOLO

Ultralytics YOLO ecosystem and integrations

Visualização de Benchmark

Atualizar Navegador

Pode ser necessário atualizar a página para visualizar os gráficos corretamente devido a possíveis problemas com cookies.

Introdução

Assim que o seu modelo estiver treinado e validado, o próximo passo lógico é avaliar o seu desempenho em vários cenários do mundo real. O modo Benchmark no Ultralytics YOLO26 serve este propósito, fornecendo uma estrutura robusta para avaliar a velocidade e a precisão do seu modelo através de uma 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: Obtém insights sobre os compromissos entre velocidade e precisão.
  • Alocação de Recursos: Entende como diferentes formatos de exportação funcionam em diferentes hardwares.
  • Otimização: Descobre qual formato de exportação oferece o melhor desempenho para o teu caso de uso específico.
  • Eficiência de Custos: Faz 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 um desempenho ideal de CPU
  • TensorRT: Para uma eficiência máxima de GPU
  • OpenVINO: Para otimização de hardware Intel
  • CoreML, TensorFlow SavedModel e mais: Para diversas necessidades de implementação.
Dica
  • Exporta para ONNX ou OpenVINO para um aumento de velocidade de CPU de até 3x.
  • Exporta para TensorRT para um aumento de velocidade de GPU de até 5x.

Exemplos de Uso

Instalação recomendada

Instala o Ultralytics com as dependências de exportação antes de realizar o benchmarking para evitar a falta de pacotes.

pip install ultralytics[export]

Executa benchmarks do YOLO26n em todos os formatos de exportação suportados (ONNX, TensorRT, etc.). Consulta a seção de Argumentos abaixo para obter 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, half=False, device=0)

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

Argumentos

Argumentos como model, data, imgsz, half, device, verbose e format proporcionam aos utilizadores a flexibilidade para ajustar os benchmarks às suas necessidades específicas e comparar facilmente o desempenho de diferentes formatos de exportação.

ChaveValor PadrãoDescrição
modelNoneEspecifica o caminho para o ficheiro do modelo. Aceita formatos .pt e .yaml, ex.: "yolo26n.pt" para modelos pré-treinados ou ficheiros de configuração.
dataNoneCaminho para um ficheiro YAML que define o conjunto de dados para benchmarking, normalmente incluindo caminhos e configurações para dados de validação. Exemplo: "coco8.yaml".
imgsz640O tamanho da imagem de entrada para o modelo. Pode ser um único número inteiro para imagens quadradas ou um tuplo (width, height) para não quadradas, ex.: (640, 480).
halfFalseAtiva a inferência FP16 (precisão metade), reduzindo o uso de memória e, possivelmente, aumentando a velocidade em hardware compatível. Usa half=True para ativar.
int8FalseAtiva a quantização INT8 para um desempenho ainda mais otimizado em dispositivos suportados, especialmente útil para dispositivos de borda (edge). Define int8=True para usar.
deviceNoneDefine o(s) dispositivo(s) de computação para benchmarking, tais como "cpu" ou "cuda:0".
verboseFalseControla o nível de detalhe no registo de saída. Define verbose=True para registos detalhados.
format''Realiza benchmarks apenas no formato de exportação especificado (ex.: format=onnx). Deixa em branco para testar automaticamente todos os formatos suportados.

Formatos de exportação

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

FormatoArgumento formatModeloMetadadosArgumentos
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TF Litetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n_deepx_model/imgsz, int8, data, optimize, device

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

FAQ

Como posso fazer o benchmark do desempenho do meu modelo YOLO26 usando o Ultralytics?

O Ultralytics YOLO26 oferece um modo de Benchmark para avaliar o desempenho do teu modelo em diferentes formatos de exportação. Este modo fornece insights sobre métricas importantes, como mean Average Precision (mAP50-95), precisão e tempo de inferência em milissegundos. Para executar benchmarks, podes usar comandos Python ou CLI. Por exemplo, para fazer o benchmark numa GPU:

Exemplo
from ultralytics.utils.benchmarks import benchmark

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

Para mais detalhes sobre os argumentos de benchmark, visita a seção Argumentos.

Quais são os benefícios de exportar modelos YOLO26 para diferentes formatos?

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 um aumento de velocidade de CPU de até 3x.
  • TensorRT: Oferece um aumento de velocidade de GPU de até 5x.
  • OpenVINO: Especificamente otimizado para hardware Intel.

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

Por que o benchmarking é crucial ao avaliar modelos YOLO26?

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

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

Métricas-chave como mAP50-95, precisão Top-5 e tempo de inferência ajudam a fazer estas avaliações. Consulta a seção Principais Métricas para mais informações.

Quais formatos de exportação são suportados pelo YOLO26 e quais são as suas vantagens?

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

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

Para uma lista completa dos formatos suportados e as suas respectivas vantagens, consulta a seção Formatos de Exportação Suportados.

Que argumentos posso usar para ajustar os meus benchmarks do YOLO26?

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

  • model: Caminho para o ficheiro do modelo (ex.: "yolo26n.pt").
  • data: Caminho para um ficheiro YAML que define o conjunto de dados (ex.: "coco8.yaml").
  • imgsz: O tamanho da imagem de entrada, como um único número inteiro ou um tuplo.
  • half: Ativa a inferência FP16 para um melhor desempenho.
  • int8: Ativa a quantização INT8 para dispositivos de borda.
  • device: Especifica o dispositivo de computação (ex.: "cpu", "cuda:0").
  • verbose: Controla o nível de detalhe do registo.

Para uma lista completa de argumentos, consulta a seção Argumentos.

Comentários