Ir al contenido

YOLOv4: detección de objetos a gran velocidad y precisión

Bienvenido a la página de documentación de Ultralytics para YOLOv4, un detector de objetos en tiempo real de última generación lanzado en 2020 por Alexey Bochkovskiy en https://github.com/AlexeyAB/darknet. YOLOv4 está diseñado para ofrecer un equilibrio óptimo entre velocidad y precisión, lo que lo convierte en una opción excelente para muchas aplicaciones.

Diagrama de arquitectura de YOLOv4 Diagrama de arquitectura de YOLOv4. Presentación del complejo diseño de red de YOLOv4, incluidos los componentes de la columna vertebral, el cuello y la cabeza, y sus capas interconectadas para una detección óptima de objetos en tiempo real.

Introducción

YOLOv4 son las siglas de You Only Look Once versión 4. Se trata de un modelo de detección de objetos en tiempo real desarrollado para solventar las limitaciones de versiones anteriores de YOLO como YOLOv3 y otros modelos de detección de objetos. A diferencia de otros detectores de objetos basados en redes neuronales convolucionales (CNN), YOLOv4 no sólo es aplicable a sistemas de recomendación, sino también a la gestión autónoma de procesos y a la reducción de entradas humanas. Su funcionamiento en unidades de procesamiento gráfico (GPU) convencionales permite un uso masivo a un precio asequible, y está diseñado para trabajar en tiempo real en una GPU convencional, al tiempo que sólo requiere una de estas GPU para el entrenamiento.

Arquitectura

YOLOv4 utiliza varias funciones innovadoras que trabajan conjuntamente para optimizar su rendimiento. Entre ellas se incluyen las conexiones residuales ponderadas (WRC), las conexiones parciales en etapas cruzadas (CSP),la normalización de mini lotes cruzados (CmBN), el entrenamiento autoadversarial (SAT), la activación errónea, el aumento de datos en mosaico, la regularización DropBlock y la pérdida CIoU. Estas características se combinan para obtener los resultados más avanzados.

Un detector de objetos típico se compone de varias partes: la entrada, la columna vertebral, el cuello y la cabeza. La columna vertebral de YOLOv4 está preentrenada en ImageNet y se utiliza para predecir las clases y los cuadros delimitadores de los objetos. La columna vertebral puede proceder de varios modelos, como VGG, ResNet, ResNeXt o DenseNet. La parte del cuello del detector se utiliza para recopilar mapas de características de distintas etapas y suele incluir varias rutas ascendentes y varias descendentes. La parte de la cabeza es la que se utiliza para realizar las detecciones y clasificaciones finales de objetos.

Bolsa de regalos

YOLOv4 también hace uso de métodos conocidos como "bag of freebies", que son técnicas que mejoran la precisión del modelo durante el entrenamiento sin aumentar el coste de la inferencia. El aumento de datos es una técnica común de "bag of freebies" utilizada en la detección de objetos, que incrementa la variabilidad de las imágenes de entrada para mejorar la robustez del modelo. Algunos ejemplos de aumento de datos son las distorsiones fotométricas (ajuste del brillo, el contraste, el tono, la saturación y el ruido de una imagen) y las distorsiones geométricas (adición de escalado, recorte, volteo y rotación aleatorios). Estas técnicas ayudan al modelo a generalizarse mejor a distintos tipos de imágenes.

Características y prestaciones

YOLOv4 está diseñado para una velocidad y precisión óptimas en la detección de objetos. La arquitectura de YOLOv4 incluye CSPDarknet53 como columna vertebral, PANet como cuello y YOLOv3 como cabeza de detección. Este diseño permite a YOLOv4 realizar la detección de objetos a una velocidad impresionante, lo que lo hace adecuado para aplicaciones en tiempo real. YOLOv4 también destaca por su precisión, con resultados de vanguardia en pruebas de detección de objetos como COCO.

En comparación con otros modelos de la familia YOLO , como el YOLOv5 y YOLOv7, YOLOv4 mantiene una sólida posición en el equilibrio entre velocidad y precisión. Aunque los modelos más recientes pueden ofrecer ciertas ventajas, las innovaciones arquitectónicas de YOLOv4 siguen haciéndolo relevante para muchas aplicaciones que requieren rendimiento en tiempo real.

Ejemplos de uso

En el momento de escribir estas líneas, Ultralytics no es compatible con los modelos YOLOv4. Por lo tanto, los usuarios interesados en utilizar YOLOv4 deberán consultar directamente el repositorio GitHub de YOLOv4 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 YOLOv4:

  1. Visita el repositorio GitHub de YOLOv4: https://github.com/AlexeyAB/darknet.

  2. 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.

  3. 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 YOLOv4. Por lo tanto, se recomienda encarecidamente consultar directamente las instrucciones proporcionadas en el repositorio GitHub de YOLOv4.

Lamentamos las molestias que esto pueda causar y nos esforzaremos por actualizar este documento con ejemplos de uso para Ultralytics una vez que se implante la compatibilidad con YOLOv4.

Conclusión

YOLOv4 es un modelo de detección de objetos potente y eficaz que logra un equilibrio entre velocidad y precisión. Su uso de características únicas y técnicas de bag of freebies durante el entrenamiento le permite rendir de forma excelente en tareas de detección de objetos en tiempo real. YOLOv4 puede ser entrenado y utilizado por cualquier persona que disponga de una GPU convencional, lo que lo hace accesible y práctico para una amplia gama de aplicaciones que incluyen sistemas de vigilancia, vehículos autónomos y automatización industrial.

Para aquellos que buscan implementar la detección de objetos en sus proyectos, YOLOv4 sigue siendo un fuerte contendiente, especialmente cuando el rendimiento en tiempo real es una prioridad. Aunque Ultralytics se centra actualmente en dar soporte a versiones más recientes de YOLO como YOLOv8 y YOLO11las innovaciones arquitectónicas introducidas en YOLOv4 han influido en el desarrollo de estos modelos posteriores.

Citas y agradecimientos

Queremos agradecer a los autores de YOLOv4 sus importantes contribuciones en el campo de la detección de objetos en tiempo real:

@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

El artículo original sobre YOLOv4 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 YOLOv4 y por qué debería utilizarlo para la detección de objetos?

YOLOv4, que significa "You Only Look Once versión 4", es un modelo de detección de objetos en tiempo real de última generación desarrollado por Alexey Bochkovskiy en 2020. Consigue un equilibrio óptimo entre velocidad y precisión, lo que lo hace muy adecuado para aplicaciones en tiempo real. La arquitectura de YOLOv4 incorpora varias funciones innovadoras, como las conexiones residuales ponderadas (WRC), las conexiones parciales en etapas cruzadas (CSP) y el entrenamiento autoadversarial (SAT), entre otras, para lograr resultados de vanguardia. Si buscas un modelo de alto rendimiento que funcione eficientemente en GPUs convencionales, YOLOv4 es una excelente elección.

¿Cómo mejora su rendimiento la arquitectura de YOLOv4?

La arquitectura de YOLOv4 incluye varios componentes clave: la columna vertebral, el cuello y la cabeza. La columna vertebral, que puede ser modelos como VGG, ResNet o CSPDarknet53, está preentrenada para predecir clases y cuadros delimitadores. El cuello, que utiliza PANet, conecta mapas de características de diferentes etapas para la extracción exhaustiva de datos. Por último, la cabeza, que utiliza configuraciones de YOLOv3, realiza las detecciones finales de objetos. YOLOv4 también emplea técnicas de "bag of freebies" como el aumento de datos en mosaico y la regularización DropBlock, optimizando aún más su velocidad y precisión.

¿Qué son las "bolsas de regalos" en el contexto de YOLOv4?

La "bolsa de regalos" se refiere a los métodos que mejoran la precisión del entrenamiento de YOLOv4 sin aumentar el coste de la inferencia. Estas técnicas incluyen varias formas de aumento de datos, como distorsiones fotométricas (ajuste de brillo, contraste, etc.) y distorsiones geométricas (escalado, recorte, volteo, rotación). Al aumentar la variabilidad de las imágenes de entrada, estos aumentos ayudan a YOLOv4 a generalizarse mejor a distintos tipos de imágenes, mejorando así su robustez y precisión sin comprometer su rendimiento en tiempo real.

¿Por qué se considera que YOLOv4 es adecuado para la detección de objetos en tiempo real en GPU convencionales?

YOLOv4 está diseñado para optimizar tanto la velocidad como la precisión, por lo que resulta ideal para tareas de detección de objetos en tiempo real que requieren un rendimiento rápido y fiable. Funciona de forma eficiente en GPU convencionales, ya que sólo necesita una para el entrenamiento y la inferencia. Esto lo hace accesible y práctico para diversas aplicaciones que van desde los sistemas de recomendación hasta la gestión autónoma de procesos, lo que reduce la necesidad de grandes configuraciones de hardware y lo convierte en una solución rentable para la detección de objetos en tiempo real.

¿Cómo puedo empezar a utilizar YOLOv4 si Ultralytics no lo admite actualmente?

Para empezar a utilizar YOLOv4, visita el repositorio oficial de YOLOv4 en GitHub. Siga las instrucciones de instalación proporcionadas en el archivo README, que suelen incluir la clonación del repositorio, la instalación de dependencias y la configuración de variables de entorno. Una vez instalado, puede entrenar el modelo preparando su conjunto de datos, configurando los parámetros del modelo y siguiendo las instrucciones de uso proporcionadas. Dado que Ultralytics no es compatible actualmente con YOLOv4, se recomienda consultar directamente el GitHub de YOLOv4 para obtener las instrucciones más actualizadas y detalladas.

Creado hace 1 año ✏️ Actualizado hace 6 días

Comentarios