YOLOv3 y YOLOv3u
Descripción general
Este documento presenta una visión general de tres modelos de detección de objetos estrechamente relacionados: YOLOv3, YOLOv3-Ultralytics y YOLOv3u.
-
YOLOv3: Esta 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 características como predicciones multiescala y tres tamaños diferentes de núcleos de detección.
-
YOLOv3u: Esta es una versión actualizada de YOLOv3-Ultralytics que incorpora la cabecera dividida sin anclas (anchor-free) y sin objetividad (objectness-free) utilizada en los modelos YOLOv8. YOLOv3u mantiene la misma arquitectura de backbone y neck que YOLOv3, pero con la detection head actualizada de YOLOv8.

Características clave
-
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 detección para objetos de diferentes tamaños. Además, YOLOv3 añadió características como predicciones multietiqueta para cada bounding box y una mejor red de extracción de características.
-
YOLOv3u: Este modelo actualizado incorpora la cabecera dividida sin anclas y sin objetividad de YOLOv8. Al eliminar la necesidad de anchor boxes predefinidas y puntuaciones de objetividad, este diseño de cabecera de detección puede mejorar la capacidad del modelo para detectar objetos de diversos tamaños y formas. Esto hace que YOLOv3u sea más robusto y preciso para tareas de detección de objetos.
Tareas y modos admitidos
YOLOv3 está diseñado específicamente para tareas de object detection. Ultralytics admite tres variantes de YOLOv3: yolov3u, yolov3-tinyu y yolov3-sppu. La u en el nombre significa que utilizan la cabecera sin anclas de YOLOv8, a diferencia de su arquitectura original que se basa en anclas. Estos modelos son conocidos por su eficacia en diversos escenarios del mundo real, equilibrando precisión y velocidad. Cada variante ofrece características y optimizaciones únicas, lo que las hace adecuadas para una gama de aplicaciones.
Los tres modelos admiten un conjunto completo de modos, lo que garantiza versatilidad en varias etapas del model deployment y desarrollo. Estos modos incluyen Inferencia, Validación, Entrenamiento y Exportación, proporcionando a los usuarios un kit de herramientas completo para una detección de objetos eficaz.
| Tipo de modelo | Pesos preentrenados | Tareas soportadas | Inferencia | Validación | Entrenamiento | Exportar (Export) |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Detección de objetos | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Detección de objetos | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | yolov3-sppu.pt | Detección de objetos | ✅ | ✅ | ✅ | ✅ |
Esta tabla proporciona una visión rápida de las capacidades de cada variante de YOLOv3, destacando su versatilidad y adecuación para diversas tareas y modos operativos en flujos de trabajo de detección de objetos.
Ejemplos de uso
Este ejemplo proporciona casos sencillos de entrenamiento e inferencia con YOLOv3. Para obtener la documentación completa sobre estos y otros modos, consulta las páginas de documentación de Predicción, Entrenamiento, Validación y Exportación.
PyTorch pretrained *.pt models as well as configuration *.yaml files can be passed to the YOLO() class to create a model instance in 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 reconocimientos
Si utilizas YOLOv3 en tu investigación, por favor cita los artículos originales de YOLO y el repositorio de 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
¿Cuáles son las diferencias entre YOLOv3, YOLOv3-Ultralytics y YOLOv3u?
YOLOv3 es la tercera iteración del algoritmo de object detection YOLO (You Only Look Once) desarrollado por Joseph Redmon, conocido por su equilibrio entre precisión y velocidad, utilizando tres escalas diferentes (13x13, 26x26 y 52x52) para las detecciones. YOLOv3-Ultralytics es la adaptación de Ultralytics de YOLOv3 que añade soporte para más modelos preentrenados y facilita una mayor personalización del modelo. YOLOv3u es una variante mejorada de YOLOv3-Ultralytics que integra la cabecera dividida sin anclas y sin objetividad de YOLOv8, mejorando la robustez y la precisión de la detección para diversos tamaños de objetos. Para obtener más detalles sobre las variantes, consulta la serie YOLOv3.
¿Cómo puedo entrenar un modelo YOLOv3 usando Ultralytics?
Entrenar un modelo YOLOv3 con Ultralytics es sencillo. Puedes entrenar el modelo utilizando Python o CLI:
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 obtener opciones y directrices de entrenamiento más completas, visita nuestra documentación del modo Entrenamiento.
¿Qué hace que YOLOv3u sea más preciso para tareas de detección de objetos?
YOLOv3u mejora a YOLOv3 y YOLOv3-Ultralytics al incorporar la cabecera dividida sin anclas y sin objetividad utilizada en los modelos YOLOv8. Esta actualización elimina la necesidad de anchor boxes predefinidas y puntuaciones de objetividad, mejorando su capacidad para detectar objetos de diversos tamaños y formas con mayor precisión. Esto convierte a YOLOv3u en una mejor opción para tareas de detección de objetos complejas y diversas. Para obtener más información, consulta la sección Características clave.
¿Cómo puedo usar los modelos YOLOv3 para inferencia?
Puedes realizar inferencias usando los modelos YOLOv3 mediante scripts de Python o comandos CLI:
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 detalles sobre cómo ejecutar modelos YOLO.
¿Qué tareas soportan YOLOv3 y sus variantes?
YOLOv3, YOLOv3-Tiny y YOLOv3-SPP soportan principalmente tareas de detección de objetos. Estos modelos pueden utilizarse en diversas etapas de despliegue y desarrollo de modelos, como Inferencia, Validación, Entrenamiento y Exportación. Para obtener un conjunto completo de tareas soportadas y detalles más profundos, visita nuestra documentación de 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 de 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 obtener más detalles sobre citas, consulta la sección Citas y agradecimientos.