Presentación de la segmentación de instancias en Ultralytics YOLOv5 v7.0

Equipo Ultralytics

3 min leer

23 de noviembre de 2022

Descubra YOLOv5 v7.0 con nuevos modelos de segmentación de instancias que superan las pruebas de referencia SOTA en cuanto a precisión y velocidad de la IA. Únete a nuestra comunidad.

Ya está disponible YOLOv5 v7.0, la última versión de nuestra arquitectura de IA, y estamos encantados de presentar nuestros nuevos modelos de segmentación de instancias.

Mientras trabajábamos en esta última versión, hemos mantenido dos objetivos en primer plano. El primero era nuestra misión de facilitar la IA, y el segundo era nuestro objetivo de redefinir lo que realmente significa "vanguardia".

Así que, con importantes mejoras, correcciones y actualizaciones, lo hemos conseguido. Manteniendo los mismos flujos de trabajo sencillos que nuestros modelos de detección de objetos YOLOv5 existentes, ahora es más fácil que nunca entrenar, validar y desplegar sus modelos con YOLOv5 v7.0. Además, hemos superado todos los puntos de referencia SOTA, lo que convierte a YOLOv5 en el más rápido y preciso del mundo.

Dado que se trata de nuestra primera versión de modelos de segmentación, estamos inmensamente orgullosos de este hito. Estamos muy agradecidos a nuestra comunidad y a nuestros colaboradores, que han contribuido a hacer posible esta versión.  

Segmentación de instancias en tiempo real Ultralytics YOLOv5 v7.0 SOTA

Empecemos con las notas de la versión YOLOv5 v7.0.

Actualizaciones importantes de YOLOv5

Esto es lo que se ha actualizado en YOLOv5 desde nuestro último lanzamiento de YOLOv5 v6.2 en agosto de 2022.

  • Modelos de segmentación ⭐ NUEVO: los modelos de segmentación SOTA YOLOv5-seg preentrenados con COCO ya están disponibles por primera vez(#9052 por @glenn-jocher, @AyushExel y @Laughing-q).
  • Exportación PaddlePádel: Exporta cualquier modelo YOLOv5 (cls, seg, det) a formato Paddle con python export.py --include paddle #9459 by @glenn-jocher)
  • YOLOv5 AutoCache: Usar python train.py --cache ram ahora escaneará la memoria disponible y la comparará con el uso previsto de RAM del conjunto de datos. Esto reduce el riesgo en el almacenamiento en caché y debería ayudar a mejorar la adopción de la función de almacenamiento en caché del conjunto de datos, que puede acelerar significativamente el entrenamiento.(#10027 por @glenn-jocher)
  • Integración de registro y visualización de Comet: Gratis para siempre, Comet permite guardar modelos YOLOv5, reanudar el entrenamiento y visualizar y depurar predicciones de forma interactiva.(#9232 por @DN6)

Nuevos puntos de control de segmentación

Entrenamos modelos de segmentación YOLOv5 en COCO durante 300 épocas a un tamaño de imagen de 640 utilizando GPUs A100. Exportamos todos los modelos a ONNX FP32 para las pruebas de velocidad en CPU y a TensorRT FP16 para las pruebas de velocidad en GPU. Ejecutamos todas las pruebas de velocidad en portátiles Google Colab Pro para facilitar la reproducibilidad.

  • Todos los puntos de control están entrenados a 300 épocas con el optimizador SGD con lr0=0.01 y weight_decay=5e-5 con un tamaño de imagen de 640 y todos los ajustes por defecto. Todas las ejecuciones se registran aquí.
  • Los valores de precisión corresponden a un modelo de escala única en el conjunto de datos COCO. Reproducir mediante python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • Velocidad media sobre 100 imágenes de inferencia utilizando una instancia Colab Pro A100 High-RAM. Los valores indican únicamente la velocidad de inferencia (NMS añade aproximadamente 1 ms por imagen). Reproducir mediante 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 con python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Ejemplos de uso de la nueva segmentación

Tren

El entrenamiento de segmentación de 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 COCO-segments con bash data/scripts/get_coco.sh --train --val --segments y, a continuación, python train.py --data coco.yaml.

Una sola GPU

python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640

Multi-GPU DDP

python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3

Val

Validación de la precisión de YOLOv5m-seg en el conjunto de datos ImageNet-1k:

bash data/scripts/get_coco.sh --val --segments # descargar segmentos val COCO divididos (780MB, 5000 imágenes) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validar

Predecir

Utiliza YOLOv5m-seg para predecir bus.jpg:

python segment/predict.py --weights yolov5m-seg.pt --data data/images/bus.jpg

model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # load from PyTorch Hub (WARNING: inference not yet supported)

Segmentación de instancias de Ultralytics YOLOv5 v7.0


Exportar

Exportación del modelo YOLOv5s-seg a ONNX y TensorRT:

python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Segmentación de instancias de Ultralytics YOLOv5 v7.0

¿Tienes alguna duda? Pregunte en el foro de Ultralytics, plantee un problema o envíe un PR al repositorio. También puede empezar con nuestro cuaderno de YOLOv5 segmentación Colab para tutoriales de inicio rápido.

¡Construyamos juntos el futuro
de la IA!

Comience su viaje con el futuro del aprendizaje automático

Empezar gratis
Enlace copiado en el portapapeles