To obtain high resolution face images from CelebA
HD CelebA Cropper
CelebA dataset provides an aligned set img_align_celeba.zip
. However, the size of each aligned image is 218x178, so the faces cropped from such images would be even smaller!
Here we provide a code to obtain higher resolution face images, by cropping the faces from the original unaligned images via 68 landmarks.
We also use a deep image quality assessment method to evaluate and rank the cropped image quality in scores.txt, lower score the better.
Notice: There are still some low resolution cropped faces since the corresponding original images are low resolution.
Prerequisites
OpenCV
Python 3.6
Dataset
CelebA-unaligned (10.2GB, higher quality than the aligned data)
download the dataset
img_celeba.7z (move to ./data/img_celeba.7z): Google Drive or Baidu Netdisk (password rp0s)
annotations.zip (move to ./data/annotations.zip): Google Drive
unzip the data
7z x ./data/img_celeba.7z/img_celeba.7z.001 -o./data/
unzip ./data/annotations.zip -d ./data/
Cropping Examples
512x512 + lanczos4 + jpg
python align.py --crop_size_h 512 --crop_size_w 512 --order 4 --save_format jpg --n_worker 32
512x512 + lanczos4 + png + larger face in the image (by setting face_factor
, default is 0.45)
python align.py --crop_size_h 512 --crop_size_w 512 --order 4 --save_format png --face_factor 0.6 --n_worker 32
384x384 + bicubic + jpg + smaller face in the image (by setting face_factor
, default is 0.45)
python align.py --crop_size_h 384 --crop_size_w 384 --order 3 --save_format jpg --face_factor 0.3 --n_worker 32
Notice
order
0: INTER_NEAREST
1: INTER_LINEAR
2: INTER_AREA
3: INTER_CUBIC
4: INTER_LANCZOS4
5: INTER_LANCZOS4