Presentamos la segmentación de instancias en Ultralytics YOLOv5 v7.0
Descubre YOLOv5 v7.0 con nuevos modelos de segmentación de instancias que superan los benchmarks SOTA en precisión y velocidad de AI. Únete a nuestra comunidad.

YOLOv5 v7.0, la última versión de nuestra arquitectura de IA, ya está disponible, ¡y nos entusiasma presentar nuestros nuevos modelos de segmentación de instancias!

Mientras trabajábamos en esta última versión, mantuvimos dos objetivos como prioridades principales. El primero era nuestra misión de facilitar la IA y el segundo, nuestro objetivo de redefinir lo que significa realmente «lo último en tecnología».
Así que, con importantes mejoras, correcciones y actualizaciones, lo hemos conseguido. Al mantener los mismos flujos de trabajo sencillos que nuestros modelos existentes de detección de objetos Ultralytics YOLOv5, ahora es más fácil que nunca entrenar, validar y desplegar tus modelos con YOLOv5 v7.0. Además, hemos superado todos los benchmarks SOTA, lo que convierte a YOLOv5, en la práctica, en el modelo más rápido y preciso del mundo.
Como esta es nuestra primera versión de modelos de segmentación, estamos enormemente orgullosos de este hito. Tenemos mucho que agradecer a nuestra comunidad y a nuestros colaboradores, que han ayudado a hacer posible esta versión.

¡Empecemos con las notas de la versión de YOLOv5 v7.0!
Actualizaciones importantes de Ultralytics YOLOv5#
Esto es lo que se ha actualizado en YOLOv5 desde nuestra última versión de YOLOv5 v6.2, publicada en agosto de 2022.
- Modelos de segmentación ⭐ NUEVO: Ya están disponibles por primera vez los modelos de segmentación SOTA YOLOv5-seg preentrenados con COCO (#9052, de @glenn-jocher, @AyushExel y @Laughing-q)
- Exportación a PaddlePaddle: Exporta cualquier modelo YOLOv5 (cls, seg, det) al formato Paddle con python export.py --include paddle #9459, de @glenn-jocher)
- YOLOv5 AutoCache: python train.py --cache ram analizará ahora la memoria disponible y la comparará con el uso previsto de RAM del conjunto de datos. Esto reduce el riesgo al almacenar en caché y debería ayudar a fomentar la adopción de la función de caché del conjunto de datos, que puede acelerar considerablemente el entrenamiento. (#10027, de @glenn-jocher)
- Integración del registro y la visualización de Comet: Comet, gratuito para siempre, te permite guardar modelos YOLOv5, reanudar el entrenamiento y visualizar y depurar predicciones de forma interactiva. (#9232, de @DN6)
Nuevos checkpoints de segmentación#
Hemos entrenado modelos de segmentación de Ultralytics YOLOv5 con COCO durante 300 épocas, con un tamaño de imagen de 640, usando GPU A100. Hemos exportado todos los modelos a ONNX FP32 para las pruebas de velocidad en CPU y a TensorRT FP16 para las pruebas de velocidad en GPU. Hemos realizado todas las pruebas de velocidad en notebooks de Google Colab Pro para facilitar la reproducibilidad.
- Todos los checkpoints se han entrenado durante 300 épocas con el optimizador SGD, lr0=0.01 y weight_decay=5e-5, con un tamaño de imagen de 640 y todos los ajustes predeterminados. Todas las ejecuciones se registran en los registros de entrenamiento de Weights & Biases.
- Los valores de precisión corresponden a un único modelo y una única escala en el conjunto de datos COCO. Reprodúcelo con python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- La velocidad es la media de 100 imágenes de inferencia usando una instancia A100 High-RAM de Colab Pro. Los valores indican únicamente la velocidad de inferencia (NMS añade aproximadamente 1 ms por imagen). Reprodúcelo con python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- La exportación a ONNX en FP32 y a TensorRT en FP16 se ha realizado con export.py. Reprodúcelo con python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Nuevos ejemplos de uso de la segmentación#
Entrenar#
El entrenamiento de segmentación de Ultralytics 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, seguida de 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
DDP con varias GPU#
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
Validación#
Valida la precisión de YOLOv5m-seg en el conjunto de datos COCO:
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validate
Predecir#
Usa YOLOv5m-seg preentrenado 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)

Exportar#
Exporta el modelo YOLOv5s-seg a ONNX y TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

¿Tienes alguna pregunta? Pregunta en el foro de Ultralytics, abre una incidencia o envía un PR en el repositorio. También puedes empezar con nuestro notebook de Colab sobre segmentación de YOLOv5 para consultar tutoriales de inicio rápido.









