Skip to content

Former des données personnalisées

📚 Ce guide explique comment former votre propre ensemble de données personnalisé avec YOLOv5 🚀.

Avant de commencer

Cloner le repo et installer le fichier requirements.txt dans un fichier Python>=3.8.0 incluant PyTorch>=1.8. Les modèles et les ensembles de données sont téléchargés automatiquement à partir de la dernièreversion de YOLOv5 .

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

Formation sur les données personnalisées

Ultralytics l'apprentissage actif

La création d'un modèle personnalisé pour détecter vos objets est un processus itératif de collecte et d'organisation d'images, d'étiquetage de vos objets d'intérêt, d'entraînement d'un modèle, de déploiement dans la nature pour faire des prédictions, puis d'utilisation de ce modèle déployé pour collecter des exemples de cas limites à répéter et à améliorer.

Licences

Ultralytics offre deux options de licence :

Pour plus de détails, voir Ultralytics Licences.

YOLOv5 doivent être formés sur des données étiquetées afin d'apprendre les classes d'objets dans ces données. Il existe deux options pour créer votre ensemble de données avant de commencer la formation :

Option 1 : Créer un Roboflow jeu de données

1.1 Collecte d'images

Votre modèle apprendra par l'exemple. Il est essentiel de l'entraîner sur des images similaires à celles qu'il verra dans la nature. Idéalement, vous collecterez une grande variété d'images à partir de la même configuration (caméra, angle, éclairage, etc.) que celle dans laquelle vous allez déployer votre projet.

Si cela n'est pas possible, vous pouvez partir d'un ensemble de données publiques pour entraîner votre modèle initial, puis prélever des images dans la nature pendant l'inférence afin d'améliorer votre ensemble de données et votre modèle de manière itérative.

1.2 Créer des étiquettes

Une fois les images collectées, vous devrez annoter les objets intéressants afin de créer une vérité de base à partir de laquelle votre modèle pourra apprendre.

YOLOv5 précisions

Roboflow Annotate est un outil web simple qui permet de gérer et d'étiqueter vos images avec votre équipe et de les exporter dans le format d'annotation deYOLOv5.

1.3 Préparer l'ensemble des données pour YOLOv5

Que vous étiquiez vos images avec Roboflow ou non, vous pouvez l'utiliser pour convertir votre ensemble de données au format YOLO , créer un fichier de configuration YAML YOLOv5 et l'héberger pour l'importer dans votre script de formation.

Créer un compte gratuit sur Roboflow et téléchargez votre jeu de données dans un Public étiqueter les images non annotées, puis générer et exporter une version de votre jeu de données dans l'espace de travail YOLOv5 Pytorch format.

Remarque : YOLOv5 effectue une augmentation en ligne pendant la formation, nous ne recommandons donc pas d'appliquer les étapes d'augmentation dans Roboflow pour la formation avec YOLOv5. Nous recommandons toutefois d'appliquer les étapes de prétraitement suivantes :

Étapes de prétraitement recommandées

  • Auto-Orient - pour supprimer l'orientation EXIF de vos images.
  • Redimensionner (Ă©tirer) - Ă  la taille d'entrĂ©e carrĂ©e de votre modèle (640x640 est la valeur par dĂ©faut de YOLOv5 ).

La génération d'une version vous donnera un aperçu de votre ensemble de données, de sorte que vous pourrez toujours revenir en arrière et comparer vos futurs cycles d'apprentissage du modèle avec celui-ci, même si vous ajoutez d'autres images ou modifiez sa configuration ultérieurement.

Exportation au format YOLOv5

Exporter en YOLOv5 Pytorch puis copiez l'extrait dans votre script d'apprentissage ou votre carnet de notes pour télécharger votre ensemble de données.

Roboflow téléchargement du jeu de données snippet

Option 2 : Créer un ensemble de données manuel

2.1 Créer dataset.yaml

COCO128 est un exemple d'ensemble de données de petits tutoriels composé des 128 premières images de la rubrique COCO train2017. Ces mêmes 128 images sont utilisées pour la formation et la validation afin de vérifier que notre pipeline de formation est capable de surajustement. data/coco128.yamlillustré ci-dessous, est le fichier de configuration du jeu de données qui définit 1) le répertoire racine du jeu de données path et les chemins relatifs vers train / val / test les répertoires d'images (ou *.txt avec les chemins d'accès aux images) et 2) une classe names dictionnaire :

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes (80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ...
    77: teddy bear
    78: hair drier
    79: toothbrush

2.2 Créer des étiquettes

Après avoir utilisé un outil d'annotation pour étiqueter vos images, exportez vos étiquettes vers YOLO format, avec un *.txt par image (s'il n'y a pas d'objets dans l'image, pas de *.txt est nécessaire). Les *.txt sont les suivantes :

  • Une ligne par objet
  • Chaque ligne est class x_center y_center width height format.
  • Les coordonnĂ©es de la boĂ®te doivent ĂŞtre dans xywh normalisĂ© (de 0 Ă  1). Si vos cases sont en pixels, divisez x_center et width par la largeur de l'image, et y_center et height par la hauteur de l'image.
  • Les numĂ©ros de classe sont indexĂ©s Ă  zĂ©ro (ils commencent Ă  0).

Roboflow annotations

Le fichier d'étiquettes correspondant à l'image ci-dessus contient 2 personnes (classe 0) et une égalité (classe 27) :

Roboflow prétraitement du jeu de données

2.3 Organiser les répertoires

Organisez vos images et étiquettes de train et de val selon l'exemple ci-dessous. YOLOv5 assume /coco128 se trouve à l'intérieur d'un /datasets répertoire à côté de les /yolov5 répertoire. YOLOv5 localise automatiquement les étiquettes pour chaque image en remplaçant la dernière instance de /images/ dans chaque chemin d'image avec /labels/. Par exemple :

../datasets/coco128/images/im0.jpg  # image
../datasets/coco128/labels/im0.txt  # label

YOLOv5 structure du jeu de données

3. Sélectionner un modèle

Sélectionnez un modèle pré-entraîné pour commencer l'entraînement. Ici, nous sélectionnons YOLOv5s, le deuxième modèle le plus petit et le plus rapide disponible. Voir notre tableau README pour une comparaison complète de tous les modèles.

YOLOv5 modèles

4. Train

Entraîner un modèle YOLOv5s sur COCO128 en spécifiant le jeu de données, la taille du lot, la taille de l'image et l'un ou l'autre des modèles pré-entraînés. --weights yolov5s.pt (recommandé), ou initialisé de manière aléatoire --weights '' --cfg yolov5s.yaml (non recommandé). Les poids pré-entraînés sont téléchargés automatiquement à partir de la base de données Dernière version de YOLOv5.

python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt

Conseil

💡 Ajouter --cache ram ou --cache disk pour accélérer la formation (nécessite d'importantes ressources en mémoire vive et en disque).

Conseil

💡 Entraînez-vous toujours à partir d'un ensemble de données local. Les lecteurs montés ou en réseau tels que Google Drive seront très lents.

Tous les résultats de la formation sont enregistrés dans runs/train/ avec des répertoires d'exécution incrémentés, c'est-à-dire runs/train/exp2, runs/train/exp3 etc. Pour plus de détails, voir la section Formation de notre cahier des charges. Open In Colab Ouvrir dans Kaggle

5. Visualiser

Comet Journalisation et visualisation 🌟 NOUVEAU

Comet est désormais entièrement intégré à YOLOv5. Suivez et visualisez les métriques du modèle en temps réel, sauvegardez vos hyperparamètres, vos ensembles de données et les points de contrôle du modèle, et visualisez les prédictions de votre modèle avec Comet Custom Panels! Comet vous permet de ne jamais perdre le fil de votre travail et facilite le partage des résultats et la collaboration au sein d'équipes de toutes tailles !

Pour commencer, rien de plus simple :

pip install comet_ml  # 1. install
export COMET_API_KEY=<Your API Key>  # 2. paste API key
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt  # 3. train

Pour en savoir plus sur toutes les fonctionnalités de Comet prises en charge pour cette intégration, consultez la section Comet Tutoriel. Si vous souhaitez en savoir plus sur Comet, rendez-vous sur notre site Web. la documentation. Commencez par essayer le carnet de notes Comet Colab : Open In Colab

YOLO UI

ClearML Enregistrement et automatisation 🌟 NOUVEAU

ClearML est complètement intégré à YOLOv5 pour suivre votre expérimentation, gérer les versions des jeux de données et même exécuter à distance des cycles d'entraînement. Pour activer ClearML:

  • pip install clearml
  • courir clearml-init pour se connecter Ă  un serveur ClearML

Vous obtiendrez toutes les fonctionnalités attendues d'un gestionnaire d'expériences : mises à jour en direct, téléchargement de modèles, comparaison d'expériences, etc. mais ClearML suit également les changements non validés et les paquets installés, par exemple. Grâce à cela, ClearML Tasks (c'est ainsi que nous appelons les expériences) est également reproductible sur différentes machines ! Avec seulement une ligne supplémentaire, nous pouvons programmer une tâche d'entraînement YOLOv5 sur une file d'attente pour être exécutée par un nombre quelconque d'agents ClearML (travailleurs).

Vous pouvez utiliser ClearML Data pour versionner votre jeu de données et le transmettre à YOLOv5 en utilisant simplement son identifiant unique. Cela vous aidera à garder une trace de vos données sans vous compliquer la vie. Consultez le didacticiel ClearML pour plus de détails !

ClearML Interface utilisateur pour la gestion des expériences

Enregistrement local

Les résultats de l'entraînement sont automatiquement enregistrés avec Tensorboard et CSV loggers à runs/trainUn nouveau répertoire d'expériences est créé pour chaque nouvelle formation. runs/train/exp2, runs/train/exp3, etc.

Ce répertoire contient des statistiques sur les trains et les val, des mosaïques, des étiquettes, des prédictions et des mosaïques augmentées, ainsi que des mesures et des graphiques, notamment des courbes de précision-rappel (PR) et des matrices de confusion.

RĂ©sultats de l'abattage local

Fichier de résultats results.csv est mis à jour après chaque époqueet est ensuite représentée sous la forme results.png (ci-dessous) une fois la formation terminée. Vous pouvez également tracer n'importe quel results.csv manuellement :

from utils.plots import plot_results

plot_results("path/to/results.csv")  # plot 'results.csv' as 'results.png'

résultats.png

Prochaines Ă©tapes

Une fois que votre modèle est entraîné, vous pouvez utiliser votre meilleur point de contrôle best.pt à :

  • ExĂ©cuter CLI ou Python sur de nouvelles images et vidĂ©os
  • Valider l' exactitude sur les splits de formation, de val et de test
  • Exporter vers TensorFlowKeras, ONNX, TFlite, TF.js, CoreML et TensorRT
  • Faire Ă©voluer les hyperparamètres pour amĂ©liorer les performances
  • AmĂ©liorez votre modèle en Ă©chantillonnant des images du monde rĂ©el et en les ajoutant Ă  votre ensemble de donnĂ©es.

Environnements pris en charge

Ultralytics fournit une série d'environnements prêts à l'emploi, chacun étant préinstallé avec des dépendances essentielles telles que CUDACUDNN, Pythonet PyTorchpour lancer vos projets.

État d'avancement du projet

YOLOv5 CI

Ce badge indique que tous les tests d'intégration continue (CI) deYOLOv5 GitHub Actions ont été passés avec succès. Ces tests d'intégration continue vérifient rigoureusement la fonctionnalité et les performances de YOLOv5 sur différents aspects clés : formation, validation, inférence, exportation et tests de référence. Ils garantissent un fonctionnement cohérent et fiable sur macOS, Windows et Ubuntu, avec des tests effectués toutes les 24 heures et à chaque nouveau commit.

FAQ

Comment entraîner YOLOv5 sur mon ensemble de données personnalisé ?

La formation de YOLOv5 sur un ensemble de données personnalisé comporte plusieurs étapes :

  1. Préparez votre ensemble de données: Collecter et étiqueter les images. Utilisez des outils tels que Roboflow pour organiser les données et les exporter au formatYOLOv5 .
  2. Environnement d'installation: Cloner le répertoire YOLOv5 et installer les dépendances :
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
    
  3. Créer la configuration de l'ensemble de données: Écrire un dataset.yaml définissant les chemins train/val et les noms des classes.
  4. Former le modèle:
    python train.py --img 640 --epochs 3 --data dataset.yaml --weights yolov5s.pt
    

Quels outils puis-je utiliser pour annoter mon jeu de données YOLOv5 ?

Vous pouvez utiliser Roboflow Annotate, un outil web intuitif pour étiqueter les images. Il prend en charge la collaboration en équipe et exporte au format YOLOv5 . Après avoir collecté les images, utilisez Roboflow pour créer et gérer efficacement les annotations. D'autres options incluent des outils tels que LabelImg et CVAT pour les annotations locales.

Pourquoi devrais-je utiliser Ultralytics HUB pour former mes modèles YOLO ?

Ultralytics HUB offre une plateforme complète pour la formation, le déploiement et la gestion des modèles YOLO sans nécessiter de compétences approfondies en matière de codage. Les avantages de l'utilisation de Ultralytics HUB sont les suivants

  • Formation facile aux modèles: Simplifie le processus de formation grâce Ă  des environnements prĂ©configurĂ©s.
  • Gestion des donnĂ©es: GĂ©rer sans effort les ensembles de donnĂ©es et le contrĂ´le des versions.
  • Surveillance en temps rĂ©el: Intègre des outils tels que Comet pour le suivi et la visualisation des mesures en temps rĂ©el.
  • Collaboration: IdĂ©al pour les projets d'Ă©quipe avec des ressources partagĂ©es et une gestion facile.

Comment convertir mes données annotées au format YOLOv5 ?

Pour convertir les données annotées au format YOLOv5 en utilisant Roboflow:

  1. Téléchargez votre jeu de données dans un espace de travail Roboflow .
  2. Étiqueter les images si elles ne le sont pas déjà.
  3. Générer et exporter l'ensemble de données en YOLOv5 Pytorch format. Assurez-vous que les étapes de prétraitement telles que l'orientation automatique et le redimensionnement (étirement) à la taille d'entrée carrée (par exemple, 640x640) sont appliquées.
  4. Téléchargez l'ensemble de données et intégrez-le dans votre script de formation YOLOv5 .

Quelles sont les options de licence pour l'utilisation de YOLOv5 dans des applications commerciales ?

Ultralytics offre deux options de licence :

  • AGPL-3.0 Licence: Une licence open-source adaptĂ©e Ă  une utilisation non commerciale, idĂ©ale pour les Ă©tudiants et les passionnĂ©s.
  • Licence d'entreprise: Conçue pour les entreprises qui souhaitent intĂ©grer YOLOv5 dans leurs produits et services commerciaux. Pour plus d'informations, consultez notre page sur les licences.

Pour plus de détails, consultez notre guide sur les licencesUltralytics .

📅C réé il y a 1 an ✏️ Mis à jour il y a 1 mois

Commentaires