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 NVIDIA Tesla T4 GPU.
  • 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.

DOMANDE FREQUENTI

Cos'è Meituan YOLOv6 e cosa lo rende unico?

Meituan YOLOv6 è un rilevatore di oggetti all'avanguardia che bilancia velocità e precisione, ideale per le applicazioni in tempo reale. Presenta notevoli miglioramenti architettonici come il modulo Bi-directional Concatenation (BiC) e la strategia Anchor-Aided Training (AAT). Queste innovazioni garantiscono un aumento sostanziale delle prestazioni con una riduzione minima della velocità, rendendo YOLOv6 una scelta competitiva per le attività di rilevamento degli oggetti.

In che modo il modulo di concatenazione bidirezionale (BiC) di YOLOv6 migliora le prestazioni?

Il modulo Bi-directional Concatenation (BiC) di YOLOv6 migliora i segnali di localizzazione nel collo del rilevatore, offrendo un miglioramento delle prestazioni con un impatto trascurabile sulla velocità. Questo modulo combina efficacemente diverse mappe di caratteristiche, aumentando la capacità del modello di rilevare gli oggetti in modo accurato. Per maggiori dettagli sulle caratteristiche di YOLOv6, consulta la sezione Caratteristiche principali.

Come posso addestrare un modello YOLOv6 utilizzando Ultralytics?

Puoi addestrare un modello YOLOv6 utilizzando Ultralytics con i semplici comandi Python o CLI . Ad esempio:

Esempio

from ultralytics import YOLO

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

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

Per maggiori informazioni, visita la pagina del treno.

Quali sono le diverse versioni di YOLOv6 e le relative metriche di prestazione?

YOLOv6 offre diverse versioni, ognuna delle quali è ottimizzata per diversi requisiti di prestazione:

  • YOLOv6-N: 37,5% di AP a 1187 FPS
  • YOLOv6-S: 45,0% di AP a 484 FPS
  • YOLOv6-M: 50,0% AP a 226 FPS
  • YOLOv6-L: 52,8% di AP a 116 FPS
  • YOLOv6-L6: precisione all'avanguardia in scenari in tempo reale

Questi modelli sono stati valutati sul dataset COCO utilizzando un NVIDIA Tesla T4 GPU. Per maggiori informazioni sulle metriche delle prestazioni, consulta la sezione Metriche delle prestazioni.

In che modo la strategia Anchor-Aided Training (AAT) è utile a YOLOv6?

L'Anchor-Aided Training (AAT) in YOLOv6 combina elementi di approcci basati su ancore e senza ancore, migliorando le capacità di rilevamento del modello senza compromettere l'efficienza dell'inferenza. Questa strategia sfrutta le ancore durante l'addestramento per migliorare le previsioni dei riquadri di delimitazione, rendendo YOLOv6 efficace in diversi compiti di rilevamento degli oggetti.

Quali modalità operative sono supportate dai modelli YOLOv6 in Ultralytics?

YOLOv6 supporta diverse modalità operative, tra cui Inferenza, Convalida, Formazione ed Esportazione. Questa flessibilità permette agli utenti di sfruttare appieno le capacità del modello in diversi scenari. Consulta la sezione Attività e modalità supportate per una panoramica dettagliata di ciascuna modalità.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (10)

Commenti