forked from imistyrain/ssd-models
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate_list.py
45 lines (42 loc) · 1.63 KB
/
create_list.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import os,random
import cv2
datasetId="fddb"
datasetyear=""
datasetname=datasetId+datasetyear
#rootdir="/home/data"
rootdir="D:/Face/Datasets/fddb"
sub_dir="ImageSets/Main"
def create_list():
datasets=["trainval","test"]
for dataset in datasets:
dst_file=dataset+".txt"
dataset_file=rootdir+"/"+sub_dir+"/"+dataset+".txt"
with open(dataset_file) as fdataset:
with open(dst_file,'w') as fdst:
lines=fdataset.readlines()
for line in lines:
filename=line[:-1]
imgfilepath=datasetname+"/images/"+filename+".jpg"
imglabelpath=datasetname+"/Annotations/"+filename+".xml"
img_line=imgfilepath+" "+imglabelpath+"\n"
fdst.write(img_line)
if dataset=="trainval":
lines=[]
with open(dst_file) as fdst:
lines=fdst.readlines()
random.shuffle(lines)
with open(dst_file,'w') as fdst:
for line in lines:
fdst.write(line)
if dataset=="test":
with open(dataset_file) as fdataset:
namesizetxt="test_name_size.txt"
with open(namesizetxt,'w') as fsize:
lines=fdataset.readlines()
for line in lines:
imgfilepath=rootdir+"/images/"+line[:-1]+".jpg"
img=cv2.imread(imgfilepath)
line_size=line[:-1]+" "+str(img.shape[0])+" "+str(img.shape[1])+"\n"
fsize.write(line_size)
if __name__=="__main__":
create_list()