火爆全网的老照片修复技术,今天手把手教你用怎么玩 |
您所在的位置:网站首页 › 照片修复技术 › 火爆全网的老照片修复技术,今天手把手教你用怎么玩 |
大家好,我是辰哥~ 点击下方名片关注和星标『Python研究者』! 👆点击关注|设为星标|干货速递👆 小伙伴们应该在别的自媒体平台上看到过,关于老照片修复的文章或短视频,而这项技术目前在用户群体中很受欢迎,目前作为服务早早已经在各大电商平台售卖了 ![]() 作为一个技术号主,今天给大家介绍一个老照片修复相关的 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,下载项目,克隆到本地![]() 项目下载方式有两种,Download Zip 或 git 命令(需借助 Git 工具) ;Download Zip 通过浏览器来下载,得到的是个解压包,下载到本地之后解压即可 解压后的目录如下: ![]() 该项目是基于深度学习训练得到的,但官方已经提供了训练好的权重文件,可以直接下载下来供我们使用(网络当然也可以重新训练,但极其不建议,因为耗时、耗钱并且最终权重精度远不如官方),一共需要配置 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 使用可以参考之前我写的一篇文章 实现人脸识别、人脸68个特征点提取,或许这个 Python 库能帮到你! 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![]() 在终端输入下面命令,安装项目中所需的第三方程序包 pip install -r requirements.txt 3,运行,修复自己收集的图片上面环境配置好之后,下面就可以正常使用了;在项目中官方给的有测试图片,存放在 test_images, 分为两类 old 老照片,没有折痕的照片; ![]() old_w_scratch ,有折痕的照片 ![]() 对于不带折痕的照片,终端输入时需要三个参数, --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项目源码获取方式,在公众号后台回复关键字 210404 即可 小结关于本项目中图像修复技术原理,这里并没有特别介绍,如果只是想用一下这项技术的话,这篇文章已经足够能帮到你了;当然如果有读者想深入了解一下这项技术的背后原理,可以阅读一下原 Paper《Bringing Old Photos Back to Life》 好了,以上就是本篇文章的全部内容了,最后感谢大家的阅读,我们下期见~ 往期推荐 点击查看 一行 Python 代码能实现什么丧心病狂的功能? 2022-01-05 ![]() 17个常见的Python运行时错误,你中招了没? 2022-01-04 ![]() 毕业设计!Python实现学生教师刷脸签到系统 2022-01-03 ![]() 53个技巧!熬夜总结Python 使用和高性能技巧大集合! 2022-01-03 ![]() 一个小破网站,居然比 Python 官网还牛逼 2022-01-02 ![]() 可视化配色方案自由啦 (Python版) 2022-01-02 ![]() 分享 收藏 点赞 在看 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |