Entrainer son modèle YOLO


YOLO (You Only Look Once) est une architecture de réseau de neurones convolutifs largement utilisée pour la détection d’objets en temps réel. YOLOv5, développée par Ultralytics, est une version récente et améliorée de YOLO. Dans cet article, nous allons explorer comment entraîner votre propre modèle YOLOv5 en utilisant Google Colab, une plateforme cloud gratuite de Google pour l’exécution de scripts Python.

Etape 1: Préparation des données

Avant de commencer l’entraînement de notre modèle, il nous faut des données d’entrainement. Pour cela, nous devons créer un dossier d’entrainement qui contiendra deux dossiers : le premiers étant celui des images et le deuxième étant celui des labels. A l’intérieur de ses deux dossiers nous pouvons trouver une nouvelle fois deux dossiers qui seront les dossiers de référence et d’entrainement. Je les ai appelé train et val mais vous pouvez les appeler comme vous le voulez. Ainsi dans le dossier des images vous allez y mettre dans chacun des dossiers des images sur ce que vous voulez détecter et ensuite il faudra labellisé ses images à l’aide d’un outil d’annotation. Pour ma part j’ai utilisé le site makesense.ia pour faire ses annotations, il suffi juste de créer ses labels, sélectionner le premier dossier et commencer à annoter les images du dossier. Une fois les annotations faites, dans l’onglet exporter il faut sélectionner le format YOLO et choisir le dossier équivalent dans le dossier des labels et exporter les annotations dans ce dossier. Pour le deuxième dossier il suffi de suivre les mêmes étapes que le premier dossier et voila comment vous avez créé votre premier jeu de données.

Etape 2: Configuration de Google Colab

Une fois les données d’entraînement prêtent, nous pouvons nous rendre sur Google Colab et créer un nouveau notebook ou en importer un, ou encore se rendre sur le Github de YOLO et ensuite un peu plus bas sur cette page cliquer sur “open in colab” ou l’icône de Google Colab pour ouvrir une page Google Colab déjà pré-rempli de ligne de commande qu’on aura juste à modifier. Si vous avez ouvert Google Colab via le Github de YOLO vous tomberez sur cette page.

Exécuter le code de la première cellule afin de cloner le dossier de YOLO et d’installer toute les dépendances nécessaire. Puis zipper votre dossier d’entraînement créé tout à l’heure et faite un glisser déposé du dossier dans Google Colab. Ensuite vous allez créer une nouvelle cellule et taper ce code : “!unzip -q ../train_data.zip -d ../” et exécuter ce code afin de dézipper le dossier d’entraînement. Une fois cette tâche effectuée, vous pouvez supprimer le dossier zipper.

Dans le dossier yolov5/data vous trouverez un fichier nommé coco128.yaml que vous téléchargerez. Nous allons modifié ce fichier afin de renseigner le chemin du dossier d’entraînement, de préciser quel est le dossier d’images, mais aussi indiquer les classes que nous voulons détecter. Ainsi comme vous pouvez le voir dans l’image ci-dessous, la partie “path” sert à renseigner le chemin du dossier d’entraînement, celle de “train” et “val” servent à renseigner le dossiers d’images qui vont servir à l’entraînement du modèle et ensuite dans la partie classes vous allez définir les classes que vous voulez détecter.

Une fois ces modifications faites, vous pouvez uploader le fichier que vous avez modifié et renommé dans le dossier yolov5/data. Et nous allons passer à l’entraînement du modèle.

Etape 3: Entraînement

Plus bas sur la page de Google Colab, il y a la partie entraînement comme sur la capture ci-dessous.

Dans cette ligne: 

-“img 640” correspond à la taille de l’image

-“batch 16” correspond au nombre d’images utilisées dans chaque itération d’entraînement

-“epochs 3” correspond nombre d’époques d’entrainement. Une époque représente une passe complète à travers l’ensemble des données d’entraînement.

-“coco_custom.yaml” correspond au fichier modifier tout à l’heure (c’est donc une valeur à modifier si ce n’est pas déjà fait en y mettant le nom de votre fichier modifié)

-“yolov5s.pt” correspond au type de modèle utilisé. Vous pouvez modifier aussi ce modèle en fonction de vos besoin (modèle n, s, m, l et x), et les informations par rapport à ces modèles sont affichés sur la page Github de YOLO.

Une fois les modifications faites, vous pouvez désormais entraîner votre modèle YOLO.

Etape 4: Résultats

Une fois l’entraînement fini, vous pouvez trouver les résultats de vos différents entraînements dans la partie yolov5/runs.