Estensione Ultralytics VS Code
Guarda: Come utilizzare l'estensione Ultralytics Visual Studio Code | Snippet di codice pronti all'uso | 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 utilizzare Ultralytics e desideri un modo più semplice per fare riferimento o eseguire esempi di codice?
✅ Vuoi accelerare il tuo ciclo di sviluppo quando lavori con Ultralytics?
Se utilizzi Visual Studio Code e hai risposto 'sì' a una 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 utilizzarla.
Esegui codice di esempio usando Ultralytics YOLO in meno di 20 secondi! 🚀
Ispirato dalla community di Ultralytics
L'ispirazione per costruire questa estensione è nata dalla Community di Ultralytics. Le domande della Community su argomenti ed esempi simili hanno alimentato lo sviluppo di questo progetto. Inoltre, poiché alcuni membri del Team di Ultralytics utilizzano anche 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'alto 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 community Discord, Discourse, Reddit e GitHub di Ultralytics, è sembrato logico creare un'estensione di VS Code per semplificare il flusso di lavoro e aumentare la produttività.
Vuoi farci sapere cosa usi per sviluppare codice? Vai al nostro 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 sviluppatori, o pubblica anche 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 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 neovim
sezione di installazione del file Readme nel Repository Ultralytics-Snippets.
Installazione in VS Code
-
Vai al menu Estensioni in VS Code o usa la scorciatoia Ctrl+Shift ⇑+x e cerca Ultralytics-snippets.
-
Fare clic sul pulsante Installa.
Installazione dal VS Code Extension Marketplace
-
Visita il VS Code Extension Marketplace e cerca Ultralytics-snippets oppure vai direttamente alla pagina dell'estensione sul marketplace di VS Code.
-
Fare clic sul pulsante Installa e consentire al browser di avviare una sessione di VS Code.
-
Segui le istruzioni per installare l'estensione.
Pagina del Visual Studio Code Extension Marketplace per Ultralytics-Snippets
Utilizzo dell'estensione Ultralytics-Snippets
-
🧠 Completamento intelligente del codice: Scrivi codice più velocemente e con maggiore precisione grazie ai suggerimenti avanzati di completamento del codice, personalizzati per l'API Ultralytics.
-
⌛ Maggiore velocità di sviluppo: Risparmia tempo eliminando 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.
-
💎 Workflow semplificato: Rimani concentrato sulla logica principale del tuo progetto automatizzando le attività comuni.
Panoramica
L'estensione funzionerà solo quando il Modalità linguaggio è configurato per python 🐍. Questo per evitare che frammenti vengano inseriti quando si lavora su qualsiasi altro tipo di file. Tutti i frammenti hanno un prefisso che inizia con ultra
, e semplicemente digitando ultra
nel tuo editor dopo aver installato l'estensione, verrà visualizzato un elenco di possibili snippet da utilizzare. Puoi anche aprire VS Code Tavolozza dei comandi utilizzando Ctrl+Spostamento ⇑+p e l'esecuzione del comando Snippets: Insert Snippet
.
Campi di frammenti di codice
Molti snippet hanno "campi" con valori o nomi di segnaposto predefiniti. Ad esempio, l'output da predict method potrebbe essere salvato in una variabile python denominata r
, results
, detections
, preds
o qualsiasi altra cosa uno sviluppatore scelga, motivo per cui gli snippet includono "fields". Usando Tab ⇥ sulla tastiera dopo che è stato inserito un frammento, 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 del frammento per quella variabile!
Dopo aver inserito lo snippet, rinominare model
come world_model
aggiorna tutte le istanze. Premendo Tab ⇥ passa al campo successivo, che apre un menu a tendina e consente di selezionare una scala del modello, e il passaggio al campo successivo fornisce un altro menu a tendina per scegliere tra world
oppure worldv2
variante del modello.
Completamenti di frammenti di codice
Scorciatoie ancora più brevi
Non è necessario digitare il prefisso completo dello snippet, né iniziare a digitare dall'inizio dello snippet. Vedi l'esempio nell'immagine qui sotto.
Gli snippet sono denominati nel modo più descrittivo possibile, ma questo significa che potrebbe esserci molto da digitare e ciò sarebbe controproducente se l'obiettivo è muoversi più veloce. Fortunatamente VS Code consente agli utenti di digitare ultra.example-yolo-predict
, example-yolo-predict
, yolo-predict
, o anche ex-yolo-p
e raggiungere comunque l'opzione snippet desiderata! Se lo snippet desiderato era effettivamente ultra.example-yolo-predict-kwords
, quindi semplicemente usando le frecce della tastiera ↑ oppure ↓ per evidenziare lo snippet desiderato e premere Inserisci ↵ oppure Tab ⇥ inserirà il blocco di codice corretto.
Digitazione ex-yolo-p
farà still per arrivare allo snippet corretto.
Categorie di snippet
Queste sono le categorie di snippet attualmente disponibili per l'estensione Ultralytics-snippets. Altri verranno aggiunti in futuro, quindi assicurati di controllare gli aggiornamenti e di abilitare gli aggiornamenti automatici per l'estensione. Puoi anche richiedere l'aggiunta di snippet aggiuntivi se ritieni che ne manchi qualcuno.
Categoria | Prefisso iniziale | Descrizione |
---|---|---|
Esempi | ultra.examples |
Codice di esempio per aiutare ad imparare o per iniziare con Ultralytics. Gli esempi sono copie o simili al codice delle pagine della documentazione. |
Kwargs | ultra.kwargs |
Accelera 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 oggetti Ultralytics comuni. |
Modelli | ultra.yolo |
Inserisci blocchi di codice per l'inizializzazione di vari models (yolo , sam , rtdetr , ecc.), incluse le opzioni di configurazione a tendina. |
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 utility comuni integrate nel pacchetto Ultralytics, scopri di più su queste nella pagina delle utility semplici. |
Apprendimento con esempi
Il ultra.examples
gli snippet sono molto utili per chiunque desideri imparare come iniziare con le basi per lavorare con Ultralytics YOLO. Gli snippet di esempio sono pensati per essere eseguiti una volta inseriti (alcuni hanno anche opzioni a tendina). Un esempio di questo è mostrato nell'animazione al superiore di questa pagina, dove dopo aver inserito lo snippet, tutto il codice viene selezionato ed eseguito in modo interattivo utilizzando Spostamento ⇑+Inserisci ↵.
Esempio
Proprio come mostra l'animazione all'indirizzo superiore di questa pagina, puoi usare 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 tra: n
, s
, m
, l
, oppure 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 da ultra.examples
servono a rendere lo sviluppo più facile e veloce quando si lavora con Ultralytics. Un blocco di codice comune da utilizzare in molti progetti è quello di iterare l'elenco di Results
restituito dall'utilizzo del modello predict metodo. Il ultra.result-loop
uno snippet può esserti d'aiuto.
Esempio
Utilizzando il ultra.result-loop
inserirà 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 array
Tuttavia, poiché Ultralytics supporta numerosi task, quando Lavorare con i risultati dell'inferenza ce ne sono altri Results
attributi a cui potresti voler accedere, che è dove il campi dello snippet sarà potente.
Una volta selezionato tramite tabulazione il boxes
campo, viene visualizzato un menu a tendina che consente di selezionare un altro attributo, se necessario.
Argomenti Keyword
Ci sono oltre 💯 argomenti di parole chiave per tutti i vari Ultralytics task e modes! È tanto da ricordare e può essere facile dimenticare se l'argomento è save_frame
oppure save_frames
(è decisamente save_frames
a proposito). È qui che il ultra.kwargs
gli snippet possono essere d'aiuto!
Esempio
Per inserire il predict metodo, inclusi tutti argomenti di inferenza, usa ultra.kwargs-predict
, che inserirà il seguente codice (commenti inclusi).
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 tu abbia usato una variabile diversa nel tuo codice. Su ogni riga contenente un argomento di parola chiave, è inclusa una breve descrizione per 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 repository 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 utilizzando 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 Issues sul repository Ultralytics-Snippets.
Quanto costa l'estensione Ultralytics?
È gratuito al 100%!
Perché non vedo un'anteprima dello snippet di codice?
VS Code utilizza la combinazione di tasti Ctrl+Space per mostrare più o meno informazioni nella finestra di anteprima. Se non visualizzi un'anteprima dello snippet quando digiti un prefisso di snippet di codice, l'utilizzo di questa combinazione di tasti dovrebbe ripristinare l'anteprima.
Come posso disabilitare il suggerimento di estensioni in Ultralytics?
Se utilizzi VS Code e hai iniziato a vedere un messaggio che ti chiede di installare l'estensione Ultralytics-snippets e non vuoi più vedere il messaggio, ci sono due modi per disabilitarlo.
-
Installa Ultralytics-snippets e il messaggio non verrà più visualizzato 😆!
-
Puoi utilizzare
yolo settings vscode_msg False
per disabilitare la visualizzazione del messaggio senza dover installare l'estensione. Puoi saperne di più su Impostazioni di Ultralytics sul quickstart page se non hai familiarità.
Ho un'idea per un nuovo snippet di codice Ultralytics, come posso aggiungerne uno?
Visita il repository Ultralytics-snippets e apri un Issue o una Pull Request!
Come posso disinstallare l'estensione Ultralytics-Snippets?
Come qualsiasi altra estensione di VS Code, puoi disinstallarla navigando nel menu Estensioni in VS Code. Trova l'estensione Ultralytics-snippets nel menu e fai clic sull'icona a forma di ingranaggio (⚙) e quindi su "Disinstalla" per rimuovere l'estensione.