Extension Ultralytics pour VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Fonctionnalités et avantages#
✅ Es-tu data scientist ou ingénieur en machine learning et développes-tu des applications de vision par ordinateur avec Ultralytics ?
✅ Détestes-tu écrire sans cesse les mêmes blocs de code ?
✅ Oublies-tu toujours les arguments ou les valeurs par défaut des méthodes export, predict, train, track ou val ?
✅ Tu souhaites te lancer avec Ultralytics et tu aimerais disposer d’un moyen plus simple de consulter ou d’exécuter des exemples de code ?
✅ Tu veux accélérer ton cycle de développement lorsque tu travailles avec Ultralytics ?
Si tu utilises Visual Studio Code et que tu as répondu « oui » à l’une des questions ci-dessus, l’extension Ultralytics-snippets pour VS Code est là pour t’aider ! Poursuis ta lecture pour en savoir plus sur l’extension, découvrir comment l’installer et apprendre à l’utiliser.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Inspirée par la communauté Ultralytics#
L’idée de créer cette extension est venue de la communauté Ultralytics. Les questions de la communauté sur des sujets et des exemples similaires ont alimenté le développement de ce projet. De plus, de nombreux membres de l’équipe Ultralytics utilisent VS Code pour accélérer leur propre travail ⚡.
Pourquoi VS Code ?#
Visual Studio Code est extrêmement populaire auprès des développeurs du monde entier et s’est classé parmi les outils les plus populaires dans l’enquête Stack Overflow Developer Survey en 2021, 2022, 2023 et 2024. Grâce à son haut niveau de personnalisation, ses fonctionnalités intégrées, sa large compatibilité et son extensibilité, il n’est pas surprenant que tant de développeurs l’utilisent. Compte tenu de sa popularité au sein de la communauté des développeurs et des communautés Ultralytics sur Discord, Discourse, Reddit et GitHub, il était logique de créer une extension VS Code pour simplifier ton workflow et améliorer ta productivité.
Tu veux nous dire quel outil tu utilises pour développer du code ? Rendez-vous sur notre sondage communautaire Discourse et dis-le-nous ! Tant que tu y es, tu peux aussi découvrir certains de nos mèmes préférés sur la vision par ordinateur, le machine learning, l’IA et le développement, ou même publier ton préféré !
Installation de l’extension#
Tout environnement de développement permettant d’installer des extensions VS Code devrait être compatible avec l’extension Ultralytics-snippets. Après la publication de l’extension, il a été découvert que neovim pouvait être rendu compatible avec les extensions VS Code. Pour en savoir plus, consulte la section d’installation de neovim du Readme dans le dépôt Ultralytics-Snippets.
Installation dans VS Code#
-
Accède au menu Extensions de VS Code ou utilise le raccourci Ctrl+Shift ⇑+x, puis recherche Ultralytics-snippets.
-
Clique sur le bouton Install.
Installation depuis le Marketplace des extensions VS Code#
-
Rends-toi sur le Marketplace des extensions VS Code et recherche Ultralytics-snippets, ou accède directement à la page de l’extension sur le Marketplace VS Code.
-
Clique sur le bouton Install et autorise ton navigateur à lancer une session VS Code.
-
Suis les éventuelles instructions pour installer l’extension.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Utilisation de l’extension Ultralytics-Snippets#
-
🧠 Complétion de code intelligente : écris du code plus rapidement et avec davantage de précision grâce à des suggestions de complétion avancées adaptées à l’API Ultralytics.
-
⌛ Vitesse de développement accrue : gagne du temps en éliminant les tâches de programmation répétitives et en utilisant des extraits de blocs de code préconstruits.
-
🔬 Qualité du code améliorée : écris un code plus propre, plus cohérent et sans erreur grâce à la complétion de code intelligente.
-
💎 Workflow simplifié : reste concentré sur la logique principale de ton projet en automatisant les tâches courantes.
Présentation#
L’extension ne fonctionne que lorsque le mode de langage est configuré sur Python 🐍. Cela évite d’insérer des snippets lorsque tu travailles sur un autre type de fichier. Tous les snippets possèdent un préfixe commençant par ultra et, en saisissant simplement ultra dans ton éditeur après l’installation de l’extension, tu afficheras une liste de snippets disponibles. Tu peux également ouvrir la palette de commandes de VS Code avec Ctrl+Shift ⇑+p et exécuter la commande Snippets: Insert Snippet.
Champs des snippets de code#
De nombreux snippets comportent des « champs » avec des valeurs ou des noms d’espace réservé par défaut. Par exemple, la sortie de la méthode predict peut être enregistrée dans une variable Python nommée r, results, detections, preds ou tout autre nom choisi par le développeur, d’où la présence de « champs » dans les snippets. Après avoir inséré un snippet, utilise la touche Tab ⇥ de ton clavier pour déplacer rapidement le curseur entre les champs. Une fois un champ sélectionné, saisir un nouveau nom de variable modifiera cette occurrence, ainsi que toutes les autres occurrences de cette variable dans le code du 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.
Complétions des snippets de code#
Il n’est pas nécessaire de saisir le préfixe complet du snippet, ni même de commencer à taper depuis le début du snippet. Consulte l’exemple dans l’image ci-dessous.
Les snippets sont nommés de la manière la plus descriptive possible, mais cela signifie qu’il peut y avoir beaucoup de texte à saisir, ce qui serait contre-productif si l’objectif est d’aller plus vite. Heureusement, VS Code permet aux utilisateurs de saisir ultra.example-yolo-predict, example-yolo-predict, yolo-predict ou même ex-yolo-p tout en accédant à l’option de snippet souhaitée ! Si le snippet recherché est effectivement ultra.example-yolo-predict-kwords, utilise simplement les flèches de ton clavier ↑ ou ↓ pour le sélectionner, puis appuie sur Enter ↵ ou Tab ⇥ afin d’insérer le bloc de code correct.
Typing ex-yolo-p will still arrive at the correct snippet.
Catégories de snippets#
Voici les catégories de snippets actuellement disponibles pour l’extension Ultralytics-snippets. D’autres seront ajoutées à l’avenir : pense donc à rechercher les mises à jour et à activer les mises à jour automatiques de l’extension. Tu peux également demander l’ajout de snippets supplémentaires si tu estimes qu’il en manque.
| Catégorie | Préfixe de début | Description |
|---|---|---|
| Exemples | ultra.examples | Exemples de code pour apprendre ou démarrer avec Ultralytics. Les exemples sont des copies de code provenant des pages de documentation, ou des variantes similaires. |
| Kwargs | ultra.kwargs | Accélère le développement en ajoutant des snippets pour les méthodes train, track, predict et val, avec tous les arguments nommés et leurs valeurs par défaut. |
| Imports | ultra.imports | Snippets permettant d’importer rapidement les objets Ultralytics courants. |
| Modèles | ultra.yolo | Insère des blocs de code pour initialiser différents modèles (yolo, sam, rtdetr, etc.), y compris des options de configuration sous forme de liste déroulante. |
| Résultats | ultra.result | Blocs de code pour les opérations courantes lors de l’utilisation des résultats d’inférence. |
| Utilitaires | ultra.util | Permet d’accéder rapidement aux utilitaires courants intégrés au package Ultralytics. Pour en savoir plus, consulte la page des utilitaires simples. |
Apprendre avec des exemples#
Les extraits de code ultra.examples sont très utiles pour toute personne souhaitant apprendre à débuter avec les bases de l'utilisation de Ultralytics YOLO. Les extraits de code d'exemple sont conçus pour être exécutés dès leur insertion (certains proposent également des options dans des listes déroulantes). Tu peux voir un exemple dans l'animation en haut de cette page : une fois l'extrait de code inséré, tout le code est sélectionné et exécuté de manière interactive avec Shift ⇑+Enter ↵.
Comme le montre l’animation en haut de cette page, tu peux utiliser le snippet ultra.example-yolo-predict pour insérer l’exemple de code suivant. Une fois inséré, la seule option configurable concerne l’échelle du modèle, qui peut être l’une des valeurs suivantes : 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 imageAccélérer le développement#
Les snippets autres que ultra.examples ont pour objectif de rendre le développement plus simple et plus rapide avec Ultralytics. Un bloc de code couramment utilisé dans de nombreux projets consiste à parcourir la liste de Results renvoyée par la méthode predict du modèle. Le snippet ultra.result-loop peut t’aider à effectuer cette tâche.
L’utilisation de ultra.result-loop insérera le code par défaut suivant (commentaires compris).
# reference https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayCependant, comme Ultralytics prend en charge de nombreuses tâches, lorsque tu travailles avec des résultats d’inférence, tu peux vouloir accéder à d’autres attributs Results ; c’est là que les champs des snippets deviennent particulièrement utiles.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Arguments nommés#
Il existe plus de 💯 arguments nommés pour les différentes tâches et les différents modes Ultralytics ! Cela fait beaucoup de choses à retenir, et il est facile d’oublier si l’argument est save_frame ou save_frames (c’est bien save_frames, au fait). C’est là que les snippets ultra.kwargs peuvent t’aider !
Pour insérer la méthode predict, avec tous les arguments d’inférence, utilise ultra.kwargs-predict, qui insérera le code suivant (commentaires compris).
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
)Ce snippet comporte des champs pour tous les arguments nommés, ainsi que pour model et src, au cas où tu aurais utilisé une autre variable dans ton code. Une brève description est incluse à titre de référence sur chaque ligne contenant un argument nommé.
Tous les snippets de code#
La meilleure façon de découvrir les snippets disponibles est de télécharger et d’installer l’extension, puis de l’essayer ! Si tu souhaites consulter la liste à l’avance, tu peux te rendre sur le dépôt ou sur la page de l’extension du Marketplace VS Code pour voir les tableaux de tous les snippets disponibles.
Conclusion#
L’extension Ultralytics-Snippets pour VS Code est conçue pour aider les data scientists et les ingénieurs en machine learning à créer plus efficacement des applications de vision par ordinateur avec Ultralytics YOLO. En fournissant des snippets de code préconstruits et des exemples utiles, nous t’aidons à te concentrer sur l’essentiel : créer des solutions innovantes. Partage tes retours en visitant la page de l’extension sur le Marketplace VS Code et en laissant un avis. ⭐
FAQ#
Elle est 100 % gratuite !
VS Code utilise la combinaison de touches Ctrl+Space pour afficher plus ou moins d’informations dans la fenêtre d’aperçu. Si aucun aperçu de snippet ne s’affiche lorsque tu saisis le préfixe d’un snippet de code, cette combinaison de touches devrait rétablir l’aperçu.
Si tu utilises VS Code et qu’un message te proposant d’installer l’extension Ultralytics-snippets commence à s’afficher, mais que tu ne veux plus le voir, tu peux désactiver ce message de deux façons.
-
Installe Ultralytics-snippets et le message ne s’affichera plus 😆 !
-
Tu peux utiliser
yolo settings vscode_msg=Falsepour empêcher l'affichage du message sans avoir à installer l'extension. Tu peux en apprendre davantage sur la page Ultralytics Settings si tu ne connais pas.
-
Rends-toi sur le dépôt Ultralytics-snippets et ouvre une Issue ou une Pull Request !
Comme pour toute autre extension VS Code, tu peux la désinstaller en accédant au menu Extensions de VS Code. Trouve l’extension Ultralytics-snippets dans le menu, clique sur l’icône en forme d’engrenage (⚙), puis clique sur « Uninstall » pour supprimer l’extension.
Tu peux demander de nouveaux snippets via les Issues du dépôt Ultralytics-Snippets.