YOLOv7: Bolsa de regalos entrenable
YOLOv7 es un detector de objetos en tiempo real de 煤ltima generaci贸n que supera a todos los detectores de objetos conocidos tanto en velocidad como en precisi贸n en el rango de 5 FPS a 160 FPS. Tiene la mayor precisi贸n (56,8% AP) entre todos los detectores de objetos en tiempo real conocidos con 30 FPS o m谩s en GPU V100. Adem谩s, YOLOv7 supera en velocidad y precisi贸n a otros detectores de objetos como YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, y muchos otros. El modelo se entrena en el conjunto de datos MS COCO desde cero, sin utilizar otros conjuntos de datos ni pesos preentrenados. El c贸digo fuente de YOLOv7 est谩 disponible en GitHub.
Comparaci贸n de los detectores de objetos SOTA
A partir de los resultados de la tabla comparativa de YOLO sabemos que el m茅todo propuesto tiene la mejor relaci贸n velocidad-precisi贸n de forma global. Si comparamos YOLOv7-tiny-SiLU con YOLOv5-N (r6.1), nuestro m茅todo es 127 fps m谩s r谩pido y un 10,7% m谩s preciso en AP. Adem谩s, YOLOv7 tiene un 51,4% de AP con una tasa de fotogramas de 161 fps, mientras que PPYOLOE-L con el mismo AP s贸lo tiene una tasa de fotogramas de 78 fps. En cuanto al uso de par谩metros, YOLOv7 tiene un 41% menos que PPYOLOE-L. Si comparamos YOLOv7-X con una velocidad de inferencia de 114 fps con YOLOv5-L (r6.1) con una velocidad de inferencia de 99 fps, YOLOv7-X puede mejorar AP en un 3,9%. Si se compara YOLOv7-X con YOLOv5-X (r6.1) de escala similar, la velocidad de inferencia de YOLOv7-X es 31 fps m谩s r谩pida. Adem谩s, en t茅rminos de cantidad de par谩metros y c谩lculo, YOLOv7-X reduce el 22% de los par谩metros y el 8% del c谩lculo en comparaci贸n con YOLOv5-X (r6.1), pero mejora AP en un 2,2%(Fuente).
Modelo | Par谩metros (M) |
FLOPs (G) |
Tama帽o (p铆xeles) |
FPS | APtest/ val 50-95 |
APtest 50 |
APtest 75 |
APtest S |
APtest M |
APrueba L |
---|---|---|---|---|---|---|---|---|---|---|
YOLOX-S | 9.0M | 26.8G | 640 | 102 | 40.5% / 40.5% | - | - | - | - | - |
YOLOX-M | 25.3M | 73.8G | 640 | 81 | 47.2% / 46.9% | - | - | - | - | - |
YOLOX-L | 54.2M | 155.6G | 640 | 69 | 50.1% / 49.7% | - | - | - | - | - |
YOLOX-X | 99.1M | 281.9G | 640 | 58 | 51.5% / 51.1% | - | - | - | - | - |
PPYOLOE-S | 7.9M | 17.4G | 640 | 208 | 43.1% / 42.7% | 60.5% | 46.6% | 23.2% | 46.4% | 56.9% |
PPYOLOE-M | 23.4M | 49.9G | 640 | 123 | 48.9% / 48.6% | 66.5% | 53.0% | 28.6% | 52.9% | 63.8% |
PPYOLOE-L | 52.2M | 110.1G | 640 | 78 | 51.4% / 50.9% | 68.9% | 55.6% | 31.4% | 55.3% | 66.1% |
PPYOLOE-X | 98.4M | 206.6G | 640 | 45 | 52.2% / 51.9% | 69.9% | 56.5% | 33.3% | 56.3% | 66.4% |
YOLOv5-N (r6.1) | 1.9M | 4.5G | 640 | 159 | - / 28.0% | - | - | - | - | - |
YOLOv5-S (r6.1) | 7.2M | 16.5G | 640 | 156 | - / 37.4% | - | - | - | - | - |
YOLOv5-M (r6.1) | 21.2M | 49.0G | 640 | 122 | - / 45.4% | - | - | - | - | - |
YOLOv5-L (r6.1) | 46.5M | 109.1G | 640 | 99 | - / 49.0% | - | - | - | - | - |
YOLOv5-X (r6.1) | 86.7M | 205.7G | 640 | 83 | - / 50.7% | - | - | - | - | - |
YOLOR-CSP | 52.9M | 120.4G | 640 | 106 | 51.1% / 50.8% | 69.6% | 55.7% | 31.7% | 55.3% | 64.7% |
YOLOR-CSP-X | 96.9M | 226.8G | 640 | 87 | 53.0% / 52.7% | 71.4% | 57.9% | 33.7% | 57.1% | 66.8% |
YOLOv7-tiny-SiLU | 6.2M | 13.8G | 640 | 286 | 38.7% / 38.7% | 56.7% | 41.7% | 18.8% | 42.4% | 51.9% |
YOLOv7 | 36.9M | 104.7G | 640 | 161 | 51.4% / 51.2% | 69.7% | 55.9% | 31.8% | 55.5% | 65.0% |
YOLOv7-X | 71.3M | 189.9G | 640 | 114 | 53.1% / 52.9% | 71.2% | 57.8% | 33.8% | 57.1% | 67.4% |
YOLOv5-N6 (r6.1) | 3.2M | 18.4G | 1280 | 123 | - / 36.0% | - | - | - | - | - |
YOLOv5-S6 (r6.1) | 12.6M | 67.2G | 1280 | 122 | - / 44.8% | - | - | - | - | - |
YOLOv5-M6 (r6.1) | 35.7M | 200.0G | 1280 | 90 | - / 51.3% | - | - | - | - | - |
YOLOv5-L6 (r6.1) | 76.8M | 445.6G | 1280 | 63 | - / 53.7% | - | - | - | - | - |
YOLOv5-X6 (r6.1) | 140.7M | 839.2G | 1280 | 38 | - / 55.0% | - | - | - | - | - |
YOLOR-P6 | 37.2M | 325.6G | 1280 | 76 | 53.9% / 53.5% | 71.4% | 58.9% | 36.1% | 57.7% | 65.6% |
YOLOR-W6 | 79.8G | 453.2G | 1280 | 66 | 55.2% / 54.8% | 72.7% | 60.5% | 37.7% | 59.1% | 67.1% |
YOLOR-E6 | 115.8M | 683.2G | 1280 | 45 | 55.8% / 55.7% | 73.4% | 61.1% | 38.4% | 59.7% | 67.7% |
YOLOR-D6 | 151.7M | 935.6G | 1280 | 34 | 56.5% / 56.1% | 74.1% | 61.9% | 38.9% | 60.4% | 68.7% |
YOLOv7-W6 | 70.4M | 360.0G | 1280 | 84 | 54.9% / 54.6% | 72.6% | 60.1% | 37.3% | 58.7% | 67.1% |
YOLOv7-E6 | 97.2M | 515.2G | 1280 | 56 | 56.0% / 55.9% | 73.5% | 61.2% | 38.0% | 59.9% | 68.4% |
YOLOv7-D6 | 154.7M | 806.8G | 1280 | 44 | 56.6% / 56.3% | 74.0% | 61.8% | 38.8% | 60.1% | 69.5% |
YOLOv7-E6E | 151.7M | 843.2G | 1280 | 36 | 56.8% / 56.8% | 74.4% | 62.1% | 39.3% | 60.5% | 69.0% |
Visi贸n general
La detecci贸n de objetos en tiempo real es un componente importante en muchos sistemas de visi贸n por ordenador, como el seguimiento multiobjeto, la conducci贸n aut贸noma, la rob贸tica y el an谩lisis de im谩genes m茅dicas. En los 煤ltimos a帽os, el desarrollo de la detecci贸n de objetos en tiempo real se ha centrado en el dise帽o de arquitecturas eficientes y en la mejora de la velocidad de inferencia de diversas CPU, GPU y unidades de procesamiento neuronal (NPU). YOLOv7 es compatible con dispositivos m贸viles GPU y GPU , desde el borde hasta la nube.
A diferencia de los detectores de objetos en tiempo real tradicionales, que se centran en la optimizaci贸n de la arquitectura, YOLOv7 introduce un enfoque en la optimizaci贸n del proceso de entrenamiento. Esto incluye m贸dulos y m茅todos de optimizaci贸n dise帽ados para mejorar la precisi贸n de la detecci贸n de objetos sin aumentar el coste de inferencia, un concepto conocido como "trainable bag-of-freebies".
Caracter铆sticas principales
YOLOv7 introduce varias caracter铆sticas clave:
-
Re-parametrizaci贸n del modelo: YOLOv7 propone un modelo re-parametrizado planificado, que es una estrategia aplicable a capas en diferentes redes con el concepto de trayectoria de propagaci贸n de gradiente.
-
Asignaci贸n din谩mica de etiquetas: El entrenamiento del modelo con m煤ltiples capas de salida presenta un nuevo problema: "驴C贸mo asignar objetivos din谩micos para las salidas de diferentes ramas?". Para resolver este problema, YOLOv7 introduce un nuevo m茅todo de asignaci贸n de etiquetas denominado asignaci贸n de etiquetas guiada por pistas de grueso a fino.
-
Escalado extendido y compuesto: YOLOv7 propone m茅todos de "escalado extendido" y "compuesto" para el detector de objetos en tiempo real que pueden utilizar eficazmente los par谩metros y el c谩lculo.
-
Eficacia: El m茅todo propuesto por YOLOv7 puede reducir eficazmente alrededor del 40% de los par谩metros y el 50% del c谩lculo del detector de objetos en tiempo real m谩s avanzado, y tiene una velocidad de inferencia m谩s r谩pida y una mayor precisi贸n de detecci贸n.
Ejemplos de uso
En el momento de escribir estas l铆neas, Ultralytics no es compatible con los modelos YOLOv7. Por lo tanto, los usuarios interesados en utilizar YOLOv7 deber谩n consultar directamente el repositorio GitHub de YOLOv7 para obtener instrucciones de instalaci贸n y uso.
A continuaci贸n le ofrecemos un breve resumen de los pasos t铆picos que puede seguir para utilizar YOLOv7:
-
Visita el repositorio GitHub de YOLOv7: https://github.com/WongKinYiu/yolov7.
-
Siga las instrucciones del archivo README para la instalaci贸n. Esto normalmente implica clonar el repositorio, instalar las dependencias necesarias y configurar las variables de entorno necesarias.
-
Una vez finalizada la instalaci贸n, puede entrenar y utilizar el modelo seg煤n las instrucciones de uso proporcionadas en el repositorio. Esto suele implicar la preparaci贸n del conjunto de datos, la configuraci贸n de los par谩metros del modelo, el entrenamiento del modelo y, a continuaci贸n, el uso del modelo entrenado para realizar la detecci贸n de objetos.
Tenga en cuenta que los pasos concretos pueden variar en funci贸n de su caso de uso espec铆fico y del estado actual del repositorio de YOLOv7. Por lo tanto, se recomienda encarecidamente consultar directamente las instrucciones proporcionadas en el repositorio GitHub de YOLOv7.
Lamentamos las molestias que esto pueda causar y nos esforzaremos por actualizar este documento con ejemplos de uso para Ultralytics una vez que se implemente la compatibilidad con YOLOv7.
Citas y agradecimientos
Queremos agradecer a los autores de YOLOv7 sus importantes contribuciones en el campo de la detecci贸n de objetos en tiempo real:
El art铆culo original sobre YOLOv7 puede consultarse en arXiv. Los autores han puesto su trabajo a disposici贸n del p煤blico y se puede acceder al c贸digo base en GitHub. Agradecemos sus esfuerzos por hacer avanzar este campo y poner su trabajo a disposici贸n de la comunidad en general.
PREGUNTAS FRECUENTES
驴Qu茅 es YOLOv7 y por qu茅 se considera un gran avance en la detecci贸n de objetos en tiempo real?
YOLOv7 es un modelo puntero de detecci贸n de objetos en tiempo real que alcanza una velocidad y una precisi贸n inigualables. Supera a otros modelos, como YOLOX, YOLOv5 y PPYOLOE, tanto en el uso de par谩metros como en la velocidad de inferencia. Entre las caracter铆sticas distintivas de YOLOv7 se encuentran la reparametrizaci贸n del modelo y la asignaci贸n din谩mica de etiquetas, que optimizan su rendimiento sin aumentar los costes de inferencia. Para obtener m谩s detalles t茅cnicos sobre su arquitectura y comparaciones m茅tricas con otros detectores de objetos de 煤ltima generaci贸n, consulte el art铆culo YOLOv7.
驴En qu茅 mejora YOLOv7 a modelos anteriores de YOLO como YOLOv4 y YOLOv5?
YOLOv7 introduce varias innovaciones, como la reparametrizaci贸n del modelo y la asignaci贸n din谩mica de etiquetas, que mejoran el proceso de formaci贸n y la precisi贸n de la inferencia. En comparaci贸n con YOLOv5, YOLOv7 aumenta significativamente la velocidad y la precisi贸n. Por ejemplo, YOLOv7-X mejora la precisi贸n en un 2,2% y reduce los par谩metros en un 22% en comparaci贸n con YOLOv5-X. Encontrar谩 comparaciones detalladas en la tabla de rendimiento Comparaci贸n de YOLOv7 con los detectores de objetos SOTA.
驴Puedo utilizar YOLOv7 con las herramientas y plataformas de Ultralytics ?
Por el momento, Ultralytics no soporta directamente YOLOv7 en sus herramientas y plataformas. Los usuarios interesados en utilizar YOLOv7 deben seguir las instrucciones de instalaci贸n y uso proporcionadas en el repositorio GitHub de YOLOv7. Para otros modelos de 煤ltima generaci贸n, puede explorar y entrenar utilizando herramientas de Ultralytics como Ultralytics HUB.
驴C贸mo instalo y ejecuto YOLOv7 para un proyecto de detecci贸n de objetos personalizado?
Para instalar y ejecutar YOLOv7, siga estos pasos:
- Clonar el repositorio YOLOv7:
- Navegue hasta el directorio clonado e instale las dependencias:
- Prepare su conjunto de datos y configure los par谩metros del modelo de acuerdo con las instrucciones de uso proporcionadas en el repositorio. Para obtener m谩s orientaci贸n, visite el repositorio GitHub de YOLOv7 para consultar la informaci贸n y las actualizaciones m谩s recientes.
驴Cu谩les son las principales caracter铆sticas y optimizaciones introducidas en YOLOv7?
YOLOv7 ofrece varias funciones clave que revolucionan la detecci贸n de objetos en tiempo real:
- Reparametrizaci贸n del modelo: Mejora el rendimiento del modelo optimizando las rutas de propagaci贸n del gradiente.
- Asignaci贸n din谩mica de etiquetas: Utiliza un m茅todo guiado por pistas de grueso a fino para asignar objetivos din谩micos para salidas a trav茅s de diferentes ramas, mejorando la precisi贸n.
- Escalado ampliado y compuesto: Utiliza eficientemente los par谩metros y el c谩lculo para escalar el modelo para diversas aplicaciones en tiempo real.
- Eficacia: Reduce el recuento de par谩metros en un 40% y el c贸mputo en un 50% en comparaci贸n con otros modelos del estado de la t茅cnica, al tiempo que logra velocidades de inferencia m谩s r谩pidas.
Para m谩s detalles sobre estas funciones, consulte la secci贸n Visi贸n general de YOLOv7.