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
Depois 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 Benchmark no Ultralytics YOLO11 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 YOLO11 | Como Comparar o Desempenho do Modelo em Diferentes Hardwares?
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 YOLO11n em todos os formatos de exportação suportados, incluindo ONNX, TensorRT, etc. Consulte a seção Argumentos abaixo para obter uma lista completa de argumentos de exportação.
Exemplo
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo11n.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, "yolo11n.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 |
'' |
Compare o modelo em um único formato de exportação. i.e format=onnx |
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 | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , device |
Veja todos os detalhes do modo export
detalhes em Exportar página.
FAQ
Como posso avaliar o desempenho do meu modelo YOLO11 usando Ultralytics?
Ultralytics YOLO11 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 benchmark em uma GPU:
Exemplo
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.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 YOLO11 para diferentes formatos?
Exportar modelos YOLO11 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 YOLO11?
Fazer o benchmark dos seus modelos YOLO11 é essencial por vários motivos:
- 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 mais informações.
Quais formatos de exportação são suportados pelo YOLO11 e quais são suas vantagens?
O YOLO11 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 YOLO11?
Ao executar benchmarks, vários argumentos podem ser personalizados para atender a necessidades específicas:
- model: Caminho para o arquivo do modelo (por exemplo, "yolo11n.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.