Ultralytics YOLO27:

Extensão Ultralytics para VS Code#



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

Funcionalidades e benefícios#

✅ És cientista de dados ou engenheiro de machine learning a criar aplicações de visão computacional com a Ultralytics?

✅ Detestas escrever repetidamente os mesmos blocos de código?

✅ Esqueces-te constantemente dos argumentos ou valores predefinidos dos métodos export, predict, train, track ou val?

✅ Queres começar a utilizar a Ultralytics e gostarias de ter uma forma mais fácil de consultar ou executar exemplos de código?

✅ Queres acelerar o teu ciclo de desenvolvimento ao trabalhar com a Ultralytics?

Se utilizas o Visual Studio Code e respondeste «sim» a alguma das perguntas acima, a extensão Ultralytics-snippets para VS Code está aqui para ajudar! Continua a ler para saberes mais sobre a extensão, como instalá-la e como utilizá-la.


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

Inspirada pela Comunidade Ultralytics#

A inspiração para criar esta extensão veio da Comunidade Ultralytics. As perguntas da Comunidade sobre temas e exemplos semelhantes impulsionaram o desenvolvimento deste projeto. Além disso, muitos membros da equipa Ultralytics utilizam o VS Code para acelerarem o seu próprio trabalho ⚡.

Porquê o VS Code?#

O Visual Studio Code é extremamente popular entre os programadores de todo o mundo e foi classificado como o mais popular pelo inquérito aos programadores do Stack Overflow em 2021, 2022, 2023 e 2024. Graças ao elevado nível de personalização, às funcionalidades integradas, à ampla compatibilidade e à extensibilidade do VS Code, não é surpreendente que tantos programadores o utilizem. Dada a sua popularidade na comunidade de programadores em geral e nas comunidades Ultralytics do Discord, Discourse, Reddit e GitHub, fazia sentido criar uma extensão para VS Code que ajudasse a simplificar o teu fluxo de trabalho e a aumentar a tua produtividade.

Queres dizer-nos o que utilizas para desenvolver código? Visita a nossa sondagem da comunidade no Discourse e diz-nos! Enquanto lá estiveres, talvez queiras ver alguns dos nossos memes favoritos sobre visão computacional, machine learning, IA e desenvolvimento, ou até publicar o teu favorito!

Instalar a extensão#

Nota

Qualquer ambiente de código que permita instalar extensões do VS Code deverá ser compatível com a extensão Ultralytics-snippets. Depois de publicar a extensão, descobriu-se que o neovim pode ser compatibilizado com extensões do VS Code. Para saberes mais, consulta a secção de instalação neovim do Readme no repositório Ultralytics-Snippets.

Instalar no VS Code#

  1. Acede ao menu Extensões no VS Code ou utiliza o atalho Ctrl+Shift ⇑+x e pesquisa por Ultralytics-snippets.

  2. Clica no botão Install.


VS Code extension menu

Instalar a partir do VS Code Extension Marketplace#

  1. Visita o VS Code Extension Marketplace e pesquisa por Ultralytics-snippets, ou acede diretamente à página da extensão no VS Code marketplace.

  2. Clica no botão Install e permite que o navegador inicie uma sessão do VS Code.

  3. Segue as instruções apresentadas para instalar a extensão.


VS Code marketplace extension install
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets

Utilizar a extensão Ultralytics-Snippets#

  • 🧠 Conclusão de código inteligente: Escreve código mais rapidamente e com maior precisão graças a sugestões avançadas de conclusão de código adaptadas à API da Ultralytics.

  • Maior velocidade de desenvolvimento: Poupa tempo eliminando tarefas de programação repetitivas e utilizando fragmentos de blocos de código pré-criados.

  • 🔬 Melhor qualidade do código: Escreve código mais limpo, consistente e sem erros com a conclusão de código inteligente.

  • 💎 Fluxo de trabalho simplificado: Mantém o foco na lógica principal do teu projeto automatizando tarefas comuns.

Visão geral#

A extensão só funciona quando o Language Mode está configurado para Python 🐍. Isto evita que os snippets sejam inseridos ao trabalhar com qualquer outro tipo de ficheiro. Todos os snippets têm o prefixo ultra e, ao escreveres simplesmente ultra no editor depois de instalares a extensão, será apresentada uma lista de snippets possíveis. Também podes abrir a Paleta de Comandos do VS Code utilizando Ctrl+Shift ⇑+p e executar o comando Snippets: Insert Snippet.

Campos dos fragmentos de código#

Muitos snippets têm «campos» com valores ou nomes de marcador de posição predefinidos. Por exemplo, o resultado do método predict pode ser guardado numa variável Python chamada r, results, detections, preds ou qualquer outro nome escolhido pelo programador, razão pela qual os snippets incluem «campos». Depois de inserires um snippet, utiliza Tab ⇥ no teclado para moveres rapidamente o cursor entre os campos. Quando um campo está selecionado, escrever um novo nome de variável altera essa ocorrência e todas as outras ocorrências da variável no código do 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.

Conclusões de fragmentos de código#

Atalhos ainda _mais curtos_

Não é necessário escrever o prefixo completo do snippet, nem sequer começar a escrever a partir do início do snippet. Vê o exemplo na imagem abaixo.

Os snippets têm nomes tão descritivos quanto possível, mas isso significa que pode ser necessário escrever muito, o que seria contraproducente se o objetivo fosse avançar mais depressa. Felizmente, o VS Code permite escrever ultra.example-yolo-predict, example-yolo-predict, yolo-predict ou até ex-yolo-p e, ainda assim, chegar à opção de snippet pretendida! Se o snippet pretendido for na realidade ultra.example-yolo-predict-kwords, basta utilizar as setas do teclado ou para realçar o snippet desejado e premir Enter ↵ ou Tab ⇥ para inserir o bloco de código correto.


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

Categorias de snippets#

Estas são as categorias de snippets atualmente disponíveis para a extensão Ultralytics-snippets. Serão adicionadas mais no futuro, por isso verifica se existem atualizações e ativa as atualizações automáticas da extensão. Também podes pedir a adição de snippets se achares que falta algum.

CategoriaPrefixo inicialDescrição
Exemplosultra.examplesCódigo de exemplo para aprender ou começar a utilizar a Ultralytics. Os exemplos são cópias ou semelhantes ao código das páginas de documentação.
Kwargsultra.kwargsAcelera o desenvolvimento adicionando snippets para os métodos train, track, predict e val, com todos os argumentos nomeados e valores predefinidos.
Importaçõesultra.importsSnippets para importar rapidamente objetos comuns da Ultralytics.
Modelosultra.yoloInsere blocos de código para inicializar vários modelos (yolo, sam, rtdetr, etc.), incluindo opções de configuração numa lista pendente.
Resultadosultra.resultBlocos de código para operações comuns ao trabalhar com resultados de inferência.
Utilitáriosultra.utilDá acesso rápido a utilitários comuns integrados no pacote Ultralytics. Sabe mais sobre estes na página de utilitários simples.

Aprender com exemplos#

Os snippets ultra.examples são muito úteis para quem quer aprender a começar a trabalhar com os conceitos básicos do Ultralytics YOLO. Os snippets de exemplo foram concebidos para serem executados depois de inseridos (alguns também têm opções numa lista pendente). Isto é demonstrado na animação no topo desta página: depois de o snippet ser inserido, todo o código é selecionado e executado interativamente utilizando Shift ⇑+Enter ↵.

Exemplo

Tal como mostra a animação no topo desta página, podes utilizar o snippet ultra.example-yolo-predict para inserir o seguinte exemplo de código. Depois de inserido, a única opção configurável é a escala do modelo, que pode ser uma das seguintes: n, s, m, l ou 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

Acelerar o desenvolvimento#

O objetivo dos snippets que não sejam ultra.examples é tornar o desenvolvimento mais fácil e rápido ao trabalhar com a Ultralytics. Um bloco de código comum em muitos projetos consiste em iterar a lista de Results devolvida pela utilização do método predict do modelo. O snippet ultra.result-loop pode ajudar-te com isto.

Exemplo

Ao utilizar ultra.result-loop, será inserido o seguinte código predefinido (incluindo comentários).

# reference https://docs.ultralytics.com/modes/predict#working-with-results

for result in results:
    result.boxes.data  # torch.Tensor array

No entanto, como a Ultralytics suporta várias tarefas, ao trabalhar com resultados de inferência existem outros atributos Results aos quais podes querer aceder; é aqui que os campos dos snippets são particularmente úteis.


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

Argumentos de palavras-chave#

Existem mais de 💯 argumentos de palavras-chave para as várias tarefas e modos da Ultralytics! É muita coisa para memorizar e pode ser fácil esquecer se o argumento é save_frame ou save_frames (a propósito, é definitivamente save_frames). É aqui que os snippets ultra.kwargs podem ajudar!

Exemplo

Para inserires o método predict, incluindo todos os argumentos de inferência, utiliza ultra.kwargs-predict, que irá inserir o seguinte código (incluindo comentários).

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
)

Este snippet tem campos para todos os argumentos de palavras-chave, bem como para model e src, caso tenhas utilizado uma variável diferente no teu código. Em cada linha que contém um argumento de palavra-chave, é incluída uma breve descrição para referência.

Todos os snippets de código#

A melhor forma de descobrires que snippets estão disponíveis é transferires e instalares a extensão e experimentá-la! Se tens curiosidade e queres consultar previamente a lista, podes visitar o repositório ou a página da extensão no VS Code marketplace para veres as tabelas com todos os snippets disponíveis.

Conclusão#

A extensão Ultralytics-Snippets para VS Code foi concebida para ajudar cientistas de dados e engenheiros de machine learning a criar aplicações de visão computacional utilizando o Ultralytics YOLO de forma mais eficiente. Ao fornecer snippets de código pré-criados e exemplos úteis, ajudamos-te a concentrares-te no que é mais importante: criar soluções inovadoras. Partilha o teu feedback visitando a página da extensão no VS Code marketplace e deixando uma avaliação. ⭐

Perguntas frequentes#

  • Podes pedir novos snippets através das Issues no repositório do Ultralytics-Snippets.

  • É 100% gratuita!

  • O VS Code utiliza a combinação de teclas Ctrl+Space para mostrar mais ou menos informação na janela de pré-visualização. Se não vires uma pré-visualização do snippet ao escreveres um prefixo de snippet de código, utilizar esta combinação de teclas deverá restaurar a pré-visualização.

  • Se utilizas o VS Code e começaste a ver uma mensagem a pedir-te para instalares a extensão Ultralytics-snippets, mas já não queres ver essa mensagem, existem duas formas de a desativar.

    1. Instala o Ultralytics-snippets e a mensagem deixará de ser apresentada 😆!

    2. Podes usar yolo settings vscode_msg=False para desativar a exibição da mensagem sem precisares de instalar a extensão. Podes saber mais na página de Ultralytics Settings se não estiveres familiarizado.

  • Visita o repositório do Ultralytics-snippets e abre uma Issue ou Pull Request!

  • Tal como acontece com qualquer outra extensão do VS Code, podes desinstalá-la acedendo ao menu Extensões no VS Code. Encontra a extensão Ultralytics-snippets no menu, clica no ícone de engrenagem (⚙) e depois em «Uninstall» para remover a extensão.


    VS Code extension menu

Comentários