Saltar para o conteúdo

Ultralytics Extensão de código VS


Previsão de Snippet Preview
Executar um código de exemplo utilizando Ultralytics YOLO em menos de 20 segundos! 🚀

Caraterísticas e vantagens

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

Não gosta de escrever os mesmos blocos de código repetidamente?

Está sempre a esquecer-se dos argumentos ou valores predefinidos para os métodos export, predict, train, track ou val?

Está a pensar em começar a utilizar o Ultralytics e gostaria de ter uma forma mais fácil de referenciar ou executar exemplos de código?

Pretende acelerar o seu ciclo de desenvolvimento quando trabalha com Ultralytics?

Se você usa o Visual Studio Code e respondeu "sim" a qualquer uma das perguntas acima, então a extensão Ultralytics-snippets para o VS Code está aqui para ajudar! Continue lendo para saber mais sobre a extensão, como instalá-la e como usá-la.

Inspirado 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 alimentaram o desenvolvimento deste projeto. Além disso, como alguns membros da equipa Ultralytics também utilizam o VS Code, também o utilizamos como uma ferramenta para acelerar o nosso trabalho ⚡.

Porquê o VS Code?

O Visual Studio Code é extremamente popular entre os desenvolvedores em todo o mundo e foi classificado como o mais popular pela Pesquisa de Desenvolvedores do Stack Overflow em 2021, 2022, 2023 e 2024. Devido ao alto nível de personalização do VS Code, recursos internos, ampla compatibilidade e extensibilidade, não é surpresa que tantos desenvolvedores o estejam usando. Dada a popularidade na comunidade de desenvolvedores mais ampla e nas comunidades Ultralytics Discord, Discourse, Reddit e GitHub, fazia sentido criar uma extensão do VS Code para ajudar a simplificar seu fluxo de trabalho e aumentar sua produtividade.

Quer dizer-nos o que utiliza para desenvolver código? Dirija-se à nossa sondagem da comunidade Discourse e diga-nos! Enquanto estiver lá, veja alguns dos nossos memes favoritos de visão computacional, aprendizado de máquina, IA e desenvolvedor, ou até mesmo poste o seu favorito!

Instalar a extensão

Nota

Qualquer ambiente de código que permita a instalação de extensões do VS Code deve ser compatível com a extensão Ultralytics-snippets. Depois de publicar a extensão, descobriu-se que neovim pode ser compatível com as extensões do VS Code. Para saber mais, consulte a secção neovim secção de instalação do Readme no ficheiro Ultralytics-Repositório de snippets.

Instalar no VS Code

  1. Navegue até ao menu Extensões no VS Code ou utilize o atalho Ctrl+Shift⇑+x e procure Ultralytics-snippets.

  2. Clique no botão Instalar.


Menu de extensão do VS Code

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

  1. Visite o VS Code Extension Marketplace e procure por Ultralytics-snippets ou vá diretamente para a página da extensão no VS Code marketplace.

  2. Clique no botão Instalar e permita que o navegador inicie uma sessão do VS Code.

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


Instalação da extensão do VS Code marketplace
Página do Visual Studio Code Extension Marketplace para Ultralytics-Snippets

Utilizar a extensão Ultralytics-Snippets

  • Conclusão inteligente de código: Escreva código mais rápido e com mais precisão com sugestões avançadas de conclusão de código adaptadas à API Ultralytics .

  • Maior velocidade de desenvolvimento: economize tempo eliminando tarefas de codificação repetitivas e aproveitando trechos de blocos de código pré-construídos.

  • Qualidade de código melhorada: Escreva código mais limpo, mais consistente e sem erros com o preenchimento inteligente de código.

  • Fluxo de trabalho simplificado: Mantenha-se concentrado na lógica central do seu projeto, automatizando tarefas comuns.

Visão geral

A extensão só funcionará quando o Modo de idioma está configurado para Python 🐍. Isto é para evitar que os snippets sejam inseridos quando se trabalha com qualquer outro tipo de ficheiro. Todos os snippets têm um prefixo que começa com ultrae digitando simplesmente ultra no seu editor depois de instalar a extensão, apresentará uma lista de possíveis snippets a utilizar. Também pode abrir o código VS Paleta de comandos utilizando Ctrl+Deslocação ⇑+p e executando o comando Snippets: Insert Snippet.

Campos de snippet de código

Muitos snippets têm "campos" com valores ou nomes de marcadores de posição predefinidos. Por exemplo, a saída do prever poderia ser guardado numa variável Python chamada r, results, detections, preds ou qualquer outra coisa que um programador escolha, e é por isso que os snippets incluem "campos". Utilizar Separador ⇥ no seu teclado depois de inserir um snippet, o seu cursor mover-se-á rapidamente entre os campos. Uma vez selecionado um campo, a introdução de um novo nome de variável altera essa instância, mas também todas as outras instâncias no código do excerto para essa variável!


Campo e opções de atualização múltipla
Depois de inserir o snippet, renomear model como world_model actualiza todas as instâncias. Premir Separador ⇥ passa para o campo seguinte, o que abre um menu pendente e permite selecionar uma escala de modelo, e passar para o campo seguinte fornece outra lista pendente para escolher world ou worldv2 variante do modelo.

Conclusões de snippets de código

Atalhos ainda mais curtos

Não é necessário digitar o prefixo completo do snippet, nem mesmo começar a digitar desde o início do snippet. Veja o exemplo na imagem abaixo.

Os snippets são nomeados da forma mais descritiva possível, mas isso significa que pode haver muito para digitar, o que seria contraproducente se o objetivo for mover mais rápido. Felizmente, o VS Code permite que os utilizadores escrevam ultra.example-yolo-predict, example-yolo-predict, yolo-predict, ou mesmo ex-yolo-p e ainda assim alcançar a opção de trecho pretendida! Se o trecho pretendido era de facto ultra.example-yolo-predict-kwordse, em seguida, utilizando apenas as setas do teclado ou para realçar o excerto pretendido e premir Introduzir ↵ ou Separador ⇥ irá inserir o bloco de código correto.


Exemplo de Snippet Incompleto
Dactilografia ex-yolo-p vontade ainda chegar ao snippet correto.

Categorias de snippets

Estas são as actuais categorias de snippets disponíveis para a extensão Ultralytics-snippets. Serão adicionadas mais no futuro, por isso certifique-se de que verifica as actualizações e que ativa as actualizações automáticas para a extensão. Também pode pedir que sejam adicionados mais snippets se achar que está a faltar algum.

Categoria Prefixo inicial Descrição
Exemplos ultra.examples Código de exemplo para ajudar a aprender ou para começar a utilizar Ultralytics. Os exemplos são cópias ou semelhantes ao código das páginas de documentação.
Kwargs ultra.kwargs Acelere o desenvolvimento adicionando snippets para os métodos train, track, predict e val com todos os argumentos de palavras-chave e valores predefinidos.
Importações ultra.imports Snippets para importar rapidamente objectos comuns do Ultralytics .
Modelos ultra.yolo Inserir blocos de código para inicializar vários modelos (yolo, sam, rtdetr, etc.), incluindo opções de configuração do menu pendente.
Resultados ultra.result Blocos de código para operações comuns quando se trabalha com resultados de inferência.
Utilidades ultra.util Fornece acesso rápido a utilitários comuns que estão integrados no pacote Ultralytics . Saiba mais sobre eles na página Utilitários simples.

Aprender com exemplos

O ultra.examples Os snippets são úteis para quem quer aprender como começar a trabalhar com Ultralytics YOLO . Os exemplos de snippets destinam-se a ser executados uma vez inseridos (alguns também têm opções de dropdown). Um exemplo disso é mostrado na animação na página topo desta página, onde, após a inserção do snippet, todo o código é selecionado e executado interactivamente utilizando Deslocação ⇑+Introduzir ↵.

Exemplo

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

Acelerar o desenvolvimento

O objetivo para outros snippets que não o ultra.examples servem para tornar o desenvolvimento mais fácil e mais rápido quando se trabalha com Ultralytics. Um bloco de código comum a ser utilizado em muitos projectos consiste em iterar a lista de Results obtido com a utilização do modelo prever método. O método ultra.result-loop pode ajudar nesta tarefa.

Exemplo

Utilizar o ultra.result-loop irá inserir 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, uma vez que Ultralytics suporta numerosos tarefas, quando trabalhar com resultados de inferência existem outros Results atributos a que pode querer aceder, que é onde o campos de snippet será poderoso.


Opções do ciclo de resultados
Uma vez selecionado o separador boxes aparece um menu pendente para permitir a seleção de outro atributo, conforme necessário.

Palavras-chave Argumentos

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

Exemplo

Para inserir o prever incluindo todos os argumentos de inferência, utilizar 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[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
)

Este snippet tem campos para todos os argumentos da palavra-chave, mas também para model e src no caso de ter utilizado uma variável diferente no seu 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 saber quais são os snippets disponíveis é descarregar e instalar a extensão e experimentá-la! Se estiver curioso e quiser ver a lista antes, pode visitar o repositório ou a página da extensão no mercado do VS Code para ver as tabelas de todos os snippets disponíveis.

Conclusão

A extensão Ultralytics-Snippets para VS Code foi concebida para capacitar os cientistas de dados e os engenheiros de aprendizagem automática a criarem aplicações de visão computacional utilizando Ultralytics YOLO de forma mais eficiente. Ao fornecer snippets de código pré-construídos e exemplos úteis, ajudamo-lo a concentrar-se no que mais importa: criar soluções inovadoras. Partilhe os seus comentários visitando a página da extensão no mercado do VS Code e deixando um comentário. ⭐

FAQ

Como é que solicito um novo snippet?

Novos snippets podem ser solicitados usando os Problemas no repositório Ultralytics-Snippets.

Quanto custa o Ultralytics-Extension?

É 100% gratuito!

Porque é que não vejo uma pré-visualização de um fragmento de código?

O VS Code usa a combinação de teclas Ctrl+Espaço para mostrar mais/menos informações na janela de visualização. Se não estiver a ver uma pré-visualização de fragmento de código quando escreve o prefixo de um fragmento de código, a utilização desta combinação de teclas deverá restaurar a pré-visualização.

Como posso desativar a recomendação de extensão em Ultralytics?

Se você usa o VS Code e começou a ver uma mensagem solicitando a instalação da extensão Ultralytics-snippets e não quer mais ver a mensagem, há duas maneiras de desativar essa mensagem.

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

  2. É possível utilizar yolo settings vscode_msg False para desativar a apresentação da mensagem sem ter de instalar a extensão. Pode saber mais sobre a extensão Ultralytics Definições no início rápido se não estiver familiarizado.

Tenho uma ideia para um novo fragmento de código Ultralytics . Como posso adicioná-lo?

Visite o repositório Ultralytics-snippets e abra uma Issue ou Pull Request!

Como é que desinstalo a extensão Ultralytics-Snippets?

Como qualquer outra extensão do VS Code, você pode desinstalá-la navegando até o menu Extensões no VS Code. Encontre a extensão Ultralytics-snippets no menu e clique no ícone de engrenagem (⚙) e, em seguida, clique em "Desinstalar" para remover a extensão.


Menu de extensão do VS Code

📅C riado há 3 meses ✏️ Atualizado há 2 meses

Comentários