Ultralytics VS Code-Erweiterung



Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉

Funktionen und Vorteile

✅ Bist du ein Data Scientist oder Machine Learning-Ingenieur, der Computer-Vision-Anwendungen mit Ultralytics entwickelt?

✅ Nervt es dich, ständig dieselben Codeblöcke neu schreiben zu müssen?

✅ Vergisst du auch ständig die Argumente oder Standardwerte für die export-, predict-, train-, track- oder val-Methoden?

✅ Möchtest du mit Ultralytics starten und hättest gerne eine einfachere Möglichkeit, Code-Beispiele nachzuschlagen oder auszuführen?

✅ Möchtest du deinen Entwicklungszyklus bei der Arbeit mit Ultralytics beschleunigen?

Wenn du Visual Studio Code nutzt und eine der obigen Fragen mit 'Ja' beantwortet hast, dann ist die Ultralytics-snippets Erweiterung für VS Code genau das Richtige für dich! Lies weiter, um mehr über die Erweiterung zu erfahren und wie du sie installierst und verwendest.


Snippet Prediction Preview
Run example code using Ultralytics YOLO in under 20 seconds! 🚀

Inspiriert durch die Ultralytics Community

Die Inspiration für diese Erweiterung kam aus der Ultralytics Community. Fragen aus der Community zu ähnlichen Themen und Beispielen trieben die Entwicklung dieses Projekts voran. Außerdem nutzen viele Mitglieder des Ultralytics-Teams VS Code, um ihre eigene Arbeit zu beschleunigen ⚡.

Warum VS Code?

Visual Studio Code ist bei Entwicklern weltweit extrem beliebt und wurde in der Stack Overflow Developer Survey in den Jahren 2021, 2022, 2023 und 2024 als beliebteste IDE eingestuft. Aufgrund des hohen Anpassungsgrads, der integrierten Funktionen, der breiten Kompatibilität und der Erweiterbarkeit von VS Code ist es keine Überraschung, dass so viele Entwickler sie nutzen. Angesichts der Beliebtheit in der breiteren Entwickler-Community und innerhalb der Ultralytics Discord-, Discourse-, Reddit- und GitHub-Communities war es nur sinnvoll, eine VS Code-Erweiterung zu entwickeln, um deinen Workflow zu optimieren und deine Produktivität zu steigern.

Möchtest du uns wissen lassen, was du zum Programmieren verwendest? Gehe zu unserer Discourse-Community-Umfrage und lass es uns wissen! Wenn du schon dort bist, schau dir vielleicht auch einige unserer liebsten Computer-Vision-, Machine-Learning-, KI- und Entwickler-Memes an oder poste dein eigenes!

Installation der Erweiterung

Hinweis

Jede Code-Umgebung, die die Installation von VS Code-Erweiterungen erlaubt, sollte mit der Ultralytics-snippets-Erweiterung kompatibel sein. Nach der Veröffentlichung der Erweiterung wurde entdeckt, dass neovim mit VS Code-Erweiterungen kompatibel gemacht werden kann. Weitere Informationen findest du im Abschnitt zur neovim-Installation in der Readme des Ultralytics-Snippets-Repositorys.

Installation in VS Code

  1. Navigiere zum Extensions-Menü in VS Code oder verwende die Tastenkombination Ctrl+Shift ⇑+x und suche nach Ultralytics-snippets.

  2. Klicke auf den Button Install.


VS Code extension menu

Installation über den VS Code Extension Marketplace

  1. Besuche den VS Code Extension Marketplace und suche nach Ultralytics-snippets oder gehe direkt zur Erweiterungsseite auf dem VS Code Marketplace.

  2. Klicke auf den Button Install und erlaube deinem Browser, eine VS Code-Sitzung zu starten.

  3. Folge den Anweisungen zur Installation der Erweiterung.


VS Code marketplace extension install
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets

Verwendung der Ultralytics-Snippets-Erweiterung

  • 🧠 Intelligente Codevervollständigung: Schreibe Code schneller und präziser mit erweiterten Vervollständigungsvorschlägen, die auf die Ultralytics API zugeschnitten sind.

  • Erhöhte Entwicklungsgeschwindigkeit: Spare Zeit durch den Wegfall repetitiver Coding-Aufgaben und die Nutzung vorgefertigter Code-Snippets.

  • 🔬 Verbesserte Codequalität: Schreibe saubereren, konsistenteren und fehlerfreien Code mit intelligenter Codevervollständigung.

  • 💎 Optimierter Workflow: Bleib auf die Kernlogik deines Projekts fokussiert, indem du häufige Aufgaben automatisierst.

Übersicht

Die Erweiterung funktioniert nur, wenn der Language Mode auf Python 🐍 eingestellt ist. Dies dient dazu, zu verhindern, dass Snippets bei anderen Dateitypen eingefügt werden. Alle Snippets haben ein Präfix, das mit ultra beginnt. Wenn du nach der Installation der Erweiterung einfach ultra in deinem Editor tippst, wird eine Liste der verfügbaren Snippets angezeigt. Du kannst auch die VS Code Command Palette mit Ctrl+Shift ⇑+p öffnen und den Befehl Snippets: Insert Snippet ausführen.

Code-Snippet-Felder

Viele Snippets haben "Felder" mit Platzhalterwerten oder Namen. Zum Beispiel könnte die Ausgabe der predict-Methode in einer Python-Variable namens r, results, detections, preds oder einem anderen Namen gespeichert werden, den der Entwickler wählt – genau deshalb enthalten Snippets "Felder". Wenn du nach dem Einfügen eines Snippets Tab ⇥ auf deiner Tastatur drückst, springt dein Cursor schnell zwischen diesen Feldern hin und her. Sobald ein Feld ausgewählt ist, ändert die Eingabe eines neuen Variablennamens nicht nur diese Stelle, sondern jede Instanz dieser Variable im Snippet-Code!


Multi-update field and options
After inserting snippet, renaming model as world_model updates all instances. Pressing Tab ⇥ moves to the next field, which opens a dropdown menu and allows for selection of a model scale, and moving to the next field provides another dropdown to choose either world or worldv2 model variant.

Code-Snippet-Vervollständigungen

Noch _kürzere_ Shortcuts

Es ist nicht erforderlich, das vollständige Präfix des Snippets zu tippen oder gar am Anfang des Snippets zu beginnen. Siehe das Beispiel im Bild unten.

Die Snippets sind so beschreibend wie möglich benannt, aber das bedeutet auch, dass es viel zu tippen gibt, was kontraproduktiv wäre, wenn das Ziel schnelleres Arbeiten ist. Glücklicherweise lässt VS Code Nutzer ultra.example-yolo-predict, example-yolo-predict, yolo-predict oder sogar ex-yolo-p tippen, um zur gewünschten Snippet-Option zu gelangen! Falls das beabsichtigte Snippet eigentlich ultra.example-yolo-predict-kwords war, markiere einfach mit den Pfeiltasten oder das gewünschte Snippet und drücke Enter ↵ oder Tab ⇥, um den richtigen Codeblock einzufügen.


VS Code incomplete code snippet preview
Typing ex-yolo-p will still arrive at the correct snippet.

Snippet-Kategorien

Dies sind die aktuell verfügbaren Snippet-Kategorien für die Ultralytics-snippets-Erweiterung. Weitere werden in Zukunft hinzugefügt, also halte Ausschau nach Updates und aktiviere die automatischen Updates für die Erweiterung. Du kannst auch weitere Snippets anfordern, falls dir etwas fehlt.

KategorieStart-PräfixBeschreibung
Beispieleultra.examplesBeispielcode zum Lernen oder für den Einstieg in Ultralytics. Beispiele sind Kopien oder Anlehnungen an Code von Dokumentationsseiten.
Kwargsultra.kwargsBeschleunige die Entwicklung durch Snippets für train-, track-, predict- und val-Methoden mit allen Keyword-Argumenten und Standardwerten.
Importsultra.importsSnippets zum schnellen Importieren gängiger Ultralytics-Objekte.
Modelleultra.yoloFüge Codeblöcke zum Initialisieren verschiedener Modelle (yolo, sam, rtdetr usw.) ein, inklusive Dropdown-Konfigurationsoptionen.
Resultsultra.resultCodeblöcke für häufige Operationen bei der Arbeit mit Inferenz-Ergebnissen.
Dienstprogrammeultra.utilBietet schnellen Zugriff auf gängige Dienstprogramme, die im Ultralytics-Paket integriert sind. Erfahre 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 von Ultralytics YOLO beginnt. Beispiel-Snippets sind so konzipiert, dass sie nach dem Einfügen direkt ausführbar sind (einige haben auch Dropdown-Optionen). Ein Beispiel dafür zeigt die Animation am Anfang dieser Seite, wo nach dem Einfügen des Snippets der gesamte Code markiert und interaktiv mit Shift ⇑+Enter ↵ ausgeführt wird.

Beispiel

Genau wie die Animation am Anfang dieser Seite zeigt, kannst du das Snippet ultra.example-yolo-predict verwenden, um das folgende Codebeispiel einzufügen. Nach dem Einfügen ist die einzige konfigurierbare Option die Modellgröße, die eine der folgenden sein kann: n, s, m, l oder x.

from ultralytics import ASSETS, YOLO

model = YOLO("yolo26n.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

Entwicklung beschleunigen

Das Ziel der Snippets abseits von ultra.examples ist es, die Entwicklung bei der Arbeit mit Ultralytics einfacher und schneller zu machen. Ein häufiger Codeblock in vielen Projekten ist das Iterieren der Liste von Results, die von der Modell-Methode predict zurückgegeben wird. Das Snippet ultra.result-loop kann dabei helfen.

Beispiel

Die Verwendung von ultra.result-loop fügt den folgenden Standardcode (inklusive Kommentaren) 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 Aufgaben unterstützt, gibt es bei der Arbeit mit Inferenz-Ergebnissen weitere Results-Attribute, auf die du zugreifen möchtest – hier sind die Snippet-Felder besonders mächtig.


VS Code YOLO results visualization options
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.

Keyword-Argumente

Es gibt über 💯 Keyword-Argumente für all die verschiedenen Ultralytics-Aufgaben und -Modi! Das ist eine Menge, die man sich merken muss, und man vergisst leicht, ob das Argument save_frame oder save_frames heißt (es ist übrigens definitiv save_frames). Hier helfen die ultra.kwargs-Snippets weiter!

Beispiel

Um die predict-Methode inklusive aller Inferenz-Argumente einzufügen, verwende ultra.kwargs-predict, was den folgenden Code (inklusive Kommentaren) einfügt.

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 Keyword-Argumente, aber auch für model und src, falls du in deinem Code eine andere Variable verwendet hast. In jeder Zeile, die ein Keyword-Argument enthält, befindet sich eine kurze Beschreibung als Referenz.

Alle Code-Snippets

Der beste Weg, um herauszufinden, welche Snippets verfügbar sind, ist, die Erweiterung herunterzuladen und zu installieren, um sie auszuprobieren! Wenn du neugierig bist und vorher einen Blick auf die Liste werfen möchtest, kannst du das Repo oder die Erweiterungsseite auf dem VS Code Marketplace besuchen, um die Tabellen für alle verfügbaren Snippets anzusehen.

Fazit

Die Ultralytics-Snippets-Erweiterung für VS Code wurde entwickelt, um Data Scientists und Machine-Learning-Ingenieuren dabei zu helfen, Computer-Vision-Anwendungen mit Ultralytics YOLO effizienter zu erstellen. Durch die Bereitstellung vorgefertigter Code-Snippets und hilfreicher Beispiele unterstützen wir dich dabei, dich auf das Wesentliche zu konzentrieren: die Entwicklung innovativer Lösungen. Bitte teile uns dein Feedback mit, indem du die Erweiterungsseite auf dem VS Code Marketplace besuchst und eine Bewertung hinterlässt. ⭐

FAQ

Wie kann ich ein neues Snippet anfordern?

Neue Snippets können über Issues im Ultralytics-Snippets-Repo angefordert werden.

Wie viel kostet die Ultralytics-Erweiterung?

Sie ist 100% kostenlos!

Warum sehe ich keine Code-Snippet-Vorschau?

VS Code verwendet die Tastenkombination Ctrl+Space, um mehr oder weniger Informationen im Vorschaufenster anzuzeigen. Wenn du keine Snippet-Vorschau siehst, wenn du ein Code-Snippet-Präfix tippst, sollte die Verwendung dieser Tastenkombination die Vorschau wiederherstellen.

Wie deaktiviere ich die Erweiterungs-Empfehlung in Ultralytics?

Falls du VS Code verwendest und eine Nachricht erhalten hast, die dich auffordert, die Ultralytics-snippets-Erweiterung zu installieren, und du diese Nachricht nicht mehr sehen möchtest, gibt es zwei Wege, diese zu deaktivieren.

  1. Installiere Ultralytics-snippets und die Nachricht wird nicht mehr angezeigt 😆!

  2. Du kannst yolo settings vscode_msg False verwenden, um die Nachricht zu deaktivieren, ohne die Erweiterung installieren zu müssen. Du kannst mehr über die Ultralytics-Einstellungen auf der Quickstart-Seite erfahren, falls du damit noch nicht vertraut bist.

Ich habe eine Idee für ein neues Ultralytics-Code-Snippet, wie kann ich es hinzufügen lassen?

Besuche das Ultralytics-snippets-Repo und öffne ein Issue oder einen Pull Request!

Wie deinstalliere ich die Ultralytics-Snippets-Erweiterung?

Wie jede andere VS Code-Erweiterung kannst du sie deinstallieren, indem du zum Erweiterungsmenü in VS Code navigierst. Suche die Ultralytics-snippets-Erweiterung im Menü, klicke auf das Zahnradsymbol (⚙) und dann auf "Uninstall", um die Erweiterung zu entfernen.


VS Code extension menu

Kommentare