Ultralytics VS Code Erweiterung
Ansehen: Wie man die Ultralytics Visual Studio Code Extension verwendet | Sofort einsatzbereite Code-Snippets | Ultralytics YOLO 🎉
Funktionen und Vorteile
✅ Sind Sie ein Data Scientist oder Machine-Learning-Ingenieur, der Computer-Vision-Anwendungen mit Ultralytics entwickelt?
✅ Verabscheuen Sie es, immer wieder die gleichen Codeblöcke zu schreiben?
✅ Vergessen Sie ständig die Argumente oder Standardwerte für die Methoden export, predict, train, track oder val?
✅ Möchten Sie mit Ultralytics loslegen und hätten gerne eine einfachere Möglichkeit, Codebeispiele zu referenzieren oder auszuführen?
✅ Möchten Sie Ihren Entwicklungszyklus bei der Arbeit mit Ultralytics beschleunigen?
Wenn Sie Visual Studio Code verwenden und eine der obigen Fragen mit 'Ja' beantwortet haben, dann ist die Ultralytics-Snippets-Erweiterung für VS Code hier, um Ihnen zu helfen! Lesen Sie weiter, um mehr über die Erweiterung zu erfahren, wie Sie sie installieren und wie Sie sie verwenden.
Beispielcode mit Ultralytics YOLO in weniger als 20 Sekunden ausführen! 🚀
Inspiriert von der Ultralytics Community
Die Inspiration zum Bau dieser Erweiterung kam von der Ultralytics Community. Fragen aus der Community zu ähnlichen Themen und Beispielen befeuerten die Entwicklung für dieses Projekt. Da einige Mitglieder des Ultralytics Teams ebenfalls VS Code verwenden, nutzen wir es auch als Werkzeug, um unsere Arbeit zu beschleunigen ⚡.
Warum VS Code?
Visual Studio Code ist bei Entwicklern weltweit äußerst beliebt und wurde in der Stack Overflow Developer Survey in den Jahren 2021, 2022, 2023 und 2024 als das beliebteste Tool eingestuft. Aufgrund des hohen Grades an Anpassbarkeit, der integrierten Funktionen, der breiten Kompatibilität und der Erweiterbarkeit von VS Code ist es keine Überraschung, dass so viele Entwickler es verwenden. Angesichts der Popularität in der breiteren Entwickler-Community und innerhalb der Ultralytics Discord-, Discourse-, Reddit- und GitHub-Communities war es sinnvoll, eine VS Code-Erweiterung zu entwickeln, um Ihren Workflow zu optimieren und Ihre Produktivität zu steigern.
Möchten Sie uns wissen lassen, was Sie für die Entwicklung von Code verwenden? Besuchen Sie unsere Discourse Community-Umfrage und lassen Sie es uns wissen! Wenn Sie schon dabei sind, schauen Sie sich doch einige unserer beliebtesten Computer Vision-, Machine Learning-, KI- und Entwickler-Memes an oder posten Sie sogar Ihre Favoriten!
Installation der Erweiterung
Hinweis
Jede Code-Umgebung, die die Installation von VS Code-Erweiterungen ermöglicht, sollte mit der Ultralytics-Snippets-Erweiterung kompatibel sein. Nach der Veröffentlichung der Erweiterung wurde festgestellt, dass neovim mit VS Code-Erweiterungen kompatibel gemacht werden kann. Um mehr zu erfahren, siehe den neovim
Installationsabschnitt der Readme im Ultralytics-Snippets-Repository.
Installation in VS Code
-
Navigieren Sie zum Erweiterungsmenü in VS Code oder verwenden Sie die Tastenkombination Strg+Umschalt ⇑+x und suchen Sie nach Ultralytics-Snippets.
-
Klicken Sie auf die Schaltfläche Installieren.
Installation über den VS Code Extension Marketplace
-
Besuchen Sie den VS Code Extension Marketplace und suchen Sie nach Ultralytics-Snippets oder gehen Sie direkt zur Erweiterungsseite im VS Code Marketplace.
-
Klicken Sie auf die Schaltfläche Installieren und erlauben Sie Ihrem Browser, eine VS Code-Sitzung zu starten.
-
Folgen Sie allen Anweisungen, um die Erweiterung zu installieren.
Visual Studio Code Extension Marketplace-Seite für Ultralytics-Snippets
Verwendung der Ultralytics-Snippets-Erweiterung
-
🧠 Intelligente Codevervollständigung: Schreiben Sie Code schneller und genauer mit erweiterten Codevervollständigungsvorschlägen, die auf die Ultralytics API zugeschnitten sind.
-
⌛ Erhöhte Entwicklungsgeschwindigkeit: Sparen Sie Zeit, indem Sie sich wiederholende Programmieraufgaben eliminieren und vorgefertigte Codeblock-Snippets nutzen.
-
🔬 Verbesserte Codequalität: Schreiben Sie saubereren, konsistenteren und fehlerfreien Code mit intelligenter Codevervollständigung.
-
💎 Optimierter Workflow: Konzentrieren Sie sich auf die Kernlogik Ihres Projekts, indem Sie gängige Aufgaben automatisieren.
Überblick
Die Erweiterung funktioniert nur, wenn der Sprachmodus für Python 🐍 konfiguriert ist. Dies dient dazu, zu verhindern, dass Snippets bei der Arbeit mit anderen Dateitypen eingefügt werden. Alle Snippets haben ein Präfix, das mit ultra
beginnt, und einfaches Tippen von ultra
in Ihrem Editor nach der Installation der Erweiterung zeigt eine Liste möglicher Snippets zur Verwendung an. Sie können auch die VS Code Befehlspalette mit Strg+Shift ⇑+p öffnen und den Befehl ausführen Snippets: Insert Snippet
.
Code-Snippet-Felder
Viele Snippets haben "Felder" mit Standardplatzhalterwerten oder -namen. Zum Beispiel könnte die Ausgabe der vorhersagen Methode in einer Python-Variable namens r
, results
, detections
, preds
oder einem anderen Namen gespeichert werden, den ein Entwickler wählt. Aus diesem Grund enthalten Snippets "Felder". Durch Drücken der Tab ⇥ -Taste auf Ihrer Tastatur, nachdem ein Snippet eingefügt wurde, bewegt sich Ihr Cursor schnell zwischen den Feldern. Sobald ein Feld ausgewählt ist, ändert die Eingabe eines neuen Variablennamens diese Instanz, aber auch jede andere Instanz im Snippet-Code für diese Variable!
Nach dem Einfügen des Snippets, Umbenennen von model
als world_model
aktualisiert alle Instanzen. Durch Drücken von Tab ⇥ gelangt man zum nächsten Feld, wodurch ein Dropdown-Menü geöffnet wird, in dem eine Modellskala ausgewählt werden kann. Durch das Wechseln zum nächsten Feld öffnet sich ein weiteres Dropdown-Menü, in dem entweder world
oder worldv2
Modellvariante ausgewählt werden kann.
Code-Snippet-Vervollständigungen
Noch kürzere Shortcuts
Es ist nicht erforderlich, das vollständige Präfix des Snippets einzugeben oder überhaupt am Anfang des Snippets mit der Eingabe zu beginnen. Siehe das Beispiel im Bild unten.
Die Snippets sind so beschreibend wie möglich benannt, was aber bedeutet, dass viel eingegeben werden muss, was kontraproduktiv wäre, wenn das Ziel eine schnellereArbeitsweise ist. Glücklicherweise können Benutzer in VS Code ultra.example-yolo-predict
, example-yolo-predict
, yolo-predict
oder sogar ex-yolo-p
eingeben und trotzdem die gewünschte Snippet-Option erreichen! Wenn das gewünschte Snippet eigentlich ultra.example-yolo-predict-kwords
war, dann kann man einfach mit den Pfeiltasten der Tastatur ↑ oder ↓ das gewünschte Snippet markieren und Enter ↵ oder Tab ⇥ drücken, um den korrekten Codeblock einzufügen.
Die Eingabe von ex-yolo-p
wird immer noch zum richtigen Snippet führen.
Snippet-Kategorien
Dies sind die aktuellen Snippet-Kategorien, die für die Ultralytics-Snippets-Erweiterung verfügbar sind. In Zukunft werden weitere hinzugefügt. Achten Sie daher auf Updates und aktivieren Sie automatische Updates für die Erweiterung. Sie können auch zusätzliche Snippets anfordern, wenn Sie der Meinung sind, dass etwas fehlt.
Kategorie | Startpräfix | Beschreibung |
---|---|---|
Beispiele | ultra.examples |
Beispielcode zum Lernen oder für den Einstieg in Ultralytics. Die Beispiele sind Kopien von Code aus Dokumentationsseiten oder ähneln diesem. |
Kwargs | ultra.kwargs |
Beschleunigen Sie die Entwicklung durch Hinzufügen von Snippets für die Methoden train, track, predict und val mit allen Schlüsselwortargumenten und Standardwerten. |
Importe | ultra.imports |
Snippets zum schnellen Importieren gängiger Ultralytics-Objekte. |
Modelle | ultra.yolo |
Codeblöcke zum Initialisieren verschiedener einfügen Modelle (yolo , sam , rtdetr , usw.), einschließlich Dropdown-Konfigurationsoptionen. |
Ergebnisse | ultra.result |
Codeblöcke für gängige Operationen bei der Arbeit mit Inferenz-Ergebnissen. |
Dienstprogramme | ultra.util |
Bietet schnellen Zugriff auf gängige Dienstprogramme, die in das Ultralytics-Paket integriert sind. Erfahren Sie mehr darüber auf der Seite Einfache Dienstprogramme. |
Lernen mit Beispielen
Die ultra.examples
Snippets sind sehr nützlich für alle, die lernen möchten, wie man mit den Grundlagen der Arbeit mit Ultralytics YOLO beginnt. Beispiel-Snippets sind dazu gedacht, nach dem Einfügen einmal ausgeführt zu werden (einige haben auch Dropdown-Optionen). Ein Beispiel hierfür ist in der Animation unter zu sehen oben dieser Seite. Nachdem das Snippet eingefügt wurde, wird der gesamte Code ausgewählt und interaktiv mit Shift ⇑+Enter ↵.
Beispiel
Genau wie die Animation oben auf der oben dieser Seite zeigt, können Sie das Snippet ultra.example-yolo-predict
verwenden, um das folgende Codebeispiel einzufügen. Nach dem Einfügen ist die einzige konfigurierbare Option die Modellskala, die eine der folgenden sein kann: n
, s
, m
, l
, oder x
.
from ultralytics import ASSETS, YOLO
model = YOLO("yolo11n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")
for result in results:
print(result.boxes.data)
# result.show() # uncomment to view each result image
Beschleunigung der Entwicklung
Das Ziel für Snippets außer dem ultra.examples
ist, die Entwicklung bei der Arbeit mit Ultralytics zu vereinfachen und zu beschleunigen. Ein gängiger Codeblock, der in vielen Projekten verwendet wird, ist das Iterieren der Liste der Results
die von der Modell- vorhersagen Methode zurückgegeben wird. Das ultra.result-loop
Snippet kann dabei helfen.
Beispiel
Verwendung des ultra.result-loop
fügt den folgenden Standardcode (einschließlich Kommentare) ein.
# reference https://docs.ultralytics.com/modes/predict/#working-with-results
for result in results:
result.boxes.data # torch.Tensor array
Da Ultralytics jedoch zahlreiche Aufgabenunterstützt, kann das Arbeiten mit Inferenz-Ergebnissen Es gibt noch weitere Results
Attribute, auf die Sie möglicherweise zugreifen möchten, und hier kommen die Snippet-Felder ins Spiel.
Sobald Sie zum boxes
Feld navigiert haben, erscheint ein Dropdown-Menü, in dem Sie bei Bedarf ein anderes Attribut auswählen können.
Schlüsselwortargumente
Es gibt über 💯 Schlüsselwortargumente für alle verschiedenen Ultralytics Aufgaben und Modi! Das ist eine Menge, an die man sich erinnern muss, und es kann leicht vergessen werden, wenn das Argument save_frame
oder save_frames
(übrigens ist es definitiv save_frames
). Hier können die ultra.kwargs
Snippets helfen!
Beispiel
Um die vorhersagen Methode einzufügen, einschließlich aller Inferenzargumente., verwenden Sie ultra.kwargs-predict
, wodurch der folgende Code (einschließlich Kommentare) eingefügt wird.
model.predict(
source=src, # (str, optional) source directory for images or videos
imgsz=640, # (int | list) input images size as int or list[w,h] for predict
conf=0.25, # (float) minimum confidence threshold
iou=0.7, # (float) intersection over union (IoU) threshold for NMS
vid_stride=1, # (int) video frame-rate stride
stream_buffer=False, # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)
visualize=False, # (bool) visualize model features
augment=False, # (bool) apply image augmentation to prediction sources
agnostic_nms=False, # (bool) class-agnostic NMS
classes=None, # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
retina_masks=False, # (bool) use high-resolution segmentation masks
embed=None, # (list[int], optional) return feature vectors/embeddings from given layers
show=False, # (bool) show predicted images and videos if environment allows
save=True, # (bool) save prediction results
save_frames=False, # (bool) save predicted individual video frames
save_txt=False, # (bool) save results as .txt file
save_conf=False, # (bool) save results with confidence scores
save_crop=False, # (bool) save cropped images with results
stream=False, # (bool) for processing long videos or numerous images with reduced memory usage by returning a generator
verbose=True, # (bool) enable/disable verbose inference logging in the terminal
)
Dieses Snippet enthält Felder für alle Schlüsselwortargumente, aber auch für model
und src
, falls Sie eine andere Variable in Ihrem Code verwendet haben. In jeder Zeile, die ein Schlüsselwortargument enthält, ist eine kurze Beschreibung zur Referenz enthalten.
Alle Code-Snippets
Am besten finden Sie heraus, welche Snippets verfügbar sind, indem Sie die Erweiterung herunterladen, installieren und ausprobieren! Wenn Sie neugierig sind und sich die Liste vorher ansehen möchten, können Sie das Repo oder die Erweiterungsseite im VS Code Marketplace besuchen, um die Tabellen für alle verfügbaren Snippets anzuzeigen.
Fazit
Die Ultralytics-Snippets-Erweiterung für VS Code wurde entwickelt, um Data Scientists und Machine-Learning-Ingenieuren die Möglichkeit zu geben, Computer Vision-Anwendungen mit Ultralytics YOLO effizienter zu erstellen. Durch die Bereitstellung vorgefertigter Code-Snippets und nützlicher Beispiele helfen wir Ihnen, sich auf das Wesentliche zu konzentrieren: die Entwicklung innovativer Lösungen. Bitte teilen Sie uns Ihr Feedback mit, indem Sie die Erweiterungsseite im VS Code Marketplace besuchen und eine Bewertung hinterlassen. ⭐
FAQ
Wie kann ich ein neues Snippet anfordern?
Neue Snippets können über die Issues im Ultralytics-Snippets Repo angefordert werden.
Wie viel kostet die Ultralytics-Erweiterung?
Es ist 100% kostenlos!
Warum sehe ich keine Code-Snippet-Vorschau?
VS Code verwendet die Tastenkombination Strg+Leertaste, um mehr/weniger Informationen im Vorschaufenster anzuzeigen. Wenn beim Eingeben eines Code-Snippet-Präfixes keine Snippet-Vorschau angezeigt wird, sollte die Verwendung dieser Tastenkombination die Vorschau wiederherstellen.
Wie deaktiviere ich die Erweiterungsempfehlung in Ultralytics?
Wenn Sie VS Code verwenden und eine Meldung erhalten, die Sie auffordert, die Ultralytics-Snippets-Erweiterung zu installieren, und Sie diese Meldung nicht mehr sehen möchten, gibt es zwei Möglichkeiten, diese Meldung zu deaktivieren.
-
Installieren Sie Ultralytics-Snippets, und die Meldung wird nicht mehr angezeigt 😆!
-
Sie können verwenden
yolo settings vscode_msg False
um die Anzeige der Meldung zu deaktivieren, ohne die Erweiterung installieren zu müssen. Weitere Informationen finden Sie unter Ultralytics Einstellungen auf der Schnellstart Seite, falls Sie damit nicht vertraut sind.
Ich habe eine Idee für ein neues Ultralytics Code-Snippet. Wie kann ich es hinzufügen lassen?
Besuchen Sie das Ultralytics-Snippets Repo und eröffnen Sie ein Issue oder einen Pull Request!
Wie deinstalliere ich die Ultralytics-Snippets-Erweiterung?
Wie jede andere VS Code-Erweiterung können Sie sie deinstallieren, indem Sie zum Menü "Erweiterungen" in VS Code navigieren. Suchen Sie die Ultralytics-Snippets-Erweiterung im Menü und klicken Sie auf das Zahnradsymbol (⚙) und dann auf "Deinstallieren", um die Erweiterung zu entfernen.