YOLOX frente a YOLOv10: Comparativa de detección de objetos en tiempo real sin anclas y sin NMS

La evolución de los modelos de visión artificial en tiempo real ha estado marcada por importantes saltos arquitectónicos. Dos hitos fundamentales en este viaje son YOLOX y YOLOv10. Lanzado en 2021, YOLOX cerró con éxito la brecha entre la investigación académica y la aplicación industrial al introducir un diseño altamente eficaz sin anclas (anchor-free). Tres años después, YOLOv10 revolucionó el campo al eliminar la necesidad de la supresión de no máximos (NMS) durante el posprocesamiento, superando los límites de la eficiencia y la velocidad.

Esta comparativa técnica exhaustiva explora las arquitecturas, las métricas de rendimiento y los casos de uso ideales para ambos modelos, ofreciéndote información para ayudarte a elegir la herramienta adecuada para tu próximo proyecto de detección de objetos.

Orígenes del modelo y metadatos

Entender los orígenes de estos modelos proporciona contexto sobre sus decisiones arquitectónicas y sus 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
Documentación: https://yolox.readthedocs.io/en/latest/

Aprende más sobre YOLOX

Detalles de YOLOv10
Autores: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han y Guiguang Ding
Organización: Tsinghua University
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 principales entre YOLOX y YOLOv10 residen en cómo gestionan las predicciones de los cuadros delimitadores y el posprocesamiento.

YOLOX: Pionero en el diseño sin anclas

YOLOX causó un gran impacto al hacer que la familia YOLO transitara hacia una arquitectura sin anclas (anchor-free). Al predecir el centro de un objeto en lugar de depender de cuadros delimitadores predefinidos, YOLOX redujo drásticamente el número de parámetros de diseño y el ajuste heurístico necesario para conjuntos de datos personalizados. Además, introdujo una cabecera desacoplada, separando las tareas de clasificación y regresión en rutas distintas. Este enfoque resolvió el conflicto entre identificar qué es un objeto y determinar dónde está, lo que condujo a un aumento notable en la velocidad de convergencia y la precisión.

YOLOv10: La revolución sin NMS

Aunque YOLOX simplificó la cabecera de detección, seguía dependiendo de NMS para filtrar las predicciones redundantes de cuadros delimitadores. YOLOv10 abordó este cuello de botella fundamental. Mediante el uso de asignaciones duales consistentes durante el entrenamiento, YOLOv10 logra una detección nativa de principio a fin (end-to-end). Emplea una cabecera uno-a-muchos durante el entrenamiento para garantizar señales de supervisión ricas, mientras utiliza una cabecera uno-a-uno durante la inferencia para emitir predicciones finales directamente. Este diseño holístico orientado a la eficiencia y la precisión elimina NMS por completo, reduciendo significativamente la latencia de inferencia en chips integrados.

El impacto de eliminar NMS

La supresión de no máximos (NMS) suele ser una operación compleja de acelerar en unidades de procesamiento neuronal (NPU). Al eliminarla, YOLOv10 permite que todo el grafo del modelo se ejecute sin problemas en hardware especializado, mejorando drásticamente la compatibilidad con marcos de optimización como OpenVINO y TensorRT.

Métricas de rendimiento y comparación

Al evaluar modelos para producción, es crítico equilibrar la precisión con la sobrecarga computacional. La siguiente tabla 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)
params
(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

Analizando los datos

Las métricas demuestran claramente el salto generacional de YOLOv10. Por ejemplo, YOLOv10-S logra una precisión media promedio de 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,2 M frente a 25,3 M) y significativamente menos FLOPs. Además, el modelo YOLOv10-X de gama alta lleva la mAP hasta el 54,4%, lo que lo hace altamente competitivo para tareas exigentes de precisión, manteniéndose a la vez más rápido que la arquitectura anterior YOLOX-x.

La ventaja del ecosistema de Ultralytics

Aunque YOLOX sigue siendo una implementación de investigación de código abierto robusta, adoptar YOLOv10 proporciona acceso inmediato al ecosistema bien mantenido que ofrece Ultralytics. Elegir un modelo respaldado por Ultralytics asegura una experiencia de usuario optimizada caracterizada por una API sencilla y una documentación extensa.

Los desarrolladores se benefician enormemente de los requisitos de memoria del marco; entrenar modelos de Ultralytics consume normalmente mucha menos memoria CUDA que las alternativas pesadas basadas en Transformer como RT-DETR. Esta huella de entrenamiento eficiente permite tamaños de lote mayores en hardware de consumo, acelerando el tiempo desde la recopilación de datos hasta el despliegue del modelo. Además, el marco 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 validar ideas sea increíblemente rápido. El siguiente fragmento demuestra la facilidad con la que puedes 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, convertir 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 ideales y escenarios de despliegue

Elegir entre estas arquitecturas depende en gran medida de tus restricciones de hardware y de los requisitos específicos de tu dominio.

Análisis de vídeo en tiempo real

Para aplicaciones que requieren una latencia ultra baja, 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 end-to-end sin NMS garantiza tiempos de ejecución deterministas, lo cual es crítico para los sistemas de seguridad donde no se puede tolerar una latencia variable en el posprocesamiento. Los modelos logran fácilmente altas tasas de fotogramas en dispositivos como la serie NVIDIA Jetson.

Bases de referencia académicas y microcontroladores de borde

YOLOX aún tiene valor en entornos académicos donde los investigadores desean una base de referencia limpia con cabecera desacoplada para experimentar con estrategias de asignación de etiquetas. Además, el excepcionalmente pequeño YOLOX-Nano (menos de 1 millón de parámetros) puede ajustarse 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 marcó un gran salto al eliminar NMS, el campo de la visión artificial avanza rápidamente. Para los desarrolladores que buscan implementar el mejor rendimiento de su clase hoy en día, recomendamos encarecidamente explorar YOLO26.

Lanzado como el estándar más reciente en IA de visión, YOLO26 toma las ideas fundamentales de sus predecesores y las potencia. Ofrece el equilibrio definitivo de rendimiento, soportando de forma nativa detección, segmentación, pose y cuadros delimitadores orientados.

He aquí por qué YOLO26 es la opción recomendada para los flujos de trabajo de visión artificial modernos:

  • Diseño end-to-end sin NMS: Construido sobre los avances de YOLOv10, YOLO26 es nativamente end-to-end, garantizando tiempos de inferencia más rápidos y deterministas sin cuellos de botella en el posprocesamiento.
  • Inferencia en CPU hasta un 43% más rápida: Está específicamente optimizado para la computación en el borde, asegurando un rendimiento excepcional en procesadores móviles y dispositivos que carecen de GPUs discretas.
  • Optimizador MuSGD: Inspirado en el entrenamiento de grandes modelos de lenguaje (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 crítico para dominios exigentes como la imagen aérea y la navegación de drones.
  • Eliminación de DFL: Al eliminar la Distribution Focal Loss (DFL), YOLO26 simplifica el grafo del modelo para una exportación sin fricciones a dispositivos de borde y de bajo consumo.
  • Mejoras específicas por tarea: Tanto si utilizas la estimación de log-verosimilitud residual (RLE) para la estimación de pose como 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 flujos de trabajo con las herramientas de entrenamiento y despliegue más eficientes disponibles, hacer la transición a la Plataforma Ultralytics y aprovechar YOLO26 te garantiza mantenerte 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 obtener un amplio soporte de la comunidad y una robustez probada.

Comentarios