Pytthon实战------黑白老照片上色,手把手教你用Python怎么玩儿!
Posted 不加班的程序员丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytthon实战------黑白老照片上色,手把手教你用Python怎么玩儿!相关的知识,希望对你有一定的参考价值。
基于深度学习的黑白照片上色,今天手把手教你怎么玩儿
各位读者们,大家好啊,上个月初写了一篇关于老照片修复的教程,有读者看完不过瘾,表示想让我再安排一篇黑白照片上色教程,于是就有了这篇文章的由来
DeOldify 介绍
开始之前先对这个项目做个简单介绍,DeOldify 是一个关于给黑白照片上色的项目,是基于深度学习技术开发的,源码在 Github 上已经开源,目前收获了 13.4 k Star;去年有一个 B 站 Up主 制作了一个有关修复 100 年前老北京的视频
其中用到的上色就用到了DeOldify 框架,DeOldify 创建的目的是为了给黑白照片上色,但让人惊艳的是它除了能处理图片外,也可以处理视频;
DeOldify 的核心网络框架是 GAN ,对比以前上色技术有以下几个特点:
- 1,老照片中的伪影在上色过程中会被消除;
- 2,老照片的人脸部位来说,处理后皮肤会变得更光滑;
- 3,呈现更详细、真实的渲染效果;
简单介绍后,下面开始正式介绍一下它的用法,本次的测试环境如下
- OS: Windows 10;
- Python : Python 3.7.6;
- IDE : Pycharm;
- pytorch : 1.7.0 ;
2,环境配置
2.1,项目克隆到本地
有两种方法可供选择
1, Git 命令
2,在Github 项目页面点击 Download ZIP
选项,将项目手动下载到到本地,Github 地址贴在下方
2.2,下载权重文件
DeOldify 是基于深度学习开发的,需要用到预训练权重,这里项目开发者已经把训练好的权重上传到网上,我们可以直接拿来使用,不需要我们再训练
本项目中用到的权重文件比较多,一共三个:
- 1,Artistic 权重,会使图片上色效果 更
大胆
一些,下载地址:
- 2,Stable 权重,相对于 Artistic 上色效果更
保守
一些,下载地址: - 3 ,Video 权重,此权重文件用来给视频上色,下载地址
权重文件下载完毕后,在项目根目录下创建一个 models 文件夹,把下载好的三个权重文件放入 models
文件夹内,项目根目录排列如下
2.3,安装依赖项
在终端中输入如下命令,安装项目所需要的第三方扩展库;
第三方扩展库安装完毕之后,需要提醒一下,本项目是基于 Pytorch 进行开发的,在 requirements.txt 中作者并没有加入这 torch 依赖库,所以在启动项目之前请确保 torch 、torchvision 等库已经安装到你的运行环境中;
Tip
: 如果后面你想用到 GPU 加速效果,CUDA 和 Cudnn 等 GPU 加速包也需要提前配好
3 启动项目
环境配置好之后,下面的步骤就比较简单了,在主项目下创建一个脚本作为程序运行入口
3.1,照片上色
给照片上色的话,在主脚本内填入下面代码块
前面提到过 Artistic 与 Stable 是有区别的(因为用到的权重文件是不一样的), Artistic 上色效果会更加激进一些,例如给下面这张荷叶照片上色,不同模式下得到的图片是不一样的
Artistic 模式
Stable 模式
- render_factor 表示渲染因子,值越效果越好,但同时需要更大的显存;
- source_path 表示输入图片路径;
上色后的图片会存放在根目录下的 result_images
文件夹中,从网上下载了几张黑白图片,用这个框架自己也测试了一下,看起来效果还不错~
图二
图三
3.2,视频上色
视频上色,需要用下面的代码块
代码中参数用法参考 3.1,相对给照片上色来说,处理视频时除了耗时之外还需要考虑帧与帧之间的相关性,要复杂一些;
这里我借助 You-get 命令,从B 站下载了1972年《教父》一小部分片段(因为平台上传视频比较麻烦,这里只截取了其中一帧图片,请原谅我的懒,,,)
经过上色处理后,效果如下,
上色后的视频仔细看的话的确还有一定的瑕疵,但整体看起来效果已经相当不错了
4,项目源码获取
为了方便起见,我已经把配置好的项目文件打包成一个解压包,解压后只需安装项目中的所需依赖项即可,无需再配置权重文件;
项目源码获取方式,通过微信扫一扫备注【python】
以上是关于Pytthon实战------黑白老照片上色,手把手教你用Python怎么玩儿!的主要内容,如果未能解决你的问题,请参考以下文章