Exemplo n.º 1
0
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")
Exemplo n.º 2
0
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")