1.读取包围盒数据,并创建好存储目录
anno_file = "./dataset/mouth_train.txt"
#原图片地址
im_dir = "dataset"
#pos,part,neg裁剪图片放置位置
pos_save_dir = "12/positive"
part_save_dir = "12/part"
neg_save_dir = '12/negative'
#PNet数据地址
save_dir = "./12"
if not os.path.exists(save_dir):
os.mkdir(save_dir)
if not os.path.exists(pos_save_dir):
os.mkdir(pos_save_dir)
if not os.path.exists(part_save_dir):
os.mkdir(part_save_dir)
if not os.path.exists(neg_save_dir):
os.mkdir(neg_save_dir)
f1 = open(os.path.join(save_dir, 'pos_12.txt'), 'w')
f2 = open(os.path.join(save_dir, 'neg_12.txt'), 'w')
f3 = open(os.path.join(save_dir, 'part_12.txt'), 'w')
with open(anno_file, 'r') as f:
annotations = f.readlines()
print(len(annotations))
print(annotations)
2.将face_train.txt中的数据读入,格式化存储在图片路径记录和包围盒数据数组中
使用numpy的reshape函数对数据进行处理
#记录pos,neg,part三类生成数
p_idx = 0 # positive
n_idx = 0 # negative
d_idx = 0 # dont care
#记录读取图片数
idx = 0
box_idx = 0
for annotation in tqdm(annotations):
# 遍历每张照片,从每张照片:
# 先取出50个negative,保存;
# 再随机取5个框,若是negative就保存;
# 再随机取20个框,若是positive或part就保存;
annotation = annotation.strip().split(' ')
#image path
im_p