YOLOX frente a YOLOv8: avances en la detección de objetos de alto rendimiento
En el panorama en rápida evolución de la visión artificial, es fundamental seleccionar la arquitectura adecuada para su aplicación específica. Esta guía ofrece una comparación técnica detallada entre YOLOX, un detector sin anclajes de alto rendimiento de 2021, y Ultralytics YOLOv8, un modelo de última generación diseñado para ofrecer versatilidad, velocidad y facilidad de implementación. Si bien ambos modelos han realizado importantes contribuciones al campo, comprender sus diferencias arquitectónicas y el soporte de su ecosistema ayudará a los desarrolladores a tomar decisiones informadas para proyectos del mundo real.
Descripción general
YOLOX supuso un cambio significativo en la YOLO al pasar a un mecanismo sin anclaje y desacoplar el cabezal de predicción. Esto simplificó el proceso de diseño y mejoró el rendimiento en comparación con sus contemporáneos como YOLOv3 y YOLOv5 v5.0). Sin embargo, YOLOv8 se basa en años de comentarios e investigaciones de la comunidad, integrando características avanzadas como la detección sin anclajes, un marco unificado para múltiples tareas y una eficiencia de entrenamiento superior, todo ello respaldado por el completo Ultralytics .
YOLOX
- Autores: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, y Jian Sun
- Organización:Megvii
- Fecha: 2021-07-18
- Arxiv:YOLOX: Superando la serie YOLO en 2021
- GitHub:Megvii-BaseDetection/YOLOX
YOLOv8
- Autores: Glenn Jocher, Ayush Chaurasia y Jing Qiu
- Organización:Ultralytics
- Fecha: 2023-01-10
- GitHub:ultralytics/ultralytics
Diferencias Arquitectónicas
La diferencia fundamental radica en cómo estos modelos gestionan la predicción de objetos y la extracción de características.
Arquitectura de YOLOX
YOLOX introdujo una estructura de «cabezal desacoplado». YOLO tradicionales acoplaban las tareas de clasificación y localización (regresión de cuadros delimitadores) en una sola rama. YOLOX las separó, argumentando que el conflicto entre las tareas de clasificación y regresión limitaba el rendimiento. También pasó a un diseño sin anclajes, tratando la detección de objetos como un problema de regresión puntual, lo que redujo la complejidad del ajuste heurístico de los cuadros de anclaje. Utiliza SimOTA para la asignación dinámica de etiquetas, optimizando las predicciones que coinciden con los objetos de la verdad fundamental.
Arquitectura de YOLOv8
Ultralytics YOLOv8 aún más el concepto sin anclajes. Emplea un módulo C2f en su estructura principal, que combina lo mejor de C3 (de YOLOv5) y ELAN (de YOLOv7) para mejorar el flujo de gradiente y mantener al mismo tiempo una huella ligera. Al igual que YOLOX, utiliza un cabezal desacoplado, pero introduce un asignador alineado con la tarea para la asignación de etiquetas, que equilibra las puntuaciones de clasificación y localización de forma más eficaz que SimOTA. Es fundamental destacar que YOLOv8 diseñado como un marco unificado, que admite de forma nativa la segmentación de instancias, la estimación de poses, la detección de objetos orientados (OBB) y la clasificación.
Equilibrio del rendimiento
Ultralytics logran un equilibrio favorable entre velocidad y precisión. La columna vertebral C2f en YOLOv8 una extracción de características más rica con una sobrecarga computacional reducida en comparación con la CSPDarknet utilizada en arquitecturas más antiguas.
Comparación de métricas de rendimiento
La siguiente tabla compara los modelos de detección estándar en el COCO . YOLOv8 proporcionaun mAPval más alto a velocidades de inferencia comparables o más rápidas, especialmente en hardware moderno que utiliza TensorRT.
| Modelo | tamaño (píxeles) | mAPval 50-95 | Velocidad CPU ONNX (ms) | Velocidad T4 TensorRT10 (ms) | parámetros (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Nota: Las velocidades de YOLOX se citan generalmente en GPU V100, mientras que YOLOv8 se estandarizan enONNX T4 TensorRT10 y CPU ONNX . «params» se refiere a los parámetros (millones) y «FLOPs» a las operaciones de coma flotante (miles de millones).
Entrenamiento y facilidad de uso
Una de las diferencias más significativas entre Ultralytics YOLOX y Ultralytics es la experiencia del desarrollador.
La ventaja del ecosistema de Ultralytics
YOLOv8 de una Python y una interfaz de línea de comandos (CLI) muy pulidas. Los desarrolladores pueden pasar de la instalación al entrenamiento con un conjunto de datos personalizado en cuestión de minutos. El ecosistema incluye una integración perfecta con herramientas como Weights & Biases para el registro y Ultralytics para la gestión de datos. Además, Ultralytics permite el entrenamiento y la implementación de modelos basados en la web sin necesidad de configuraciones complejas del entorno local.
Por el contrario, YOLOX es un repositorio de investigación más tradicional. Aunque potente, a menudo requiere una configuración más manual de los scripts de entrenamiento y las dependencias del entorno, lo que lo hace más difícil para los principiantes o los equipos que necesitan una iteración rápida.
Ejemplo de código: Entrenamiento de YOLOv8
La simplicidad de la Ultralytics permite un código conciso y fácil de mantener.
from ultralytics import YOLO
# Load a model (YOLOv8n)
model = YOLO("yolov8n.pt")
# Train on COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Requisitos de Memoria
La eficiencia es un principio fundamental de Ultralytics . YOLOv8 optimizado para un menor uso de memoria durante el entrenamiento en comparación con muchas otras arquitecturas, incluidos los modelos basados en transformadores como RT-DETR. Esto permite a los investigadores entrenar lotes de mayor tamaño en GPU de consumo (por ejemplo, NVIDIA 3060 o 4070), democratizando el acceso al entrenamiento de modelos de alto rendimiento.
Casos de uso en el mundo real
La elección del modelo adecuado suele depender del entorno de implementación y de los requisitos específicos de la tarea.
Dónde destaca YOLOv8
- Aplicaciones multitarea: dado que YOLOv8 admite YOLOv8 la segmentación y la estimación de posturas, es ideal para aplicaciones complejas como el análisis deportivo (seguimiento del movimiento y la postura de los jugadores) o los vehículos autónomos (segmentación de carriles y detección de objetos).
- Implementación periférica: con exportación mediante un solo comando a formatos como ONNX, TensorRT, CoreML y TFLite, YOLOv8 muy optimizado para dispositivos periféricos como Raspberry Pi y teléfonos móviles.
- Prototipado rápido: su facilidad de uso y sus pesos preentrenados lo convierten en la opción ideal para startups y equipos ágiles que necesitan validar ideas rápidamente.
Dónde encaja YOLOX
- Referencias de investigación heredadas: YOLOX sigue siendo una referencia sólida para los artículos académicos que comparan arquitecturas sin anclajes de la era 2021.
- Implementaciones personalizadas específicas: para los usuarios que han invertido mucho en el marco MegEngine (aunque también PyTorch compatible con PyTorch ), YOLOX ofrece compatibilidad nativa.
Perspectivas Futuras: El Poder de YOLO26
Aunque YOLOv8 un estándar robusto y ampliamente utilizado, Ultralytics innovando. El recién lanzado YOLO26 representa el siguiente salto adelante.
Para los desarrolladores que buscan la máxima ventaja en rendimiento, YOLO26 ofrece varias ventajas fundamentales con respecto a YOLOX y YOLOv8:
- NMS de extremo a extremo: YOLO26 es nativamente de extremo a extremo, lo que elimina la necesidad del posprocesamiento de supresión no máxima (NMS). Esto reduce la variabilidad de la latencia y simplifica los procesos de implementación.
- CPU más rápida: optimizado para la computación periférica, YOLO26 ofrece CPU hasta un 43 % más rápida, lo que lo hace ideal para dispositivos sin GPU dedicadas.
- Optimizador MuSGD: Inspirado en las innovaciones en el entrenamiento de LLM, el optimizador MuSGD garantiza un entrenamiento más estable y una convergencia más rápida.
- Detección mejorada de objetos pequeños: con las funciones ProgLoss + STAL, YOLO26 ofrece mejoras notables en el reconocimiento de objetos pequeños, lo cual es crucial para las tareas de inspección y obtención de imágenes aéreas.
Conclusión
Tanto YOLOX como YOLOv8 desempeñado un papel fundamental en el avance de la detección de objetos. YOLOX popularizó con éxito los mecanismos de detección sin anclajes. Sin embargo, YOLOv8 ofrece una solución más completa, fácil de usar y versátil para el desarrollo moderno de la IA. Su integración en el Ultralytics , su compatibilidad con múltiples tareas de visión y sus opciones de implementación sin fisuras lo convierten en la opción preferida para la mayoría de las aplicaciones comerciales y de investigación actuales.
Para aquellos que estén listos para adoptar lo último en tecnología de IA para la visión, es muy recomendable explorar YOLO26 para preparar sus aplicaciones para el futuro con una velocidad y eficiencia NMS.