Estensione Ultralytics per VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Funzionalità e vantaggi#
✅ Sei un data scientist o un ingegnere di machine learning che sviluppa applicazioni di computer vision con Ultralytics?
✅ Detesti scrivere ripetutamente gli stessi blocchi di codice?
✅ Dimentichi sempre gli argomenti o i valori predefiniti dei metodi export, predict, train, track o val?
✅ Vuoi iniziare a usare Ultralytics e vorresti avere un modo più semplice per consultare o eseguire esempi di codice?
✅ Vuoi velocizzare il tuo ciclo di sviluppo quando lavori con Ultralytics?
Se usi Visual Studio Code e hai risposto «sì» a una delle domande precedenti, l'estensione Ultralytics-snippets per VS Code è qui per aiutarti! Continua a leggere per saperne di più sull'estensione, su come installarla e su come utilizzarla.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Ispirata alla Ultralytics Community#
L'ispirazione per creare questa estensione è arrivata dalla Ultralytics Community. Le domande della Community su argomenti ed esempi simili hanno alimentato lo sviluppo di questo progetto. Inoltre, molti membri del team Ultralytics usano VS Code per accelerare il proprio lavoro ⚡.
Perché VS Code?#
Visual Studio Code è estremamente popolare tra gli sviluppatori di tutto il mondo e si è classificato come il più popolare nel sondaggio per sviluppatori di Stack Overflow nel 2021, 2022, 2023 e 2024. Grazie all'elevato livello di personalizzazione di VS Code, alle funzionalità integrate, all'ampia compatibilità e all'estensibilità, non sorprende che lo usino così tanti sviluppatori. Data la sua popolarità nella community degli sviluppatori in generale e nelle Community Ultralytics di Discord, Discourse, Reddit e GitHub, aveva senso creare un'estensione per VS Code che aiutasse a semplificare il tuo flusso di lavoro e ad aumentare la tua produttività.
Vuoi farci sapere cosa usi per sviluppare il codice? Vai al nostro sondaggio della community su Discourse e faccelo sapere! Già che ci sei, dai un'occhiata ad alcuni dei nostri meme preferiti su computer vision, machine learning, AI e sviluppo, oppure pubblica anche il tuo preferito!
Installazione dell'estensione#
Qualsiasi ambiente di sviluppo che consenta di installare estensioni di VS Code dovrebbe essere compatibile con l'estensione Ultralytics-snippets. Dopo la pubblicazione dell'estensione, è stato scoperto che neovim può essere reso compatibile con le estensioni di VS Code. Per saperne di più, consulta la sezione di installazione di neovim del Readme nel repository Ultralytics-Snippets.
Installazione in VS Code#
-
Vai al menu Estensioni in VS Code oppure usa la scorciatoia Ctrl+Shift ⇑+x e cerca Ultralytics-snippets.
-
Fai clic sul pulsante Install.
Installazione dal VS Code Extension Marketplace#
-
Visita il VS Code Extension Marketplace e cerca Ultralytics-snippets oppure vai direttamente alla pagina dell'estensione nel marketplace di VS Code.
-
Fai clic sul pulsante Install e consenti al browser di avviare una sessione di VS Code.
-
Segui le eventuali istruzioni per installare l'estensione.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Utilizzo dell'estensione Ultralytics-Snippets#
-
🧠 Completamento intelligente del codice: scrivi il codice più velocemente e con maggiore precisione grazie a suggerimenti avanzati di completamento personalizzati per l'API di Ultralytics.
-
⌛ Maggiore velocità di sviluppo: risparmia tempo eliminando le attività di codifica ripetitive e sfruttando blocchi di codice predefiniti.
-
🔬 Migliore qualità del codice: scrivi codice più pulito, coerente e privo di errori grazie al completamento intelligente del codice.
-
💎 Flusso di lavoro semplificato: rimani concentrato sulla logica principale del tuo progetto automatizzando le attività comuni.
Panoramica#
L'estensione funziona solo quando la Modalità lingua è configurata per Python 🐍. Questo evita l'inserimento di snippet mentre lavori su qualsiasi altro tipo di file. Tutti gli snippet hanno un prefisso che inizia con ultra e, dopo aver installato l'estensione, digitando semplicemente ultra nell'editor verrà visualizzato un elenco di snippet possibili da usare. Puoi anche aprire la Command Palette di VS Code usando Ctrl+Shift ⇑+p ed eseguendo il comando Snippets: Insert Snippet.
Campi degli snippet di codice#
Molti snippet hanno dei «campi» con valori o nomi segnaposto predefiniti. Ad esempio, l'output del metodo predict potrebbe essere salvato in una variabile Python denominata r, results, detections, preds o con qualsiasi altro nome scelto dallo sviluppatore; per questo gli snippet includono dei «campi». Dopo aver inserito uno snippet, usando Tab ⇥ sulla tastiera, il cursore passerà rapidamente da un campo all'altro. Quando un campo è selezionato, digitando un nuovo nome di variabile cambierai quell'istanza, ma anche tutte le altre istanze della variabile nel codice dello snippet!
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.
Completamento degli snippet di codice#
Non è necessario digitare l'intero prefisso dello snippet e non è nemmeno necessario iniziare a digitare dall'inizio dello snippet. Guarda l'esempio nell'immagine qui sotto.
Gli snippet hanno nomi il più descrittivi possibile, ma questo significa che potrebbe esserci molto da digitare, il che sarebbe controproducente se l'obiettivo è andare più velocemente. Fortunatamente, VS Code consente agli utenti di digitare ultra.example-yolo-predict, example-yolo-predict, yolo-predict o persino ex-yolo-p e raggiungere comunque l'opzione dello snippet desiderata! Se lo snippet desiderato fosse effettivamente ultra.example-yolo-predict-kwords, ti basta usare le frecce della tastiera ↑ o ↓ per evidenziare lo snippet desiderato e premere Enter ↵ o Tab ⇥ per inserire il blocco di codice corretto.
Typing ex-yolo-p will still arrive at the correct snippet.
Categorie di snippet#
Queste sono le categorie di snippet attualmente disponibili per l'estensione Ultralytics-snippets. In futuro ne verranno aggiunte altre, quindi assicurati di controllare gli aggiornamenti e di abilitare gli aggiornamenti automatici per l'estensione. Puoi anche richiedere l'aggiunta di altri snippet se ritieni che ne manchi qualcuno.
| Categoria | Prefisso iniziale | Descrizione |
|---|---|---|
| Esempi | ultra.examples | Codice di esempio utile per imparare o iniziare a usare Ultralytics. Gli esempi sono copie o versioni simili del codice presente nelle pagine della documentazione. |
| Argomenti con nome | ultra.kwargs | Velocizza lo sviluppo aggiungendo snippet per i metodi train, track, predict e val, con tutti gli argomenti con nome e i valori predefiniti. |
| Importazioni | ultra.imports | Snippet per importare rapidamente gli oggetti comuni di Ultralytics. |
| Modelli | ultra.yolo | Inserisci blocchi di codice per inizializzare vari modelli (yolo, sam, rtdetr, ecc.), incluse le opzioni di configurazione a discesa. |
| Risultati | ultra.result | Blocchi di codice per le operazioni comuni quando lavori con i risultati dell'inferenza. |
| Utilità | ultra.util | Fornisce un accesso rapido alle utilità comuni integrate nel pacchetto Ultralytics; per saperne di più, consulta la pagina delle utilità semplici. |
Imparare con gli esempi#
Gli snippet ultra.examples sono molto utili per chi vuole imparare a iniziare dalle basi dell'utilizzo di Ultralytics YOLO. Gli snippet di esempio sono pensati per essere eseguiti subito dopo l'inserimento (alcuni dispongono anche di opzioni a discesa). Un esempio è mostrato nell'animazione nella parte superiore di questa pagina: dopo aver inserito lo snippet, tutto il codice viene selezionato ed eseguito interattivamente usando Shift ⇑+Enter ↵.
Proprio come mostra l'animazione nella parte superiore di questa pagina, puoi usare lo snippet ultra.example-yolo-predict per inserire il seguente esempio di codice. Dopo l'inserimento, l'unica opzione configurabile riguarda la scala del modello, che può essere una qualsiasi tra: n, s, m, l o 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 imageAccelerare lo sviluppo#
Gli snippet diversi da ultra.examples hanno lo scopo di rendere lo sviluppo più semplice e veloce quando lavori con Ultralytics. Un blocco di codice comune in molti progetti consiste nell'iterare l'elenco di Results restituito dall'utilizzo del metodo predict del modello. Lo snippet ultra.result-loop può aiutarti in questo.
L'utilizzo di ultra.result-loop inserirà il seguente codice predefinito (inclusi i commenti).
# reference https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayTuttavia, poiché Ultralytics supporta numerose attività, quando lavori con i risultati dell'inferenza potresti voler accedere ad altri attributi Results; è qui che i campi degli snippet si rivelano utili.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Argomenti con nome#
Esistono più di 💯 argomenti con nome per tutte le diverse attività e modalità di Ultralytics! Sono tanti da ricordare e può essere facile dimenticare se l'argomento è save_frame o save_frames (a proposito, è sicuramente save_frames). È qui che gli snippet ultra.kwargs possono aiutarti!
Per inserire il metodo predict, inclusi tutti gli argomenti di inferenza, usa ultra.kwargs-predict, che inserirà il seguente codice (inclusi i commenti).
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
)Questo snippet contiene campi per tutti gli argomenti con nome, ma anche per model e src, nel caso in cui tu abbia usato una variabile diversa nel codice. Su ogni riga contenente un argomento con nome è inclusa una breve descrizione come riferimento.
Tutti gli snippet di codice#
Il modo migliore per scoprire quali snippet sono disponibili è scaricare e installare l'estensione e provarla! Se sei curioso e vuoi dare un'occhiata in anticipo all'elenco, puoi visitare il repository o la pagina dell'estensione nel marketplace di VS Code per visualizzare le tabelle con tutti gli snippet disponibili.
Conclusioni#
L'estensione Ultralytics-Snippets per VS Code è progettata per aiutare data scientist e ingegneri di machine learning a creare applicazioni di computer vision usando Ultralytics YOLO in modo più efficiente. Fornendo snippet di codice predefiniti ed esempi utili, ti aiutiamo a concentrarti su ciò che conta di più: creare soluzioni innovative. Condividi il tuo feedback visitando la pagina dell'estensione nel marketplace di VS Code e lasciando una recensione. ⭐
FAQ#
Puoi richiedere nuovi snippet usando le Issue nel repository di Ultralytics-Snippets.
È gratuita al 100%!
VS Code usa la combinazione di tasti Ctrl+Space per mostrare o nascondere ulteriori informazioni nella finestra di anteprima. Se non visualizzi l'anteprima di uno snippet quando digiti il prefisso di uno snippet di codice, questa combinazione di tasti dovrebbe ripristinare l'anteprima.
Se usi VS Code e hai iniziato a visualizzare un messaggio che ti invita a installare l'estensione Ultralytics-snippets, ma non vuoi più visualizzarlo, esistono due modi per disabilitare questo messaggio.
-
Installa Ultralytics-snippets e il messaggio non verrà più visualizzato 😆!
-
Puoi usare
yolo settings vscode_msg=Falseper disattivare la visualizzazione del messaggio senza dover installare l'estensione. Puoi scoprire di più sulla pagina Ultralytics Settings se non hai familiarità.
-
Visita il repository di Ultralytics-snippets e apri una Issue o una Pull Request!
Come per qualsiasi altra estensione di VS Code, puoi disinstallarla andando al menu Estensioni in VS Code. Trova l'estensione Ultralytics-snippets nel menu, fai clic sull'icona a forma di ingranaggio (⚙) e poi fai clic su «Uninstall» per rimuovere l'estensione.