Accueil Technologie
Comment entraîner YOLOv8 sur des données personnalisées

Comment entraîner YOLOv8 sur des données personnalisées

YOLOv8 est un algorithme de détection d’objets en temps réel largement utilisé dans le domaine de la détection d’objets. Il fait partie de la série You Only Look Once (YOLO) développée par Ultralytics. L’algorithme suit, détecte, segmente les instances, estime la pose et classifie les objets dans les images et les vidéos. Il se veut plus rapide et plus précis que les algorithmes qui l’ont précédé.

L’utilisation de YOLOv8 sur des ensembles de données expérimentales comme CIFAR-10 et CIFAR-100 est souvent plus facile pour les projets de démonstration de concept (POC) que pour les ensembles de données du monde réel qui nécessitent des ensembles de données personnalisés.

Ce tutoriel vous guidera à travers les étapes de l’entraînement de YOLOv8 sur des données personnalisées.


Configuration de l’environnement Python

Commencez par installer l’environnement de développement du projet en suivant les instructions ci-dessous.

  1. Allez dans le terminal et créez un nouveau répertoire nommé yolov8project:
     mkdir yolov8project
  2. Naviguez vers le répertoire du projet et créez un environnement virtuel :
     cd yolov8project
    python -m venv env
  3. Activez ensuite l’environnement virtuel.
     # On Windows
    env/Scripts/activate

    # On Linux / macOS
    source env/bin/activate

    Pour exécuter votre code, vous devez installer Ultralytics, une bibliothèque pour la détection d’objets et la segmentation d’images. C’est également une dépendance de YOLOv8. Installez-la à l’aide de pip en exécutant la commande ci-dessous.

     pip install ultralytics 
  4. Cette commande installe le modèle pré-entraîné de YOLOv8, yolov8n.pt. Testez le modèle en exécutant les commandes ci-dessous pour effectuer une détection avec des poids pré-entraînés sur l’image ou la vidéo de votre choix en utilisant YOLOv8.
     #image detection
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"

    #video detection
    yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"

    Si tout fonctionne parfaitement, les résultats seront disponibles dans la section projet yolov8 dans le répertoire runs/detect/exp sous-répertoire.

Préparation de votre jeu de données personnalisé

Les étapes de préparation de votre jeu de données personnalisé comprennent la collecte des données, l’étiquetage des données et la répartition des données (formation, test, validation).

Collecte des données

Il s’agit du processus de collecte d’un ensemble d’images contenant les objets que vous souhaitez détecter. Veillez à utiliser des images de haute qualité, mises au point et sur lesquelles les objets sont clairement visibles. Vous pouvez utiliser divers outils pour collecter des images, tels que Google Images, Flickr ou votre propre appareil photo. Si vous ne disposez pas d’un ensemble de données d’images, utilisez l’ensemble de données de la base de données openimages. Cet article utilise l’ensemble d’images sur la sécurité des chantiers de construction de Kaggle.

Étiquetage des données

Après avoir collecté vos images, vous devez les étiqueter. Il s’agit d’identifier les objets de chaque image et leurs boîtes de délimitation. Plusieurs outils sont disponibles pour vous aider à étiqueter vos données, tels que LabelImg, CVAT et Roboflow. Ces outils sont tous gratuits.

Diviser les données

Pour former des modèles d’apprentissage automatique, vous devez diviser vos données en ensembles de formation et de test. Essayez d’utiliser un ratio de division de 70 % à 30 % lorsque vous utilisez de grandes quantités de données. Sinon, contentez-vous d’un ratio de 80 % à 20 % pour éviter de suradapter ou de sous-adapter votre modèle.

Utilisez des dossiers de fractionnement pour diviser aléatoirement vos données dans les ensembles de formation, de test et de validation avec le ratio de fractionnement souhaité.

Configurer YOLOv8 pour votre jeu de données

Après avoir étiqueté vos données, configurez YOLOv8 pour votre jeu de données personnalisé. Cela implique la création d’un fichier de configuration qui spécifie les éléments suivants :

  • Le chemin d’accès à vos données d’entraînement.
  • Le chemin d’accès à vos données de validation.
  • Le nombre de classes que vous souhaitez détecter.

Créer un fichier config.yaml pour stocker la configuration :

 path: (dataset directory path) 
train: (train dataset folder path)
test: (test dataset folder path)
valid: (validation dataset folder path)

# Classes
nc: 5 # replace based on your dataset's number of classes

# Class names
# replace all class names with your own classes' names
names: ['class1', 'class2', 'class3', 'class4', 'class5']

La création du fichier de configuration est un moyen utile de structurer et de stocker les paramètres essentiels de votre modèle de vision par ordinateur. Veillez à mettre à jour le fichier config.yaml en fonction de la nature et de la structure de votre jeu de données.

Veillez à utiliser les chemins d’accès corrects pour vos ensembles de données, car l’entraînement du modèle repose entièrement sur le fichier de configuration.

Entraînement de YOLOv8 sur des données personnalisées

Une fois le fichier de configuration créé, commencez à entraîner YOLOv8. Utilisez l’outil de ligne de commande YOLOv8 pour entraîner votre modèle. L’outil de ligne de commande prend plusieurs paramètres, tels que le chemin d’accès au fichier de configuration, le nombre d’époques et la taille de l’image, comme suit :

 yolo task=detect mode=train model=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640

Cette commande comporte plusieurs parties.

tâche définit le type de tâche : détecter, segmenter ou classer. mode représente une action : former, prédire, évaluer, exporter, suivre ou évaluer. modèle est le modèle à utiliser, dans ce cas, yolov8n.pt. Vous pouvez également utiliser yolov8s/yolov8l/yolov8x.

époques représente le nombre de cycles de formation (10). imgsz représente la taille de l’image (640). La taille de l’image doit toujours être un multiple de 32.

Voici un exemple du résultat auquel vous pouvez vous attendre :

Entraînement de Yolov8 sur des données personnalisées

La durée de l’entraînement dépend de la taille de votre ensemble de données, du nombre d’époques et du nombre de classes que vous souhaitez détecter. Une fois le processus d’entraînement terminé, vous disposerez d’un modèle YOLOv8 entraîné que vous utiliserez pour détecter des objets dans des images et des vidéos.

Une fois l’apprentissage terminé, faites l’inférence avec les nouveaux poids, best.pt

 yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"

Naviguez jusqu’à la page courses/entraînement/exp/poids/meilleur.pt pour accéder aux poids entraînés. YOLOv8 aura stocké l’image prédite dans le répertoire runs/detect/exp sous-répertoire.

Évaluation des performances du modèle

Vous pouvez évaluer les performances du modèle YOLOv8 à l’aide de la commande suivante, qui évalue le modèle sur un ensemble d’images de test :

 yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640

Les résultats attendus sont les suivants :

Résultats de la validation de Yolov8

Le processus d’évaluation génère diverses mesures, telles que la précision, le rappel et le score F1. La précision mesure le pourcentage d’objets correctement détectés. Le rappel mesure le pourcentage d’objets détectés par YOLOv8. Le score F1 est une moyenne pondérée des mesures de précision et de rappel.

Déployer votre modèle YOLOv8 personnalisé

Testez les performances de votre modèle YOLOv8.

 yolo detect predict model=path/to/best.pt source="path/to/image.jpg"

Le résultat est le suivant :

Image de l'objet détecté par Yolov8

Enregistrez ensuite les poids du modèle dans un fichier.

 yolo export model=path/to/best.pt format=onnx

Utilisez le fichier pour charger le modèle dans votre application et l’utiliser pour détecter des objets en temps réel. Si vous déployez le modèle dans un service en nuage, utilisez ce service pour détecter des objets dans les images et les vidéos qui s’y trouvent.

A retenir de YOLOv8

L’équipe d’Ultralytics n’a cessé d’améliorer les modèles de la série YOLO. Cela leur a permis de devenir des leaders dans le domaine de la technologie de détection d’objets et de la vision par ordinateur.

Le YOLOv8 est un modèle amélioré que vous pouvez utiliser pour gérer de nombreux types de projets de vision par ordinateur.

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x

Newsletter

inscrivez vous pour recevoir nos actualités

Actualités, astuces, bons plans et cadeaux !