Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv4: Detección de objetos de alta 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 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. Muestra el intrincado diseño de red de YOLOv4, incluyendo los componentes de backbone, neck y head, así como sus capas interconectadas para una detección de objetos en tiempo real óptima.

Link to this sectionIntroducció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 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 a sistemas de recomendación, sino también a la gestión de procesos autónomos y a la reducción de la intervención humana. Su funcionamiento en unidades de procesamiento gráfico (GPUs) 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 para el entrenamiento.

Link to this sectionArquitectura#

YOLOv4 utiliza varias características innovadoras que trabajan 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 la función de pérdida CIoU. 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 neck y la head. El backbone de YOLOv4 está preentrenado en ImageNet y se utiliza para predecir clases y bounding boxes de objetos. El backbone puede provenir de varios modelos, incluyendo VGG, ResNet, ResNeXt o DenseNet. La parte del neck del detector se usa para recopilar feature maps de diferentes etapas y normalmente incluye varios caminos ascendentes y varios caminos descendentes. La parte de la head es la que se utiliza para realizar las detecciones y clasificaciones finales de objetos.

Link to this sectionBag of Freebies#

YOLOv4 también utiliza métodos conocidos como "bag of freebies", que son técnicas que mejoran la accuracy del modelo durante el entrenamiento sin aumentar el coste de la inferencia. El data augmentation es una técnica común de "bag of freebies" utilizada en la object detection, que aumenta la variabilidad de las imágenes de entrada para mejorar la robustez del modelo. Algunos ejemplos de aumento de datos incluyen distorsiones fotométricas (ajustar el brillo, contraste, tono, saturación y ruido de una imagen) y distorsiones geométricas (añadir escalado aleatorio, recorte, volteo y rotación). Estas técnicas ayudan al modelo a generalizar mejor ante diferentes tipos de imágenes.

Link to this sectionCaracterísticas y rendimiento#

YOLOv4 está diseñado para lograr 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 detection head. 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, logrando resultados de vanguardia en benchmarks de detección de objetos como COCO.

Al compararlo 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 siguen haciéndolo relevante para muchas aplicaciones que requieren un rendimiento en tiempo real.

Link to this sectionEjemplos de uso#

YOLOv4 es un modelo basado en Darknet y no es compatible de forma nativa con el paquete de Python de Ultralytics: no hay pesos preentrenados yolov4.pt publicados en ultralytics/assets ni archivos YAML ultralytics/cfg/models/v4/. Esta página se mantiene como referencia arquitectónica. Los usuarios interesados en ejecutar YOLOv4 deben consultar directamente el repositorio de GitHub de YOLOv4 para obtener instrucciones de instalación y uso.

Aquí tienes un breve resumen de los pasos típicos que podrías seguir para usar YOLOv4:

  1. Visita el repositorio de GitHub de YOLOv4: 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 las variables de entorno requeridas.

  3. Una vez completada la instalación, puedes entrenar y usar el modelo según las instrucciones de uso proporcionadas en el repositorio. Esto suele implicar 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 específicos pueden variar dependiendo de tu caso de uso particular y del estado actual del repositorio de YOLOv4. Por lo tanto, se recomienda encarecidamente consultar directamente las instrucciones proporcionadas en el repositorio de GitHub de YOLOv4.

Para entrenamiento e inferencia dentro del framework de Ultralytics, consulta YOLO11 o YOLO26.

Link to this sectionConclusión#

YOLOv4 es un modelo de detección de objetos potente y eficiente que equilibra la velocidad y la precisión. Su uso de características únicas y técnicas de "bag of freebies" durante el entrenamiento le permite desempeñarse de forma excelente en tareas de detección de objetos en tiempo real. YOLOv4 puede ser entrenado y utilizado por cualquier persona con una GPU convencional, haciéndolo accesible y práctico para una amplia gama de aplicaciones, incluyendo 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 la prioridad es el rendimiento en tiempo real. Aunque Ultralytics se centra actualmente en dar soporte a versiones más recientes de YOLO como YOLO11 y YOLO26, las innovaciones arquitectónicas introducidas en YOLOv4 han influido en el desarrollo de estos modelos posteriores.

Link to this sectionCitas y agradecimientos#

Queremos reconocer a los autores de YOLOv4 por sus contribuciones significativas en el campo de la detección de objetos en tiempo real:

Cita
@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 público su trabajo y la base de código se puede encontrar en GitHub. Agradecemos sus esfuerzos para hacer avanzar el campo y hacer que su trabajo sea accesible a la comunidad en general.

Link to this sectionFAQ#

Link to this section¿Qué es YOLOv4 y por qué debería usarlo para la object detection?#

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 accuracy, 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 vanguardia. Si buscas un modelo de alto rendimiento que funcione eficientemente en GPUs convencionales, YOLOv4 es una excelente elección.

Link to this section¿Cómo mejora su rendimiento la arquitectura de YOLOv4?#

La arquitectura de YOLOv4 incluye varios componentes clave: el backbone, el neck y el head. El backbone, que puede ser modelos como VGG, ResNet o CSPDarknet53, está preentrenado para predecir clases y bounding boxes. El neck, utilizando PANet, conecta feature maps de diferentes etapas para una extracción de datos exhaustiva. Por último, el head, que utiliza configuraciones de YOLOv3, realiza las detecciones de objetos finales. YOLOv4 también emplea técnicas de "bag of freebies" como Mosaic data augmentation y DropBlock regularization, optimizando aún más su velocidad y precisión.

Link to this section¿Qué son los "bag of freebies" en el contexto de YOLOv4?#

"Bag of freebies" se refiere a métodos que mejoran la precisión de entrenamiento de YOLOv4 sin aumentar el coste de la inferencia. Estas técnicas incluyen varias formas de aumento de datos como distorsiones fotométricas (ajustar 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 generalizar mejor ante diferentes tipos de imágenes, mejorando así su robustez y precisión sin comprometer su rendimiento en tiempo real.

Link to this section¿Por qué se considera a YOLOv4 adecuado para la detección de objetos en tiempo real en GPUs 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 eficientemente en GPUs convencionales, necesitando solo una tanto para el entrenamiento como para la inferencia. Esto lo hace accesible y práctico para diversas aplicaciones que van desde recommendation systems hasta la gestión de procesos autónomos, reduciendo así la necesidad de configuraciones de hardware extensas y convirtiéndolo en una solución rentable para la detección de objetos en tiempo real.

Link to this section¿Cómo puedo empezar con YOLOv4 si Ultralytics no lo soporta actualmente?#

Para empezar con YOLOv4, debes visitar el repositorio oficial de GitHub de YOLOv4. Sigue las instrucciones de instalación proporcionadas en el archivo README, que normalmente incluyen clonar el repositorio, instalar dependencias y configurar 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 soporta actualmente YOLOv4, se recomienda consultar directamente el GitHub de YOLOv4 para obtener la guía más actualizada y detallada.

Comentarios