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 una GPU convenzionale, mentre richiede solo una GPU per l'addestramento.

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'uso di caratteristiche uniche e di tecniche di "bag of freebies" durante l'addestramento, YOLOv4 è in grado di fornire prestazioni eccellenti nelle attività di rilevamento degli oggetti in tempo reale. YOLOv4 può essere addestrato e utilizzato da chiunque abbia una 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.



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

Commenti