Passer au contenu

YOLOv4 : Détection d'objets haute vitesse et précise

Bienvenue sur la page de documentation Ultralytics pour YOLOv4, un détecteur d'objets en temps réel de pointe lancé en 2020 par Alexey Bochkovskiy sur https://github.com/AlexeyAB/darknet. YOLOv4 est conçu pour offrir un équilibre optimal entre vitesse et précision, ce qui en fait un excellent choix pour de nombreuses applications.

Diagramme de l'architecture de YOLOv4 Diagramme de l'architecture de YOLOv4. Présentation de la conception complexe du réseau de YOLOv4, y compris les composants backbone, neck et head, et leurs couches interconnectées pour une détection d'objets optimale en temps réel.

Introduction

YOLOv4 signifie You Only Look Once version 4. Il s'agit d'un modèle de détection d'objets en temps réel développé pour pallier les limitations des versions précédentes de YOLO comme YOLOv3 et d'autres modèles de détection d'objets. Contrairement aux autres détecteurs d'objets basés sur les réseaux neuronaux convolutifs (CNN), YOLOv4 n'est pas seulement applicable aux systèmes de recommandation, mais aussi à la gestion de processus autonome et à la réduction de la saisie humaine. Son fonctionnement sur les unités de traitement graphique (GPU) conventionnelles permet une utilisation massive à un prix abordable, et il est conçu pour fonctionner en temps réel sur un GPU conventionnel tout en ne nécessitant qu'un seul GPU de ce type pour l'entraînement.

Architecture

YOLOv4 utilise plusieurs caractéristiques innovantes qui fonctionnent ensemble pour optimiser ses performances. Il s'agit notamment des Weighted-Residual-Connections (WRC), des Cross-Stage-Partial-connections (CSP), de la Cross mini-Batch Normalization (CmBN), du Self-adversarial-training (SAT), de l'activation Mish, de l'augmentation des données Mosaic, de la régularisation DropBlock et de la perte CIoU. Ces caractéristiques sont combinées pour obtenir des résultats de pointe.

Un détecteur d'objets typique est composé de plusieurs parties, notamment l'entrée, le backbone, le neck et la tête. Le backbone de YOLOv4 est pré-entraîné sur ImageNet et est utilisé pour prédire les classes et les boîtes englobantes des objets. Le backbone peut provenir de plusieurs modèles, notamment VGG, ResNet, ResNeXt ou DenseNet. La partie neck du détecteur est utilisée pour collecter les cartes de caractéristiques des différentes étapes et comprend généralement plusieurs chemins ascendants et plusieurs chemins descendants. La partie tête est ce qui est utilisé pour effectuer les détections et classifications finales des objets.

Bag of Freebies

YOLOv4 utilise également des méthodes connues sous le nom de "sac de cadeaux gratuits", qui sont des techniques qui améliorent la précision du modèle pendant l'entraînement sans augmenter le coût de l'inférence. L'augmentation des données est une technique courante de sac de cadeaux gratuits utilisée dans la détection d'objets, qui augmente la variabilité des images d'entrée pour améliorer la robustesse du modèle. Parmi les exemples d'augmentation des données, citons les distorsions photométriques (réglage de la luminosité, du contraste, de la teinte, de la saturation et du bruit d'une image) et les distorsions géométriques (ajout d'une mise à l'échelle, d'un recadrage, d'une rotation et d'un retournement aléatoires). Ces techniques aident le modèle à mieux se généraliser à différents types d'images.

Fonctionnalités et performances

YOLOv4 est conçu pour une vitesse et une précision optimales dans la détection d'objets. L'architecture de YOLOv4 comprend CSPDarknet53 comme backbone, PANet comme neck et YOLOv3 comme tête de détection. Cette conception permet à YOLOv4 d'effectuer la détection d'objets à une vitesse impressionnante, ce qui le rend adapté aux applications en temps réel. YOLOv4 excelle également en termes de précision, atteignant des résultats de pointe dans les benchmarks de détection d'objets comme COCO.

Par rapport à d'autres modèles de la famille YOLO, tels que YOLOv5 et YOLOv7, YOLOv4 maintient une position forte dans l'équilibre entre vitesse et précision. Bien que les modèles plus récents puissent offrir certains avantages, les innovations architecturales de YOLOv4 continuent de le rendre pertinent pour de nombreuses applications nécessitant des performances en temps réel.

Exemples d'utilisation

Au moment de la rédaction de ce document, Ultralytics ne prend pas actuellement en charge les modèles YOLOv4. Par conséquent, tout utilisateur souhaitant utiliser YOLOv4 devra se référer directement au référentiel GitHub de YOLOv4 pour les instructions d'installation et d'utilisation.

Voici un bref aperçu des étapes typiques que vous pourriez suivre pour utiliser YOLOv4 :

  1. Consultez le référentiel GitHub de YOLOv4 : https://github.com/AlexeyAB/darknet.

  2. Suivez les instructions fournies dans le fichier README pour l'installation. Cela implique généralement de cloner le référentiel, d'installer les dépendances nécessaires et de configurer les variables d'environnement nécessaires.

  3. Une fois l'installation terminée, vous pouvez entraîner et utiliser le modèle conformément aux instructions d'utilisation fournies dans le référentiel. Cela implique généralement de préparer votre dataset, de configurer les paramètres du modèle, d'entraîner le modèle, puis d'utiliser le modèle entraîné pour effectuer la détection d'objets.

Veuillez noter que les étapes spécifiques peuvent varier en fonction de votre cas d'utilisation spécifique et de l'état actuel du référentiel YOLOv4. Par conséquent, il est fortement recommandé de se référer directement aux instructions fournies dans le référentiel GitHub de YOLOv4.

Nous regrettons tout inconvénient que cela pourrait causer et nous nous efforcerons de mettre à jour ce document avec des exemples d'utilisation pour Ultralytics une fois que la prise en charge de YOLOv4 sera implémentée.

Conclusion

YOLOv4 est un modèle de détection d'objets puissant et efficace qui établit un équilibre entre la vitesse et la précision. Son utilisation de caractéristiques uniques et de techniques de sac de cadeaux gratuits pendant l'entraînement lui permet d'exceller dans les tâches de détection d'objets en temps réel. YOLOv4 peut être entraîné et utilisé par toute personne disposant d'un GPU conventionnel, ce qui le rend accessible et pratique pour un large éventail d'applications, notamment les systèmes de surveillance, les véhicules autonomes et l'automatisation industrielle.

Pour ceux qui cherchent à implémenter la détection d'objets dans leurs projets, YOLOv4 reste un concurrent sérieux, surtout lorsque la performance en temps réel est une priorité. Bien qu'Ultralytics se concentre actuellement sur la prise en charge des versions plus récentes de YOLO comme YOLOv8 et YOLO11, les innovations architecturales introduites dans YOLOv4 ont influencé le développement de ces modèles ultérieurs.

Citations et remerciements

Nous tenons à remercier les auteurs de YOLOv4 pour leurs contributions significatives dans le domaine de la détection d'objets en temps réel :

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

Le document original de YOLOv4 est disponible sur arXiv. Les auteurs ont rendu leur travail public, et la base de code est accessible sur GitHub. Nous apprécions leurs efforts pour faire progresser le domaine et rendre leur travail accessible à la communauté au sens large.

FAQ

Qu'est-ce que YOLOv4 et pourquoi devrais-je l'utiliser pour la détection d'objets ?

YOLOv4, qui signifie "You Only Look Once version 4", est un modèle de détection d'objets en temps réel de pointe développé par Alexey Bochkovskiy en 2020. Il atteint un équilibre optimal entre vitesse et précision, ce qui le rend particulièrement adapté aux applications en temps réel. L'architecture de YOLOv4 intègre plusieurs caractéristiques innovantes telles que les Weighted-Residual-Connections (WRC), les Cross-Stage-Partial-connections (CSP) et le Self-adversarial-training (SAT), entre autres, pour obtenir des résultats de pointe. Si vous recherchez un modèle haute performance qui fonctionne efficacement sur les GPU conventionnels, YOLOv4 est un excellent choix.

Comment l'architecture de YOLOv4 améliore-t-elle ses performances ?

L'architecture de YOLOv4 comprend plusieurs composants clés : le backbone, le neck et la head. Le backbone, qui peut être des modèles tels que VGG, ResNet ou CSPDarknet53, est pré-entraîné pour prédire les classes et les boîtes englobantes. Le neck, utilisant PANet, connecte les feature maps de différentes étapes pour une extraction complète des données. Enfin, la head, qui utilise les configurations de YOLOv3, effectue les détections d'objets finales. YOLOv4 utilise également des techniques de "bag of freebies" telles que l'augmentation des données mosaïques et la régularisation DropBlock, optimisant ainsi sa vitesse et sa précision.

Que sont les "bag of freebies" dans le contexte de YOLOv4 ?

"Bag of freebies" fait référence à des méthodes qui améliorent la précision de l'entraînement de YOLOv4 sans augmenter le coût de l'inférence. Ces techniques comprennent diverses formes d'augmentation de données telles que les distorsions photométriques (ajustement de la luminosité, du contraste, etc.) et les distorsions géométriques (mise à l'échelle, recadrage, retournement, rotation). En augmentant la variabilité des images d'entrée, ces augmentations aident YOLOv4 à mieux se généraliser à différents types d'images, améliorant ainsi sa robustesse et sa précision sans compromettre ses performances en temps réel.

Pourquoi YOLOv4 est-il considéré comme adapté à la détection d'objets en temps réel sur les GPU conventionnels ?

YOLOv4 est conçu pour optimiser à la fois la vitesse et la précision, ce qui le rend idéal pour les tâches de détection d'objets en temps réel qui nécessitent des performances rapides et fiables. Il fonctionne efficacement sur les GPU conventionnels, n'en nécessitant qu'un seul pour l'entraînement et l'inférence. Cela le rend accessible et pratique pour diverses applications allant des systèmes de recommandation à la gestion de processus autonome, réduisant ainsi le besoin de configurations matérielles importantes et en faisant une solution rentable pour la détection d'objets en temps réel.

Comment puis-je commencer avec YOLOv4 si Ultralytics ne le prend pas actuellement en charge ?

Pour commencer avec YOLOv4, vous devriez visiter le dépôt GitHub officiel de YOLOv4. Suivez les instructions d'installation fournies dans le fichier README, qui comprennent généralement le clonage du dépôt, l'installation des dépendances et la configuration des variables d'environnement. Une fois installé, vous pouvez entraîner le modèle en préparant votre ensemble de données, en configurant les paramètres du modèle et en suivant les instructions d'utilisation fournies. Étant donné qu'Ultralytics ne prend pas actuellement en charge YOLOv4, il est recommandé de se référer directement au GitHub de YOLOv4 pour obtenir les conseils les plus récents et les plus détaillés.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 5 mois

Commentaires