从PA100K数据集中提取性别
本文提供了一个从PA100K数据集中提取性别属性的方法。
·
本文提供了一个从PA100K数据集中提取性别属性的方法及代码实现,并提供了下载链接。
1、数据集介绍
PA-100K数据集是由真实的室外监控摄像头拍摄的图像构建的,这更具挑战性。一个人的样本是在监控视频中沿着其轨迹提取的,并被随机分配到其中一个集合中,在这种情况下,PA-100K数据集确保了属性的学习与个人身份无关。因此,这种基于tracklets的分区比随机打乱PETA数据集中图像的分区更公平。

数据集样式如下:









该数据集共有100000个行人图像,放在文件夹data/中。
注释信息在annotation.mat中。该文件中的变量如下所示:
- “train_images_name”、“val_images_name”和“test_images_name”分别是训练图像、验证图像和测试图像;
- train_label、val_label和test_label是图像样本的标签;它的大小为n x 26,对应于相应集合中的n个图像和26个属性;
- “attributes”是一个26 x 1的单元格,显示26个属性的名称。
2、代码实现
通过以下代码,可以从数据集中解析出每个图片的属性,并根据性别存放到不同文件夹:
"""
parse person's gender from PA100K
"""
import os
import shutil
import scipy.io as scio
def parse_pa100k(anno_file, imgs_path, new_dataset_path):
classes = ['0_Female', '1_Male']
os.makedirs(new_dataset_path, exist_ok=True)
Male_path = os.path.join(new_dataset_path, '1_Male')
Female_path = os.path.join(new_dataset_path, '0_Female')
os.makedirs(Male_path, exist_ok=True)
os.makedirs(Female_path, exist_ok=True)
data = scio.loadmat(anno_file)
print(data.keys())
attributes = data['attributes']
print(attributes)
img_label_dict = {
"test_images_name": "test_label",
"train_images_name": "train_label",
"val_images_name": "val_label"
}
for i, images_name in enumerate(sorted(img_label_dict.keys())):
labels_name = img_label_dict[images_name]
print("processing: [{} -- {}]".format(images_name, labels_name))
imgs_list = data[images_name]
lbls_list = data[labels_name]
for img_name, lbl in zip(imgs_list, lbls_list):
name = img_name[0][0]
cls_id = 0 if lbl[0] == 1 else 1
class_name = classes[cls_id]
shutil.copy(os.path.join(imgs_path, name), os.path.join(new_dataset_path, class_name, 'pa100k_' + name))
if __name__ == '__main__':
root_path = '../PA100K'
anno_file = root_path + '/annotation/annotation.mat'
imgs_path = root_path + '/data/release_data/release_data'
new_dataset_path = 'new_dataset_path/from_PA100K'
parse_pa100k(anno_file=anno_file, imgs_path=imgs_path, new_dataset_path=new_dataset_path)
下载链接:
参考:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)