Ultralytics YOLO27:

Avaliação de Modelos com Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Visualização de Testes de Desempenho#

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 teste de desempenho 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.

Consulta a pré-visualização não lançada do YOLO27 para obteres benchmarks prelimininares de velocidade.



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

Porque é que os testes de desempenho são cruciais?#

  • Decisões Informadas: Obtém informações sobre as compensações entre velocidade e precisão.
  • Alocação de Recursos: Compreende o desempenho de diferentes formatos de exportação em diferentes hardwares.
  • Otimização: Descobre qual o formato de exportação que oferece o melhor desempenho para o teu caso de uso específico.
  • Eficiência de Custos: Utiliza os recursos de hardware de forma mais eficiente com base nos resultados dos testes de desempenho.

Métricas Chave no Modo de Teste de Desempenho#

Formatos de exportação suportados#

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

Exemplos de utilização#

Instalação recomendada

Instala o Ultralytics com dependências de exportação antes de realizar os testes de desempenho para evitar pacotes em falta.

pip install ultralytics[export]

Executa testes de desempenho do YOLO26n em todos os formatos de exportação suportados (ONNX, TensorRT, etc.). Consulta a secção de Argumentos abaixo para ver 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 ajustar os testes de desempenho às suas necessidades específicas e comparar o desempenho de diferentes formatos de exportação com facilidade.

ChaveValor predefinidoDescriçã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 os testes de desempenho, incluindo tipicamente caminhos e definições para dados de validação. Exemplo: "coco8.yaml". A classificação aceita 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. Deve ser um único número inteiro para imagens quadradas (por exemplo, 640); benchmark() apenas suporta tamanhos de imagem quadrados.
quantizeNonePrecisão solicitada: 16 (FP16) ou 8 (INT8; os esquemas PTQ necessitam de calibração data/fraction, os baseados apenas em pesos não); 32/não definido é FP32 onde o formato o suporta — um formato que não consiga exportar FP32 rejeita um 32 explícito ou recorre à precisão de que necessita. A linha nativa do PyTorch não é exportada: apenas 16 a afeta, selecionando a inferência FP16, enquanto 8, 32 e não definido executam FP32. Cada formato executa então a inferência à sua própria precisão de tempo de execução. Substitui os sinalizadores obsoletos half/int8.
device'cpu'Define o(s) dispositivo(s) de computação para os testes de desempenho, tais como "cpu" ou "cuda:0".
verboseFalseControla o nível de detalhe no registo de saída. Define verbose=True para registos detalhados.
eps0.001Pequeno épsilon (milissegundos) adicionado ao tempo de inferência por imagem antes de o converter para FPS, evitando a divisão por zero. Raramente alterado.
format''Testa o desempenho apenas do formato de exportação especificado (por exemplo, format=onnx). Deixa-o em branco para testar automaticamente todos os formatos suportados.
Predefinições da função `benchmark()` autónoma

A função autónoma benchmark() (from ultralytics.utils.benchmarks import benchmark) utiliza as suas próprias predefinições 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 testes de desempenho tentarão ser executados automaticamente em todos os formatos de exportação possíveis listados abaixo. Em alternativa, podes executar testes de desempenho 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

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#

  • 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 chave como a precisão média média (mAP50-95), a precisão e o tempo de inferência em milissegundos. Para executar testes de desempenho, podes utilizar comandos Python ou da CLI. Por exemplo, para executar testes de desempenho 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 teste de desempenho, visita a secção Argumentos.

  • 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: Fornece até 3x mais velocidade na CPU.
    • TensorRT: Oferece até 5x mais velocidade na GPU.
    • OpenVINO: Especificamente otimizado para hardware 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 Exportar para obteres detalhes completos.

  • Testar o desempenho dos teus modelos YOLO26 é essencial por várias razões:

    • Decisões Informadas: Compreende as compensações entre velocidade e precisão.
    • Alocação de Recursos: Avalia o desempenho em diferentes opções de hardware.
    • Otimização: Determina qual o formato de exportação que oferece o melhor desempenho para casos de uso específicos.
    • Eficiência de Custos: Otimiza a utilização de hardware com base nos resultados dos testes de desempenho.

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

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

    • ONNX: O melhor para o desempenho da CPU.
    • TensorRT: Ideal para a eficiência da GPU.
    • OpenVINO: Otimizado para hardware Intel.
    • CoreML e TensorFlow: Úteis para iOS e aplicações de aprendizagem automática em geral.

    Para uma lista completa dos formatos suportados e das respetivas vantagens, consulta a secção Formatos de Exportação Suportados.

  • Ao executar testes de desempenho, vários argumentos podem ser personalizados para se adequarem a necessidades específicas:

    • model: Caminho para o ficheiro do modelo (por exemplo, "yolo26n.pt").
    • data: Caminho para o YAML do conjunto de dados (por exemplo, "coco8.yaml"); a classificação aceita 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 de teste de desempenho utiliza o mesmo tamanho de imagem quadrada em todo o PyTorch e formatos exportados para uma comparação justa.
    • quantize: Precisão solicitada: 16 para FP16, 8 para INT8 (útil para dispositivos de ponta); 32/não definido é FP32 onde o formato o suporta — um formato que não consiga exportar FP32 rejeita um 32 explícito ou recorre à precisão de que necessita. A linha nativa do PyTorch não é exportada: apenas 16 a afeta, selecionando a inferência FP16, enquanto 8, 32 e não definido executam FP32. Cada formato executa então a inferência à sua própria precisão de tempo de execução.
    • device: Especifica o dispositivo de computação (por exemplo, "cpu", "cuda:0").
    • verbose: Controla o nível de detalhe do registo.

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

Comentários