关于图像处理:图像处理│一张自拍即可实现变老变年轻带你感受时光流逝之美

37次阅读

共计 3565 个字符,预计需要花费 9 分钟才能阅读完成。

🎈 我的项目成果

  • 飞浆是一个由百度推出的深度学习开发平台,为开发者提供了高效、易用、灵便和全面的深度学习开发工具和服务。
  • PaddleGAN是飞浆在图像生成和解决畛域的一个代表性我的项目,通过深度学习的技术和飞浆的反对,PaddleGAN能够实现多种惊人的图像处理成果,例如图像转换、人脸编辑、动态效果生成等等。
  • 其中内置了 StyleGAN V2FOM别离实现人脸属性编辑和人脸动画成果。这些技术和利用在很多畛域都有宽泛的利用,例如 娱乐 广告 电影制作 虚拟现实 等等。

🎈 环境搭建

  • 这里集体举荐应用 Anaconda 搭建本地环境,因为如果我的项目太多,前期十分不好治理
  • 另外举荐全局更换 pip 源:pip config set global.index-url https://mirror.baidu.com/pypi/simple
  • 如果未更换源的话,下载会超级慢,甚至下载失败,也能够通过 -i 长期设置源:pip install xxx -i https://mirror.baidu.com/pypi/simple
# 创立环境
conda create --name PaddleGAN python=3.6

# 激活环境
activate PaddleGAN

# 装置依赖 cmake
pip install cmake -i https://mirror.baidu.com/pypi/simple

# 装置依赖 boost 
pip install boost -i https://mirror.baidu.com/pypi/simple

# 装置依赖 numpy
pip install numpy -i https://mirror.baidu.com/pypi/simple

# 装置依赖 dlib
pip install dlib==19.8.1 -i https://mirror.baidu.com/pypi/simple

🎈 下载 PaddleGAN

  • GAN 是一种深度学习模型,是近年来简单散布上无监督学习最具前景的办法之一
  • 在装置依赖的时候,因应用的环境是 python3.6,所以须要将 requirements.txt 文件中的 opencv-python 加上一个版本号opencv-python==4.3.0.38,不然默认装置最新版本的,而最新版本的无奈被下载胜利
# 下载源码
git clone https://gitee.com/PaddlePaddle/PaddleGAN

# 进入我的项目目录
cd PaddleGAN

# 装置我的项目依赖,这里肯定要设置全局源
pip install -r requirements.txt

# 装置环境
python setup.py develop

🎈 装置飞浆

  • 装置 CPU 版本,不容易出错,但速度会有点慢,如果有 GPU 尽量应用 GPU 版本
  • 我这里只装置最新的,如果想要装置指定版本,请查看飞浆官网教程
# CPU 版本
pip install paddlepaddle

# GPU 版本
pip install paddlepaddle-gpu

🎈 生成图片潜码

  • 须要通过命令生成原图对应的 Latent Code
  • input_image: 输出的图像门路
  • output_path: 生成图片寄存的门路
  • weight_paht: 预训练模型门路
  • model_type: PaddleGAN 内置模型类型,若输出 PaddleGAN 已存在的模型类型,weight_paht 将生效,以后可用:ffhq-inversionffhq-toonify
  • seed: 随机数种子
  • size: 模型参数,输入图片的分辨率
  • style_dim: 模型参数,输入图片的分辨率
  • n_mlp: 模型参数,格调 z 所输出的多层感知层的层数
  • channel_multiplier: 模型参数,通道乘积,影响模型大小和生成图片的品质
  • cpu: 是否应用 cpu 推理,若不应用,请在命令去除
  • 这里从网上找了一张我最喜爱的大甜甜照片来测试
# 命令模板
cd applications/
python -u tools/styleganv2.py \
       --input_image < 替换为输出的图像门路 > \
       --output_path < 替换为生成图片寄存的文件夹 > \
       --weight_path < 替换为你的预训练模型门路 > \
       --model_type ffhq-inversion \
       --seed 233 \
       --size 1024 \
       --style_dim 512 \
       --n_mlp 8 \
       --channel_multiplier 2 \
       --cpu

# 我应用的命令
python -u applications/tools/pixel2style2pixel.py  --input_image E:/PaddleGAN/results/input/beauty.jpg  --output_path   E:/PaddleGAN/results/output --model_type ffhq-inversion --seed 233  --size 1024  --style_dim 512  --n_mlp 8  --channel_multiplier 2 --cpu

🎈 老龄化解决

  • latent:要编辑的代表图像的格调向量的门路。可来自 Pixel2Style2Pixel 生成的 dst.npy,也就是下面生成的潜码
  • latent2: 第二个格调向量的门路。起源同第一个格调向量
  • output_path: 生成图片寄存的文件夹
  • weight_path: 预训练模型门路
  • model_type: PaddleGAN 内置模型类型,若输出 PaddleGAN 已存在的模型类型,weight_paht 将生效,以后倡议应用:ffhq-config-f
  • size: 模型参数,输入图片的分辨率
  • n_mlp: 模型参数,格调 z 的维度
  • channel_multiplier: 模型参数,通道乘积,影响模型大小和生成图片的品质
  • direction_path: 寄存一系列属性名称及对象属性向量的文件门路。默认为空,即应用 ppgan 自带的文件。若不应用,请在命令中去除
  • direction_name: 要编辑的属性名称,对于 ffhq-config-f 有事后筹备的这些属性:ageeyes_openeye_distanceeye_eyebrow_distanceeye_ratiogenderlip_ratiomouth_openmouth_rationose_mouth_distancenose_rationose_tippitchrollsmileyaw
# 命令模板
cd applications/
python -u tools/styleganv2editing.py \
       --latent < 潜码门路 > \
       --output_path < 新人脸(年龄变换后)的保留门路 > \
       --model_type ffhq-config-f \
       --size 1024 \
       --style_dim 512 \
       --n_mlp 8 \
       --direction_name age \
       --direction_offset 3
       
# 我应用的命令
python -u applications/tools/styleganv2editing.py --latent E:/PaddleGAN/results/output/dst.npy --output_path E:/PaddleGAN/results/old --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset 3

🎈 年轻化解决

  • direction_offset: 这个参数的绝对值越大,解决水平越重,绝对值越大显得越年老,老龄化中则越重
cd applications/
python -u tools/styleganv2editing.py \
       --latent < 潜码门路 > \
       --output_path < 新人脸(年龄变换后)的保留门路 > \
       --model_type ffhq-config-f \
       --size 1024 \
       --style_dim 512 \
       --n_mlp 8 \
       --direction_name age \
       --direction_offset -3

# 我应用的命令
python -u applications/tools/styleganv2editing.py --latent E:/PaddleGAN/results/output/dst.npy --output_path E:/PaddleGAN/results/young --model_type ffhq-config-f --size 1024 --style_dim 512 --n_mlp 8 --channel_multiplier 2 --direction_name age --direction_offset -3

正文完
 0