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 Data Scientist oder Machine-Learning-Ingenieur und entwickelst du Computer-Vision-Anwendungen mit Ultralytics?
✅ Hast du es satt, immer wieder dieselben Codeblöcke zu schreiben?
✅ Vergisst du ständig die Argumente oder Standardwerte für die Methoden export, predict, train, track oder val?
✅ Möchtest du mit Ultralytics loslegen und wünschst du dir eine einfachere Möglichkeit, Codebeispiele nachzuschlagen oder auszuführen?
✅ Möchtest du deinen Entwicklungszyklus bei der Arbeit mit Ultralytics beschleunigen?
Wenn du Visual Studio Code verwendest und eine der obigen Fragen mit „Ja“ beantwortet hast, hilft dir die Ultralytics-snippets-Erweiterung für VS Code! Lies weiter, um mehr über die Erweiterung, ihre Installation und ihre Verwendung zu erfahren.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Inspiriert von der Ultralytics Community#
Die Inspiration für die Entwicklung dieser Erweiterung kam aus der Ultralytics Community. Fragen aus der Community zu ähnlichen Themen und Beispielen haben die Entwicklung dieses Projekts vorangetrieben. Außerdem verwenden viele Mitglieder des Ultralytics-Teams VS Code, um ihre eigene Arbeit zu beschleunigen ⚡.
Warum VS Code?#
Visual Studio Code ist bei Entwicklern weltweit äußerst beliebt und belegte in der Stack Overflow Developer Survey in den Jahren 2021, 2022, 2023 und 2024 den ersten Platz. Angesichts des hohen Anpassungsgrads, der integrierten Funktionen, der breiten Kompatibilität und der Erweiterbarkeit von VS Code ist es nicht überraschend, dass so viele Entwickler es verwenden. Aufgrund seiner Beliebtheit in der Entwickler-Community insgesamt sowie in den Ultralytics-Discord-, Discourse-, Reddit- und GitHub-Communities lag es nahe, eine VS Code-Erweiterung zu entwickeln, die deinen Arbeitsablauf vereinfacht und deine Produktivität steigert.
Möchtest du uns mitteilen, womit du Code entwickelst? Besuche unsere Community-Umfrage auf Discourse und teile es uns mit! Sieh dir dort auch einige unserer liebsten Memes zu Computer Vision, Machine Learning, KI und Entwicklung an oder veröffentliche dein eigenes Lieblings-Meme!
Erweiterung installieren#
Jede Code-Umgebung, in der sich VS Code-Erweiterungen installieren lassen, sollte mit der Ultralytics-snippets-Erweiterung kompatibel sein. Nach der Veröffentlichung der Erweiterung wurde festgestellt, dass sich neovim mit VS Code-Erweiterungen kompatibel machen lässt. Weitere Informationen findest du im Abschnitt zur Installation von neovim in der Readme des Ultralytics-Snippets-Repositorys.
Installation in VS Code#
-
Öffne das Erweiterungsmenü in VS Code oder verwende das Tastenkürzel Ctrl+Shift ⇑+x und suche nach Ultralytics-snippets.
-
Klicke auf die Schaltfläche Install.
Installation über den VS Code Extension Marketplace#
-
Besuche den VS Code Extension Marketplace und suche nach Ultralytics-snippets oder öffne direkt die Erweiterungsseite im VS Code Marketplace.
-
Klicke auf die Schaltfläche Install und erlaube deinem Browser, eine VS Code-Sitzung zu starten.
-
Folge den Anweisungen zur Installation der Erweiterung.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Ultralytics-Snippets-Erweiterung verwenden#
-
🧠 Intelligente Codevervollständigung: Schreibe dank fortschrittlicher, auf die Ultralytics API zugeschnittener Vorschläge schneller und präziser Code.
-
⌛ Höhere Entwicklungsgeschwindigkeit: Spare Zeit, indem du sich wiederholende Programmieraufgaben vermeidest und vorgefertigte Codeblock-Snippets nutzt.
-
🔬 Bessere Codequalität: Schreibe mit intelligenter Codevervollständigung saubereren, konsistenteren und fehlerfreien Code.
-
💎 Vereinfachter Arbeitsablauf: Konzentriere dich auf die Kernlogik deines Projekts, indem du häufige Aufgaben automatisierst.
Übersicht#
Die Erweiterung funktioniert nur, wenn der Sprachmodus auf Python 🐍 eingestellt ist. Dadurch wird verhindert, dass beim Arbeiten mit anderen Dateitypen Snippets eingefügt werden. Alle Snippets beginnen mit dem Präfix ultra. Wenn du nach der Installation der Erweiterung einfach ultra in deinen Editor eingibst, wird eine Liste möglicher Snippets angezeigt. Du kannst außerdem die VS Code-Befehlspalette mit Ctrl+Shift ⇑+p öffnen und den Befehl Snippets: Insert Snippet ausführen.
Felder von Code-Snippets#
Viele Snippets enthalten „Felder“ mit Platzhalterwerten oder -namen. So kann beispielsweise die Ausgabe der predict-Methode in einer Python-Variablen namens r, results, detections, preds oder einem beliebigen anderen Namen gespeichert werden. Deshalb enthalten Snippets „Felder“. Wenn du nach dem Einfügen eines Snippets die Tab ⇥-Taste drückst, springt der Cursor schnell zwischen den Feldern. Sobald ein Feld ausgewählt ist, ändert die Eingabe eines neuen Variablennamens diese Instanz sowie jede andere Instanz dieser Variable im Snippet-Code.
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.
Vervollständigung von Code-Snippets#
Es ist nicht erforderlich, das vollständige Präfix des Snippets einzugeben oder überhaupt am Anfang des Snippets mit der Eingabe zu beginnen. Sieh dir das Beispiel im Bild unten an.
Die Snippets sind so aussagekräftig wie möglich benannt. Dadurch kann jedoch viel Tipparbeit entstehen, was dem Ziel, schneller zu arbeiten, entgegenwirken würde. Glücklicherweise kannst du 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! Falls das gewünschte Snippet tatsächlich ultra.example-yolo-predict-kwords ist, markierst du es einfach mit den Pfeiltasten ↑ oder ↓ und drückst Enter ↵ oder Tab ⇥, um den richtigen Codeblock einzufügen.
Typing ex-yolo-p will still arrive at the correct snippet.
Snippet-Kategorien#
Dies sind die derzeit für die Ultralytics-snippets-Erweiterung verfügbaren Snippet-Kategorien. In Zukunft kommen weitere hinzu. Suche daher regelmäßig nach Aktualisierungen und aktiviere automatische Updates für die Erweiterung. Du kannst auch zusätzliche Snippets anfordern, wenn dir 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 diesem ähnlich. |
| Kwargs | ultra.kwargs | Beschleunige die Entwicklung, indem du Snippets für die Methoden train, track, predict und val mit allen Schlüsselwortargumenten und Standardwerten hinzufügst. |
| Imports | ultra.imports | Snippets zum schnellen Importieren gängiger Ultralytics-Objekte. |
| Modelle | ultra.yolo | Füge Codeblöcke zur Initialisierung verschiedener Modelle (yolo, sam, rtdetr usw.) einschließlich Konfigurationsoptionen in Dropdown-Menüs ein. |
| Ergebnisse | ultra.result | Codeblöcke für gängige Vorgänge beim Arbeiten mit Inferenz-Ergebnissen. |
| Dienstprogramme | ultra.util | Bietet schnellen Zugriff auf gängige, in das Ultralytics-Paket integrierte Dienstprogramme. Weitere Informationen dazu findest du auf der Seite Einfache Dienstprogramme. |
Lernen mit Beispielen#
Die Snippets ultra.examples sind sehr nützlich für alle, die lernen möchten, wie sie mit den Grundlagen von Ultralytics YOLO beginnen. Die Beispiel-Snippets sind dafür vorgesehen, nach dem Einfügen einmal ausgeführt zu werden; einige enthalten außerdem Dropdown-Optionen. Ein Beispiel dafür siehst du in der Animation am Anfang dieser Seite: Nach dem Einfügen des Snippets wird der gesamte Code ausgewählt und interaktiv mit Shift ⇑+Enter ↵ ausgeführt.
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 nur die Modellgröße konfigurierbar; möglich sind 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 imageEntwicklung beschleunigen#
Die Snippets mit Ausnahme von ultra.examples sollen die Entwicklung bei der Arbeit mit Ultralytics einfacher und schneller machen. Ein häufig in vielen Projekten verwendeter Codeblock durchläuft die Liste der Results, die von der predict-Methode des Modells zurückgegeben werden. Das Snippet ultra.result-loop kann dich dabei unterstützen.
Mit ultra.result-loop wird der folgende Standardcode einschließlich Kommentaren eingefügt.
# reference https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayDa Ultralytics jedoch zahlreiche Aufgaben unterstützt, gibt es beim Arbeiten mit Inferenz-Ergebnissen weitere Results-Attribute, auf die du möglicherweise zugreifen möchtest. Hier kommen die Snippet-Felder zum Einsatz.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Schlüsselwortargumente#
Für die verschiedenen Ultralytics-Aufgaben und Modi gibt es über 💯 Schlüsselwortargumente! Das sind viele, die man sich merken muss, und leicht vergisst man, ob das Argument save_frame oder save_frames lautet (es ist übrigens definitiv save_frames). Hier helfen die ultra.kwargs-Snippets weiter!
Um die predict-Methode einschließlich aller Inferenzargumente einzufügen, verwende ultra.kwargs-predict. Dadurch wird der folgende Code einschließlich Kommentaren eingefügt.
model.predict(
source=src, # (str, optional) source directory for images or videos
imgsz=640, # (int | list) input images size as int or list[h,w] 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) save class activation heatmaps
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 sowie für model und src, falls du in deinem Code eine andere Variable verwendet hast. In jeder Zeile mit einem Schlüsselwortargument ist zur Orientierung eine kurze Beschreibung enthalten.
Alle Code-Snippets#
Am besten findest du heraus, welche Snippets verfügbar sind, indem du die Erweiterung herunterlädst, installierst und ausprobierst! Wenn du neugierig bist und dir die Liste vorher ansehen möchtest, kannst du das Repository oder die Erweiterungsseite im VS Code Marketplace besuchen, um die Tabellen mit allen verfügbaren Snippets anzuzeigen.
Fazit#
Die Ultralytics-Snippets-Erweiterung für VS Code wurde entwickelt, um Data Scientists und Machine-Learning-Ingenieure dabei zu unterstützen, Computer-Vision-Anwendungen mit Ultralytics YOLO effizienter zu entwickeln. Mit vorgefertigten Code-Snippets und nützlichen Beispielen helfen wir dir, dich auf das Wichtigste zu konzentrieren: innovative Lösungen zu entwickeln. Teile dein Feedback, indem du die Erweiterungsseite im VS Code Marketplace besuchst und eine Bewertung hinterlässt. ⭐
FAQ#
Neue Snippets kannst du über die Issues im Repository von Ultralytics-Snippets anfordern.
Sie ist 100 % kostenlos!
VS Code verwendet die Tastenkombination Ctrl+Space, um im Vorschaufenster mehr oder weniger Informationen anzuzeigen. Wenn beim Eingeben des Präfixes eines Code-Snippets keine Vorschau angezeigt wird, sollte diese Tastenkombination die Vorschau wieder einblenden.
Wenn du VS Code verwendest und eine Meldung angezeigt wird, die dich zur Installation der Ultralytics-snippets-Erweiterung auffordert, du diese Meldung aber nicht mehr sehen möchtest, gibt es zwei Möglichkeiten, sie zu deaktivieren.
-
Installiere Ultralytics-snippets, dann wird die Meldung nicht mehr angezeigt 😆!
-
Du kannst
yolo settings vscode_msg=Falseverwenden, um die Anzeige der Meldung zu deaktivieren, ohne die Erweiterung installieren zu müssen. Auf der Seite Ultralytics Settings erfährst du mehr darüber, falls dir diese Seite noch nicht bekannt ist.
-
Besuche das Repository von Ultralytics-snippets und erstelle ein Issue oder einen Pull Request!
Wie jede andere VS Code-Erweiterung kannst du sie deinstallieren, indem du das Erweiterungsmenü in VS Code öffnest. Suche die Ultralytics-snippets-Erweiterung im Menü, klicke auf das Zahnradsymbol (⚙) und anschließend auf „Uninstall“, um die Erweiterung zu entfernen.