训练环境:

win10

cuda 10.1

cudnn 10.1

darknet  https://github.com/pjreddie/darknet

conda3


标注数据

1、工具labelimg

github的安装包地址:https://github.com/tzutalin/labelImg

conda install pyqt=5 pyrcc5 -o libs/resources.py resources.qrc python labelImg.py


将自己图片标注出来

darknet yolov3训练

开始训练模型

我编译后的目录在这个位置C:\darknet\build\darknet\x64 进入这里构建目录结构


目录结构

base) PS C:\darknet\build\darknet\x64\VOCdevkit> tree
文件夹 PATH 列表
卷序列号为 EE6F-0ADF
C:.
└─VOC2007
     ├─Annotations  放所有的训练和测试图片
     ├─ImageSets
     │  └─Main
     ├─JPEGImages   放所有的训练和测试图片
     └─labels


建立test.py

C:\darknet\build\darknet\x64\VOCdevkit\VOC2007\test.py

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()
test.py

相关文章: