Ultralytics YOLO27:

Meituan YOLOv6#

Panoramica#

Meituan YOLOv6, rilasciato nel 2022, offre un ottimo equilibrio tra velocità e accuratezza, diventando una scelta popolare per le applicazioni in tempo reale. Questo modello introduce diversi miglioramenti significativi all'architettura e allo schema di addestramento, tra cui l'implementazione di un modulo di concatenazione bidirezionale (BiC), una strategia di addestramento assistito dagli anchor (AAT) e un design migliorato del backbone e del neck per ottenere un'elevata accuratezza sul dataset COCO.

Modello di rilevamento degli oggetti in tempo reale YOLOv6 di Meituan Diagramma dell'architettura del modello YOLOv6 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 neck di YOLOv6 (sono mostrati N e S). Nota: per M/L, RepBlocks viene sostituito da CSPStackRep. (b) La struttura di un modulo BiC. (c) Un blocco SimCSPSPPF. (fonte).

Funzionalità principali#

  • Modulo di concatenazione bidirezionale (BiC): YOLOv6 introduce un modulo BiC nel neck del rilevatore, migliorando i segnali di localizzazione e offrendo incrementi delle prestazioni con un degrado trascurabile della velocità.
  • Strategia di addestramento assistito dagli anchor (AAT): questo modello propone AAT per sfruttare i vantaggi dei paradigmi basato su anchor e anchor-free senza compromettere l'efficienza dell'inferenza.
  • Design migliorato di backbone e neck: approfondendo YOLOv6 con l'inclusione di un'ulteriore fase nel backbone e nel neck, questo modello ha raggiunto prestazioni elevate sul dataset COCO con 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 YOLOv6 più piccoli, migliorando il ramo di regressione ausiliario durante l'addestramento e rimuovendolo durante l'inferenza per evitare un calo significativo della velocità.

Metriche delle prestazioni#

YOLOv6 offre diversi modelli pretrained con scale differenti:

  • YOLOv6-N: 37.5% AP sul COCO val2017 a 1187 FPS con una 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: accuratezza all'avanguardia in tempo reale.

YOLOv6 offre 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 di YOLOv6. Per la documentazione completa su queste e altre modalità, consulta le pagine della documentazione Predict, Train, Val ed Export.

Esempio

I file *.yaml di YOLOv6 possono essere passati alla classe YOLO() per creare 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 il rilevamento degli oggetti ad alte prestazioni. Questi modelli soddisfano esigenze computazionali e requisiti di accuratezza diversi, rendendoli versatili per un'ampia varietà di applicazioni.

ModelloNomi dei fileAttivitàAddestramentoConvalidaInferenzaEsportazione
YOLOv6-Nyolov6n.yamlRilevamento di oggetti
YOLOv6-Syolov6s.yamlRilevamento di oggetti
YOLOv6-Myolov6m.yamlRilevamento di oggetti
YOLOv6-Lyolov6l.yamlRilevamento di oggetti
YOLOv6-Xyolov6x.yamlRilevamento di oggetti

Questa tabella offre una panoramica dettagliata delle varianti del modello YOLOv6, evidenziandone le capacità nelle attività di rilevamento degli oggetti e la compatibilità con diverse modalità operative, come Inference, Validation, Training ed Export. Questo supporto completo garantisce che tu possa sfruttare appieno le capacità dei modelli YOLOv6 in un'ampia gamma di scenari di rilevamento degli oggetti.

Citazioni e ringraziamenti#

Desideriamo riconoscere il contributo significativo degli autori nel campo del rilevamento degli oggetti in tempo reale:

Citazione
@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 è disponibile su arXiv. Gli autori hanno reso il loro lavoro pubblico e il codice sorgente è accessibile su GitHub. Apprezziamo i loro sforzi nel far progredire il settore e nel rendere il loro lavoro accessibile alla comunità più ampia.

FAQ#

  • Meituan YOLOv6, rilasciato nel 2022, è un rilevatore di oggetti che bilancia velocità e accuratezza, progettato per le applicazioni in tempo reale. Presenta miglioramenti architetturali significativi, come il modulo di concatenazione bidirezionale (BiC) e una strategia di addestramento assistito dagli anchor (AAT). Queste innovazioni offrono notevoli incrementi delle prestazioni con un degrado minimo della velocità, rendendo YOLOv6 una scelta competitiva per le attività di rilevamento degli oggetti.

  • Il modulo di concatenazione bidirezionale (BiC) di YOLOv6 migliora i segnali di localizzazione nel neck 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 gli oggetti con accuratezza. Per maggiori dettagli sulle funzionalità di YOLOv6, consulta la sezione Funzionalità principali.

  • Puoi addestrare un modello YOLOv6 usando 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)

    Per ulteriori informazioni, visita la pagina Train.

  • YOLOv6 offre diverse versioni, ciascuna ottimizzata per requisiti di prestazioni differenti:

    • 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 negli scenari in tempo reale

    Questi modelli vengono valutati sul dataset COCO usando una GPU NVIDIA T4. Per ulteriori informazioni sulle metriche delle prestazioni, consulta la sezione Metriche delle prestazioni.

  • L'addestramento assistito dagli anchor (AAT) in YOLOv6 combina elementi degli 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 delle bounding box, rendendo YOLOv6 efficace in diverse attività di rilevamento degli oggetti.

  • YOLOv6 supporta diverse modalità operative, tra cui Inference, Validation, Training ed Export. Questa flessibilità consente di sfruttare appieno le capacità del modello in scenari diversi. Consulta la sezione Attività e modalità supportate per una panoramica dettagliata di ciascuna modalità.

Commenti