Benchmarking de modelos com Ultralytics YOLO
Visualização de Benchmark
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
- mAP50-95: Para detecção de objetos, segmentação e estimativa de pose.
- accuracy_top5: Para classificação de imagens.
- Tempo de Inferência: Tempo decorrido para cada imagem em milissegundos.
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.
- 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 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.
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.
| Chave | Valor Padrão | Descrição |
|---|---|---|
model | None | Especifica o caminho para o ficheiro do modelo. Aceita formatos .pt e .yaml, ex.: "yolo26n.pt" para modelos pré-treinados ou ficheiros de configuração. |
data | None | Caminho 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". |
imgsz | 640 | O 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). |
half | False | Ativa 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. |
int8 | False | Ativa 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. |
device | None | Define o(s) dispositivo(s) de computação para benchmarking, tais como "cpu" ou "cuda:0". |
verbose | False | Controla 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.
| Formato | Argumento format | Modelo | Metadados | Argumentos |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_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:
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.