本文提供了一个从PA100K数据集中提取性别属性的方法及代码实现,并提供了下载链接。

1、数据集介绍

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

        数据集样式如下: 

 

        该数据集共有100000个行人图像,放在文件夹data/中。

        注释信息在annotation.mat中。该文件中的变量如下所示:

  1. “train_images_name”、“val_images_name”和“test_images_name”分别是训练图像、验证图像和测试图像;
  2. train_label、val_label和test_label是图像样本的标签;它的大小为n x 26,对应于相应集合中的n个图像和26个属性;
  3. “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)

下载链接:

https://drive.google.com/drive/folders/0B5_Ra3JsEOyOUlhKM0VPZ1ZWR2M?resourcekey=0-CdctEkdX1j2GSMSWWfrPSQ


参考:

GitHub - xh-liu/HydraPlus-Net

PA-100K - V7 Open Datasets

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐