Link to this sectionBenchmarking de modelos com Ultralytics YOLO#
Link to this sectionVisualização de Benchmark#
Pode ser necessário atualizar a página para visualizar os gráficos corretamente devido a possíveis problemas com cookies.
Link to this sectionIntrodução#
Uma vez que o seu modelo esteja 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 ao fornecer 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?
Link to this sectionPor 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.
Link to this sectionPrincipais Métricas no Modo Benchmark#
- mAP50-95: Para detecção de objetos, segmentação e estimativa de pose.
- accuracy_top1: Para classificação de imagem.
- Tempo de Inferência: Tempo gasto para cada imagem em milissegundos.
Link to this sectionFormatos 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.
- 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.
Link to this sectionExemplos de uso#
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.
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")Link to this sectionArgumentos#
Argumentos como model, data, imgsz, half, device, verbose e format oferecem aos usuários a flexibilidade de ajustar os benchmarks às 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 formatos .pt e .yaml, 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, tipicamente incluindo caminhos e configurações para dados de validação. Exemplo: "coco8.yaml". |
imgsz | 640 | O tamanho da imagem de entrada para o modelo. Deve ser um único inteiro para imagens quadradas (ex: 640); benchmark() suporta apenas tamanhos de imagem quadrados. |
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. 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 de borda. Defina int8=True para usar. |
device | 'cpu' | 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 do log. Defina verbose=True para logs detalhados. |
format | '' | Realiza o benchmark apenas do formato de exportação especificado (ex: format=onnx). Deixe em branco para testar todos os formatos suportados automaticamente. |
Link to this sectionFormatos de Exportação#
Os benchmarks tentarão ser executados automaticamente em todos os possíveis formatos de exportação listados abaixo. Alternativamente, você pode 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, int8, dynamic, simplify, opset, nms, batch, data, fraction, 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, int8, data, fraction, 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 |
| Qualcomm QNN | qnn | yolo26n_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Veja detalhes completos de export na página Export.
Link to this sectionFAQ#
Link to this sectionComo posso avaliar o desempenho do meu modelo YOLO26 usando a Ultralytics?#
O YOLO26 da Ultralytics 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 mean Average Precision (mAP50-95), precisão e tempo de inferência em milissegundos. Para executar benchmarks, você pode usar comandos Python ou CLI. Por exemplo, para executar o benchmark em uma 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 argumentos de benchmark, visite a seção Arguments.
Link to this sectionQuais são os benefícios de exportar modelos YOLO26 para diferentes formatos?#
Exportar modelos YOLO26 para diferentes formatos como ONNX, TensorRT e OpenVINO permite que você otimize o desempenho com base no seu ambiente de implantaçã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.
Esses formatos aprimoram tanto a velocidade quanto a precisão dos seus modelos, tornando-os mais eficientes para diversas aplicações do mundo real. Visite a página Export para detalhes completos.
Link to this sectionPor que o benchmarking é crucial na avaliação de modelos YOLO26?#
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 essas avaliações. Consulta a secção Key Metrics para mais informações.
Link to this sectionQuais formatos de exportação são suportados pelo YOLO26 e quais são suas vantagens?#
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: Úteis para iOS e aplicações gerais de ML.
Para uma lista completa de formatos suportados e suas respectivas vantagens, confira a seção Supported Export Formats.
Link to this sectionQuais argumentos posso usar para ajustar meus benchmarks do YOLO26?#
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 um arquivo YAML que define o conjunto de dados (por exemplo, "coco8.yaml").
- imgsz: O tamanho da imagem de entrada, seja como um único número inteiro ou uma tupla.
- half: Habilita inferência FP16 para melhor desempenho.
- int8: Ativa a quantização INT8 para dispositivos de borda (edge).
- 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, consulte a seção Arguments.