Link to this sectionYOLOv4: Rilevamento di oggetti preciso e ad alta velocità#
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 fornire l'equilibrio ottimale tra velocità e precisione, rendendolo una scelta eccellente per molte applicazioni.
Diagramma dell'architettura di YOLOv4. Mostra 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.
Link to this sectionIntroduzione#
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 è applicabile non solo per i sistemi di raccomandazione ma anche per la gestione dei processi standalone e la riduzione dell'input umano. Il suo funzionamento su convenzionali graphics processing units (GPUs) consente un utilizzo di massa a un prezzo accessibile ed è progettato per funzionare in tempo reale su una GPU convenzionale, richiedendo solo una di queste per l'addestramento.
Link to this sectionArchitettura#
YOLOv4 utilizza diverse funzionalità 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), attivazione Mish, data augmentation Mosaic, regularization DropBlock 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 degli oggetti. Il backbone può provenire da diversi modelli, inclusi VGG, ResNet, ResNeXt o DenseNet. La parte neck del rilevatore viene utilizzata per raccogliere feature maps da diversi stadi e solitamente include diversi percorsi bottom-up e top-down. La parte head è quella utilizzata per effettuare le rilevazioni e le classificazioni finali degli oggetti.
Link to this sectionBag 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 verso diversi tipi di immagini.
Link to this sectionCaratteristiche e prestazioni#
YOLOv4 è progettato per una velocità e un'accuratezza 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 ad applicazioni in tempo reale. YOLOv4 eccelle anche nell'accuratezza, ottenendo risultati all'avanguardia nei benchmark di rilevamento di oggetti come COCO.
Se confrontato con altri modelli della famiglia YOLO, come YOLOv5 e YOLOv7, YOLOv4 mantiene una posizione solida nell'equilibrio tra velocità e accuratezza. Sebbene 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.
Link to this sectionEsempi 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 all'esecuzione di 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 di eventuali variabili d'ambiente richieste.
-
Una volta completata l'installazione, puoi addestrare e utilizzare il modello secondo le istruzioni d'uso fornite nel repository. Questo solitamente 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 degli oggetti.
Ti preghiamo di notare che i passaggi specifici possono variare a seconda del tuo caso d'uso specifico e dello stato attuale del repository YOLOv4. Pertanto, è fortemente raccomandato 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.
Link to this sectionConclusione#
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 prestazioni eccellenti in attività di rilevamento 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 oggetti nei propri progetti, YOLOv4 rimane un forte contendente, specialmente quando la performance in tempo reale è una priorità. Sebbene Ultralytics si concentri attualmente sul supporto di versioni YOLO più recenti come YOLO11 e YOLO26, le innovazioni architettoniche introdotte in YOLOv4 hanno influenzato lo sviluppo di questi modelli successivi.
Link to this sectionCitazioni e riconoscimenti#
Vorremmo ringraziare gli autori di YOLOv4 per i loro significativi contributi nel campo del rilevamento 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 su YOLOv4 può essere trovato su arXiv. Gli autori hanno reso il loro lavoro pubblicamente disponibile e la codebase può essere consultata su GitHub. Apprezziamo i loro sforzi nel far avanzare il campo e nel rendere il loro lavoro accessibile alla comunità più ampia.
Link to this sectionFAQ#
Link to this sectionCos'è YOLOv4 e perché dovrei usarlo per object detection?#
YOLOv4, che sta per "You Only Look Once version 4", è un modello di rilevamento oggetti in tempo reale all'avanguardia sviluppato da Alexey Bochkovskiy nel 2020. Raggiunge un equilibrio ottimale tra velocità e accuracy, rendendolo altamente 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.
Link to this sectionCome fa l'architettura di YOLOv4 a migliorare le sue 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, utilizzando PANet, collega le feature maps da diversi stadi 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.
Link to this sectionCosa sono i "bag of freebies" nel contesto di YOLOv4?#
"Bag of freebies" si riferisce a metodi che migliorano la precisione 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 verso diversi tipi di immagini, migliorando così la sua robustezza e precisione senza compromettere le sue prestazioni in tempo reale.
Link to this sectionPerché YOLOv4 è considerato adatto al 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, avendone bisogno solo di una sia per l'addestramento che per l'inferenza. Questo lo rende accessibile e pratico per varie applicazioni che vanno dai recommendation systems alla gestione dei processi standalone, riducendo così la necessità di ampie configurazioni hardware e rendendolo una soluzione economicamente vantaggiosa per il rilevamento di oggetti in tempo reale.
Link to this sectionCome 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 d'uso fornite. Dato che Ultralytics non supporta attualmente YOLOv4, si raccomanda di fare riferimento direttamente al GitHub di YOLOv4 per la guida più aggiornata e dettagliata.