One-Stage Object Detectors
Les détecteurs d’objets à une étape prédisent toutes les boîtes et classes en une seule passe du réseau, sans étape de proposition de régions. Découvre leur fonctionnement, les principaux modèles et les compromis.
Les détecteurs d'objets à une étape sont des modèles de détection d'objets qui prédisent les boîtes englobantes et les étiquettes de classe de tous les objets d'une image en un seul passage avant d'un réseau, en évaluant simultanément une grille dense de positions candidates. Ils ne comportent pas d'étape distincte de proposition de régions : les détecteurs d'objets à deux étapes proposent d'abord les régions susceptibles de contenir un objet, puis exécutent une seconde tête sur chaque région. La suppression de cette étape a fait des détecteurs à une étape la base de la détection en temps réel, de YOLO, dont le modèle de base tournait à 45 images par seconde en 2015, aux modèles actuels.
Fonctionnement des détecteurs à une étape#
Un backbone transforme l'image en cartes de caractéristiques, un neck les fusionne à différentes échelles et une tête de détection dense prédit les scores de classe et une boîte à chaque position de chaque échelle. Les premiers modèles à une étape, comme SSD, YOLOv2 et RetinaNet, prédisaient des décalages par rapport à plusieurs boîtes d'ancrage par position ; depuis FCOS en 2019, la plupart prédisent les distances entre chaque position et les quatre bords de la boîte, selon le principe des détecteurs sans ancrage. On obtient ainsi des milliers de boîtes candidates, que le seuil de confiance et la suppression non maximale (NMS) réduisent à une boîte par objet, ou qu'une tête entraînée avec une correspondance un-à-un produit directement.
L'exécution d'un détecteur à une étape nécessite un seul appel ; la décomposition du temps montre un unique passage dans le réseau :
from ultralytics import YOLO
# Load YOLO26n, a one-stage detector pretrained on the 80 COCO classes
model = YOLO("yolo26n.pt")
# One forward pass predicts the box and class of every object in the image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
print(f"{len(result.boxes)} objects: {[result.names[int(c)] for c in result.boxes.cls]}")
# Milliseconds for resizing the image, the single network pass, and NMS
print(result.speed)result.speed répertorie trois étapes — le prétraitement, l'inférence et le post-traitement — et l'unique passage d'inférence couvre tous les objets de l'image.
Détecteurs à un étage ou à deux étages#
Les deux architectures partagent le backbone et le neck. Un détecteur à deux étapes exécute ensuite un réseau de proposition de régions qui sélectionne quelques centaines de régions candidates, recadre les caractéristiques de chacune et transmet chaque recadrage à une seconde tête qui le classe et l'affine. Un détecteur à une étape remplace ces étapes par une seule tête dense sur toutes les positions de la grille.
La famille R-CNN a dominé la précision de la détection pendant des années : Faster R-CNN affine environ 300 propositions par image et atteignait 5 FPS avec un backbone VGG-16. Les détecteurs à une étape étaient beaucoup plus rapides, mais moins précis, jusqu'à ce que RetinaNet montre en 2017 que l'écart était dû au déséquilibre entre les classes d'avant-plan et d'arrière-plan : un détecteur dense évalue environ 100 000 positions candidates par image, presque toutes d'arrière-plan, et ces négatifs faciles dominent une fonction de perte standard. Sa fonction de perte focale réduit leur poids ; RetinaNet égale ainsi la vitesse des premiers détecteurs à une étape tout en dépassant la précision des détecteurs à deux étapes de l'époque. Les détecteurs Transformer, comme DETR et RT-DETR, s'exécutent eux aussi dans un seul réseau et prédisent un ensemble de boîtes de taille fixe avec une correspondance un-à-un.
Applications concrètes#
- Analyse du trafic et de la vidéo : les détecteurs s'exécutent sur chaque trame de chaque flux de caméra pour compter les véhicules, mesurer le trafic et alimenter les systèmes de suivi d'objets.
- Inspection industrielle : les caméras de ligne détectent les défauts et les composants manquants sur les pièces qui passent devant la caméra en une fraction de seconde.
- Drones et appareils embarqués : un seul réseau de petite taille respecte les budgets de calcul et d'énergie d'un drone, d'un téléphone ou d'une caméra intelligente.
Principes des détecteurs modernes à une étape#
- Réseaux pyramidaux de caractéristiques (FPN) : prédire à plusieurs résolutions permet aux cartes fines de détecter les petits objets et aux cartes grossières de détecter les grands.
- Fonction de perte focale : réduire le poids des candidats d'arrière-plan faciles a corrigé le déséquilibre des classes qui pénalisait les premiers détecteurs denses.
- Attribution des étiquettes : des méthodes comme SimOTA et l'attribution alignée sur la tâche choisissent, à partir des prédictions elles-mêmes, les positions positives de chaque objet pendant l'entraînement.
- Têtes sans NMS : une tête entraînée avec une correspondance un-à-un produit une boîte par objet et supprime une étape de post-traitement dont le coût augmente avec le nombre de candidats.
YOLO26 est un détecteur monocéphale sans ancres doté des deux types de tête : il applique NMS par défaut, et nms=False active sa tête un-à-un. YOLO26n atteint 40,9 mAP50-95 sur COCO avec NMS et 40,1 sans NMS, à 1,7 ms par image sur un GPU NVIDIA T4 avec TensorRT.










