Skip to content

YOLOE : Tout voir en temps réel

Introduction

Options d'invite de YOLOE

YOLOE (Real-Time Seeing Anything) est une nouvelle avancée dans les modèles YOLO sans prise de vue et avec invite, conçus pour la détection et la segmentation de vocabulaire ouvert. Contrairement aux modèles YOLO précédents limités à des catégories fixes, YOLOE utilise du texte, des images ou des invites de vocabulaire interne, ce qui permet de détecter en temps réel n'importe quelle classe d'objet. Construit sur la base de YOLOv10 et inspiré par YOLO, YOLOE atteint des performances de pointe en matière d'absence de cliché, avec un impact minimal sur la vitesse et la précision.

Statut d'intégration d'Ultralytics 🚧

L'intégration d'Ultralytics pour YOLOE est actuellement en cours de construction 🔨. Les exemples d'utilisation présentés dans cette documentation fonctionneront une fois l'intégration terminée ✅. Veuillez consulter les mises à jour 🔄 ou suivre notre dépôt GitHub 🚀 pour les derniers développements.

Par rapport aux modèles YOLO précédents, YOLOE améliore considérablement l'efficacité et la précision. Il s'améliore de +3,5 AP par rapport à YOLO sur LVIS tout en utilisant seulement un tiers des ressources de formation et en atteignant des vitesses d'inférence 1,4× plus rapides. Affiné sur COCO, YOLOE-v8-large surpasse YOLOv8 de 0,1 mAP, en utilisant près de 4 fois moins de temps d'apprentissage. Cela démontre l'équilibre exceptionnel entre la précision, l'efficacité et la polyvalence de YOLOE. Les sections ci-dessous présentent l'architecture de YOLOE, les comparaisons de points de repère et l'intégration avec le logiciel Ultralytics Ultralytics.

Aperçu de l'architecture

YOLOE Architecture

YOLOE conserve la structure standard de YOLO - une colonne vertébrale convolutionnelle (par exemple, CSP-Darknet) pour l'extraction des caractéristiques, un cou (par exemple, PAN-FPN) pour la fusion multi-échelle, et une tête de détection découplée et sans ancrage (comme dans YOLO11) prédisant l'objet, les classes et les boîtes de manière indépendante. YOLOE introduit trois nouveaux modules permettant la détection de vocabulaires ouverts :

  • Alignement région-texte re-paramétrable (RepRTA): prend en charge la détection à partir d'un texte en affinant l'intégration du texte (par exemple, à partir de CLIP) par l'intermédiaire d'un petit réseau auxiliaire. Lors de l'inférence, ce réseau est intégré au modèle principal, ce qui permet d'éviter toute surcharge. YOLOE détecte ainsi des objets arbitraires étiquetés dans le texte (par exemple, un "feu de circulation" non vu) sans pénalités d'exécution.

  • Encodeur de messages visuels activés par la sémantique (SAVPE) : Permet la détection visuelle par le biais d'une branche d'intégration légère. À partir d'une image de référence, SAVPE encode les caractéristiques sémantiques et d'activation, conditionnant le modèle à détecter des objets visuellement similaires - une capacité de détection en une seule fois utile pour les logos ou les pièces spécifiques.

  • Contraste Région-Prompt paresseux (LRPC): En mode sans invite, YOLOE effectue la reconnaissance d'ensembles ouverts à l'aide d'encastrements internes formés sur de vastes vocabulaires (plus de 1200 catégories de LVIS et Objects365). Sans invites ou encodeurs externes, YOLOE identifie les objets par le biais d'une recherche de similarité d'encastrement, gérant efficacement de grands espaces d'étiquettes lors de l'inférence.

En outre, YOLOE intègre la segmentation d'instances en temps réel en étendant la tête de détection avec une branche de prédiction de masque (similaire à YOLACT ou YOLOv8), ajoutant une surcharge minimale.

De manière cruciale, les modules du monde ouvert de YOLOE n' introduisent aucun coût d'inférence lorsqu'ils sont utilisés comme un YOLO classique à ensemble fermé. Après l'entraînement, les paramètres de YOLOE peuvent être re-paramétrés dans une tête YOLO standard, en préservant des FLOPs et une vitesse identiques (par exemple, l'appariement des données de YOLO11 exactement).

Comparaison des performances de YOLOE

YOLOE atteint ou dépasse la précision des modèles YOLO fermés sur des critères de référence standard tels que COCO, sans compromettre la vitesse ou la taille du modèle. Le tableau ci-dessous compare YOLOE-L (construit sur YOLO11) avec les modèles correspondants de YOLOv8 et YOLO11 :

Modèle COCO mAP50-95 Vitesse d'inférence (T4) Paramètres GFLOPs (640px)
YOLOv8 (jeu fermé) 52.9% 9,06 ms (110 FPS) 43.7 M 165.2 B
YOLO11 (ensemble fermé) 53.5% 6,2 ms (130 FPS) 26.2 M 86.9 B
YOLOE-L (ouvert-vocab) 52.6% 6,2 ms (130 FPS) 26.2 M 86.9 B†

YOLO11 et YOLOE-L ont des architectures identiques (modules prompts désactivés dans YOLO11), ce qui se traduit par une vitesse d'inférence identique et des estimations de GFLOPs similaires.

YOLOE-L atteint 52,6 % de mAP, dépassant YOLOv8(52,9 %) avec environ 40 % de paramètres en moins (26M contre 43,7M). Il traite des images 640×640 en 6,2 ms (161 FPS) contre 9,06 ms (110 FPS) pour YOLOv8, ce qui souligne l'efficacité de YOLO11. Les modules de vocabulaire ouvert de YOLOE n'entraînent aucun coût d'inférence, ce qui démontre qu'il n'y a pas de compromis gratuit.

Pour les tâches de zéro-coup et de transfert, YOLOE excelle : sur LVIS, YOLOE-small améliore YOLO de +3,5 AP en utilisant 3× moins de ressources de formation. Le réglage fin de YOLOE-L de LVIS à COCO a également nécessité 4 fois moins de temps de formation que YOLOv8, ce qui souligne son efficacité et sa capacité d'adaptation. YOLOE conserve la vitesse qui a fait la réputation de YOLO, atteignant plus de 300 FPS sur un GPU T4 et ~64 FPS sur l'iPhone 12 via CoreML, ce qui est idéal pour les déploiements en périphérie et mobiles.

Note

Conditions de référence : Les résultats de YOLOE proviennent de modèles pré-entraînés sur Objects365, GoldG et LVIS, puis affinés ou évalués sur COCO. Le léger avantage de YOLOE sur YOLOv8 en termes de mAP provient d'un pré-entraînement approfondi. Sans cet entraînement en laboratoire ouvert, YOLOE correspond à des modèles YOLO de taille similaire, affirmant sa précision SOTA et sa flexibilité en monde ouvert sans pénalité de performance.

Comparaison avec les modèles précédents

YOLOE présente des avancées notables par rapport aux modèles YOLO antérieurs et aux détecteurs de vocabulaire ouvert :

  • YOLOE vs YOLOv5:
    YOLOv5 offrait un bon équilibre vitesse/précision mais nécessitait un réapprentissage pour les nouvelles classes et utilisait des têtes basées sur des ancres. En revanche, YOLOE est dépourvu d'ancres et détecte dynamiquement les nouvelles classes. YOLOE, s'appuyant sur les améliorations de YOLOv8, atteint une plus grande précision (52,6 % contre ~50 % pour YOLOv5 sur COCO) et intègre la segmentation des instances, contrairement à YOLOv5.

  • YOLOE vs YOLOv8:
    YOLOE s'étend YOLOv8et atteint une précision similaire ou supérieure(52,6 % mAP avec ~26 millions de paramètres contre 52,9 % avec ~44 millions de paramètres pour YOLOv8). Il réduit considérablement le temps de formation grâce à un pré-entraînement plus efficace. La principale avancée est la capacité du monde ouvert de YOLOE, qui détecte des objets non vus (par exemple,"bird scooter" ou"peace symbol") à l'aide de messages-guides, contrairement à la conception en plateau fermé de YOLOv8.

  • YOLOE vs YOLO11:
    YOLO11 améliore YOLOv8 avec une efficacité accrue et moins de paramètres (~22% de réduction). YOLOE hérite directement de ces gains, en égalant la vitesse d'inférence et le nombre de paramètres de YOLO11(~26M paramètres), tout en ajoutant la détection et la segmentation du vocabulaire ouvert. Dans les scénarios fermés, YOLOE est équivalent à YOLO11, mais ajoute de façon cruciale la capacité d'adaptation pour détecter les classes non vues, réalisant ainsi YOLO11 + la capacité du monde ouvert sans compromettre la vitesse.

  • YOLOE par rapport aux précédents détecteurs de vocabulaire ouvert :
    Les modèles de vocabulaire ouvert précédents (GLIP, OWL-ViT, YOLO) s'appuyaient fortement sur des transformateurs vision-langage, ce qui entraînait une inférence lente. YOLOE les surpasse en termes de précision (par exemple, +3,5 AP par rapport à YOLO) tout en fonctionnant 1,4 fois plus vite avec des ressources d'entraînement nettement inférieures. Comparé aux approches basées sur les transformateurs (par exemple, GLIP), YOLOE offre une inférence plus rapide de plusieurs ordres de grandeur, comblant ainsi le fossé entre la précision et l'efficacité dans la détection des ensembles ouverts.

En résumé, YOLOE conserve la rapidité et l'efficacité reconnues de YOLO, surpasse ses prédécesseurs en termes de précision, intègre la segmentation et introduit une puissante détection en monde ouvert, ce qui le rend particulièrement polyvalent et pratique.

Cas d'utilisation et applications

La détection et la segmentation de vocabulaires ouverts de YOLOE permettent diverses applications au-delà des modèles traditionnels de classes fixes :

  • Détection d'objets dans un monde ouvert :
    Idéal pour les scénarios dynamiques tels que la robotique, où les robots reconnaissent des objets inédits à l'aide de messages-guides, ou les systèmes de sécurité qui s'adaptent rapidement aux nouvelles menaces (par exemple, les objets dangereux) sans avoir à se recycler.

  • Détection de quelques images et d'une seule image :
    Grâce à des messages visuels (SAVPE), YOLOE apprend rapidement de nouveaux objets à partir d'images de référence uniques, ce qui est parfait pour l'inspection industrielle (identification instantanée des pièces ou des défauts) ou la surveillance personnalisée, permettant des recherches visuelles avec une configuration minimale.

  • Vocabulaire étendu et reconnaissance à longue traîne :
    Doté d'un vocabulaire de plus de 1000 classes, YOLOE excelle dans des tâches telles que la surveillance de la biodiversité (détection d'espèces rares), les collections de musées, l'inventaire des magasins de détail ou le commerce électronique, en identifiant de manière fiable de nombreuses classes sans avoir besoin d'une formation approfondie par classe.

  • Détection et segmentation interactives :
    YOLOE prend en charge des applications interactives en temps réel telles que la recherche de vidéos ou d'images, la réalité augmentée (RA) et l'édition intuitive d'images, pilotées par des entrées naturelles (texte ou invites visuelles). Les utilisateurs peuvent isoler, identifier ou éditer des objets de manière dynamique et précise à l'aide de masques de segmentation.

  • Étiquetage automatisé des données et amorçage :
    YOLOE facilite la création rapide d'ensembles de données en fournissant une boîte de délimitation initiale et des annotations de segmentation, ce qui réduit considérablement les efforts d'étiquetage humain. Il est particulièrement utile pour l'analyse de grandes collections de médias, où il peut identifier automatiquement les objets présents, ce qui permet de construire plus rapidement des modèles spécialisés.

  • Segmentation pour n'importe quel objet :
    Étend les capacités de segmentation à des objets arbitraires par le biais d'invites, ce qui est particulièrement utile pour l'imagerie médicale, la microscopie ou l'analyse d'images satellites, en identifiant automatiquement et en segmentant avec précision les structures sans modèle spécialisé préformé. Contrairement aux modèles tels que SAMYOLOE reconnaît et segmente simultanément les objets de manière automatique, ce qui facilite la création de contenu ou la compréhension des scènes.

Dans tous ces cas d'utilisation, l'avantage principal de YOLOE est sa polyvalence, car il fournit un modèle unifié pour la détection, la reconnaissance et la segmentation dans des scénarios dynamiques. Son efficacité garantit des performances en temps réel sur des appareils aux ressources limitées, ce qui est idéal pour la robotique, la conduite autonome, la défense, etc.

Conseil

Choisissez le mode de YOLOE en fonction de vos besoins :

  • Mode fermé : Pour les tâches à classe fixe (vitesse et précision maximales).
  • Mode guidé : Ajoutez rapidement de nouveaux objets à l'aide d'invites textuelles ou visuelles.
  • Mode d'ouverture sans invite : Détection générale dans de nombreuses catégories (idéal pour le catalogage et la découverte).

Souvent, la combinaison des modes, comme la découverte sans invite suivie d'invites ciblées, permet d'exploiter tout le potentiel de YOLOE.

Formation et inférence

YOLOE s'intègre parfaitement à l'APIPython d 'Ultralytics et à son CLIYOLO s'intègre parfaitement à l'API Python et à la CLI d'Ultralytics, comme les autres modèles YOLO YOLOv8, YOLO). Voici comment démarrer rapidement :

Statut d'intégration d'Ultralytics 🚧

L'intégration d'Ultralytics pour YOLOE est actuellement en cours de développement 🔨. Les exemples ci-dessous montrent comment l'API fonctionnera une fois l'intégration terminée ✅.

Formation et inférence avec YOLOE

from ultralytics import YOLO

# Load pre-trained YOLOE model and train on custom data
model = YOLO("yoloe-s.pt")
model.train(data="path/to/data.yaml", epochs=50, imgsz=640)

# Run inference using text prompts ("person", "bus")
model.set_classes(["person", "bus"])
results = model.predict(source="test_images/street.jpg")
results[0].save()  # save annotated output

Ici, YOLOE se comporte par défaut comme un détecteur standard mais passe facilement à la détection guidée en spécifiant des classes (set_classes). Les résultats contiennent des boîtes de délimitation, des masques et des étiquettes.

# Training YOLOE on custom dataset
yolo train model=yoloe-s.pt data=path/to/data.yaml epochs=50 imgsz=640

# Inference with text prompts
yolo predict model=yoloe-s.pt source="test_images/street.jpg" classes="person,bus"

Invites CLI (classes) guide YOLOE de la même manière que le système Python set_classes. Les messages visuels (requêtes basées sur des images) nécessitent actuellement l'API Python .

Autres tâches prises en charge

  • Validation : Évaluez facilement la précision avec model.val() ou yolo val.
  • Exporter : Exporter les modèles YOLOE (model.export()) à ONNX, TensorRT, etc., ce qui facilite le déploiement.
  • Suivi : YOLOE prend en charge le suivi des objets (yolo track) lorsqu'il est intégré, ce qui est utile pour suivre les classes invitées dans les vidéos.

Note

YOLOE comprend automatiquement masques de segmentation dans les résultats de l'inférence (results[0].masks), ce qui simplifie les tâches précises au pixel près, telles que l'extraction ou la mesure d'objets, sans nécessiter de modèles distincts.

Pour commencer

Configurez rapidement YOLOE avec Ultralytics en suivant les étapes suivantes :

  1. Installation: Installer ou mettre à jour le paquet Ultralytics :

    pip install -U ultralytics
    
  2. Télécharger les poids YOLOE: Les modèles YOLOE pré-entraînés (par exemple, YOLOE-v8-S/L, YOLOE-11 variantes) sont disponibles à partir des versions GitHub de YOLOE. Il suffit de télécharger le modèle .pt à charger dans la classeYOLO d'Ultralytics .

  3. Exigences matérielles:

    • Inférence: GPU recommandéNVIDIA avec ≥4-8GB VRAM). Les petits modèles s'exécutent efficacement sur des GPU périphériques (par exemple, Jetson) ou des CPU à des résolutions inférieures.
    • Formation: Le réglage fin de YOLOE sur des données personnalisées ne nécessite généralement qu'un seul GPU. Le pré-entraînement extensif du vocabulaire ouvert (LVIS/Objects365) utilisé par les auteurs a nécessité un calcul important (8× RTX 4090 GPU).
  4. Configuration: Les configurations de YOLOE utilisent des fichiers YAML standard d'Ultralytics . Les configurations par défaut (par exemple, yoloe-s.yaml) suffisent généralement, mais vous pouvez modifier la colonne vertébrale, les classes ou la taille de l'image selon vos besoins.

  5. Courir YOLOE:

    • Déduction rapide (sans délai) :
      yolo predict model=yoloe-s.pt source="image.jpg"
      
    • Détection guidée (exemple d'invite de texte) :

      yolo predict model=yoloe-s.pt source="kitchen.jpg" classes="bowl,apple"
      

      En Python:

      from ultralytics import YOLO
      
      model = YOLO("yoloe-s.pt")
      model.set_classes(["bowl", "apple"])
      results = model.predict("kitchen.jpg")
      results[0].save()
      
  6. Conseils d'intégration:

    • Nom des classes: Les sorties YOLOE par défaut utilisent les catégories LVIS ; utiliser set_classes() pour spécifier vos propres étiquettes.
    • Rapidité: YOLOE n'a pas de frais généraux à moins d'utiliser des messages-guides. Les messages-guides textuels ont un impact minimal ; les messages-guides visuels ont un impact légèrement plus important.
    • Inférence par lots: Pris en charge directement (model.predict([img1, img2])). Pour les invites spécifiques aux images, exécutez les images individuellement.

La documentationUltralytics fournit des ressources supplémentaires. YOLOE vous permet d'explorer facilement les puissantes capacités du monde ouvert dans l'écosystème familier de YOLO .

Conseil

Conseil de pro : Pour maximiser la précision de YOLOE, effectuez des ajustements à partir des points de contrôle fournis plutôt que de vous entraîner à partir de zéro. Pour améliorer la précision de la détection, utilisez des mots-guides correspondant à des étiquettes d'entraînement courantes (voir les catégories LVIS).

Citations et remerciements

Si YOLOE a contribué à votre recherche ou à votre projet, veuillez citer l'article original rédigé par Ao Wang, Lihao Liu, Hui Chen, Zijia Lin, Jungong Han et Guiguang Ding de l'université de Tsinghua:

@misc{wang2025yoloerealtimeseeing,
      title={YOLOE: Real-Time Seeing Anything},
      author={Ao Wang and Lihao Liu and Hui Chen and Zijia Lin and Jungong Han and Guiguang Ding},
      year={2025},
      eprint={2503.07465},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2503.07465},
}

Pour plus d'informations, l'article original de YOLOE est disponible sur arXiv. Le code source du projet et des ressources supplémentaires sont accessibles via le dépôt GitHub.

FAQ

En quoi YOLOE diffère-t-il de YOLO?

Bien que YOLOE et YOLO permettent tous deux la détection de vocabulaires ouverts, YOLOE présente plusieurs avantages. YOLOE atteint une précision de +3,5 AP sur LVIS tout en utilisant 3× moins de ressources de formation et en fonctionnant 1,4× plus vite que YOLO. YOLOE prend également en charge trois modes d'incitation (textuelle, visuelle et vocabulaire interne), alors que YOLO se concentre principalement sur les incitations textuelles. En outre, YOLOE comprend des capacités de segmentation d'instances intégrées, fournissant des masques précis au pixel près pour les objets détectés sans surcharge supplémentaire.

Puis-je utiliser YOLOE comme un modèle YOLO normal ?

Oui, YOLOE peut fonctionner exactement comme un modèle YOLO standard sans pénalité de performance. Lorsqu'ils sont utilisés en mode fermé (sans invites), les modules de vocabulaire ouvert de YOLOE sont re-paramétrés dans la tête de détection standard, ce qui permet d'obtenir une vitesse et une précision identiques à celles des modèles YOLO11 équivalents. Cela rend YOLOE extrêmement polyvalent : vous pouvez l'utiliser comme un détecteur traditionnel pour une vitesse maximale et passer en mode vocabulaire ouvert uniquement lorsque c'est nécessaire.

Quels types de messages-guides puis-je utiliser avec YOLOE ?

YOLOE prend en charge trois types d'invites :

  1. Invitations textuelles: Spécifier des classes d'objets en utilisant le langage naturel (par exemple, "personne", "feu de circulation", "scooter des oiseaux").
  2. Invitations visuelles: Fournir des images de référence des objets à détecter
  3. Vocabulaire interne: Utilisez le vocabulaire intégré de YOLOE (plus de 1200 catégories) sans aide extérieure.

Cette flexibilité vous permet d'adapter YOLOE à différents scénarios sans avoir à réapprendre le modèle, ce qui le rend particulièrement utile dans les environnements dynamiques où les exigences en matière de détection changent fréquemment.

Comment YOLOE gère-t-il la segmentation des instances ?

YOLOE intègre la segmentation d'instance directement dans son architecture en étendant la tête de détection avec une branche de prédiction de masque. Cette approche est similaire à celle de YOLOv8 mais fonctionne pour toute classe d'objet incitée. Les masques de segmentation sont automatiquement inclus dans les résultats de l'inférence et sont accessibles via results[0].masks. Cette approche unifiée élimine le besoin de modèles de détection et de segmentation distincts, ce qui permet de rationaliser les flux de travail pour les applications nécessitant des limites d'objet précises au pixel près.

Comment YOLOE gère-t-il l'inférence avec des invites personnalisées ?

Comme YOLO, YOLOE prend en charge une stratégie de type "demander puis détecter" qui utilise un vocabulaire hors ligne pour améliorer l'efficacité. Les invites personnalisées, telles que les légendes ou les catégories d'objets spécifiques, sont préencodées et stockées sous forme d'enchâssements de vocabulaire hors ligne. Cette approche rationalise le processus de détection sans nécessiter de réapprentissage. Vous pouvez définir dynamiquement ces invites dans le modèle pour l'adapter à des tâches de détection spécifiques :

from ultralytics import YOLO

# Initialize a YOLOE model
model = YOLO("yoloe-s.pt")

# Define custom classes
model.set_classes(["person", "bus"])

# Execute prediction on an image
results = model.predict("path/to/image.jpg")

# Show results
results[0].show()
📅C réé il y a 6 jours ✏️ Mis à jour il y a 4 jours

Commentaires