Utilisez l'ensemble de données VOC pour entraîner votre propre modèle YOLOv3-python, tensorflow, keras

Configuration de l'environnement

1. Choix environnemental

python 3.6
tenserflow 1.4.0
keras 2.2.4

2.python3.6 téléchargement et configuration
① lien de téléchargement
https://www.filehorse.com/download-python-64/35070/
② le
processus d' installation d' installation est relativement simple, pas décrit ici payer plus.
③Configurer les variables d'environnement
Ajoutez le chemin d'accès à la variable d'environnement PATH en fonction de l'emplacement de votre installation . Ci-dessous mon chemin d'installation

F: \ PythonLocation
F: \ PythonLocation`Scripts`
description:
PythonLocation est le nom du chemin d'installation que j'ai obtenu par moi-même, et il doit correspondre à votre propre chemin

3. Installez le module correspondant
win + R et entrez cmd, exécutez la commande suivante

pip install --upgrade pip #更新pip
pip install tensorflow==1.4.0 #安装 tensorflow
pip install --upgrade numpy #numpy是一个基础的数组计算包,有时候版本较老会报错 
pip install keras==2.2.4 #yolo train.py文件里面要用到keras这个高层神经网络API
pip install pillow #安装 图片处理模块PIL(pillow)
pip install matplotlib #安装 2D绘图库matplotlib
pip install opencv-python #安装 opencv视觉库

Utilisation de modèles officiels

1. Téléchargez le
modèle officiel①Téléchargement du fichier de poids yolov3.weights
Lien de téléchargement: https://pjreddie.com/media/files/yolov3.weights

说明:
Mettez le fichier téléchargé dans le fichier keras-yolo3

②Téléchargement du code keras-yolo3
Lien de téléchargement sur Github: https://github.com/qqwweee/keras-yolo3
Lien de partage de disque réseau Baidu: https://pan.baidu.com/s/1KwiR4itdofL0DmhaJtbGJA
Code d'extraction: pfy2

说明:
Il est recommandé d'utiliser le lien de partage de disque réseau Baidu pour télécharger. Le contenu téléchargé par Github peut avoir un contenu modifié, ce qui entraînera des erreurs lors des opérations ultérieures. Le fichier de poids yolov3.weights est déjà inclus dans le partage de disque réseau Baidu, et le téléchargement du fichier de poids peut être ignoré sans l'ajouter.

Insérez la description de l'image ici
③Fichier de poids de conversion

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

Insérez la description de l'image ici
Une fois l'exécution terminée
Insérez la description de l'image ici
④Reconnaissance d'image

python yolo_video.py --image

Invite à entrer le chemin de l' image (l'emplacement de l'image est dans le répertoire keras-yolo3-master, et dans le même répertoire que le fichier de poids)
Insérez la description de l'image ici
effet d'exécution
Insérez la description de l'image ici

Créer un ensemble de données COV

Le nom complet de VOC est Visual Object Classes, qui provient du PASCAL Visual Object Classes (VOC) Challenge, qui a débuté de 2005 à 2012. Chaque année, l'organisateur fournira des échantillons d'images aux challengers pour les identifier et les classer.
Site officiel de PASCAL VOC: http://host.robots.ox.ac.uk/pascal/VOC/ 1. Description du catalogue au format VOC

Insérez la description de l'image ici

Insérez la description de l'image ici

Comment obtenir le format de l'ensemble de données COV

①Téléchargez l'ensemble de données officiel VOC, supprimez le contenu à l'intérieur et ne conservez que chaque dossier
②Créez un dossier défini manuellement selon ce format

Ce dossier est placé directement dans le fichier projet keras-yolo3-master.
2. Préparez des échantillons et des balises XML
① Téléchargez LabelImg
LabelImg est un outil d'étalonnage d'image visuelle. Plus rapide R-CNN, YOLO, SSD et autres ensembles de données requis par le réseau de détection de cible, tous doivent utiliser cet outil pour calibrer la cible dans l'image. Le fichier XML généré suit le format PASCAL VOC.
Lien de téléchargement:
https://github.com/tzutalin/labelImg/releases

Il peut être installé à partir du code source, ou vous pouvez directement télécharger la version d'installation gratuite exe


②Image annotation Run Labelmg
Insérez la description de l'image ici
méthode d'utilisation

打开文件夹(JPEGImagess)->设置保存文件夹(annotations) 设置自动保存(view ->auto Saving)->标注框(Create RectBox)并命名 快捷键A保存xml->快捷键D下一张

Insérez la description de l'image ici
③Générer l' index Créez un nouveau fichier **. Py ** (le nom peut être nommé)
dans le dossier VOC2007 et le
Insérez la description de l'image ici
code est le suivant

import os
import random
 
trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)
 
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
 
ftrainval = open('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
fval = open('ImageSets/Main/val.txt', 'w')
 
for i in list:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        ftrainval.write(name)
        if i in train:
            ftest.write(name)
        else:
            fval.write(name)
    else:
        ftrain.write(name)
 
ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

Après avoir exécuté le code, générez des test.txt,train.txt,trainval.txt,val.txtfichiers sous ImageSets / Main
Insérez la description de l'image ici

说明:
{class} _train.txt Sauvegarde tous les index de l'ensemble d'entraînement de la
classe {classe} _val.txt Sauvegarde tous les index de l'ensemble de validation de la
classe {class} _trainval.txt Sauvegarde tous les index de l'ensemble de validation d'entraînement de la classe

Formation modèle YOLO

1. Générer l'index de formation
Dans le fichier projet keras-yolo3-master , modifiez le fichier voc_annotation.py

L'essentiel est de changer le contenu des classes à l'intérieur de l'objet à entraîner (pour être cohérent avec la marque précédente)

Insérez la description de l'image ici
运行该程序,得到下面几个文件,将文件的前缀2007去掉
Insérez la description de l'image ici
2.修改配置文件
首先要修改一下 model_data 文件夹中的coco_classes.txtvoc_classes.txt,将里面的对象改成自己要训练的对象名称
3.执行训练
直接将model_data文件夹中原版的yolo.h5复制,改名为yolo_weights.h5,将其作为预训练权重
Insérez la description de l'image ici
生成yolo_weights.h5文件之后,在keras-yolo3-master工程文件夹中找到train. py,根据需要,可以更改里面的迭代次数epochs 等参数。如果显存小的话,可以改小batch_size。
Insérez la description de l'image ici
运行train.py
Insérez la description de l'image ici

这个训练过程会花费时间比较久。

训练完成Insérez la description de l'image ici

遇到问题

1.AttributeError: ‘str’ object has no attribute 'decode
Insérez la description de l'image ici
解决方法:
卸载原来的h5py模块,安装2.10版本

pip install h5py==2.10 -i https://pypi.tuna.tsinghua.edu.cn/simple/

参考资料

1. La version keras yolov3 invite l'objet str n'a pas d'attribut décodé
2. [Keras + TensorFlow + Yolo3] Cet article maîtrise l'étiquetage, la formation et la reconnaissance d'image (trous de remplissage tf2)
3. [YOLO] Utilisez l'ensemble de données VOC pour former votre propre modèle YOLOv3 (Keras / TensorFlow)

Je suppose que tu aimes

Origine blog.csdn.net/qq_43279579/article/details/114654516
conseillé
Classement