Ultralytics YOLO27:

YOLOv4: Detección de objetos rápida y precisa#

Te damos la bienvenida a la página de documentación de Ultralytics sobre YOLOv4, un detector de objetos de última generación en tiempo real, presentado en 2020 por Alexey Bochkovskiy en https://github.com/AlexeyAB/darknet. YOLOv4 está diseñado para ofrecer 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 complejo diseño de red de YOLOv4, incluidos los componentes backbone, neck y head, así como sus capas interconectadas para lograr una detección de objetos óptima en tiempo real.

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 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 se puede aplicar a sistemas de recomendación, sino también a la gestión de procesos independientes 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, utilizando solo una GPU de este tipo para el entrenamiento.

Arquitectura#

YOLOv4 utiliza varias características innovadoras que funcionan conjuntamente para optimizar su rendimiento. Entre ellas se incluyen las conexiones residuales ponderadas (WRC), las conexiones parciales entre etapas (CSP), la normalización cruzada por mini-lotes (CmBN), el entrenamiento autoantagónico (SAT), la activación Mish, el aumento de datos Mosaic, la regularización DropBlock y la pérdida CIoU. Estas características se combinan para lograr resultados punteros.

Un detector de objetos típico se compone de varias partes, como la entrada, el backbone, el neck y el head. El backbone de YOLOv4 está preentrenado con ImageNet y se utiliza para predecir las clases y los cuadros delimitadores de los objetos. El backbone puede proceder de 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 varias rutas descendentes. La parte head es la que se utiliza para realizar las detecciones y clasificaciones finales de objetos.

Bolsa de recursos gratuitos#

YOLOv4 también utiliza métodos conocidos como «bolsa de recursos gratuitos», 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 habitual de esta bolsa de recursos gratuitos 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 (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 ante distintos tipos de imágenes.

Características y rendimiento#

YOLOv4 está diseñado para optimizar la velocidad y la precisión en la detección de objetos. La arquitectura de YOLOv4 incluye CSPDarknet53 como backbone, PANet como neck y YOLOv3 como head de detección. Este diseño permite a YOLOv4 realizar detecciones de objetos a una velocidad impresionante, lo que lo hace adecuado para aplicaciones en tiempo real. YOLOv4 también destaca por su precisión y logra 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. 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#

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 YOLOv4 en GitHub para obtener instrucciones de instalación y uso.

A continuación se ofrece una breve descripción general de los pasos habituales que puedes seguir para utilizar YOLOv4:

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

  2. Sigue las instrucciones de instalación incluidas en el archivo README. Normalmente, esto implica clonar el repositorio, instalar las dependencias necesarias y configurar las variables de entorno requeridas.

  3. Cuando hayas completado la instalación, puedes entrenar y utilizar el modelo según las instrucciones de uso proporcionadas en el repositorio. Normalmente, esto implica preparar el conjunto de datos, configurar los parámetros del modelo, entrenarlo y utilizar después 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 ello, se recomienda encarecidamente consultar directamente las instrucciones proporcionadas en el repositorio de YOLOv4 en GitHub.

Para realizar el entrenamiento y la inferencia en el framework de Ultralytics, consulta YOLO11 o YOLO26.

Conclusión#

YOLOv4 es un modelo de detección de objetos potente y eficiente que equilibra la velocidad y la precisión. El uso de características únicas y técnicas de bolsa de recursos gratuitos durante el entrenamiento le permite ofrecer un rendimiento excelente en tareas de detección de objetos en tiempo real. Cualquiera 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, especialmente cuando 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#

Nos gustaría 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 el código fuente se puede consultar en GitHub. Agradecemos sus esfuerzos por impulsar este campo y hacer que su trabajo sea accesible para una comunidad más amplia.

Preguntas frecuentes#

  • 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 especialmente adecuado para aplicaciones en tiempo real. La arquitectura de YOLOv4 incorpora varias características innovadoras, como las conexiones residuales ponderadas (WRC), las conexiones parciales entre etapas (CSP) y el entrenamiento auto-adversarial (SAT), entre otras, para conseguir resultados de última generación. Si buscas un modelo de alto rendimiento que funcione de manera 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 utilizar modelos como VGG, ResNet o CSPDarknet53, está preentrenado para predecir clases y cuadros delimitadores. 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, para optimizar aún más su velocidad y precisión.

  • La «bolsa de recursos gratuitos» hace referencia 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 las distorsiones fotométricas (ajustar el 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, estas técnicas de aumento ayudan a YOLOv4 a generalizar mejor ante distintos tipos de imágenes y, por tanto, mejoran su robustez y precisión sin comprometer su rendimiento en tiempo real.

  • 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 GPUs convencionales y solo necesita una GPU 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 independientes, reduciendo la necesidad de configuraciones de hardware extensas y convirtiéndolo en una solución rentable para la detección de objetos en tiempo real.

  • Para empezar a utilizar YOLOv4, visita el repositorio oficial de YOLOv4 en GitHub. Sigue las instrucciones de instalación incluidas 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. Como Ultralytics no admite actualmente YOLOv4, se recomienda consultar directamente la página de YOLOv4 en GitHub para obtener la información más actualizada y detallada.

Comentarios