Comparación de modelos con Ultralytics YOLO
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 CPU
- TensorRT: Para obtener la máxima eficacia 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 CPU .
- Exporta a TensorRT para acelerar hasta 5 veces 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
Argumentos
Argumentos como model
, data
, imgsz
, half
, device
y 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 multiGPU . |
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.
PREGUNTAS FRECUENTES
¿Cómo puedo comparar el rendimiento de mi modelo YOLOv8 utilizando Ultralytics?
Ultralytics YOLOv8 ofrece un modo Benchmark para evaluar el rendimiento de tu modelo en diferentes formatos de exportación. Este modo proporciona información sobre métricas clave como la Precisión Media Media (mAP50-95), la precisión y el tiempo de inferencia en milisegundos. Para realizar pruebas comparativas, puedes utilizar los comandos Python o CLI . Por ejemplo, para realizar una prueba comparativa en GPU:
Ejemplo
Para más detalles sobre los argumentos de los puntos de referencia, visita la sección Argumentos.
¿Qué ventajas tiene exportar los modelos de YOLOv8 a distintos formatos?
Exportar modelos de YOLOv8 a distintos formatos, como ONNX, TensorRT y OpenVINO , te permite optimizar el rendimiento en función de tu entorno de implantación. Por ejemplo:
- ONNX: Aumenta hasta 3 veces la velocidad de CPU .
- TensorRT: Ofrece hasta 5 veces más velocidad GPU .
- OpenVINO: Específicamente optimizados para el hardware Intel . Estos formatos mejoran tanto la velocidad como la precisión de tus modelos, haciéndolos más eficaces para diversas aplicaciones del mundo real. Visita la página Exportar para conocer todos los detalles.
¿Por qué es crucial la evaluación comparativa a la hora de evaluar los modelos YOLOv8 ?
La evaluación comparativa de tus modelos YOLOv8 es esencial por varias razones:
- Decisiones informadas: Comprende las compensaciones entre velocidad y precisión.
- Asignación de recursos: Mide el rendimiento de las distintas opciones de hardware.
- Optimización: Determina qué formato de exportación ofrece el mejor rendimiento para casos de uso específicos.
- Rentabilidad: Optimiza el uso del hardware basándote en los resultados de las pruebas comparativas. Métricas clave como mAP50-95, precisión Top-5 y tiempo de inferencia ayudan a realizar estas evaluaciones. Consulta la sección Métricas clave para obtener más información.
¿Qué formatos de exportación admite YOLOv8, y cuáles son sus ventajas?
YOLOv8 admite diversos formatos de exportación, cada uno adaptado a un hardware y unos casos de uso específicos:
- ONNX: Lo mejor para el rendimiento de CPU .
- TensorRT: Ideal para GPU eficacia.
- OpenVINO: Optimizado para el hardware Intel .
- CoreML & TensorFlow: Útil para iOS y aplicaciones generales de ML. Para obtener una lista completa de los formatos admitidos y sus respectivas ventajas, consulta la sección Formatos de exportación admitidos.
¿Qué argumentos puedo utilizar para afinar mis puntos de referencia de YOLOv8 ?
Al ejecutar pruebas comparativas, se pueden personalizar varios argumentos para adaptarlos a necesidades específicas:
- modelo: Ruta al archivo del modelo (por ejemplo, "yolov8n.pt").
- datos: Ruta a un archivo YAML que defina el conjunto de datos (por ejemplo, "coco8.yaml").
- imgsz: El tamaño de la imagen de entrada, como un único número entero o como una tupla.
- medio: Activa la inferencia FP16 para mejorar el rendimiento.
- int8: Activa la cuantización INT8 para dispositivos de borde.
- dispositivo: Especifica el dispositivo de cálculo (por ejemplo, "cpu", "cuda:0").
- verboso: Controla el nivel de detalle del registro. Para ver la lista completa de argumentos, consulta la sección Argumentos.