Comment préparer les ensembles de données pour l’entraînement à la détection d’objets YOLOv5, YOLOV8, YOLOV, YOLOV10 et YOLO11 ?
La préparation des ensembles de données pour l’entraînement à la détection d’objets avec YOLO (YOLOv5, YOLOv8, YOLOvX, YOLOv10, YOLOv11) suit généralement les mêmes étapes, bien que les versions récentes puissent apporter quelques améliorations ou fonctionnalités supplémentaires. Voici un guide général applicable à toutes ces versions :
1. Collecte des images
- Images : Collectez un ensemble d’images variées contenant les objets que vous souhaitez détecter. Plus l’ensemble de données est varié, meilleure sera la généralisation du modèle.
- Sources : Utilisez des sources variées, comme des images réelles capturées par des caméras, des datasets publics (par exemple, COCO, Pascal VOC), ou générez des images synthétiques.
2. Annotation des données
- Vous devez annoter les objets dans chaque image. L’annotation consiste à dessiner des boîtes englobantes autour des objets et à étiqueter chaque boîte avec la classe correspondante.
- Utilisez des outils d’annotation pour faciliter ce processus :
- LabelImg (outil populaire pour créer des annotations YOLO).
- Roboflow, CVAT, ou makesense.ai sont aussi de bonnes options.
3. Organisation des dossiers
Les datasets pour YOLO suivent une structure de dossiers spécifique :
dataset/
├── train/
│ ├── images/
│ └── labels/
├── val/
│ ├── images/
│ └── labels/
└── test/ (facultatif)
├── images/
└── labels/
- images/ : Contient les images d’entraînement, de validation et de test.
- labels/ : Contient les annotations correspondantes sous forme de fichiers texte avec le même nom que l’image, mais avec l’extension
.txt
.
4. Création du fichier de configuration YAML
Pour YOLOv5, YOLOv8, et autres versions YOLO, vous devez créer un fichier
définissant les chemins de vos ensembles de données et les classes d’objets à détecter.
Voici un exemple de fichier
pour YOLOv5/v8 :
train: /path/to/train/images
val: /path/to/val/images
test: /path/to/test/images # optionnel pour certaines versions de YOLO
nc: 2 # nombre de classes
names: [‘con’, ‘noc’] # noms des classes
5. Pré-traitement des données
- Normalisation des images : Les images doivent être redimensionnées à la taille d’entrée attendue par le modèle, par exemple, 640×640 pour YOLOv5 et YOLOv8.
- Data Augmentation : Appliquez des techniques de transformation telles que la rotation, le redimensionnement, le recadrage, les modifications de luminosité ou de contraste pour rendre votre modèle plus robuste aux variations.
6. Lancement de l’entraînement
Vous pouvez utiliser la commande d’entraînement correspondant à la version de YOLO que vous utilisez.
- Pour YOLOv5 : python train.py –img 640 –batch 16 –epochs 100 –data data.yaml –weights yolov5s.pt
- Pour YOLOv8 : yolo task=detect mode=train data=data.yaml epochs=100 imgsz=640 batch=16 model=yolov8n.pt
- Pour les versions futures telles que YOLOv10 et YOLO11, le processus est similaire.
7. Validation et ajustement
- Après l’entraînement, évaluez les performances sur l’ensemble de validation et ajustez les hyperparamètres si nécessaire.
- Surveillez les métriques comme le mAP (mean Average Precision) pour évaluer la performance du modèle.
8. Test du modèle
Utilisez l’ensemble de test (si disponible) pour évaluer le modèle sur des données complètement inédites et vous assurer qu’il se généralise bien.