论文复现:Only a Matter of Style: Age Transformation Using a Style-Based Regression Model
- paddle-SAM
This protest reproduces SAM based on paddlepaddle framework.SAM is an image-to-imagetranslation method that learns to directly encode real facial images into the latent space of a pre-trained unconditional GAN subject to a given aging shift.
- [1] Y Alaluf, Patashnik O , Cohen-Or D . Only a Matter of Style: Age Transformation Using a Style-Based Regression Model[J]. 2021.
- notebook
https://aistudio.baidu.com/aistudio/projectdetail/2331297
- The current presented is the result of the model that is saved 24,000 steps. According to the author's results, the results are running 60000 steps. The picture from left to right is: Enter the picture, the model is 0 years old, 10 years old, 20 years old, 30 Years, 40 years old, 60 years old, 70 years old, 80 years old, 90 years old, 100 years old.
模型 | 图片 |
---|---|
Pytorch | |
Paddle | |
Pytorch | |
Paddle | |
Pytorch | |
Paddle |
- Training: FFHQ-1024. saved in
SAM/data/FFHQ/
.
- Testing:CelebA-HQ.saved in
SAM/data/CelebA_test/
.
Hardware:GPU、CPU
Framework:PaddlePaddle >=2.0.0
Pretrained models saved inpretrained_models/
.
Pretrained models | Description |
---|---|
FFHQ StyleGAN(stylegan2-ffhq-config-f.pdparams) | StyleGAN trained with the FFHQ dataset fromrosinality ,output size:1024x1024 |
IR-SE50 Model(model_ir_se50.pdparams) | IR_SE model (TreB1eN)trained for computering ID loss. |
CurricularFace Backbone(CurricularFace_Backbone.paparams) | Pretrained CurricularFace model(HuangYG123)evaled Similarity |
AlexNet(alexnet.pdparams和lin_alex.pdparams) | computered lpips loss |
StyleGAN Inversion(psp_ffhq_inverse.pdparams) | pSp trained with the FFHQ dataset for StyleGAN inversion. |
Baidu driver:https://pan.baidu.com/s/1G-Ffs8-y93R0ZlD9mEU6Eg password:m3nb
# clone this repo
git clone [https://github.com/771979972/paddle-SAM.git]
cd work
python SAM/scripts/inference_side_by_side.py
--exp_dir=exp/test
--checkpoint_path=SAM/pretrained_models/sam_ffhq_aging.pdparams
--data_path=SAM/data/CelebA_test
--test_batch_size=4
--test_workers=0
--target_age=0,10,20,30,40,50,60,70,80,90,100
Configuration Environment
!pip install --upgrade matplotlib
python SAM/scripts/compile_ranger.py
python SAM/scripts/train.py /
--dataset_type=ffhq_encode /
--exp_dir=exp/test /
--workers=0 /
--batch_size=8/
--test_batch_size=8 /
--test_workers=0 /
--val_interval=2500 /
--save_interval=5000 /
--encoder_type=GradualStyleEncoder/
--start_from_latent_avg /
--lpips_lambda=0.8 \--l2_lambda=1 /
--id_lambda=0.1 /
--optim_name=ranger
LPIPS
python SAM/scripts/calc_losses_on_images.py /
--mode lpips /
--data_path=SAM/inference/inference_results /
--gt_path=SAM/data/CelebA_test/
MSE
python SAM/scripts/calc_losses_on_images.py /
--mode l2 /
--data_path=SAM/inference/inference_results /
--gt_path=SAM/data/CelebA_test/
Similarity
python SAM/scripts/calc_id_loss_parallel.py /
--data_path=SAM/inference/inference_results /
--gt_path=SAM/data/CelebA_test/
├─config # 配置
├─data #数据集加载
├─CelebA_test # 测试数据图像
├─models # 模型
├─encoders # 编码器
├─loss # 损失函数
├─utils # 编译算子
├─scripts #算法执行
trian #训练
inference #测试
inference_side_by_side #测试
reference_guided_inference #测试
├─utils # 工具代码
│ README.md #英文readme
│ README_cn.md #中文readme
Parameter | Default |
---|---|
config | None |
dataset_type | ffhq_aging |
exp_dir | exp/test |
workers | 0 |
test_workers | 0 |
batch_size | 6 |
test_batch_size | 6 |
start_from_encoded_w_plus | store-true |
use_weighted_id_loss | store-true |
id_lambda | 0.1 |
lpips_lambda | 0.1 |
lpips_lambda_aging | 0.1 |
lpips_lambda_crop | 0.6 |
l2_lambda | 0.25 |
l2_lambda_aging | 0,25 |
l2_lambda_crop | 1 |
w_norm_lambda | 0,005 |
aging_lambda | 5 |
cycle_lambda | 1 |
input_nc | 4 |
target_age | uniform_random |
The overall information of the model is as follows:
Information | Descriptions |
---|---|
Version | Paddle 2.1.2 |
Application | Image Generation |
Hardware | GPU / CPU |
#encoding=utf8
# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.