- Notifications
You must be signed in to change notification settings - Fork0
EasyPortrait - Face Parsing and Portrait Segmentation Dataset
ai-forever/easyportrait
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
We introduce a large-scale image datasetEasyPortrait for portrait segmentation and face parsing. Proposed dataset can be used in several tasks, such as background removal in conference applications, teeth whitening, face skin enhancement, red eye removal or eye colorization, and so on.
EasyPortrait dataset size is about91.78GB, and it contains40,000 RGB images (~38.3K FullHD images) with high quality annotated masks. This dataset is divided into training set, validation set and test set by subjectuser_id
. The training set includes 30,000 images, the validation set includes 4,000 images, and the test set includes 6,000 images.
For more information see our paperEasyPortrait – Face Parsing and Portrait Segmentation Dataset.
2023/11/13
: We release EasyPortrait 2.0. ✌️- 40,000 RGB images (~38.3K FullHD images)
- Added diversity by region, race, human emotions and lighting conditions
- The data was further cleared and new ones were added
- Train/val/test split: (30,000)75% / (4,000)10% / (6,000)15% by subject
user_id
- Multi-gpu training and testing
- Added new models for face parsing and portrait segmentation
- Dataset size is91.78GB
- 13,705 unique persons
2023/02/23
: EasyPortrait (Initial Dataset) 💪- Dataset size is26GB
- 20,000 RGB images (~17.5K FullHD images) with9 classes annotated
- Train/val/test split: (14,000)70% / (2,000)10% / (4,000)20% by subject
user_id
- 8,377 unique persons
Old EasyPortrait dataset is also available into branchEasyPortrait_v1
!
Link | Size |
---|---|
images | 91.8 GB |
annotations | 657.1 MB |
meta | 1.9 MB |
train set | 68.3 GB |
validation set | 10.7 GB |
test set | 12.8 GB |
Also, you can download EasyPortrait dataset fromKaggle.
.├── images.zip│ ├── train/ # Train set: 30k│ ├── val/ # Validation set: 4k│ ├── test/ # Test set: 6k├── annotations.zip│ ├── train/│ ├── val/│ ├── test/├── meta.zip # Meta-information (width, height, brightness, imhash, user_id)...
We provide some pre-trained models as the baseline for portrait segmentation and face parsing. We use mean Intersection over Union (mIoU) as the main metric.
Model Name | Parameters (M) | Input shape | mIoU |
---|---|---|---|
BiSeNet-V2 | 56.5 | 384 x 384 | 97.95 |
DANet | 190.2 | 384 x 384 | 98.63 |
DeepLabv3 | 260 | 384 x 384 | 98.63 |
ExtremeC3Net | 0.15 | 384 x 384 | 96.54 |
Fast SCNN | 6.13 | 384 x 384 | 97.64 |
FCN + MobileNetv2 | 31.17 | 384 x 384 | 98.19 |
FPN + ResNet50 | 108.91 | 1024 × 1024 | 98.54 |
FPN + ResNet50 | 108.91 | 512 × 512 | 98.64 |
FPN + ResNet50 | 108.91 | 384 x 384 | 98.64 |
FPN + ResNet50 | 108.91 | 224 × 224 | 98.31 |
SegFormer-B0 | 14.9 | 1024 × 1024 | 98.74 |
SegFormer-B0 | 14.9 | 512 × 512 | 98.66 |
SegFormer-B0 | 14.9 | 384 x 384 | 98.61 |
SegFormer-B0 | 14.9 | 224 × 224 | 98.17 |
SINet | 0.13 | 384 x 384 | 93.32 |
Model Name | Parameters (M) | Input shape | mIoU |
---|---|---|---|
BiSeNet-V2 | 56.5 | 384 x 384 | 76.72 |
DANet | 190.2 | 384 x 384 | 79.3 |
DeepLabv3 | 260 | 384 x 384 | 79.11 |
EHANet | 44.81 | 384 x 384 | 72.56 |
Fast SCNN | 6.13 | 384 x 384 | 67.56 |
FCN + MobileNetv2 | 31.17 | 384 x 384 | 75.23 |
FPN + ResNet50 | 108.91 | 1024 × 1024 | 85.37 |
FPN + ResNet50 | 108.91 | 512 × 512 | 83.33 |
FPN + ResNet50 | 108.91 | 384 x 384 | 81.83 |
FPN + ResNet50 | 108.91 | 224 × 224 | 75.6 |
SegFormer-B0 | 14.9 | 1024 × 1024 | 85.42 |
SegFormer-B0 | 14.9 | 512 × 512 | 83.19 |
SegFormer-B0 | 14.9 | 384 x 384 | 81.38 |
SegFormer-B0 | 14.9 | 224 × 224 | 74.83 |
Annotations are presented as 2D-arrays, images in*.png
format with several classes:
Index | Class |
---|---|
0 | BACKGROUND |
1 | PERSON |
2 | SKIN |
3 | LEFT_BROW |
4 | RIGHT_BROW |
5 | LEFT_EYE |
6 | RIGHT_EYE |
7 | LIPS |
8 | TEETH |
Also, we provide some additional meta-information for dataset inannotations/meta.zip
file:
image_name | user_id | height | width | set | brightness | |
---|---|---|---|---|---|---|
0 | a753e021-... | 56... | 720 | 960 | train | 126 |
1 | 4ff04492-... | ba... | 1920 | 1440 | test | 173 |
2 | e8934c99-... | 1d... | 1920 | 1440 | val | 187 |
where:
image_name
- image file name without extensionuser_id
- unique anonymized user IDheight
- image heightwidth
- image widthbrightness
- image brightnessset
- "train", "test" or "val" for train / test / val subsets respectively
The code is based onMMSegmentation with 0.30.0 version.
Models were trained and evaluated on 8 NVIDIA V100 GPUs with CUDA 11.2.
For installation process follow the instructionshere and use therequirements.txt file in our repository.
Training
For single GPU mode:
python ./pipelines/tools/train.py ./pipelines/local_configs/easy_portrait_experiments/<model_dir>/<config_file>.py --gpu-id <GPU_ID>
For distributed training mode:
./pipelines/tools/dist_train.sh ./pipelines/local_configs/easy_portrait_experiments/<model_dir>/<config_file>.py <NUM_GPUS>
Evaluation
For single GPU mode:
python ./pipelines/tools/test.py <PATH_TO_MODEL_CONFIG> <PATH_TO_CHECKPOINT> --gpu-id <GPU_ID> --eval mIoU
For distributed evaluation mode:
./pipelines/tools/dist_test.sh <PATH_TO_MODEL_CONFIG> <PATH_TO_CHECKPOINT> <NUM_GPUS> --eval mIoU
Run demo
python ./pipelines/demo/image_demo.py <PATH_TO_IMG> <PATH_TO_MODEL_CONFIG> <PATH_TO_CHECKPOINT> --palette=easy_portrait --out-file=<PATH_TO_OUT_FILE>
You can cite the paper using the following BibTeX entry:
@article{EasyPortrait, title={EasyPortrait - Face Parsing and Portrait Segmentation Dataset}, author={Kapitanov, Alexander and Kvanchiani, Karina and Kirillova Sofia}, journal={arXiv preprint arXiv:2304.13509}, year={2023}}
This work is licensed under a variant ofCreative Commons Attribution-ShareAlike 4.0 International License.
Please see the specificlicense.
About
EasyPortrait - Face Parsing and Portrait Segmentation Dataset
Topics
Resources
Stars
Watchers
Forks
Languages
- Python99.9%
- Shell0.1%