Ir al contenido

YOLOv4: Detección de objetos precisa y de alta velocidad

Le damos la bienvenida 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 proporcionar el equilibrio óptimo entre velocidad y precisión, lo que lo convierte en una excelente opción para muchas aplicaciones.

Diagrama de la arquitectura de YOLOv4 Diagrama de la arquitectura de YOLOv4. Presentación del intrincado diseño de red de YOLOv4, incluyendo los componentes de backbone, cuello y cabeza, y sus capas interconectadas para una detección de objetos en tiempo real óptima.

Introducción

YOLOv4 significa You Only Look Once versión 4. Es un modelo de detección de objetos en tiempo real desarrollado para abordar las limitaciones de las 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 solo es aplicable para sistemas de recomendación, sino también para la gestión de procesos autónomos y la reducción de la entrada humana. Su funcionamiento en unidades de procesamiento gráfico (GPU) convencionales permite un uso masivo a un precio asequible, y está diseñado para funcionar en tiempo real en una GPU convencional, requiriendo solo una GPU para el entrenamiento.

Arquitectura

YOLOv4 utiliza varias características innovadoras que funcionan juntas para optimizar su rendimiento. Estas incluyen Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, DropBlock regularization y CIoU loss. Estas características se combinan para lograr resultados de última generación.

Un detector de objetos típico se compone de varias partes, incluyendo la entrada, el backbone, el cuello y la cabeza. El backbone de YOLOv4 está pre-entrenado en ImageNet y se utiliza para predecir las clases y las bounding boxes de los objetos. El backbone podría ser de varios modelos, incluyendo VGG, ResNet, ResNeXt o DenseNet. La parte del cuello del detector se utiliza para recoger mapas de características de diferentes etapas y normalmente incluye varias rutas ascendentes y varias rutas descendentes. La parte de la cabeza es la que se utiliza para hacer las detecciones y clasificaciones finales de los objetos.

Bag of Freebies (Bolsa de Regalos)

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

Características y rendimiento

YOLOv4 está diseñado para una velocidad y precisión óptimas en la detección de objetos. La arquitectura de YOLOv4 incluye CSPDarknet53 como backbone, PANet como neck y YOLOv3 como cabezal de detección. Este diseño permite que YOLOv4 realice la detección de objetos a una velocidad impresionante, lo que lo hace adecuado para aplicaciones en tiempo real. YOLOv4 también destaca en precisión, logrando resultados de última generación en benchmarks de detección de objetos como COCO.

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

Ejemplos de uso

Al momento de escribir esto, Ultralytics no es compatible actualmente con los modelos YOLOv4. Por lo tanto, cualquier usuario interesado en usar YOLOv4 deberá consultar directamente el repositorio de YOLOv4 en GitHub para obtener instrucciones de instalación y uso.

Aquí hay una breve descripción general de los pasos típicos que puedes seguir para usar YOLOv4:

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

  2. Sigue las instrucciones proporcionadas en el archivo README para la instalación. Esto normalmente implica clonar el repositorio, instalar las dependencias necesarias y configurar cualquier variable de entorno necesaria.

  3. Una vez que se completa la instalación, puede entrenar y utilizar el modelo según las instrucciones de uso proporcionadas en el repositorio. Esto generalmente implica preparar su conjunto de datos, configurar los parámetros del modelo, entrenar el modelo y luego usar el modelo entrenado para realizar la detección de objetos.

Ten en cuenta que los pasos específicos pueden variar dependiendo de tu caso de uso específico y del estado actual del repositorio YOLOv4. Por lo tanto, se recomienda encarecidamente consultar directamente las instrucciones proporcionadas en el repositorio YOLOv4 de GitHub.

Lamentamos cualquier inconveniente que esto pueda causar y nos esforzaremos por actualizar este documento con ejemplos de uso para Ultralytics una vez que se implemente el soporte para YOLOv4.

Conclusión

YOLOv4 es un modelo de detección de objetos potente y eficiente que logra un equilibrio entre velocidad y precisión. Su uso de características únicas y técnicas de bolsa de regalos durante el entrenamiento le permite tener un rendimiento excelente en tareas de detección de objetos en tiempo real. YOLOv4 puede ser entrenado y utilizado por cualquier persona con una GPU convencional, lo que lo hace accesible y práctico para una amplia gama de aplicaciones, incluidos los sistemas de vigilancia, los vehículos autónomos y la automatización industrial.

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

Citas y agradecimientos

Nos gustaría reconocer a los autores de YOLOv4 por 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 de YOLOv4 se puede encontrar en arXiv. Los autores han hecho que su trabajo esté disponible públicamente y se puede acceder a la base de código en GitHub. Agradecemos sus esfuerzos para avanzar en el campo y hacer que su trabajo sea accesible a la comunidad en general.

PREGUNTAS FRECUENTES

¿Qué es YOLOv4 y por qué debería usarlo 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. Logra 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 características innovadoras como Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) y Self-adversarial-training (SAT), entre otras, para lograr resultados de última generación. Si está buscando un modelo de alto rendimiento que funcione de manera eficiente en las GPU convencionales, YOLOv4 es una excelente opción.

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

La arquitectura de YOLOv4 incluye varios componentes clave: el backbone, el cuello y la cabeza. El backbone, que puede ser modelos como VGG, ResNet o CSPDarknet53, está pre-entrenado para predecir clases y cuadros delimitadores. El cuello, que utiliza PANet, conecta los mapas de características de diferentes etapas para una extracción exhaustiva de los 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 los "bag of freebies" en el contexto de YOLOv4?

"Bag of freebies" se refiere a métodos que mejoran la precisión del entrenamiento de YOLOv4 sin aumentar el costo 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, estas aumentaciones ayudan a YOLOv4 a generalizar mejor a diferentes tipos de imágenes, lo que mejora 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 las GPU convencionales?

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

¿Cómo puedo empezar con YOLOv4 si Ultralytics no lo soporta actualmente?

Para empezar con YOLOv4, debes visitar el repositorio oficial de YOLOv4 en GitHub. Sigue las instrucciones de instalación proporcionadas en el archivo README, que normalmente incluyen clonar el repositorio, instalar las dependencias y configurar las variables de entorno. Una vez instalado, puedes entrenar el modelo preparando tu 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 la guía más actualizada y detallada.



📅 Creado hace 1 año ✏️ Actualizado hace 3 meses

Comentarios