YOLOv4: Object Detection ad Alta Velocità e Precisione
Benvenuti nella pagina di documentazione di Ultralytics per YOLOv4, un rilevatore di oggetti in tempo reale all'avanguardia lanciato nel 2020 da Alexey Bochkovskiy su https://github.com/AlexeyAB/darknet. YOLOv4 è progettato per fornire l'equilibrio ottimale tra velocità e precisione, rendendolo una scelta eccellente per molte applicazioni.
Diagramma dell'architettura di YOLOv4. Presentazione dell'intricato design di rete di YOLOv4, inclusi i componenti backbone, neck e head, e i loro livelli interconnessi per il rilevamento di oggetti in tempo reale ottimale.
Introduzione
YOLOv4 sta per You Only Look Once versione 4. È un modello di object detection in tempo reale sviluppato per affrontare i limiti delle versioni precedenti di YOLO come YOLOv3 e altri modelli di object detection. A differenza di altri rilevatori di oggetti basati su reti neurali convoluzionali (CNN), YOLOv4 non è applicabile solo ai sistemi di raccomandazione, ma anche alla gestione autonoma dei processi e alla riduzione dell'input umano. Il suo funzionamento su unità di elaborazione grafica (GPU) convenzionali consente un utilizzo di massa a un prezzo accessibile ed è progettato per funzionare in tempo reale su una GPU convenzionale richiedendone solo una per l'addestramento.
Architettura
YOLOv4 utilizza diverse caratteristiche innovative che lavorano insieme per ottimizzarne le prestazioni. Queste includono Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, DropBlock regularization e CIoU loss. Queste caratteristiche sono combinate per ottenere risultati all'avanguardia.
Un tipico rilevatore di oggetti è composto da diverse parti tra cui l'input, il backbone, il neck e l'head. Il backbone di YOLOv4 è pre-addestrato su ImageNet e viene utilizzato per prevedere le classi e i bounding box degli oggetti. Il backbone potrebbe provenire da diversi modelli tra cui VGG, ResNet, ResNeXt o DenseNet. La parte neck del rilevatore viene utilizzata per raccogliere le feature map da diverse fasi e di solito include diversi percorsi bottom-up e diversi percorsi top-down. La parte head è ciò che viene utilizzato per effettuare i rilevamenti e le classificazioni finali degli oggetti.
Bag of Freebies
YOLOv4 utilizza anche metodi noti come "bag of freebies", ovvero tecniche che migliorano la precisione del modello durante l'addestramento senza aumentare il costo dell'inferenza. L'aumento dei dati è una tecnica comune di bag of freebies utilizzata nell'object detection, che aumenta la variabilità delle immagini di input per migliorare la robustezza del modello. Alcuni esempi di aumento dei dati includono distorsioni fotometriche (regolazione di luminosità, contrasto, tonalità, saturazione e rumore di un'immagine) e distorsioni geometriche (aggiunta di ridimensionamento, ritaglio, capovolgimento e rotazione casuali). Queste tecniche aiutano il modello a generalizzare meglio a diversi tipi di immagini.
Caratteristiche e prestazioni
YOLOv4 è progettato per una velocità e una precisione ottimali nell'object detection. L'architettura di YOLOv4 include CSPDarknet53 come backbone, PANet come neck e YOLOv3 come detection head. Questo design consente a YOLOv4 di eseguire l'object detection a una velocità impressionante, rendendolo adatto per applicazioni in tempo reale. YOLOv4 eccelle anche in termini di precisione, ottenendo risultati all'avanguardia nei benchmark di object detection come COCO.
Rispetto ad altri modelli della famiglia YOLO, come YOLOv5 e YOLOv7, YOLOv4 mantiene una posizione di rilievo nell'equilibrio tra velocità e precisione. Sebbene i modelli più recenti possano offrire alcuni vantaggi, le innovazioni architetturali di YOLOv4 continuano a renderlo rilevante per molte applicazioni che richiedono prestazioni in tempo reale.
Esempi di utilizzo
Al momento in cui scriviamo, Ultralytics non supporta attualmente i modelli YOLOv4. Pertanto, tutti gli utenti interessati a utilizzare YOLOv4 dovranno fare riferimento direttamente al repository GitHub di YOLOv4 per le istruzioni di installazione e utilizzo.
Ecco una breve panoramica dei passaggi tipici che potresti intraprendere per utilizzare YOLOv4:
-
Visita il repository GitHub di YOLOv4: https://github.com/AlexeyAB/darknet.
-
Segui le istruzioni fornite nel file README per l'installazione. Ciò comporta in genere la clonazione del repository, l'installazione delle dipendenze necessarie e la configurazione di eventuali variabili d'ambiente necessarie.
-
Una volta completata l'installazione, puoi addestrare e utilizzare il modello secondo le istruzioni d'uso fornite nel repository. Ciò di solito comporta la preparazione del dataset, la configurazione dei parametri del modello, l'addestramento del modello e quindi l'utilizzo del modello addestrato per eseguire il rilevamento degli oggetti.
Si prega di notare che i passaggi specifici possono variare a seconda del caso d'uso specifico e dello stato attuale del repository YOLOv4. Pertanto, si consiglia vivamente di fare riferimento direttamente alle istruzioni fornite nel repository GitHub di YOLOv4.
Ci scusiamo per l'inconveniente che ciò potrebbe causare e ci impegneremo ad aggiornare questo documento con esempi di utilizzo per Ultralytics una volta implementato il supporto per YOLOv4.
Conclusione
YOLOv4 è un modello di object detection potente ed efficiente che raggiunge un equilibrio tra velocità e precisione. L'uso di caratteristiche uniche e tecniche di bag of freebies durante l'addestramento gli consente di ottenere prestazioni eccellenti nelle attività di object detection in tempo reale. YOLOv4 può essere addestrato e utilizzato da chiunque disponga di una GPU convenzionale, rendendolo accessibile e pratico per una vasta gamma di applicazioni, tra cui sistemi di sorveglianza, veicoli autonomi e automazione industriale.
Per coloro che desiderano implementare il rilevamento di oggetti nei loro progetti, YOLOv4 rimane un valido contendente, soprattutto quando la performance in tempo reale è una priorità. Mentre Ultralytics si concentra attualmente sul supporto delle versioni più recenti di YOLO come YOLOv8 e YOLO11, le innovazioni architetturali introdotte in YOLOv4 hanno influenzato lo sviluppo di questi modelli successivi.
Citazioni e riconoscimenti
Desideriamo ringraziare gli autori di YOLOv4 per i loro significativi contributi nel campo del rilevamento di oggetti in tempo reale:
@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
L'articolo originale su YOLOv4 è 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'è YOLOv4 e perché dovrei usarlo per la object detection?
YOLOv4, che sta per "You Only Look Once versione 4", è un modello di object detection in tempo reale all'avanguardia sviluppato da Alexey Bochkovskiy nel 2020. Raggiunge un equilibrio ottimale tra velocità e accuratezza, rendendolo altamente adatto per applicazioni in tempo reale. L'architettura di YOLOv4 incorpora diverse caratteristiche innovative come Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) e Self-adversarial-training (SAT), tra le altre, per ottenere risultati all'avanguardia. Se stai cercando un modello ad alte prestazioni che funzioni in modo efficiente su GPU convenzionali, YOLOv4 è una scelta eccellente.
In che modo l'architettura di YOLOv4 ne migliora le prestazioni?
L'architettura di YOLOv4 include diversi componenti chiave: la backbone, il neck e l'head. La backbone, che può essere costituita da modelli come VGG, ResNet o CSPDarknet53, è pre-addestrata per prevedere classi e bounding box. Il neck, che utilizza PANet, collega le feature map di diverse fasi per un'estrazione completa dei dati. Infine, l'head, che utilizza configurazioni di YOLOv3, effettua i rilevamenti finali degli oggetti. YOLOv4 impiega anche tecniche "bag of freebies" come l'aumento dei dati a mosaico e la regolarizzazione DropBlock, ottimizzando ulteriormente la sua velocità e precisione.
Cosa sono i "bag of freebies" nel contesto di YOLOv4?
"Bag of freebies" si riferisce a metodi che migliorano l'accuratezza di training di YOLOv4 senza aumentare il costo di inferenza. Queste tecniche includono varie forme di aumento dei dati come distorsioni fotometriche (regolazione di luminosità, contrasto, ecc.) e distorsioni geometriche (ridimensionamento, ritaglio, ribaltamento, rotazione). Aumentando la variabilità delle immagini di input, questi aumenti aiutano YOLOv4 a generalizzare meglio a diversi tipi di immagini, migliorando così la sua robustezza e accuratezza senza compromettere le sue prestazioni in tempo reale.
Perché YOLOv4 è considerato adatto per il rilevamento di oggetti in tempo reale su GPU convenzionali?
YOLOv4 è progettato per ottimizzare sia la velocità che l'accuratezza, rendendolo ideale per attività di object detection in tempo reale che richiedono prestazioni rapide e affidabili. Funziona in modo efficiente su GPU convenzionali, necessitandone solo una sia per l'addestramento che per l'inferenza. Questo lo rende accessibile e pratico per varie applicazioni, dai sistemi di raccomandazione alla gestione autonoma dei processi, riducendo così la necessità di configurazioni hardware estese e rendendolo una soluzione экономически efficace per l'object detection in tempo reale.
Come posso iniziare con YOLOv4 se Ultralytics attualmente non lo supporta?
Per iniziare con YOLOv4, dovresti visitare il repository GitHub ufficiale di YOLOv4. Segui le istruzioni di installazione fornite nel file README, che in genere includono la clonazione del repository, l'installazione delle dipendenze e l'impostazione delle variabili d'ambiente. Una volta installato, puoi addestrare il modello preparando il tuo dataset, configurando i parametri del modello e seguendo le istruzioni d'uso fornite. Poiché Ultralytics attualmente non supporta YOLOv4, si consiglia di fare riferimento direttamente al GitHub di YOLOv4 per la guida più aggiornata e dettagliata.