Python+AI给老照片上色

yizhihongxing

前言

哈喽,大家好。有没有谁跟我一样喜欢老照片的朋友,老照片总是让人感觉有一种情怀,可能这就是怀念吧。有一次无意中看到

了很久很久以前的照片都是黑白的,当时很想给照片添加点颜色,但是不知道怎么搞。今天,我终于发现了怎么去解决这个问

题,想了想,我决定得把这个分享给大家…
在这里插入图片描述

 

今天我们分享用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:在有趣的细节和活力方面实现了最高质量的图像着色效果,该模型在 UNet 上使用 resnet34 为主干,

通过 NoGAN 进行了 5 次评论家预训练/GAN 循环重复训练

•ColorizeStable_gen.pth:在风景和肖像方面取得了最佳效果,该模型在 UNet 上使用 resnet101 为主干,通过 NoGAN 进行了 3

次评论家预训练/GAN 循环重复训练

在这里插入图片描述

•ColorizeVideo_gen.pth:针对流畅的视频进行了优化,它仅使用初始生成器/评论家预训练/GAN NoGAN 训练。由于追求流畅的

速度,它的色彩比前两者少。

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

2. 编写代码

在项目根目录同级目录下创建Python文件,编写代码加载刚刚下载好的模型文件。

python学习交流Q群:906715085####
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模块将图片转换成模型输入所需要的格式,送入模型进行上色,完成后保存。

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

感兴趣的朋友可以自己运行一下,也可以试试其他模型的效果。需要源码的朋友,在公众号回复 老照片上色 即可。

最后,感谢你的关注,我将持续分享优秀的 AI 项目。如果本文对你有用就点个 在看 鼓励一下吧。

在这里插入图片描述

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+AI给老照片上色 - Python技术站

(0)
上一篇 2023年4月2日 下午5:30
下一篇 2023年4月2日

相关文章

  • 5 个方便好用的 Python 自动化脚本,拿来就用

    前言 相比大家都听过自动化生产线、自动化办公等词汇,在没有人工干预的情况下,机器可以自己完成各项任务,这大大提升了工作 效率。 编程世界里有各种各样的自动化脚本,来完成不同的任务。 尤其Python非常适合编写自动化脚本,因为它语法简洁易懂,而且有丰富的第三方工具库。 这次我们使用Python来实现几个自动化场景,或许可以用到你的工作中。 1、自动化阅读网页…

    Python开发 2023年4月2日
    00
  • 基于 Python 的地理空间绘图(附源码)

    前言 大部分情况下,地理绘图可使用 Arcgis 等工具实现。但正版的 Arcgis 并非所有人可以承受。本文基于 Python 的 cartopy 和 matplotlib 等库,为地理空间绘图的代码实现提供参考。 所有所需库如下: gma、cartopy、matplotlib、numpy   更多内容可转到:地理与气象分析库—-使用指南(点击阅读原文…

    Python开发 2023年4月2日
    00
  • Python爬取站长之家网页信息(附详细源码)

    一、实验目的 在信息时代高速发展的现在,“互联网+”的使用日趋zhanzhang过互联网学习知识,传递思想,沟通交流,在众多数据和用户的碰 撞中,互联网经济应运而生。学会利用网络收集信息是最基本的要求,接下来,我将以“行业网站”——站长之 家为例,通过Python爬取各个网站的信息(主要为名称、Alexa周排名、反链数等)来更直观、准确地分析其中各个网站在互…

    Python开发 2023年4月2日
    00
  • Python 最有用的25个代码段

    前言 Python是一种通用的高级编程语言。用它可以做许多事,比如开发桌面 GUI 应用程序、网站和 Web 应用程序等。 作为一种高级编程语言,Python 还可以让你通过处理常见的编程任务来专注应用程序的核心功能。并且,编程语言的简单语法规 则进一步简化了代码库的可读性和应用程序的可维护性。 与其他编程语言相比,Python 的优势在于: 1.与主要平台…

    Python开发 2023年4月2日
    00
  • Python量化交易之预测茅台股票涨跌

    前言 本文摘自清华大学出版《深入浅出Python量化交易实战》一书的读书笔记,这里把作者用KNN模式做的交易策略,换成了逻辑回归模型,试 试看策略的业绩会有怎样的变化。 二话不说,上梯子,导库拉数据: Python学习交流Q群:906715085### import pandas as pd import pandas_datareader.data as …

    Python开发 2023年4月2日
    00
  • Python图片压缩处理

    前言 不知道有没有人跟我有一样的烦恼,有时候图片太大了占内存很烦,本来手机内存也就那么点,放一个图片稍微大一点的,都不 能放一个成百上千张,这不是很烦嘛。于是,这又让我来灵感了,既然图片给了我难题,那么我就来接受这样的挑战。所以,我 决定用python来试试可不可以压缩图片,不是不知道,一试就成功了,那么好的东西怎么能一个人独享呢,当然要分享出来给大 家呀~…

    Python开发 2023年4月2日
    00
  • 【Python+Selenium】 实现对excel文件的读写操作,轻轻松松一步到位

    前言 利用selenium在做自动化测试的时候,经常会用到数据来做批量测试,常用的方式有读取txt文件,xml文件,csv文件以及excel文 件几种。 使用 excel 来做数据管理时,需要利用 xlrd、xlwt 开源包来读写 excel。 1、安装xlrd、xlwt pip install xlrd pip install xlwt   2、对exce…

    Python开发 2023年4月2日
    00
  • Python迭代对象、迭代器与生成器

    关系图 1.可迭代对象(iterable) 一个具备__iter__()方法的对象,就是一个可迭代对象,但是要成为一个正常的可迭代对象那么就需要遵循协议。这个方法必须返 回一个迭代器。 可迭代协议: 含__iter__()方法。且可迭代对象中的__iter__()方法返回的是一个对应的迭代器。(如list对应的迭代器就是 list_iterator) 以下代…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部