YOLO Vision 2026:

Estensione VS Code di Ultralytics#



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

Caratteristiche 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?

✅ Ti dimentichi sempre gli argomenti o i valori predefiniti per i metodi export, predict, train, track o val?

✅ Vuoi iniziare a usare Ultralytics e desideri 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 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 come usarla.


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

Ispirata dalla Community di Ultralytics#

L'ispirazione per creare questa estensione è nata 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 utilizzano VS Code per accelerare 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 dal sondaggio per sviluppatori di Stack Overflow nel 2021, 2022, 2023 e 2024. Data l'elevata personalizzazione, le funzionalità integrate, l'ampia compatibilità e l'estensibilità di VS Code, non sorprende che così tanti sviluppatori lo utilizzino. Vista 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 per VS Code per aiutarti a ottimizzare il tuo flusso di lavoro e aumentare la tua produttività.

Vuoi farci sapere cosa usi per sviluppare il codice? Vai al sondaggio della community su Discourse e faccelo sapere! Mentre sei lì, dai un'occhiata ad alcuni dei nostri meme preferiti su computer vision, machine learning, IA e sviluppo, oppure pubblica 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, è stato scoperto che neovim può essere reso compatibile con le estensioni di VS Code. Per ulteriori informazioni, consulta la neovim sezione di installazione 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 Marketplace delle estensioni di VS Code#

  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 codice più velocemente e con maggiore precisione grazie ai suggerimenti avanzati per il completamento del codice su misura per l'API di Ultralytics.

  • Maggiore velocità di sviluppo: Risparmia tempo eliminando attività di programmazione ripetitive e sfruttando snippet di blocchi di codice predefiniti.

  • 🔬 Migliore qualità del codice: 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à Linguaggio è configurata per Python 🐍. Questo serve a evitare che vengano inseriti snippet quando si lavora su qualsiasi altro tipo di file. Tutti gli snippet hanno un prefisso che inizia con ultra e, digitando semplicemente ultra nel tuo editor dopo aver installato l'estensione, verrà visualizzato un elenco di possibili snippet da utilizzare. Puoi anche aprire il Command Palette 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 segnaposto o nomi predefiniti. Ad esempio, l'output del metodo predict potrebbe essere salvato in una variabile Python denominata r, results, detections, preds o qualsiasi altra cosa scelga uno sviluppatore, motivo per cui gli snippet includono "campi". Usando Tab ⇥ sulla tastiera dopo l'inserimento di 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 nel codice dello snippet per quella variabile!


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 o iniziare a digitare dall'inizio dello snippet. Guarda l'esempio nell'immagine qui sotto.

Gli snippet sono denominati nel modo più descrittivo possibile, ma ciò significa che potrebbe esserci molto da digitare e ciò 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, basta 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. Altre verranno aggiunte in futuro, quindi assicurati di verificare la presenza di aggiornamenti e di abilitare gli aggiornamenti automatici per l'estensione. Puoi anche richiedere l'aggiunta di snippet aggiuntivi se ritieni che ne manchi qualcuno.

CategoriaPrefisso inizialeDescrizione
Esempiultra.examplesCodice di esempio per aiutare ad imparare o per iniziare a lavorare con Ultralytics. Gli esempi sono copie o simili al codice presente nelle pagine della documentazione.
Kwargsultra.kwargsVelocizza lo sviluppo aggiungendo snippet per i metodi train, track, predict e val con tutti gli argomenti delle keyword e i valori predefiniti.
Importsultra.importsSnippet per importare rapidamente oggetti Ultralytics comuni.
Modelliultra.yoloInserisci blocchi di codice per l'inizializzazione di vari modelli (yolo, sam, rtdetr, ecc.), incluse le opzioni di configurazione a discesa.
Risultatiultra.resultBlocchi di codice per le operazioni comuni quando si lavora con i risultati dell'inferenza.
Utilityultra.utilFornisce un accesso rapido alle utility comuni integrate nel pacchetto Ultralytics; scopri di più su queste nella pagina delle Simple Utilities.

Imparare con gli esempi#

Gli snippet ultra.examples sono molto utili per chiunque voglia imparare a iniziare con le nozioni di base sull'utilizzo 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 dopo l'inserimento dello 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 è 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ù semplice e veloce quando si lavora con Ultralytics. Un blocco di codice comune da utilizzare 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.

Esempio

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 array

Tuttavia, poiché Ultralytics supporta numerosi task, quando si lavora con i risultati dell'inferenza ci sono altri attributi Results a cui potresti voler accedere, ed è qui che i campi dello 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 keyword per tutti i vari task e mode di Ultralytics! Sono molti 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 dare una mano!

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[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 ha campi per tutti gli argomenti delle keyword, ma anche per model e src nel caso in cui tu abbia usato una variabile diversa nel tuo codice. Su ogni riga contenente un argomento di keyword, è 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 ai data scientist e agli ingegneri di machine learning di creare applicazioni di computer vision utilizzando Ultralytics YOLO in modo più efficiente. Fornendo frammenti 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#

  • È possibile richiedere nuovi snippet utilizzando le Issues sul repo di Ultralytics-Snippets.

  • È gratuita al 100%!

  • 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 di snippet di codice, l'utilizzo di questa combinazione di tasti dovrebbe ripristinare l'anteprima.

  • Se utilizzi 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 disabilitare questo messaggio.

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

    2. Puoi usare yolo settings vscode_msg=False per disabilitare la visualizzazione del messaggio senza dover installare l'estensione. Puoi saperne di più sulle Impostazioni di Ultralytics nella pagina di avvio rapido se non hai familiarità.

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

  • 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 "Disinstalla" per rimuovere l'estensione.


    VS Code extension menu

Commenti