如何调整照片人物年龄,此生也算共白头,PaddleGAN开源项目安装使用 | 机器学习

简介: 如何调整照片人物年龄,此生也算共白头,PaddleGAN开源项目安装使用 | 机器学习

前言

最近在试着研究飞浆平台的许多功能,看到了许多有意思的功能。其中可以将照片美化以及年龄调整这个功能让我想到了之前抖音的一个功能,所以特别感兴趣。花了些时间把项目拉下来玩了玩,用了一些我自己找的数据。


PaddleGAN的Github地址:github仓库


环境部署

如果没有看过相关的文章,可能会被README搞得很迷糊。先不用看README中一个个教程或者md,我们要先安装执行环境。主要看docs/zh_CN/install.md文件。


image.png


先看一下我们需要安装什么。项目已经提供了paddlepaddle的安装命令,按照自己机器的情况选择CUDA或者CPU。


image.png


还有一些包需要补充安装的。


image.png


注意哦,还需要安装dlib,按照我下面的命令执行一下。


pip install dlib -i https://pypi.douban.com/simple

OK,我们环境安装好了,我们开始玩玩代码吧。


项目使用

因为PaddleGAN实现照片编辑功能核心是StyleGAN,大家有兴趣的话也可以参看一下StyleGAN项目。在编辑图片前,需要先提取图片的Latant Code(潜在因子)。简而言之,会先将图片做预处理,然后使用预处理的数据进行编辑效果。


预处理部分

按照这个思路,我们先找到预处理md说明文件。看看下面的内容。


image.png


我们看看pixel2style2pixel.py的参数说明。


image.png


可以按照你的需求修改一下项目给出的命令。我这边使用的参数都是项目给出的,主要测试一下效果。从参数说明我们可以看出我们最重要需要提供的两个参数,分别是图片路径和输出目录。


先放出我准备的照片,大家都非常熟悉。


image.png


执行命令


python -u applications/tools/pixel2style2pixel.py --input_image D:/spyder/PaddleGAN/data_hy/337.jpg --output_path  D:/spyder/PaddleGAN/data_hy/output --model_type ffhq-inversion --seed 233 --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --cpu

执行效果(第一次会下载模型)


image.png

image.png




我们可以在输出目录看到3个文件,其中dst.npy就是后面我们需要做效果的npy数据。我们先看看预处理后的图片什么样。


image.png



可以看出细节变清晰了,照片集中在头部位置,头发也做了一定的处理,无官稍微修整了一下。


照片老化处理

下面我们继续看一下另一个md文件。

image.png



我们看到另一个py文件可以帮助我们实现图片的编辑,styleganv2editing.py。我们先看看参数说明。

image.png



注意哦,不只是可以变换年龄,还有其他的选项。age、eyes_open、eye_distance、eye_eyebrow_distance、eye_ratio、gender、lip_ratio、mouth_open、mouth_ratio、nose_mouth_distance、nose_ratio、nose_tip、pitch、roll、smile、yaw。那么其实还有很多效果我们可以实现。


下面是我准备的老化图片命令


python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/old --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset 3 --cpu

执行情况


(pytorch) D:\spyder\PaddleGAN>python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/old --model
_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset 3 --cpu
C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\skimage\data\__init__.py:107: DeprecationWarning:
    Importing file_hash from pooch.utils is DEPRECATED. Please import from the
    top-level namespace (`from pooch import file_hash`) instead, which is fully
    backwards compatible with pooch >= 0.1.
  return file_hash(path) == expected_hash
[12/29 20:17:06] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f.pdparams
[12/29 20:17:09] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f-directions.pdparams

看看效果

image.png



老态还是很明显的,效果不错。


照片年轻化处理

和上面一样,下面是我的年轻化命令:


python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/young --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset -3 --cpu

对比两个命令可以看出主要是--direction_offset参数不同。


执行情况


(pytorch) D:\spyder\PaddleGAN>python -u applications/tools/styleganv2editing.py --latent D:/spyder/PaddleGAN/data_hy/output/dst.npy --output_path D:/spyder/PaddleGAN/data_hy/young --mod
el_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset -3 --cpu
C:\ProgramData\Anaconda3\envs\pytorch\lib\site-packages\skimage\data\__init__.py:107: DeprecationWarning:
    Importing file_hash from pooch.utils is DEPRECATED. Please import from the
    top-level namespace (`from pooch import file_hash`) instead, which is fully
    backwards compatible with pooch >= 0.1.
  return file_hash(path) == expected_hash
[12/29 20:20:07] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f.pdparams
[12/29 20:20:09] ppgan INFO: Found C:\Users\huyi\.cache\ppgan\stylegan2-ffhq-config-f-directions.pdparams

看看效果


image.png


效果还是不错的,还能看出是谁,对吗?


总结

PaddleGAN项目我最近开始研究,还没有很深入,如果有理解不对的地方可以留言指正。如果大家喜欢这些效果的话,我可以把其他的效果,比如性别反转等等做出来(想看的话,留言告诉我)。有时间的话也可以魔改一下代码生成点有意思的特效。


还有补充一下,最近博主在参加评选博客之星活动。如果你喜欢我的文章的话,不妨给我点个五星,投投票吧,谢谢大家的支持!!链接地址:https://bbs.csdn.net/topics/603956455


分享:


       以前总以为天下最好听的情话,就是跟你一起走到了今天,还能让你知道我比初见钟情更喜欢你,我知道有时候你会觉得自己脾气坏,觉得自己长得不够好看,但其实啊,你已经很好了,也已经不能再好看了,就算有了白头我也一样看不厌,还是跟当年看到你一模一样,一眼看到,就喜欢得不行,喜欢到此生再不会不喜欢了。——《雪中悍刀行》





相关文章
|
机器学习/深度学习 大数据 程序员
[机器学习]Jupyter Notebook 安装使用(二)
[机器学习]Jupyter Notebook 安装使用(二)
217 0
|
机器学习/深度学习 人工智能 算法
🎁重磅豪礼!机器学习平台PAI + AI开源项目等你来评测!
为PAI + AI开源项目撰写评测,赢取《AI技术分享会》栏目录制机会、LAMY钢笔套装、hero手冲咖啡壶套装、阿里云社区评测官奖杯、阿里云社区首页达人展示一周、开发者评测限量版T恤、30元猫超卡等豪礼!
🎁重磅豪礼!机器学习平台PAI + AI开源项目等你来评测!
|
数据安全/隐私保护 对象存储 开发者
《开发者评测》之PAI+AI开源项目评测获奖名单
PAI+AI开源项目评测活动获奖名单出炉啦!
|
机器学习/深度学习 数据采集 人工智能
阿里云产品测评 机器学习平台PAI + AI开源项目
阿里云产品测评 机器学习平台PAI + AI开源项目
537 0
|
机器学习/深度学习 文字识别 Windows
十八、照片OCR和机器学习流水线
十八、照片OCR和机器学习流水线
十八、照片OCR和机器学习流水线
|
机器学习/深度学习 人工智能 TensorFlow
AI开发者大会之AI学习与进阶实践:2020年7月3日《如何转型搞AI?》、《基于AI行业价值的AI学习与进阶路径》、《自动机器学习与前沿AI开源项目》、《使用TensorFlow实现经典模型》
AI开发者大会之AI学习与进阶实践:2020年7月3日《如何转型搞AI?》、《基于AI行业价值的AI学习与进阶路径》、《自动机器学习与前沿AI开源项目》、《使用TensorFlow实现经典模型》
AI开发者大会之AI学习与进阶实践:2020年7月3日《如何转型搞AI?》、《基于AI行业价值的AI学习与进阶路径》、《自动机器学习与前沿AI开源项目》、《使用TensorFlow实现经典模型》
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
521 14
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
495 1
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
1003 0

热门文章

最新文章