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 crea applicazioni di computer vision con Ultralytics?

✅ Detesti dover scrivere ripetutamente gli stessi blocchi di codice?

✅ Dimentichi sempre gli argomenti o i valori predefiniti per i 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 accelerare il tuo ciclo di sviluppo quando lavori con Ultralytics?

Se usi Visual Studio Code e hai risposto 'sì' a una qualsiasi delle domande precedenti, allora 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 usarla.


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

Ispirato dalla community di Ultralytics

L'ispirazione per creare questa estensione è arrivata dalla community di Ultralytics. Le domande poste dalla community su argomenti ed esempi simili hanno alimentato lo sviluppo di questo progetto. Inoltre, molti membri del team di Ultralytics usano VS Code per velocizzare il proprio lavoro ⚡.

Perché VS Code?

Visual Studio Code è estremamente popolare tra gli sviluppatori di tutto il mondo ed è stato classificato come il più popolare nel sondaggio Stack Overflow Developer Survey nel 2021, 2022, 2023 e 2024. Dato l'alto livello di personalizzazione, le funzionalità integrate, l'ampia compatibilità e l'estensibilità di VS Code, non sorprende che così tanti sviluppatori lo utilizzino. Considerando la popolarità nella più ampia comunità di sviluppatori e all'interno delle community Discord, Discourse, Reddit e GitHub di Ultralytics, aveva senso creare un'estensione VS Code per aiutare a ottimizzare il tuo flusso di lavoro e aumentare la tua produttività.

Vuoi farci sapere cosa usi per scrivere il codice? Vai al nostro sondaggio della community su Discourse e faccelo sapere! Mentre sei lì, magari dai un'occhiata ad alcuni dei nostri meme preferiti su computer vision, machine learning, AI e sviluppatori, o pubblica anche il tuo!

Installazione dell'estensione

Nota

Qualsiasi ambiente di codice che consenta l'installazione di estensioni di VS Code dovrebbe essere compatibile con l'estensione Ultralytics-snippets. Dopo la pubblicazione dell'estensione, si è 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 file Readme nel repository Ultralytics-Snippets.

Installazione in VS Code

  1. Vai al menu Estensioni in VS Code o usa la scorciatoia Ctrl+Shift ⇑+x e cerca Ultralytics-snippets.

  2. Fai clic sul pulsante Install.


VS Code extension menu

Installazione dal VS Code Extension Marketplace

  1. Visita il VS Code Extension Marketplace e cerca Ultralytics-snippets oppure vai direttamente alla pagina dell'estensione sul marketplace di VS Code.

  2. Fai clic sul pulsante Install e consenti al tuo browser di avviare una sessione di VS Code.

  3. Segui le istruzioni per installare l'estensione.


VS Code marketplace extension install
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 di completamento avanzati adattati all'API di Ultralytics.

  • Maggiore velocità di sviluppo: risparmia tempo eliminando le attività di codifica ripetitive e sfruttando snippet di blocchi di codice predefiniti.

  • 🔬 Qualità del codice migliorata: scrivi codice più pulito, coerente e privo di errori con il completamento intelligente del codice.

  • 💎 Flusso di lavoro semplificato: rimani concentrato sulla logica principale del tuo progetto automatizzando le attività comuni.

Panoramica

L'estensione funzionerà solo quando la modalità lingua è configurata per Python 🐍. Questo serve per evitare che gli snippet vengano inseriti quando si lavora su qualsiasi altro tipo di file. Tutti gli snippet hanno un prefisso che inizia con ultra, e digitare semplicemente ultra nel tuo editor dopo aver installato l'estensione mostrerà un elenco di possibili snippet da usare. Puoi anche aprire la tavolozza dei comandi di VS Code usando Ctrl+Shift ⇑+p ed eseguendo il comando Snippets: Insert Snippet.

Campi degli snippet di codice

Molti snippet hanno "campi" con valori o nomi segnaposto predefiniti. Ad esempio, l'output del metodo predict potrebbe essere salvato in una variabile Python chiamata r, results, detections, preds o qualsiasi altra scelta dallo sviluppatore, motivo per cui gli snippet includono i "campi". Usando Tab ⇥ sulla tastiera dopo aver inserito uno snippet, il cursore si sposterà rapidamente tra i campi. Una volta selezionato un campo, digitare un nuovo nome di variabile cambierà quell'istanza, ma anche ogni altra istanza di quella variabile nel codice dello snippet!


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.

Completamenti degli snippet di codice

Scorciatoie ancora più _brevi_

Non è necessario digitare l'intero prefisso dello snippet, né iniziare a digitare dall'inizio dello snippet. Vedi l'esempio nell'immagine sottostante.

Gli snippet hanno i nomi più descrittivi possibile, ma questo significa che ci potrebbe essere molto da digitare e sarebbe controproducente se l'obiettivo è muoversi 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 di snippet desiderata! Se lo snippet desiderato era in realtà ultra.example-yolo-predict-kwords, allora basterà usare le frecce della tastiera o per evidenziare lo snippet desiderato e premere Enter ↵ o Tab ⇥ per inserire il blocco di codice corretto.


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

Categorie di snippet

Queste sono le attuali categorie di snippet disponibili per l'estensione Ultralytics-snippets. Ne verranno aggiunte altre in futuro, quindi assicurati di controllare gli aggiornamenti e di abilitare gli aggiornamenti automatici per l'estensione. Puoi anche richiedere snippet aggiuntivi se ritieni che ne manchi qualcuno.

CategoriaPrefisso inizialeDescrizione
Esempiultra.examplesCodice di esempio per imparare o iniziare a usare Ultralytics. Gli esempi sono copie di, o simili a, codice proveniente dalle pagine di documentazione.
Kwargsultra.kwargsAccelera lo sviluppo aggiungendo snippet per i metodi train, track, predict e val con tutti gli argomenti delle parole chiave e i valori predefiniti.
Importazioniultra.importsSnippet per importare rapidamente oggetti Ultralytics comuni.
Modelliultra.yoloInserisci blocchi di codice per inizializzare vari modelli (yolo, sam, rtdetr, ecc.), incluse le opzioni di configurazione a discesa.
Resultsultra.resultBlocchi di codice per operazioni comuni quando si lavora con i risultati di inferenza.
Utilitàultra.utilFornisce un accesso rapido a utility comuni integrate nel pacchetto Ultralytics; scopri di più a riguardo nella pagina delle Simple Utilities.

Imparare con gli esempi

Gli snippet ultra.examples sono molto utili per chiunque voglia imparare a iniziare con le basi di Ultralytics YOLO. Gli snippet di esempio sono pensati per essere eseguiti una volta inseriti (alcuni hanno anche opzioni a discesa). Un esempio di ciò è mostrato nell'animazione in alto in questa pagina, dove, una volta inserito lo snippet, tutto il codice viene selezionato ed eseguito in modo interattivo usando Shift ⇑+Enter ↵.

Esempio

Proprio come mostra l'animazione in alto in questa pagina, puoi usare lo snippet ultra.example-yolo-predict per inserire il seguente esempio di codice. Una volta inserito, l'unica opzione configurabile è quella per 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 image

Accelerare lo sviluppo

L'obiettivo degli snippet diversi da ultra.examples è rendere lo sviluppo più facile e veloce quando si lavora con Ultralytics. Un blocco di codice comune da utilizzare in molti progetti è scorrere l'elenco di Results restituiti dall'uso del metodo predict del modello. Lo snippet ultra.result-loop può aiutare in questo.

Esempio

L'uso 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 array

Tuttavia, poiché Ultralytics supporta numerosi task, quando si lavora con i risultati di inferenza ci sono altri attributi di Results a cui potresti voler accedere, ed è qui che i campi degli snippet saranno potenti.


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

Argomenti delle parole chiave

Ci sono oltre 💯 argomenti di parole chiave per tutti i vari task e modalità di Ultralytics! Sono molti da ricordare, ed è facile dimenticare se l'argomento è save_frame o save_frames (a proposito, è decisamente save_frames). È qui che gli snippet ultra.kwargs possono essere d'aiuto!

Esempio

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[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
)

Questo snippet ha campi per tutti gli argomenti delle parole chiave, ma anche per model e src nel caso tu abbia usato una variabile diversa nel tuo codice. Su ogni riga contenente un argomento di parola chiave, viene 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 all'elenco in anticipo, puoi visitare il repo o la pagina dell'estensione sul marketplace di VS Code per visualizzare le tabelle di tutti gli snippet disponibili.

Conclusione

L'estensione Ultralytics-Snippets per VS Code è progettata per consentire a data scientist e ingegneri di machine learning di 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 sul marketplace di VS Code e lasciando una recensione. ⭐

FAQ

Come posso richiedere un nuovo snippet?

È possibile richiedere nuovi snippet utilizzando le Issue nel repo di Ultralytics-Snippets.

Quanto costa l'estensione Ultralytics?

È gratuita al 100%!

Perché non vedo un'anteprima dello snippet di codice?

VS Code utilizza la combinazione di tasti Ctrl+Space per mostrare maggiori/minori informazioni nella finestra di anteprima. Se non vedi un'anteprima dello snippet quando digiti un prefisso dello snippet di codice, l'utilizzo di questa combinazione di tasti dovrebbe ripristinare l'anteprima.

Come posso disabilitare il suggerimento dell'estensione in Ultralytics?

Se usi VS Code e hai iniziato a vedere un messaggio che ti invita a installare l'estensione Ultralytics-snippets e non vuoi più visualizzarlo, ci sono due modi per disabilitarlo.

  1. Installa Ultralytics-snippets e il messaggio non verrà più mostrato 😆!

  2. Puoi usare yolo settings vscode_msg False per disabilitare il messaggio senza dover installare l'estensione. Puoi saperne di più sulle Impostazioni di Ultralytics nella pagina quickstart se non le conosci.

Ho un'idea per un nuovo snippet di codice Ultralytics, come posso farne aggiungere uno?

Visita il repo di Ultralytics-snippets e apri una Issue o una Pull Request!

Come posso disinstallare l'estensione Ultralytics-Snippets?

Come qualsiasi altra estensione di VS Code, puoi disinstallarla andando nel menu Estensioni in VS Code. Trova l'estensione Ultralytics-snippets nel menu, fai clic sull'icona dell'ingranaggio (⚙) e quindi su "Uninstall" per rimuovere l'estensione.


VS Code extension menu

Commenti