Saltar al contenido

YOLOv7: Bolsa de regalos entrenable

YOLOv7 is a state-of-the-art real-time object detector that surpasses all known object detectors in both speed and accuracy in the range from 5 FPS to 160 FPS. It has the highest accuracy (56.8% AP) among all known real-time object detectors with 30 FPS or higher on GPU V100. Moreover, YOLOv7 outperforms other object detectors such as YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, and many others in speed and accuracy. The model is trained on the MS COCO dataset from scratch without using any other datasets or pre-trained weights. Source code for YOLOv7 is available on GitHub.

Comparación de YOLOv7 con los detectores de objetos SOTA

Comparación de los detectores de objetos SOTA

Por los resultados de la tabla comparativa 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 velocidad de fotogramas de 161 fps, mientras que PPYOLOE-L con el mismo AP sólo tiene una velocidad 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 el 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 cuanto a la 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 el PA en un 2,2%(Fuente).

ModeloParámetros
(M)
FLOPs
(G)
Tamaño
(píxeles)
FPSAPtest/ val
50-95
APtest
50
APtest
75
APrueba
S
APrueba
M
APtest
L
YOLOX-S9.0M26.8G64010240.5% / 40.5%-----
YOLOX-M25.3M73.8G6408147.2% / 46.9%-----
YOLOX-L54.2M155.6G6406950.1% / 49.7%-----
YOLOX-X99.1M281.9G6405851.5% / 51.1%-----
PPYOLOE-S7.9M17.4G64020843.1% / 42.7%60.5%46.6%23.2%46.4%56.9%
PPYOLOE-M23.4M49.9G64012348.9% / 48.6%66.5%53.0%28.6%52.9%63.8%
PPYOLOE-L52.2M110.1G6407851.4% / 50.9%68.9%55.6%31.4%55.3%66.1%
PPYOLOE-X98.4M206.6G6404552.2% / 51.9%69.9%56.5%33.3%56.3%66.4%
YOLOv5-N (r6.1)1.9M4.5G640159- / 28.0%-----
YOLOv5-S (r6.1)7.2M16.5G640156- / 37.4%-----
YOLOv5-M (r6.1)21.2M49.0G640122- / 45.4%-----
YOLOv5-L (r6.1)46.5M109.1G64099- / 49.0%-----
YOLOv5-X (r6.1)86.7M205.7G64083- / 50.7%-----
YOLOR-CSP52.9M120.4G64010651.1% / 50.8%69.6%55.7%31.7%55.3%64.7%
YOLOR-CSP-X96.9M226.8G6408753.0% / 52.7%71.4%57.9%33.7%57.1%66.8%
YOLOv7-diminuto-SiLU6.2M13.8G64028638.7% / 38.7%56.7%41.7%18.8%42.4%51.9%
YOLOv736.9M104.7G64016151.4% / 51.2%69.7%55.9%31.8%55.5%65.0%
YOLOv7-X71.3M189.9G64011453.1% / 52.9%71.2%57.8%33.8%57.1%67.4%
YOLOv5-N6 (r6.1)3.2M18.4G1280123- / 36.0%-----
YOLOv5-S6 (r6.1)12.6M67.2G1280122- / 44.8%-----
YOLOv5-M6 (r6.1)35.7M200.0G128090- / 51.3%-----
YOLOv5-L6 (r6.1)76.8M445.6G128063- / 53.7%-----
YOLOv5-X6 (r6.1)140.7M839.2G128038- / 55.0%-----
YOLOR-P637.2M325.6G12807653.9% / 53.5%71.4%58.9%36.1%57.7%65.6%
YOLOR-W679.8G453.2G12806655.2% / 54.8%72.7%60.5%37.7%59.1%67.1%
YOLOR-E6115.8M683.2G12804555.8% / 55.7%73.4%61.1%38.4%59.7%67.7%
YOLOR-D6151.7M935.6G12803456.5% / 56.1%74.1%61.9%38.9%60.4%68.7%
YOLOv7-W670.4M360.0G12808454.9% / 54.6%72.6%60.1%37.3%58.7%67.1%
YOLOv7-E697.2M515.2G12805656.0% / 55.9%73.5%61.2%38.0%59.9%68.4%
YOLOv7-D6154.7M806.8G12804456.6% / 56.3%74.0%61.8%38.8%60.1%69.5%
YOLOv7-E6E151.7M843.2G12803656.8% / 56.8%74.4%62.1%39.3%60.5%69.0%

Visión general

Real-time object detection is an important component in many computer vision systems, including multi-object tracking, autonomous driving, robotics, and medical image analysis. In recent years, real-time object detection development has focused on designing efficient architectures and improving the inference speed of various CPUs, GPUs, and neural processing units (NPUs). YOLOv7 supports both mobile GPU and GPU devices, from the edge to the cloud.

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 la inferencia, un concepto conocido como "bag-of-freebies entrenable".

Características principales

YOLOv7 introduce varias características clave:

  1. Reparametrización del modelo: YOLOv7 propone un modelo re-parametrizado planificado, que es una estrategia aplicable a capas de diferentes redes con el concepto de trayectoria de propagación de gradiente.

  2. Asignación dinámica de etiquetas: El entrenamiento del modelo con múltiples capas de salida presenta una nueva cuestión: "¿Cómo asignar objetivos dinámicos para las salidas de las distintas ramas?". Para resolver este problema, YOLOv7 introduce un nuevo método de asignación de etiquetas llamado asignación de etiquetas guiada de rama gruesa a fina.

  3. Escalado Extendido y Compuesto: YOLOv7 propone métodos de "escalado ampliado" y "escalado compuesto" para el detector de objetos en tiempo real, que pueden utilizar eficazmente los parámetros y el cálculo.

  4. Eficacia: El método propuesto por YOLOv7 puede reducir eficazmente alrededor de un 40% los parámetros y un 50% el 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 esto, Ultralytics no admite actualmente los modelos YOLOv7. Por lo tanto, cualquier usuario interesado en utilizar YOLOv7 tendrá que consultar directamente el repositorio GitHub de YOLOv7 para obtener instrucciones de instalación y uso.

Aquí tienes un breve resumen de los pasos típicos que puedes dar para utilizar YOLOv7:

  1. Visita el repositorio GitHub de YOLOv7: https://github.com/WongKinYiu/yolov7.

  2. Sigue las instrucciones proporcionadas en el archivo README para la instalación. Esto suele implicar clonar el repositorio, instalar las dependencias necesarias y configurar las variables de entorno necesarias.

  3. Una vez completada la instalación, puedes entrenar y utilizar el modelo según las instrucciones de uso proporcionadas en el repositorio. Normalmente, esto implica preparar tu conjunto de datos, configurar los parámetros del modelo, entrenar el modelo y, a continuación, utilizar el modelo entrenado para realizar la detección de objetos.

Ten en cuenta que los pasos concretos pueden variar en función de tu 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:

@article{wang2022yolov7,
  title={YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

El artículo original de 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 el campo y poner su trabajo a disposición de la comunidad en general.

PREGUNTAS FRECUENTES

What is YOLOv7 and why is it considered a breakthrough in real-time object detection?

YOLOv7 es un modelo vanguardista 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 uso de parámetros como en velocidad de inferencia. Las características distintivas de YOLOv7 incluyen la reparametrización del modelo y la asignación dinámica de etiquetas, que optimizan su rendimiento sin aumentar los costes de inferencia. Para más detalles técnicos sobre su arquitectura y métricas de comparación con otros detectores de objetos de última generación, consulta el documento YOLOv7.

¿En qué mejora YOLOv7 a los 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 entrenamiento 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. Puedes 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 ahora, Ultralytics no admite 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, puedes explorar y entrenar utilizando herramientas de Ultralytics como Ultralytics HUB.

¿Cómo instalo y ejecuto YOLOv7 para un proyecto personalizado de detección de objetos?

Para instalar y ejecutar YOLOv7, sigue estos pasos:

  1. Clona el repositorio YOLOv7:
    git clone https://github.com/WongKinYiu/yolov7
    
  2. Navega hasta el directorio clonado e instala las dependencias:
    cd yolov7
    pip install -r requirements.txt
    
  3. Prepare your dataset and configure the model parameters according to the usage instructions provided in the repository. For further guidance, visit the YOLOv7 GitHub repository for the latest information and updates.

¿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 trayectorias 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 a las salidas de las distintas ramas, mejorando la precisión.
  • Escalado ampliado y compuesto: Utiliza eficazmente los parámetros y el cálculo para escalar el modelo para diversas aplicaciones en tiempo real.
  • Efficiency: Reduces parameter count by 40% and computation by 50% compared to other state-of-the-art models while achieving faster inference speeds. For further details on these features, see the YOLOv7 Overview section.
📅 Created 11 months ago ✏️ Updated 28 days ago

Comentarios