Evaluación comparativa de modelos con Ultralytics YOLO
Visualización de evaluaciones comparativas
Es posible que necesites actualizar la página para ver los gráficos correctamente debido a posibles problemas con las cookies.
Introducción
Una vez que tu modelo esté entrenado y validado, el siguiente paso lógico es evaluar su rendimiento en diversos escenarios del mundo real. El modo Benchmark en Ultralytics YOLO26 cumple este propósito proporcionando un marco sólido para evaluar la velocidad y la precisión de tu modelo en una variedad de formatos de exportación.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
¿Por qué es crucial la evaluación comparativa?
- Decisiones informadas: Obtén información sobre las compensaciones entre velocidad y precisión.
- Asignación de recursos: Comprende cómo funcionan los diferentes formatos de exportación en distintos tipos de hardware.
- 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 la evaluación.
Métricas clave en el modo Benchmark
- mAP50-95: Para detección de objetos, segmentación y estimación de poses.
- accuracy_top5: Para clasificación de imágenes.
- Tiempo de inferencia: Tiempo empleado por cada imagen en milisegundos.
Formatos de exportación compatibles
- ONNX: Para un rendimiento óptimo en CPU
- TensorRT: Para una eficiencia máxima en GPU
- OpenVINO: Para la optimización de hardware Intel
- CoreML, TensorFlow SavedModel y más: Para diversas necesidades de despliegue.
- Exporta a ONNX u OpenVINO para obtener hasta 3 veces más velocidad en CPU.
- Exporta a TensorRT para obtener hasta 5 veces más velocidad en GPU.
Ejemplos de uso
Instala Ultralytics con las dependencias de exportación antes de realizar la evaluación comparativa para evitar la falta de paquetes.
pip install ultralytics[export]Ejecuta evaluaciones comparativas de YOLO26n en todos los formatos de exportación compatibles (ONNX, TensorRT, etc.). Consulta la sección de Argumentos a continuación para ver una lista completa de opciones de exportación.
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")Argumentos
Argumentos como model, data, imgsz, half, device, verbose y format ofrecen a los usuarios la flexibilidad de ajustar las evaluaciones comparativas a sus necesidades específicas y comparar el rendimiento de diferentes formatos de exportación con facilidad.
| Clave | Valor predeterminado | Descripción |
|---|---|---|
model | None | Especifica la ruta al archivo del modelo. Acepta formatos .pt y .yaml, por ejemplo, "yolo26n.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, incluyendo generalmente rutas y configuraciones para los datos de validación. Ejemplo: "coco8.yaml". |
imgsz | 640 | The input image size for the model. Can be a single integer for square images or a tuple (width, height) for non-square, e.g., (640, 480). |
half | False | Habilita la inferencia FP16 (precisión media), lo que reduce el uso de memoria y posiblemente aumenta la velocidad en hardware compatible. Usa half=True para habilitarlo. |
int8 | False | Activa la cuantización INT8 para un rendimiento aún más optimizado en dispositivos compatibles, especialmente útil para dispositivos de borde (edge devices). Establece int8=True para usarlo. |
device | None | Define el dispositivo o dispositivos de computación para la evaluación comparativa, como "cpu" o "cuda:0". |
verbose | False | Controla el nivel de detalle en la salida del registro. Establece verbose=True para obtener registros detallados. |
format | '' | Evalúa solo el formato de exportación especificado (por ejemplo, format=onnx). Déjalo en blanco para probar todos los formatos compatibles automáticamente. |
Formatos de exportación
Las evaluaciones comparativas intentarán ejecutarse automáticamente en todos los posibles formatos de exportación enumerados a continuación. Alternativamente, puedes ejecutar evaluaciones para un formato específico usando el argumento format, que acepta cualquiera de los formatos mencionados abajo.
| Formato | Argumento format | Modelo | Metadatos | Argumentos |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, 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, 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 |
Consulta todos los detalles de export en la página Export.
Preguntas frecuentes
¿Cómo evalúo el rendimiento de mi modelo YOLO26 usando Ultralytics?
Ultralytics YOLO26 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 promedio (mAP50-95), la precisión y el tiempo de inferencia en milisegundos. Para ejecutar las evaluaciones comparativas, puedes usar comandos de Python o de la CLI. Por ejemplo, para evaluar en una GPU:
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Para más detalles sobre los argumentos de la evaluación comparativa, visita la sección Argumentos.
¿Cuáles son las ventajas de exportar modelos YOLO26 a diferentes formatos?
Exportar modelos YOLO26 a diferentes formatos como ONNX, TensorRT y OpenVINO te permite optimizar el rendimiento según tu entorno de despliegue. Por ejemplo:
- ONNX: Proporciona hasta 3 veces más velocidad en CPU.
- TensorRT: Ofrece hasta 5 veces más velocidad en GPU.
- OpenVINO: Optimizado específicamente para hardware Intel.
Estos formatos mejoran tanto la velocidad como la precisión de tus modelos, haciéndolos más eficientes para diversas aplicaciones del mundo real. Visita la página Export para obtener todos los detalles.
¿Por qué es crucial la evaluación comparativa al evaluar modelos YOLO26?
Evaluar tus modelos YOLO26 es esencial por varias razones:
- Decisiones informadas: Comprende las compensaciones entre velocidad y precisión.
- Asignación de recursos: Evalúa el rendimiento en diferentes opciones de hardware.
- Optimización: Determina qué formato de exportación ofrece el mejor rendimiento para casos de uso específicos.
- Eficiencia de costes: Optimiza el uso del hardware según los resultados de la evaluación.
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 más información.
¿Qué formatos de exportación admite YOLO26 y cuáles son sus ventajas?
YOLO26 admite una variedad de formatos de exportación, cada uno diseñado para hardware y casos de uso específicos:
- ONNX: Mejor para el rendimiento de CPU.
- TensorRT: Ideal para la eficiencia de GPU.
- OpenVINO: Optimizado para hardware Intel.
- CoreML y TensorFlow: Útiles 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 compatibles.
¿Qué argumentos puedo usar para ajustar mis evaluaciones comparativas de YOLO26?
Al ejecutar evaluaciones comparativas, se pueden personalizar varios argumentos para adaptarse a necesidades específicas:
- model: Ruta al archivo del modelo (por ejemplo, "yolo26n.pt").
- data: Ruta a un archivo YAML que define el conjunto de datos (por ejemplo, "coco8.yaml").
- imgsz: El tamaño de la imagen de entrada, ya sea como un solo número entero o una tupla.
- half: Habilita la inferencia FP16 para un mejor rendimiento.
- int8: Activa la cuantización INT8 para dispositivos de borde.
- device: Especifica el dispositivo de computación (por ejemplo, "cpu", "cuda:0").
- verbose: Controla el nivel de detalle del registro.
Para ver una lista completa de argumentos, consulta la sección Argumentos.