Vai al contenuto

Ultralytics Estensione del codice VS


Anteprima del pronostico di Snippet
Eseguite un esempio di codice utilizzando Ultralytics YOLO in meno di 20 secondi! 🚀

Caratteristiche e vantaggi

Siete un data scientist o un ingegnere di machine learning che costruisce applicazioni di computer vision con Ultralytics?

Disprezzate la scrittura ripetuta degli stessi blocchi di codice?

Si dimenticano sempre gli argomenti o i valori predefiniti dei metodi export, predict, train, track o val?

State iniziando a lavorare con Ultralytics e vorreste avere un modo più semplice per consultare o eseguire esempi di codice?

Volete accelerare il vostro ciclo di sviluppo quando lavorate con Ultralytics?

Se utilizzate Visual Studio Code e avete risposto 'sì' a una delle domande precedenti, allora l'estensione Ultralytics-snippets per VS Code è qui per aiutarvi! Continuate a leggere per saperne di più sull'estensione, su come installarla e su come utilizzarla.

Ispirato dalla comunità Ultralytics

L'ispirazione per costruire questa estensione è venuta dalla comunità di Ultralytics . Le domande della comunità su argomenti ed esempi simili hanno alimentato lo sviluppo di questo progetto. Inoltre, poiché alcuni membri del team di Ultralytics utilizzano VS Code, lo usiamo anche come strumento per accelerare il nostro 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 sugli sviluppatori di Stack Overflow nel 2021, 2022, 2023 e 2024. Grazie all'elevato livello di personalizzazione, alle funzionalità integrate, all'ampia compatibilità e all'estensibilità di VS Code, non sorprende che così tanti sviluppatori lo utilizzino. Data la popolarità nella più ampia comunità di sviluppatori e all'interno delle comunità Ultralytics Discord, Discourse, Reddit e GitHub, ha avuto senso creare un'estensione di VS Code per aiutare a semplificare il flusso di lavoro e aumentare la produttività.

Volete farci sapere cosa usate per sviluppare codice? Andate al sondaggio della nostra comunità Discourse e fatecelo sapere! Mentre sei lì, dai un'occhiata ad alcuni dei nostri meme preferiti su computer vision, machine learning, AI e sviluppatori, o pubblica il tuo preferito!

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 aver pubblicato l'estensione, si è scoperto che neovim può essere reso compatibile con le estensioni di VS Code. Per saperne di più, consultate il sito neovim sezione di installazione del Readme nel file Ultralytics-Repository dei frammenti.

Installazione in VS Code

  1. Accedere al menu Estensioni di VS Code o usare la scorciatoia Ctrl+Maiusc⇑+x e cercare Ultralytics-snippets.

  2. Fare clic sul pulsante Installa.


Menu di estensione di VS Code

Installazione dal mercato delle estensioni di VS Code

  1. Visitate il mercato delle estensioni di VS Code e cercate Ultralytics-snippets o andate direttamente alla pagina dell'estensione sul mercato di VS Code.

  2. Fate clic sul pulsante Installa e consentite al browser di avviare una sessione di VS Code.

  3. Seguire le richieste per installare l'estensione.


Installazione dell'estensione del mercato VS Code
Pagina del mercato delle estensioni di Visual Studio Code per Ultralytics-Frammenti

Utilizzo dell'estensione Ultralytics-Snippets

  • 🧠 Completamento intelligente del codice: Scrivete il codice in modo più rapido e accurato grazie ai suggerimenti avanzati di completamento del codice adattati all'API di Ultralytics .

  • Maggiore velocità di sviluppo: risparmiate tempo eliminando le attività di codifica ripetitive e sfruttando gli snippet di blocchi di codice precostituiti.

  • 🔬 Migliore qualità del codice: Scrivete codice più pulito, coerente e privo di errori grazie al completamento intelligente del codice.

  • 💎 Flusso di lavoro semplificato: Rimanete concentrati sulla logica centrale del vostro progetto automatizzando le attività più comuni.

Panoramica

L'estensione funzionerà solo quando il Modalità lingua è configurato per Python 🐍. Questo 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 ultrae digitando semplicemente ultra nell'editor dopo aver installato l'estensione, visualizzerà un elenco di possibili snippet da utilizzare. È anche possibile aprire il codice VS Tavolozza dei comandi utilizzando Ctrl+Turno ⇑+p ed eseguire il comando Snippets: Insert Snippet.

Campi dello snippet di codice

Molti snippet hanno "campi" con valori o nomi segnaposto predefiniti. Per esempio, l'output del metodo prevedere potrebbe essere salvato in una variabile di Python denominata r, results, detections, preds o qualsiasi altra cosa lo sviluppatore scelga, ed è per questo che gli snippet includono i "campi". Utilizzo di Scheda ⇥ dopo l'inserimento di uno snippet, il cursore si sposterà rapidamente da un campo all'altro. Una volta selezionato un campo, la digitazione di un nuovo nome di variabile cambierà quell'istanza, ma anche tutte le altre istanze del codice dello snippet per quella variabile!


Campo e opzioni per l'aggiornamento multiplo
Dopo aver inserito lo snippet, rinominato model come world_model aggiorna tutte le istanze. Premendo Scheda ⇥ passa al campo successivo, che apre un menu a tendina e consente di selezionare la scala del modello, mentre passando al campo successivo si ottiene un altro menu a tendina che consente di scegliere tra world o worldv2 variante di modello.

Completamenti di snippet di codice

Scorciatoie ancora più brevi

Non è necessario digitare il prefisso completo dello snippet, né iniziare a digitare dall'inizio dello snippet. Si veda l'esempio nell'immagine sottostante.

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 è quello di spostare più veloce. Fortunatamente VS Code consente agli utenti di digitare ultra.example-yolo-predict, example-yolo-predict, yolo-predicto anche ex-yolo-p e raggiungere comunque l'opzione di snippet desiderata! Se lo snippet previsto era in realtà ultra.example-yolo-predict-kwords, quindi utilizzando semplicemente le frecce della tastiera o per evidenziare il frammento desiderato e premendo Inserisci ↵ o Scheda ⇥ inserirà il blocco di codice corretto.


Esempio di snippet incompleto
Dattilografia ex-yolo-p volontà ancora arrivare allo snippet corretto.

Categorie di frammenti

Queste sono le attuali categorie di snippet disponibili per l'estensione Ultralytics-snippets. Ne verranno aggiunte altre in futuro, quindi assicuratevi di controllare gli aggiornamenti e di attivare l'aggiornamento automatico dell'estensione. È anche possibile richiedere l'aggiunta di altri snippet se si ritiene che ne manchino.

Categoria Prefisso iniziale Descrizione
Esempi ultra.examples Codice di esempio per aiutare a imparare o per iniziare a usare Ultralytics. Gli esempi sono copie o simili al codice delle pagine di documentazione.
Kwargs ultra.kwargs Velocizzare lo sviluppo aggiungendo snippet per i metodi train, track, predict e val con tutti gli argomenti delle parole chiave e i valori predefiniti.
Importazioni ultra.imports Snippet per importare rapidamente gli oggetti comuni di Ultralytics .
Modelli ultra.yolo Inserire blocchi di codice per l'inizializzazione dei vari modelli (yolo, sam, rtdetr, ecc.), comprese le opzioni di configurazione a discesa.
Risultati ultra.result Blocchi di codice per operazioni comuni quando si lavora con i risultati dell'inferenza.
Utilità ultra.util Fornisce un accesso rapido alle utilità comuni integrate nel pacchetto Ultralytics ; per saperne di più, consultate la pagina delle utilità semplici.

Imparare con gli esempi

Il ultra.examples Gli snippet sono utili a chiunque voglia imparare le basi del lavoro con Ultralytics YOLO . Gli snippet di esempio sono destinati a essere eseguiti una volta inseriti (alcuni hanno anche opzioni a discesa). Un esempio di ciò è mostrato nell'animazione alla voce top di questa pagina, dove dopo l'inserimento dello snippet, tutto il codice viene selezionato ed eseguito in modo interattivo utilizzando Turno ⇑+Inserisci ↵.

Esempio

Proprio come gli spettacoli di animazione al top di questa pagina, è possibile utilizzare lo snippet ultra.example-yolo-predict per inserire il seguente esempio di codice. Una volta inserito, l'unica opzione configurabile è la scala del modello, che può essere una qualsiasi delle seguenti: n, s, m, l, o x.

from ultralytics import ASSETS, YOLO

model = YOLO("yolo11n.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 per gli snippet diversi dall'elemento ultra.examples servono a rendere più semplice e veloce lo sviluppo quando si lavora con Ultralytics. Un blocco di codice comunemente usato in molti progetti è quello di iterare l'elenco di Results restituito dall'utilizzo del modello prevedere metodo. Il ultra.result-loop può aiutare in questo senso.

Esempio

Utilizzando il ultra.result-loop inserirà il seguente codice predefinito (compresi 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 compiti, quando lavorare con i risultati dell'inferenza ci sono altri Results a cui si vuole accedere, ed è qui che si trova l'opzione campi snippet sarà potente.


Opzioni del ciclo dei risultati
Una volta che si è passati alla scheda boxes appare un menu a tendina che consente di selezionare un altro attributo, se necessario.

Parole chiave Argomenti

Ci sono più di 💯 parole chiave per tutti i vari argomenti Ultralytics compiti e modalità! Sono molte le cose da ricordare e può essere facile dimenticarle se l'argomento è save_frame o save_frames (è sicuramente save_frames a proposito). È qui che il ultra.kwargs Gli snippet possono aiutare!

Esempio

Per inserire il prevedere metodo, compresi tutti i metodi argomenti di inferenza, utilizzare ultra.kwargs-predictche inserirà il seguente codice (compresi 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 in cui si sia utilizzata una variabile diversa nel codice. In ogni riga contenente un argomento di parola chiave, è inclusa una breve descrizione di riferimento.

Tutti i frammenti di codice

Il modo migliore per scoprire quali sono gli snippet disponibili è scaricare e installare l'estensione e provarla! Se siete curiosi e volete dare un'occhiata all'elenco in anticipo, potete visitare la pagina della repo o dell'estensione sul marketplace di VS Code per visualizzare le tabelle di tutti gli snippet disponibili.

Conclusione

L'estensione Ultralytics-Snippets per VS Code è stata progettata per consentire agli scienziati dei dati e agli ingegneri dell'apprendimento automatico di creare applicazioni di computer vision utilizzando Ultralytics YOLO in modo più efficiente. Fornendo snippet di codice precostituiti ed esempi utili, vi aiutiamo a concentrarvi su ciò che conta di più: creare soluzioni innovative. Condividete il vostro feedback visitando la pagina dell'estensione sul marketplace di VS Code e lasciando una recensione. ⭐

FAQ

Come si richiede un nuovo snippet?

Nuovi snippet possono essere richiesti utilizzando le Issues del repo Ultralytics-Snippets.

Quanto costa il sito Ultralytics-Extension?

E' gratuito al 100%!

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

VS Code utilizza la combinazione di tasti Ctrl+Spazio per mostrare più o meno informazioni nella finestra di anteprima. Se non si vede l'anteprima dello snippet quando si digita il prefisso di uno snippet di codice, l'uso di questa combinazione di tasti dovrebbe ripristinare l'anteprima.

Come si fa a disabilitare la raccomandazione delle estensioni in Ultralytics?

Se utilizzate VS Code e avete iniziato a vedere un messaggio che vi chiede di installare l'estensione Ultralytics-snippets e non volete più vedere il messaggio, ci sono due modi per disabilitarlo.

  1. Installare Ultralytics-snippets e il messaggio non verrà più visualizzato 😆!

  2. È possibile utilizzare yolo settings vscode_msg False per disabilitare la visualizzazione del messaggio senza dover installare l'estensione. È possibile ottenere maggiori informazioni sull'estensione Ultralytics Impostazioni sul avvio rapido pagina se non si ha familiarità.

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

Visitate il repo Ultralytics-snippets e aprite una issue o una richiesta di pull!

Come si disinstalla l'estensione Ultralytics-Snippets?

Come qualsiasi altra estensione di VS Code, è possibile disinstallarla navigando nel menu Estensioni di VS Code. Individuate l'estensione Ultralytics-snippets nel menu e fate clic sull'icona a forma di ingranaggio (⚙), quindi fate clic su "Disinstalla" per rimuovere l'estensione.


Menu di estensione di VS Code

📅C reato 3 mesi fa ✏️ Aggiornato 2 mesi fa

Commenti