YOLOv10 frente a YOLOX#
El campo de la visión artificial está impulsado por los rápidos avances en arquitecturas de detección de objetos en tiempo real. Esta comparativa técnica detallada analiza dos modelos influyentes que impulsaron la eficiencia y el diseño de detectores: YOLOv10 y YOLOX. Al examinar sus diferencias arquitectónicas, métricas de rendimiento y metodologías de entrenamiento, desarrolladores e investigadores pueden tomar decisiones fundamentadas para implementar sistemas de visión robustos.
Antecedentes y orígenes de los modelos#
Comprender los orígenes de estos modelos de aprendizaje profundo aporta un contexto valioso sobre sus objetivos arquitectónicos y los casos de uso a los que se dirigen.
YOLOv10: eliminación de NMS para una detección verdaderamente integral#
Desarrollado para resolver cuellos de botella de latencia que llevaban tiempo sin solución, YOLOv10 introdujo un enfoque nativo integral en la familia YOLO.
- Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organización: Universidad de Tsinghua
- Fecha: 23 de mayo de 2024
- arXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Documentación: Documentación de Ultralytics YOLOv10
YOLOX: conectando la investigación con la industria#
YOLOX surgió como una versión sin anclajes del diseño tradicional de YOLO y ofrecía una metodología más sencilla 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
- 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 e innovaciones arquitectónicas#
Ambos frameworks se apartan de los detectores tradicionales basados en anclajes, pero resuelven problemas distintos en el proceso de detección de objetos.
Arquitectura de YOLOX#
YOLOX incorporó varias actualizaciones importantes al diseño de YOLO en 2021. Su principal contribución fue adoptar un diseño de detector sin anclajes. Al eliminar las cajas de anclaje predefinidas, YOLOX redujo el número de parámetros de diseño y de ajustes heurísticos necesarios para distintos conjuntos de datos.
Además, YOLOX utiliza una cabeza desacoplada, que separa las tareas de clasificación y regresión. Esto resolvió el conflicto entre ambos objetivos y aceleró la convergencia durante el entrenamiento. También emplea SimOTA para asignar etiquetas de forma dinámica, lo que mejora el tratamiento de las escenas concurridas y las oclusiones habituales en el conjunto de datos COCO.
Los diseños sin anclajes, como el que emplea YOLOX, reducen la complejidad del ajuste de modelos. Los desarrolladores ya no necesitan realizar una agrupación k-means en conjuntos de datos personalizados para definir los tamaños óptimos de las cajas de anclaje, lo que ahorra tiempo de preparación.
Arquitectura de YOLOv10#
Aunque YOLOX mejoró la cabeza de detección, durante la inferencia seguía dependiendo de la supresión no máxima (NMS), que provoca variaciones en la latencia. YOLOv10 abordó específicamente esta limitación al introducir una estrategia de asignación dual coherente para el entrenamiento sin NMS. Durante el entrenamiento, utiliza asignaciones de etiquetas de uno a muchos y de uno a uno, pero durante la inferencia puede eliminar por completo la cabeza de uno a muchos y generar predicciones sin posprocesamiento NMS (en el paquete de Ultralytics, selecciona esta cabeza con nms=False).
YOLOv10 también presenta un diseño de modelo integral que impulsa la eficiencia y la precisión. Incorpora cabezas de clasificación ligeras y un submuestreo desacoplado espacial y por canales, con lo que reduce el número de parámetros y las FLOPs sin sacrificar precisión.
Comparativa de rendimiento#
La evaluación de estos modelos en hardware como la GPU NVIDIA T4 revela ventajas distintas según la escala. La tabla siguiente compara ambas familias de modelos.
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 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 muestra arriba, YOLOv10 escala bien. La variante YOLOv10x alcanza la máxima precisión (54,4 mAP), mientras que la variante YOLOv10n ofrece la inferencia TensorRT más rápida de las registradas. En cambio, el modelo YOLOX-Nano tiene el menor tamaño (0,91 M de parámetros a 416 píxeles), lo que lo hace adecuado para entornos con grandes restricciones.
Metodologías de entrenamiento y requisitos de recursos#
Al implementar modelos en producción, el ecosistema de entrenamiento y las necesidades de recursos son tan importantes como la velocidad de inferencia bruta.
YOLOX depende de una base de código antigua cuyas dependencias y configuración del entorno pueden resultar engorrosas de gestionar en las pilas de software actuales.
En cambio, YOLOv10 está integrado en el ecosistema Ultralytics, lo que simplifica la experiencia de desarrollo. Los modelos Ultralytics YOLO también utilizan menos memoria CUDA durante el entrenamiento que las arquitecturas basadas en Transformer, como RT-DETR.
Ejemplo de código: entrenamiento simplificado#
Con la API unificada de Ultralytics, puedes entrenar modelos con solo unas pocas líneas de Python, sin compilar manualmente operadores de C++ ni editar archivos de configuración complejos.
from ultralytics import YOLO
# Inicializa un modelo YOLOv10 preentrenado
model = YOLO("yolov10s.pt")
# Entrena el modelo con el conjunto de datos COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Valida el rendimiento del modelo
metrics = model.val()
# Exporta el modelo optimizado al formato ONNX
model.export(format="onnx")Esta sintaxis sencilla da acceso inmediato a la precisión mixta automática, el aumento de datos automatizado y la integración lista para usar con herramientas como Weights & Biases.
Casos de uso y recomendaciones#
La elección entre YOLOv10 y YOLOX depende de los requisitos específicos de tu proyecto, las limitaciones de implementación y tus preferencias de ecosistema.
Cuándo elegir YOLOv10#
YOLOv10 es una buena opción para:
- Detección en tiempo real sin NMS: Aplicaciones que se benefician de la detección de extremo a extremo sin supresión no máxima, lo que reduce la complejidad de la implementación.
- Equilibrio entre velocidad y precisión: Proyectos que necesitan un buen equilibrio entre la velocidad de inferencia y la precisión de detección en distintas escalas de modelo.
- Aplicaciones con latencia constante: Escenarios de implementación en los que los tiempos de inferencia predecibles son fundamentales, como la robótica o los sistemas autónomos.
Cuándo elegir YOLOX#
Se recomienda YOLOX para:
- Investigación sobre detección sin anclajes: Investigación académica que utiliza la arquitectura limpia y sin anclajes 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 heredado, donde el tamaño extremadamente reducido de la variante YOLOX-Nano (0,91 M de parámetros) es fundamental.
- Estudios de asignación de etiquetas SimOTA: Proyectos de investigación que analizan estrategias de asignación de etiquetas basadas en el 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 desarrolladores:
- Implementación edge sin NMS: Aplicaciones que necesitan inferencias uniformes y de baja latencia sin la complejidad del posprocesamiento con supresión no máxima.
- Entornos solo con CPU: dispositivos sin aceleración GPU dedicada, donde YOLO26n funciona hasta un 43 % más rápido en CPU que YOLO11n.
- Detección de objetos pequeños: situaciones complejas, como las imágenes aéreas captadas con drones o el análisis de sensores IoT, en las que ProgLoss y STAL mejoran la precisión con objetos diminutos.
El futuro de la IA visual: llega YOLO26#
Aunque YOLOv10 y YOLOX representan hitos importantes, el sector sigue avanzando. Para los desarrolladores que empiezan proyectos nuevos, Ultralytics YOLO26 es la opción recomendada.
Lanzado en enero de 2026, Ultralytics YOLO26 se basa en el diseño de extremo a extremo sin NMS que YOLOv10 introdujo en los modelos YOLO y lo ofrece como cabeza opcional uno a uno (nms=False).
YOLO26 también incorpora varias mejoras:
- Hasta un 43 % más rápido en inferencia en CPU: al eliminar Distribution Focal Loss (DFL), YOLO26n funciona hasta un 43 % más rápido que YOLO11n en CPU, lo que resulta útil en dispositivos edge sin GPU.
- Optimizador MuSGD: inspirado en el entrenamiento de LLM, esta combinación de SGD y Muon ofrece una convergencia más rápida y entrenamientos estables.
- ProgLoss + STAL: Progressive Loss y la asignación de etiquetas consciente de los objetos pequeños mejoran el reconocimiento de objetos pequeños, un factor crucial para las imágenes aéreas y los sensores IoT.
- Versatilidad: a diferencia de YOLOX, que es estrictamente un detector de objetos, YOLO26 admite de forma nativa la segmentación de instancias, la segmentación semántica, la estimación de profundidad, la clasificación de imágenes, la estimación de pose y la detección de OBB en una sola biblioteca unificada.
Para llegar a producción por la vía más sencilla, los desarrolladores pueden usar la plataforma Ultralytics para anotar conjuntos de datos, entrenar modelos YOLO26 en la nube y exportarlos o implementarlos con una configuración mínima.
Aplicaciones en el mundo real#
El modelo adecuado depende del escenario de implementación y del sector.
Analítica de vídeo de alta velocidad#
Para procesar flujos de vídeo densos, como los de la gestión del tráfico en ciudades inteligentes, YOLOv10 ofrece una ventaja gracias a su diseño sin NMS. Eliminar el cuello de botella de NMS mantiene una latencia constante, por lo que resulta adecuado para combinarlo con algoritmos de seguimiento como BoT-SORT.
Implementación heredada en dispositivos edge#
En configuraciones académicas antiguas o aplicaciones Android heredadas basadas en YOLOX, los modelos más pequeños como YOLOX-Tiny pueden seguir siendo útiles cuando mantener entornos PyTorch antiguos es una contrapartida aceptable.
Dispositivos edge e IoT modernos#
Para implementaciones en hardware de nueva generación, como robótica, drones y análisis de estanterías en tiendas, YOLO26 es la solución recomendada. Su menor latencia en CPU y la mejor detección de objetos pequeños lo hacen muy adecuado para la navegación autónoma y la gestión detallada del inventario.
Para ampliar tu conjunto de herramientas de aprendizaje profundo con otras comparaciones, también puedes ver cómo se enfrentan estos modelos a alternativas como el flexible YOLO11 o el RT-DETR basado en Transformer.