YOLOE : un outil open source pour la détection vidéo en temps réel et la segmentation d'objets

Introduction générale

YOLOE est un projet open source développé par le Multimedia Intelligence Group (THU-MIG) de la Tsinghua University School of Software, dont le nom complet est "You Only Look Once Eye". Il est basé sur le cadre PyTorch et appartient à la catégorie YOLO Une extension de la série qui détecte et segmente n'importe quel objet en temps réel. Hébergé sur GitHub, la principale caractéristique du projet est qu'il prend en charge trois modes : le repérage textuel, le repérage visuel et la détection spontanée. Les utilisateurs peuvent spécifier une cible à l'aide d'un texte ou d'une image, ou le modèle peut reconnaître automatiquement plus de 1200 objets. Les données officielles montrent que YOLOE est 1,4 fois plus rapide que YOLO-Worldv2 sur l'ensemble de données LVIS et 3 fois moins coûteux à entraîner, tout en conservant une grande précision. Le modèle peut également être converti de manière transparente à YOLOv8 ou YOLO11 sans frais supplémentaires, ce qui permet de le déployer sur plusieurs appareils.

YOLOE:实时视频检测和分割物体的开源工具

 

Liste des fonctions

  • La détection d'objets en temps réel permet d'identifier rapidement les cibles dans les images ou les vidéos.
  • Fournit une fonction de segmentation d'instance pour définir avec précision les contours des objets.
  • Prise en charge de la détection de texte, l'utilisateur saisit un texte pour spécifier la cible de la détection.
  • La détection de repères visuels permet de reconnaître des objets similaires en se référant à une image.
  • Le mode intégré sans suggestion détecte automatiquement plus de 1200 objets courants.
  • Le modèle peut être reparamétré avec YOLOv8/YOLO11 Pas de surcharge d'inférence.
  • Fournit une variété de modèles pré-entraînés (échelle S/M/L) pour répondre aux différentes exigences de performance.
  • Code source ouvert et documentation permettant aux développeurs de modifier et d'étendre leurs activités.

 

Utiliser l'aide

L'utilisation de YOLOE se divise en deux parties : l'installation et le fonctionnement. Les étapes suivantes sont détaillées afin de permettre aux utilisateurs de démarrer facilement.

Processus d'installation

  1. Préparation de l'environnement
    Nécessite Python 3.10 et PyTorch. Il est recommandé d'utiliser Conda pour créer un environnement virtuel :
conda create -n yoloe python=3.10 -y
conda activate yoloe
  1. Clonage du code
    Téléchargez le projet YOLOE sur GitHub :
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
  1. Installation des dépendances
    Installez les bibliothèques nécessaires, y compris CLIP et MobileCLIP :
pip install -r requirements.txt
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/CLIP
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/ml-mobileclip
pip install git+https://github.com/THU-MIG/yoloe.git#subdirectory=third_party/lvis-api
wget https://docs-assets.developer.apple.com/ml-research/datasets/mobileclip/mobileclip_blt.pt
  1. Télécharger le modèle pré-entraîné
    YOLOE propose une variété de modèles, tels que yoloe-v8l-seg.pt. Télécharger avec la commande suivante :
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain

Ou le charger automatiquement avec Python :

from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
  1. Vérifier l'installation
    Exécutez la commande test pour vérifier que l'environnement est correct :

    python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
    

Principales fonctions

1. détection des alertes textuelles

  • Description fonctionnelle: Saisir un texte pour détecter l'objet correspondant.
  • procédure: :
    1. Préparer des images telles que bus.jpg.
    2. Exécutez la commande et spécifiez la cible (par exemple, "humain, chien, chat") :
      python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
      
    3. Affichez les résultats et l'image sera étiquetée avec les objets détectés.
  • Méthode d'ajustementLe seuil de confiance peut être abaissé si une détection est manquée :
    --conf 0.001
    

2) Détection des indices visuels

  • Description fonctionnelle: Détection d'objets similaires à l'aide d'images de référence.
  • procédure: :
    1. Préparer des images de référence et des images cibles.
    2. Formation de modules de repères visuels :
      python tools/convert_segm2det.py
      python train_vp.py
      python tools/get_vp_segm.py
      
    3. Exécutez le test :
      python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
      
    4. Vérifier la sortie et confirmer le résultat.
  • mise en gardeLes images de référence doivent être claires et distinctives.

3. la détection spontanée

  • Description fonctionnelleReconnaît automatiquement les objets dans les images sans qu'il soit nécessaire d'entrer des invites.
  • procédure: :
    1. Assurez-vous que le modèle est chargé avec un vocabulaire pré-entraîné (plus de 1200 catégories prises en charge).
    2. Exécuter la commande :
      python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
      
    3. Affichez les résultats et tous les corps seront étiquetés.
  • Méthode d'ajustementSi la détection est incomplète, le nombre maximum de détections peut être augmenté :
    --max_det 1000
    

4. conversion et déploiement du modèle

  • Description fonctionnelleYOLOE : Convertir YOLOE au format YOLOv8/YOLO11 pour le déployer sur différents appareils.
  • procédure: :
    1. Installer l'outil d'exportation :
      pip install onnx coremltools onnxslim
      
    2. Exécutez la commande export :
      python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
      
    3. Le format de sortie prend en charge TensorRT (GPU) ou CoreML (iPhone).
  • Données de performance: sur le GPU T4.yoloe-v8l-seg.pt Le nombre d'images par seconde était de 102,5 ; sur l'iPhone 12, il était de 27,2.

5. la formation de modèles personnalisés

  • Description fonctionnelleEntraînez YOLOE avec votre propre ensemble de données.
  • procédure: :
    1. Préparer un jeu de données tel que Objects365v1 ou GQA.
    2. Générer des annotations de segmentation :
      python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
      
    3. Générer un cache de formation :
      python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
      
    4. Entraînement à la course à pied :
      python train_seg.py
      
    5. Vérifier l'effet :
      python val.py
      

Autres outils

  • Démonstration en ligneDémarrer l'interface avec Gradio : Démarrer l'interface avec Gradio :
    pip install gradio==4.42.0
    python app.py
    

    entretiens http://127.0.0.1:7860.

 

scénario d'application

  1. le contrôle de la sécurité
    Détection de personnes ou d'objets en temps réel dans la vidéo, étiquetage des contours pour la gestion de la sécurité.
  2. transport intelligent
    Identifier les véhicules et les piétons sur la route pour faciliter l'analyse du trafic ou la conduite autonome.
  3. contrôle de la qualité industrielle
    La détection des défauts des pièces à l'aide d'indices visuels améliore la productivité.
  4. la recherche scientifique
    Traite les images expérimentales, étiquette automatiquement les objets et accélère le traitement des données.

 

QA

  1. Quelle est la différence entre YOLOE et YOLOv8 ?
    YOLOE prend en charge la détection de scènes ouvertes (textuelles, visuelles, non guidées), alors que YOLOv8 est limité à des catégories fixes.
  2. Besoin d'un GPU ?
    Le CPU peut fonctionner, mais le GPU (par exemple CUDA) sera plus rapide.
  3. Que se passe-t-il si le test n'est pas précis ?
    L'abaissement du seuil de confiance (--conf 0.001) ou augmenter le nombre de tests (--max_det 1000).
  4. Quels sont les appareils pris en charge ?
    Support pour PC (TensorRT), iPhone (CoreML) et beaucoup d'autres appareils.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...