Utilisez yolov4 pour détecter votre propre ensemble de données (pytorch)

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

Insérez la description de l'image ici


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_datasous un nouveau fichier myclasses.txt

paddy

Insérez la description de l'image ici

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

Insérez la description de l'image ici

2.3 Mettre des images dans JPEGImages

Insérez la description de l'image ici

2.4 Mettre l'étiquette correspondante dans les annotations

Insérez la description de l'image ici

2.5 Utilisez le fichier voc2yolo4.py pour générer le txt correspondant sous ImageSets / Main

Insérez la description de l'image ici

Insérez la description de l'image ici

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,
Insérez la description de l'image ici
changez-le en ceci,
Insérez la description de l'image ici
sinon le train.txt généré sera comme ceci
Insérez la description de l'image ici

Insérez la description de l'image ici

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.

Insérez la description de l'image ici

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.
Insérez la description de l'image ici

3. Formation

3.1 Pointez classes_path vers le fichier my_classes.txt créé auparavant dans train.py

Insérez la description de l'image ici

3.2 Utiliser des poids auto-entraînés

Dans le yolo.pyfichier, modifiez-le model_pathet classes_pathfaites-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.

Insérez la description de l'image ici

3.3 Commencer la formation

Exécutez train.py pour commencer l'entraînement.
Insérez la description de l'image ici

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.

Je suppose que tu aimes

Origine blog.csdn.net/qq_41375318/article/details/115114742
conseillé
Classement