YOLO Vision 2026 :

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 l'équilibre optimal entre vitesse et précision, ce qui en fait un excellent choix pour de nombreuses applications.

Diagramme de l'architecture YOLOv4 Diagramme de l'architecture YOLOv4. Présentation de la conception complexe du réseau de YOLOv4, incluant les composants du backbone, du neck et du 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 développé pour répondre aux limitations des versions précédentes de YOLO telles que YOLOv3 et d'autres modèles de détection d'objets. Contrairement à d'autres détecteurs d'objets basés sur un réseau de neurones convolutifs (CNN), YOLOv4 est applicable non seulement aux systèmes de recommandation, mais aussi à la gestion de processus autonome et à la réduction des interventions humaines. Son fonctionnement sur des unités de traitement graphique (GPU) conventionnelles permet une utilisation de masse à 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 de ces GPU pour l'entraînement.

Architecture#

YOLOv4 utilise plusieurs fonctionnalités innovantes qui agissent ensemble pour optimiser ses performances. Celles-ci incluent les connexions résiduelles pondérées (Weighted-Residual-Connections ou WRC), les connexions partielles inter-étages (Cross-Stage-Partial-connections ou CSP), la normalisation par mini-lots croisés (Cross mini-Batch Normalization ou CmBN), l'entraînement auto-contradictoire (Self-adversarial-training ou SAT), l'activation Mish, l'augmentation de 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 typique se compose de plusieurs parties, incluant l'entrée, le backbone, le neck et le head. 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 provenant de différentes étapes et comprend généralement plusieurs chemins ascendants et descendants. La partie head est celle utilisée pour effectuer les détections d'objets et les classifications finales.

Bag of Freebies#

YOLOv4 utilise également des méthodes connues sous le nom de « bag of freebies » (boîte à cadeaux), qui sont des techniques améliorant la précision du modèle pendant l'entraînement sans augmenter le coût d'inférence. L'augmentation de données est une technique courante de type bag of freebies utilisée en détection d'objets, qui augmente la variabilité des images d'entrée pour améliorer la robustesse du modèle. Quelques exemples d'augmentation de données incluent 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 (ajout de mises à l'échelle aléatoires, de recadrages, de retours the face et de rotations). Ces techniques aident le modèle à mieux 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 head de détection. Cette conception permet à YOLOv4 d'effectuer une détection d'objets à une vitesse impressionnante, ce qui le rend adapté aux applications en temps réel. YOLOv4 excelle également en matière de précision, atteignant des résultats de pointe dans les benchmarks de détection d'objets tels que COCO.

Comparé à 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 des 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 paquet Python Ultralytics : il n'y a pas de poids pré-entraînés yolov4.pt publiés sur ultralytics/assets et pas de fichiers YAML ultralytics/cfg/models/v4/. Cette page est conservée en tant que référence architecturale. Les utilisateurs souhaitant exécuter YOLOv4 doivent se référer directement au dépôt GitHub de YOLOv4 pour les instructions d'installation et d'utilisation.

Voici un bref aperçu des étapes typiques que tu pourrais 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 toutes les variables d'environnement requises.

  3. Une fois l'installation terminée, tu peux entraîner et utiliser le modèle selon les instructions d'utilisation fournies dans le dépôt. Cela implique généralement de préparer ton 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 ton cas d'utilisation particulier et de l'état actuel du dépôt YOLOv4. Par conséquent, il est fortement recommandé de se référer directement aux instructions fournies dans le dépôt GitHub de YOLOv4.

Pour l'entraînement et l'inférence au sein du framework Ultralytics, consulte YOLO11 ou YOLO26.

Conclusion#

YOLOv4 est un modèle de détection d'objets puissant et efficace qui trouve un équilibre entre vitesse et précision. Son utilisation de fonctionnalités uniques et de techniques de type bag of freebies lors de 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 de taille, en particulier lorsque les performances en temps réel sont une priorité. Bien qu'Ultralytics se concentre actuellement sur la prise en charge de versions plus récentes de YOLO telles que 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 sur YOLOv4 peut être trouvé sur arXiv. Les auteurs ont rendu leur travail public, et la base de code est accessible sur GitHub. Nous saluons leurs efforts pour faire progresser le domaine et rendre leur travail accessible à 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 atteint un équilibre optimal entre vitesse et précision, ce qui le rend hautement adapté aux applications en temps réel. L'architecture de YOLOv4 intègre plusieurs fonctionnalités innovantes telles que les connexions résiduelles pondérées (Weighted-Residual-Connections ou WRC), les connexions partielles inter-étages (Cross-Stage-Partial-connections ou CSP) et l'entraînement auto-contradictoire (Self-adversarial-training ou SAT), entre autres, pour obtenir des résultats de pointe. Si tu recherches un modèle haute performance qui fonctionne efficacement sur des GPU conventionnels, 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 constitué de 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 cartes de caractéristiques de différentes étapes pour une extraction complète des données. Enfin, le head, qui utilise des configurations issues de YOLOv3, réalise les détections d'objets finales. YOLOv4 emploie également des techniques de type « bag of freebies » telles que l'augmentation de données mosaic et la régularisation DropBlock, optimisant ainsi davantage sa vitesse et sa précision.

  • « Bag of freebies » fait référence à des méthodes qui améliorent la précision d'entraînement de YOLOv4 sans augmenter le coût de l'inférence. Ces techniques incluent diverses formes d'augmentation de 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, rotation). En augmentant la variabilité des images d'entrée, ces augmentations aident YOLOv4 à mieux généraliser vers 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 qui nécessitent des performances rapides et fiables. Il fonctionne efficacement sur des 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 économique pour la détection d'objets en temps réel.

  • Pour bien débuter avec YOLOv4, tu dois visiter le dépôt GitHub officiel de YOLOv4. Suis les instructions d'installation fournies dans le fichier README, qui incluent généralement le clonage du dépôt, l'installation des dépendances et la configuration des variables d'environnement. Une fois installé, 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. É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.

Commentaires