最近在跑facenet的valida_on_lfw.py的样例,想要在自己的数据集上运行该代码。
关于pair.txt的描述,见http://vis-www.cs.umass.edu/lfw/README.txt
编写代码生成自己的pair.txt文件:
import glob
import os.path
import numpy as np
import os
# 图片数据文件夹
INPUT_DATA = r'F:\dataset\MIX'
def create_image_lists():
matched_result = set()
k = 0
# 获取当前目录下所有的子目录,这里x 是一个三元组(root,dirs,files),第一个元素表示INPUT_DATA当前目录,
# 第二个元素表示当前目录下的所有子目录,第三个元素表示当前目录下的所有的文件
sub_dirs = [x[0] for x in os.walk(INPUT_DATA)]
while len(matched_result) < 3000:
for sub_dir in sub_dirs[1:]:
# 获取当前目录下所有的有效图片文件
extensions = 'png'
# 把图片存放在file_list列表里
file_list = []
# os.path.basename(sub_dir)返回sub_sir最后的文件名
dir_name = os.path.basename(sub_dir)
file_glob = os.path.join(INPUT_DATA, dir_name, '*.' + extensions)
# glob.glob(file_glob)获取指定目录下的所有图片,存放在file_list中
file_list.extend(glob.glob(file_glob))
if not file_list: continue
# 通过目录名获取类别的名称
label_name = dir_name
length = len(file_list)
random_number1 = np.random.randint(50)
random_number2 = np