Ultralytics YOLO27 :

YOLOv4 : détection d’objets rapide et précise#

Bienvenue sur la page de documentation Ultralytics consacrée à YOLOv4, un détecteur d’objets de pointe en temps réel lancé en 2020 par Alexey Bochkovskiy à l’adresse 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 réseau complexe de YOLOv4, notamment des composants backbone, neck et head, ainsi que de 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 développé pour répondre aux limites des versions précédentes de YOLO, comme YOLOv3, ainsi que d’autres modèles de détection d’objets. Contrairement aux autres détecteurs d’objets fondés sur un réseau neuronal convolutif (CNN), YOLOv4 ne s’applique pas uniquement 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 classiques (GPUs) permet une utilisation à grande échelle à un coût abordable. Il est conçu pour fonctionner en temps réel sur un GPU classique tout en ne nécessitant qu’un seul GPU pour l’entraînement.

Architecture#

YOLOv4 utilise plusieurs fonctionnalités innovantes qui agissent conjointement pour optimiser ses performances. Il s’agit notamment des connexions résiduelles pondérées (WRC), des connexions partielles inter-étages (CSP), de la normalisation par mini-lots croisée (CmBN), de l’entraînement auto-adversarial (SAT), de l’activation Mish, de l’augmentation des données Mosaic, de la régularisation DropBlock et de la fonction de 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 parties, notamment 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 à collecter les cartes de caractéristiques issues de différentes étapes et comprend généralement plusieurs chemins ascendants et plusieurs chemins descendants. Le head sert à effectuer les détections et les classifications finales des objets.

Bag of Freebies#

YOLOv4 utilise également des méthodes appelées « bag of freebies », c’est-à-dire 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 bag of freebies utilisée en détection d’objets. Elle augmente la variabilité des images d’entrée afin d’améliorer la robustesse du modèle. Parmi les exemples d’augmentation des données figurent les distorsions photométriques (ajustement de la luminosité, du contraste, de la teinte, de la saturation et du bruit d’une image) et les distorsions géométriques (mise à l’échelle, recadrage, retournement et rotation 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 optimiser la vitesse et la précision de la détection d’objets. L’architecture de YOLOv4 comprend CSPDarknet53 comme backbone, PANet comme neck et YOLOv3 comme head 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 précision et obtient des résultats de pointe sur des benchmarks de détection d’objets comme COCO.

Comparé à d’autres modèles de la famille YOLO, comme 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 fondé 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 de YOLOv4 pour obtenir les instructions d’installation et d’utilisation.

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

  1. Visite le dépôt GitHub de YOLOv4 : https://github.com/AlexeyAB/darknet.

  2. Suis les instructions fournies dans le fichier README pour l’installation. Cela implique généralement de cloner le dépôt, d’installer les dépendances nécessaires et de configurer les variables d’environnement requises.

  3. Une fois l’installation terminée, tu peux entraîner et utiliser le modèle conformément aux 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, d’entraîner le modèle, 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 de 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 établit un équilibre entre vitesse et précision. L’utilisation de fonctionnalités uniques et de techniques de bag of freebies 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 classique, 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 celles et ceux qui souhaitent implémenter la détection d’objets dans leurs projets, YOLOv4 reste un choix sérieux, en particulier lorsque les performances en temps réel sont prioritaires. Bien qu’Ultralytics se concentre actuellement sur la prise en charge de versions plus récentes de YOLO, comme YOLO11 et YOLO26, les innovations architecturales introduites dans YOLOv4 ont influencé le développement de ces modèles ultérieurs.

Citations et remerciements#

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

Citation
@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 consacré à YOLOv4 est disponible sur arXiv. Les auteurs ont rendu leurs travaux accessibles au public, et le code source est disponible sur GitHub. Nous saluons leurs efforts pour faire progresser le domaine et rendre leurs travaux accessibles à une communauté plus large.

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 inter-étages (CSP) et l’entraînement auto-adversarial (SAT), entre autres, afin d’obtenir des résultats de pointe. Si tu recherches un modèle hautes performances qui fonctionne efficacement sur des GPUs classiques, YOLOv4 est un excellent choix.

  • L’architecture de YOLOv4 comprend plusieurs composants 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 issues de différentes étapes afin d’extraire les données de manière complète. Enfin, le head, qui utilise des configurations de YOLOv3, effectue les détections finales des objets. YOLOv4 utilise également des techniques de « bag of freebies », comme l’augmentation des données Mosaic et la régularisation DropBlock, afin d’optimiser davantage sa vitesse et sa précision.

  • « Bag of freebies » désigne 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 différentes 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 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.

  • 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 nécessitant des performances rapides et fiables. Il fonctionne efficacement sur des GPUs classiques et n’en nécessite 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 autonome des processus, tout en réduisant le besoin d’infrastructures matérielles complexes et en offrant une solution économique pour la détection d’objets en temps réel.

  • Pour commencer avec YOLOv4, consulte le dépôt GitHub officiel de YOLOv4. Suis 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 le modèle installé, tu peux l’entraîner 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 actuellement pas YOLOv4 en charge, il est recommandé de consulter directement le GitHub de YOLOv4 pour obtenir les conseils les plus récents et les plus détaillés.

Commentaires