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.

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
- 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
- Clonage du code
Téléchargez le projet YOLOE sur GitHub :
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
- 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
- Télécharger le modèle pré-entraîné
YOLOE propose une variété de modèles, tels queyoloe-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")
- 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: :
- Préparer des images telles que
bus.jpg
. - 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
- Affichez les résultats et l'image sera étiquetée avec les objets détectés.
- Préparer des images telles que
- 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: :
- Préparer des images de référence et des images cibles.
- Formation de modules de repères visuels :
python tools/convert_segm2det.py python train_vp.py python tools/get_vp_segm.py
- Exécutez le test :
python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
- 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: :
- Assurez-vous que le modèle est chargé avec un vocabulaire pré-entraîné (plus de 1200 catégories prises en charge).
- Exécuter la commande :
python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
- 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: :
- Installer l'outil d'exportation :
pip install onnx coremltools onnxslim
- Exécutez la commande export :
python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
- Le format de sortie prend en charge TensorRT (GPU) ou CoreML (iPhone).
- Installer l'outil d'exportation :
- 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: :
- Préparer un jeu de données tel que Objects365v1 ou GQA.
- 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
- 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
- Entraînement à la course à pied :
python train_seg.py
- 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
- 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é. - transport intelligent
Identifier les véhicules et les piétons sur la route pour faciliter l'analyse du trafic ou la conduite autonome. - contrôle de la qualité industrielle
La détection des défauts des pièces à l'aide d'indices visuels améliore la productivité. - la recherche scientifique
Traite les images expérimentales, étiquette automatiquement les objets et accélère le traitement des données.
QA
- 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. - Besoin d'un GPU ?
Le CPU peut fonctionner, mais le GPU (par exemple CUDA) sera plus rapide. - 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
). - Quels sont les appareils pris en charge ?
Support pour PC (TensorRT), iPhone (CoreML) et beaucoup d'autres appareils.
© déclaration de droits d'auteur
文章版权归 Cercle de partage de l'IA 所有,未经允许请勿转载。
Articles connexes
Pas de commentaires...