Extensão do Ultralytics para VS Code
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Funcionalidades e Benefícios
✅ Você é um cientista de dados ou engenheiro de machine learning desenvolvendo aplicações de visão computacional com o Ultralytics?
✅ Você detesta escrever os mesmos blocos de código repetidamente?
✅ Você vive esquecendo os argumentos ou valores padrão dos métodos export, predict, train, track ou val?
✅ Quer começar com o Ultralytics e gostaria de ter uma maneira mais fácil de referenciar ou executar exemplos de código?
✅ Quer acelerar seu ciclo de desenvolvimento ao trabalhar com o Ultralytics?
Se você usa o Visual Studio Code e respondeu "sim" a qualquer uma das perguntas acima, a extensão Ultralytics-snippets para VS Code está aqui para ajudar! Continue lendo para saber mais sobre a extensão, como instalá-la e como usá-la.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Inspirado pela Comunidade Ultralytics
A inspiração para criar esta extensão veio da Comunidade Ultralytics. Perguntas da Comunidade sobre tópicos e exemplos semelhantes impulsionaram o desenvolvimento deste projeto. Além disso, muitos membros da equipe Ultralytics usam o VS Code para acelerar seu próprio trabalho ⚡.
Por que o VS Code?
Visual Studio Code é extremamente popular entre desenvolvedores de 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, funcionalidades nativas, ampla compatibilidade e extensibilidade do VS Code, não é surpresa que tantos desenvolvedores o utilizem. Dada a popularidade na comunidade de desenvolvedores em geral e dentro das comunidades do Ultralytics no Discord, Discourse, Reddit e GitHub, fez sentido construir uma extensão para VS Code para ajudar a otimizar seu fluxo de trabalho e aumentar sua produtividade.
Quer nos contar o que você usa para desenvolver código? Acesse nossa enquete comunitária no Discourse e conte para nós! Enquanto estiver lá, talvez dê uma olhada em alguns de nossos memes favoritos sobre visão computacional, machine learning, IA e desenvolvedores, ou até mesmo poste o seu favorito!
Instalando a Extensão
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. Após publicar a extensão, descobriu-se que o neovim pode ser tornado compatível com extensões do VS Code. Para saber mais, veja a seção de instalação do neovim no Readme do repositório Ultralytics-Snippets.
Instalando no VS Code
-
Navegue até o menu de Extensões no VS Code ou use o atalho Ctrl+Shift ⇑+x e pesquise por Ultralytics-snippets.
-
Clique no botão Install.
Instalando a partir do VS Code Extension Marketplace
-
Visite o VS Code Extension Marketplace e pesquise por Ultralytics-snippets ou vá direto para a página da extensão no marketplace do VS Code.
-
Clique no botão Install e permita que seu navegador inicie uma sessão do VS Code.
-
Siga as instruções na tela para instalar a extensão.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Usando a extensão Ultralytics-Snippets
-
🧠 Intelligent Code Completion (Autocompletar de código inteligente): Escreva código mais rápido e com mais precisão com sugestões avançadas de autocompletar adaptadas à API do Ultralytics.
-
⌛ Increased Development Speed (Velocidade de desenvolvimento aumentada): Economize tempo eliminando tarefas de codificação repetitivas e aproveitando blocos de código pré-construídos.
-
🔬 Improved Code Quality (Qualidade de código aprimorada): Escreva código mais limpo, consistente e livre de erros com o autocompletar inteligente.
-
💎 Streamlined Workflow (Fluxo de trabalho otimizado): Mantenha o foco na lógica principal do seu projeto automatizando tarefas comuns.
Visão geral
A extensão só funcionará quando o Language Mode estiver configurado para Python 🐍. Isso evita que os snippets sejam inseridos ao trabalhar com qualquer outro tipo de arquivo. Todos os snippets têm um prefixo começando com ultra, e basta digitar ultra no seu editor após instalar a extensão para exibir uma lista de possíveis snippets para usar. Você também pode abrir a Command Palette do VS Code usando Ctrl+Shift ⇑+p e executando o comando Snippets: Insert Snippet.
Campos de Snippet de Código
Muitos snippets possuem "campos" com valores ou nomes de espaço reservado padrão. Por exemplo, a saída do método predict pode ser salva em uma variável Python chamada r, results, detections, preds ou o que o desenvolvedor escolher, e é por isso que os snippets incluem "campos". Usando Tab ⇥ no seu teclado após um snippet ser inserido, seu cursor se moverá entre os campos rapidamente. Uma vez selecionado um campo, digitar um novo nome de variável alterará essa instância, mas também todas as outras instâncias da variável no código do snippet!
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.
Completar de Snippets de Código
Não é obrigatório digitar o prefixo completo do snippet, ou sequer começar a digitar desde o início do snippet. Veja o exemplo na imagem abaixo.
Os snippets são nomeados da maneira mais descritiva possível, mas isso significa que pode haver muito para digitar, o que seria contraproducente se o objetivo é se mover mais rápido. Felizmente, o VS Code permite que os usuários digitem ultra.example-yolo-predict, example-yolo-predict, yolo-predict ou até mesmo ex-yolo-p e ainda acessem a opção de snippet desejada! Se o snippet pretendido fosse na verdade ultra.example-yolo-predict-kwords, então usar as setas do teclado ↑ ou ↓ para destacar o snippet desejado e pressionar Enter ↵ ou Tab ⇥ inserirá o bloco de código correto.
Typing ex-yolo-p will still arrive at the correct snippet.
Categorias de Snippet
Estas são as categorias de snippet atuais disponíveis para a extensão Ultralytics-snippets. Mais serão adicionadas no futuro, então certifique-se de verificar as atualizações e ativar as atualizações automáticas para a extensão. Você também pode solicitar snippets adicionais caso sinta falta de algum.
| Categoria | Prefixo Inicial | Descrição |
|---|---|---|
| Exemplos | ultra.examples | Código de exemplo para ajudar a aprender ou para começar a usar o Ultralytics. Os exemplos são cópias ou semelhantes aos códigos 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 palavra-chave e valores padrão. |
| Imports | ultra.imports | Snippets para importar rapidamente objetos comuns do Ultralytics. |
| Modelos | ultra.yolo | Insira blocos de código para inicializar vários modelos (yolo, sam, rtdetr, etc.), incluindo opções de configuração via menu suspenso. |
| Resultados | ultra.result | Blocos de código para operações comuns ao trabalhar com resultados de inferência. |
| Utilitários | ultra.util | Fornece acesso rápido a utilitários comuns incorporados ao pacote Ultralytics; saiba mais sobre eles na página de Utilitários Simples. |
Aprendendo com Exemplos
Os snippets ultra.examples são muito úteis para quem procura aprender a começar com o básico do uso do Ultralytics YOLO. Os snippets de exemplo destinam-se a serem executados assim que inseridos (alguns também possuem opções de menu suspenso). Um exemplo disso é mostrado na animação no topo desta página, onde, após a inserção do snippet, todo o código é selecionado e executado interativamente usando Shift ⇑+Enter ↵.
Assim como a animação mostra no topo desta página, você pode usar 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 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() # uncomment to view each result imageAcelerando o Desenvolvimento
O objetivo dos snippets, além dos ultra.examples, é tornar o desenvolvimento mais fácil e rápido ao trabalhar com o Ultralytics. Um bloco de código comum a ser usado em muitos projetos é iterar a lista de Results retornada pelo uso do método predict do modelo. O snippet ultra.result-loop pode ajudar com isso.
Usar o ultra.result-loop inserirá o seguinte código padrão (incluindo comentários).
# reference https://docs.ultralytics.com/modes/predict/#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayNo entanto, como o Ultralytics suporta várias tarefas, ao trabalhar com resultados de inferência, existem outros atributos de Results que você pode querer acessar, e é aqui que os campos de snippet serão poderosos.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Argumentos de Palavra-Chave
Existem mais de 💯 argumentos de palavra-chave para todas as várias tarefas e modos do Ultralytics! É muita coisa para lembrar, 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!
Para inserir o método predict, incluindo todos os argumentos de inferência, use ultra.kwargs-predict, que 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 possui campos para todos os argumentos de palavra-chave, mas também para model e src, caso você tenha usado uma variável diferente em seu código. Em cada linha contendo um argumento de palavra-chave, uma breve descrição é incluída para referência.
Todos os Snippets de Código
A melhor maneira de descobrir quais snippets estão disponíveis é baixar e instalar a extensão e testá-la! Se você está curioso e quer dar uma olhada na lista antes, pode visitar o repositório ou a página da extensão no marketplace do VS Code para ver as tabelas de todos os snippets disponíveis.
Conclusão
A extensão Ultralytics-Snippets para VS Code foi projetada para capacitar cientistas de dados e engenheiros de machine learning a construir aplicações de visão computacional usando o Ultralytics YOLO com mais eficiência. Ao fornecer snippets de código pré-construídos e exemplos úteis, ajudamos você a focar no que mais importa: criar soluções inovadoras. Por favor, compartilhe seu feedback visitando a página da extensão no marketplace do VS Code e deixando uma avaliação. ⭐
FAQ
Como solicito um novo snippet?
Novos snippets podem ser solicitados usando as Issues no repositório do Ultralytics-Snippets.
Quanto custa a extensão Ultralytics?
É 100% gratuita!
Por que não vejo uma visualização do snippet de código?
O VS Code usa a combinação de teclas Ctrl+Space para mostrar mais/menos informações na janela de visualização. Se você não está vendo uma prévia do snippet ao digitar um prefixo de snippet de código, usar essa combinação de teclas deve restaurar a visualização.
Como desativo a recomendação da extensão no Ultralytics?
Se você usa o VS Code e começou a ver uma mensagem solicitando que você instale a extensão Ultralytics-snippets, e não quer mais ver a mensagem, existem duas maneiras de desativá-la.
-
Instale o Ultralytics-snippets e a mensagem não será mais exibida 😆!
-
Você pode usar
yolo settings vscode_msg Falsepara desativar a exibição da mensagem sem precisar instalar a extensão. Você pode saber mais sobre as Configurações do Ultralytics na página de início rápido se não estiver familiarizado.
Tenho uma ideia para um novo snippet de código Ultralytics, como posso fazer com que ele seja adicionado?
Visite o repositório do Ultralytics-snippets e abra uma Issue ou Pull Request!
Como desinstalo a extensão Ultralytics-Snippets?
Como qualquer outra extensão do VS Code, você pode desinstalá-la navegando até o menu de Extensões no VS Code. Encontre a extensão Ultralytics-snippets no menu, clique no ícone de engrenagem (⚙) e depois em "Uninstall" para remover a extensão.