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, 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, batch
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.



Creado 2023-11-12, Actualizado 2024-04-27
Autores: glenn-jocher (12), Burhan-Q (1), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Comentarios