PPR10K: A Large-Scale Portrait Photo Retouching Dataset with Human-Region Mask and Group-Level Consistency
Jie Liang*, Hui Zeng*, Miaomiao Cui, Xuansong Xie and Lei Zhang.
In CVPR 2021.
The proposed Portrait Photo Retouching dataset (PPR10K) is a large-scale and diverse dataset that contains:
- 11,161 high-quality raw portrait photos (resolutions from 4K to 8K) in 1,681 groups;
- 3 versions of manual retouched targets of all photos given by 3 expert retouchers;
- full resolution human-region masks of all photos.
Two example groups of photos from the PPR10K dataset. Top: the raw photos; Bottom: the retouched results from expert-a and the human-region masks. The raw photos exhibit poor visual quality and large variance in subject views, background contexts, lighting conditions and camera settings. In contrast, the retouched results demonstrate both good visual quality (with human-region priority) and group-level consistency.
This dataset is first of its kind to consider the two special and practical requirements of portrait photo retouching task, i.e.,
Human-Region Priority and Group-Level Consistency. Three main challenges are expected to be tackled in the follow-up researches:
- Flexible and content-adaptive models for such a diverse task regarding both image contents and lighting conditions;
- Highly efficient models to process practical resolution from 4K to 8K;
- Robust and stable models to meet the requirement of group-level consistency.
- All files in the PPR10K dataset are available for non-commercial research purposes only.
- You agree not to reproduce, duplicate, copy, sell, trade, resell or exploit for any commercial purposes, any portion of the images and any portion of derived data.
All data is hosted on GoogleDrive, OneDrive and 百度网盘 (验证码: mrwn):
Path | Size | Files | Format | Description |
---|---|---|---|---|
PPR10K-dataset | 406 GB | 176,072 | Main folder | |
├ raw | 313 GB | 11,161 | RAW | All photos in raw format (.CR2, .NEF, .ARW, etc) |
├ xmp_source | 130 MB | 11,161 | XMP | Default meta-file of the raw photos in CameraRaw, used in our data augmentation |
├ xmp_target_a | 130 MB | 11,161 | XMP | CameraRaw meta-file of the raw photos recoding the full adjustments by expert a |
├ xmp_target_b | 130 MB | 11,161 | XMP | CameraRaw meta-file of the raw photos recoding the full adjustments by expert b |
├ xmp_target_c | 130 MB | 11,161 | XMP | CameraRaw meta-file of the raw photos recoding the full adjustments by expert c |
├ masks_full | 697 MB | 11,161 | PNG | Full-resolution human-region masks in binary format |
├ masks_360p | 56 MB | 11,161 | PNG | 360p human-region masks for fast training and validation |
├ train_val_images_tif_360p | 91 GB | 97894 | TIF | 360p Source (16 bit tiff, with 5 versions of augmented images) and target (8 bit tiff) images for fast training and validation |
├ pretrained_models | 268 MB | 12 | PTH | pretrained models for all 3 versions |
└ hists | 624KB | 39 | PNG | Overall statistics of the dataset |
One can directly use the 360p (of 540x360 or 360x540 resolution in sRGB color space) training and validation files (photos, 5 versions of augmented photos and the corresponding human-region masks) we have provided following the settings in our paper (train with the first 8,875 files and validate with the last 2286 files).
Also, see the instructions to customize your data (e.g., augment the training samples regarding illuminations and colors, get photos with higher or full resolutions).
Training and Validating the PPR using 3DLUT
- Clone this repo.
git clone https://github.com/csjliang/PPR10K
cd PPR10K/code_3DLUT/
- Install dependencies.
pip install -r requirements.txt
- Build. Modify the CUDA path in
trilinear_cpp/setup.sh
adaptively and
cd trilinear_cpp
sh trilinear_cpp/setup.sh
- Training without HRP and GLC strategy, save models:
python train.py --data_path [path_to_dataset] --gpu_id [gpu_id] --use_mask False --output_dir [path_to_save_models]
- Training with HRP and without GLC strategy, save models:
python train.py --data_path [path_to_dataset] --gpu_id [gpu_id] --use_mask True --output_dir [path_to_save_models]
- Training without HRP and with GLC strategy, save models:
python train_GLC.py --data_path [path_to_dataset] --gpu_id [gpu_id] --use_mask False --output_dir [path_to_save_models]
- Training with both HRP and GLC strategy, save models:
python train_GLC.py --data_path [path_to_dataset] --gpu_id [gpu_id] --use_mask True --output_dir [path_to_save_models]
- Generate the retouched results:
python validation.py --data_path [path_to_dataset] --gpu_id [gpu_id] --model_dir [path_to_models]
- Use matlab to calculate the measures in our paper:
calculate_metrics(source_dir, target_dir, mask_dir)
- Download the pretrained models from GoogleDrive, OneDrive or 百度网盘, and move them to the directory saved_models:
mv your/path/to/pretrained_models/* saved_models/
- specify the --model_dir and --epoch (-1) to validate or initialize the training using the pretrained models, e.g.,
python validation.py --data_path [path_to_dataset] --gpu_id [gpu_id] --model_dir mask_noglc_a --epoch -1
python train.py --data_path [path_to_dataset] --gpu_id [gpu_id] --use_mask True --output_dir mask_noglc_a --epoch -1
This project is released under the Apache 2.0 license.
If you use this dataset or code for your research, please cite our paper.
@inproceedings{jie2021PPR10K,
title={PPR10K: A Large-Scale Portrait Photo Retouching Dataset with Human-Region Mask and Group-Level Consistency},
author={Liang, Jie and Zeng, Hui and Cui, Miaomiao and Xie, Xuansong and Zhang, Lei},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2021}
}
Should you have any questions, please contact me via liang27jie@gmail.com
.