基于PaddleGAN项目人脸表情动作迁移学习(三)人脸融合
学习目标:
体验基于PaddleGAN的图像生成模型实现的人脸融合,模型名称:StyleGAN V2
StyleGAN V2 原理:
StyleGAN V2 的任务是image generation,给定特定长度的向量,生成该向量对应的图像,是StyleGAN的升级版,解决了StyleGAN生成的伪像等问题。
StyleGAN V2 可对多级风格向量进行混合。其内核是自适应的风格解耦。
相对于StyleGAN,其主要改进为:
生成的图像质量明显更好(FID分数更高、artifacts减少)
提出替代渐进式训练的新方法,牙齿、眼睛等细节更完美
改善了风格混合
更平滑的插值
训练速度更快
第一步,环境准备:
请参考另一篇文章,基于PaddleGAN项目人脸表情动作迁移学习(一)环境配置,下载PaddleGAN,并配置环境,特别提醒安装dilib包。
pip install dlib
如果有安装失败请参考另一篇文章记录安装dlib库失败解决过程,认识conda-forge,希望有所帮助。
第二步,人脸特征提取:
1.准备两张人脸照片,我准备用他俩的,给万历皇帝配个外国美女,上传至我的图片文件夹目录,分别是b1.png,wanli.jpg。
图片位置如下:
2.Fitting模块提取人脸向量,然后重新生成人脸。
只需要更改两个参数:
input_image:需要提取特征并重新生成人脸的照片路径;
output_path:新生成的人脸照片的存放路径,后续需要放在Mixing和生成的模块中使用;
将input_image部分放上想要融合的人脸照片即可,请注意最好是自拍和大头照,无眼镜效果更佳;
另外,因为是两张照片融合,大家需要替换input_image和output_path的路径,运行两次以下命令,生成两张StyleGAN世界中的人脸照片~
代码示例如下:
python -u tools/styleganv2fitting.py
–input_image ‘/home/work/图1名称’
–need_align
–start_lr 0.1
–final_lr 0.025
–latent_level 0 1 2 3 4 5 6 7 8 9 10 11
–step 100
–mse_weight 1
–output_path ‘/home/work/output/’
–model_type ffhq-config-f
–size 1024
–style_dim 512
–n_mlp 8
–channel_multiplier 2
- 进行人脸提取
进入application目录下
cd applications
分别对两张照片进行提取:
第一张
python -u tools/styleganv2fitting.py --input_image ../image_data/aobama001.jpg --need_align --start_lr 0.1 --final_lr 0.025 --latent_level 0 1 2 3 4 5 6 7 8 9 10 11 --step 100 --mse_weight 1 --output_path ../image_data/output/2/ --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2
第二张
python -u tools/styleganv2fitting.py --input_image ../image_data/wanli.jpg --need_align --start_lr 0.1 --final_lr 0.025 --latent_level 0 1 2 3 4 5 6 7 8 9 10 11 --step 100 --mse_weight 1 --output_path ../image_data/output/2/ --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2
第三步,人脸融合:
Mixing模块融合向量,StyleGAN V2生成新人脸,只需要更改三个参数:
latent1:STEP2中生成的一张人脸路径(STEP2中的output_path路径)
latent2:STEP2中生成的一张人脸路径(STEP2中的output_path路径)
output_path:两张脸融合的最终效果
python -u tools/styleganv2mixing.py
–latent1 ‘/home/work/output/dst.fitting.npy’
–latent2 ‘/home/work/output/1/dst.fitting.npy’
–weights
0.5 0.5 0.5 0.5 0.5 0.5
0.5 0.5 0.5 0.5 0.5 0.5
0.5 0.5 0.5 0.5 0.5 0.5
–output_path ‘/home/work/output/final’
–model_type ffhq-config-f
–size 1024
–style_dim 512
–n_mlp 8
–channel_multiplier 2
第二步提取后的人脸
分别存在…/image_data/output/1/,…/image_data/output/2/目录下,执行代码如下:
python -u tools/styleganv2mixing.py --latent1 ../image_data/output/1/dst.fitting.npy --latent2 ../image_data/output/2/dst.fitting.npy --weights 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 --output_path ../image_data/output/final --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8
第四步,查看预测结果:
进入output/final文件夹内,dst.mixing.png则为融合后的人脸结果
效果如下:
融合出来说实话有点丑,凑合看吧,到此融合结束。
基于PaddleGAN项目人脸表情动作迁移学习(三)人脸融合相关推荐
- 基于PaddleGAN项目人脸表情动作迁移学习(五)图像补帧上色与超分修复
学习目标 体验基于PaddleGAN的图像上色.补针.超分等功能,涉及模型包括DAIN.DeOldify.RealSR.DeepRemaster.EDVR.PPMSVSR等. 一.算法原理 1.补帧模 ...
- 基于PaddleGAN项目人脸表情动作迁移学习(四)人脸动漫化
学习目标: 体验基于PaddleGAN的真实人脸实现动漫化,相关模型:AnimeGANv2. AnimeGANv2原理: 人脸动漫化(Photo to Cartoon)是指将真实人脸转化成动漫风格,在 ...
- 人脸识别迁移学习的应用
https://github.com/jindongwang/transferlearning 关于迁移学习的一些资料 这个仓库包含关于迁移学习一些资料,包括:介绍,综述文章,代表工作及其代码,常用数 ...
- 【CV】使用Keras和迁移学习从人脸图像中预测体重指数BMI
作者:Leo Simmons 编译:ronghuaiyang 导读 和人脸属性预测非常相似的一个应用. 这篇文章描述了一个神经网络,它可以通过人脸图像预测一个人的BMI([身体质量指数]).这个项 ...
- 用两个使用Caffe的小项目案例演示迁移学习的实用性
近年来随着深度学习的急剧升温,不管是学术界还是工业界都把大量资源投入了深度学习.作为一个普通的工程师或者程序员,也想对机器学习,尤其是深度学习有所了解,应当如何入手?最好的回答当然是"get ...
- 基于模型与不基于模型的深度增强学习_CVPR2018: 基于时空模型无监督迁移学习的行人重识别...
Unsupervised Cross-dataset Person Re-identification by Transfer Learning of Spatial-Temporal Pattern ...
- 使用Keras和迁移学习从人脸图像中预测体重指数BMI
点击上方"AI公园",关注公众号,选择加"星标"或"置顶" 作者:Leo Simmons 编译:ronghuaiyang 导读 和人脸属性预 ...
- 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读
目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...
- 半监督分类算法_基于同质区和迁移学习的高光谱图像半监督分类
作 者 信 息 赵婵娟,周绍光,丁 倩,刘丽丽 (河海大学 地球科学与工程学院,江苏 南京 211100) " [摘要]针对高光谱遥感图像分类中标记样本难获取的问题,提出了一种基于同质区和迁 ...
最新文章
- windows7 64位机上配置MinGW+Codeblocks+ wxWidgets
- OpenCV Python + Tesseract-OCR轻松实现中文识别
- SpringBoot 2.0 编程方式配置,不使用默认配置方式
- http-关于application/x-www-form-urlencoded等字符编码的解释说明
- 到现在了还不会Webpack?我帮你总结好了
- dataframe 控对象_iOS知识 - 常用小技巧大杂烩
- 怎么查询表中BLOB字段的大小
- php文件名函数,详解php 获取文件名basename()函数的用法
- 软件架构入门,看这篇就够了···
- linux-uboot 移植四 uboot的移植
- 微型计算机3c认证元器件清单,3C认证产品目录.pdf
- 风雨java路之【基础篇】——异常的那些事儿
- PyTorch搭建LSTM实现多变量输入多变量输出时间序列预测(多任务学习)
- [轻笔记] SHAP值的计算步骤
- 变焦单目论文阅读笔记
- 基于android的记账软件,基于Android的记账软件的设计与实现
- C语言中 .h文件和.c文件的区别 (转)
- 还在为网速烦恼?你可能没有使用华为云CDN加速服务
- 【时间序列分析】12. ARMA(1,1)模型
- Java序列化与反序列化的深度思考