Saltar al contenido

Comparaci贸n de modelos con Ultralytics YOLO

Ultralytics YOLO ecosistema e integraciones

Introducci贸n

Una vez entrenado y validado tu modelo, el siguiente paso l贸gico es evaluar su rendimiento en diversos escenarios del mundo real. El modo Benchmark de Ultralytics YOLOv8 sirve para este prop贸sito, ya que proporciona un marco s贸lido para evaluar la velocidad y la precisi贸n de tu modelo en una serie de formatos de exportaci贸n.



Observa: Ultralytics Tutorial de Modos: Prueba comparativa

驴Por qu茅 es crucial la evaluaci贸n comparativa?

  • Decisiones fundamentadas: Obt茅n informaci贸n sobre las compensaciones entre velocidad y precisi贸n.
  • Asignaci贸n de recursos: Comprende c贸mo funcionan los distintos formatos de exportaci贸n en los distintos equipos.
  • Optimizaci贸n: Aprende qu茅 formato de exportaci贸n ofrece el mejor rendimiento para tu caso de uso espec铆fico.
  • Eficiencia de costes: Haz un uso m谩s eficiente de los recursos de hardware bas谩ndote en los resultados de las pruebas comparativas.

M茅tricas clave en el modo de evaluaci贸n comparativa

  • mAP50-95: Para detecci贸n de objetos, segmentaci贸n y estimaci贸n de la pose.
  • accuracy_top5: Para la clasificaci贸n de im谩genes.
  • Tiempo de inferencia: Tiempo que tarda cada imagen en milisegundos.

Formatos de exportaci贸n admitidos

  • ONNX: Para un rendimiento 贸ptimo de la CPU
  • TensorRT: Para maximizar la eficiencia de la GPU
  • OpenVINO: Para la optimizaci贸n del hardware Intel
  • CoreML, TensorFlow SavedModel , y M谩s: Para diversas necesidades de despliegue.

Consejo

  • Exporta a ONNX o OpenVINO para acelerar hasta 3 veces la CPU.
  • Exporta a TensorRT para acelerar hasta 5 veces la GPU.

Ejemplos de uso

Ejecuta las pruebas comparativas de YOLOv8n en todos los formatos de exportaci贸n admitidos, incluidos ONNX, TensorRT , etc. Consulta la secci贸n Argumentos para ver una lista completa de los argumentos de exportaci贸n.

Ejemplo

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Argumentos

Argumentos como model, data, imgsz, half, devicey verbose proporcionan a los usuarios la flexibilidad necesaria para ajustar los puntos de referencia a sus necesidades espec铆ficas y comparar el rendimiento de distintos formatos de exportaci贸n con facilidad.

Clave Valor por defecto Descripci贸n
model None Especifica la ruta al archivo del modelo. Acepta tanto .pt y .yaml formatos, por ejemplo "yolov8n.pt" para modelos preentrenados o archivos de configuraci贸n.
data None Ruta a un archivo YAML que define el conjunto de datos para la evaluaci贸n comparativa, que suele incluir rutas y configuraciones para los datos de validaci贸n. Ejemplo: "coco8.yaml".
imgsz 640 El tama帽o de la imagen de entrada para el modelo. Puede ser un n煤mero entero para im谩genes cuadradas o una tupla (width, height) para los no cuadrados, por ejemplo (640, 480).
half False Permite la inferencia FP16 (media precisi贸n), reduciendo el uso de memoria y posiblemente aumentando la velocidad en hardware compatible. Utiliza half=True para activarlo.
int8 False Activa la cuantizaci贸n INT8 para optimizar a煤n m谩s el rendimiento en los dispositivos compatibles, especialmente 煤til para los dispositivos de borde. Configura int8=True utilizar.
device None Define el dispositivo o dispositivos de c谩lculo para la evaluaci贸n comparativa, como por ejemplo "cpu", "cuda:0"o una lista de dispositivos como "cuda:0,1" para configuraciones multi-GPU.
verbose False Controla el nivel de detalle de la salida de registro. Un valor booleano; establecer verbose=True para los registros detallados o un flotador para los errores de umbral.

Formatos de exportaci贸n

Los Benchmarks intentar谩n ejecutarse autom谩ticamente en todos los formatos de exportaci贸n posibles que se indican a continuaci贸n.

Formato format Argumento Modelo Metadatos Argumentos
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF Lite tflite yolov8n.tflite imgsz, half, int8, batch
TF Arista TPU edgetpu yolov8n_edgetpu.tflite imgsz
TF.js tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

Ver todo export detalles en el Exportar p谩gina.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (16), Burhan-Q (3), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Comentarios