YOLO (You Only Look Once) est une famille de systèmes de détection d'objets en temps réel basés sur des réseaux de neurones convolutifs. Introduit pour la première fois par Joseph Redmon et ses collègues en 2015, YOLO a connu de multiples itérations et est devenu l'un des cadres de détection d'objets les plus largement utilisés. Le nom reflète la conception fondamentale de l'algorithme : il ne nécessite qu'un seul passage de propagation avant à travers le réseau de neurones pour faire des prédictions, contrairement aux techniques antérieures basées sur des propositions de régions telles que R-CNN qui exigeaient des milliers de passages pour une seule image.
Contrairement aux méthodes précédentes qui appliquaient un modèle à une image à plusieurs emplacements et échelles, YOLO applique un seul réseau de neurones à l'ensemble de l'image. Le réseau divise l'image en une grille de régions et prédit des boîtes englobantes et des probabilités de classe pour chaque région. Ces prédictions sont pondérées par des scores de confiance, permettant une détection rapide et précise en une seule évaluation.
Vue d'ensemble
L'architecture de YOLO est construite autour d'un réseau de neurones convolutif qui traite l'image complète en un seul passage. L'image est divisée en une grille S × S, où chaque cellule est responsable de la prédiction de boîtes englobantes et de scores de confiance. Si le centre de la boîte englobante d'un objet se trouve dans une cellule, cette cellule est considérée comme « contenant » l'objet. Chaque cellule prédit B boîtes englobantes, ainsi que des scores de confiance qui reflètent à la fois la probabilité qu'un objet soit présent et la précision de la boîte prédite.
La sortie du réseau pour chaque cellule comprend des probabilités de classe conditionnelles (la probabilité que la cellule contienne un objet d'une classe donnée, étant donné qu'elle contient au moins un objet) et des paramètres de boîte englobante (coordonnées du centre, largeur et hauteur). Plusieurs boîtes englobantes par cellule permettent au modèle de se spécialiser dans différentes formes d'objets, comme les objets élancés par rapport aux objets trapus. L'architecture originale de YOLO se composait de 24 couches convolutives suivies de 2 couches entièrement connectées.
Pendant l'entraînement, pour chaque cellule contenant une boîte englobante de vérité terrain, seule la boîte prédite avec l'intersection sur union (IoU) la plus élevée avec la vérité terrain est utilisée pour la descente de gradient. La fonction de perte encourage le modèle à aligner les coordonnées de la boîte prédite avec la vérité terrain, à définir les probabilités de classe correctes et à supprimer les faux positifs.
Prédécesseurs et contexte
Avant YOLO, les systèmes de détection d'objets comme R-CNN et OverFeat reposaient sur des approches de propositions de régions ou de balayage multi-échelles. OverFeat, un modèle influent précoce, entraînait un réseau de neurones pour la classification puis ajoutait un réseau de régression pour prédire les coins des boîtes englobantes. À l'inférence, il exécutait le réseau de classification sur de nombreux niveaux de zoom et recadrages, générant des milliers de boîtes candidates qui étaient ensuite fusionnées. Ce processus était coûteux en calcul et lent.
YOLO a résolu ces inefficacités en reformulant la détection comme un problème de régression unique. Au lieu de scanner l'image plusieurs fois, YOLO traite l'image entière en un seul passage avant, le rendant considérablement plus rapide tout en maintenant une précision compétitive. Ce changement a permis des applications en temps réel dans l'analyse vidéo, la robotique et la conduite autonome.
Versions
La série YOLO peut être divisée en deux parties. La partie originale, maintenue par Joseph Redmon, comprend YOLOv1, YOLOv2 et YOLOv3. Ces versions ont été publiées sur un site web dédié et ont été largement adoptées dans la recherche et l'industrie.
YOLOv1
YOLOv1, introduit en 2015, a établi le cadre de base. Il divisait l'image en une grille S × S, chaque cellule prédisant B boîtes englobantes et scores de confiance. La sortie du réseau pour chaque cellule comprenait des probabilités de classe et des coordonnées de boîte. L'implémentation originale utilisait S = 7 et B = 2, résultant en 98 boîtes englobantes par image. Malgré sa rapidité, YOLOv1 avait des limitations pour détecter les petits objets et gérer les objets qui se chevauchent, ce que les versions ultérieures ont corrigé.
YOLOv2 et YOLOv3
YOLOv2, également connu sous le nom de YOLO9000, a introduit des améliorations telles que la normalisation par lots, les boîtes d'ancrage et l'entraînement multi-échelles. Il pouvait détecter plus de 9 000 catégories d'objets en exploitant la classification hiérarchique. YOLOv3 a encore amélioré la précision en utilisant une architecture plus profonde avec des connexions résiduelles et des prédictions multi-échelles, permettant une meilleure détection des petits objets. Ces versions ont consolidé la réputation de YOLO en tant que détecteur en temps réel de pointe.
Impact et applications
La rapidité et l'efficacité de YOLO en ont fait un choix populaire pour les applications en temps réel, notamment la surveillance vidéo, les véhicules autonomes et la robotique. Sa conception à passage unique est particulièrement adaptée aux appareils périphériques et aux systèmes embarqués, où les ressources de calcul sont limitées. Le cadre a également influencé les recherches ultérieures en détection d'objets, inspirant de nombreuses variantes et adaptations.
Au début des années 2020, YOLO continue d'être activement développé par la communauté de recherche, avec des versions plus récentes comme YOLOv4, YOLOv5 et des itérations ultérieures introduisant des optimisations supplémentaires. Ces versions intègrent souvent des techniques issues de la recherche en apprentissage profond et en réseau de neurones, telles que les mécanismes d'attention et des stratégies d'entraînement améliorées. L'héritage de YOLO réside dans sa démonstration que la détection en temps réel est réalisable sans sacrifier la précision, ce qui en fait une pierre angulaire de la vision par ordinateur moderne.