YOLOv10 vs YOLOX: Evolución de la detección de objetos sin anclas y sin NMS
El campo de la visión artificial está impulsado por rápidos avances en arquitecturas de detección de objetos en tiempo real. Esta comparativa técnica detallada explora dos modelos influyentes que desafiaron los límites de la eficiencia y los paradigmas de diseño: YOLOv10 y YOLOX. Al examinar sus diferencias arquitectónicas, métricas de rendimiento y metodologías de entrenamiento, los desarrolladores e investigadores pueden tomar decisiones informadas para desplegar sistemas de visión robustos.
Antecedentes y orígenes de los modelos
Comprender los orígenes de estos modelos de aprendizaje profundo proporciona un contexto valioso sobre sus objetivos arquitectónicos y casos de uso previstos.
YOLOv10: Eliminación de NMS para una detección verdaderamente integral (end-to-end)
Desarrollado para resolver cuellos de botella de latencia de larga data, YOLOv10 introdujo un enfoque nativo end-to-end en la familia YOLO.
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organización: Tsinghua University
- Fecha: 23 de mayo de 2024
- ArXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Documentación: Documentación de Ultralytics YOLOv10
YOLOX: Tendiendo un puente entre la investigación y la industria
YOLOX surgió como una versión sin anclas del diseño YOLO tradicional, ofreciendo una metodología más sencilla con un rendimiento competitivo, enfocada específicamente en facilitar el despliegue en entornos industriales.
- Autores: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li y Jian Sun
- Organización: Megvii
- Fecha: 18 de julio de 2021
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- Documentación: Documentación oficial de YOLOX
Aspectos destacados de la arquitectura e innovaciones
Ambos marcos se alejan de los detectores tradicionales basados en anclas, pero resuelven problemas distintos en el proceso de detección de objetos.
Arquitectura de YOLOX
YOLOX trajo varias actualizaciones cruciales al ecosistema en 2021. Su contribución principal fue el cambio hacia un diseño de detector sin anclas (anchor-free). Al eliminar las cajas ancla predefinidas, YOLOX redujo considerablemente el número de parámetros de diseño y los ajustes heurísticos necesarios para diferentes conjuntos de datos.
Además, YOLOX emplea una cabeza desacoplada (decoupled head), separando las tareas de clasificación y regresión. Esto resolvió el conflicto entre ambos objetivos, acelerando significativamente la convergencia durante el entrenamiento. También utiliza SimOTA para una asignación de etiquetas avanzada, mejorando el manejo de escenas con mucha densidad y oclusiones, comunes en el conjunto de datos COCO.
Los diseños sin anclas, como el que fue pionero en YOLOX, reducen significativamente la complejidad del ajuste del modelo. Los desarrolladores ya no necesitan realizar clustering de k-means en conjuntos de datos personalizados para definir los tamaños óptimos de las cajas ancla, ahorrando un valioso tiempo de preparación.
Arquitectura de YOLOv10
Aunque YOLOX mejoró la cabeza de detección, todavía dependía de la supresión de no máximos (NMS) durante la inferencia, lo que provoca variabilidad en la latencia. YOLOv10 atacó específicamente este defecto introduciendo una estrategia de asignación dual consistente para el entrenamiento sin NMS. Durante el entrenamiento, utiliza asignaciones de etiqueta de uno a muchos y de uno a uno, pero durante la inferencia, elimina por completo la cabeza de uno a muchos, generando predicciones limpias sin necesidad de post-procesamiento con NMS.
YOLOv10 también presenta un diseño de modelo integral impulsado por la relación eficiencia-precisión. Incorpora cabezas de clasificación ligeras y submuestreo desacoplado de canal espacial, reduciendo drásticamente la cantidad de parámetros y los FLOPs sin sacrificar la precisión.
Comparación de rendimiento
La evaluación de estos modelos en hardware como la GPU NVIDIA T4 revela ventajas distintas según la escala. A continuación, se muestra la tabla comparativa integral.
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Como se puede ver arriba, YOLOv10 escala excepcionalmente bien. La variante YOLOv10x alcanza la mayor precisión (54.4 mAP), mientras que la variante YOLOv10n ofrece la inferencia más rápida usando la integración con TensorRT. Por el contrario, el modelo heredado YOLOX nano presenta la huella más pequeña en general para entornos fuertemente restringidos.
Metodologías de entrenamiento y requisitos de recursos
Al implementar modelos para producción, el ecosistema de entrenamiento y las demandas de recursos son tan críticos como la velocidad de inferencia bruta.
YOLOX a menudo depende de configuraciones de entorno antiguas que pueden ser engorrosas de gestionar. Además, su base de código heredada requiere más código repetitivo (boilerplate) para lograr un entrenamiento distribuido multi-GPU u optimización de precisión mixta.
Por el contrario, YOLOv10 se integra sin problemas con los flujos de trabajo modernos de PyTorch, pero es el ecosistema Ultralytics el que realmente transforma la experiencia del desarrollador. Los modelos de Ultralytics se caracterizan por un uso de memoria CUDA significativamente menor durante el entrenamiento en comparación con arquitecturas basadas en Transformer como RT-DETR.
Ejemplo de código: Entrenamiento simplificado
Utilizando la API unificada de Ultralytics, puedes entrenar modelos de vanguardia sin interrupciones en solo unas pocas líneas de Python. Esto evita la compilación manual de operadores C++ o archivos de configuración complicados.
from ultralytics import YOLO
# Initialize a pre-trained YOLOv10 model
model = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance
metrics = model.val()
# Export the optimized model to ONNX format
model.export(format="onnx")Esta sintaxis sencilla proporciona acceso inmediato a la precisión mixta automática, aumento de datos automatizado e integración con herramientas como Weights & Biases de manera inmediata.
Casos de uso y recomendaciones
Elegir entre YOLOv10 y YOLOX depende de los requisitos específicos de tu proyecto, las restricciones de despliegue y tus preferencias de ecosistema.
Cuándo elegir YOLOv10
YOLOv10 es una opción sólida para:
- Detección en tiempo real sin NMS: Aplicaciones que se benefician de la detección de extremo a extremo sin supresión de no máximos, reduciendo la complejidad del despliegue.
- Compensaciones equilibradas entre velocidad y precisión: Proyectos que requieren un sólido equilibrio entre la velocidad de inferencia y la precisión de detección a través de varias escalas de modelo.
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
Cuándo elegir YOLOX
Se recomienda YOLOX para:
- Investigación de detección sin anclas: Investigación académica que utiliza la arquitectura limpia y sin anclas de YOLOX como base para experimentar con nuevos cabezales de detección o funciones de pérdida.
- Dispositivos de borde ultraligeros: Implementación en microcontroladores o hardware móvil antiguo donde la huella extremadamente pequeña de la variante YOLOX-Nano (0.91M parámetros) es fundamental.
- Estudios de asignación de etiquetas SimOTA: Proyectos de investigación que investigan estrategias de asignación de etiquetas basadas en transporte óptimo y su impacto en la convergencia del entrenamiento.
Cuándo elegir Ultralytics (YOLO26)
Para la mayoría de los proyectos nuevos, Ultralytics YOLO26 ofrece la mejor combinación de rendimiento y experiencia para el desarrollador:
- Despliegue en borde sin NMS: Aplicaciones que requieren una inferencia consistente y de baja latencia sin la complejidad del posprocesamiento de la supresión de no máximos.
- Entornos solo de CPU: Dispositivos sin aceleración de GPU dedicada, donde la inferencia en CPU hasta un 43% más rápida de YOLO26 proporciona una ventaja decisiva.
- Detección de objetos pequeños: Escenarios desafiantes como imágenes de drones aéreos o análisis de sensores IoT donde ProgLoss y STAL aumentan significativamente la precisión en objetos diminutos.
El futuro de la IA visual: Llega YOLO26
Aunque YOLOv10 y YOLOX representan hitos importantes, el panorama de la visión artificial avanza sin descanso. Para los desarrolladores que comienzan nuevos proyectos hoy, Ultralytics YOLO26 es la recomendación definitiva.
Lanzado en enero de 2026, Ultralytics YOLO26 se basa en el avance fundamental del diseño integral sin NMS iniciado por YOLOv10, refinándolo para lograr una estabilidad y velocidad aún mayores.
YOLO26 destaca al introducir varios saltos masivos hacia adelante:
- Inferencia en CPU hasta un 43% más rápida: Al eliminar estratégicamente la pérdida de enfoque de distribución (DFL), YOLO26 logra un rendimiento muy superior en dispositivos de borde (edge) sin GPU.
- Optimizador MuSGD: Inspirado en la estabilidad del entrenamiento de LLM, este novedoso híbrido de SGD y Muon garantiza una convergencia más rápida y ejecuciones de entrenamiento altamente estables.
- ProgLoss + STAL: Estas funciones de pérdida avanzadas ofrecen mejoras notables en el reconocimiento de objetos pequeños, un factor crítico para imágenes aéreas y sensores IoT.
- Versatilidad inigualable: A diferencia de YOLOX, que es estrictamente un detector de objetos, YOLO26 admite de forma nativa segmentación de instancias, estimación de pose, clasificación de imágenes y detección OBB dentro de una única biblioteca unificada.
Para el camino más sencillo hacia la producción, los desarrolladores pueden usar la plataforma Ultralytics para anotar conjuntos de datos, entrenar modelos YOLO26 en la nube y desplegarlos en cualquier dispositivo de borde sin necesidad de configuración.
Aplicaciones en el mundo real
Elegir el modelo correcto determina el éxito de los despliegues en el mundo real en diversas industrias.
Análisis de video de alta velocidad
Para procesar flujos de video densos, como la gestión de tráfico en ciudades inteligentes, YOLOv10 ofrece una ventaja significativa debido a su post-procesamiento sin NMS. Eliminar el cuello de botella de NMS permite una latencia baja y consistente, lo que lo hace ideal para combinar con algoritmos de seguimiento como BoT-SORT.
Despliegue en entornos heredados (edge)
Para configuraciones académicas más antiguas o aplicaciones Android heredadas, fuertemente optimizadas para paradigmas puramente convolucionales, modelos más pequeños como YOLOX-Tiny aún pueden encontrar casos de uso especializados donde mantener entornos PyTorch antiguos es un compromiso aceptable.
Dispositivos modernos de borde (edge) e IoT
Para despliegues de hardware de próxima generación, como robótica, drones y análisis de estanterías minoristas, YOLO26 es la solución definitiva. Su latencia de CPU drásticamente reducida y su detección superior de objetos pequeños lo hacen calificado de forma única para la navegación autónoma y la gestión granular de inventario.
Para comparaciones adicionales que amplíen tu kit de herramientas de aprendizaje profundo, también puedes explorar cómo se comparan estos modelos frente a alternativas como el flexible YOLO11 o el RT-DETR basado en Transformer.