YOLOv4: rilevamento preciso e ad alta velocità degli oggetti
Benvenuti nella pagina di documentazione di Ultralytics per YOLOv4, un rilevatore di oggetti in tempo reale all'avanguardia lanciato nel 2020 da Alexey Bochkovskiy all'indirizzo https://github.com/AlexeyAB/darknet. YOLOv4 è stato progettato per offrire un equilibrio ottimale tra velocità e precisione, rendendolo una scelta eccellente per molte applicazioni.
Diagramma dell'architettura di YOLOv4. Mostra l'intricato design della rete di YOLOv4, compresi i componenti della spina dorsale, del collo e della testa e i loro strati interconnessi per un rilevamento ottimale degli oggetti in tempo reale.
Introduzione
YOLOv4 sta per You Only Look Once versione 4. Si tratta di un modello di rilevamento degli oggetti in tempo reale sviluppato per risolvere i limiti delle precedenti versioni di YOLO , come YOLOv3 e altri modelli di rilevamento degli oggetti. 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 un GPU convenzionale, pur richiedendo un solo GPU per l'addestramento.
Architettura
YOLOv4 si avvale di diverse caratteristiche innovative che lavorano insieme per ottimizzare le sue prestazioni. Tra queste vi sono le connessioni ponderate-risiduali (WRC), le connessioni parziali a stadi incrociati (CSP), la normalizzazione mini-batch incrociata (CmBN), l'addestramento auto-avversario (SAT), la disattivazione, l'aumento dei dati a mosaico, la regolarizzazione DropBlock e la perdita CIoU. Queste caratteristiche vengono combinate per ottenere risultati all'avanguardia.
Un tipico rilevatore di oggetti è composto da diverse parti, tra cui l'ingresso, la spina dorsale, il collo e la testa. Il backbone di YOLOv4 è pre-addestrato su ImageNet e viene utilizzato per prevedere le classi e i riquadri di delimitazione degli oggetti. Il backbone può provenire da diversi modelli, tra cui VGG, ResNet, ResNeXt o DenseNet. La parte del collo del rilevatore è utilizzata per raccogliere le mappe di caratteristiche da diversi stadi e di solito include diversi percorsi bottom-up e diversi percorsi top-down. La parte della testa è quella che viene utilizzata per effettuare i rilevamenti e le classificazioni finali degli oggetti.
Borsa degli omaggi
YOLOv4 utilizza anche metodi noti come "bag of freebies", ovvero tecniche che migliorano l'accuratezza del modello durante l'addestramento senza aumentare il costo dell'inferenza. L'aumento dei dati è una tecnica di bag of freebies comunemente utilizzata nel rilevamento degli oggetti, che aumenta la variabilità delle immagini in ingresso per migliorare la robustezza del modello. Alcuni esempi di aumento dei dati sono le distorsioni fotometriche (regolazione della luminosità, del contrasto, della tonalità, della saturazione e del rumore di un'immagine) e le distorsioni geometriche (aggiunta di scalature, ritagli, capovolgimenti e rotazioni casuali). Queste tecniche aiutano il modello a generalizzarsi meglio a diversi tipi di immagini.
Caratteristiche e prestazioni
YOLOv4 è stato progettato per ottenere velocità e precisione ottimali nel rilevamento degli oggetti. L'architettura di YOLOv4 comprende CSPDarknet53 come spina dorsale, PANet come collo e YOLOv3 come testa di rilevamento. Questo design consente a YOLOv4 di eseguire il rilevamento degli oggetti a una velocità impressionante, rendendolo adatto alle applicazioni in tempo reale. YOLOv4 eccelle anche in termini di precisione, ottenendo risultati all'avanguardia nei benchmark di rilevamento degli oggetti.
Esempi di utilizzo
Al momento in cui scriviamo, Ultralytics non supporta attualmente i modelli YOLOv4. Pertanto, 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 passi tipici da compiere per utilizzare YOLOv4:
-
Visitate il repository GitHub di YOLOv4: https://github.com/AlexeyAB/darknet.
-
Seguire le istruzioni fornite nel file README per l'installazione. In genere si tratta di clonare il repository, installare le dipendenze necessarie e impostare le variabili d'ambiente necessarie.
-
Una volta completata l'installazione, è possibile addestrare e utilizzare il modello secondo le istruzioni d'uso fornite nel repository. In genere si tratta di preparare il set di dati, configurare i parametri del modello, addestrare il modello e quindi utilizzare il modello addestrato per eseguire il rilevamento degli oggetti.
Si noti che i passaggi specifici possono variare a seconda del caso d'uso specifico e dello stato attuale del repository YOLOv4. Pertanto, si raccomanda vivamente di fare riferimento direttamente alle istruzioni fornite nel repository GitHub di YOLOv4.
Siamo spiacenti per gli inconvenienti che ciò può 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 rilevamento degli oggetti potente ed efficiente che raggiunge un equilibrio tra velocità e precisione. L'uso di caratteristiche uniche e di tecniche di "bag of freebies" durante l'addestramento gli consente di ottenere prestazioni eccellenti nelle attività di rilevamento degli oggetti in tempo reale. YOLOv4 può essere addestrato e utilizzato da chiunque abbia un GPU convenzionale, rendendolo accessibile e pratico per un'ampia gamma di applicazioni.
Citazioni e ringraziamenti
Desideriamo ringraziare gli autori di YOLOv4 per il loro significativo contributo nel campo del rilevamento di oggetti in tempo reale:
Il documento originale di YOLOv4 è disponibile su arXiv. Gli autori hanno reso pubblico il loro lavoro e il codice base è accessibile su GitHub. Apprezziamo i loro sforzi per far progredire il campo e rendere il loro lavoro accessibile a una comunità più ampia.
FAQ
Che cos'è YOLOv4 e perché dovrei usarlo per il rilevamento degli oggetti?
YOLOv4, acronimo di "You Only Look Once version 4", è un modello di rilevamento degli oggetti in tempo reale all'avanguardia, sviluppato da Alexey Bochkovskiy nel 2020. Raggiunge un equilibrio ottimale tra velocità e precisione, che lo rende molto adatto alle 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 siete alla ricerca di un modello ad alte prestazioni che funzioni in modo efficiente su GPU convenzionali, YOLOv4 è una scelta eccellente.
In che modo l'architettura di YOLOv4 migliora le sue prestazioni?
L'architettura di YOLOv4 comprende diversi componenti chiave: la spina dorsale, il collo e la testa. La spina dorsale, che può essere costituita da modelli come VGG, ResNet o CSPDarknet53 , è pre-addestrata per prevedere le classi e le bounding box. Il collo, che utilizza PANet, collega le mappe di caratteristiche provenienti da diversi stadi per un'estrazione completa dei dati. Infine, la testa, che utilizza le configurazioni di YOLOv3, effettua le rilevazioni finali degli oggetti. YOLOv4 impiega anche tecniche di "bag of freebies" come l'aumento dei dati a mosaico e la regolarizzazione DropBlock, ottimizzando ulteriormente la velocità e la precisione.
Cosa sono i "sacchetti di omaggi" nel contesto di YOLOv4?
Il termine "bag of freebies" si riferisce a metodi che migliorano l'accuratezza dell'addestramento di YOLOv4 senza aumentare il costo dell'inferenza. Queste tecniche includono varie forme di aumento dei dati, come le distorsioni fotometriche (regolazione della luminosità, del contrasto, ecc.) e le distorsioni geometriche (scalatura, ritaglio, capovolgimento, rotazione). Aumentando la variabilità delle immagini in ingresso, questi incrementi aiutano YOLOv4 a generalizzarsi meglio a diversi tipi di immagini, migliorando così la sua robustezza e precisione senza compromettere le sue prestazioni in tempo reale.
Perché YOLOv4 è considerato adatto al rilevamento di oggetti in tempo reale su GPU convenzionali?
YOLOv4 è stato progettato per ottimizzare sia la velocità che la precisione, rendendolo ideale per le attività di rilevamento di oggetti in tempo reale che richiedono prestazioni rapide e affidabili. Funziona in modo efficiente su GPU convenzionali, necessitando di una sola per l'addestramento e l'inferenza. Ciò lo rende accessibile e pratico per diverse applicazioni, dai sistemi di raccomandazione alla gestione autonoma dei processi, riducendo così la necessità di configurazioni hardware estese e rendendolo una soluzione economica per il rilevamento di oggetti in tempo reale.
Come posso iniziare a utilizzare YOLOv4 se Ultralytics non lo supporta attualmente?
Per iniziare a utilizzare YOLOv4, è necessario visitare il repository ufficiale YOLOv4 su GitHub. Seguire 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, è possibile addestrare il modello preparando il set di dati, configurando i parametri del modello e seguendo le istruzioni d'uso fornite. Poiché Ultralytics non supporta attualmente YOLOv4, si raccomanda di fare riferimento direttamente a YOLOv4 GitHub per ottenere indicazioni più aggiornate e dettagliate.