Saltar al contenido

YOLOv10: Detecci贸n de objetos en tiempo real de extremo a extremo

YOLOv10, construido sobre el Ultralytics Python paquete de los investigadores de la Universidad de Tsinghua, introduce un nuevo enfoque para la detecci贸n de objetos en tiempo real, abordando las deficiencias tanto del postprocesamiento como de la arquitectura del modelo encontradas en las versiones anteriores de YOLO . Al eliminar la supresi贸n no m谩xima (NMS) y optimizar varios componentes del modelo, YOLOv10 consigue un rendimiento de vanguardia con una sobrecarga computacional significativamente reducida. Extensos experimentos demuestran su superior equilibrio entre precisi贸n y latencia en m煤ltiples escalas de modelos.

YOLOv10 asignaci贸n dual coherente para un entrenamiento sin NMS

Visi贸n general

La detecci贸n de objetos en tiempo real pretende predecir con precisi贸n las categor铆as y posiciones de los objetos en las im谩genes con baja latencia. La serie YOLO ha estado a la vanguardia de esta investigaci贸n por su equilibrio entre rendimiento y eficiencia. Sin embargo, la dependencia del NMS y las ineficiencias arquitect贸nicas han obstaculizado un rendimiento 贸ptimo. YOLOv10 aborda estos problemas introduciendo asignaciones duales coherentes para un entrenamiento sin NMS y una estrategia hol铆stica de dise帽o de modelos basada en la eficiencia y la precisi贸n.

Arquitectura

La arquitectura de YOLOv10 se basa en los puntos fuertes de los modelos anteriores de YOLO , al tiempo que introduce varias innovaciones clave. La arquitectura del modelo consta de los siguientes componentes:

  1. Red troncal: Responsable de la extracci贸n de caracter铆sticas, la columna vertebral de YOLOv10 utiliza una versi贸n mejorada de CSPNet (Cross Stage Partial Network) para mejorar el flujo de gradiente y reducir la redundancia computacional.
  2. Cuello: El cuello est谩 dise帽ado para agregar caracter铆sticas de diferentes escalas y pasarlas a la cabeza. Incluye capas PAN (Red de Agregaci贸n de Caminos) para una fusi贸n eficaz de rasgos multiescala.
  3. Cabezal Uno a Muchos: Genera m煤ltiples predicciones por objeto durante el entrenamiento para proporcionar ricas se帽ales de supervisi贸n y mejorar la precisi贸n del aprendizaje.
  4. Cabezal Uno a Uno: Genera una 煤nica mejor predicci贸n por objeto durante la inferencia para eliminar la necesidad de NMS, reduciendo as铆 la latencia y mejorando la eficacia.

Caracter铆sticas principales

  1. Entrenamiento sin NMS: Utiliza asignaciones duales coherentes para eliminar la necesidad de NMS, reduciendo la latencia de la inferencia.
  2. Dise帽o hol铆stico del modelo: Optimizaci贸n exhaustiva de varios componentes, tanto desde el punto de vista de la eficacia como de la precisi贸n, incluidos los cabezales de clasificaci贸n ligeros, el muestreo descendente desacoplado de canales espaciales y el dise帽o de bloques guiado por rangos.
  3. Capacidades mejoradas del modelo: Incorpora convoluciones de n煤cleo grande y m贸dulos de autoatenci贸n parcial para mejorar el rendimiento sin un coste computacional significativo.

Variantes de modelos

YOLOv10 est谩 disponible en varias escalas de modelos para satisfacer las distintas necesidades de aplicaci贸n:

  • YOLOv10-N: Versi贸n nano para entornos con recursos extremadamente limitados.
  • YOLOv10-S: Versi贸n peque帽a que equilibra velocidad y precisi贸n.
  • YOLOv10-M: Versi贸n media para uso general.
  • YOLOv10-B: Versi贸n equilibrada con mayor anchura para una mayor precisi贸n.
  • YOLOv10-L: Versi贸n grande para mayor precisi贸n a costa de mayores recursos inform谩ticos.
  • YOLOv10-X: Versi贸n extragrande para m谩xima precisi贸n y rendimiento.

Rendimiento

YOLOv10 supera en precisi贸n y eficacia a las versiones anteriores de YOLO y a otros modelos de vanguardia. Por ejemplo, YOLOv10-S es 1,8 veces m谩s r谩pido que RT-DETR-R18 con un AP similar en el conjunto de datos COCO, y YOLOv10-B tiene un 46% menos de latencia y un 25% menos de par谩metros que YOLOv9-C con el mismo rendimiento.

Modelo Tama帽o de entrada APval FLOPs (G) Latencia (ms)
YOLOv10-N 640 38.5 6.7 1.84
YOLOv10-S 640 46.3 21.6 2.49
YOLOv10-M 640 51.1 59.1 4.74
YOLOv10-B 640 52.5 92.0 5.74
YOLOv10-L 640 53.2 120.3 7.28
YOLOv10-X 640 54.4 160.4 10.70

Latencia medida con TensorRT FP16 en la GPU T4.

Metodolog铆a

Asignaciones dobles coherentes para una formaci贸n sin NMS

YOLOv10 emplea asignaciones de etiquetas duales, combinando estrategias de uno a muchos y de uno a uno durante el entrenamiento para garantizar una supervisi贸n rica y un despliegue eficiente de extremo a extremo. La m茅trica de coincidencia consistente alinea la supervisi贸n entre ambas estrategias, mejorando la calidad de las predicciones durante la inferencia.

Dise帽o hol铆stico de modelos basado en la eficiencia y la precisi贸n

Mejoras de la eficiencia

  1. Cabezal de clasificaci贸n ligero: Reduce la carga computacional del cabezal de clasificaci贸n utilizando convoluciones separables en profundidad.
  2. Muestreo descendente espacial-canal desacoplado: Desacopla la reducci贸n espacial y la modulaci贸n del canal para minimizar la p茅rdida de informaci贸n y el coste computacional.
  3. Dise帽o de bloques guiado por rangos: Adapta el dise帽o de los bloques bas谩ndose en la redundancia intr铆nseca de las etapas, garantizando una utilizaci贸n 贸ptima de los par谩metros.

Mejoras de precisi贸n

  1. Convoluci贸n de n煤cleo grande: Ampl铆a el campo receptivo para mejorar la capacidad de extracci贸n de rasgos.
  2. Autoatenci贸n Parcial (PSA): Incorpora m贸dulos de autoatenci贸n para mejorar el aprendizaje de la representaci贸n global con una sobrecarga m铆nima.

Experimentos y resultados

YOLOv10 se ha probado exhaustivamente en pruebas de referencia est谩ndar como COCO, demostrando un rendimiento y una eficacia superiores. El modelo alcanza resultados de vanguardia en distintas variantes, mostrando mejoras significativas en latencia y precisi贸n en comparaci贸n con versiones anteriores y otros detectores contempor谩neos.

Comparaciones

Comparaci贸n de YOLOv10 con los detectores de objetos SOTA

En comparaci贸n con otros detectores de 煤ltima generaci贸n:

  • YOLOv10-S / X son 1,8脳 / 1,3脳 m谩s r谩pidos que RT-DETR-R18 / R101 con una precisi贸n similar
  • YOLOv10-B tiene un 25% menos de par谩metros y un 46% menos de latencia que YOLOv9-C con la misma precisi贸n
  • YOLOv10-L / X supera a YOLOv8-L / X en 0,3 AP / 0,5 AP con 1,8脳 / 2,3脳 menos par谩metros

Aqu铆 tienes una comparaci贸n detallada de las variantes del YOLOv10 con otros modelos de 煤ltima generaci贸n:

Modelo Par谩metros (M) FLOPs (G) APval (%) Latencia (ms) Latencia (hacia delante) (ms)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
Oro-YOLO-N 5.6 12.1 39.6 2.92 1.82
YOLOv8-N 3.2 8.7 37.3 6.16 1.77
YOLOv10-N 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
Oro-YOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8-S 11.2 28.6 44.9 7.07 2.33
YOLOv10-S 7.2 21.6 46.8 2.49 2.39
RT-DETR-R18 20.0 60.0 46.5 4.58 4.49
YOLOv6-3.0-M 34.9 85.8 49.1 5.63 4.56
Oro-YOLO-M 41.3 87.5 49.8 6.38 5.45
YOLOv8-M 25.9 78.9 50.6 9.50 5.09
YOLOv10-M 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
Oro-YOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8-L 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8-X 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10-X 29.5 160.4 54.4 10.70 10.60

Ejemplos de uso

Pr贸ximamente

El equipo de Ultralytics est谩 trabajando activamente en la integraci贸n oficial de los modelos YOLOv10 en el ultralytics paquete. Una vez completada la integraci贸n, los ejemplos de uso que se muestran a continuaci贸n ser谩n totalmente funcionales. Por favor, mantente informado siguiendo nuestras redes sociales y Repositorio GitHub para las 煤ltimas actualizaciones sobre la integraci贸n de YOLOv10. 隆Agradecemos tu paciencia y entusiasmo! 馃殌

Para predecir nuevas im谩genes con YOLOv10:

from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()

Para entrenar YOLOv10 en un conjunto de datos personalizado:

from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Conclusi贸n

YOLOv10 establece un nuevo est谩ndar en la detecci贸n de objetos en tiempo real, abordando las deficiencias de las versiones anteriores de YOLO e incorporando estrategias de dise帽o innovadoras. Su capacidad para ofrecer una gran precisi贸n con un bajo coste computacional lo convierte en la opci贸n ideal para una amplia gama de aplicaciones del mundo real.

Citas y agradecimientos

Nos gustar铆a agradecer a los autores de YOLOv10 de la Universidad de Tsinghua su amplia investigaci贸n y sus importantes contribuciones al Ultralytics marco:

@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

Para una implementaci贸n detallada, innovaciones arquitect贸nicas y resultados experimentales, consulta el documento de investigaci贸n YOLOv10 y el repositorio GitHub del equipo de la Universidad Tsinghua.



Created 2024-05-25, Updated 2024-06-10
Authors: glenn-jocher (3), RizwanMunawar (2)

Comentarios