Comment utiliser YOLOv6 sur image et dossier ? – Meilleur Tutoriel

Dans cet article, vous trouverez tout ce dont vous avez besoin pour utiliser YOLOv6 : détails sur l’implémentation, compréhension des résultats et plus encore !

YOLOv6 est la version 2022 de YOLO.

YOLO signifie You Only Look Once. C’est un modèle de Deep Learning utilisé pour la détection sur les images et les vidéos.

La première version de YOLO a été publiée en 2016. Depuis, des mises à jour fréquentes sont effectuées avec les dernières améliorations : calcul plus rapide, meilleure précision.

Voici les résultats de YOLOv6 comparé aux autres versions sur le dataset COCO :

YOLOv6 results

Maintenant, voyons comment l’utiliser !

Comment utiliser YOLOv6 ?

Les lignes de code suivantes fonctionne pour tout instance de Notebook/Colab. Si vous souhaitez exécuter YOLOv6 sur un terminal/en local, il suffit de supprimer le premier « ! » ou « % » de chaque ligne de code.

Pour utiliser YOLOv6, nous devons d’abord télécharger le dépôt Github !

Pour cela, nous allons utiliser la commande git clone pour le télécharger sur notre Notebook :

!git clone https://dagshub.com/nirbarazida/YOLOv6

Ensuite, on se place dans le dossier qu’on vient de télécharger :

%cd YOLOv6

Puis, nous devons installer toutes les bibliothèques nécessaires pour utiliser YOLOv6.

Les bibliothèques sont les suivantes :

  • torch
  • torchvision
  • numpy
  • opencv-python
  • PyYAML
  • scipy
  • tqdm
  • addict
  • tensorboard
  • pycocotools
  • dvc
  • onnx

Heureusement pour nous, une seule ligne de code suffit pour installer toutes ces dépendances :

!pip install -r requirements.txt

Il faut ensuite télécharger les poids du Réseau de Neurones.

Avec la commande git clone, nous avons téléchargé toute l’architecture du Réseau de Neurones (couches du modèle, fonctions pour l’entrainer, l’utiliser, l’évaluer, …) mais pour l’utiliser, nous avons également besoin des poids.

Dans un Réseau de Neurones, les poids sont les informations obtenues par le modèle pendant l’entraînement.

Vous pouvez télécharger manuellement n’importe quelle version des poids ici, puis mettre le fichier dans le dossier YOLOv6.

Ou téléchargez facilement une des version avec cette ligne de code :

!wget https://github.com/meituan/YOLOv6/releases/download/0.1.0/yolov6n.pt

Au moment où j’écris cet article, YOLOv6 vient d’être publié. Des mises à jour peuvent avoir lieu et les poids peuvent changer, ainsi que l’URL de leur dépôt. Si le lien ne fonctionne plus, consultez ce Github pour obtenir la dernière version.

Une dernière chose avant d’utiliser le modèle : uploadez votre image !

Soit une seule image, soit plusieurs dans un dossier (YOLOv6 peut traiter plusieurs images à la fois).

Vous n’avez pas d’images disponible ? Vous pouvez simplement télécharger notre image de test en une ligne de code :

!wget https://raw.githubusercontent.com/tkeldenich/Tutorial_YOLOv6/main/man_cafe.jpg
man_cafe.jpg – source

ENFIN, nous pouvons utiliser YOLOv6 !

Pour cela, nous allons appeler le fichier infer.py du dossier tools.

Le code python contenu dans ce fichier va lancer la détection pour nous.

Nous devons seulement indiquer quelques paramètres importants, dans notre cas :


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


  • les poids que nous utilisons : --weights yolov6n.pt
  • l’image sur laquelle nous voulons appliquer la détection : --source ./man_cafe.jpg
!python tools/infer.py --weights yolov6n.pt --source ./man_cafe.jpg

Si vous utilisez votre propre image ou dossier, changez seulement cette dernière partie en ./votre_chemin.

Comprendre nos résultats

Vous trouverez le résultat de la détection dans le dossier YOLOv6/runs/inference/exp/

Voici notre résultat :

YOLOv6_n results on man_cafe.jpg

Tout d’abord, nous pouvons voir que YOLOv6 a une très bonne capacité de détection. Il détecte même la personne juste derrière notre personnage principal.

Vous pouvez voir qu’il indique même la confiance avec laquelle il détecte les objets/personnes. La plupart des objets évidents sont détectés avec un seuil de confiance élevé. Mais nous pouvons voir à gauche que YOLOv6 détecte une bouteille. Ici, le modèle échoue. Mais il échoue avec un seuil de confiance très bas.

Il détecte avec 34% de confiance qu’il y a une bouteille sur la table de gauche. Ce qui signifie que YOLOv6 n’est pas du tout sûr de cette prédiction.

Peut-être pouvons-nous simplement supprimer cette prédiction ?

En fait, c’est possible lors du lancement de YOLOv6.

Rappelez-vous que nous avons défini certains paramètres. Les paramètres obligatoires sont les poids et la source (chemin de l’image), mais il y a aussi des paramètres par défaut que vous pouvez modifier selon vos besoins.

Il y a d’autres paramètres, par exemple :

  • le seuil de confiance : conf-thres (valeur par défaut : 0.25)
  • le seuil d’Intersection over Union : iou-thres (valeur par défaut : 0.45)

Le seuil de confiance définit la valeur minimale de confiance à laquelle il faut conserver la détection.

Par défaut, si une détection a un seuil de confiance inférieure à 25%, elle sera supprimée.

Modifions le seuil de confiance à 0.35 :

!python tools/infer.py --weights yolov6n.pt --source ./man_cafe.jpg --conf-thres 0.35

Résultat :

YOLOv6_n results on man_cafe.jpg with 0.35 conf-thres

On voit ici que la bouteille n’a pas été conservée.

Utilisez YOLOv6, faites des hypothèses pour votre projet et définissez le seuil de confiance qui convient à votre besoin 😉 .

Changer de poids

Vous comprenez maintenant un peu mieux ce qu’est YOLOv6.

Allons plus loin.

Il existe différentes versions des poids de YOLOv6.

Nous avons utilisé une version large de ces poids.

Les poids larges signifient trois choses par rapport aux autres versions :

  • De meilleurs résultats (ou au moins une meilleure compréhension de la complexité)
  • Une vitesse de calcul plus faible
  • Plus d’espace mémoire utilisé

Mais qu’en est-il si vous avez des contraintes d’espace et de temps ?

Vous pouvez utiliser d’autres versions de ces poids :

  • Petit : https://github.com/meituan/YOLOv6/releases/download/0.1.0/yolov6s.pt
  • Moyen : https://github.com/meituan/YOLOv6/releases/download/0.1.0/yolov6t.pt
  • Grand : https://github.com/meituan/YOLOv6/releases/download/0.1.0/yolov6n.pt

Encore une fois, vous pouvez les télécharger manuellement sur ce lien puis les mettre dans votre dossier, ou utiliser wget en spécifiant la version que vous voulez :

!wget weight_file_path

Selon la version de poids que vous avez choisie, vous aurez :

  • Petit : yolov6s.pt
  • Moyen : yolov6t.pt
  • Grand : yolov6n.pt

Pour l’utiliser, remplacez weight_file ici :

!python tools/infer.py --weights weight_file --source ./man_cafe.jpg

Vous savez maintenant utilisez YOLOv6 !

Si vous souhaitez en savoir plus sur la Vision par Ordinateur, n’hésitez pas à consulter notre catégorie dédiée à ce sujet.

A bientôt dans un prochain article 😉


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


Tom Keldenich
Tom Keldenich

Data Engineer & passionné d'Intelligence Artificielle !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.