Introduzione alla segmentazione di istanze in YOLOv5 v7.0 di Ultralytics
Scopri YOLOv5 v7.0 con nuovi modelli di segmentazione di istanze, che superano i benchmark SOTA per precisione e velocità AI di alto livello. Unisciti alla nostra community.

YOLOv5 v7.0, l'ultima versione della nostra architettura di intelligenza artificiale, è disponibile e siamo entusiasti di presentare i nostri nuovi modelli di segmentazione d'istanza!

Mentre lavoravamo a questa ultima versione, abbiamo tenuto in primo piano due obiettivi. Il primo è stato la nostra missione di rendere l'AI facile, e il secondo è stato il nostro obiettivo di ridefinire ciò che significa veramente "stato dell'arte".
Quindi, con miglioramenti significativi, correzioni e aggiornamenti, abbiamo fatto proprio questo. Mantenendo gli stessi flussi di lavoro semplici dei nostri modelli di rilevamento oggetti Ultralytics YOLOv5 esistenti, ora è più facile che mai addestrare, convalidare e distribuire i tuoi modelli con YOLOv5 v7.0. In aggiunta a ciò, abbiamo superato tutti i SOTA benchmarks, rendendo di fatto YOLOv5 il più veloce e accurato al mondo.
Poiché questo è il nostro primo rilascio di modelli di segmentazione, siamo immensamente orgogliosi di questo traguardo. Dobbiamo un grande ringraziamento alla nostra comunità dedicata e ai contributori, che hanno contribuito a rendere possibile questo rilascio.

Quindi, iniziamo con le note di rilascio di YOLOv5 v7.0!
Importanti aggiornamenti di Ultralytics YOLOv5#
Ecco cosa è stato aggiornato in YOLOv5 dal nostro ultimo rilascio di YOLOv5 v6.2 nell'agosto 2022.
- Modelli di segmentazione ⭐ NUOVO: I modelli di segmentazione preaddestrati su COCO YOLOv5-seg SOTA 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'uso di python train.py --cache ram ora analizzerà la memoria disponibile e la confronterà con l'utilizzo previsto della RAM del set di dati. Questo riduce il rischio nella memorizzazione nella cache e dovrebbe contribuire a migliorare l'adozione della funzione di memorizzazione nella cache del set di dati, che può accelerare significativamente l'addestramento. (#10027 di @glenn-jocher)
- Integrazione per la registrazione e la visualizzazione con Comet: 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 i modelli di segmentazione di Ultralytics YOLOv5 su COCO per 300 epoche a una dimensione immagine di 640 utilizzando GPU A100. Abbiamo esportato tutti i modelli in ONNX FP32 per i test di velocità su CPU e in TensorRT FP16 per i test di velocità su 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 a una dimensione dell'immagine di 640 e tutte le impostazioni predefinite. Tutte le esecuzioni vengono registrate nei log di addestramento di Weights & Biases.
- I valori di accuratezza si riferiscono a un modello singolo su scala singola sul dataset COCO. Riproducibile tramite python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
- Velocità mediata 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). Riproducibile tramite python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
- Esportazione in ONNX in FP32 e TensorRT in FP16 effettuata con export.py. Riproducibile tramite python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
Esempi di utilizzo della nuova segmentazione#
Addestra#
L'addestramento della segmentazione di Ultralytics 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.
GPU singola#
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#
Convalida la precisione di YOLOv5m-seg sul set di dati COCO:
bash data/scripts/get_coco.sh --val --segments # scarica lo split di segmentazione di validazione COCO (780MB, 5000 immagini) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # convalida
Previsione#
Usa 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)

Esportazione#
Esporta il modello YOLOv5s-seg in ONNX e TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

Hai domande? Chiedi nel forum di Ultralytics, apri una segnalazione o invia una PR sul repository. Puoi anche iniziare con il nostro notebook Colab per la segmentazione di YOLOv5 per tutorial di avvio rapido.






