Saltar al contenido

YOLOv3, YOLOv3-Ultralytics, y YOLOv3u

Visión general

Este documento presenta una visión general de tres modelos de detección de objetos estrechamente relacionados, a saber, YOLOv3, YOLOv3-Ultralytics, y YOLOv3u.

  1. YOLOv3: Es la tercera versión del algoritmo de detección de objetos You Only Look Once (YOLO). Desarrollado originalmente por Joseph Redmon, YOLOv3 mejoró a sus predecesores introduciendo funciones como las predicciones multiescala y tres tamaños diferentes de núcleos de detección.

  2. YOLOv3-Ultralytics: Ésta es la implementación de Ultralytics' del modelo YOLOv3. Reproduce la arquitectura original de YOLOv3 y ofrece funcionalidades adicionales, como soporte para más modelos preentrenados y opciones de personalización más sencillas.

  3. YOLOv3u: Se trata de una versión actualizada de YOLOv3-Ultralytics que incorpora la cabeza de división sin anclajes ni objetos utilizada en los modelos YOLOv8 . YOLOv3u mantiene la misma arquitectura de columna vertebral y cuello que YOLOv3, pero con la cabeza de detección actualizada de YOLOv8.

Ultralytics YOLOv3

Características principales

  • YOLOv3: Introdujo el uso de tres escalas diferentes para la detección, aprovechando tres tamaños distintos de núcleos de detección: 13x13, 26x26 y 52x52. Esto mejoró significativamente la precisión de la detección para objetos de distintos tamaños. Además, YOLOv3 añadió funciones como predicciones multietiqueta para cada cuadro delimitador y una red extractora de características mejorada.

  • YOLOv3-Ultralytics: Ultralytics La implementación de YOLOv3 ofrece el mismo rendimiento que el modelo original, pero con soporte añadido para más modelos preentrenados, métodos de entrenamiento adicionales y opciones de personalización más sencillas. Esto lo hace más versátil y fácil de usar para aplicaciones prácticas.

  • YOLOv3u: Este modelo actualizado incorpora el cabezal de división sin anclajes ni objetualidad de YOLOv8. Al eliminar la necesidad de cajas de anclaje y puntuaciones de objetualidad predefinidas, este diseño de cabezal de detección puede mejorar la capacidad del modelo para detectar objetos de distintos tamaños y formas. Esto hace que YOLOv3u sea más robusto y preciso para las tareas de detección de objetos.

Tareas y modos admitidos

La serie YOLOv3, que incluye YOLOv3, YOLOv3-Ultralytics, y YOLOv3u, está diseñada específicamente para tareas de detección de objetos. Estos modelos son famosos por su eficacia en diversos escenarios del mundo real, equilibrando precisión y velocidad. Cada variante ofrece características y optimizaciones únicas, que los hacen adecuados para una serie de aplicaciones.

Los tres modelos admiten un amplio conjunto de modos, que garantizan la versatilidad en las distintas fases de despliegue y desarrollo del modelo. Estos modos incluyen Inferencia, Validación, Entrenamiento y Exportación, proporcionando a los usuarios un conjunto completo de herramientas para la detección eficaz de objetos.

Tipo de modelo Tareas admitidas Inferencia Validación Formación Exportar
YOLOv3 Detección de objetos
YOLOv3-Ultralytics Detección de objetos
YOLOv3u Detección de objetos

Esta tabla proporciona una visión general de las capacidades de cada variante de YOLOv3, destacando su versatilidad e idoneidad para diversas tareas y modos operativos en los flujos de trabajo de detección de objetos.

Ejemplos de uso

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia de YOLOv3. Para obtener documentación completa sobre estos y otros modos, consulta las páginas de documentación Predecir, Entrenar, Val y Exportar.

Ejemplo

PyTorch preentrenado *.pt modelos, así como la configuración *.yaml pueden pasarse a la función YOLO() para crear una instancia del modelo en python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3n model
model = YOLO('yolov3n.pt')

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

# Run inference with the YOLOv3n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')

CLI para ejecutar directamente los modelos:

# Load a COCO-pretrained YOLOv3n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3n.pt data=coco8.yaml epochs=100 imgsz=640

# Load a COCO-pretrained YOLOv3n model and run inference on the 'bus.jpg' image
yolo predict model=yolov3n.pt source=path/to/bus.jpg

Citas y agradecimientos

Si utilizas YOLOv3 en tu investigación, por favor, cita los artículos originales de YOLO y el repositorio Ultralytics YOLOv3:

@article{redmon2018yolov3,
  title={YOLOv3: An Incremental Improvement},
  author={Redmon, Joseph and Farhadi, Ali},
  journal={arXiv preprint arXiv:1804.02767},
  year={2018}
}

Gracias a Joseph Redmon y Ali Farhadi por desarrollar el YOLOv3 original.



Creado 2023-11-12, Actualizado 2024-01-07
Autores: glenn-jocher (4)

Comentarios