Vai al contenuto

Meituan YOLOv6

Panoramica

Meituan YOLOv6 è un rilevatore di oggetti all'avanguardia che offre un notevole equilibrio tra velocità e precisione, rendendolo una scelta popolare per le applicazioni in tempo reale. Questo modello introduce diversi miglioramenti degni di nota nella sua architettura e nello schema di addestramento, tra cui l'implementazione di un modulo di concatenazione bidirezionale (BiC), una strategia di addestramento assistito da ancore (AAT) e un design migliorato della spina dorsale e del collo per una precisione all'avanguardia sul set di dati COCO.

Meituan YOLOv6 Modello immagine di esempio Panoramica di YOLOv6. Diagramma dell'architettura del modello che mostra i componenti della rete riprogettati e le strategie di formazione che hanno portato a significativi miglioramenti delle prestazioni. (a) Il collo di YOLOv6 (sono mostrati N e S). Nota per M/L, RepBlocks è sostituito da CSPStackRep. (b) La struttura di un modulo BiC. (c) Un blocco SimCSPSPPF. (fonte).

Caratteristiche principali

  • Modulo di concatenazione bidirezionale (BiC): YOLOv6 introduce un modulo BiC nel collo del rilevatore, migliorando i segnali di localizzazione e offrendo un aumento delle prestazioni con una degradazione trascurabile della velocità.
  • Strategia di formazione assistita da ancore (AAT): Questo modello propone l'AAT per sfruttare i vantaggi dei paradigmi basati sulle ancore e senza ancore senza compromettere l'efficienza dell'inferenza.
  • Design migliorato della spina dorsale e del collo: Approfondendo YOLOv6 per includere un altro stadio nella spina dorsale e nel collo, questo modello raggiunge prestazioni all'avanguardia sul dataset COCO con input ad alta risoluzione.
  • Strategia di autodistillazione: Per incrementare le prestazioni dei modelli più piccoli di YOLOv6 è stata implementata una nuova strategia di autodistillazione, che potenzia il ramo di regressione ausiliario durante l'addestramento e lo rimuove al momento dell'inferenza per evitare un netto calo di velocità.

Metriche di prestazione

YOLOv6 fornisce vari modelli pre-addestrati con diverse scale:

  • YOLOv6-N: 37,5% di AP su COCO val2017 a 1187 FPS con GPU NVIDIA Tesla T4.
  • YOLOv6-S: 45,0% di AP a 484 FPS.
  • YOLOv6-M: 50,0% di AP a 226 FPS.
  • YOLOv6-L: 52,8% di AP a 116 FPS.
  • YOLOv6-L6: precisione all'avanguardia in tempo reale.

YOLOv6 fornisce anche modelli quantizzati per diverse precisioni e modelli ottimizzati per le piattaforme mobili.

Esempi di utilizzo

Questo esempio fornisce semplici esempi di formazione e inferenza YOLOv6. Per una documentazione completa su queste e altre modalità, consulta le pagine dei documenti Predict, Train, Val ed Export.

Esempio

PyTorch preaddestrato *.pt modelli e configurazione *.yaml possono essere passati ai file YOLO() per creare un'istanza del modello in python:

from ultralytics import YOLO

# Build a YOLOv6n model from scratch
model = YOLO('yolov6n.yaml')

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')

CLI sono disponibili comandi per eseguire direttamente i modelli:

# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv6n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov6n.yaml source=path/to/bus.jpg

Attività e modalità supportate

La serie YOLOv6 offre una serie di modelli, ognuno ottimizzato per il rilevamento di oggetti ad alte prestazioni. Questi modelli rispondono a diverse esigenze di calcolo e di precisione, rendendoli versatili per un'ampia gamma di applicazioni.

Tipo di modello Pesi pre-addestrati Attività supportate Inferenza Convalida Formazione Esportazione
YOLOv6-N yolov6-n.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv6-S yolov6-s.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv6-M yolov6-m.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv6-L yolov6-l.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅
YOLOv6-L6 yolov6-l6.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅

Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv6, evidenziando le loro capacità nelle attività di rilevamento degli oggetti e la loro compatibilità con diverse modalità operative come Inferenza, Convalida, Formazione ed Esportazione. Questo supporto completo garantisce agli utenti di sfruttare appieno le capacità dei modelli YOLOv6 in un'ampia gamma di scenari di rilevamento di oggetti.

Citazioni e ringraziamenti

Desideriamo ringraziare gli autori per i loro significativi contributi nel campo del rilevamento di oggetti in tempo reale:

@misc{li2023yolov6,
      title={YOLOv6 v3.0: A Full-Scale Reloading},
      author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
      year={2023},
      eprint={2301.05586},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Il documento originale di YOLOv6 è disponibile su arXiv. Gli autori hanno reso il loro lavoro disponibile al pubblico e la base di codice è accessibile su GitHub. Apprezziamo i loro sforzi per far progredire il campo e rendere il loro lavoro accessibile a una comunità più ampia.



Creato 2023-11-12, Aggiornato 2024-01-07
Autori: glenn-jocher (5)

Commenti