Evaluación comparativa de modelos con Ultralytics YOLO
Visualización de Benchmark
Actualizar el navegador
Es posible que deba actualizar la página para ver los gráficos correctamente debido a posibles problemas con las cookies.
Introducción
Una vez que su modelo está entrenado y validado, el siguiente paso lógico es evaluar su rendimiento en varios escenarios del mundo real. El modo de evaluación comparativa en Ultralytics YOLO11 cumple este propósito al proporcionar un marco de trabajo robusto para evaluar la velocidad y la precisión de su modelo en una variedad de formatos de exportación.
Ver: Comparativa de los modelos Ultralytics YOLO11 | ¿Cómo comparar el rendimiento del modelo en diferentes hardware?
¿Por qué es crucial la evaluación comparativa?
- Decisiones informadas: Obtenga información sobre las ventajas y desventajas entre velocidad y precisión.
- Asignación de recursos: Comprenda cómo se desempeñan los diferentes formatos de exportación en diferentes hardware.
- Optimización: Descubra qué formato de exportación ofrece el mejor rendimiento para su caso de uso específico.
- Rentabilidad: Haga un uso más eficiente de los recursos de hardware según los resultados de la evaluación comparativa.
Métricas clave en el modo de evaluación comparativa
- mAP50-95: Para detección de objetos, segmentación y estimación de pose.
- accuracy_top5: Para clasificación de imágenes.
- Tiempo de inferencia: Tiempo necesario para cada imagen en milisegundos.
Formatos de exportación admitidos
- ONNX: Para un rendimiento óptimo de la CPU
- TensorRT: Para una eficiencia máxima de la GPU
- OpenVINO: Para la optimización del hardware de Intel
- CoreML, TensorFlow SavedModel y más: Para diversas necesidades de implementación.
Consejo
- Exporta a ONNX u OpenVINO para una aceleración de la CPU de hasta 3 veces.
- Exporta a TensorRT para una aceleración de la GPU de hasta 5 veces.
Ejemplos de uso
Ejecuta pruebas de rendimiento de YOLO11n en todos los formatos de exportación compatibles, incluidos ONNX, TensorRT, etc. Consulta la sección de Argumentos a continuación para obtener una lista completa de los argumentos de exportación.
Ejemplo
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 format=onnx
Argumentos
Argumentos como model
, data
, imgsz
, half
, device
, verbose
y format
proporcionan a los usuarios la flexibilidad de ajustar las pruebas de rendimiento 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 ambos formatos .pt y .yaml , por ejemplo, "yolo11n.pt" para modelos pre-entrenados o archivos de configuración. |
data |
None |
Ruta a un archivo YAML que define el conjunto de datos para la evaluación comparativa, que normalmente incluye rutas y configuraciones para datos de validación. Ejemplo: "coco8.yaml" . |
imgsz |
640 |
El tamaño de la imagen de entrada para el modelo. Puede ser un entero único para imágenes cuadradas o una tupla (width, height) para no cuadradas, por ejemplo, (640, 480) . |
half |
False |
Habilita la inferencia FP16 (media precisión), reduciendo el uso de memoria y posiblemente aumentando la velocidad en hardware compatible. Utiliza half=True para habilitar. |
int8 |
False |
Activa la cuantización INT8 para un rendimiento aún más optimizado en dispositivos compatibles, especialmente útil para dispositivos de borde. Establece int8=True para usar. |
device |
None |
Define los dispositivos de computación para la evaluación comparativa, como "cpu" o "cuda:0" . |
verbose |
False |
Controla el nivel de detalle en la salida de los registros. Establecer verbose=True para registros detallados. |
format |
'' |
Evalúe el modelo en un solo formato de exportación. es decir, format=onnx |
Formatos de exportación
Las evaluaciones comparativas intentarán ejecutarse automáticamente en todos los formatos de exportación posibles que se enumeran a continuación. Alternativamente, puede ejecutar evaluaciones comparativas para un formato específico utilizando el format
argumento, que acepta cualquiera de los formatos mencionados a continuación.
Formato | format Argumento |
Modelo | Metadatos | Argumentos |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , device |
Ver detalles completos del export
detalles en la Exportar página.
Preguntas frecuentes
¿Cómo puedo evaluar el rendimiento de mi modelo YOLO11 utilizando Ultralytics?
Ultralytics YOLO11 ofrece un modo de evaluación comparativa 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 pruebas de rendimiento, puedes utilizar comandos de python o de la CLI. Por ejemplo, para realizar pruebas de rendimiento en una GPU:
Ejemplo
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
Para obtener más detalles sobre los argumentos de evaluación comparativa, visita la sección de Argumentos.
¿Cuáles son los beneficios de exportar modelos YOLO11 a diferentes formatos?
Exportar modelos YOLO11 a diferentes formatos como ONNX, TensorRT y OpenVINO le permite optimizar el rendimiento según su entorno de implementación. Por ejemplo:
- ONNX: Proporciona una aceleración de la CPU de hasta 3 veces.
- TensorRT: Ofrece una aceleración de la GPU de hasta 5 veces.
- OpenVINO: Específicamente optimizado para hardware Intel.
Estos formatos mejoran tanto la velocidad como la precisión de sus modelos, haciéndolos más eficientes para diversas aplicaciones del mundo real. Visite la página de Exportación para obtener detalles completos.
¿Por qué es crucial la evaluación comparativa al evaluar modelos YOLO11?
Realizar benchmarks de tus modelos YOLO11 es esencial por varias razones:
- Decisiones informadas: Comprenda las ventajas y desventajas entre velocidad y precisión.
- Asignación de recursos: Evalúe el rendimiento en diferentes opciones de hardware.
- Optimización: Determine qué formato de exportación ofrece el mejor rendimiento para casos de uso específicos.
- Eficiencia de costes: Optimice el uso del hardware en función de los resultados de las pruebas comparativas.
Las métricas clave, como mAP50-95, la precisión Top-5 y el tiempo de inferencia, ayudan a realizar estas evaluaciones. Consulte la sección Métricas Clave para obtener más información.
¿Qué formatos de exportación son compatibles con YOLO11 y cuáles son sus ventajas?
YOLO11 soporta una variedad de formatos de exportación, cada uno adaptado para hardware y casos de uso específicos:
- ONNX: Lo mejor para el rendimiento de la CPU.
- TensorRT: Ideal para la eficiencia de la GPU.
- OpenVINO: Optimizado para hardware Intel.
- CoreML y TensorFlow: Útil para aplicaciones de iOS y de ML en general.
Para obtener una lista completa de los formatos compatibles y sus respectivas ventajas, consulta la sección Formatos de exportación compatibles.
¿Qué argumentos puedo usar para ajustar mis evaluaciones comparativas de YOLO11?
Al ejecutar benchmarks, varios argumentos pueden ser personalizados para adaptarse a necesidades específicas:
- model: Ruta al archivo del modelo (p. ej., "yolo11n.pt").
- data: Ruta a un archivo YAML que define el conjunto de datos (p. ej., "coco8.yaml").
- imgsz: El tamaño de la imagen de entrada, ya sea como un entero único o una tupla.
- half: Habilita la inferencia FP16 para un mejor rendimiento.
- int8: Activa la cuantificación INT8 para dispositivos periféricos.
- device: Especifique el dispositivo de cálculo (p. ej., "cpu", "cuda:0").
- verbose: Controla el nivel de detalle del registro.
Para obtener una lista completa de los argumentos, consulte la sección Argumentos.