什么,你还不会使用AI修复老照片?

1. GPEN

GAN Prior Embedded Network for Blind Face Restoration in the Wild

用于遮挡人脸恢复的GAN先验嵌入式网络

开源地址: Github
爱因斯坦

@inproceedings{Yang2021GPEN,
    title={GAN Prior Embedded Network for Blind Face Restoration in the Wild},
    author={Tao Yang, Peiran Ren, Xuansong Xie, and Lei Zhang},
    booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
    year={2021}
}

2. Docker

因为这个工程需要cuda10.2的环境,但是自身ubuntu系统的cuda是11.4的,因此需要用Docker。通过Docker来创建多个容器(相当于多个linux系统),每个容器中的CUDA版本之间互相不影响。这样的好处是可以在项目需要时,不改动主机环境的前提下运行多个CUDA版本。同时,也可以为不同的使用人员定制相应的环境而不影响其他环境。
Docker具体配置和基本使用可参考:Docker快速入门总结笔记
优秀师弟博客:Docker部署深度学习服务器,CUDA+cudnn+ssh

3. 环境配置

3.1 第一次需要在docker官网拉取环境

docker环境地址: docker

// 我自己拉取的环境 需要需要cuda10.2
sudo docker pull pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel //需要等待下载好多个G的文件 

3.2 拉取完成后,使用docker images查看镜像

sudo docker images
REPOSITORY            TAG                           IMAGE ID       CREATED         SIZE
ubuntu                20.04                         d13c942271d6   3 months ago    72.8MB
hello-world           latest                        feb5d9fea6a5   6 months ago    13.3kB
pytorch/pytorch       1.9.0-cuda10.2-cudnn7-devel   7293def00749   10 months ago   9.39GB
portainer/portainer   latest                        580c0e4e98b0   13 months ago   79.1MB
nvidia/cuda           11.0-base                     2ec708416bb8   20 months ago   122MB

3.3 列出正在运行的容器

docker ps // 列出所有的
docker pa -a // 列出所有的包括未运行的
jinln@jinln:~$ sudo docker ps -a
CONTAINER ID   IMAGE                                         COMMAND       CREATED        STATUS          PORTS     NAMES
21b68ee146c0   pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel   "/bin/bash"   14 hours ago   Up 44 minutes             pytorch

3.4 第一次运行环境

sudo docker run -it --name pytorch --gpus all pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel /bin/bash 

然后终端用户就变为:

root@21b68ee146c0:/workspace# 

然后在配置GPEN需要的环境:

ninja
torch
torchvision
opencv-python
scikit-image
scipy
pillow
tqdm

3.5 后面再次运行时,可使用docker ps -a查看容器ID

使用start名字开启

sudo docker start 21b68ee146c0

然后在

sudo docker exec -it 21b68ee146c0 /bin/bash

终端用户同样就变为:

root@21b68ee146c0:/workspace# 

3.6 复制文件到容器中

需要将GPEN项目和权重下载,然后使用下行代码复制到容器中,可在容器中使用ls语句查看文件存在否

sudo docker cp /home/jinln/GPEN 21b68ee146c0:/workspace/

后续复制其他文件也一样

sudo docker cp /home/jinln/Pictures/00/00color 21b68ee146c0:/workspace/examples/

复制出来

docker cp  21b68ee146c0:/workspace/examples/00color_restore /home/jinln/Pictures/00_restore

3.7 具体命令

  • Restore face images:
python demo.py --task FaceEnhancement --model GPEN-BFR-512 --in_size 512 --channel_multiplier 2 --narrow 1 --use_sr --sr_scale 4 --use_cuda --save_face --indir examples/imgs --outdir examples/outs-bfr
  • Colorize faces:
python demo.py --task FaceColorization --model GPEN-Colorization-1024 --in_size 1024 --use_cuda --indir examples/grays --outdir examples/outs-colorization
  • Complete faces:
python demo.py --task FaceInpainting --model GPEN-Inpainting-1024 --in_size 1024 --use_cuda --indir examples/ffhq-10 --outdir examples/outs-inpainting
  • Synthesize faces:
python demo.py --task Segmentation2Face --model GPEN-Seg2face-512 --in_size 512 --use_cuda --indir examples/segs --outdir examples/outs-seg2face
  • Train GPEN for BFR with 4 GPUs:
CUDA_VISIBLE_DEVICES='0,1,2,3' python -m torch.distributed.launch --nproc_per_node=4 --master_port=4321 train_simple.py --size 1024 --channel_multiplier 2 --narrow 1 --ckpt weights --sample results --batch 2 --path your_path_of_croped+aligned_hq_faces (e.g., FFHQ)

4. 修复结果

自己测试照片

- Restore face images:

我弟弟表妹表妹表妹
自己
表妹
女朋友和她妹妹
女朋友
黄淑婷

- Colorize faces:

在这里插入图片描述
在这里插入图片描述
然后再restory:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值