def save_all_feature(fileName, targetName, *suffix): # 文件存在 if os.path.exists(fileName): # 加载vgg模型 vgg_net = torch.load(VGG_FACE_LOCATION) vgg_net.modules[31] = nn.View(1, 25088) # 读取一级目录 f = os.listdir(fileName) for name in f: # 读取二级目录 images = os.listdir(fileName + os.sep + name) for image in images: if endwith(image, suffix): # 后缀名判断 # 文件读取,获取特征 img = cv.imread(fileName + os.sep + name + os.sep + image) feature = list(get_feature(img, vgg_net)) # print(feature) # 创建文件 if not os.path.exists(targetName): os.makedirs(targetName) # 保存标签文件 with open(targetName + os.sep + 'id.dat', 'a') as f: f.write(name) f.write('\n') # 保存特征文件 with open(targetName + os.sep + 'feature.dat', 'a') as f: feature = map(str, feature) f.writelines(s + ' ' for s in feature) f.write('\n') print(name, " successful")
def save_feature(fileName, targetName, *suffix): if os.path.exists(fileName): name = os.path.basename(fileName) vgg_net = torch.load(VGG_FACE_LOCATION) vgg_net.modules[31] = nn.View(1, 25088) images = os.listdir(fileName) for image in images: if endwith(image, suffix): img = cv.imread(fileName + os.sep + image) feature = list(get_feature(img, vgg_net)) # print(feature) if not os.path.exists(targetName): os.makedirs(targetName) with open(targetName + os.sep + 'id.dat', 'a') as f: f.write(name) f.write('\n') with open(targetName + os.sep + 'feature.dat', 'a') as f: feature = map(str, feature) f.writelines(s + ' ' for s in feature) f.write('\n') print(name, " successfule")