Ultralytics YOLO27:
Get Started

Extensão Ultralytics para VS Code#



Assista: Como usar a extensão Ultralytics para Visual Studio Code | Trechos de código prontos para usar | Ultralytics YOLO 🎉

Funcionalidades e vantagens#

✅ És cientista de dados ou engenheiro de aprendizagem automática a criar aplicações de visão computacional com a Ultralytics?

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

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

✅ Queres começar a usar 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 usas 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 a instalar e como a utilizar.


Snippet Prediction Preview
Execute um exemplo de código usando Ultralytics YOLO em menos de 20 segundos! 🚀

Inspirada pela comunidade Ultralytics#

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

Porquê o VS Code?#

O Visual Studio Code é extremamente popular entre programadores de todo o mundo e ficou em primeiro lugar na pesquisa Stack Overflow Developer Survey em 2021, 2022, 2023 e 2024. Graças ao elevado nível de personalização do VS Code, às funcionalidades integradas, à ampla compatibilidade e à extensibilidade, não é de admirar 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 o VS Code para ajudar a simplificar o teu fluxo de trabalho e aumentar a tua produtividade.

Queres dizer-nos o que usas para desenvolver código? Vai à sondagem da comunidade no nosso Discourse e partilha a tua opinião! Já que lá estás, talvez queiras ver alguns dos nossos memes favoritos sobre visão computacional, aprendizagem automática, 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 compatível com extensões do VS Code. Para saberes mais, consulta a secção de instalação de neovim do Readme no repositório Ultralytics-Snippets.

Instalar no VS Code#

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

  2. Clica no botão Install.


VS Code extension menu

Instalar a partir do Marketplace de extensões do VS Code#

  1. Visita o Marketplace de extensões do VS Code e pesquisa por Ultralytics-snippets ou acede diretamente à página da extensão no Marketplace do VS Code.

  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
Página da extensão Ultralytics-Snippets no Marketplace do Visual Studio CodeUltralytics-Snippets

Utilizar a extensão Ultralytics-Snippets#

  • 🧠 Conclusão inteligente de código: escreve código de forma mais rápida e precisa com 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 aproveitando fragmentos de código predefinidos.

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

  • 💎 Fluxo de trabalho simplificado: mantém o foco na lógica central do teu projeto ao automatizar tarefas comuns.

Visão geral#

A extensão só funciona quando o Modo de linguagem está configurado para Python 🐍. Isto evita a inserção de fragmentos ao trabalhar com qualquer outro tipo de ficheiro. Todos os fragmentos têm um prefixo que começa por ultra; basta escrever ultra no editor depois de instalar a extensão para ver uma lista de fragmentos disponíveis. Também podes abrir a Paleta de comandos do VS Code com Ctrl+Shift ⇑+p e executar o comando Snippets: Insert Snippet.

Campos dos fragmentos de código#

Muitos fragmentos têm «campos» com valores predefinidos ou nomes de marcador de posição. 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; por isso, os fragmentos incluem «campos». Depois de inserir um fragmento, usa Tab ⇥ no teclado para mover rapidamente o cursor entre os campos. Quando um campo estiver selecionado, ao escrever um novo nome de variável, esse nome substituirá o campo selecionado e todas as outras ocorrências dessa variável no código do fragmento!


Multi-update field and options
Depois de inserir o trecho, renomear model como world_model atualiza todas as instâncias. Ao pressionar Tab ⇥, você vai para o próximo campo, que abre um menu suspenso e permite selecionar uma escala de modelo; ao avançar para o campo seguinte, outro menu suspenso permite escolher a variante do modelo world ou worldv2.

Conclusões dos fragmentos de código#

Atalhos ainda _mais curtos_

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

Os fragmentos têm nomes tão descritivos quanto possível, mas isso pode implicar escrever muito, o que seria contraproducente se o objetivo for 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, mesmo assim, encontrar a opção de fragmento pretendida! Se o fragmento pretendido for mesmo ultra.example-yolo-predict-kwords, basta usar as teclas de seta ↑ ou ↓ para selecionar o fragmento pretendido e premir Enter ↵ ou Tab ⇥ para inserir o bloco de código correto.


VS Code incomplete code snippet preview
Digitar ex-yolo-p ainda vai levar ao trecho correto.

Categorias de fragmentos#

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

CategoriaPrefixo inicialDescrição
Exemplosultra.examplesExemplos de código para ajudar a aprender ou começar a utilizar a Ultralytics. Os exemplos são cópias ou adaptações de código das páginas da documentação.
Kwargsultra.kwargsAcelera o desenvolvimento adicionando fragmentos para os métodos train, val, predict e track, com todos os argumentos nomeados e valores predefinidos.
Importaçõesultra.importsFragmentos 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 em menus pendentes.
Resultadosultra.resultBlocos de código para operações comuns ao trabalhar com resultados de inferência.
Utilitáriosultra.utilOferece acesso rápido a utilitários comuns incluídos no pacote Ultralytics. Sabe mais sobre eles na página de utilitários simples.

Aprender com exemplos#

Os fragmentos ultra.examples são muito úteis para quem quer aprender a começar a trabalhar com os conceitos básicos da Ultralytics YOLO. Os fragmentos de exemplo foram concebidos para serem executados assim que são inseridos (alguns também têm opções em menus pendentes). Um exemplo é apresentado no início desta página, onde, depois de inserir o fragmento, todo o código fica selecionado e é executado interativamente com Shift ⇑+Enter ↵.

Exemplo

Tal como mostra a animação no início desta página, podes usar o fragmento ultra.example-yolo-predict para inserir o seguinte exemplo de código. Depois de o inserires, a única opção configurável é a escala do modelo, que pode ser uma destas: 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()  # descomenta para ver cada imagem de resultado

Acelerar o desenvolvimento#

Os fragmentos que não sejam ultra.examples destinam-se a 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 percorrer a lista de Results devolvida pelo método predict do modelo. O fragmento ultra.result-loop pode ajudar com isso.

Exemplo

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

# referência https://docs.ultralytics.com/modes/predict#working-with-results

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

No entanto, como a Ultralytics suporta inúmeras tarefas, ao trabalhar com resultados de inferência, há outros atributos Results que talvez queiras aceder; é aqui que os campos dos fragmentos podem ser úteis.


VS Code YOLO results visualization options
Depois de avançar com Tab até o campo boxes, aparece um menu suspenso que permite selecionar outro atributo, conforme necessário.

Argumentos nomeados#

Há mais de 💯 argumentos nomeados para todas as tarefas e modalidades da Ultralytics! É muita coisa para memorizar, e é fácil esquecer se o argumento é save_frame ou save_frames (a propósito, é definitivamente save_frames). É aqui que os fragmentos ultra.kwargs podem ajudar!

Exemplo

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

model.predict(
    source=src,  # (str, optional) diretório de origem das imagens ou vídeos
    imgsz=640,  # (int | list) tamanho das imagens de entrada como int ou list[h,w] para predict
    conf=0.25,  # (float) limiar mínimo de confiança
    iou=0.7,  # (float) limiar de interseção sobre união (IoU) para NMS
    vid_stride=1,  # (int) intervalo entre fotogramas de vídeo
    stream_buffer=False,  # (bool) guardar os fotogramas recebidos numa fila (True) ou manter apenas o fotograma mais recente (False)
    visualize=False,  # (bool) guardar mapas de calor de ativação de classes
    augment=False,  # (bool) aplicar aumento de dados de imagem às fontes de previsão
    agnostic_nms=False,  # (bool) NMS independente da classe
    classes=None,  # (int | list[int], optional) filtrar resultados por classe, por exemplo, classes=0 ou classes=[0,2,3]
    retina_masks=False,  # (bool) usar máscaras de segmentação de alta resolução
    embed=None,  # (list[int], optional) devolver vetores de características/embeddings das camadas indicadas
    show=False,  # (bool) mostrar imagens e vídeos previstos, se o ambiente o permitir
    save=True,  # (bool) guardar os resultados da previsão
    save_frames=False,  # (bool) guardar fotogramas individuais do vídeo previsto
    save_txt=False,  # (bool) guardar os resultados num ficheiro .txt
    save_conf=False,  # (bool) guardar os resultados com as pontuações de confiança
    save_crop=False,  # (bool) guardar imagens recortadas com os resultados
    stream=False,  # (bool) processar vídeos longos ou muitas imagens com menor utilização de memória, devolvendo um gerador
    verbose=True,  # (bool) ativar/desativar o registo detalhado da inferência no terminal
)

Este fragmento tem campos para todos os argumentos nomeados, mas também para model e src, caso tenhas usado uma variável diferente no teu código. Cada linha com um argumento nomeado inclui uma breve descrição para consulta.

Todos os fragmentos de código#

A melhor forma de descobrir que fragmentos estão disponíveis é transferir e instalar a extensão e experimentá-la! Se tiveres curiosidade e quiseres consultar a lista primeiro, visita o repositório ou a página da extensão no Marketplace do VS Code para ver as tabelas com todos os fragmentos disponíveis.

Conclusão#

A extensão Ultralytics-Snippets para VS Code foi concebida para ajudar cientistas de dados e engenheiros de aprendizagem automática a criar aplicações de visão computacional com a Ultralytics YOLO de forma mais eficiente. Ao disponibilizar fragmentos de código predefinidos e exemplos úteis, ajudamos-te a concentrar no que é mais importante: criar soluções inovadoras. Partilha a tua opinião visitando a página da extensão no Marketplace do VS Code e deixando uma avaliação. ⭐

Perguntas frequentes#

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

  • É 100% grátis!

  • O VS Code usa a combinação de teclas Ctrl+Space para mostrar mais ou menos informações na janela de pré-visualização. Se não estiveres a ver uma pré-visualização do trecho ao escreveres um prefixo de trecho de código, usar esta combinação de teclas deverá restaurar a pré-visualização.

  • Se usas o VS Code e começaste a ver uma mensagem a pedir que instales a extensão Ultralytics-snippets, mas não queres voltar a ver essa mensagem, há duas formas de a desativar.

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

    2. Podes usar yolo settings vscode_msg=False para impedir que a mensagem apareça sem teres de instalar a extensão. Se não estiveres familiarizado com a página Definições do Ultralytics, podes saber mais.

  • Visita o repositório do Ultralytics-snippets e abre uma issue ou um pull request!

  • Tal como 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 da engrenagem (⚙) e, em seguida, clica em "Desinstalar" para remover a extensão.


    VS Code extension menu

Comentários