YOLO Vision 2026:

Evaluación comparativa de modelos con Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Visualización de la evaluación comparativa#

Introducción#

Una vez que tu modelo esté entrenado y validado, el siguiente paso lógico es evaluar su rendimiento en varios escenarios del mundo real. El modo Benchmark en Ultralytics YOLO26 cumple este propósito al proporcionar un marco sólido para evaluar la velocidad y la accuracy 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 comparativa.

Métricas clave en el modo Benchmark#

  • mAP50-95: Para object detection, segmentación y estimación de poses.
  • accuracy_top1: Para image classification.
  • Tiempo de inferencia: Tiempo necesario para 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 optimización en hardware Intel
  • CoreML, TensorFlow SavedModel y más: Para diversas necesidades de despliegue.
Consejo
  • 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#

Instalación recomendada

Instala Ultralytics con dependencias de exportación antes de realizar la evaluación comparativa para evitar la falta de paquetes.

pip install ultralytics[export]

Ejecuta las 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 las opciones de exportación.

Ejemplo
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

Argumentos#

Argumentos como model, data, imgsz, quantize, device, verbose y format ofrecen a los usuarios la flexibilidad de ajustar los benchmarks a sus necesidades específicas y comparar el rendimiento de diferentes formatos de exportación con facilidad.

ClaveValor predeterminadoDescripción
modelNoneEspecifica la ruta al archivo del modelo. Acepta formatos tanto de .pt como de .yaml, por ejemplo, "yolo26n.pt" para modelos preentrenados o archivos de configuración.
dataNoneRuta al YAML del conjunto de datos para el benchmark, que normalmente incluye rutas y ajustes para validation data. Ejemplo: "coco8.yaml". La clasificación en su lugar acepta un directorio de conjuntos de datos o un nombre de conjunto de datos integrado (por ejemplo, imagenet10).
imgsz640El tamaño de la imagen de entrada para el modelo. Debe ser un único número entero para imágenes cuadradas (por ejemplo, 640); benchmark() solo admite tamaños de imagen cuadrados.
quantizeNonePrecisión de cuantización: 16 (FP16) o 8 (INT8/PTQ; requiere calibración data/fraction); 32/sin establecer es FP32. Sustituye a los flags obsoletos half/int8.
device'cpu'Define el dispositivo o dispositivos de computación para el benchmark, como "cpu" o "cuda:0".
verboseFalseControla el nivel de detalle en la salida de registros. Configura verbose=True para registros detallados.
eps0.001Épsilon pequeño (milisegundos) añadido al tiempo de inferencia por imagen antes de convertirlo a FPS, lo que evita la división por cero. Raramente se cambia.
format''Realiza el benchmark únicamente del formato de exportación especificado (por ejemplo, format=onnx). Déjalo en blanco para probar todos los formatos compatibles de manera automática.
Valores predeterminados de la función `benchmark()` independiente

La función independiente benchmark() (from ultralytics.utils.benchmarks import benchmark) utiliza sus propios valores predeterminados de firma en lugar de los valores de la tabla anterior, notablemente model="yolo26n.pt" y imgsz=160; pasa imgsz explícitamente para que coincida con el CLI de yolo benchmark.

Formatos de exportación#

Los benchmarks intentarán ejecutarse automáticamente en todos los formatos de exportación posibles que se enumeran a continuación. De forma alternativa, puedes ejecutar benchmarks para un formato específico utilizando el argumento format, que acepta cualquiera de los formatos mencionados a continuación.

FormatoArgumento de formatModeloMetadatosArgumentos
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms

Consulta todos los detalles de export en la página Export.

FAQ#

  • 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 mean Average Precision (mAP50-95), precisión y tiempo de inferencia en milisegundos. Para ejecutar benchmarks, puedes usar comandos de Python o del CLI. Por ejemplo, para hacer un benchmark en una GPU:

    Ejemplo
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Para obtener más detalles sobre los argumentos de los benchmarks, visita la sección Arguments.

  • Exportar modelos de YOLO26 a diferentes formatos como ONNX, TensorRT y OpenVINO te permite optimizar el rendimiento en función de tu entorno de despliegue. Por ejemplo:

    • ONNX: Proporciona una aceleración de CPU de hasta 3x.
    • TensorRT: Ofrece una aceleración de GPU de hasta 5x.
    • 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.

  • Realizar benchmarks de tus modelos YOLO26 es esencial por varias razones:

    • Decisiones informadas: Entiende las compensaciones entre velocidad y precisión.
    • Asignación de recursos: Mide 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 basándote en los resultados del benchmark.

    Métricas clave como mAP50-95, precisión Top-1 y tiempo de inferencia ayudan a realizar estas evaluaciones. Consulta la sección Key Metrics para obtener más información.

  • YOLO26 admite una variedad de formatos de exportación, cada uno adaptado para hardware y casos de uso específicos:

    • ONNX: El mejor para el rendimiento de CPU.
    • TensorRT: Ideal para la eficiencia de GPU.
    • OpenVINO: Optimizado para hardware Intel.
    • CoreML & TensorFlow: Útil para iOS y aplicaciones de ML generales.

    Para ver una lista completa de los formatos compatibles y sus respectivas ventajas, consulta la sección Supported Export Formats.

  • Al ejecutar benchmarks, se pueden personalizar varios argumentos para adaptarlos a necesidades específicas:

    • model: Ruta al archivo del modelo (por ejemplo, "yolo26n.pt").
    • data: Ruta al YAML del conjunto de datos (por ejemplo, "coco8.yaml"); la clasificación en su lugar acepta un directorio de conjuntos de datos o un nombre de conjunto de datos integrado (por ejemplo, imagenet10).
    • imgsz: El tamaño de la imagen de entrada cuadrada como un único número entero, como 640. El modo Benchmark utiliza el mismo tamaño de imagen cuadrada en PyTorch y en los formatos exportados para una comparación justa.
    • quantize: Precisión de cuantización: 16 para FP16, 8 para INT8 (útil para dispositivos perimetrales); 32/sin establecer es FP32.
    • device: Especifica el dispositivo de computación (por ejemplo, "cpu", "cuda:0").
    • verbose: Controla el nivel de detalle del registro.

    Para obtener una lista completa de argumentos, consulta la sección Arguments.

Comentarios