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 schema di addestramento, tra cui l'implementazione di un modulo di concatenazione bidirezionale (BiC), una strategia di addestramento assistito da ancore (AAT) e un backbone e un design del neck migliorati per una precisione all'avanguardia sul dataset COCO.

Meituan YOLOv6 Immagine di esempio del modello Panoramica di YOLOv6. Diagramma dell'architettura del modello che mostra i componenti di rete riprogettati e le strategie di addestramento che hanno portato a significativi miglioramenti delle prestazioni. (a) Il neck di YOLOv6 (sono mostrati N e S). Si noti che per M/L, RepBlocks è sostituito con CSPStackRep. (b) La struttura di un modulo BiC. (c) Un blocco SimCSPSPPF. (source).

Caratteristiche principali

  • Modulo di concatenazione bidirezionale (BiC): YOLOv6 introduce un modulo BiC nel neck del rivelatore, migliorando i segnali di localizzazione e offrendo guadagni di prestazioni con una trascurabile riduzione della velocità.
  • Strategia di Anchor-Aided Training (AAT): Questo modello propone AAT per godere dei vantaggi di entrambi i paradigmi basati su anchor e anchor-free senza compromettere l'efficienza dell'inferenza.
  • Design Migliorato di Backbone e Neck: Approfondendo YOLOv6 per includere un'altra fase nel backbone e nel neck, questo modello raggiunge prestazioni all'avanguardia sul dataset COCO con input ad alta risoluzione.
  • Strategia di auto-distillazione: È implementata una nuova strategia di auto-distillazione per aumentare le prestazioni dei modelli più piccoli di YOLOv6, migliorando il ramo di regressione ausiliario durante il training e rimuovendolo all'inferenza per evitare un marcato calo di velocità.

Metriche di performance

YOLOv6 fornisce vari modelli pre-addestrati con diverse scale:

  • YOLOv6-N: 37.5% AP su COCO val2017 a 1187 FPS con NVIDIA T4 GPU.
  • 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: Accuratezza all'avanguardia in tempo reale.

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

Esempi di utilizzo

Questo esempio fornisce semplici esempi di training e inferenza YOLOv6. Per la documentazione completa su questi e altri modi, consultare le pagine della documentazione Predict, Train, Val ed Export.

Esempio

YOLOv6 *.yaml file possono essere passati alla YOLO() classe per costruire il modello corrispondente 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")

Sono disponibili comandi CLI 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 Object Detection ad alte prestazioni. Questi modelli soddisfano diverse esigenze computazionali e requisiti di accuratezza, rendendoli versatili per una vasta gamma di applicazioni.

Modello Nomi dei file Attività Inferenza Validazione Training Esportazione
YOLOv6-N yolov6n.yaml Rilevamento di oggetti
YOLOv6-S yolov6s.yaml Rilevamento di oggetti
YOLOv6-M yolov6m.yaml Rilevamento di oggetti
YOLOv6-L yolov6l.yaml Rilevamento di oggetti
YOLOv6-X yolov6x.yaml Rilevamento di oggetti

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

Citazioni e riconoscimenti

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}
}

L'articolo originale su YOLOv6 è disponibile su arXiv. Gli autori hanno reso il loro lavoro pubblicamente disponibile e il codice può essere consultato su GitHub. Apprezziamo i loro sforzi nel far progredire il settore e nel rendere il loro lavoro accessibile alla 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 applicazioni in tempo reale. Presenta notevoli miglioramenti architetturali come il modulo Bi-directional Concatenation (BiC) e una strategia Anchor-Aided Training (AAT). Queste innovazioni offrono notevoli vantaggi in termini di prestazioni con una minima riduzione della velocità, rendendo YOLOv6 una scelta competitiva per le attività di rilevamento oggetti.

In che modo il modulo Bi-directional Concatenation (BiC) in YOLOv6 migliora le prestazioni?

Il modulo Bi-directional Concatenation (BiC) in YOLOv6 migliora i segnali di localizzazione nel neck del detector, offrendo miglioramenti delle prestazioni con un impatto trascurabile sulla velocità. Questo modulo combina efficacemente diverse feature map, 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 usando Ultralytics?

Puoi addestrare un modello YOLOv6 utilizzando Ultralytics con 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, visitare la pagina Train.

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

YOLOv6 offre diverse versioni, ognuna ottimizzata per differenti requisiti di performance:

  • 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: Accuratezza all'avanguardia in scenari real-time

Questi modelli vengono valutati sul dataset COCO utilizzando una GPU NVIDIA T4. Per maggiori informazioni sulle metriche di performance, consulta la sezione Metriche di Performance.

In che modo la strategia Anchor-Aided Training (AAT) avvantaggia YOLOv6?

L'Anchor-Aided Training (AAT) in YOLOv6 combina elementi di approcci basati su anchor e anchor-free, migliorando le capacità di rilevamento del modello senza compromettere l'efficienza dell'inferenza. Questa strategia sfrutta gli anchor durante l'addestramento per migliorare le previsioni dei bounding box, rendendo YOLOv6 efficace in diverse attività di object detection.

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

YOLOv6 supporta varie modalità operative tra cui Inference, Validation, Training ed Export. Questa flessibilità consente agli utenti di sfruttare appieno le capacità del modello in diversi scenari. Consultare la sezione Supported Tasks and Modes per una panoramica dettagliata di ciascuna modalità.



📅 Creato 1 anno fa ✏️ Aggiornato 5 mesi fa

Commenti