YOLOv1 dévoilé : La naissance d’un géant de la détection d’objets en temps réel
En 2015, la publication du papier You Only Look Once: Unified, Real-Time Object Detection par Joseph Redmon et al. marqua une révolution dans le domaine de la détection d’objets en vision par ordinateur. Avant YOLOv1, les méthodes comme R-CNN étaient dominantes, mais elles reposaient sur une approche en plusieurs étapes : génération de régions candidates par l’algorithme selective search, extraction de caractéristiques via un réseau de neurones convolutif (CNN), puis classification finale à l’aide d’un SVM. Ce processus était lent, peu adapté au traitement en temps réel. YOLOv1, en revanche, proposait une solution unifiée, en traitant toute l’image en une seule passe, offrant à la fois une vitesse élevée et une précision compétitive. L’idée centrale de YOLOv1 repose sur la division de l’image en une grille de 7×7 cellules (paramètre S). Chaque cellule est responsable de prédire un certain nombre de boîtes englobantes (bounding boxes), avec des coordonnées normalisées par rapport à la taille de la cellule. Pour chaque objet présent dans une cellule, la coordonnée du centre (x, y) est exprimée relativement à la cellule, tandis que la largeur (w) et la hauteur (h) sont normalisées par rapport à la taille de l’image. Un vecteur cible de 25 éléments est associé à chaque cellule : 20 pour les probabilités de classes (un-hot encoding, adapté au dataset PASCAL VOC), 1 pour la confiance de la boîte, 2 pour (x, y), et 2 pour (w, h). L’ensemble de ces vecteurs est concaténé pour former un tenseur cible de dimension 25×7×7. Durant l’inférence, YOLOv1 prédit deux boîtes par cellule, d’où un vecteur de sortie de 30 éléments par cellule (30×7×7 = 1470 éléments au total). Seule la boîte avec la plus grande confiance est conservée. Cette architecture unique a nécessité la conception d’une fonction de perte personnalisée, combinant des termes de régression (MSE pour les coordonnées et les dimensions) et de classification (cross-entropy), avec des pondérations pour équilibrer les erreurs. Le modèle repose sur un architecture CNN de 24 couches, avec des blocs de convolution suivis d’un Leaky ReLU (avec un paramètre négatif de 0,1) et des max-pooling. L’absence de normalisation par lot (Batch Normalization), encore peu répandue à l’époque, est notable. Le réseau est divisé en cinq étages, avec des réductions progressives de la dimension spatiale (448×448 → 112×112 → 56×56 → 28×28 → 14×14 → 7×7). Le dernier étage est suivi de deux couches entièrement connectées, dont la seconde produit un tenseur de 1470 éléments, redimensionnable en 30×7×7. L’implémentation en PyTorch reproduit fidèlement cette structure, en définissant des blocs de convolution, un back-end CNN, et des couches fully-connected avec dropout. Le test sur un tenseur aléatoire confirme la cohérence des dimensions à chaque étape, validant l’architecture. Bien que YOLOv1 ait été surpassé par des versions ultérieures (comme YOLOv13, publiée en 2025), son impact reste fondamental : il a prouvé qu’une détection d’objets efficace pouvait être réalisée en une seule passe, ouvrant la voie à des systèmes en temps réel. En évaluation, les experts soulignent que YOLOv1 a posé les bases d’un paradigme nouveau, malgré ses limites (prédiction faible pour les petits objets, mauvaise performance sur les objets proches). Son influence se perçoit dans les architectures modernes, dont les modèles de type "one-stage" (comme YOLOv8, EfficientDet). Les entreprises comme NVIDIA, Tesla ou Meta ont intégré ses principes dans leurs systèmes de vision embarquée. YOLOv1 reste une pierre angulaire de l’histoire de la vision par ordinateur.
