YOLOv3 y YOLOv3u
Visión general
Este documento presenta una descripción general de tres modelos de detección de objetos estrechamente relacionados, a saber, YOLOv3, YOLOv3-Ultralytics y YOLOv3u.
-
YOLOv3: Esta es la tercera versión del algoritmo de detección de objetos You Only Look Once (YOLO). Originalmente desarrollado por Joseph Redmon, YOLOv3 mejoró a sus predecesores introduciendo características como predicciones multiescala y tres tamaños diferentes de kernels de detección.
-
YOLOv3u: Esta es una versión actualizada de YOLOv3-Ultralytics que incorpora el encabezado dividido sin anclaje y sin objetividad utilizado en los modelos YOLOv8. YOLOv3u mantiene la misma red troncal y la arquitectura de cuello de botella que YOLOv3, pero con el encabezado de detección actualizado de YOLOv8.
Características clave
-
YOLOv3: Introdujo el uso de tres escalas diferentes para la detección, aprovechando tres tamaños diferentes de kernels de detección: 13x13, 26x26 y 52x52. Esto mejoró significativamente la precisión de la detección para objetos de diferentes tamaños. Además, YOLOv3 añadió características como predicciones multi-etiqueta para cada cuadro delimitador y una mejor red de extracción de características.
-
YOLOv3u: Este modelo actualizado incorpora el encabezado dividido sin anclajes ni objetividad de YOLOv8. Al eliminar la necesidad de cuadros de anclaje predefinidos y puntuaciones de objetividad, este diseño de encabezado 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 las tareas de detección de objetos.
Tareas y modos admitidos
YOLOv3 está diseñado específicamente para detección de objetos tareas. Ultralytics soporta tres variantes de YOLOv3: yolov3u
, yolov3-tinyu
y yolov3-sppu
. El u
en el nombre indica que estos utilizan el encabezado sin anclaje de YOLOv8, a diferencia de su arquitectura original que se basa en anclajes. Estos modelos son reconocidos por su eficacia en varios escenarios del mundo real, equilibrando la precisión y la velocidad. Cada variante ofrece características y optimizaciones únicas, lo que las hace adecuadas para una variedad de aplicaciones.
Los tres modelos admiten un conjunto completo de modos, lo que garantiza la versatilidad en varias etapas de la implementación del modelo y el desarrollo. Estos modos incluyen Inferencia, Validación, Entrenamiento y Exportación, lo que proporciona a los usuarios un conjunto de herramientas completo para la detección de objetos eficaz.
Tipo de Modelo | Pesos pre-entrenados | Tareas admitidas | Inferencia | Validación | Entrenamiento | Exportar |
---|---|---|---|---|---|---|
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 ofrece una visión general de las capacidades de cada variante de YOLOv3, destacando su versatilidad e idoneidad para diversas tareas y modos operativos en 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 de Predict, Train, Val y Export.
Ejemplo
PyTorch preentrenados *.pt
modelos, así como la configuración *.yaml
los archivos se pueden pasar a la YOLO()
clase 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")
Hay comandos de la CLI disponibles para ejecutar directamente los modelos:
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.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
¿Cuáles son las diferencias 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, 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 pre-entrenados y facilita una personalización más sencilla del modelo. YOLOv3u es una variante mejorada de YOLOv3-Ultralytics, que integra el encabezado dividido sin anclaje y sin objetividad de YOLOv8, mejorando la robustez y precisión de la detección para varios tamaños de objeto. Para obtener más detalles sobre las variantes, consulte la serie YOLOv3.
¿Cómo puedo entrenar un modelo YOLOv3 utilizando Ultralytics?
Entrenar un modelo YOLOv3 con Ultralytics es sencillo. Puedes entrenar el modelo usando 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)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
Para obtener opciones y pautas de entrenamiento más completas, visita nuestra documentación del modo Train.
¿Qué hace que YOLOv3u sea más preciso para las tareas de detección de objetos?
YOLOv3u mejora a YOLOv3 y YOLOv3-Ultralytics al incorporar el encabezado dividido sin anclaje y sin objetividad utilizado en los modelos YOLOv8. Esta actualización elimina la necesidad de cuadros delimitadores de anclaje predefinidos y puntuaciones de objetividad, lo que mejora 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 complejas y diversas de detección de objetos. Para obtener más información, consulte la sección Características principales.
¿Cómo puedo utilizar los modelos YOLOv3 para la inferencia?
Puedes realizar la inferencia utilizando 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")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg
Consulte la documentación del modo de inferencia para obtener más detalles sobre la ejecución de modelos YOLO.
¿Qué tareas son compatibles con YOLOv3 y sus variantes?
YOLOv3, YOLOv3-Tiny y YOLOv3-SPP son compatibles principalmente con tareas de detección de objetos. Estos modelos se pueden utilizar para varias etapas de la implementació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 compatibles y detalles más profundos, visite 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 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 las citas, consulta la sección de Citas y agradecimientos.