Allgemeine Einführung
YOLOE ist ein Open-Source-Projekt, das von der Multimedia Intelligence Group (THU-MIG) der Tsinghua University School of Software entwickelt wurde und den vollständigen Namen "You Only Look Once Eye" trägt. Es basiert auf dem PyTorch-Framework und gehört zu YOLO Eine Erweiterung der Serie, die jedes Objekt in Echtzeit erkennt und segmentiert. Das Hauptmerkmal des auf GitHub gehosteten Projekts ist, dass es drei Modi unterstützt: textuelle Hinweise, visuelle Hinweise und unaufgeforderte Erkennung. Die Benutzer können ein Ziel mit einem Text oder einem Bild angeben, oder das Modell kann automatisch über 1200 Objekte erkennen. Offizielle Daten zeigen, dass YOLOE auf dem LVIS-Datensatz 1,4-mal schneller als YOLO-Worldv2 und dreimal billiger zu trainieren ist, wobei die hohe Genauigkeit erhalten bleibt. Das Modell kann außerdem nahtlos und ohne zusätzlichen Aufwand in YOLOv8 oder YOLO11 konvertiert werden, so dass es sich für den Einsatz auf mehreren Geräten eignet.
Funktionsliste
- Unterstützt die Objekterkennung in Echtzeit zur schnellen Identifizierung von Zielen in Bildern oder Videos.
- Bietet eine Funktion zur Instanzsegmentierung, um Objekte genau zu umreißen.
- Unterstützt die Erkennung von Textaufforderungen, wobei der Benutzer einen Text eingibt, um das Erkennungsziel festzulegen.
- Ermöglicht die visuelle Erkennung ähnlicher Objekte anhand eines Bildes.
- Der integrierte No-Prompt-Modus erkennt automatisch über 1200 gängige Objekte.
- Das Modell kann mit YOLOv8/YOLO11 neu parametrisiert werden Kein Inferenz-Overhead.
- Bietet eine Vielzahl von vortrainierten Modellen (S/M/L-Skala) zur Unterstützung unterschiedlicher Leistungsanforderungen.
- Offener Quellcode und Dokumentation für Entwickler zur Änderung und Erweiterung.
Hilfe verwenden
Die Nutzung von YOLOE gliedert sich in zwei Teile: Installation und Betrieb. Im Folgenden werden die einzelnen Schritte beschrieben, um sicherzustellen, dass die BenutzerInnen einfach loslegen können.
Einbauverfahren
- Vorbereiten der Umgebung
Benötigt Python 3.10 und PyTorch. Es wird empfohlen, Conda zur Erstellung einer virtuellen Umgebung zu verwenden:
conda create -n yoloe python=3.10 -y
conda activate yoloe
- Klonen von Code
Laden Sie das YOLOE-Projekt von GitHub herunter:
git clone https://github.com/THU-MIG/yoloe.git
cd yoloe
- Installation von Abhängigkeiten
Installieren Sie die erforderlichen Bibliotheken, einschließlich CLIP und 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
- Herunterladen des vortrainierten Modells
YOLOE bietet eine Vielzahl von Modellen an, wie zum Beispielyoloe-v8l-seg.pt
. Laden Sie mit dem folgenden Befehl herunter:
pip install huggingface-hub==0.26.3
huggingface-cli download jameslahm/yoloe yoloe-v8l-seg.pt --local-dir pretrain
Oder laden Sie es automatisch mit Python:
from ultralytics import YOLOE
model = YOLOE.from_pretrained("jameslahm/yoloe-v8l-seg.pt")
- Überprüfen der Installation
Führen Sie den Testbefehl aus, um zu prüfen, ob die Umgebung in Ordnung ist:python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
Hauptfunktionen
1. die Erkennung von Textmeldungen
- Funktionelle Beschreibung: Geben Sie einen Text ein, um das entsprechende Objekt zu erkennen.
- Verfahren::
- Bereiten Sie Bilder vor, wie zum Beispiel
bus.jpg
. - Führen Sie den Befehl aus und geben Sie das Ziel an (z. B. "Mensch, Hund, Katze"):
python predict_text_prompt.py --source ultralytics/assets/bus.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --names person dog cat --device cuda:0
- Zeigen Sie die Ergebnisse an und das Bild wird mit den erkannten Objekten beschriftet.
- Bereiten Sie Bilder vor, wie zum Beispiel
- Methode der AnpassungDie Konfidenzschwelle kann gesenkt werden, wenn eine Erkennung verpasst wird:
--conf 0.001
2. visuelle Erkennung von Hinweisen
- Funktionelle BeschreibungErkennung ähnlicher Objekte anhand von Referenzbildern.
- Verfahren::
- Bereiten Sie Referenz- und Zielbilder vor.
- Training visueller Cue-Module:
python tools/convert_segm2det.py python train_vp.py python tools/get_vp_segm.py
- Führen Sie den Test durch:
python predict_visual_prompt.py --source test.jpg --ref reference.jpg --checkpoint pretrain/yoloe-v8l-seg.pt
- Überprüfen Sie die Ausgabe und bestätigen Sie das Ergebnis.
- caveatReferenzbilder müssen klar und unverwechselbar sein.
3. unaufgeforderte Erkennung
- Funktionelle BeschreibungAutomatisches Erkennen von Objekten in Bildern, ohne dass Sie eine Eingabeaufforderung eingeben müssen.
- Verfahren::
- Vergewissern Sie sich, dass das Modell mit einem vorab trainierten Vokabular geladen ist (über 1200 Kategorien werden unterstützt).
- Befehl ausführen:
python predict_prompt_free.py --source test.jpg --checkpoint pretrain/yoloe-v8l-seg.pt --device cuda:0
- Zeigen Sie die Ergebnisse an, und alle Körper werden gekennzeichnet.
- Methode der AnpassungWenn die Erkennung unvollständig ist, kann die maximale Anzahl der Erkennungen erhöht werden:
--max_det 1000
4. die Modellkonvertierung und -bereitstellung
- Funktionelle BeschreibungKonvertierung von YOLOE in das YOLOv8/YOLO11-Format für den Einsatz auf verschiedenen Geräten.
- Verfahren::
- Installieren Sie das Exportwerkzeug:
pip install onnx coremltools onnxslim
- Führen Sie den Befehl export aus:
python export.py --checkpoint pretrain/yoloe-v8l-seg.pt
- Das Ausgabeformat unterstützt TensorRT (GPU) oder CoreML (iPhone).
- Installieren Sie das Exportwerkzeug:
- Leistungsdaten: auf der T4-GPU.
yoloe-v8l-seg.pt
Die FPS lagen bei 102,5; auf dem iPhone 12 waren es 27,2.
5. die Ausbildung von benutzerdefinierten Modellen
- Funktionelle Beschreibung: Trainieren Sie YOLOE mit Ihrem eigenen Datensatz.
- Verfahren::
- Bereiten Sie ein Dataset wie Objects365v1 oder GQA vor.
- Erzeugen Sie Segmentierungskommentare:
python tools/generate_sam_masks.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train.json
- Erzeugen Sie einen Trainings-Cache:
python tools/generate_grounding_cache.py --img-path ../datasets/Objects365v1/images/train --json-path ../datasets/Objects365v1/annotations/objects365_train_segm.json
- Lauftraining:
python train_seg.py
- Überprüfen Sie die Wirkung:
python val.py
Andere Werkzeuge
- Web-DemoStarten Sie die Schnittstelle mit Gradio:
pip install gradio==4.42.0 python app.py
Interviews
http://127.0.0.1:7860
.
Anwendungsszenario
- Sicherheitsüberwachung
Erkennung von Personen oder Objekten in Echtzeit im Video, Kennzeichnung von Umrissen für das Sicherheitsmanagement. - intelligenter Verkehr
Identifizierung von Fahrzeugen und Fußgängern auf der Straße zur Unterstützung der Verkehrsanalyse oder des autonomen Fahrens. - industrielle Qualitätskontrolle
Die Erkennung von Teilefehlern mit visuellen Hinweisen verbessert die Produktivität. - wissenschaftliche Forschung
Verarbeitet experimentelle Bilder, beschriftet automatisch Objekte und beschleunigt die Datenverarbeitung.
QA
- Was ist der Unterschied zwischen YOLOE und YOLOv8?
YOLOE unterstützt die Erkennung offener Szenen (textuell, visuell, unaufgefordert), während YOLOv8 auf feste Kategorien beschränkt ist und ohne zusätzlichen Aufwand in YOLOv8 konvertiert werden kann. - Brauchen Sie eine GPU?
Nicht erforderlich.CPU kann laufen, aber GPU (z.B. CUDA) wird schneller sein. - Was ist, wenn der Test nicht genau ist?
Das Absenken der Vertrauensschwelle (--conf 0.001
) oder die Anzahl der Tests erhöhen (--max_det 1000
). - Welche Geräte werden unterstützt?
Unterstützung für PC (TensorRT), iPhone (CoreML) und viele andere Geräte.