Meituan YOLOv6
Panoramica
Meituan YOLOv6, rilasciato nel 2022, offre un solido equilibrio tra velocità e precisione, rendendolo una scelta popolare per le applicazioni in tempo reale. Questo modello introduce diversi miglioramenti notevoli nell'architettura e nello schema di addestramento, tra cui l'implementazione di un modulo di concatenazione bidirezionale (BiC), una strategia di addestramento assistita da anchor (AAT) e un design migliorato di backbone e neck per un'elevata precisione sul dataset COCO.
Panoramica di YOLOv6. Diagramma dell'architettura del modello che mostra i componenti di rete ridisegnati e le strategie di addestramento che hanno portato a significativi miglioramenti delle prestazioni. (a) Il neck di YOLOv6 (sono mostrati N e S). Nota: per M/L, RepBlocks viene sostituito con 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 neck del rilevatore, migliorando i segnali di localizzazione e fornendo guadagni di prestazioni con un degrado della velocità trascurabile.
- Strategia di addestramento assistita da anchor (AAT): Questo modello propone l'AAT per godere dei vantaggi sia dei paradigmi anchor-based che anchor-free senza compromettere l'efficienza dell'inferenza.
- Design migliorato di backbone e neck: Approfondendo YOLOv6 per includere un altro stadio nel backbone e nel neck, questo modello ha ottenuto prestazioni elevate sul dataset COCO a input ad alta risoluzione al momento del rilascio.
- Strategia di auto-distillazione: Viene implementata una nuova strategia di auto-distillazione per aumentare le prestazioni dei modelli più piccoli di YOLOv6, migliorando il ramo di regressione ausiliario durante l'addestramento e rimuovendolo durante l'inferenza per evitare un marcato calo di velocità.
Metriche delle prestazioni
YOLOv6 fornisce vari modelli preaddestrati con diverse scale:
- YOLOv6-N: 37,5% AP su COCO val2017 a 1187 FPS con GPU NVIDIA T4.
- 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 allo stato dell'arte 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 addestramento e inferenza con YOLOv6. Per la documentazione completa su queste e altre modalità, consulta le pagine della documentazione Predict, Train, Val e Export.
I file *.yaml di YOLOv6 possono essere passati alla classe YOLO() 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")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 precisione, rendendoli versatili per un'ampia gamma di applicazioni.
| Modello | Nomi file | Task | Inferenza (Inference) | Validazione | Addestramento | Export |
|---|---|---|---|---|---|---|
| YOLOv6-N | yolov6n.yaml | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-S | yolov6s.yaml | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-M | yolov6m.yaml | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-L | yolov6l.yaml | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
| YOLOv6-X | yolov6x.yaml | Rilevamento oggetti | ✅ | ✅ | ✅ | ✅ |
Questa tabella fornisce una panoramica dettagliata delle varianti del modello YOLOv6, evidenziando le loro capacità nelle attività di object detection e la loro compatibilità con varie modalità operative come Inference, Validation, Training e Export. Questo supporto completo garantisce che tu possa sfruttare appieno le capacità dei modelli YOLOv6 in un'ampia gamma di scenari di rilevamento oggetti.
Citazioni e ringraziamenti
Desideriamo ringraziare gli autori per i loro significativi contributi nel campo del rilevamento 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 paper originale di YOLOv6 può essere trovato su arXiv. Gli autori hanno reso pubblico il loro lavoro e la codebase può essere consultata 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, rilasciato nel 2022, è un rilevatore di oggetti che bilancia velocità e precisione, progettato per applicazioni in tempo reale. Presenta notevoli miglioramenti architettonici come il modulo di concatenazione bidirezionale (BiC) e una strategia di addestramento assistita da anchor (AAT). Queste innovazioni forniscono sostanziali guadagni di prestazioni con una minima degradazione della velocità, rendendo YOLOv6 una scelta competitiva per le attività di rilevamento oggetti.
In che modo il modulo di concatenazione bidirezionale (BiC) in YOLOv6 migliora le prestazioni?
Il modulo di concatenazione bidirezionale (BiC) in YOLOv6 migliora i segnali di localizzazione nel neck del rilevatore, offrendo miglioramenti delle prestazioni con un impatto sulla velocità trascurabile. Questo modulo combina efficacemente diverse feature maps, aumentando la capacità del modello di rilevare oggetti con precisione. Per ulteriori dettagli sulle caratteristiche di YOLOv6, consulta la sezione Key Features.
Come posso addestrare un modello YOLOv6 utilizzando Ultralytics?
Puoi addestrare un modello YOLOv6 utilizzando Ultralytics con semplici comandi Python o CLI. Per 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)Per ulteriori informazioni, visita la pagina Train.
Quali sono le diverse versioni di YOLOv6 e le loro metriche di prestazione?
YOLOv6 offre diverse versioni, ognuna 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 allo stato dell'arte in scenari in tempo reale
Questi modelli sono valutati sul dataset COCO utilizzando una GPU NVIDIA T4. Per maggiori informazioni sulle metriche di prestazione, consulta la sezione Performance Metrics.
In che modo la strategia di addestramento assistita da anchor (AAT) avvantaggia YOLOv6?
L'addestramento assistito da anchor (AAT) in YOLOv6 combina elementi di approcci anchor-based 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 rilevamento oggetti.
Quali modalità operative sono supportate dai modelli YOLOv6 in Ultralytics?
YOLOv6 supporta varie modalità operative tra cui Inference, Validation, Training ed Export. Questa flessibilità ti consente di sfruttare appieno le capacità del modello in diversi scenari. Dai un'occhiata alla sezione Supported Tasks and Modes per una panoramica dettagliata di ogni modalità.