Utilisez yolov 4 pour tester votre propre jeu de données (pytorch) Utilisez yolov4 pour tester votre propre jeu de données (pytorch) Donc , avec Y O L O V . 4 alimentation des lignes à partir du propre numéro de données série de l'objet essai ( P Y T O R & lt C H )
Pas encore parfait, peu de temps récemment, économisez pour la prochaine fois
https://codechina.csdn.net/mirrors/bubbliiiing/yolov4-pytorch?utm_source=csdn_github_accelerator
Modifier la taille de l'ensemble de données de détection et modifier les informations d'étiquetage pour rendre la position d'étiquetage précise
Modifier le réseau yolov4 pour l'adapter à la taille de sa propre image d'entraînement
Structure du projet
1. Exigences environnementales
pytorch
opencv-python
tqdm
2. Pré-opération
2.1 Créer le fichier myclasses.txt
Toujours dans le besoin avant de s'entraîner model_data
sous un nouveau fichier myclasses.txt
paddy
Il s'agit du fichier de catégories de l'ensemble de données coco,coco_classes.txt
person
bicycle
car
motorbike
aeroplane
bus
train
...
...
...
2.2 Créez un dossier VOC2009 sous VOCdevkit comme suit:
Pourquoi voc2009, en fait, il n'y a aucune raison, écrivez-le simplement avec désinvolture, afin de reproduire plus de détails
2.3 Mettre des images dans JPEGImages
2.4 Mettre l'étiquette correspondante dans les annotations
2.5 Utilisez le fichier voc2yolo4.py pour générer le txt correspondant sous ImageSets / Main
2.6 Ensuite, lancez voc_annotation.py dans le répertoire racine, et vous devez changer les classes en vos propres classes avant de démarrer.
Attention à ne pas utiliser d'étiquettes chinoises, et pas d'espaces dans le dossier!
Le fichier de projet ne doit pas exister dans le chemin chinois,
changez-le en ceci,
sinon le train.txt généré sera comme ceci
A ce moment, le 2009_train.txt correspondant sera généré, et chaque ligne correspond à la position de l'image et à la position de la trame réelle.
Si vous ne modifiez pas les classes, il n'y aura pas les coordonnées et les catégories suivantes.
La racine est de
regarder le fichier xml de votre étiquette.
3. Formation
3.1 Pointez classes_path vers le fichier my_classes.txt créé auparavant dans train.py
3.2 Utiliser des poids auto-entraînés
Dans le yolo.py
fichier, modifiez-le model_path
et classes_path
faites-le correspondre au fichier entraîné dans les parties suivantes ; model_path correspond au fichier de poids sous le dossier logs, et classes_path est la classe correspondant à model_path.
3.3 Commencer la formation
Exécutez train.py pour commencer l'entraînement.
4. Prévisions
Utilisez votre propre poids d'entraînement
a, suivez les étapes d'entraînement pour vous entraîner.
b. Dans le fichier yolo.py, modifiez model_path et classes_path dans les parties suivantes pour les faire correspondre aux fichiers entraînés; model_path correspond au fichier de poids sous le dossier logs et classes_path est la classe correspondant à model_path.
_defaults = {
"model_path": 'logs/Epoch150-Total_Loss26.0809-Val_Loss23.1463.pth',
"anchors_path": 'model_data/yolo_anchors.txt',
"classes_path": 'model_data/myclasses.txt',
"model_image_size" : (416, 416, 3),
"confidence": 0.5,
"iou" : 0.3,
"cuda": True
}
c. Exécutez predict.py et saisissez
img/fire.jpg
La prévision peut être complétée.
Compétences de formation
Sous le fichier train.py:
1. Le paramètre mosaic peut être utilisé pour contrôler s'il faut améliorer les données Mosaic. (Cette méthode n'est pas applicable à tous les ensembles de données et peut être ajustée en fonction de la situation réelle)
2. Cosine_scheduler peut être utilisé pour contrôler s'il faut utiliser la décroissance de recuit cosinus de la vitesse d'apprentissage.
3. label_smoothing peut être utilisé pour contrôler si le lissage d'étiquette est lisse.