Ultralytics YOLO27:
Get Started

YOLOv4: detección de objetos precisa y de alta velocidad#

Te damos la bienvenida a la página de documentación de Ultralytics sobre 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, por lo que es una excelente opción para muchas aplicaciones.

Diagrama de la arquitectura de YOLOv4 Diagrama de la arquitectura de YOLOv4. Muestra el complejo diseño de la red de YOLOv4, incluidos los componentes de backbone, neck y head, y sus capas interconectadas para lograr una detección de objetos óptima en tiempo real.

Introducción#

YOLOv4 significa «Solo miras una vez, versión 4» (You Only Look Once version 4). Es un modelo de detección de objetos en tiempo real desarrollado para resolver las limitaciones de versiones anteriores de YOLO, como YOLOv3, y de 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 independiente y a la reducción de la intervención humana. Su funcionamiento en unidades de procesamiento gráfico convencionales (GPUs) permite un uso masivo a un precio asequible, y está diseñado para funcionar en tiempo real en una GPU convencional, necesitando solo una para el entrenamiento.

Arquitectura#

YOLOv4 utiliza varias características innovadoras que funcionan conjuntamente para optimizar su rendimiento. Entre ellas se incluyen Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), activación Mish, aumento de datos Mosaic, regularización DropBlock y la 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, entre ellas la entrada, el backbone, el neck y el head. El backbone de YOLOv4 se preentrena con ImageNet y se utiliza para predecir las clases y las cajas delimitadoras de los objetos. El backbone puede basarse en varios modelos, como VGG, ResNet, ResNeXt o DenseNet. La parte neck del detector se utiliza para recopilar mapas de características de distintas etapas y suele incluir varias rutas ascendentes y descendentes. La parte head se utiliza para realizar las detecciones y clasificaciones finales de los objetos.

Bolsa de recursos gratuitos#

YOLOv4 también utiliza métodos conocidos como «bolsa de recursos gratuitos», es decir, técnicas que mejoran la precisión del modelo durante el entrenamiento sin aumentar el coste de inferencia. El aumento de datos es una técnica habitual de la bolsa de recursos gratuitos que se utiliza en la detección de objetos y 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 (ajustar el brillo, el contraste, el tono, la saturación y el ruido de una imagen) y las distorsiones geométricas (aplicar escalado, recorte, volteo y rotación aleatorios). Estas técnicas ayudan al modelo a generalizar mejor a distintos tipos de imágenes.

Características y rendimiento#

YOLOv4 está diseñado para ofrecer 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 cabeza de detección. Este diseño permite a YOLOv4 detectar objetos a una velocidad impresionante, por lo que es adecuado para aplicaciones en tiempo real. YOLOv4 también destaca por su precisión y logra resultados de última generación en pruebas de referencia 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. Aunque los modelos más recientes pueden ofrecer ciertas ventajas, las innovaciones arquitectónicas de YOLOv4 siguen siendo relevantes para muchas aplicaciones que requieren rendimiento en tiempo real.

Ejemplos de uso#

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

Aquí tienes un breve resumen de los pasos habituales para usar YOLOv4:

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

  2. Sigue las instrucciones del archivo README para instalarlo. Normalmente, esto implica clonar el repositorio, instalar las dependencias necesarias y configurar las variables de entorno que hagan falta.

  3. Cuando hayas terminado la instalación, puedes entrenar y usar el modelo siguiendo las instrucciones de uso del repositorio. Normalmente, esto implica preparar tu conjunto de datos, configurar los parámetros del modelo, entrenarlo y, después, utilizar el modelo entrenado para detectar 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 tanto, te recomendamos encarecidamente que consultes directamente las instrucciones del repositorio de GitHub de YOLOv4.

Para entrenar y realizar inferencias con el framework de Ultralytics, consulta YOLO11 o YOLO26.

Conclusión#

YOLOv4 es un modelo de detección de objetos potente y eficiente que equilibra velocidad y precisión. El uso de características únicas y técnicas de bolsa de recursos gratuitos durante el entrenamiento le permite rendir de forma excelente en tareas de detección de objetos en tiempo real. Cualquier persona puede entrenar y utilizar YOLOv4 con una GPU convencional, lo que lo hace accesible y práctico para una amplia variedad de aplicaciones, incluidos los sistemas de vigilancia, los vehículos autónomos y la automatización industrial.

Para quienes quieran implementar la detección de objetos en sus proyectos, YOLOv4 sigue siendo una opción sólida, sobre todo si el rendimiento en tiempo real es prioritario. Aunque Ultralytics se centra actualmente en ofrecer compatibilidad con 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.

Citas y agradecimientos#

Queremos reconocer las importantes contribuciones de los autores de YOLOv4 al 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 está disponible en arXiv. Los autores han puesto su trabajo a disposición del público y se puede acceder al código en GitHub. Agradecemos sus esfuerzos por impulsar este campo y hacer que su trabajo esté al alcance de una comunidad más amplia.

Preguntas frecuentes#

  • YOLOv4, siglas de «You Only Look Once version 4» («Solo miras una vez, versión 4»), es un modelo de detección de objetos en tiempo real de última generación desarrollado por Alexey Bochkovskiy en 2020. Ofrece un equilibrio óptimo entre velocidad y precisión, por lo que es 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 buscas un modelo de alto rendimiento que funcione de forma eficiente en GPUs convencionales, YOLOv4 es una excelente opción.

  • La arquitectura de YOLOv4 incluye varios componentes clave: el backbone, el neck y el head. El backbone, que puede basarse en modelos como VGG, ResNet o CSPDarknet53, se preentrena para predecir clases y cajas delimitadoras. El neck, que utiliza PANet, conecta mapas de características de distintas etapas para extraer datos de forma exhaustiva. Por último, el head, que utiliza configuraciones de YOLOv3, realiza las detecciones finales de objetos. YOLOv4 también emplea técnicas de «bolsa de recursos gratuitos», como el aumento de datos Mosaic y la regularización DropBlock, que optimizan aún más su velocidad y precisión.

  • «Bolsa de recursos gratuitos» hace referencia a métodos que mejoran la precisión de entrenamiento de YOLOv4 sin aumentar el coste de inferencia. Estas técnicas incluyen distintas formas de aumento de datos, como las distorsiones fotométricas (ajuste del brillo, el contraste, etc.) y las distorsiones geométricas (escalado, recorte, volteo y rotación). Al aumentar la variabilidad de las imágenes de entrada, estos aumentos ayudan a YOLOv4 a generalizar mejor a distintos tipos de imágenes y, por tanto, mejoran su robustez y precisión sin perjudicar su rendimiento en tiempo real.

  • YOLOv4 está diseñado para optimizar tanto la velocidad como la precisión, por lo que es ideal para tareas de detección de objetos en tiempo real que requieren un rendimiento rápido y fiable. Funciona eficientemente en GPUs convencionales y solo necesita una para el entrenamiento y la inferencia. Esto lo hace accesible y práctico para diversas aplicaciones, desde los sistemas de recomendación hasta la gestión de procesos independiente; así, reduce la necesidad de configuraciones de hardware complejas y ofrece una solución rentable para la detección de objetos en tiempo real.

  • Para empezar a usar YOLOv4, visita el repositorio oficial de GitHub de YOLOv4. Sigue las instrucciones de instalación del archivo README, que suelen incluir 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 disponibles. Como Ultralytics no ofrece compatibilidad con YOLOv4 actualmente, te recomendamos consultar directamente el GitHub de YOLOv4 para obtener las instrucciones más recientes y detalladas.

Comentarios