YOLO (You Only Look Once)
From Wikipedia, the free encyclopedia
You Only Look Once (YOLO) est une série d'algorithmes de systèmes de détection d'objet dans les images ou flux vidéo, en temps réel, basés sur des réseaux neuronaux convolutifs. Introduit pour la première fois par Joseph Redmon et al. en 2015, YOLO a subi plusieurs itérations et améliorations, devenant l'un des frameworks de détection d'objets les plus populaires[1],[2].

Origine du nom YOLO
Le nom « You Only Look Once » (« Tu n'as besoin de regarder qu'une seule fois ») fait référence au fait que l'algorithme montre et décrit immédiatement ce qu'il estime être des zones d'intérêt dans l'image ou le flux vidéo ; et qu'il ne nécessite qu'une seule « propagation avant » (dans le réseau neuronal) pour effectuer des prédictions, contrairement aux techniques précédentes basées sur la proposition de régions comme R-CNN qui en nécessitait des milliers pour une seule image[3].
Principes
Contrairement aux méthodes précédentes comme le R-CNN (Regions with Convolutional Neural Networks) qui est un algorithme de vision artificielle segmentant d'abord une image en environ 2 000 régions candidates avant d'en extraire les caractéristiques de chacune via un réseau de neurones pour les classifier) ; et contrairement à OverFeat, YOLO applique un seul réseau de neurones à l'image entière, au lieu d'appliquer le modèle à plusieurs emplacements et/ou à plusieurs échelles.
Ce réseau divise l'image en régions et il prédit des boîtes englobantes (bounding boxes) et des probabilités pour chaque région.
Ces boîtes englobantes sont pondérées par les probabilités prédites.
Évolution et diversité technique
Depuis sa version initiale (YOLOv1) jusqu'aux itérations les plus récentes (YOLOv13), le framework a évolué en une famille de modèles d'IA caractérisée[1],[4] par :
- une modularité et un passage à l'échelle : Adaptabilité à divers environnements, des serveurs haute performance aux systèmes embarqués aux ressources limitées ;
- l'innovation architecturale : Amélioration constante de la robustesse et de la vitesse d'inférence à chaque nouvelle version ;
- une polyvalence fonctionnelle : Au-delà de la détection simple, YOLO sert désormais de fondation à des tâches plus complexes comme la segmentation d'instance, le suivi d'objets (tracking), l'estimation de pose et la compréhension de scènes.
Adaptation à la vision artificielle subaquatique
Yolo a été adapté (version Yolo7) au milieu subaquatique, de manière à tenir compte de la déformation des formes et des couleurs et l'éventuelle turbidité de l'eau, et un modèle (YOLOv7-tiny ou CL-YOLOv7-tiny) a été spécifiquement conçue pour la détection de petits objets sous l'eau, grâce à :
- une optimisation de la fonction d'activation : le remplacement de la fonction d'origine par une unité linéaire pondérée par sigmoïde (SiLU) améliore la fluidité du gradient et la capacité d'apprentissage du réseau[5] ;
- un mécanisme d'attention spatiale : un module d'auto-attention à basse résolution (LRSA) dans la partie Neck du réseau permet de capturer les caractéristiques saillantes des cibles malgré la turbidité de l'eau[5] ;
- une nouvelle fonction de perte : WIoU (Wise-IoU) en remplacement de la fonction standard, qui a accru les capacités de généralisation du modèle et sa robustesse face aux données bruitées[5] ;
- une tête de détection dynamique : l'introduction du module Dyhead à la sortie du réseau unifie les mécanismes d'attention sur les échelles, les domaines spatiaux et les canaux, optimisant ainsi la détection des objets de très petite taille[5].
Utilisation
À la suite d'évolutions et d'une capacité croissante à extraire des informations structurées à partir de données visuelles massives en temps réel, YOLO est devenu un composant essentiel des nombreux systèmes d'analyse d'image et/ou de flux vidéo dans des secteurs variés, dont par exemple :
- surveillance et sécurité : identification en temps réel dans les flux vidéo.
- conduite autonome : localisation et description d'obstacles critiques, et de la signalisation routière.
- imagerie médicale : aide au diagnostic par la détection automatisée d'anomalies visuelles.
Après 10 ans, en 2025, Yolo est de plus en plus utilisé les communautés académiques, dans la médecine et l'industrie, devenant l'un des standards du domaine de la vision artificielle[1][réf. incomplète] .
OverFeat
OverFeat a été l'un des premiers modèles influents pour la classification et la localisation simultanées d'objets.
Son architecture est la suivante :
- entraînement d'un réseau neuronal dédié exclusivement à la classification d'images (« réseau entraîné à la classification »), tel qu'AlexNet, par exemple ;
- la dernière couche du réseau entraîné est supprimée, et pour chaque classe d'objet possible, un module de réseau est initialisé à la dernière couche (« réseau de régression »). Les paramètres du réseau de base sont figés. Le réseau de régression est entraîné à prédire… coordonnées de deux coins de la boîte englobante de l'objet ;
- lors de l'inférence, le réseau entraîné à la classification est exécuté sur la même image à différents niveaux de zoom et recadrages. Pour chaque niveau, le logiciel produit une étiquette de classe et une probabilité associée. Chaque sortie est ensuite traitée par le réseau de régression de la classe correspondante. On obtient ainsi jusqu'à des milliers de boîtes englobantes avec leurs étiquettes de classe et leurs probabilités. Ces boîtes sont fusionnées jusqu'à ce qu'il n'en reste qu'une seule par « objet », associée à une seule étiquette de classe.
Versions
La série YOLO comprend deux parties. La première contient YOLOv1, v2 et v3 (publiés sur un site web géré par Joseph Redmon)[6].
YOLOv1
L'algorithme original YOLO a été introduit en 2015[7]. Il divise l'image en une une grille de cellules . Si le centre du rectangle englobant un objet se trouve dans une cellule de la grille, on dit que cette cellule « contient » cet objet.
Chaque cellule prédit B rectangles englobants et des scores de confiance pour ces rectangles. Ces scores traduisent le degré de certitude du modèle quant à la présence effective de l'objet dans le rectangle, et la précision de sa prédiction.
Le réseau effectue la même opération de convolution sur chacun des patchs. La sortie du réseau sur chaque patch est un tuple comme suit : où
- est la probabilité conditionnelle que la cellule contienne un objet de classe i, sachant que la cellule contient au moins un objet.
- sont les coordonnées du centre, la largeur et la hauteur de la j-ième boîte englobante (bounding box) prédite centrée dans la cellule. Plusieurs boîtes sont prédites pour permettre à chaque prédiction de se spécialiser dans un type de boîte. Par exemple, les objets fins pourraient être prédits par j=2 tandis que les objets trapus pourraient être prédits par j=1.
- cj est l'intersection sur union (IoU) prédite de chaque boîte englobante avec sa vérité de terrain (ground truth) correspondante.
L'architecture du réseau comporte 24 couches convolutionnelles suivies de deux couches entièrement connectées.
Lors de l'entraînement, pour chaque cellule, si elle contient une boîte englobante de référence, seules les boîtes englobantes prédites présentant le meilleur IoU avec les boîtes englobantes de référence sont utilisées pour la descente de gradient. Concrètement, soit soit cette boîte englobante prédite, et soit soit l'étiquette de classe de vérité terrain, alors sont entraînés par descente de gradient pour se rapprocher de la vérité terrain, est formé pour , autre sont entraînés à tendre vers zéro.
Si une cellule ne contient aucune vérité de terrain, alors seulement sont entraînés par descente de gradient pour tendre vers zéro.
YOLOv2
Sorti en 2016, YOLOv2 (aussi connu sous le nom de YOLO9000)[8],[9] a amélioré le modèle original en intégrant la normalisation par lots, un classificateur à plus haute résolution et l'utilisation de boîtes d'ancrage pour prédire les boîtes englobantes. Il pouvait en 2016 détecter plus de 9 000 catégories d'objets. Il a aussi été publié sur GitHub (sous la licence Apache 2.0).
YOLOv3
YOLOv3, publié en 2018, ne contenait que des améliorations « incrémentales » (réseau dorsal plus complexe ; plusieurs échelles pour la détection ; fonction de perte plus sophistiquée...)[10].
YOLOv4 et au-delà
Les versions ultérieures de YOLO (v4, v5, etc.)[11],[12],[13] ont été développées par différents chercheurs, améliorant encore les performances et introduisant de nouvelles fonctionnalités. Ces versions ne sont pas officiellement associées aux auteurs originaux de YOLO, mais s'appuient sur leurs travaux[6]. En 2025, il existe des versions jusqu'à YOLOv12[2].