YOLOv4 : détection d’objets rapide et précise#
Bienvenue sur la page de documentation Ultralytics consacrée à 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.
Schéma de l’architecture YOLOv4. Présentation de la conception complexe du réseau YOLOv4, avec ses composants backbone, neck et head, ainsi que leurs couches interconnectées pour une détection d’objets en temps réel optimale.
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 conçu pour remédier aux limites 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 des réseaux neuronaux convolutifs (CNN), YOLOv4 s’applique non seulement aux systèmes de recommandation, mais aussi à la gestion autonome des processus et à la réduction des interventions humaines. Son fonctionnement sur des unités de traitement graphique (GPUs) conventionnelles permet une utilisation à grande échelle à un coût abordable. Il est conçu pour fonctionner en temps réel sur un GPU conventionnel et ne nécessite qu’un seul GPU pour l’entraînement.
Architecture#
YOLOv4 utilise plusieurs fonctionnalités innovantes qui contribuent à optimiser ses performances. Celles-ci comprennent les connexions résiduelles pondérées (WRC), les connexions partielles par étapes croisées (CSP), la normalisation par mini-lots croisés (CmBN), l’entraînement auto-adversarial (SAT), l’activation Mish, l’augmentation des données Mosaic, la régularisation DropBlock et la perte CIoU. Ces fonctionnalités sont combinées pour obtenir des résultats de pointe.
Un détecteur d’objets classique se compose de plusieurs éléments, dont l’entrée, le backbone, le neck et le head. Le backbone de YOLOv4 est préentraîné sur ImageNet et sert à 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. Le neck du détecteur sert à recueillir des cartes de caractéristiques à différentes étapes et comprend généralement plusieurs chemins ascendants et descendants. Le head sert à effectuer les détections et les classifications finales des objets.
Ensemble d’astuces gratuites#
YOLOv4 utilise également des méthodes appelées « ensemble d’astuces gratuites », 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 cet ensemble, utilisée en détection d’objets pour accroître la variabilité des images d’entrée et améliorer la robustesse du modèle. L’augmentation des données comprend notamment les distorsions photométriques (ajustement de la luminosité, du contraste, de la teinte, de la saturation et du bruit d’une image) et géométriques (mise à l’échelle, recadrage, retournement et rotation aléatoires). Ces techniques aident le modèle à mieux généraliser à différents types d’images.
Fonctionnalités et performances#
YOLOv4 est conçu pour optimiser la vitesse et la précision de la détection d’objets. Son architecture comprend CSPDarknet53 comme backbone, PANet comme neck et YOLOv3 comme tête de détection. Cette conception permet à YOLOv4 de détecter les objets à une vitesse impressionnante, ce qui le rend adapté aux applications en temps réel. YOLOv4 se distingue également par sa précision et obtient des résultats de pointe dans les benchmarks de détection d’objets, comme COCO.
Comparé à d’autres modèles de la famille YOLO, tels que YOLOv5 et YOLOv7, YOLOv4 conserve une position solide en matière d’é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#
YOLOv4 est un modèle basé sur Darknet et n’est pas pris en charge nativement par le package Python Ultralytics : aucun poids préentraîné yolov4.pt n’est publié sur ultralytics/assets, et aucun fichier YAML ultralytics/cfg/models/v4/ n’est disponible. Cette page est conservée comme référence architecturale. Si tu souhaites exécuter YOLOv4, consulte directement le dépôt GitHub YOLOv4 pour les instructions d’installation et d’utilisation.
Voici un bref aperçu des étapes habituelles pour utiliser YOLOv4 :
-
Rends-toi sur le dépôt GitHub YOLOv4 : https://github.com/AlexeyAB/darknet.
-
Suis les instructions d’installation fournies dans le fichier README. Il s’agit généralement de cloner le dépôt, d’installer les dépendances nécessaires et de configurer les variables d’environnement requises.
-
Une fois l’installation terminée, tu peux entraîner et utiliser le modèle en suivant les instructions d’utilisation fournies dans le dépôt. Cela implique généralement de préparer ton jeu de données, de configurer les paramètres du modèle, de l’entraîner, puis de l’utiliser pour effectuer la détection d’objets.
Note que les étapes précises peuvent varier selon ton cas d’utilisation et l’état actuel du dépôt YOLOv4. Il est donc fortement recommandé de consulter directement les instructions fournies dans le dépôt GitHub YOLOv4.
Pour l’entraînement et l’inférence dans le framework Ultralytics, consulte YOLO11 ou YOLO26.
Conclusion#
YOLOv4 est un modèle de détection d’objets puissant et efficace, qui équilibre vitesse et précision. Ses fonctionnalités uniques et ses techniques d’ensemble d’astuces gratuites utilisées pendant l’entraînement lui permettent d’excellentes performances pour les tâches de détection d’objets en temps réel. Tout le monde peut entraîner et utiliser YOLOv4 avec un GPU conventionnel, ce qui le rend accessible et pratique pour de nombreuses applications, notamment les systèmes de surveillance, les véhicules autonomes et l’automatisation industrielle.
Pour les personnes qui souhaitent intégrer la détection d’objets à leurs projets, YOLOv4 reste un candidat de choix, surtout lorsque les performances en temps réel sont prioritaires. Ultralytics se concentre actuellement sur la prise en charge des versions plus récentes de YOLO, comme YOLO11 et YOLO26, mais 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 importantes au 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}
}L’article original sur YOLOv4 est disponible sur arXiv. Les auteurs ont rendu leurs travaux publics, et le code source est accessible sur GitHub. Nous saluons leurs efforts pour faire progresser le domaine et rendre leurs travaux accessibles à l’ensemble de la communauté.
FAQ#
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 offre 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 fonctionnalités innovantes, comme les connexions résiduelles pondérées (WRC), les connexions partielles par étapes croisées (CSP) et l’entraînement auto-adversarial (SAT), entre autres, pour obtenir des résultats de pointe. Si tu recherches un modèle hautes performances qui fonctionne efficacement sur des GPU conventionnels, YOLOv4 est un excellent choix.
L’architecture de YOLOv4 comprend plusieurs éléments clés : le backbone, le neck et le head. Le backbone, qui peut être un modèle comme VGG, ResNet ou CSPDarknet53, est préentraîné pour prédire les classes et les boîtes englobantes. Le neck, qui utilise PANet, relie les cartes de caractéristiques de différentes étapes pour une extraction complète des données. Enfin, le head, qui utilise des configurations de YOLOv3, effectue les détections finales des objets. YOLOv4 utilise également des techniques d’« ensemble d’astuces gratuites », comme l’augmentation des données Mosaic et la régularisation DropBlock, afin d’optimiser encore davantage sa vitesse et sa précision.
L’« ensemble d’astuces gratuites » désigne des méthodes qui améliorent la précision de YOLOv4 à l’entraînement sans augmenter le coût de l’inférence. Ces techniques comprennent diverses formes d’augmentation des données, comme les distorsions photométriques (ajustement de la luminosité, du contraste, etc.) et les distorsions géométriques (mise à l’échelle, recadrage, retournement et rotation). En accroissant la variabilité des images d’entrée, ces augmentations aident YOLOv4 à mieux généraliser à différents types d’images, ce qui renforce sa robustesse et sa précision sans compromettre ses performances en temps réel.
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 exigeant des performances rapides et fiables. Il fonctionne efficacement sur des GPU conventionnels, et un seul GPU suffit pour l’entraînement et l’inférence. Cela le rend accessible et pratique pour diverses applications, des systèmes de recommandation à la gestion autonome des processus, tout en réduisant le besoin d’une infrastructure matérielle importante et en faisant de YOLOv4 une solution économique pour la détection d’objets en temps réel.
Pour commencer avec YOLOv4, rends-toi sur le dépôt GitHub officiel de YOLOv4. Suis les instructions d’installation du fichier README, qui consistent généralement à cloner le dépôt, à installer les dépendances et à configurer les variables d’environnement. Une fois l’installation terminée, tu peux entraîner le modèle en préparant ton jeu de données, en configurant les paramètres du modèle et en suivant les instructions d’utilisation fournies. Comme Ultralytics ne prend pas actuellement YOLOv4 en charge, il est recommandé de consulter directement le dépôt GitHub YOLOv4 pour obtenir les conseils les plus récents et les plus détaillés.