最近在做人脸相关的任务,涉及到了这个 Helen人脸解析数据集,发现在网上关于该数据集的介绍很少,并且难以找到直接可用的数据加载方式,在这里记录以下,希望能帮助到大家。
Helen数据集下载
Helen数据集原本是用于人脸特征点任务的数据集,不过在13年的CVPR一篇论文将它应用于人脸解析分割任务,在原来数据集的基础上进行了手工标注。相关链接如下:
- Henlen dataset: face-parsing
- Helen dataset: key point
在这里我们只需要利用到上面第一个链接里头经过数据预处理和增强的resized数据集即可,点击此处下载。
可能外网访问速度较慢,我这里提供一下我上传的百度云链接:
Helen数据集链接 提取码:n2de
解压下来发现文件结构是
上述的文件exemplars其实就是训练集划分文件,tuning是验证集,而testing则是测试集。
经过重命名,放在我的项目目录以下就是这样的。
数据集加载
在文件目录中的config.py
文件中先定义好数据集相关的路径常量。
# --------------- dataset path -------------
train_txt = './dataset/train.txt'
val_txt = './dataset/val.txt'
test_txt = './dataset/test.txt'
image_path = './dataset/images'
label_path = './dataset/labels'
在Helen.py
文件中写入以下代码。
import pandas as pd
import pdb
import os
import torch
import torchvision
from torchvision import datasets, transforms, models
from torch.utils import data
from PIL import Image
import config as cfg
import matplotlib.pyplot as plt
import copy
class Helen(data.Dataset):
"""
Label 00: background
Label 01: face skin (excluding ears and neck)
Label 02: left eyebrow
Label 03: right eyebrow
Label 04: left eye
Label 05: right eye
Label 06: nose
Label 07: upper lip
Label 08: inner mouth
Label 09: lower lip
Label 10: hair
"""
def __init__(self, image_transform=None, label_transform=None, mode='train'):
self.image_transform = image_transform
self.label_transform