Répertoire d'articles
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.
③Fichier de poids de conversion
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
Une fois l'exécution terminée
④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)
effet d'exécution
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
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
méthode d'utilisation
打开文件夹(JPEGImagess)->设置保存文件夹(annotations) 设置自动保存(view ->auto Saving)->标注框(Create RectBox)并命名 快捷键A保存xml->快捷键D下一张
③Générer l' index Créez un nouveau fichier **. Py ** (le nom peut être nommé)
dans le dossier VOC2007 et le
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.txt
fichiers sous ImageSets / Main
说明:
{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)
运行该程序,得到下面几个文件,将文件的前缀2007去掉
2.修改配置文件
首先要修改一下 model_data 文件夹中的coco_classes.txt和voc_classes.txt,将里面的对象改成自己要训练的对象名称
3.执行训练
直接将model_data文件夹中原版的yolo.h5复制,改名为yolo_weights.h5,将其作为预训练权重
生成yolo_weights.h5文件之后,在keras-yolo3-master工程文件夹中找到train. py,根据需要,可以更改里面的迭代次数epochs 等参数。如果显存小的话,可以改小batch_size。
运行train.py
这个训练过程会花费时间比较久。
训练完成
遇到问题
1.AttributeError: ‘str’ object has no attribute 'decode
解决方法:
卸载原来的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)