关于python:PythonAI给老照片上色

4次阅读

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

明天咱们分享用 NoGAN 的图像增强技术给老照片着色。

NoGAN 是一种新型 GAN,它能破费起码的工夫进行 GAN 训练。

明天分享的这个我的项目已在 GitHub 开源我的项目,上面咱们来运行一下。

  1. 筹备工作
    首先,用 git clone 命令下载源码
git clone https://github.com/jantic/DeOldify.git

进入我的项目根目录,装置 Python 依赖包

pip3 install -r requirements.txt

编写代码运行我的项目之前,须要下载预训练好的模型。

  • ColorizeArtistic_gen.pth
  • ColorizeStable_gen.pth
  • ColorizeVideo_gen.pth

区别如下

ColorizeArtistic_gen.pth:在乏味的细节和生机方面实现了最高品质的图像着色成果,该模型在 UNet 上应用 resnet34 为主干,通过 NoGAN 进行了 5 次评论家预训练 /GAN 循环反复训练

ColorizeStable_gen.pth:在风光和肖像方面获得了最佳成果,该模型在 UNet 上应用 resnet101 为主干,通过 NoGAN 进行了 3 次评论家预训练 /GAN 循环反复训练

ColorizeVideo_gen.pth:针对晦涩的视频进行了优化,它仅应用初始生成器 / 评论家预训练 /GAN NoGAN 训练。因为谋求晦涩的速度,它的色调比前两者少。

将下载好的模型文件放在我的项目根目录的 models 目录下即可。

  1. 编写代码
    在我的项目根目录同级目录下创立 Python 文件,编写代码加载刚刚下载好的模型文件。
from DeOldify.deoldify.generators import gen_inference_wide
from DeOldify.deoldify.filters import MasterFilter, ColorizerFilter

# 指定模型文件
learn = gen_inference_wide(root_folder=Path('./DeOldify'), weights_name='ColorizeVideo_gen')

# 加载模型
deoldfly_model = MasterFilter([ColorizerFilter(learn=learn)], render_factor=10)

root_folder 指定我的项目根目录,weights_name 指定接下来应用哪个模型为照片上色。

读取老照片,进行上色

import cv2
import numpy as np
from PIL import Image

img = cv2.imread('./images/origin.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
pil_img = Image.fromarray(img)

filtered_image = deoldfly_model.filter(pil_img, pil_img, render_factor=35, post_process=True)

result_img = np.asarray(filtered_image)
result_img = cv2.cvtColor(result_img, cv2.COLOR_RGB2BGR)
cv2.imwrite('deoldify.jpg', result_img)

用 cv2 读取老照片,并用 PIL.Image 模块将图片转换成模型输出所须要的格局,送入模型进行上色,实现后保留。

上述代码是我从我的项目源码中抽取的,能够看到,运行代码还是非常简单的。

以上就是本次分享的所有内容,想要理解更多 python 常识欢送返回公众号:Python 编程学习圈,发送“J”即可收费获取,每日干货分享

正文完
 0