Ir al contenido

YOLOX vs YOLOv10: Comparando la detección de objetos en tiempo real sin anclajes y sin NMS

La evolución de los modelos de visión por computadora en tiempo real ha estado marcada por importantes saltos arquitectónicos. Dos hitos fundamentales en este camino son YOLOX y YOLOv10. Lanzado en 2021, YOLOX logró cerrar la brecha entre la investigación académica y la aplicación industrial al introducir un diseño sin anclajes altamente efectivo. Tres años después, YOLOv10 revolucionó el campo al eliminar la necesidad de supresión no máxima (NMS) durante el postprocesamiento, superando los límites de la eficiencia y la velocidad.

Esta comparación técnica exhaustiva explora las arquitecturas, métricas de rendimiento y casos de uso ideales para ambos modelos, proporcionando información para ayudarle a elegir la herramienta adecuada para su próximo proyecto de detección de objetos.

Orígenes y metadatos del modelo

Comprender los orígenes de estos modelos proporciona contexto para sus elecciones arquitectónicas y entornos de despliegue previstos.

Detalles de YOLOX
Autores: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, y Jian Sun
Organización: Megvii
Fecha: 2021-07-18
Arxiv: https://arxiv.org/abs/2107.08430
GitHub: https://github.com/Megvii-BaseDetection/YOLOX
Docs: https://yolox.readthedocs.io/en/latest/

Más información sobre YOLOX

Detalles de YOLOv10
Autores: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han y Guiguang Ding
Organización: Universidad de Tsinghua
Fecha: 2024-05-23
Arxiv: https://arxiv.org/abs/2405.14458
GitHub: https://github.com/THU-MIG/yolov10
Documentación: https://docs.ultralytics.com/models/yolov10/

Más información sobre YOLOv10

Innovaciones Arquitectónicas

Las diferencias fundamentales entre YOLOX y YOLOv10 radican en cómo manejan las predicciones de cuadros delimitadores y el post-procesamiento.

YOLOX: Diseño pionero sin anclas

YOLOX causó sensación al hacer la transición de la familia YOLO a una arquitectura sin anclajes. Al predecir el centro de un objeto en lugar de depender de cajas de anclaje predefinidas, YOLOX redujo drásticamente el número de parámetros de diseño y el ajuste heurístico requerido para conjuntos de datos personalizados. Además, introdujo un cabezal desacoplado, separando las tareas de clasificación y regresión en vías distintas. Este enfoque resolvió el conflicto entre identificar qué es un objeto y determinar dónde está, lo que llevó a un notable aumento en la velocidad de convergencia y la precisión.

YOLOv10: La revolución sin NMS

Aunque YOLOX simplificó el cabezal de detección, todavía dependía de NMS para filtrar predicciones redundantes de bounding boxes. YOLOv10 abordó este cuello de botella fundamental. Al utilizar asignaciones duales consistentes durante el entrenamiento, YOLOv10 logra una detección nativa de extremo a extremo. Emplea un cabezal de uno a muchos durante el entrenamiento para asegurar señales de supervisión ricas, mientras utiliza un cabezal de uno a uno durante la inferencia para emitir predicciones finales directamente. Este diseño holístico impulsado por la eficiencia y la precisión elimina NMS por completo, reduciendo significativamente la latencia de inferencia en chips embebidos.

El impacto de eliminar NMS

La supresión no máxima es a menudo una operación compleja de acelerar en unidades de procesamiento neuronal (NPUs). Al eliminarla, YOLOv10 permite que todo el grafo del modelo se ejecute sin problemas en hardware especializado, mejorando drásticamente la compatibilidad con frameworks de optimización como OpenVINO y TensorRT.

Métricas de rendimiento y comparación

Al evaluar modelos para producción, equilibrar la precisión con la sobrecarga computacional es crítico. La tabla a continuación ilustra las compensaciones entre varias escalas de YOLOX y YOLOv10.

Modelotamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Análisis de los datos

Las métricas demuestran claramente el salto generacional de YOLOv10. Por ejemplo, YOLOv10-S logra una precisión media promedio del 46.7% en comparación con el 46.9% de YOLOX-m, pero lo hace utilizando menos de un tercio de los parámetros (7.2M frente a 25.3M) y significativamente menos FLOPs. Además, el modelo de gama alta YOLOv10-X eleva el mAP al 54.4%, lo que lo hace altamente competitivo para tareas que exigen precisión, al tiempo que sigue siendo más rápido que la arquitectura YOLOX-x anterior.

La ventaja del ecosistema de Ultralytics

Aunque YOLOX sigue siendo una implementación de investigación de código abierto robusta, la adopción de YOLOv10 proporciona acceso inmediato al ecosistema bien mantenido que ofrece Ultralytics. Elegir un modelo compatible con Ultralytics garantiza una experiencia de usuario optimizada, caracterizada por una API sencilla y una documentación exhaustiva.

Los desarrolladores se benefician enormemente de los requisitos de memoria del framework; el entrenamiento de modelos Ultralytics consume típicamente mucha menos memoria CUDA que alternativas pesadas basadas en transformadores como RT-DETR. Esta eficiente huella de entrenamiento permite tamaños de lote más grandes en hardware de consumo, acelerando el tiempo desde la recopilación de datos hasta el despliegue del modelo. Además, el framework ofrece una versatilidad inigualable, permitiendo a los usuarios cambiar sin problemas entre detección de objetos, segmentación de instancias y estimación de pose con cambios mínimos en el código.

Ejemplo de Entrenamiento e Inferencia

La API unificada hace que la validación de ideas sea increíblemente rápida. El siguiente fragmento de código demuestra lo fácil que es entrenar y desplegar un modelo YOLOv10 utilizando el backend de PyTorch:

from ultralytics import YOLO

# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")

# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")

# Export the model for edge deployment
model.export(format="engine", half=True)

Al aprovechar las rutinas de exportación integradas, la conversión de modelos a formatos como TensorRT o ONNX requiere solo una línea de código, evitando por completo los complejos obstáculos de compilación.

Casos de Uso y Escenarios de Despliegue Ideales

La elección entre estas arquitecturas depende en gran medida de sus limitaciones de hardware y de los requisitos específicos del dominio.

Análisis de vídeo en tiempo real

Para aplicaciones que requieren una latencia ultrabaja, como la conducción autónoma o la monitorización del tráfico en tiempo real, YOLOv10 es la opción superior. Su diseño de extremo a extremo sin NMS garantiza tiempos de ejecución deterministas, lo cual es crítico para sistemas de seguridad donde la latencia variable del postprocesamiento no puede ser tolerada. Los modelos alcanzan fácilmente altas tasas de fotogramas en dispositivos como la serie NVIDIA Jetson.

Bases de Referencia Académicas y Microcontroladores de Borde

YOLOX todavía tiene valor en entornos académicos donde los investigadores desean una línea base limpia con cabezal desacoplado para experimentar con estrategias de asignación de etiquetas. Además, el excepcionalmente pequeño YOLOX-Nano (con menos de 1 millón de parámetros) puede ser implementado en microcontroladores de borde altamente restringidos donde la memoria se mide en kilobytes, siempre que el hardware pueda soportar operaciones de convolución estándar.

El Estándar Definitivo: Ultralytics YOLO26

Aunque YOLOv10 supuso un avance masivo al eliminar NMS, el campo de la visión artificial progresa rápidamente. Para los desarrolladores que buscan implementar el mejor rendimiento de su clase en la actualidad, recomendamos encarecidamente explorar YOLO26.

Lanzado como el último estándar en IA de visión, YOLO26 toma las ideas fundamentales de sus predecesores y las potencia. Ofrece el equilibrio de rendimiento definitivo, soportando nativamente detección, segmentación, pose y cajas delimitadoras orientadas.

Estas son las razones por las que YOLO26 es la opción recomendada para los pipelines modernos de visión artificial:

  • Diseño de extremo a extremo sin NMS: Basándose en los avances de YOLOv10, YOLO26 es nativamente de extremo a extremo, garantizando tiempos de inferencia más rápidos y deterministas sin cuellos de botella de postprocesamiento.
  • Hasta un 43% más rápida la inferencia en CPU: Está específicamente optimizado para la computación en el borde, asegurando un rendimiento excepcional en procesadores móviles y dispositivos que carecen de GPU discretas.
  • Optimizador MuSGD: Inspirado en el entrenamiento de Modelos de Lenguaje Grandes (específicamente Kimi K2 de Moonshot AI), YOLO26 utiliza un híbrido de SGD y Muon para un entrenamiento increíblemente estable y una convergencia rápida.
  • ProgLoss + STAL: Estas funciones de pérdida avanzadas ofrecen mejoras notables en el reconocimiento de objetos pequeños, lo cual es fundamental para dominios exigentes como las imágenes aéreas y la navegación de drones.
  • Eliminación de DFL: Al eliminar la Pérdida Focal de Distribución, YOLO26 simplifica el grafo del modelo para una exportación sin fricciones a dispositivos de borde y de baja potencia.
  • Mejoras Específicas por Tarea: Ya sea que utilice la Estimación de Verosimilitud Logarítmica Residual (RLE) para estimación de pose o una pérdida de ángulo especializada para OBB, YOLO26 está ajustado para cada tarea de visión principal.

Para los desarrolladores listos para actualizar sus pipelines con las herramientas de entrenamiento y despliegue más eficientes disponibles, la transición a la Plataforma Ultralytics y el aprovechamiento de YOLO26 garantiza que se mantenga a la vanguardia de la inteligencia artificial. Los usuarios interesados en arquitecturas más antiguas pero estables también pueden revisar YOLO11 o YOLOv8 para un amplio soporte comunitario y una robustez probada.


Comentarios