人脸属性数据集CelebA

Large-scale CelebFaces Attributes (CelebA) Dataset

CelebA是一个大规模的人脸属性数据集,包含202,599 张人脸图像,每张图像有 40 个属性标签。

数据集下载衔接https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html

图片样例

在这里插入图片描述

40个属性:

5_o_Clock_Shadow:刚长出的双颊胡须
Arched_Eyebrows:柳叶眉
Attractive:吸引人的
Bags_Under_Eyes:眼袋
Bald:秃头
Bangs:刘海
Big_Lips:大嘴唇
Big_Nose:大鼻子
Black_Hair:黑发
Blond_Hair:金发
Blurry:模糊的
Brown_Hair:棕发
Bushy_Eyebrows:浓眉
Chubby:圆胖的
Double_Chin:双下巴
Eyeglasses:眼镜
Goatee:山羊胡子
Gray_Hair:灰发或白发
Heavy_Makeup:浓妆
High_Cheekbones:高颧骨
Male:男性
Mouth_Slightly_Open:微微张开嘴巴
Mustache:胡子,髭
Narrow_Eyes:细长的眼睛
No_Beard:无胡子
Oval_Face:椭圆形的脸
Pale_Skin:苍白的皮肤
Pointy_Nose:尖鼻子
Receding_Hairline:发际线后移
Rosy_Cheeks:红润的双颊
Sideburns:连鬓胡子
Smiling:微笑
Straight_Hair:直发
Wavy_Hair:卷发
Wearing_Earrings:戴着耳环
Wearing_Hat:戴着帽子
Wearing_Lipstick:涂了唇膏
Wearing_Necklace:戴着项链
Wearing_Necktie:戴着领带
Young:年轻人

划分训练集、验证集、测试集

import os

train_list = []
val_list = []
test_list = []
with open("Anno/list_eval_partition.txt") as f:
    for line in f.readlines():
        row = line.strip().split(" ")
        img_name = row[0]
        label = row[-1]
        if label == "0":
            train_list.append(img_name)
        if label == "1":
            val_list.append(img_name)
        if label == "2":
            test_list.append(img_name)

with open("Anno/list_attr_celeba.txt", encoding="utf-8") as f:
    for line in f.readlines():
        row = line.strip().split(" ")
        row = [i.replace("-1", "0") for i in row if i != ""]
        if len(row) == 41:
            img_name = row[0]
            if img_name in train_list:
                with open("train_attr_list.txt", "a", encoding="utf-8") as ff:
                    ff.writelines(" ".join(row) + "\n")
            if img_name in val_list:
                with open("val_attr_list.txt", "a", encoding="utf-8") as ff:
                    ff.writelines(" ".join(row) + "\n")
            if img_name in test_list:
                with open("test_attr_list.txt", "a", encoding="utf-8") as ff:
                    ff.writelines(" ".join(row) + "\n")

温馨提示:

如果您使用pytorch,并且你的电脑可以上网(有些公司出于安全考虑,其服务器是不可以上网的),那么使用这个数据集就非常简单啦!直接如下代码,相信你一定可以看得懂。

# pytoch已经将CelebA数据集加载的代码封装成了API,直接几行代码搞定
celeba_data = torchvision.datasets.CelebA('path/to/celeba_root/')
data_loader = torch.utils.data.DataLoader(celeba_data,
                                          batch_size=32,
                                          shuffle=True,
                                          num_workers=8)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ResNet50是一种深度卷积神经网络模型,用于图像分类和特征提取任务。而CelebA是一个广泛用于人脸识别研究的大型人脸属性数据集。 通过使用ResNet50模型对CelebA数据集进行训练,可以实现人脸属性识别任务。在这个任务中,我们需要训练模型来识别出人脸图像中的不同属性,例如年龄、性别、发型、眼镜等。 通过使用ResNet50模型,我们可以从CelebA数据集中学习到具有更强表示能力的特征。ResNet50模型具有更深的网络结构,通过层叠多个卷积层和池化层,可以提取出更多抽象的特征。这些特征可以帮助我们更准确地辨别不同的人脸属性。 训练一个ResNet50模型,需要将CelebA数据集中的人脸图像和对应的属性标签输入到模型中进行训练。通过多次迭代,模型会不断地调整自己的参数,使得预测结果尽可能接近真实的属性标签。这样,模型就可以学习到如何从人脸图像中提取出有关属性的信息。 训练完成后,我们可以使用训练好的ResNet50模型来对新的人脸图像进行属性识别。只需将输入图像输入到模型中,模型会输出一个属性预测结果。这个结果可以告诉我们这张图像中的人脸是否具有我们所关注的特定属性。 总而言之,通过使用ResNet50模型对CelebA数据集进行人脸属性识别的训练,我们可以学习到从人脸图像中提取属性信息的能力,并用于对新的人脸图像进行属性识别。这可以在许多实际应用中发挥作用,例如人脸识别、社交媒体分析、安全监控等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值