中文 | 한국어 | 日本語 | ruso | alemán | Francés | Español | Portugués | turco | Tiếng Việt | العربية
¿YOLOv5? es la IA de visión más querida del mundo, que representa la investigación de código abierto de Ultralytics sobre métodos de IA de visión futura, incorporando lecciones aprendidas y mejores prácticas desarrolladas a lo largo de miles de horas de investigación y desarrollo.
Esperamos que los recursos aquí le ayuden a aprovechar YOLOv5 al máximo. Explore los documentos de YOLOv5 para obtener más detalles, plantee un problema en GitHub para obtener ayuda y únase a nuestra comunidad de Discord para preguntas y debates.
Para solicitar una licencia empresarial, complete el formulario en Licencias Ultralytics.
¿YOLO11? NUEVO
¡Estamos emocionados de presentar el lanzamiento de Ultralytics YOLO11 ?, ¡el último avance en nuestros modelos de visión de última generación (SOTA)! Disponible ahora en GitHub , YOLO11 se basa en nuestro legado de velocidad, precisión y facilidad de uso. Ya sea que esté abordando la detección de objetos, la segmentación o clasificación de imágenes, YOLO11 ofrece el rendimiento y la versatilidad necesarios para sobresalir en diversas aplicaciones.
¡Empieza hoy y desbloquea todo el potencial de YOLO11! Visite Ultralytics Docs para obtener guías y recursos completos:
ultralíticos de instalación de pip
Documentación
Consulte los documentos de YOLOv5 para obtener documentación completa sobre capacitación, pruebas e implementación. Consulte a continuación ejemplos de inicio rápido.
Clone el repositorio e instale requisitos.txt en un entorno Python>=3.8.0 , incluido PyTorch>=1.8 .
clon de git https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r requisitos.txt # instalar
Inferencia de YOLOv5 PyTorch Hub. Los modelos se descargan automáticamente desde la última versión de YOLOv5.
importar antorcha# Modelmodel = torch.hub.load("ultralytics/yolov5", "yolov5s") # o yolov5n - yolov5x6, personalizado# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # o archivo, Ruta, PIL, OpenCV, numpy, lista# Inferenceresults = model(img)# Resultsresults.print() # o .show(), .save(), .crop(), .pandas(), etc.
detect.py
ejecuta inferencia en una variedad de fuentes, descarga modelos automáticamente desde la última versión de YOLOv5 y guarda los resultados en runs/detect
.
python detect.py --weights yolov5s.pt --source 0 # cámara web img.jpg # imagen vid.mp4 # vídeo pantalla # captura de pantalla ruta/# directorio list.txt # lista de imágenes list.streams # lista de transmisiones 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # RTSP, RTMP, secuencia HTTP
Los siguientes comandos reproducen los resultados de YOLOv5 COCO. Los modelos y conjuntos de datos se descargan automáticamente desde la última versión de YOLOv5. Los tiempos de entrenamiento para YOLOv5n/s/m/l/x son 1/2/4/6/8 días en una GPU V100 (multi-GPU veces más rápido). Utilice el --batch-size
más grande posible o pase --batch-size -1
para YOLOv5 AutoBatch. Se muestran los tamaños de lote para V100-16GB.
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 yolov5s 64 yolov5m 40 yolov5l 24 yolov5x 16
¿Entrenar datos personalizados? RECOMENDADO
Consejos para obtener mejores resultados de entrenamiento ☘️
Entrenamiento multi-GPU
¿Centro PyTorch? NUEVO
¿Exportación TFLite, ONNX, CoreML, TensorRT?
¿Implementación de la plataforma NVIDIA Jetson? NUEVO
Aumento del tiempo de prueba (TTA)
Conjunto de modelos
Poda/escasez del modelo
Evolución de hiperparámetros
Transferir aprendizaje con capas congeladas
¿Resumen de arquitectura? NUEVO
¿Ultralytics HUB para entrenar e implementar YOLO? RECOMENDADO
Registro ClearML
YOLOv5 con Deepsparse de Neural Magic
¿Registro de cometas? NUEVO
Integraciones
Nuestras integraciones clave con las principales plataformas de IA amplían la funcionalidad de las ofertas de Ultralytics, mejorando tareas como el etiquetado de conjuntos de datos, la capacitación, la visualización y la gestión de modelos. Descubra cómo Ultralytics, en colaboración con W&B, Comet, Roboflow y OpenVINO, puede optimizar su flujo de trabajo de IA.
¿HUB de ultralíticos? | W&B | Cometa ⭐ NUEVO | Magia neuronal |
---|---|---|---|
Optimice los flujos de trabajo de YOLO: etiquete, capacite e implemente sin esfuerzo con Ultralytics HUB. ¡Pruébalo ahora! | Realice un seguimiento de experimentos, hiperparámetros y resultados con pesos y sesgos | Gratis para siempre, Comet le permite guardar modelos YOLOv5, reanudar el entrenamiento y visualizar y depurar predicciones de forma interactiva | Ejecute la inferencia de YOLO11 hasta 6 veces más rápido con Neural Magic DeepSparse |
HUB de ultralíticos
Experimente una IA perfecta con Ultralytics HUB ⭐, la solución todo en uno para visualización de datos, YOLOv5 y YOLOv8. entrenamiento e implementación de modelos, sin ningún tipo de codificación. Transforme imágenes en conocimientos prácticos y haga realidad sus visiones de IA con facilidad utilizando nuestra plataforma de vanguardia y la aplicación Ultralytics fácil de usar. ¡Comienza tu viaje gratis ahora!
Por qué YOLOv5
YOLOv5 ha sido diseñado para que sea muy fácil comenzar y sencillo de aprender. Priorizamos los resultados del mundo real.
COCO AP val denota la métrica [email protected]:0.95 medida en el conjunto de datos COCO val2017 de 5000 imágenes en varios tamaños de inferencia de 256 a 1536.
La velocidad de GPU mide el tiempo de inferencia promedio por imagen en el conjunto de datos COCO val2017 utilizando una instancia AWS p3.2xlarge V100 con un tamaño de lote 32.
Datos EfficientDet de google/automl en tamaño de lote 8.
Reproducir en python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
Modelo | tamaño (píxeles) | valor del mapa 50-95 | valor del mapa 50 | Velocidad procesador b1 (EM) | Velocidad V100 b1 (EM) | Velocidad V100b32 (EM) | parámetros (METRO) | FLOP @640 (G) |
---|---|---|---|---|---|---|---|---|
yolv5n | 640 | 28.0 | 45,7 | 45 | 6.3 | 0,6 | 1.9 | 4.5 |
yolv5s | 640 | 37,4 | 56,8 | 98 | 6.4 | 0,9 | 7.2 | 16.5 |
YOLOv5m | 640 | 45,4 | 64.1 | 224 | 8.2 | 1.7 | 21.2 | 49.0 |
yolv5l | 640 | 49.0 | 67,3 | 430 | 10.1 | 2.7 | 46,5 | 109.1 |
yolv5x | 640 | 50,7 | 68,9 | 766 | 12.1 | 4.8 | 86,7 | 205.7 |
yolv5n6 | 1280 | 36.0 | 54.4 | 153 | 8.1 | 2.1 | 3.2 | 4.6 |
yolv5s6 | 1280 | 44,8 | 63,7 | 385 | 8.2 | 3.6 | 12.6 | 16.8 |
YOLOv5m6 | 1280 | 51.3 | 69.3 | 887 | 11.1 | 6.8 | 35,7 | 50.0 |
yolv5l6 | 1280 | 53,7 | 71.3 | 1784 | 15.8 | 10.5 | 76,8 | 111.4 |
YOLOv5x6 + TTA | 1280 1536 | 55.0 55,8 | 72,7 72,7 | 3136 - | 26.2 - | 19.4 - | 140,7 - | 209,8 - |
Todos los puntos de control están entrenados para 300 épocas con configuraciones predeterminadas. Los modelos Nano y Small usan hyp.scratch-low.yaml hyps, todos los demás usan hyp.scratch-high.yaml.
Los valores de mAP val son para un solo modelo de escala única en el conjunto de datos COCO val2017.
Reproducir por python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
Velocidad promediada sobre imágenes COCO val utilizando una instancia de AWS p3.2xlarge. Tiempos NMS (~1 ms/img) no incluidos.
Reproducir por python val.py --data coco.yaml --img 640 --task speed --batch 1
El aumento del tiempo de prueba de TTA incluye aumentos de reflexión y escala.
Reproducir por python val.py --data coco.yaml --img 1536 --iou 0.7 --augment
Segmentación
Nuestros nuevos modelos de segmentación de instancias YOLOv5 versión v7.0 son los más rápidos y precisos del mundo, superando todos los puntos de referencia SOTA actuales. Los hemos hecho súper sencillos de entrenar, validar e implementar. Vea todos los detalles en nuestras Notas de la versión y visite nuestro Cuaderno de colaboración de segmentación YOLOv5 para obtener tutoriales de inicio rápido.
Entrenamos modelos de segmentación YOLOv5 en COCO durante 300 épocas con un tamaño de imagen de 640 utilizando GPU A100. Exportamos todos los modelos a ONNX FP32 para pruebas de velocidad de CPU y a TensorRT FP16 para pruebas de velocidad de GPU. Realizamos todas las pruebas de velocidad en portátiles Google Colab Pro para una fácil reproducibilidad.
Modelo | tamaño (píxeles) | cuadro de mapa 50-95 | máscara de mapa 50-95 | tiempo de tren 300 épocas A100 (horas) | Velocidad CPU ONNX (EM) | Velocidad TRT A100 (EM) | parámetros (METRO) | FLOP @640 (G) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-seg | 640 | 27,6 | 23.4 | 80:17 | 62,7 | 1.2 | 2.0 | 7.1 |
YOLOv5s-seg | 640 | 37,6 | 31,7 | 88:16 | 173,3 | 1.4 | 7.6 | 26.4 |
YOLOv5m-seg | 640 | 45.0 | 37.1 | 108:36 | 427.0 | 2.2 | 22.0 | 70,8 |
YOLOv5l-seg | 640 | 49.0 | 39,9 | 66:43 (2x) | 857,4 | 2.9 | 47,9 | 147,7 |
YOLOv5x-seg | 640 | 50,7 | 41.4 | 62:56 (3x) | 1579.2 | 4.5 | 88,8 | 265,7 |
Todos los puntos de control están entrenados para 300 épocas con el optimizador SGD con lr0=0.01
y weight_decay=5e-5
en un tamaño de imagen 640 y todas las configuraciones predeterminadas.
Ejecuciones registradas en https://wandb.ai/glenn-jocher/YOLOv5_v70_official
Los valores de precisión son para un solo modelo de escala única en el conjunto de datos COCO.
Reproducir por python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
La velocidad promedió más de 100 imágenes de inferencia utilizando una instancia Colab Pro A100 High-RAM. Los valores indican solo la velocidad de inferencia (NMS agrega aproximadamente 1 ms por imagen).
Reproducir por python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
Exportación a ONNX en FP32 y TensorRT en FP16 realizada con export.py
.
Reproducir por python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
El entrenamiento de segmentación YOLOv5 admite la descarga automática del conjunto de datos de segmentación COCO128-seg con el argumento --data coco128-seg.yaml
y la descarga manual del conjunto de datos de segmentos COCO con bash data/scripts/get_coco.sh --train --val --segments
y luego python train.py --data coco.yaml
.
# Segmento de GPUpython único/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# DDPpython de múltiples GPU -m torch.distributed.run --nproc_per_node 4 --master_port 1 segmento /train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3
Valide el mapa de máscara YOLOv5s-seg en el conjunto de datos COCO:
bash data/scripts/get_coco.sh --val --segments # descargar segmentos COCO val divididos (780 MB, 5000 imágenes)python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validar
Utilice YOLOv5m-seg.pt previamente entrenado para predecir bus.jpg:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
model = torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # carga desde PyTorch Hub (ADVERTENCIA: la inferencia aún no se admite)
Exporte el modelo YOLOv5s-seg a ONNX y TensorRT:
python export.py --weights yolov5s-seg.pt --incluye motor onnx --img 640 --device 0
Clasificación
¡YOLOv5 versión v6.2 brinda soporte para el entrenamiento, validación e implementación de modelos de clasificación! Vea todos los detalles en nuestras Notas de la versión y visite nuestro Cuaderno de colaboración de clasificación YOLOv5 para obtener tutoriales de inicio rápido.
Entrenamos modelos de clasificación YOLOv5-cls en ImageNet durante 90 épocas usando una instancia 4xA100, y entrenamos modelos ResNet y EfficientNet junto con las mismas configuraciones de entrenamiento predeterminadas para comparar. Exportamos todos los modelos a ONNX FP32 para pruebas de velocidad de CPU y a TensorRT FP16 para pruebas de velocidad de GPU. Realizamos todas las pruebas de velocidad en Google Colab Pro para una fácil reproducibilidad.
Modelo | tamaño (píxeles) | acc arriba1 | acc top5 | Capacitación 90 épocas 4xA100 (horas) | Velocidad CPU ONNX (EM) | Velocidad TensorRT V100 (EM) | parámetros (METRO) | FLOP @224 (B) |
---|---|---|---|---|---|---|---|---|
YOLOv5n-cls | 224 | 64,6 | 85,4 | 7:59 | 3.3 | 0,5 | 2.5 | 0,5 |
YOLOv5s-cls | 224 | 71,5 | 90.2 | 8:09 | 6.6 | 0,6 | 5.4 | 1.4 |
YOLOv5m-cls | 224 | 75,9 | 92,9 | 10:06 | 15.5 | 0,9 | 12.9 | 3.9 |
YOLOv5l-cls | 224 | 78.0 | 94.0 | 11:56 | 26,9 | 1.4 | 26,5 | 8.5 |
YOLOv5x-cls | 224 | 79.0 | 94,4 | 15:04 | 54.3 | 1.8 | 48.1 | 15.9 |
ResNet18 | 224 | 70.3 | 89,5 | 6:47 | 11.2 | 0,5 | 11.7 | 3.7 |
ResNet34 | 224 | 73,9 | 91,8 | 8:33 | 20.6 | 0,9 | 21.8 | 7.4 |
ResNet50 | 224 | 76,8 | 93,4 | 11:10 | 23.4 | 1.0 | 25.6 | 8.5 |
ResNet101 | 224 | 78,5 | 94,3 | 17:10 | 42.1 | 1.9 | 44,5 | 15.9 |
EfficientNet_b0 | 224 | 75.1 | 92,4 | 13:03 | 12.5 | 1.3 | 5.3 | 1.0 |
EfficientNet_b1 | 224 | 76,4 | 93.2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
EfficientNet_b2 | 224 | 76,6 | 93,4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
EfficientNet_b3 | 224 | 77,7 | 94.0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
Todos los puntos de control están entrenados para 90 épocas con el optimizador SGD con lr0=0.001
y weight_decay=5e-5
con un tamaño de imagen 224 y todas las configuraciones predeterminadas.
Ejecuciones registradas en https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2
Los valores de precisión son para un solo modelo de escala única en el conjunto de datos ImageNet-1k.
Reproducir por python classify/val.py --data ../datasets/imagenet --img 224
La velocidad promedió más de 100 imágenes de inferencia utilizando una instancia de Google Colab Pro V100 High-RAM.
Reproducir mediante python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
Exportación a ONNX en FP32 y TensorRT en FP16 realizada con export.py
.
Reproducir por python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
El entrenamiento de clasificación YOLOv5 admite la descarga automática de conjuntos de datos MNIST, Fashion-MNIST, CIFAR10, CIFAR100, Imagenette, Imagewoof e ImageNet con el argumento --data
. Para comenzar a entrenar en MNIST, por ejemplo, utilice --data mnist
.
# Classify/train.py de GPUpython único --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# DDPpython de múltiples GPU -m torch.distributed.run --nproc_per_node 4 - -master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
Valide la precisión de YOLOv5m-cls en el conjunto de datos ImageNet-1k:
bash data/scripts/get_imagenet.sh --val # descargar ImageNet val split (6.3G, 50000 imágenes)python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224 # validar
Utilice YOLOv5s-cls.pt previamente entrenado para predecir bus.jpg:
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
modelo = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # carga desde PyTorch Hub
Exporte un grupo de modelos YOLOv5s-cls, ResNet y EfficientNet entrenados a ONNX y TensorRT:
python export.py --weights yolov5s-cls.pt resnet50.pt eficientenet_b0.pt --incluye motor onnx --img 224
Ambientes
Comience en segundos con nuestros entornos verificados. Haga clic en cada ícono a continuación para obtener más detalles.
Contribuir
¡Nos encanta tu aporte! Queremos que contribuir a YOLOv5 sea lo más fácil y transparente posible. Consulte nuestra Guía de contribución para comenzar y complete la encuesta YOLOv5 para enviarnos comentarios sobre sus experiencias. ¡Gracias a todos nuestros colaboradores!
Licencia
Ultralytics ofrece dos opciones de licencia para adaptarse a diversos casos de uso:
Licencia AGPL-3.0 : esta licencia de código abierto aprobada por OSI es ideal para estudiantes y entusiastas, ya que promueve la colaboración abierta y el intercambio de conocimientos. Consulte el archivo de LICENCIA para obtener más detalles.
Licencia empresarial : diseñada para uso comercial, esta licencia permite una integración perfecta del software Ultralytics y los modelos de IA en bienes y servicios comerciales, sin pasar por los requisitos de código abierto de AGPL-3.0. Si su situación implica integrar nuestras soluciones en una oferta comercial, comuníquese con Ultralytics Licensing.
Contacto
Para informes de errores de YOLOv5 y solicitudes de funciones, visite Problemas de GitHub y únase a nuestra comunidad de Discord para preguntas y debates.