Vai al contenuto

YOLOv4: Rilevamento preciso e ad alta velocità degli oggetti

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 è stato progettato per offrire un equilibrio ottimale tra velocità e precisione, il che lo rende una scelta eccellente per molte applicazioni.

Diagramma dell'architettura di YOLOv4 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 è l'acronimo di 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 è stato progettato per funzionare in tempo reale su un sito GPU convenzionale, mentre per l'addestramento è sufficiente un solo GPU .

Architettura

YOLOv4 si avvale di diverse caratteristiche innovative che lavorano insieme per ottimizzare le sue prestazioni. Tra queste ci sono 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 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. La struttura portante di YOLOv4 è pre-addestrata su ImageNet e viene utilizzata per prevedere le classi e le bounding box degli oggetti. La struttura portante può provenire da diversi modelli, tra cui VGG, ResNet, ResNeXt o DenseNet. La parte del collo del rilevatore viene utilizzata per raccogliere 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 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 che potresti compiere per utilizzare YOLOv4:

  1. Visita il repository GitHub di YOLOv4: https://github.com/AlexeyAB/darknet.

  2. Segui 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.

  3. Una volta completata l'installazione, puoi addestrare e utilizzare il modello secondo le istruzioni d'uso fornite nel repository. Di solito si tratta di preparare il set di dati, configurare i parametri del modello, addestrare il modello e infine utilizzare il modello addestrato per eseguire il rilevamento degli 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.

Ci rammarichiamo 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. Grazie all'utilizzo di caratteristiche uniche e di tecniche di formazione, YOLOv4 è in grado di fornire prestazioni eccellenti nelle attività di rilevamento di oggetti in tempo reale. YOLOv4 può essere addestrato e utilizzato da chiunque abbia un sito 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:

@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 documento originale di YOLOv4 è disponibile su arXiv. Gli autori hanno reso il loro lavoro disponibile al pubblico e la base di codice è accessibile su GitHub. Apprezziamo i loro sforzi per far progredire il campo e rendere il loro lavoro accessibile a una comunità più ampia.

DOMANDE FREQUENTI

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, rendendolo 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 stai cercando un modello ad alte prestazioni che funzioni in modo efficiente sulle GPU tradizionali, 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 di diverse fasi per un'estrazione completa dei dati. Infine, la testa, che utilizza le configurazioni di YOLOv3, effettua il rilevamento finale degli oggetti. YOLOv4 impiega anche tecniche di "bag of freebies" come l'aumento dei dati a mosaico e la regolarizzazione DropBlock, ottimizzando ulteriormente la sua velocità e precisione.

Cosa sono i "sacchetti di omaggi" nel contesto di YOLOv4?

La "borsa degli omaggi" si riferisce a metodi che migliorano l'accuratezza della formazione 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 accuratezza 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 e ne richiede solo una per l'addestramento e l'inferenza. Questo lo rende accessibile e pratico per diverse applicazioni che vanno 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?

Per iniziare a utilizzare YOLOv4, devi visitare il repository ufficiale di YOLOv4 su GitHub. 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 set di dati, configurando i parametri del modello e seguendo le istruzioni d'uso fornite. Poiché Ultralytics non supporta attualmente YOLOv4, si consiglia di fare riferimento direttamente a YOLOv4 GitHub per avere una guida più aggiornata e dettagliata.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (9), sergiuwaxmann (1)

Commenti