Benchmarking de Modelos com Ultralytics YOLO

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
Uma vez que seu modelo é treinado e validado, o próximo passo lógico é avaliar seu desempenho em vários cenários do mundo real. O modo de benchmark no Ultralytics YOLO26 serve a esse propósito, fornecendo uma estrutura robusta para avaliar a velocidade e a precisão do seu modelo em uma variedade de formatos de exportação.
Assista: Benchmark de Modelos Ultralytics YOLO26 | Como Comparar o Desempenho do Modelo em Hardware Diferente?
Por que o Benchmarking é Crucial?
- Decisões Informadas: Obtenha insights sobre as compensações entre velocidade e precisão.
- Alocação de Recursos: Entenda como diferentes formatos de exportação se comportam em diferentes hardwares.
- Otimização: Descubra qual formato de exportação oferece o melhor desempenho para seu caso de uso específico.
- Eficiência de Custo: Utilize os recursos de hardware de forma mais eficiente com base nos resultados de benchmark.
Métricas Chave no Modo Benchmark
- mAP50-95: Para detecção de objetos, segmentação e estimativa de pose.
- accuracy_top5: Para classificação de imagem.
- Tempo de Inferência: Tempo necessário para cada imagem em milissegundos.
Formatos de Exportação Suportados
- ONNX: Para um desempenho otimizado da CPU
- TensorRT: Para máxima eficiência da 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 uma aceleração de CPU de até 3x.
- Exporte para TensorRT para uma aceleração de GPU de até 5x.
Exemplos de uso
Execute benchmarks YOLO26n em todos os formatos de exportação suportados (ONNX, TensorRT, etc.). Consulte 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, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo26n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo26n.pt data='coco8.yaml' imgsz=640 format=onnx
Argumentos
Argumentos como model, data, imgsz, half, device, verbose e format oferecem aos usuários a flexibilidade de ajustar os benchmarks para suas necessidades específicas e comparar o desempenho de diferentes formatos de exportação com facilidade.
| Chave | Valor Padrão | Descrição |
|---|---|---|
model | None | Especifica o caminho para o arquivo do modelo. Aceita ambos os .pt e .yaml formatos, por exemplo, "yolo26n.pt" para modelos pré-treinados ou arquivos de configuração. |
data | None | Caminho para um arquivo 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 inteiro para imagens quadradas ou uma tupla (width, height) para não quadradas, por exemplo, (640, 480). |
half | False | Ativa a inferência FP16 (meia precisão), reduzindo o uso de memória e possivelmente aumentando a velocidade em hardware compatível. Use half=True para ativar. |
int8 | False | Ativa a quantização INT8 para um desempenho ainda mais otimizado em dispositivos suportados, especialmente útil para dispositivos edge. Defina int8=True para usar. |
device | None | Define o(s) dispositivo(s) de computação para benchmarking, como "cpu" ou "cuda:0". |
verbose | False | Controla o nível de detalhe na saída de registro. Defina verbose=True para logs detalhados. |
format | '' | Benchmarks apenas para o formato de exportação especificado (por exemplo, format=onnx). Deixe em branco para testar todos os formatos suportados automaticamente. |
Formatos de Exportação
Os benchmarks tentarão ser executados automaticamente em todos os formatos de exportação possíveis listados abaixo. Alternativamente, você pode executar benchmarks para um formato específico usando o format argumento, que aceita qualquer um dos formatos mencionados abaixo.
| Formato | format Argumento | 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, 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, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, 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, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
Veja todos os detalhes do modo export detalhes em Exportar página.
FAQ
Como faço benchmark do desempenho do meu modelo YOLO26 usando Ultralytics?
Ultralytics YOLO26 oferece um modo de Benchmark para avaliar o desempenho do seu modelo em diferentes formatos de exportação. Este modo fornece insights sobre métricas chave como precisão média (mAP50-95), acurácia e tempo de inferência em milissegundos. Para executar benchmarks, você pode usar comandos Python ou CLI. Por exemplo, para fazer benchmark em uma GPU:
Exemplo
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo26n.pt data='coco8.yaml' imgsz=640 half=False device=0
Para mais detalhes sobre os argumentos de benchmark, visite a seção Arguments.
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 otimizar o desempenho com base no seu ambiente de implantação. Por exemplo:
- ONNX: Fornece até 3x de aceleração da CPU.
- TensorRT: Oferece até 5x de aceleração da GPU.
- OpenVINO: Otimizado especificamente para hardware Intel.
Esses formatos aprimoram a velocidade e a precisão de seus modelos, tornando-os mais eficientes para várias aplicações do mundo real. Visite a página Exportar para obter detalhes completos.
Por que o benchmarking é crucial na avaliação de modelos YOLO26?
O benchmarking dos seus modelos YOLO26 é essencial por várias razões:
- Decisões Informadas: Entenda as compensações 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 do hardware com base nos resultados de benchmark.
Métricas chave como mAP50-95, precisão Top-5 e tempo de inferência ajudam a fazer estas avaliações. Consulte a seção Métricas Chave para obter mais informações.
Quais formatos de exportação são suportados pelo YOLO26, e quais são suas vantagens?
YOLO26 suporta uma variedade de formatos de exportação, cada um adaptado para hardware e casos de uso específicos:
- ONNX: Melhor para desempenho da CPU.
- TensorRT: Ideal para eficiência da GPU.
- OpenVINO: Otimizado para hardware Intel.
- CoreML e TensorFlow: Útil para aplicações iOS e aplicações de ML em geral.
Para uma lista completa dos formatos suportados e suas respectivas vantagens, consulte a seção Formatos de Exportação Suportados.
Quais argumentos posso usar para ajustar meus benchmarks YOLO26?
Ao executar benchmarks, vários argumentos podem ser personalizados para atender a necessidades específicas:
- modelo: Caminho para o arquivo do modelo (por exemplo, "yolo26n.pt").
- data: Caminho para um arquivo YAML que define o conjunto de dados (por exemplo, "coco8.yaml").
- imgsz: O tamanho da imagem de entrada, seja como um único inteiro ou uma tupla.
- half: Ative a inferência FP16 para melhor desempenho.
- int8: Ative a quantização INT8 para dispositivos edge.
- device: Especifique 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, consulte a seção Argumentos.