YOLOv10 frente a YOLOX#
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 han superado 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 implementar 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 sus casos de uso específicos.
YOLOv10: eliminación de NMS para una detección integral real#
Desarrollado para resolver los cuellos de botella de latencia existentes desde hace mucho tiempo, YOLOv10 introdujo un enfoque integral nativo 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: Ultralytics YOLOv10 Documentation
YOLOX: tendiendo un puente entre la investigación y la industria#
YOLOX surgió como una versión sin anclas del diseño tradicional de YOLO, ofreciendo una metodología más simple con un rendimiento competitivo, dirigida específicamente a facilitar la implementación en comunidades industriales.
- Autores: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li y Jian Sun
- Organization: Megvii
- Fecha: 18 de julio de 2021
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- Documentación: YOLOX Official Documentation
Aspectos destacados e innovaciones arquitectónicas#
Ambos marcos divergen de los detectores tradicionales basados en anclas, pero resuelven problemas diferentes en el flujo de trabajo de detección de objetos.
Arquitectura de YOLOX#
YOLOX aportó varias actualizaciones cruciales al ecosistema en 2021. Su principal contribución fue el cambio a un diseño de detector sin anclas (anchor-free). Al eliminar las cajas de anclaje predefinidas, YOLOX redujo considerablemente la cantidad de parámetros de diseño y el ajuste heurístico requerido para diferentes conjuntos de datos.
Además, YOLOX emplea una cabecera desacoplada, que separa las tareas de clasificación y regresión. Esto resolvió el conflicto entre los dos objetivos, acelerando significativamente la convergencia durante el entrenamiento. También utiliza SimOTA para la asignación avanzada de etiquetas, mejorando el manejo de escenas concurridas y oclusiones comunes en el COCO dataset.
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 agrupamiento k-means en conjuntos de datos personalizados para definir tamaños óptimos de cajas de anclaje, lo que ahorra un tiempo de preparación valioso.
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 un entrenamiento sin NMS. Durante el entrenamiento, utiliza asignaciones de etiquetas de uno a muchos y de uno a uno, pero durante la inferencia, descarta por completo la cabeza de uno a muchos, obteniendo predicciones limpias sin post-procesamiento NMS.
YOLOv10 también presenta un diseño de modelo integral impulsado por la eficiencia y la precisión. Incorpora cabezas de clasificación ligeras y un submuestreo desacoplado espacio-canal, reduciendo drásticamente la cantidad de parámetros y los FLOPs sin sacrificar la precisión.
Comparación de rendimiento#
Evaluar estos modelos en hardware como la GPU NVIDIA T4 revela ventajas distintas según la escala. A continuación se muestra la tabla comparativa completa.
| 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 ha visto anteriormente, 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 utilizando la integración con TensorRT. Por el contrario, el modelo heredado YOLOX nano presenta la huella general más pequeña para entornos fuertemente limitados.
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 bruta de inferencia.
YOLOX a menudo depende de configuraciones de entorno antiguas que pueden ser engorrosas de administrar. Además, su código base heredado requiere más código repetitivo para lograr un entrenamiento distribuido multi-GPU u optimización de precisión mixta.
En contraste, YOLOv10 se integra sin problemas con los flujos de trabajo modernos de PyTorch, pero es el Ultralytics ecosystem el que verdaderamente 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 transformers como RT-DETR.
Ejemplo de código: Entrenamiento simplificado#
Utilizando la API unificada de Ultralytics, puedes entrenar sin problemas modelos de vanguardia 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 sencilla sintaxis proporciona acceso inmediato a la precisión mixta automática, a la aumentación de datos automatizada y a la integración con herramientas como Weights & Biases listas para usar.
Casos de uso y recomendaciones#
Elegir entre YOLOv10 y YOLOX depende de los requisitos específicos de tu proyecto, las limitaciones de implementación y las 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 una detección integral (end-to-end) sin NMS, lo que reduce la complejidad de la implementación.
- Equilibrio entre velocidad y precisión: Proyectos que requieren un buen equilibrio entre la velocidad de inferencia y la precisión de detección en varias escalas de modelo.
- Aplicaciones de latencia consistente: Escenarios de despliegue donde los tiempos de inferencia predecibles son críticos, como en robotics o sistemas autónomos.
Cuándo elegir YOLOX#
YOLOX se recomienda para:
- Investigación en detección sin anclas: Investigación académica que utiliza la arquitectura limpia y sin anclas de YOLOX como base para experimentar con nuevas cabeceras de detección o funciones de pérdida.
- Dispositivos de borde ultraligeros: Despliegue en microcontroladores o hardware móvil antiguo donde la huella extremadamente pequeña de la variante YOLOX-Nano (0.91M de parámetros) es crítica.
- 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 de desarrollo:
- Implementación en el borde sin NMS: Aplicaciones que requieren una inferencia consistente y de baja latencia sin la complejidad del posprocesamiento de 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 la aerial drone imagery o el análisis con sensores IoT donde ProgLoss y STAL mejoran 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 implacablemente. 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 sin NMS de extremo a extremo inaugurado por YOLOv10, refinándolo para lograr aún mayor estabilidad y velocidad.
YOLO26 destaca al introducir varios saltos masivos hacia adelante:
- Hasta un 43 % más rápida en inferencia de CPU: Al eliminar estratégicamente Distribution Focal Loss (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 producen 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 poses, Clasificación de imágenes y Detección OBB dentro de una única biblioteca unificada.
Para lograr el camino más sencillo hacia la producción, los desarrolladores pueden utilizar la Ultralytics Platform para anotar conjuntos de datos, entrenar modelos YOLO26 en la nube y desplegarlos en cualquier dispositivo edge sin necesidad de configuración previa.
Aplicaciones en el mundo real#
Elegir el modelo correcto determina el éxito de las implementaciones en el mundo real en diversas industrias.
Análisis de vídeo de alta velocidad#
Para procesar transmisiones de vídeo densas, como la gestión del tráfico en ciudades inteligentes, YOLOv10 ofrece una ventaja significativa debido a su postprocesamiento sin NMS. Eliminar el cuello de botella de NMS permite una baja latencia constante, lo que lo hace ideal para combinarlo con algoritmos de seguimiento como BoT-SORT.
Implementación en borde heredado (Legacy 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 sea un compromiso aceptado.
Dispositivos modernos de borde e IoT#
Para despliegues de hardware de próxima generación, como robótica, drones y análisis de estantes minoristas, YOLO26 es la solución definitiva. Su latencia de CPU drásticamente reducida y su superior detección de objetos pequeños lo hacen idóneo para la navegación autónoma y la gestión de inventario detallada.
Para comparaciones adicionales que amplíen tu caja de herramientas de aprendizaje profundo, también puedes explorar cómo se comparan estos modelos con alternativas como el flexible YOLO11 o el RT-DETR impulsado por transformers.