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 notevoli 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 addestramento che hanno portato a significativi miglioramenti delle prestazioni. (a) Il collo di YOLOv6 (sono mostrati N e S). Si noti che 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 godere dei vantaggi di entrambi i paradigmi, quello basato sulle ancore e quello 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 set di dati COCO con input ad alta risoluzione.
  • Strategia di autodistillazione: Una nuova strategia di autodistillazione è stata implementata per aumentare le prestazioni dei modelli più piccoli di YOLOv6, potenziando il ramo di regressione ausiliario durante l'addestramento e rimuovendolo al momento dell'inferenza per evitare un netto calo di velocità.

Metriche di prestazione

YOLOv6 fornisce vari modelli pre-addestrati con scale diverse:

  • YOLOv6-N: 37,5% AP su COCO val2017 a 1187 FPS con NVIDIA 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 addestramento e inferenza YOLOv6. Per una documentazione completa su queste e altre modalità, consultare le pagine dei documenti Predict, Train, Val ed Export.

Esempio

PyTorch preaddestrato *.pt modelli e la configurazione *.yaml possono essere passati al metodo 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 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 gamma di modelli, ciascuno ottimizzato per il rilevamento di oggetti ad alte prestazioni. Questi modelli soddisfano le diverse esigenze di calcolo e i requisiti 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, Addestramento ed Esportazione. Questo supporto completo assicura che gli utenti possano 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.

FAQ

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 architetturali come il modulo Bi-directional Concatenation (BiC) e la strategia Anchor-Aided Training (AAT). Queste innovazioni garantiscono un sostanziale aumento 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 Bi-directional Concatenation (BiC) di YOLOv6 migliora le prestazioni?

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

Come posso addestrare un modello YOLOv6 utilizzando Ultralytics?

È possibile 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 ulteriori informazioni, visitate la pagina del treno.

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

YOLOv6 offre più versioni, ciascuna ottimizzata per diversi requisiti di prestazione:

  • YOLOv6-N: 37,5% AP a 1187 FPS
  • YOLOv6-S: 45,0% AP a 484 FPS
  • YOLOv6-M: 50,0% AP a 226 FPS
  • YOLOv6-L: 52,8% 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 T4 GPU. Per ulteriori informazioni sulle metriche delle prestazioni, consultare la sezione Metriche delle prestazioni.

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

L'addestramento assistito da ancore (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à consente agli utenti di sfruttare appieno le capacità del modello in diversi scenari. Per una panoramica dettagliata di ciascuna modalità, consultare la sezione Attività e modalità supportate.

📅C reato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti