火爆全网的老照片修复技术,手把手教你怎么玩儿!
关注公众号:【小张Python】,为你准备了 50+ 本Python 精品电子书籍 与 50G + 优质视频学习资料,后台回复关键字:1024 即可获取;如果对博文内容有什么疑问,后台添加作者【个人微信】,可与作者直接进行交流
小伙伴们应该在别的自媒体平台上看到过,关于老照片修复的文章或短视频,而这项技术目前在用户群体中很受欢迎,目前作为服务早早已经在各大电商平台售卖了
作为一个技术号主,今天给大家介绍一个老照片修复相关的 Github 项目,并手把手教学,带大家将这个项目跑起来,
学会了之后可以把项目应用到自己收集的图片上,有想法的读者也可以借助这个项目帮别人修复照片赚点零花钱,岂不美滋滋~
Github 项目叫 Bringing-Old-Photos-Back-to-Life,是微软公司把去年发表在 CVPR 上的一篇期刊的源码,项目地址 https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life
名称就代表了项目用途:对老照片进行修复,恢复它原有的样貌;下面是官方公布的一些修复前后对比效果图,看上去是不是很赞 ~
根据上面给定的样例,如果对项目的功能细分的话可分为以下三类
- 1,旧照片全景修复;
- 2,照片折痕识别、修复;
- 3,照片人脸识别、人脸部分增强;
上面对项目一个简单介绍以后,下面开始正式介绍它的用法,先交代一下本次的测试环境:
- OS: Windows 10,
- Python :python 3.7.6,
- IDE : Pycharm;
- torch : 1.6.0+cpu
- torchvision : 0.7.0+cpu
1,下载项目,克隆到本地
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4hcf5lUC-1617634643560)(https://images.zeroingpython.top/img/image-20210403081648547.png)]
项目下载方式有两种,Download Zip
或 git 命令(需借助 Git 工具) ;Download Zip
通过浏览器来下载,得到的是个解压包,下载到本地之后解压即可
解压后的目录如下:
2,配置环境
该项目是基于深度学习训练得到的,但官方已经提供了训练好的权重文件,可以直接下载下来供我们使用(网络当然也可以重新训练,但极其不建议,因为耗时、耗钱并且最终权重精度远不如官方),一共需要配置 3 部分权重文件
2.1 Global 权重配置
该权重是用于图片全局修复,下载地址
https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Global/checkpoints.zip
下载后把文件加压至 ./Global
文件目录下
2.2 Face_Detection 权重
在前面项目介绍中,提到过该项目除了可以照片修复之外,还可以进行人脸增强,简单理解就是把模糊的人脸图像清晰化
人脸增强 首先需要解决的是人脸识别问题,项目中借助的是一个Python库 dlib,关于 dlib 使用可以参考之前我写的一篇文章
dlib 库安装也可以通过 pip 工具,但需要注意两个点 :
- 1, pip 安装 dlib 之前,需提前安装好 Cmake ,
pip install Cmake
,否则会安装失败; - **2,用 dlib 进行人脸识别需要一个权重文件 **
dlib 权重文件下载地址如下,下载完之后将权重文件解压至 文件夹 ./Face_Detection/
中
http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
2.3 Face_Enhancement 权重
Face_Enhancement 权重用于人脸部位增强,下载后权重文件解压至 ./Face_Enhancement
,下载地址如下
https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Face_Enhancement/checkpoints.zip
2.4 Synchronized-BatchNorm-PyTorch
这是 Pytorch 框架的一个 同步BatchNorm 一个分支仓库,此项目中用到了这个模块;仓库地址
https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
]
将仓库克隆到本地,解压后目录如下:
项目中两处地方用到了 sync_batchnorm
文件夹,这里需要注意下一下
1,将 sync_batchnorm
复制到 Face_Enhancement/models/network
文件夹下,还需要改动一点项目中的代码部分,找到 Face_Enhancement/models/network/normalize.py
脚本,更改第 8 行代码,将
from models.networks.sync_batchnorm import SynchronizedBatchNorm2d
改为
from models.networks.sync_batchnorm.batchnorm import SynchronizedBatchNorm2d
]
2,将 sync_batchnorm
复制到 Global/detection_models
,找到 Global/detection_models/network.py
脚本,更改第 7 行代码,将
from detection_models.sync_batchnorm import DataParallelWithCallback
改为
from detection_models.sync_batchnorm.replicate import DataParallelWithCallback
]
2.5 安装依赖项
在终端输入下面命令,安装项目中所需的第三方程序包
pip install -r requirements.txt
3,运行,修复自己收集的图片
上面环境配置好之后,下面就可以正常使用了;在项目中官方给的有测试图片,存放在 test_images, 分为两类
- old 老照片,没有折痕的照片;
- old_w_scratch ,有折痕的照片
]
3.1 修复不带折痕的照片
对于不带折痕的照片,终端输入时需要三个参数,
--input_folder
,存放需要修复图片的文件路径,不指定时默认为./test_images/old
;--output_folder
,存放修复后图片的文件路径,不指定时默认为./output/
--GPU
,指定用到的 GPU 编号,可设定为0
、0,1
或0,1,2
,没有 GPU 配置时 设为-1
表示运行时只用 CPU ; 设定 GPU 时需要确保配置的 Pytorch 是 GPU 版本,相对 CPU 的话,GPU 测试时间会更短;
测试时,启动命令如下,这里 --input_folder、--output_folder
参数都为默认,所以命令中加这两个参数,电脑比较渣没有 GPU 所以设为 -1;
python run.py --GPU -1
3.2 修复带折痕的照片
与不带折痕相比,修复带折痕照片要多加入一个参数 --with_scratch
,还有一点不同的是存放原照片默认路径更改为为 ./test_images/old_w_scratch
,其它参数设置见 3.1
终端中输入的测试命令如下:
python run.py --GPU -1 --with_scratch
最终的运行结果
官方在 ./test_images/old
和 ./test_images/old_w_scratch
文件夹下提供的有测试图片,读者们想要测试自己收集的图片时,有两种方法
- 1,把自己图片放入默认
--input_folder
文件夹中,运行时无需指定--input_folder
参数 - 2,运行命令指定
--input_folder
参数,后跟自己存放照片的文件路径;
关于此项目的使用方法,基本就这些了,最后在这里贴几张我运行得到的几张修复图
不带折痕的图像修复
图一
]
图二
图三
图四
上面这张图大致一看没什么变化,是因为原图像本身就很清晰,但如果把图片放大的话就明显看到两者之间的差距
放大后的左图
放大后的右图
带有折痕的图片修复
图一
图二
图三
项目源码获取
为了方便起见,我已经把配置好的项目文件打包成一个解压包,解压后只需安装项目中的所需依赖项即可,无需再配置权重文件;
pip install -r requirements.txt
项目源码获取方式,关注微信公众号:小张Python,后台回复关键字 210404 即可
小结
关于本项目中图像修复技术原理,这里并没有特别介绍,如果只是想用一下这项技术的话,这篇文章已经足够能帮到你了;当然如果有读者想深入了解一下这项技术的背后原理,可以阅读一下原 Paper《Bringing Old Photos Back to Life》
好了,以上就是本篇文章的全部内容了,最后感谢大家的阅读,我们下期见~
火爆全网的老照片修复技术,手把手教你怎么玩儿!相关推荐
- 还在找怎么修复老照片?火爆全网的老照片修复技术方法其实很简单
火爆全网的老照片修复技术,今天终于被我找到了!试了一下,模糊照片秒变清晰,头发丝都能看得见,真的太神奇了! 相信每个小伙伴的家中,或多或少会有一些年代久远的老照片.这些照片承载着的是老一辈人过去的回忆 ...
- 火爆全网的老照片修复技术,今天手把手教你用怎么玩
大家好,我是辰哥~ 点击下方名片关注和星标『Python研究者』!
- CVPR 2020丨图像超清化+老照片修复技术,拯救你所有的模糊、破损照片
编者按:也许你曾从橱柜里翻出家人们压箱底的老照片,而它们已经泛黄发脆,甚至有些褪色:也许你在拍照时不慎手抖,只好把糊成一片的照片都丢进"最近删除".而微软亚洲研究院在计算机视觉顶会 ...
- 图像超清化+老照片修复技术,拯救所有模糊和黑白的照片
也许你曾从柜子里翻出家人们压箱底的老照片,它们已经变黄.变脆,甚至褪色:科技的进步AI智能图像修复技术--基于领先的深度学习技术,将使这些照片奇迹般地回归. 从古老的胶片相机到今天的数字时代,人类捕捉 ...
- 黑白老照片上色,手把手教你用Python怎么玩 DeOldify!
各位读者们,大家好啊,上个月初写了一篇关于老照片修复的教程,有读者看完不过瘾,表示想让我再安排一篇黑白照片上色教程,于是就有了这篇文章的由来 DeOldify 介绍 开始之前先对这个项目做个简单介绍, ...
- win10系统崩溃怎么修复_手把手教你“无损”修复win10系统
平时在电脑的使用中,大家偶都遇到一些软件故障或者系统的某些功能出问题. 比如我前段时间就遇到USB驱动的故障,导致USB鼠标键盘无法使用.但是在BIOS下,键盘鼠标都是正常的,这样就确定是系统的故障. ...
- 电脑win7蓝屏没有修复计算机,手把手教你win7蓝屏如何修复
电脑用久了,难免会出现这样那样的问题.比如说蓝屏故障,该如何解决呢?相信许多朋友在遇到蓝屏故障时都是不知道要如何执行修复的,针对这个问题接下来小编就将整理好的win7电脑蓝屏修复教程分享给大家. wi ...
- coreos 安装 mysql_技术|手把手教你在 CoreOS 上构建你的第一个应用
[编者的话]作者以自己的Mac笔记本为例,介绍了如何在CoreOS上安装WordPress应用,没有过多的理论解释,全部是实战类教程,推荐想快速了解CoreOS的同学阅读. 我相信你一定听说过Core ...
- mysql主从架构搭建_技术 | 手把手教你搭建MySQL主从架构
1 什么是MySQL的复制 MySQL的主从复制可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave)上,进而可以保证数据有多份冗余. 默认情况下,属于异步复制,所 ...
最新文章
- PHP的str_split分割字符串成数组
- 项目管理工具篇(一、Maven)
- wait()和sleep()
- 小网站asp好还是php好,网站程序是asp好还是php好,哪个更利于优化?
- redis——redis事务相关处理
- 数据库及对应数据文件使用查询
- python使用matplotlib超全画图
- 爬虫抓图全网最新方法,这一次终于是4k高清美图,只因为我不下载JPG图片!
- linux文件名补全,Linux中10个关于命令行自动补全的技巧
- 从零开始javaweb项目——毕业设计参考指南
- 我爱淘二次冲刺阶段2
- 二分法求中点最佳code写法
- 实现简单的三D立方体自动旋转
- Linux Socket编程入门——浅显易懂
- 从PCB的结构与工艺理解阻焊(Solder mask)与助焊(Paster Mask)
- 【深度学习笔记】常见的图像增强方法:scaling、rotating、flipping、random cropping
- python模拟登录qq账号密码_QQ邮箱模拟登录(密码、头像、QQ邮箱爬取)
- 【0151】gdb调试libpq与postgres之间通信的技巧
- 计算机里一些没有用的文件,电脑C盘有哪些文件可以删除的没用的
- 重装机兵可以看经验值的计算机,自己整理的MMR地球救济中心所有可以查看的电脑中的话...