YOLOv4: Rilevamento di oggetti ad alta velocità e precisione
Benvenuto 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 offrire il miglior equilibrio tra velocità e precisione, rendendolo una scelta eccellente per molte applicazioni.
Diagramma dell'architettura di YOLOv4. Illustra l'intricato design di rete di YOLOv4, inclusi i componenti backbone, neck e head, e i loro livelli interconnessi per un rilevamento di oggetti in tempo reale ottimale.
Introduzione
YOLOv4 sta per You Only Look Once versione 4. È un modello di rilevamento di oggetti in tempo reale sviluppato per affrontare i limiti delle precedenti versioni di YOLO come YOLOv3 e altri modelli di rilevamento oggetti. A differenza di altri rilevatori di oggetti basati su convolutional neural network (CNN), YOLOv4 non è applicabile solo ai sistemi di raccomandazione, ma anche alla gestione di processi autonomi e alla riduzione dell'input umano. Il suo funzionamento su unità di elaborazione grafica (GPU) convenzionali consente un uso di massa a un prezzo accessibile ed è progettato per funzionare in tempo reale su una GPU convenzionale, richiedendo solo una di queste unità per l'addestramento.
Architettura
YOLOv4 utilizza diverse funzionalità innovative che lavorano insieme per ottimizzare le sue 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 perdita CIoU. Queste funzionalità 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 è preaddestrato su ImageNet e viene utilizzato per prevedere classi e bounding boxes di oggetti. Il backbone potrebbe provenire da diversi modelli, tra cui VGG, ResNet, ResNeXt o DenseNet. La parte neck del rilevatore viene utilizzata per raccogliere feature maps da diverse fasi e di solito include diversi percorsi bottom-up e diversi percorsi top-down. La parte head è quella utilizzata 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 l'accuracy del modello durante l'addestramento senza aumentare il costo dell'inferenza. La data augmentation è una tecnica comune di bag of freebies utilizzata nel object detection, che aumenta la variabilità delle immagini di input per migliorare la robustezza del modello. Alcuni esempi di data augmentation includono distorsioni fotometriche (regolazione di luminosità, contrasto, tonalità, saturazione e rumore di un'immagine) e distorsioni geometriche (aggiunta di ridimensionamento casuale, ritaglio, capovolgimento e rotazione). Queste tecniche aiutano il modello a generalizzare meglio su diversi tipi di immagini.
Caratteristiche e prestazioni
YOLOv4 è progettato per una velocità e una precisione ottimali nel rilevamento di oggetti. L'architettura di YOLOv4 include CSPDarknet53 come backbone, PANet come neck e YOLOv3 come detection head. Questo design consente a YOLOv4 di eseguire il rilevamento di oggetti a una velocità impressionante, rendendolo adatto per applicazioni in tempo reale. YOLOv4 eccelle anche in termini di precisione, ottenendo risultati all'avanguardia in benchmark di rilevamento oggetti come COCO.
Rispetto ad altri modelli della famiglia YOLO, come YOLOv5 e YOLOv7, YOLOv4 mantiene una solida posizione nell'equilibrio tra velocità e precisione. Sebbene i modelli più recenti possano offrire determinati vantaggi, le innovazioni architettoniche di YOLOv4 continuano a renderlo rilevante per molte applicazioni che richiedono prestazioni in tempo reale.
Esempi di utilizzo
YOLOv4 è un modello basato su Darknet e non è supportato nativamente dal pacchetto Python di Ultralytics: non ci sono pesi preaddestrati yolov4.pt pubblicati su ultralytics/assets e nessun YAML ultralytics/cfg/models/v4/. Questa pagina è mantenuta come riferimento architettonico. Gli utenti interessati a eseguire YOLOv4 dovrebbero 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. Questo solitamente comporta la clonazione del repository, l'installazione delle dipendenze necessarie e l'impostazione delle variabili d'ambiente richieste.
-
Una volta completata l'installazione, puoi addestrare e utilizzare il modello secondo le istruzioni di utilizzo fornite nel repository. Di solito, ciò comporta la preparazione del tuo dataset, la configurazione dei parametri del modello, l'addestramento del modello e quindi l'utilizzo del modello addestrato per eseguire il rilevamento di oggetti.
Tieni presente che i passaggi specifici possono variare a seconda del tuo 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.
Per l'addestramento e l'inferenza all'interno del framework Ultralytics, consulta YOLO11 o YOLO26.
Conclusione
YOLOv4 è un modello di rilevamento oggetti potente ed efficiente che trova un equilibrio tra velocità e precisione. Il suo uso di caratteristiche uniche e tecniche di bag of freebies durante l'addestramento gli consente di ottenere risultati eccellenti nelle attività di rilevamento di oggetti 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, inclusi surveillance systems, autonomous vehicles e industrial automation.
Per chi cerca di implementare il rilevamento di oggetti nei propri progetti, YOLOv4 rimane un forte contendente, specialmente quando le prestazioni in tempo reale sono una priorità. Sebbene Ultralytics si concentri attualmente sul supporto di versioni di YOLO più recenti come YOLO11 e YOLO26, le innovazioni architettoniche introdotte in YOLOv4 hanno influenzato lo sviluppo di questi modelli successivi.
Citazioni e ringraziamenti
Vorremmo 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}
}Il paper originale di YOLOv4 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 campo e nel rendere il loro lavoro accessibile alla comunità più ampia.
FAQ
Cos'è YOLOv4 e perché dovrei usarlo per il object detection?
YOLOv4, che sta per "You Only Look Once version 4", è un modello di rilevamento di oggetti in tempo reale all'avanguardia sviluppato da Alexey Bochkovskiy nel 2020. Raggiunge un equilibrio ottimale tra velocità e accuracy, rendendolo estremamente adatto per applicazioni in tempo reale. L'architettura di YOLOv4 incorpora diverse funzionalità 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: il backbone, il neck e l'head. Il backbone, che può essere costituito da modelli come VGG, ResNet o CSPDarknet53, è preaddestrato per prevedere classi e bounding box. Il neck, che utilizza PANet, collega feature maps da 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 di "bag of freebies" come la data augmentation mosaic 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 addestramento di YOLOv4 senza aumentare il costo dell'inferenza. Queste tecniche includono varie forme di data augmentation come distorsioni fotometriche (regolazione di luminosità, contrasto, ecc.) e distorsioni geometriche (ridimensionamento, ritaglio, capovolgimento, rotazione). Aumentando la variabilità delle immagini di input, queste aumentazioni aiutano YOLOv4 a generalizzare meglio su diversi tipi di immagini, migliorandone così la robustezza e l'accuratezza senza compromettere le 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 la precisione, rendendolo ideale per attività di rilevamento oggetti 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. Ciò lo rende accessibile e pratico per varie applicazioni, dai recommendation systems alla gestione autonoma dei processi, riducendo così la necessità di configurazioni hardware estese e rendendolo una soluzione conveniente per il rilevamento di oggetti in tempo reale.
Come posso iniziare con YOLOv4 se Ultralytics non lo supporta attualmente?
Per iniziare con YOLOv4, dovresti visitare il repository GitHub ufficiale di YOLOv4. Segui le istruzioni di installazione fornite nel file README, che solitamente 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 di utilizzo fornite. Poiché Ultralytics attualmente non supporta YOLOv4, si consiglia di fare riferimento direttamente al repository GitHub di YOLOv4 per la guida più aggiornata e dettagliata.