yolov3可见光和红外数据集训练(VOC2007&FLIR)
1.VOC2007
用到数据集中以下三个文件夹

- Annotations中存放xml文件,标注了各个目标的位置信息
- images中存放图片
- ImageSets存放分割的train.txt , test.txt , val.txt , trainval.txt(自己生成)
1.1 makeTx.py
运行 makeTx.py 文件(放在根目录),会在ImageSets文件夹下生成上述四个 txt 文件
import os
import random
trainval_percent = 0.1
train_percent = 0.9
xmlfilepath = 'data/Annotations'
txtsavepath = 'data/ImageSets'
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('data/ImageSets/trainval.txt', 'w')
ftest = open('data/ImageSets/test.txt', 'w')
ftrain = open('data/ImageSets/train.txt', 'w')
fval = open('data/ImageSets/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()
1.2 voc_label.py
运行 voc_label.py 文件(根目录)生成labels标签文件,以及data目录下的txt文件(对应图片路径),用于训练。
#-*- coding:utf-8 -*
import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join
sets = ['train', 'test','val']
#classes = ['person','bird','cat','cow','dog','horse','bicycle','boat','bus','car','motorbike','train','bottle','chair','diningtable','pottedplant','sofa','tvmonitor']
classes = ['aeroplane','bicycle','bird','boat','bottle','bus','car','cat','chair','cow','diningtable','dog','horse','motorbike','person','pottedplant','sheep','sofa','train','tvmonitor']
def convert(size, box):
dw

最低0.47元/天 解锁文章
2万+





