Introduzione della segmentazione delle istanze in Ultralytics YOLOv5 v7.0

Team Ultralytics

3 minuti di lettura

23 novembre 2022

Scoprite YOLOv5 v7.0 con nuovi modelli di segmentazione delle istanze, che superano i benchmark SOTA per la massima precisione e velocità dell'AI. Unisciti alla nostra comunità.

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

Durante il lavoro su quest'ultima versione, abbiamo mantenuto due obiettivi in primo piano. Il primo era la nostra missione di rendere l'intelligenza artificiale facile e il secondo era il nostro obiettivo di ridefinire il significato di "stato dell'arte".

Con significativi miglioramenti, correzioni e aggiornamenti, abbiamo fatto proprio questo. Mantenendo gli stessi semplici flussi di lavoro dei nostri modelli di rilevamento degli oggetti YOLOv5 esistenti, ora è più facile che mai addestrare, convalidare e distribuire i vostri modelli con YOLOv5 v7.0. Inoltre, abbiamo superato tutti i benchmark SOTA, rendendo YOLOv5 il più veloce e preciso al mondo.

Trattandosi della nostra prima release di modelli di segmentazione, siamo immensamente orgogliosi di questa pietra miliare. Dobbiamo ringraziare la nostra comunità e i nostri collaboratori che hanno contribuito a rendere possibile questa release.  

Ultralytics YOLOv5 v7.0 SOTA Segmentazione delle istanze in tempo reale

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

Aggiornamenti importanti di YOLOv5

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

  • Modelli di segmentazione ⭐ NOVITÀ: i modelli di segmentazione SOTA YOLOv5-seg pretrattati da COCO sono ora disponibili per la prima volta(#9052 di @glenn-jocher, @AyushExel e @Laughing-q).
  • Esportazione PaddlePaddle: Esportazione di qualsiasi modello YOLOv5 (cls, seg, det) in formato Paddle con python export.py --include paddle #9459 di @glenn-jocher)
  • YOLOv5 AutoCache: L'uso di python train.py --cache ram ora analizza la memoria disponibile e la confronta con l'uso previsto della RAM del dataset. Questo riduce i rischi della cache e dovrebbe contribuire a migliorare l'adozione della funzione di cache del dataset, che può accelerare significativamente l'addestramento.(#10027 di @glenn-jocher)
  • Integrazione di registrazione e visualizzazione Comet: Gratuito per sempre, Comet consente di salvare i modelli YOLOv5, di riprendere l'addestramento e di visualizzare e debuggare in modo interattivo le previsioni.(#9232 di @DN6)

Nuovi punti di controllo della segmentazione

Abbiamo addestrato i modelli di segmentazione YOLOv5 su COCO per 300 epoche con immagini di dimensioni 640 utilizzando le 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à su notebook Google Colab Pro per una facile riproducibilità.

  • Tutti i checkpoint sono addestrati a 300 epoche con l'ottimizzatore SGD con lr0=0,01 e weight_decay=5e-5 con dimensioni dell'immagine 640 e tutte le impostazioni predefinite. Tutte le corse sono registrate qui.
  • I valori di accuratezza si riferiscono a un modello a scala singola sul dataset COCO. Riproduzione 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 1 ms per immagine). Riprodurre con python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
  • Esportazione in ONNX a FP32 e TensorRT a FP16 effettuata con export.py. Riprodurre con python export.py --peso yolov5s-seg.pt --include engine --device 0 --half

Esempi di utilizzo della nuova segmentazione

Treno

L'addestramento alla segmentazione di 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 poi 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

Convalidare l'accuratezza di YOLOv5m-seg sul set di dati ImageNet-1k:

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

Prevedere

Utilizzare YOLOv5m-seg preaddestrato per prevedere bus.jpg:

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

model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5m-seg.pt') # caricamento da PyTorch Hub (ATTENZIONE: inferenza non ancora supportata)

Ultralytics YOLOv5 v7.0 Segmentazione delle istanze


Esportazione

Esportare il modello YOLOv5s-seg in ONNX e TensorRT:

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

Ultralytics YOLOv5 v7.0 Segmentazione delle istanze

Avete domande? Chiedete al forum di Ultralytics, sollevate un problema o inviate una PR sul repo. Potete anche iniziare con il nostro taccuino YOLOv5 per la segmentazione del Colab per avere delle esercitazioni rapide.

Costruiamo insieme il futuro
dell'IA!

Iniziate il vostro viaggio nel futuro dell'apprendimento automatico

Iniziare gratuitamente
Link copiato negli appunti