YOLOv4: Detección de Objetos de Alta Velocidad y Precisión
Bienvenido a la página de documentación Ultralytics de 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.
Esquema de la arquitectura de YOLOv4. Muestra el intrincado 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 stands for You Only Look Once version 4. It is a real-time object detection model developed to address the limitations of previous YOLO versions like YOLOv3 and other object detection models. Unlike other convolutional neural network (CNN) based object detectors, YOLOv4 is not only applicable for recommendation systems but also for standalone process management and human input reduction. Its operation on conventional graphics processing units (GPUs) allows for mass usage at an affordable price, and it is designed to work in real-time on a conventional GPU while requiring only one such GPU for training.
Arquitectura
YOLOv4 makes use of several innovative features that work together to optimize its performance. These include 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, and CIoU loss. These features are combined to achieve state-of-the-art results.
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 recoger mapas de características de distintas etapas y suele incluir varias trayectorias ascendentes y varias descendentes. La parte de la cabeza es la que se utiliza para hacer las detecciones y clasificaciones finales de los objetos.
Bolsa de regalos
YOLOv4 también utiliza 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 aumenta 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 (ajustando el brillo, el contraste, el tono, la saturación y el ruido de una imagen) y las distorsiones geométricas (añadiendo escalado, recorte, volteo y rotación aleatorios). Estas técnicas ayudan a que el modelo se generalice 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 en precisión, alcanzando resultados de vanguardia en pruebas de detección de objetos.
Ejemplos de uso
En el momento de escribir esto, Ultralytics no admite actualmente los modelos YOLOv4. Por lo tanto, cualquier usuario interesado en utilizar YOLOv4 tendrá que consultar directamente el repositorio GitHub de YOLOv4 para obtener instrucciones de instalación y uso.
Aquí tienes un breve resumen de los pasos típicos que puedes dar para utilizar YOLOv4:
Visita el repositorio GitHub de YOLOv4: https://github.com/AlexeyAB/darknet.
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.
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 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 implemente 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 bolsa de regalos durante el entrenamiento le permite un excelente rendimiento en tareas de detección de objetos en tiempo real. YOLOv4 puede ser entrenado y utilizado por cualquier persona con un GPU convencional, lo que lo hace accesible y práctico para una amplia gama de aplicaciones.
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:
El artículo original de 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 el campo y poner su trabajo a disposición de la comunidad en general.
PREGUNTAS FRECUENTES
What is YOLOv4 and why should I use it for object detection?
YOLOv4, which stands for "You Only Look Once version 4," is a state-of-the-art real-time object detection model developed by Alexey Bochkovskiy in 2020. It achieves an optimal balance between speed and accuracy, making it highly suitable for real-time applications. YOLOv4's architecture incorporates several innovative features like Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), and Self-adversarial-training (SAT), among others, to achieve state-of-the-art results. If you're looking for a high-performance model that operates efficiently on conventional GPUs, YOLOv4 is an excellent choice.
¿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 una 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 "bolsa de cosas gratuitas" 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?
"Bolsa de cosas gratuitas" 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é YOLOv4 se considera adecuado para la detección de objetos en tiempo real en GPUs convencionales?
YOLOv4 is designed to optimize both speed and accuracy, making it ideal for real-time object detection tasks that require quick and reliable performance. It operates efficiently on conventional GPUs, needing only one for both training and inference. This makes it accessible and practical for various applications ranging from recommendation systems to standalone process management, thereby reducing the need for extensive hardware setups and making it a cost-effective solution for real-time object detection.
¿Cómo puedo empezar a utilizar YOLOv4 si Ultralytics no lo admite actualmente?
Para empezar a utilizar YOLOv4, debes visitar el repositorio oficial de YOLOv4 en GitHub. Sigue 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, 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 las orientaciones más actualizadas y detalladas.