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.
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
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
-
Navigiere zum Extensions-Menü in VS Code oder verwende die Tastenkombination Ctrl+Shift ⇑+x und suche nach Ultralytics-snippets.
-
Klicke auf den Button Install.
Installation über den VS Code Extension Marketplace
-
Besuche den VS Code Extension Marketplace und suche nach Ultralytics-snippets oder gehe direkt zur Erweiterungsseite auf dem VS Code Marketplace.
-
Klicke auf den Button 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
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!
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
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.
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.
| Kategorie | Start-Präfix | Beschreibung |
|---|---|---|
| Beispiele | ultra.examples | Beispielcode zum Lernen oder für den Einstieg in Ultralytics. Beispiele sind Kopien oder Anlehnungen an Code von Dokumentationsseiten. |
| Kwargs | ultra.kwargs | Beschleunige die Entwicklung durch Snippets für train-, track-, predict- und val-Methoden mit allen Keyword-Argumenten und Standardwerten. |
| Imports | ultra.imports | Snippets zum schnellen Importieren gängiger Ultralytics-Objekte. |
| Modelle | ultra.yolo | Füge Codeblöcke zum Initialisieren verschiedener Modelle (yolo, sam, rtdetr usw.) ein, inklusive Dropdown-Konfigurationsoptionen. |
| Results | ultra.result | Codeblöcke für häufige Operationen bei der Arbeit mit Inferenz-Ergebnissen. |
| Dienstprogramme | ultra.util | Bietet 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.
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 imageEntwicklung 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.
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 arrayDa 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.
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!
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.
-
Installiere Ultralytics-snippets und die Nachricht wird nicht mehr angezeigt 😆!
-
Du kannst
yolo settings vscode_msg Falseverwenden, 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.