Ultralytics YOLO27:

YOLOv3 y YOLOv3u#

Descripción general#

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

  1. YOLOv3: Esta es la tercera versión del algoritmo de detección de objetos Solo miras una vez (YOLO). Desarrollado originalmente por Joseph Redmon, YOLOv3 mejoró sus predecesores al introducir funciones como predicciones multiescala y tres tamaños diferentes de kernels de detección.

  2. YOLOv3-Ultralytics: Esta es la implementación en PyTorch de YOLOv3 por Ultralytics, mantenida en el repositorio ultralytics/yolov3. Mantiene la arquitectura original basada en anclajes mientras añade más modelos preentrenados y una personalización más fácil.

  3. YOLOv3u: Esta es una versión actualizada de YOLOv3-Ultralytics que incorpora la cabeza dividida sin anclajes y sin objetualidad utilizada en los modelos YOLOv8. YOLOv3u mantiene la misma arquitectura de backbone y neck que YOLOv3, pero con la cabeza de detección actualizada de YOLOv8.

Banner del modelo de detección de objetos YOLOv3

Características principales#

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

  • YOLOv3u: Este modelo actualizado incorpora la cabeza dividida sin anclajes y sin objetualidad de YOLOv8. Al eliminar la necesidad de cuadros de anclaje y puntuaciones de objetualidad predefinidos, este diseño de cabeza 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 tareas de detección de objetos.

Tareas y modos compatibles#

YOLOv3 está diseñado específicamente para tareas de detección de objetos. Ultralytics admite tres variantes de YOLOv3: yolov3u, yolov3-tinyu y yolov3-sppu. La u del nombre indica que utilizan la cabeza sin anclajes de YOLOv8, a diferencia de su arquitectura original, basada en anclajes. Estos modelos son conocidos por su eficacia en diversos escenarios reales, ya que equilibran precisión y velocidad. Cada variante ofrece funciones y optimizaciones únicas, lo que las hace adecuadas para una amplia variedad de aplicaciones.

Los tres modelos admiten un conjunto completo de modos, lo que garantiza su versatilidad en distintas etapas del despliegue de modelos y del desarrollo. Estos modos incluyen Inferencia, Validación, Entrenamiento y Exportación, proporcionando a los usuarios un conjunto de herramientas completo para realizar tareas de detección de objetos de forma eficaz.

Tipo de modeloPesos preentrenadosTareas compatiblesEntrenamientoValidaciónInferenciaExportar
YOLOv3(u)yolov3u.ptDetección de objetos
YOLOv3-Tiny(u)yolov3-tinyu.ptDetección de objetos
YOLOv3-SPP(u)yolov3-sppu.ptDetección de objetos

Esta tabla ofrece una vista general de las capacidades de cada variante de YOLOv3 y destaca su versatilidad y adecuación 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 con YOLOv3. Para consultar la documentación completa sobre estos y otros modos, visita las páginas de documentación de Predicción, Entrenamiento, Validación y Exportación.

Ejemplo

Los modelos *.pt preentrenados con PyTorch, así como los archivos de configuración *.yaml, se pueden pasar a la clase YOLO() para crear una instancia del modelo en Python:

from ultralytics import YOLO

# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.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 YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")

Citas y agradecimientos#

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

Cita
@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#

  • YOLOv3 es la tercera iteración del algoritmo de detección de objetos YOLO (Solo miras una vez), desarrollado por Joseph Redmon y conocido por equilibrar precisión y velocidad, utilizando tres escalas diferentes (13x13, 26x26 y 52x52) para las detecciones. YOLOv3-Ultralytics es la adaptación de YOLOv3 de Ultralytics, que añade compatibilidad con más modelos preentrenados y facilita la personalización de modelos. YOLOv3u es una variante actualizada de YOLOv3-Ultralytics que integra la cabeza dividida sin anclajes y sin objetualidad de YOLOv8, mejorando la robustez y la precisión de la detección para objetos de distintos tamaños. Para obtener más información sobre las variantes, consulta la serie YOLOv3.

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

    Ejemplo
    from ultralytics import YOLO
    
    # Load a COCO-pretrained YOLOv3u model
    model = YOLO("yolov3u.pt")
    
    # Train the model on the COCO8 example dataset for 100 epochs
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    Para consultar más opciones y directrices de entrenamiento, visita nuestra documentación del modo Entrenamiento.

  • YOLOv3u mejora YOLOv3 y YOLOv3-Ultralytics al incorporar la cabeza dividida sin anclajes y sin objetualidad utilizada en los modelos YOLOv8. Esta actualización elimina la necesidad de cuadros de anclaje y puntuaciones de objetualidad predefinidos, lo que mejora su capacidad para detectar con mayor precisión objetos de distintos tamaños y formas. Esto convierte a YOLOv3u en una opción mejor para tareas de detección de objetos complejas y diversas. Para obtener más información, consulta la sección Funciones principales.

  • Puedes realizar inferencias con modelos YOLOv3 mediante scripts de Python o comandos de la CLI:

    Ejemplo
    from ultralytics import YOLO
    
    # Load a COCO-pretrained YOLOv3u model
    model = YOLO("yolov3u.pt")
    
    # Run inference with the YOLOv3u model on the 'bus.jpg' image
    results = model("path/to/bus.jpg")

    Consulta la documentación del modo Inferencia para obtener más información sobre cómo ejecutar modelos YOLO.

  • YOLOv3, YOLOv3-Tiny y YOLOv3-SPP admiten principalmente tareas de detección de objetos. Estos modelos pueden utilizarse en distintas etapas del despliegue y desarrollo de modelos, como Inferencia, Validación, Entrenamiento y Exportación. Para consultar el conjunto completo de tareas compatibles y obtener información más detallada, visita nuestra documentación sobre tareas de detección de objetos.

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

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

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

Comentarios