AI老照片上色-DeOldify

AI老照片上色-DeOldify_第1张图片

  个人主页:IT贫道-CSDN博客

  私聊博主:私聊博主加WX好友,获取更多资料哦~

  博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频


目录

1. 老照片上色原理

2. 老照片上色环境准备

2.1 下载DeOldify项目

2.2 下载权重文件

2.3 安装依赖的python包

3. 给图片上色

4. 给视频上色


1. 老照片上色原理

老照片上色原理就是使用GAN生成式对抗网络,对于一些原始黑白图片及对应的彩色图像,使用GAN生成式对抗网络来实现上色。

2. 老照片上色环境准备

2.1 下载DeOldify项目

项目下载地址:https://github.com/jantic/DeOldify,下载之后解压到对应的非中文路径下,这里解压到“J:\DeOldify-master”路径。可以处理图片上色,也可以处理视频上色。DeOldfy的核心网络框架是GAN,可以对图片和视频呈现更详细、真实的渲染效果。

2.2 下载权重文件

DeOldify 是基于深度学习开发的,需要用到预训练权重,这里项目开发者已经把训练好的权重上传到网上,我们可以直接拿来使用,不需要我们再训练,本项目中用到的权重文件比较多,一共三个:

  • Artistic 权重,会使图片上色效果 更大胆一些,下载地址:

https://data.deepai.org/deoldify/ColorizeArtistic_gen.pth

  • Stable 权重,相对于 Artistic 上色效果更保守一些,下载地址:

https://www.dropbox.com/s/usf7uifrctqw9rl/ColorizeStable_gen.pth

  • Video 权重,此权重文件用来给视频上色,下载地址

https://data.deepai.org/deoldify/ColorizeVideo_gen.pth

权重文件下载完毕后,在项目根目录下创建一个models文件夹,把下载好的三个权重文件放入models文件夹内。

2.3 安装依赖的python包

首先需要安装pytorch,这里在“修复照片”中已经处理,所以不再安装,此外还需安装如下:

从https://www.lfd.uci.edu/~gohlke/pythonlibs/ 网站中下载“Bottleneck-1.3.2-cp36-cp36m-win_amd64.whl”手动安装,不然后面自动下载不下来。

​
pip install -i Simple Index fastai==1.0.51

pip install -i Simple Index wandb

pip install -i Simple Index tensorboardX==1.6

pip install -i Simple Index ffmpeg

pip install -i Simple Index ffmpeg-python==0.1.17

pip install -i Simple Index youtube-dl>=2019.4.17

pip install -i Simple Index jupyterlab

pip install -i Simple Index opencv-python>=3.3.0.10

pip install -i Simple Index pillow==8.2.0

​

可以直接 使用如下命令指定文件进行批量安装python依赖包:

D:\ProgramData\Anaconda3\envs\python36_oldimage\Scripts>pip install -r J:\DeOldify-master\requirements.txt

指定文件安装,这里还是手动每个安装吧,指定文件下载太慢。

​​​​​​​3. 给图片上色

from deoldify import device
from deoldify.device_id import DeviceId


# choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)
from deoldify.visualize import *
import gc

plt.style.use('dark_background')
# 加速训练
torch.backends.cudnn.benchmark=True

import warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")

#Artistic 为布尔值, True 表示启用 Artistic 模式 ( False 启用 Stable 模式);
colorizer = get_image_colorizer(artistic=True)

#render_factor 表示渲染因子,值越大效果越好,但同时需要更大的显存;
#我的电脑设置1就承受不住了
render_factor=10

#source_path 表示输入图片路径
source_path = 'J:\\s8.jpg'

# result_path = 'J:\\finished\\'

colorizer.plot_transformed_image(path=source_path, render_factor=render_factor, compare=True)
gc.collect()

前面提到过 Artistic 与 Stable 是有区别的(因为用到的权重文件是不一样的), Artistic 上色效果会更加激进一些。

运行代码前如果使用Artistic模式那么下载resnet101-63fe2227.pt文件存在“C:\Users\wubai/.cache\torch\hub\checkpoints\”路径下;

如果使用Stable模式那么下载https://download.pytorch.org/models/resnet101-63fe2227.pth放在“C:\Users\wubai/.cache\torch\hub\checkpoints\”路径下。

目前Stable模式老是内存不够,我们就记住一个模式是Artistic即可。

问题解决:pip uninstall numpy pip uninstall pandas

4. 给视频上色

给视频上色需要两个步骤:

1) 在window中安装ffmpeg

ffmpeg主要用户合成视频。ffmpeg下载地址:Download FFmpeg

登录后,选择windows:

AI老照片上色-DeOldify_第2张图片

AI老照片上色-DeOldify_第3张图片

下载完成之后,解压到某一路径下,这里解压到“J:\ffmpeg-4.4-essentials_build”,配置window环境变量:

AI老照片上色-DeOldify_第4张图片

2) 编写代码,转换视频

准备视频:old_video.mp4与old_video.mp4 ,编写下面代码:

from deoldify import device
from deoldify.device_id import DeviceId

#choices:  CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)

from deoldify.visualize import *
plt.style.use('dark_background')
import warnings
warnings.filterwarnings("ignore", category=UserWarning, message=".*?Your .*? set is empty.*?")

colorizer = get_video_colorizer()

#NOTE:  Max is 44 with 11GB video cards.  21 is a good default
render_factor=21

#"D:\ProgramData\Anaconda3\envs\python36_oldimage\lib\subprocess.py" 文件中 611行 shell=False 改成shell=True,不然读取不到文件
file_name_ext = "J:\\old_video2.mp4"
# file_name_ext = file_name + ".mp4"
result_path = None

colorizer.colorize_from_file_name(file_name_ext, render_factor=render_factor)

转换之后的视频在目录:“J:\DeOldify-master\video\result”中,在转换过程中使用的显卡非常大,内存也比较多。


​​​​​​​

你可能感兴趣的:(机器学习,人工智能)