Inicio rápido de YOLOv5 🚀#
¡Embárcate en tu viaje por el dinámico mundo de la detección de objetos en tiempo real con Ultralytics YOLOv5! Esta guía está pensada para servir como punto de partida completo a quienes trabajan en IA, tanto aficionados como profesionales, y quieren dominar YOLOv5. Desde la configuración inicial hasta las técnicas avanzadas de entrenamiento, te acompañamos en todo el proceso. Al terminar esta guía, tendrás los conocimientos necesarios para implementar YOLOv5 en tus proyectos con confianza, utilizando métodos de aprendizaje profundo de última generación. ¡Arranquemos y pongamos rumbo a YOLOv5!
Instalación#
Prepárate para el despegue clonando el repositorio de YOLOv5 y configurando el entorno. Así te asegurarás de instalar todos los requisitos necesarios. Comprueba que tienes Python>=3.8.0 y PyTorch>=1.8 listos para despegar. Estas herramientas fundamentales son esenciales para ejecutar YOLOv5 de forma eficaz.
git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependenciesInferencias con PyTorch Hub#
Descubre lo sencillo que es realizar inferencias con YOLOv5 mediante PyTorch Hub: los modelos se descargan directamente de la versión más reciente de YOLOv5. Este método aprovecha la potencia de PyTorch para cargar y ejecutar modelos fácilmente, lo que simplifica la obtención de predicciones.
import torch
# Carga del modelo
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Puede ser 'yolov5n' - 'yolov5x6' o 'custom'
# Inferencias en imágenes
img = "https://ultralytics.com/images/zidane.jpg" # Puede ser un archivo, Path, PIL, OpenCV, numpy o una lista de imágenes
# Ejecutar inferencia
results = model(img)
# Mostrar resultados
results.print() # o .show(), .save(), .crop(), .pandas(), etc.Inferencia con detect.py#
Utiliza detect.py para realizar inferencias versátiles con distintas fuentes. Descarga automáticamente modelos de la última versión de YOLOv5 y guarda los resultados fácilmente. Este script es ideal para usar desde la línea de comandos e integrar YOLOv5 en sistemas más grandes; admite entradas como imágenes, vídeos, directorios, cámaras web e incluso transmisiones en directo.
python detect.py --weights yolov5s.pt --source 0 # webcam
python detect.py --weights yolov5s.pt --source image.jpg # image
python detect.py --weights yolov5s.pt --source video.mp4 # video
python detect.py --weights yolov5s.pt --source screen # screenshot
python detect.py --weights yolov5s.pt --source path/ # directory
python detect.py --weights yolov5s.pt --source list.txt # list of images
python detect.py --weights yolov5s.pt --source list.streams # list of streams
python detect.py --weights yolov5s.pt --source 'path/*.jpg' # glob pattern
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # YouTube video
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP streamEntrenamiento#
Reproduce los resultados de referencia del conjunto de datos COCO de YOLOv5 siguiendo las instrucciones de entrenamiento que encontrarás a continuación. Los modelos y conjuntos de datos necesarios (como coco128.yaml o el coco.yaml completo) se descargan directamente de la última versión de YOLOv5. Entrenar YOLOv5n/s/m/l/x en una GPU V100 suele llevar 1/2/4/6/8 días, respectivamente (ten en cuenta que las configuraciones de entrenamiento multi-GPU son más rápidas). Maximiza el rendimiento usando el valor más alto posible de --batch-size o utiliza --batch-size -1 para la función AutoBatch de YOLOv5, que encuentra automáticamente el tamaño del lote óptimo. Los siguientes tamaños de lote son ideales para GPU V100 de 16 GB. Consulta el resumen de la arquitectura para obtener más información sobre los archivos de configuración del modelo (*.yaml).
# Train YOLOv5n on COCO128 for 3 epochs
python train.py --data coco128.yaml --epochs 3 --weights yolov5n.pt --batch-size 128
# Train YOLOv5s on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
# Train YOLOv5m on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
# Train YOLOv5l on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
# Train YOLOv5x on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
En definitiva, YOLOv5 no solo es una herramienta de vanguardia para la detección de objetos, sino también una prueba del poder del aprendizaje automático para transformar nuestra forma de interactuar con el mundo mediante la comprensión visual. A medida que avances en esta guía y empieces a aplicar YOLOv5 a tus proyectos, recuerda que estás a la vanguardia de una revolución tecnológica, capaz de lograr hazañas extraordinarias en visión artificial. Si necesitas más información o el apoyo de otros visionarios, te invitamos a visitar nuestro repositorio de GitHub, hogar de una activa comunidad de desarrolladores e investigadores. Explora otros recursos, como Ultralytics Platform, para gestionar conjuntos de datos y entrenar modelos sin código, o visita nuestra página de soluciones para descubrir aplicaciones reales e inspiración. Sigue explorando, sigue innovando y disfruta de las maravillas de YOLOv5. ¡Que tengas buenas detecciones! 🌠🔍
Preguntas frecuentes#
No para la inferencia. PyTorch Hub descarga el código y los pesos cuando se necesitan con
torch.hub.load("ultralytics/yolov5", "yolov5s"). Para ejecutar los scriptstrain.py,val.py,detect.pyyexport.py, sí es necesario clonar el repositorio.yolov5s.ptofrece el mejor equilibrio entre velocidad y precisión para la mayoría de los proyectos. Usayolov5n.pten dispositivos periféricos,yolov5m.ptayolov5x.ptcuando la precisión sea más importante que la velocidad, y las variantes P6, comoyolov5s6.pt, para entrenar con imágenes de 1280 píxeles. Consulta la tabla de puntos de control preentrenados para ver la lista completa.Coloca las imágenes y las etiquetas en formato YOLO en las carpetas paralelas
images/ylabels/, descríbelas en un archivodataset.yamly ejecutapython train.py --data dataset.yaml --weights yolov5s.pt. El tutorial Entrenar con datos personalizados explica cada paso.YOLOv5 es estable y sigue contando con soporte completo en el repositorio independiente, pero ya no es el modelo más reciente. Para proyectos nuevos, YOLO26, incluido en el paquete
ultralytics, es más rápido y preciso, y se exporta de extremo a extremo sin NMS, mediante el mismo flujo de trabajopip install ultralyticsdescrito en la guía de inicio rápido.