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.

PREGUNTAS FRECUENTES

¿Qué diferencias hay entre YOLOv3, YOLOv3-Ultralytics, y YOLOv3u?

YOLOv3 es la tercera iteración del algoritmo de detección de objetos YOLO (You Only Look Once) desarrollado por Joseph Redmon, conocido por su equilibrio entre precisión y velocidad, que utiliza tres escalas diferentes (13x13, 26x26 y 52x52) para las detecciones. YOLOv3-Ultralytics es Ultralytics' adaptación de YOLOv3 que añade soporte para más modelos preentrenados y facilita la personalización del modelo. YOLOv3u es una variante mejorada de YOLOv3-Ultralytics, que integra la cabeza dividida sin anclajes ni objetos de YOLOv8, mejorando la robustez y precisión de la detección para varios tamaños de objetos. Para más detalles sobre las variantes, consulta la serie YOLOv3.

¿Cómo puedo entrenar un modelo YOLOv3 utilizando Ultralytics?

Entrenar un modelo YOLOv3 con Ultralytics es sencillo. Puedes entrenar el modelo utilizando Python o CLI:

Ejemplo

from ultralytics import YOLO

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

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 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

Para obtener opciones y directrices de formación más completas, visita nuestra documentación sobre el modo Entrenar.

¿Qué hace que YOLOv3u sea más preciso en las tareas de detección de objetos?

YOLOv3u mejora a YOLOv3 y YOLOv3-Ultralytics al incorporar el cabezal dividido sin anclajes ni objectness utilizado en los modelos YOLOv8 . Esta mejora elimina la necesidad de cajas de anclaje y puntuaciones de objetualidad predefinidas, mejorando su capacidad para detectar objetos de distintos tamaños y formas con mayor precisión. Esto convierte a YOLOv3u en la mejor opción para tareas complejas y diversas de detección de objetos. Para más información, consulta la sección Por qué Y OLOv3u.

¿Cómo puedo utilizar los modelos YOLOv3 para la inferencia?

Puedes realizar inferencias utilizando modelos YOLOv3 mediante scripts de Python o comandos de CLI :

Ejemplo

from ultralytics import YOLO

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

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

Consulta la documentación del modo Inferencia para obtener más detalles sobre la ejecución de los modelos YOLO .

¿Qué tareas admiten YOLOv3 y sus variantes?

YOLOv3, YOLOv3-Ultralytics, y YOLOv3u soportan principalmente tareas de detección de objetos. Pueden utilizarse en varias fases de la implantación y el desarrollo de modelos, como la Inferencia, la Validación, el Entrenamiento y la Exportación. Para obtener un conjunto completo de tareas admitidas y detalles más detallados, visita nuestra documentación sobre tareas de Detección de Objetos.

¿Dónde puedo encontrar recursos para citar YOLOv3 en mi investigación?

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

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

Para más detalles sobre las citas, consulta la sección Citas y agradecimientos.



Creado 2023-11-12, Actualizado 2024-07-04
Autores: glenn-jocher (9)

Comentarios