You Only Look Once, plus connu sous l’acronyme YOLO, est un framework de détection d’objets en temps réel qui a transformé le domaine de la vision par ordinateur depuis son introduction en 2015.
Contrairement aux méthodes classiques de l’époque, comme R-CNN, qui nécessitaient de multiples analyses par image, YOLO ne “regarde” qu’une seule fois les pixels de chaque image pour prédire la présence et la position des objets, d’où son nom évocateur.
En quelques années, YOLO est devenu l’un des algorithmes de détection d’objets les plus populaires, plébiscité pour sa vitesse et son efficacité.
Dans cet article je vous propose de retracer l’histoire de YOLO, d’expliquer son fonctionnement, ainsi que ses applications pratiques.
L’histoire du framework YOLO
La première version de YOLO, YOLOv1, est développée par Joseph Redmond et son équipe. Elle est présentée pour la première fois en 2015, lors de la CVPR, une des plus grosses conférences annuelles de chercheurs en vision par ordinateur.
Les débuts du projet YOLO
Dans sa version originale, le papier de Redmond et al., propose une approche unifiée de la détection d’objets dans une image : une unique convolution traverse l’image complète pour prédire directement les bounding boxes et les classes d’objets, sans passer par une étape de proposition de régions comme le faisaient les algorithmes précédents.
Le gap de performance est très élevé entre YOLO et les méthodes qui le précédent. La précision (mAP) des prédictions double et le temps d’inférence est largement réduit. YOLOv1 permet de traiter en moyenne 45 images par seconde.
En terme de temps d’inférence, on avait même une version allégée de YOLOv1, nommée Fast YOLO, qui pouvait traiter 155 images par seconde en sacrifiant un peu de précision.
Concernant la précision, YOLOv1 est loin du niveau des algorithmes actuels, mais il constitue la première brique d’un framework qui deviendra incontournable quelques années plus tard.
L’étape YOLOv2
Fort de son succès, YOLOv2 (aussi appelé YOLO9000) voit le jour en 2016 avec des améliorations clés : normalisation par batch, meilleure résolution d’entrée, et anchor boxes pour mieux détecter des objets de tailles variées.
Entraîné sur des datasets mixtes, il peut reconnaître plus de 9000 classes. Sa publication en open source propulse l’essor d’une large communauté autour du projet.
L’arrivée de YOLOv3 en 2018
En 2018, YOLOv3 est présenté comme une amélioration incrémentale mais significative. L’une des évolutions majeures réside dans l’adoption d’un nouveau backbone, Darknet-53, qui remplace Darknet-19 utilisé dans YOLOv2.
Le backbone, c’est la partie du réseau chargée d’extraire les caractéristiques visuelles d’une image. En d’autres termes, c’est l’œil du modèle, celui qui transforme une image brute en informations exploitables pour localiser et identifier les objets. Darknet-53, plus profond et basé sur des connexions résiduelles (inspirées de ResNet), permet de capter des motifs plus complexes tout en restant rapide.
YOLOv3 introduit également la détection multi-échelle : les objets sont repérés à différents niveaux de résolution, ce qui améliore la reconnaissance d’objets très petits ou très grands dans la même image. Enfin, la fonction de perte (loss function) est revisitée pour mieux prendre en compte les erreurs de localisation et de classification, rendant le modèle plus stable et plus précis.
YOLOv3 est la dernière contribution directe de Joseph Redmon, qui annonce en 2020 se retirer de la recherche en vision, invoquant des préoccupations éthiques quant aux usages potentiels de la détection d’objets (surveillance, applications militaires, etc.).
À ce stade, YOLO s’est déjà imposé comme un incontournable, et la communauté open source va prendre le relais pour faire évoluer l’algorithme.
L’arrivée d’Ultralytics
En 2020, YOLOv4 est publié par une nouvelle équipe menée par Alexey Bochkovskiy. Cette version intègre de nombreuses optimisations issues de la recherche (appelées bag of freebies) pour améliorer vitesse et précision. Elle introduit un nouveau backbone, CSPDarknet53, et des modules comme SPP et Mosaic, établissant un excellent équilibre entre performance et rapidité.
La même année, YOLOv5 fait son apparition, cette fois sans publication académique. Développé par Ultralytics en PyTorch, il suscite d’abord la controverse au près des puristes, mais séduit rapidement par sa simplicité d’utilisation et ses résultats. Il devient un standard dans l’industrie, preuve de la force de la communauté open source.
YOLOv4 sera finalement très peu utilisé en production par les entreprises, très vite remplacé par cette nouvelle version proposée par Ultralytics.
L’ère moderne de YOLO
Entre 2021 et 2022, de nombreuses variantes de YOLO émergent, comme YOLOX et YOLOv6, chacune apportant ses propres améliorations. Mais c’est YOLOv7, publié en juillet 2022, qui marque un véritable tournant. Grâce à une nouvelle architecture (E-ELAN) et l’intégration d’éléments issus de versions précédentes, il améliore significativement la précision et la vitesse sans alourdir l’entraînement. À sa sortie, YOLOv7 établit un nouveau standard en détection d’objets en temps réel.
Début 2023, Ultralytics lance YOLOv8, une version plus modulaire et orientée production, avec des API modernes et une architecture flexible. En parallèle, la startup Deci dévoile YOLO-NAS, une version conçue automatiquement via la Neural Architecture Search.
Ce procédé permet d’optimiser le modèle sans intervention humaine, en ajustant dynamiquement sa configuration pour maximiser la performance. Résultat : YOLO-NAS surpasse YOLOv5, v7 et v8 sur de nombreux benchmarks, devenant l’une des versions les plus avancées de l’écosystème YOLO.
En septembre 2024, Ultralytics a proposé YOLOv11, elle améliore la précision tout en réduisant les paramètres, avec une architecture optimisée pour la détection, la segmentation et la classification en temps réel.

Cette évolution de YOLO, du v1 “fait maison” au YOLO-NAS puis à la version 11, témoigne de la vitalité de la communauté et de l’innovation open source dans le domaine de la vision.
Avant d’aborder les applications concretes de YOLO, intéressons-nous à son fonctionnement sur le plan algorithmique.
Le fonctionnement de YOLO
Le framework YOLO aborde le problème de la détection d’objets comme un problème de régression unique appliqué à l’image entière. Plutôt que de rechercher des objets en plusieurs étapes, le modèle prédit tout en une seule passe à travers un réseau de neurones.
En d’autres termes : le réseau de neurones prend une image en entrée et donne en sortie les positions de tous les objets détectés ainsi que les classes.
Fonctionnement du modèle
Le fonctionnement de YOLO repose essentiellement sur 5 concepts : un découpage de l’image par grille, une histoire de backbone, la notion de boîtes d’ancrage (anchor boxes), un format d’output original et un post-traitement avec l’algorithme NMS (non-max suppression).
- Grille de détection :
YOLO commence par découper l’image d’entrée en une grille de cellules (par exemple une grille de 13×13 dans YOLOv1 pour une image de 448×448 pixels).
Chaque cellule de cette grille est responsable de détecter les objets dont le centre tombe dans sa zone. Elle prédit :- Des boîtes englobantes (bounding boxes) : pour chaque cellule, le modèle prédit une ou plusieurs boîtes, définies par leur position (coordonnées x et y) et leur taille (largeur et hauteur).
- Un score de confiance : ce score indique à quel point le modèle est sûr qu’un objet se trouve dans la boîte proposée, et si cette boîte est bien alignée avec un objet réel.
- Une classe : la cellule prédit également la catégorie de l’objet détecté, par exemple « chien », « vélo », ou « feu rouge ».

- Backbone (réseau CNN) :
Le backbone est la partie du modèle chargée d’extraire les caractéristiques visuelles (features extraction) de l’image. Il s’agit d’un réseau de neurones convolutionnel (CNN) qui parcourt l’image pour repérer des formes, motifs, textures et objets. À partir de YOLOv3, le backbone utilisé est souvent Darknet-53, un réseau profond utilisant des blocs résiduels (comme ceux de ResNet), qui facilitent l’apprentissage de réseaux profonds.
- Anchor boxes :
Introduites à partir de YOLOv2, les anchor boxes sont des boîtes de référence prédéfinies, aux formes et proportions représentatives d’objets fréquemment rencontrés (par exemple, une boîte horizontale pour une voiture, ou verticale pour une personne).
Elles permettent de guider le réseau pendant l’apprentissage en lui fournissant une base réaliste sur laquelle il peut ajuster ses prédictions, ce qui améliore la qualité des détections.

- Tenseur de sortie :
Une fois l’image traitée par le réseau, YOLO produit un tenseur (c’est-à-dire un tableau multidimensionnel) contenant, pour chaque cellule de la grille, toutes les prédictions : les coordonnées des boîtes englobantes, les scores de confiance associés, ainsi que les probabilités de chaque classe.
Ce tenseur est la sortie brute du modèle, qu’il faudra encore post-traiter pour obtenir les résultats finaux.
Cette innovation a permis de résoudre un problème simple : on ne sait pas à l’avance combien d’objets sont présents sur une image mais un réseau de neurones attend une taille de sortie fixe.
- Post-traitement avec NMS (Non-Maximum Suppression) :
YOLO peut parfois prédire plusieurs boîtes très proches pour un même objet. Pour éviter les doublons, une étape de suppression non maximale (NMS) est appliquée.
Cette méthode élimine les boîtes qui se chevauchent trop fortement et conserve uniquement celle avec le meilleur score de confiance. Cela permet d’afficher une seule détection claire et précise par objet.
En phase de prédiction, on a la possibilité de choisir le « IoU threshold » qui permet d’être plus ou moins strict concernant cette question de chevauchement.

Entraînement du modèle
Comme tout modèle de deep learning supervisé, YOLO doit être entraîné sur un grand nombre d’exemples annotés. Cela implique de lui montrer des images dans lesquelles les objets sont non seulement identifiés par leur classe (par exemple : « chien », « vélo », « voiture »), mais aussi localisés avec précision via des bounding boxes.
Ce qui suppose un gros travail d’annotation préalable des images.

Fonction de perte (loss function)
Pendant l’entraînement, YOLO apprend à ajuster ses prédictions en minimisant une fonction de perte, c’est-à-dire un indicateur qui mesure à quel point ses sorties sont éloignées des annotations réelles. Cette fonction est composée de plusieurs termes :
- Erreur de localisation :
Elle mesure l’écart entre les coordonnées des boîtes prédites et celles des annotations réelles. YOLO cherche à prédire des boîtes le plus proches possible de la vérité terrain (ground truth), en termes de position du centre de la boîte (x, y) et de dimensions (largeur, hauteur). - Erreur de classification :
Ce terme pénalise les erreurs sur l’étiquette de l’objet détecté. Par exemple, si le modèle détecte une « voiture » là où il aurait dû voir un « camion », la perte augmente. - Score de confiance et IoU (Intersection-over-Union) :
YOLO prédit un score de confiance pour chaque boîte. Ce score est censé refléter la probabilité qu’un objet est bien présent dans cette zone. Ce score est comparé à la réalité à l’aide de l’IoU, qui mesure le recouvrement entre la boîte prédite et la boîte réelle. Si ce recouvrement est faible, la fonction de perte pénalise fortement le modèle. À l’inverse, un bon recouvrement (IoU proche de 1) réduit la perte.

Jeux de données d’entraînement
Pour que YOLO apprenne à détecter efficacement des objets variés, il est généralement entraîné sur de larges bases de données annotées, les 2 exemples courants sont :
- PASCAL VOC : un jeu de données historique, contenant une vingtaine de classes d’objets courants (animaux, véhicules, mobilier…).
- COCO (Common Objects in Context) : un jeu de données beaucoup plus riche, avec plus de 80 classes, des objets en contexte réel, et des annotations plus fines. Il est devenu un standard dans la communauté pour évaluer les modèles de détection.
Ces datasets fournissent à YOLO des exemples variés de scènes, d’éclairages, de tailles d’objets, et de contextes, ce qui permet au modèle de généraliser ses prédictions à des images du monde réel.
Un des gros avantages de YOLO réside dans la simplicité de fine-tuner le modèle : il suffit de quelques dizaines ou centaines d’images annotées et de quelques lignes de configuration pour obtenir un modèle performant adapté à son propre cas d’usage.
Applications pratiques de YOLO
Depuis son apparition, YOLO a été mis à profit dans un large éventail d’applications de vision par ordinateur nécessitant une détection rapide et fiable.
Dans le domaine de la vidéosurveillance et de la sécurité, par exemple, YOLO est utilisé pour détecter en temps réel des intrusions, reconnaître des comportements suspects ou suivre des personnes dans un flux vidéo. Son faible temps de latence permet d’analyser des vidéos de caméras de surveillance en direct, alertant immédiatement en cas d’événement anormal.
De même, pour la conduite autonome, les véhicules équipés de caméras embarquées exploitent des variantes de YOLO pour percevoir les piétons, les autres véhicules, les panneaux de signalisation ou obstacles sur la route, le tout en temps réel pour pouvoir réagir instantanément. Cette capacité temps réel est un atout majeur face aux approches plus lentes.

En imagerie médicale, YOLO a trouvé des cas d’usage tels que la détection de cellules ou d’anomalies sur des images microscopiques, ou la localisation de tumeurs sur des radiographies.
En robotique industrielle, YOLO est employé pour le contrôle qualité sur des chaînes de production, où il peut identifier des pièces défectueuses ou mal assemblées à la volée, triant les produits sans ralentir la cadence de fabrication.
D’autres exemples d’applications incluent :
- la détection d’animaux sauvages par des drones ou des pièges photographiques (pour le suivi de la biodiversité)
- la réalité augmentée (identifier des objets dans la scène pour interagir avec eux virtuellement)
- l’analyse sportive (suivre le ballon et les joueurs en temps réel pendant un match)
La communauté ayant open-sourcé YOLO a grandement facilité sa diffusion dans ces domaines variés. De nombreux frameworks et bibliothèques (tels OpenCV, Darknet, TensorFlow, PyTorch) proposent aujourd’hui des implémentations de YOLO prêtes à l’emploi, ce qui permet aux professionnels de la data et de l’IA d’intégrer rapidement l’algorithme dans leurs projets.
Conclusion
YOLO incarne parfaitement l’évolution rapide de la vision par ordinateur : un modèle initialement académique devenu un standard industriel grâce à sa simplicité, sa rapidité et sa flexibilité. De YOLOv1 à YOLO-NAS, chaque version a apportée des nouveautés qui ont permis d’améliorer les résultats en matière de détection d’objets en temps réel.
Son approche unifiée, ses performances solides, et surtout l’engagement de la communauté open source en ont fait un outil incontournable pour les chercheurs, les ingénieurs et les entrepreneurs.
Et avec les récentes avancées en matière d’optimisation automatique et d’intégration dans des pipelines industriels, il y a fort à parier que YOLO, ou ses alternatives, continueront à jouer un rôle clé dans les prochaines générations d’IA de vision.
Laisser un commentaire