Ir al contenido

YOLOv8 frente a YOLOv8: comparación técnica para la detección de objetos en tiempo real

La evolución de la familia YOLO (You Only Look Once) ha ampliado constantemente los límites de la visión por ordenador, ofreciendo a los desarrolladores herramientas más rápidas y precisas para la detección de objetos. A la hora de elegir entre YOLOv10 y YOLOv8es fundamental comprender los matices en cuanto a arquitectura, eficacia y compatibilidad con el ecosistema. Mientras que YOLOv10 introduce novedosos cambios arquitectónicos en aras de la eficiencia, YOLOv8 sigue siendo un estándar robusto y versátil, conocido por su facilidad de uso y su amplio conjunto de funciones.

Esta guía ofrece una comparación técnica detallada para ayudarle a seleccionar el modelo adecuado para sus proyectos de aprendizaje automático.

Análisis de rendimiento

Las métricas de rendimiento del conjunto de datosCOCO ilustran las distintas filosofías de diseño de estos modelos. YOLOv10 se centra en gran medida en reducir el número de parámetros y las operaciones en coma flotante (FLOPs), consiguiendo a menudo una mayor mAP (precisión media) para un tamaño de modelo determinado. Sin embargo, YOLOv8 mantiene velocidades de inferencia muy competitivas, especialmente en CPU y cuando se exporta a formatos optimizados como TensorRTequilibrando la velocidad bruta con las capacidades prácticas de despliegue.

Modelotamaño
(píxeles)
mAPval
50-95
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
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
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv10: eficiencia a través de la innovación arquitectónica

Autores: Ao Wang, Hui Chen, Lihao Liu, et al.
Organización:Universidad Tsinghua
Fecha: 2024-05-23
Arxiv:YOLOv10: Detección de objetos en tiempo real de extremo a extremo
GitHub:THU-MIG/yolov10

YOLOv10 fue desarrollado por investigadores de la Universidad de Tsinghua con un objetivo principal: eliminar la dependencia de la supresión no máximaNMS) durante el postprocesamiento. NMS puede ser un cuello de botella en aplicaciones de latencia crítica. YOLOv10 introduce una estrategia de asignación dual coherente durante el entrenamiento, lo que permite al modelo predecir una única caja óptima para cada objeto, convirtiéndolo en un detector de extremo a extremo.

Puntos fuertes de YOLOv10

  • InferenciaNMS: Al eliminar el paso NMS , YOLOv10 reduce la sobrecarga computacional durante la fase de posprocesamiento, lo que puede reducir la latencia en escenarios de bordes específicos.
  • Eficiencia de parámetros: El diseño holístico del modelo reduce significativamente el número de parámetros y FLOPs en comparación con las generaciones anteriores, lo que lo hace atractivo para dispositivos con almacenamiento extremadamente limitado.
  • Alta precisión: alcanza puntuaciones mAP de vanguardia para su tamaño, lo que demuestra la eficacia de sus optimizaciones arquitectónicas.

Debilidades

  • Especialización de tareas: YOLOv10 está diseñado principalmente para la detección de objetos. Carece de soporte nativo para otras tareas de visión por ordenador, como la segmentación de instancias o la estimación de poses.
  • Madurez del ecosistema: Al ser una versión académica más reciente, cuenta con menos integraciones de terceros y recursos de la comunidad en comparación con el ecosistema establecido Ultralytics .

Más información sobre YOLOv10

Ultralytics YOLOv8: el estándar versátil del sector

Autores: Glenn Jocher, Ayush Chaurasia y Jing Qiu
Organización:Ultralytics
Fecha: 2023-01-10
Docs:Ultralytics YOLOv8 Documentation
GitHub:ultralytics

Lanzado por Ultralytics, YOLOv8 representa la culminación de años de investigación en IA práctica y fácil de usar. Está diseñada no sólo para ofrecer un alto rendimiento, sino también una experiencia excepcional para el desarrollador. YOLOv8 utiliza un mecanismo de detección sin anclajes y un rico flujo de gradientes para garantizar una formación sólida. Su característica más destacada es la compatibilidad nativa con una amplia gama de tareas: detección, segmentación, clasificación, estimación de la pose y OBB, todo ello en un único marco unificado.

  • Facilidad de uso: Ultralytics YOLOv8 es famoso por su sencillez de uso. Python y CLI . Los desarrolladores pueden entrenar, validar y desplegar modelos con unas pocas líneas de código.
  • Ecosistema bien mantenido: Formar parte del ecosistema Ultralytics significa tener acceso a actualizaciones frecuentes, una comunidad masiva y una integración perfecta con herramientas como Ultralytics HUB para una gestión de modelos sin esfuerzo.
  • Equilibrio de rendimiento: Consigue un equilibrio ideal entre velocidad y precisión. El modelo está altamente optimizado para varios backends de hardware, como CPU, GPU y TPU Edge.
  • Eficacia de la formación: YOLOv8 ofrece procesos de formación eficientes con menores requisitos de memoria que muchas alternativas basadas en transformadores, lo que supone un ahorro en costes computacionales.
  • Versatilidad: A diferencia de los modelos limitados a cuadros delimitadores, YOLOv8 puede manejar proyectos complejos que requieren máscaras de segmentación o puntos clave sin cambiar de marco.

Eficiencia de la memoria

Los modelos Ultralytics como YOLOv8 están diseñados para ahorrar memoria. Esto reduce significativamente la barrera de entrada para la formación de modelos personalizados, ya que requieren menos memoria CUDA en comparación con los voluminosos modelos de transformador como RT-DETRlo que permite el entrenamiento en GPU de consumo.

Más información sobre YOLOv8

Análisis comparativo: Arquitectura y casos de uso

Diferencias arquitectónicas

La diferencia fundamental radica en las estrategias de posprocesamiento y asignación. YOLOv10 emplea una arquitectura de doble cabezal en la que un cabezal utiliza la asignación uno a muchos (como los YOLO tradicionales) para las señales de supervisión enriquecidas durante el entrenamiento, mientras que el otro utiliza la asignación uno a uno para la inferencia, eliminando la necesidad de NMS.

YOLOv8por el contrario, utiliza un asignador alineado con la tarea y una estructura de cabeza acoplada sin anclajes. Este diseño simplifica la cabeza de detección y mejora la generalización. Aunque requiere NMS, el funcionamiento está muy optimizado en formatos de exportación como ONNX y TensorRT, lo que a menudo hace que la diferencia de latencia práctica sea insignificante en tuberías de despliegue robustas.

Casos de Uso Ideales

La elección de uno u otro suele depender de las limitaciones específicas del proyecto:

  1. IA Edge de alto rendimiento (YOLOv10): Si su aplicación se ejecuta en un hardware con recursos muy limitados en el que cada megabyte de almacenamiento cuenta, o si la operación NMS crea un cuello de botella específico en su chip de destino, YOLOv10 es un candidato excelente. Algunos ejemplos son los sensores integrados en la agricultura o los drones ligeros.

  2. IA de propósito general y multitarea (YOLOv8): Para la gran mayoría de aplicaciones comerciales y de investigación, YOLOv8 es la mejor opción. Su capacidad para realizar segmentaciones (por ejemplo, imágenes médicas precisas) y estimaciones de poses (por ejemplo, análisis deportivos) le confieren una versatilidad increíble. Además, su amplia documentación y soporte garantizan que los desarrolladores puedan resolver los problemas rápidamente y desplegarlo con mayor celeridad.

Aplicación del código

Una de las principales ventajas del marco Ultralytics es la API unificada. Tanto si utiliza YOLOv8 como si explora modelos más recientes, el flujo de trabajo sigue siendo coherente e intuitivo.

A continuación se muestra lo fácil que es iniciar el entrenamiento de un modelo YOLOv8 utilizando Python:

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model on your custom dataset
# The system automatically handles data downloading and processing
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

Para YOLOv10, el paquete Ultralytics también facilita el acceso, permitiendo a los investigadores experimentar con la arquitectura en un entorno familiar:

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model
model = YOLO("yolov10n.pt")

# Train the model using the same simple API
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Conclusión

Tanto YOLOv10 como YOLOv8 son hitos impresionantes en la visión por ordenador. YOLOv10 va más allá de la eficiencia arquitectónica y ofrece una visión de un futuro NMS para aplicaciones especializadas de baja latencia.

Sin embargo, Ultralytics YOLOv8 sigue siendo el modelo recomendado para desarrolladores y organizaciones. Su sólido ecosistema, su fiabilidad demostrada y sus capacidades multitarea proporcionan una solución integral que va más allá de la simple detección. Con Ultralytics YOLOv8, no solo obtendrá un modelo, sino un completo conjunto de herramientas para crear, formar e implantar soluciones de IA de primera clase de forma eficiente.

Los que quieran estar a la última, no dejen de visitar también YOLO11la última iteración de Ultralytics , que ofrece un rendimiento y una eficiencia aún mayores que YOLOv8.

Lecturas adicionales


Comentarios