Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Introduzione alla segmentazione delle istanze in Ultralytics YOLOv5 v7.0

Il team di Ultralytics

3 minuti di lettura

23 novembre 2022

Scopri YOLOv5 v7.0 con nuovi modelli di instance segmentation, che superano i benchmark SOTA per la massima precisione e velocità dell'AI. Unisciti alla nostra community.

YOLOv5 v7.0, l'ultima versione della nostra architettura AI, è uscita e siamo entusiasti di presentare i nostri nuovi modelli di segmentazione delle istanze!

Mentre lavoravamo a quest'ultima versione, abbiamo tenuto due obiettivi ben presenti. Il primo era la nostra missione di rendere l'IA facile e il secondo era il nostro obiettivo di ridefinire ciò che significa veramente "stato dell'arte".

Quindi, con miglioramenti, correzioni e aggiornamenti significativi, abbiamo fatto proprio questo. Mantenendo gli stessi semplici flussi di lavoro dei nostri modelli di object detection YOLOv5 esistenti, ora è più facile che mai addestrare, convalidare e distribuire i tuoi modelli con YOLOv5 v7.0. Oltre a questo, abbiamo superato tutti i benchmark SOTA, rendendo effettivamente YOLOv5 il più veloce e preciso al mondo.

Essendo questa la nostra prima release di modelli di segmentazione, siamo immensamente orgogliosi di questo traguardo. Ringraziamo la nostra comunità e i nostri collaboratori dedicati, che hanno contribuito a rendere possibile questa release.  

Instance Segmentation in tempo reale SOTA Ultralytics YOLOv5 v7.0

Quindi, iniziamo con le note di rilascio di YOLOv5 v7.0!

Aggiornamenti importanti di YOLOv5

Ecco cosa è stato aggiornato in YOLOv5 dall'ultima release di YOLOv5 v6.2 nell'agosto 2022.

  • Modelli di segmentazione ⭐ NOVITÀ: I modelli di segmentazione SOTA YOLOv5-seg pre-addestrati su COCO sono ora disponibili per la prima volta (#9052 di @glenn-jocher, @AyushExel e @Laughing-q)
  • Esportazione PaddlePaddle: Esporta qualsiasi modello YOLOv5 (cls, seg, det) in formato Paddle con python export.py --include paddle #9459 di @glenn-jocher)
  • YOLOv5 AutoCache: L'utilizzo di python train.py --cache ram ora analizzerà la memoria disponibile e la confronterà con l'utilizzo previsto della RAM del set di dati. Ciò riduce il rischio di caching e dovrebbe contribuire a migliorare l'adozione della funzionalità di caching del set di dati, che può accelerare significativamente l'addestramento. (#10027 di @glenn-jocher)
  • Integrazione di Comet per la registrazione e la visualizzazione: Gratuito per sempre, Comet ti consente di salvare i modelli YOLOv5, riprendere l'addestramento e visualizzare e correggere interattivamente le previsioni. (#9232 di @DN6)

Nuovi checkpoint di segmentazione

Abbiamo addestrato modelli di segmentazione YOLOv5 su COCO per 300 epoche con una dimensione dell'immagine di 640 utilizzando GPU A100. Abbiamo esportato tutti i modelli in ONNX FP32 per i test di velocità della CPU e in TensorRT FP16 per i test di velocità della GPU. Abbiamo eseguito tutti i test di velocità sui notebook di Google Colab Pro per una facile riproducibilità.

  • Tutti i checkpoint sono addestrati per 300 epoche con l'ottimizzatore SGD con lr0=0.01 e weight_decay=5e-5 alla dimensione dell'immagine di 640 e tutte le impostazioni predefinite. Tutte le esecuzioni sono registrate qui.
  • I valori di accuratezza si riferiscono a un singolo modello a singola scala sul dataset COCO. Riproducibile con python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • Velocità media su 100 immagini di inferenza utilizzando un'istanza Colab Pro A100 High-RAM. I valori indicano solo la velocità di inferenza (NMS aggiunge circa 1ms per immagine). Riproduci con python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
  • Esportazione in ONNX a FP32 e TensorRT a FP16 eseguita con export.py. Riproduci con python export.py --weights yolov5s-seg.pt --include engine --device 0 --half

Nuovi esempi di utilizzo della segmentazione

Addestra

Il training di segmentazione YOLOv5 supporta il download automatico del dataset di segmentazione COCO128-seg con l'argomento --data coco128-seg.yaml e il download manuale del dataset COCO-segments con bash data\/scripts\/get_coco.sh --train --val --segments e quindi python train.py --data coco.yaml.

Singola GPU

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

DDP Multi-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

Val

Convalida l'accuratezza di YOLOv5m-seg sul dataset ImageNet-1k:

bash data/scripts/get_coco.sh --val --segments  # scarica lo split COCO val segments (780MB, 5000 immagini) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640  # convalida

Predici

Utilizza YOLOv5m-seg pre-addestrato per prevedere 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')  # carica da PyTorch Hub (ATTENZIONE: l'inferenza non è ancora supportata)

Instance Segmentation Ultralytics YOLOv5 v7.0


Esporta

Esporta il modello YOLOv5s-seg in ONNX e TensorRT:

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

Instance Segmentation Ultralytics YOLOv5 v7.0

Hai delle domande? Chiedi sul forum di Ultralytics, segnala un problema o invia una PR sul repository. Puoi anche iniziare con il nostro notebook Colab di segmentazione YOLOv5 per tutorial di avvio rapido.

Costruiamo insieme il futuro
dell'AI!

Inizia il tuo viaggio con il futuro del machine learning

Inizia gratis
Link copiato negli appunti