Estensione Ultralytics per VS Code#
Guarda: Come usare l'estensione Ultralytics per Visual Studio Code | Frammenti di codice pronti all'uso | Ultralytics YOLO 🎉
Funzionalità e vantaggi#
✅ Sei un data scientist o un ingegnere di machine learning che sviluppa applicazioni di computer vision con Ultralytics?
✅ Ti dà fastidio scrivere ripetutamente gli stessi blocchi di codice?
✅ Dimentichi sempre gli argomenti o i valori predefiniti dei metodi train, val, predict, export o track?
✅ Vuoi iniziare a usare Ultralytics e vorresti un modo più semplice per consultare o eseguire esempi di codice?
✅ Vuoi velocizzare il 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 può aiutarti! Continua a leggere per saperne di più sull'estensione, su come installarla e su come usarla.
Esegui codice di esempio con Ultralytics YOLO in meno di 20 secondi! 🚀
Ispirata dalla community Ultralytics#
L'idea di creare questa estensione è nata dalla community Ultralytics. Le domande della community su argomenti ed esempi simili hanno alimentato lo sviluppo del progetto. Inoltre, molti membri del team Ultralytics usano VS Code per velocizzare il proprio lavoro ⚡.
Perché VS Code?#
Visual Studio Code è molto popolare tra gli sviluppatori di tutto il mondo ed è risultato l'editor più popolare nel sondaggio per sviluppatori di Stack Overflow del 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 così tanti sviluppatori lo utilizzino. Considerata la sua popolarità nella comunità degli sviluppatori in generale e nelle community Ultralytics su Discord, Discourse, Reddit e GitHub, creare un'estensione per VS Code per semplificare il flusso di lavoro e aumentare la produttività è stata una scelta naturale.
Vuoi dirci quale strumento usi per sviluppare codice? Visita il nostro sondaggio della community su Discourse e facci sapere! Già che ci sei, dai un'occhiata ad alcuni dei nostri meme preferiti su computer vision, machine learning, AI e sviluppo, oppure pubblica i tuoi preferiti!
Installazione dell'estensione#
Qualsiasi ambiente di sviluppo che consenta di installare estensioni di VS Code dovrebbe essere compatibile con Ultralytics-snippets. Dopo aver pubblicato l'estensione, abbiamo scoperto che neovim può essere reso compatibile con le estensioni di VS Code. Per saperne di più, consulta la sezione sull'installazione di neovim del Readme nel repository Ultralytics-Snippets.
Installazione in VS Code#
-
Apri il menu Estensioni di VS Code oppure usa la scorciatoia Ctrl+Shift ⇑+x, quindi cerca Ultralytics-snippets.
-
Fai clic sul pulsante Install.
Installazione dal Marketplace delle estensioni di VS Code#
-
Visita il Marketplace delle estensioni di VS Code 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.
Pagina del Marketplace delle estensioni di Visual Studio Code per Ultralytics-Snippets
Uso dell'estensione Ultralytics-Snippets#
-
🧠 Completamento intelligente del codice: scrivi codice più velocemente e con maggiore precisione grazie a suggerimenti avanzati per il completamento del codice, pensati per l'API Ultralytics.
-
⌛ Sviluppo più rapido: risparmia tempo eliminando le attività di programmazione ripetitive e sfruttando snippet di codice predefiniti.
-
🔬 Maggiore qualità del codice: scrivi codice più pulito, coerente e privo di errori grazie al completamento intelligente.
-
💎 Flusso di lavoro semplificato: concentrati sulla logica principale del progetto automatizzando le attività comuni.
Panoramica#
L'estensione funziona solo quando la modalità linguaggio è impostata su Python 🐍. In questo modo si evita di inserire snippet mentre lavori su altri tipi di file. Tutti gli snippet hanno un prefisso che inizia con ultra e, dopo aver installato l'estensione, basta digitare ultra nell'editor per visualizzare un elenco degli snippet disponibili. Puoi anche aprire la tavolozza dei comandi di VS Code con Ctrl+Shift ⇑+p ed eseguire 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 chiamata r, results, detections, preds o con qualsiasi altro nome scelto dallo sviluppatore: ecco perché gli snippet includono dei "campi". Dopo aver inserito uno snippet, premi Tab ⇥ sulla tastiera per spostare rapidamente il cursore da un campo all'altro. Quando selezioni un campo, digitando un nuovo nome di variabile modificherai quell'occorrenza e tutte le altre occorrenze della variabile nel codice dello snippet!
Dopo aver inserito lo snippet, rinominare model come world_model aggiorna tutte le istanze. Premendo Tab ⇥ si passa al campo successivo, che apre un menu a discesa e consente di selezionare una scala del modello; passando al campo seguente si apre un altro menu a discesa per scegliere la variante del modello world o worldv2.
Completamento degli snippet di codice#
Non è necessario digitare l'intero prefisso dello snippet, né iniziare a digitare dall'inizio. Guarda l'esempio nell'immagine qui sotto.
I nomi degli snippet sono il più descrittivi possibile, ma questo può richiedere di digitare molto e risultare controproducente se l'obiettivo è andare più velocemente. Per fortuna, VS Code consente di digitare ultra.example-yolo-predict, example-yolo-predict, yolo-predict o persino ex-yolo-p e trovare comunque lo snippet desiderato! Se lo snippet che cerchi è proprio ultra.example-yolo-predict-kwords, usa le frecce della tastiera ↑ o ↓ per evidenziare lo snippet desiderato e premi Enter ↵ o Tab ⇥ per inserire il blocco di codice corretto.
Se digiti ex-yolo-p, raggiungerai comunque lo snippet corretto.
Categorie di snippet#
Queste sono le categorie di snippet attualmente disponibili nell'estensione Ultralytics-snippets. In futuro ne verranno aggiunte altre, quindi controlla gli aggiornamenti e attiva gli aggiornamenti automatici dell'estensione. Se ritieni che manchi qualcosa, puoi anche richiedere l'aggiunta di altri snippet.
| Categoria | Prefisso iniziale | Descrizione |
|---|---|---|
| Esempi | ultra.examples | Codice di esempio per imparare o iniziare a usare Ultralytics. Gli esempi sono copie o varianti di codice tratto dalle pagine della documentazione. |
| Argomenti con nome | ultra.kwargs | Velocizza lo sviluppo aggiungendo snippet per i metodi train, val, predict e track, con tutti gli argomenti con nome e i valori predefiniti. |
| Importazioni | ultra.imports | Snippet per importare rapidamente gli oggetti Ultralytics più comuni. |
| Modelli | ultra.yolo | Inserisci blocchi di codice per inizializzare vari modelli (yolo, sam, rtdetr ecc.), incluse opzioni di configurazione selezionabili da menu a discesa. |
| Risultati | ultra.result | Blocchi di codice per le operazioni più comuni quando lavori con i risultati dell'inferenza. |
| Utilità | ultra.util | Fornisce accesso rapido alle utilità comuni incluse nel pacchetto Ultralytics; scopri di più su queste utilità nella pagina delle utilità semplici. |
Imparare con gli esempi#
Gli snippet ultra.examples sono molto utili per chi vuole imparare le nozioni di base per iniziare a lavorare con Ultralytics YOLO. Gli snippet di esempio sono pensati per essere eseguiti subito dopo l'inserimento (alcuni includono anche opzioni a discesa). Un esempio è mostrato nell'animazione in cima a questa pagina: dopo aver inserito lo snippet, tutto il codice viene selezionato ed eseguito in modo interattivo con Shift ⇑+Enter ↵.
Come mostra l'animazione in cima a questa pagina, puoi usare lo snippet ultra.example-yolo-predict per inserire il seguente esempio di codice. Una volta inserito, l'unica opzione configurabile riguarda la scala del modello, che può essere una delle seguenti: 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() # decommenta per visualizzare ogni immagine dei risultatiAccelerare 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 a molti progetti consiste nell'iterare l'elenco di Results restituito dal metodo predict del modello. Lo snippet ultra.result-loop può aiutarti.
Usando ultra.result-loop verrà inserito il seguente codice predefinito, commenti inclusi.
# 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.
Una volta raggiunto con il tasto Tab il campo boxes, apparirà un menu a discesa che ti consentirà di selezionare un altro attributo, se necessario.
Argomenti delle parole chiave#
Ci sono oltre 💯 argomenti con nome per tutte le attività e le modalità di Ultralytics! Sono tanti da ricordare ed è facile dimenticare se un argomento è save_frame o save_frames (a proposito, è decisamente save_frames). Ecco dove gli snippet ultra.kwargs possono aiutarti!
Per inserire il metodo predict, inclusi tutti gli argomenti di inferenza, usa ultra.kwargs-predict: verrà inserito il seguente codice, commenti inclusi.
model.predict(
source=src, # (str, optional) directory sorgente di immagini o video
imgsz=640, # (int | list) dimensione delle immagini di input come int o list[h,w] per predict
conf=0.25, # (float) soglia minima di confidenza
iou=0.7, # (float) soglia di intersezione sull'unione (IoU) per NMS
vid_stride=1, # (int) passo della frequenza dei fotogrammi video
stream_buffer=False, # (bool) inserisci i fotogrammi in arrivo in una coda (True) oppure mantieni solo il fotogramma più recente (False)
visualize=False, # (bool) salva le mappe di attivazione delle classi
augment=False, # (bool) applica l'aumento dei dati alle immagini sorgente delle predizioni
agnostic_nms=False, # (bool) NMS indipendente dalla classe
classes=None, # (int | list[int], optional) filtra i risultati per classe, ad esempio classes=0 o classes=[0,2,3]
retina_masks=False, # (bool) usa maschere di segmentazione ad alta risoluzione
embed=None, # (list[int], optional) restituisce vettori di caratteristiche/embedding dai livelli specificati
show=False, # (bool) mostra le immagini e i video predetti se l'ambiente lo consente
save=True, # (bool) salva i risultati delle predizioni
save_frames=False, # (bool) salva i singoli fotogrammi video predetti
save_txt=False, # (bool) salva i risultati in un file .txt
save_conf=False, # (bool) salva i risultati con i punteggi di confidenza
save_crop=False, # (bool) salva le immagini ritagliate con i risultati
stream=False, # (bool) elabora video lunghi o numerose immagini riducendo l'uso della memoria tramite la restituzione di un generatore
verbose=True, # (bool) abilita/disabilita i log dettagliati dell'inferenza nel terminale
)Questo snippet include campi per tutti gli argomenti con nome e per model e src, nel caso in cui tu abbia usato una variabile diversa nel codice. Ogni riga che contiene un argomento con nome include una breve descrizione di riferimento.
Tutti gli snippet di codice#
Il modo migliore per scoprire quali snippet sono disponibili è scaricare e installare l'estensione e provarla! Se vuoi dare un'occhiata all'elenco in anticipo, visita il repository o la pagina dell'estensione nel marketplace di VS Code per consultare le tabelle con tutti gli snippet disponibili.
Conclusione#
L'estensione Ultralytics-Snippets per VS Code è pensata per aiutare data scientist e ingegneri di machine learning a sviluppare applicazioni di computer vision con 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. ⭐
Domande frequenti#
Puoi richiedere nuovi snippet tramite le issue nel repository di Ultralytics-Snippets.
È gratis al 100%!
VS Code usa la combinazione di tasti Ctrl+Space per mostrare o nascondere altre informazioni nella finestra di anteprima. Se non vedi 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 vedere un messaggio che ti invita a installare l'estensione Ultralytics-snippets, ma non vuoi più visualizzarlo, hai due modi per disattivarlo.
-
Installa Ultralytics-snippets e il messaggio non verrà più mostrato 😆!
-
Puoi usare
yolo settings vscode_msg=Falseper impedire che il messaggio venga visualizzato senza dover installare l'estensione. Se non conosci la pagina, puoi approfondire nelle Impostazioni di Ultralytics.
-
Visita il repository di Ultralytics-snippets e apri un Issue o una Pull Request!
Come qualsiasi altra estensione di VS Code, puoi disinstallarla dal menu Extensions di VS Code. Trova l'estensione Ultralytics-snippets nel menu, fai clic sull'icona a forma di ingranaggio (⚙) e poi su "Uninstall" per rimuovere l'estensione.