Ultralytics YOLO27:
Get Started

YOLOv4: rilevamento degli oggetti rapido e preciso#

Benvenuto nella pagina della documentazione Ultralytics dedicata a 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 accuratezza, rivelandosi un'ottima scelta per molte applicazioni.

Diagramma dell'architettura di YOLOv4 Diagramma dell'architettura di YOLOv4. Illustra la complessa struttura di rete di YOLOv4, inclusi i componenti backbone, neck e head e i relativi livelli interconnessi, per un rilevamento degli oggetti ottimale in tempo reale.

Introduzione#

YOLOv4 è l'acronimo di You Only Look Once versione 4. È un modello di rilevamento degli oggetti in tempo reale, sviluppato per superare i limiti delle versioni precedenti di YOLO, come YOLOv3, e di 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'intervento umano. Il suo funzionamento su normali unità di elaborazione grafica (GPUs) ne consente l'utilizzo su larga scala a costi accessibili; inoltre, è progettato per operare in tempo reale su una GPU standard e richiede una sola GPU per l'addestramento.

Architettura#

YOLOv4 sfrutta diverse funzionalità innovative che lavorano insieme per ottimizzarne le prestazioni. Tra queste figurano Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic data augmentation, regolarizzazione DropBlock e loss CIoU. Queste funzionalità si combinano per ottenere risultati all'avanguardia.

Un tipico rilevatore di oggetti è composto da diverse parti, tra cui l'input, il backbone, il neck e la head. Il backbone di YOLOv4 è preaddestrato su ImageNet e viene usato per prevedere le classi e i riquadri di delimitazione degli oggetti. Il backbone può derivare da diversi modelli, tra cui VGG, ResNet, ResNeXt o DenseNet. Il neck del rilevatore raccoglie le mappe delle caratteristiche da fasi diverse e di solito include diversi percorsi dal basso verso l'alto e dall'alto verso il basso. La head serve a eseguire il rilevamento e la classificazione finali degli oggetti.

Bag of Freebies#

YOLOv4 utilizza anche metodi noti come "bag of freebies", tecniche che migliorano l'accuratezza del modello durante l'addestramento senza aumentare il costo dell'inferenza. La data augmentation è una tecnica comune della bag of freebies usata nel rilevamento degli oggetti, che aumenta la variabilità delle immagini di input per migliorare la robustezza del modello. Alcuni esempi di data augmentation sono le distorsioni fotometriche (modifica di luminosità, contrasto, tonalità, saturazione e rumore di un'immagine) e le distorsioni geometriche (applicazione di ridimensionamenti, ritagli, ribaltamenti e rotazioni casuali). Queste tecniche aiutano il modello a generalizzare meglio su immagini di tipo diverso.

Caratteristiche e prestazioni#

YOLOv4 è progettato per ottimizzare velocità e accuratezza nel rilevamento degli oggetti. La sua architettura include CSPDarknet53 come backbone, PANet come neck e YOLOv3 come testa di rilevamento. Questo design consente a YOLOv4 di rilevare oggetti a velocità impressionante, rendendolo adatto alle applicazioni in tempo reale. YOLOv4 eccelle anche in accuratezza e raggiunge risultati all'avanguardia nei benchmark di rilevamento degli oggetti, come COCO.

Rispetto ad altri modelli della famiglia YOLO, come YOLOv5 e YOLOv7, YOLOv4 mantiene una posizione di rilievo nell'equilibrio tra velocità e accuratezza. Sebbene i modelli più recenti possano offrire determinati vantaggi, le innovazioni architetturali di YOLOv4 continuano a renderlo rilevante per molte applicazioni che richiedono prestazioni in tempo reale.

Esempi d'uso#

YOLOv4 è un modello basato su Darknet e non è supportato nativamente dal pacchetto Python di Ultralytics: non sono stati pubblicati pesi preaddestrati yolov4.pt su ultralytics/assets e non sono disponibili file YAML ultralytics/cfg/models/v4/. Questa pagina è conservata come riferimento architetturale. Se vuoi eseguire YOLOv4, consulta direttamente il repository GitHub di YOLOv4 per le istruzioni di installazione e utilizzo.

Ecco una breve panoramica dei passaggi tipici per usare YOLOv4:

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

  2. Segui le istruzioni di installazione fornite nel file README. Di solito, dovrai clonare il repository, installare le dipendenze necessarie e configurare le eventuali variabili d'ambiente.

  3. Una volta completata l'installazione, puoi addestrare e usare il modello seguendo le istruzioni d'uso fornite nel repository. In genere, dovrai preparare il dataset, configurare i parametri del modello, addestrarlo e infine usarlo per rilevare gli oggetti.

Tieni presente che i passaggi specifici possono variare in base al tuo caso d'uso e allo stato attuale del repository YOLOv4. Ti consigliamo quindi vivamente di consultare direttamente le istruzioni fornite nel repository GitHub di YOLOv4.

Per addestrare ed eseguire l'inferenza nel framework Ultralytics, consulta YOLO11 o YOLO26.

Conclusione#

YOLOv4 è un modello potente ed efficiente per il rilevamento degli oggetti, che bilancia velocità e accuratezza. L'impiego di funzionalità esclusive e delle tecniche bag of freebies durante l'addestramento gli consente di eccellere nelle attività di rilevamento degli oggetti in tempo reale. Chiunque disponga di una GPU standard può addestrare e usare YOLOv4, che è quindi accessibile e pratico per un'ampia gamma di applicazioni, tra cui i sistemi di sorveglianza, i veicoli autonomi e l'automazione industriale.

Per chi desidera implementare il rilevamento degli oggetti nei propri progetti, YOLOv4 resta un valido candidato, soprattutto quando le prestazioni in tempo reale sono prioritarie. Sebbene Ultralytics si concentri attualmente sul supporto di versioni YOLO più recenti, come YOLO11 e YOLO26, le innovazioni architetturali introdotte in YOLOv4 hanno influenzato lo sviluppo di questi modelli successivi.

Citazioni e ringraziamenti#

Desideriamo ringraziare gli autori di YOLOv4 per il loro importante contributo al campo del rilevamento degli oggetti in tempo reale:

Citazione
@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}
}

L'articolo originale su YOLOv4 è disponibile su arXiv. Gli autori hanno reso pubblico il loro lavoro e il codice sorgente è disponibile su GitHub. Apprezziamo il loro impegno nel far progredire il settore e nel rendere il loro lavoro accessibile alla comunità più ampia.

Domande frequenti#

  • YOLOv4, acronimo di "You Only Look Once versione 4", è un modello all'avanguardia per il rilevamento degli oggetti in tempo reale, sviluppato da Alexey Bochkovskiy nel 2020. Offre un equilibrio ottimale tra velocità e accuratezza, che lo rende particolarmente adatto alle applicazioni in tempo reale. L'architettura di YOLOv4 integra diverse funzionalità innovative, tra cui Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) e Self-adversarial-training (SAT), per ottenere risultati all'avanguardia. Se cerchi un modello ad alte prestazioni che funzioni in modo efficiente sulle GPU standard, YOLOv4 è un'ottima scelta.

  • L'architettura di YOLOv4 include diversi componenti chiave: il backbone, il neck e la head. Il backbone, che può basarsi su modelli come VGG, ResNet o CSPDarknet53, è preaddestrato per prevedere classi e riquadri di delimitazione. Il neck, che utilizza PANet, collega le mappe delle caratteristiche provenienti da fasi diverse per estrarre i dati in modo completo. Infine, la head, che utilizza configurazioni di YOLOv3, esegue il rilevamento finale degli oggetti. YOLOv4 impiega anche tecniche bag of freebies, come la data augmentation Mosaic e la regolarizzazione DropBlock, ottimizzando ulteriormente velocità e accuratezza.

  • "Bag of freebies" indica metodi che migliorano l'accuratezza di YOLOv4 durante l'addestramento senza aumentare il costo dell'inferenza. Queste tecniche includono varie forme di data augmentation, come le distorsioni fotometriche (modifica di luminosità, contrasto ecc.) e quelle geometriche (ridimensionamento, ritaglio, ribaltamento e rotazione). Aumentando la variabilità delle immagini di input, queste tecniche di augmentation aiutano YOLOv4 a generalizzare meglio su immagini di tipo diverso e, di conseguenza, ne migliorano la robustezza e l'accuratezza senza compromettere le prestazioni in tempo reale.

  • YOLOv4 è progettato per ottimizzare velocità e accuratezza ed è quindi ideale per le attività di rilevamento degli oggetti in tempo reale che richiedono prestazioni rapide e affidabili. Funziona in modo efficiente sulle GPU standard e ne basta una sola per l'addestramento e l'inferenza. Questo lo rende accessibile e pratico per diverse applicazioni, dai sistemi di raccomandazione alla gestione autonoma dei processi, riducendo così la necessità di configurazioni hardware complesse e offrendo una soluzione conveniente per il rilevamento degli oggetti in tempo reale.

  • Per iniziare a usare YOLOv4, visita il repository GitHub ufficiale di YOLOv4. Segui le istruzioni di installazione nel file README, che in genere includono la clonazione del repository, l'installazione delle dipendenze e la configurazione delle variabili d'ambiente. Una volta completata l'installazione, puoi addestrare il modello preparando il dataset, configurando i parametri del modello e seguendo le istruzioni d'uso fornite. Poiché al momento Ultralytics non supporta YOLOv4, ti consigliamo di consultare direttamente GitHub di YOLOv4 per indicazioni dettagliate e aggiornate.

Commenti