python:给多目录人脸数据集打标签

多目录数据集

注:本文用的是Oulu_CASIA_NIR_VIS人脸数据集

如下图:有些数据集的目录非常多,对于这种数据集,我们仔细分析在第三层目录的时候表示的是真人数,我们根据这个来打标签
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述数据集的目录非常多

代码

思想:目录太多,直接遍历图片,然后得到想要的那一级的目录,去打标签;也可以是你自定义的其他标签。

#-*-coding:gb2312-*-
import os

def creat_filelist(img_path):
#创建三级目录
#index 一定是str类型,不可以为int
    #num1 = img_path.split('/')[0] #一级目录
    #num2 = img_path.split('/')[1] #一级目录
    #num3 = img_path.split('/')[2] #一级目录
    label = img_path.split('/')[3] #一级目录
    #num5 = img_path.split('/')[4] #一级目录
    #num6 = img_path.split('/')[5] #一级目录
    file_list = []
    #标签要从零开始,否则训练会报错,因为我的是目录是从1开始,所以这里要进行减一操作,
    image_labe = img_path +' '+ str(int(label[-2:])-1)
    file_list.append(image_labe)    
    #print(file_list)
 
    return file_list
 
def creat_txtfile(output_path, file_list):
 
    with open(output_path, 'a') as f:
        for list in file_list:
            print(list)
            f.write(str(list) + '\n')
 

def get_list(output_path):
    out_list = []
    with open(output_path) as f:
        out_list = f.read().splitlines()
    return out_list

def main():
  
    path = 'OULU/'
    output_path = 'OULU.txt'
    i = 0
    for root,dirs,files in os.walk(path):
        for f in files :
            i = i +1
            img_path = os.path.join(root,f)
            print("给第{}张图片 {}  打标签 ".format(i,img_path))
            file_list = creat_filelist(img_path)
            creat_txtfile(output_path, file_list)
    #从临时生成的txt文件获取总的一个list
    out_list = get_list(output_path)
    #给这个list按照label的大小排序
    out_list.sort(key=lambda x:int(x[-2:]))
    #print(out_list)
    #删除原来未排序的txt文件
    os.remove(output_path)
    #创建新的排序后的txt文件
    creat_txtfile(output_path,out_list) 

if __name__ == '__main__':
    main()

结果

未排序的结果:
在这里插入图片描述
排完序的结果:
在这里插入图片描述

其他

也可以根据图片的name进行打标签,只需要把打label部分的代码改一下就行。
特别注意:label要从零开始排序

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 人脸识别数据集通常是用于训练和测试人脸识别算法的数据集。Python是一种常用的编程语言,因其易学易用和强大的数据处理能力,广泛应用于数据科学和人工智能领域,也被用于处理人脸识别数据集。 在Python中,有一些常用的人脸识别数据集可以使用,如LFW数据集、CelebA数据集和FERET数据集等。这些数据集包含了很多人脸图像以及相应的标签信息,可以用于训练模型和评估算法性能。 使用Python进行人脸识别数据集的处理可以借助一些开源的库和工具。例如,OpenCV是一个常用的图像处理库,可以用于读取、预处理和显示人脸图像。另外,对于深度学习模型的训练,可以使用TensorFlow或PyTorch等框架,这些框架提供了丰富的函数和接口,方便处理图像数据集。 在处理人脸识别数据集时,常见的任务包括数据预处理、特征提取和模型训练。数据预处理阶段可以包括图像裁剪、大小调整和亮度均衡等操作,以便提高模型性能。特征提取是将图像转换为适合机器学习算法处理的向量表示,可以采用传统的特征提取方法或者使用深度学习模型对图像进行特征编码。模型训练阶段可以使用监督学习算法,如支持向量机、K近邻或者深度神经网络等。 通过Python中的人脸识别数据集处理技术,可以实现人脸识别算法的训练和调优,进而应用于人脸识别、身份验证、安全监控等领域。 ### 回答2: Python人脸识别数据集是一组用于训练和评估人脸识别算法的数据集。这些数据集包含了一系列人脸图像和对应的标签或注释信息。人脸识别数据集是计算机视觉领域的一个重要资源,用于帮助开发人员训练出准确高效的人脸识别模型。 Python人脸识别数据集包含大量的人脸图像,这些图像来自于不同的来源和环境,涵盖了不同的年龄、性别、肤色、表情等因素。数据集中的每个图像都会有对应的标签或注释信息,用于告知计算机哪些图像中的人脸属于同一个人。 使用人脸识别数据集,可以通过使用特定的算法和技术来训练一个模型,使其能够在未来的图像中准确地检测和识别人脸。通过不断改进和优化模型,可以提高人脸识别的准确性和鲁棒性。 Python人脸识别数据集的应用非常广泛。它可以用于安全系统,如人脸识别门禁系统,通过对比图像中的人脸与已知的数据库中的人脸进行匹配来实现安全认证。此外,它还可以用于视频监控和调查犯罪活动。人脸识别数据集还能够用于基于人脸的情绪分析、年龄和性别识别等应用。 总之,Python人脸识别数据集是一个重要的资源,提供了训练和评估人脸识别算法的样本图像和相关标签。通过使用这些数据集,开发者们可以训练出准确和高效的人脸识别模型,实现各种实际应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值