Extension Ultralytics pour VS Code#
À regarder : Comment utiliser l’extension Ultralytics pour Visual Studio Code | Extraits de code prêts à l’emploi | Ultralytics YOLO 🎉
Fonctionnalités et avantages#
✅ Tu es data scientist ou ingénieur en apprentissage automatique et tu développes des applications de vision par ordinateur avec Ultralytics ?
✅ Tu en as assez de réécrire sans cesse les mêmes blocs de code ?
✅ Tu oublies constamment les arguments ou les valeurs par défaut des méthodes train, val, predict, export ou track ?
✅ Tu souhaites découvrir Ultralytics et aimerais avoir 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 ! Continue ta lecture pour en savoir plus sur l’extension, son installation et son utilisation.
Exécute un exemple de code avec Ultralytics YOLO en moins de 20 secondes ! 🚀
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 similaires et les exemples proposés ont nourri 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 a été désigné comme l’éditeur le plus populaire dans l’enquête Stack Overflow Developer Survey en 2021, 2022, 2023 et 2024. Grâce au haut niveau de personnalisation de VS Code, à ses fonctionnalités intégrées, à sa large compatibilité et à son extensibilité, il n’est pas étonnant que tant de développeurs l’utilisent. Compte tenu de sa popularité auprès de la communauté des développeurs au sens large et des communautés Ultralytics sur Discord, Discourse, Reddit et GitHub, il était logique de créer une extension VS Code pour simplifier ton flux de travail et améliorer ta productivité.
Tu veux nous dire quel outil tu utilises pour développer du code ? Va sur notre sondage communautaire Discourse et donne-nous ton avis ! Tant que tu y es, tu peux aussi découvrir quelques-uns de nos mèmes préférés sur la vision par ordinateur, l’apprentissage automatique, l’IA et le développement, ou même publier les tiens !
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, nous avons découvert qu’il était possible de rendre neovim compatible avec les extensions VS Code. Pour en savoir plus, consulte la section d’installation neovim du fichier Readme dans le dépôt Ultralytics-Snippets.
Installation dans VS Code#
-
Ouvre le menu Extensions de VS Code ou utilise le raccourci Ctrl+Shift ⇑+x, puis recherche Ultralytics-snippets.
-
Clique sur le bouton Install.
Installation depuis la place de marché des extensions VS Code#
-
Rends-toi sur la place de marché des extensions VS Code et recherche Ultralytics-snippets, ou accède directement à la page de l’extension sur la place de marché VS Code.
-
Clique sur le bouton Install et autorise ton navigateur à lancer une session VS Code.
-
Suis les instructions pour installer l’extension.
Page de l’extension Visual Studio Code Marketplace pour Ultralytics-Snippets
Utilisation de l’extension Ultralytics-Snippets#
-
🧠 Complétion intelligente du code : écris du code plus rapidement et avec plus de précision grâce aux suggestions avancées de complétion adaptées à l’API Ultralytics.
-
⌛ Développement accéléré : gagne du temps en éliminant les tâches de programmation répétitives et en utilisant des extraits de code prédéfinis.
-
🔬 Qualité du code améliorée : écris du code plus propre, plus cohérent et sans erreur grâce à la complétion intelligente.
-
💎 Flux de travail simplifié : reste concentré sur la logique essentielle de ton projet en automatisant les tâches courantes.
Présentation#
L’extension fonctionne uniquement lorsque le mode de langage est configuré sur Python 🐍. Cela évite l’insertion d’extraits lorsque tu travailles sur un autre type de fichier. Tous les extraits ont un préfixe commençant par ultra ; il te suffit de saisir ultra dans ton éditeur après avoir installé l’extension pour afficher la liste des extraits disponibles. Tu peux également ouvrir la palette de commandes de VS Code avec Ctrl+Shift ⇑+p, puis exécuter la commande Snippets: Insert Snippet.
Champs des extraits de code#
De nombreux extraits comportent des « champs » avec des valeurs ou des noms de remplacement 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 ; c’est pourquoi les extraits comprennent des « champs ». Après l’insertion d’un extrait, appuie sur Tab ⇥ pour passer rapidement d’un champ à l’autre. Une fois un champ sélectionné, saisir un nouveau nom de variable le modifiera à cet endroit, mais aussi partout ailleurs où cette variable apparaît dans le code de l’extrait !
Après avoir inséré un extrait, renommer model en world_model met à jour toutes les occurrences. Appuie sur Tab ⇥ pour passer au champ suivant : un menu déroulant s’ouvre et te permet de choisir une échelle de modèle. Le champ suivant affiche un autre menu déroulant permettant de choisir la variante de modèle world ou worldv2.
Suggestions d’extraits de code#
Il n’est pas nécessaire de saisir le préfixe complet de l’extrait, ni même de commencer la saisie au début du préfixe. Regarde l’exemple dans l’image ci-dessous.
Les extraits portent des noms aussi descriptifs que possible, mais ils peuvent donc être longs à saisir, ce qui serait contre-productif si l’objectif est d’aller plus vite. Heureusement, VS Code permet de saisir ultra.example-yolo-predict, example-yolo-predict, yolo-predict ou même ex-yolo-p tout en accédant à l’extrait voulu ! Si l’extrait recherché est en fait ultra.example-yolo-predict-kwords, utilise simplement les flèches du clavier ↑ ou ↓ pour le sélectionner, puis appuie sur Enter ↵ ou Tab ⇥ pour insérer le bloc de code voulu.
Saisir ex-yolo-p permet toujours d’obtenir le bon extrait.
Catégories d’extraits#
Voici les catégories d’extraits actuellement disponibles dans l’extension Ultralytics-snippets. D’autres seront ajoutées à l’avenir ; pense donc à vérifier les mises à jour et à activer les mises à jour automatiques de l’extension. Tu peux également demander l’ajout d’extraits si tu estimes qu’il en manque.
| Catégorie | Préfixe de départ | Description |
|---|---|---|
| Exemples | ultra.examples | Exemples de code pour apprendre ou commencer à utiliser Ultralytics. Les exemples sont des copies de code provenant des pages de documentation ou s’en inspirent. |
| Arguments nommés | ultra.kwargs | Accélère le développement en ajoutant des extraits pour les méthodes train, val, predict et track, avec tous les arguments nommés et leurs valeurs par défaut. |
| Importations | ultra.imports | Des extraits pour 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.), avec des options de configuration sous forme de menus déroulants. |
| Résultats | ultra.result | Blocs de code pour les opérations courantes lors de la manipulation des résultats d’inférence. |
| Utilitaires | ultra.util | Donne un accès rapide aux utilitaires courants intégrés au paquet Ultralytics ; découvre-les sur la page des utilitaires simples. |
Apprendre avec des exemples#
Les extraits ultra.examples sont très utiles pour apprendre les bases et commencer à utiliser Ultralytics YOLO. Les exemples d’extraits sont conçus pour être exécutés dès leur insertion (certains proposent aussi des options dans un menu déroulant). La page en donne un exemple dans l’animation en haut : après l’insertion de l’extrait, 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 l’extrait ultra.example-yolo-predict pour insérer l’exemple de code suivant. Une fois l’extrait inséré, la seule option configurable concerne l’échelle du modèle, qui peut être l’une des 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() # décommente pour afficher chaque image de résultatAccélérer le développement#
Les extraits autres que ultra.examples visent à faciliter et à accélérer le développement avec Ultralytics. Un bloc de code fréquemment utilisé dans de nombreux projets consiste à parcourir la liste de Results renvoyée par la méthode predict du modèle. L’extrait ultra.result-loop peut t’aider à le faire.
L’utilisation de ultra.result-loop insère le code par défaut suivant (commentaires compris).
# référence https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # tableau torch.TensorCependant, comme Ultralytics prend en charge de nombreuses tâches, d’autres attributs Results peuvent t’intéresser lorsque tu manipules les résultats d’inférence ; les champs des extraits se révèlent alors très utiles.
Une fois arrivé au champ boxes en appuyant sur Tab, un menu déroulant apparaît et te permet de sélectionner un autre attribut selon tes besoins.
Arguments nommés#
Il existe plus de 💯 arguments nommés pour les différentes tâches et les différents modes d’Ultralytics ! Cela fait beaucoup à retenir, et il est facile d’oublier si l’argument est save_frame ou save_frames (au fait, c’est bien save_frames). C’est là que les extraits ultra.kwargs peuvent t’aider !
Pour insérer la méthode predict, avec tous les arguments d’inférence, utilise ultra.kwargs-predict ; le code suivant sera alors inséré (commentaires compris).
model.predict(
source=src, # (str, optional) répertoire source des images ou des vidéos
imgsz=640, # (int | list) taille des images d’entrée sous forme d’entier ou de liste [h,w] pour predict
conf=0.25, # (float) seuil de confiance minimal
iou=0.7, # (float) seuil d’intersection sur union (IoU) pour NMS
vid_stride=1, # (int) pas de fréquence d’images vidéo
stream_buffer=False, # (bool) mettre les images reçues en mémoire tampon dans une file d’attente (True) ou ne conserver que l’image la plus récente (False)
visualize=False, # (bool) enregistrer les cartes thermiques d’activation des classes
augment=False, # (bool) appliquer une augmentation d’image aux sources de prédiction
agnostic_nms=False, # (bool) NMS indépendant des classes
classes=None, # (int | list[int], optional) filtrer les résultats par classe, par ex. classes=0 ou classes=[0,2,3]
retina_masks=False, # (bool) utiliser des masques de segmentation haute résolution
embed=None, # (list[int], optional) renvoyer les vecteurs de caractéristiques/embeddings des couches indiquées
show=False, # (bool) afficher les images et vidéos prédites si l’environnement le permet
save=True, # (bool) enregistrer les résultats de prédiction
save_frames=False, # (bool) enregistrer les images vidéo prédites individuellement
save_txt=False, # (bool) enregistrer les résultats dans un fichier .txt
save_conf=False, # (bool) enregistrer les résultats avec les scores de confiance
save_crop=False, # (bool) enregistrer les images recadrées avec les résultats
stream=False, # (bool) traiter de longues vidéos ou de nombreuses images en réduisant l’utilisation de la mémoire grâce au renvoi d’un générateur
verbose=True, # (bool) activer/désactiver les journaux détaillés d’inférence dans le terminal
)Cet extrait comporte des champs pour tous les arguments nommés, mais aussi pour model et src, si tu as utilisé une autre variable dans ton code. Chaque ligne contenant un argument nommé inclut une brève description à titre de référence.
Tous les extraits de code#
Le meilleur moyen de découvrir les extraits disponibles est de télécharger et d’installer l’extension, puis de l’essayer ! Si tu es curieux et veux consulter la liste au préalable, tu peux visiter le dépôt ou la page de l’extension sur la place de marché VS Code pour voir les tableaux répertoriant tous les extraits disponibles.
Conclusion#
L’extension Ultralytics-Snippets pour VS Code est conçue pour aider les data scientists et les ingénieurs en apprentissage automatique à développer plus efficacement des applications de vision par ordinateur avec Ultralytics YOLO. En proposant des extraits de code prédéfinis et des exemples pratiques, nous t’aidons à te concentrer sur l’essentiel : créer des solutions innovantes. Partage tes commentaires en visitant la page de l’extension sur la place de marché VS Code et en laissant un avis. ⭐
FAQ#
Tu peux demander de nouveaux extraits en créant des Issues dans le dépôt Ultralytics-Snippets.
C'est 100 % gratuit !
VS Code utilise la combinaison de touches Ctrl+Space pour afficher plus ou moins d'informations dans la fenêtre d'aperçu. Si l'aperçu d'un extrait de code ne s'affiche pas lorsque tu saisis son préfixe, cette combinaison de touches devrait rétablir l'aperçu.
Si tu utilises VS Code et qu'un message t'invitant à installer l'extension Ultralytics-snippets s'affiche, mais que tu ne souhaites 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. Si tu ne connais pas la page Paramètres Ultralytics, tu peux en savoir plus à son sujet.
-
Rends-toi sur le dépôt Ultralytics-snippets et ouvre une Issue ou une Pull Request !
Comme 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 sur « Désinstaller » pour supprimer l'extension.