如何修复老照片,Bringing-Old-Photos-Back-to-Life机器学习开源项目安装使用 | 机器学习
目录
前言
项目环境搭建
conda虚拟环境创建
Pytorch安装
Synchronized-BatchNorm-PyTorch repository安装
Global目录Synchronized-BatchNorm-PyTorch项目部署
检测预处理模型下载
下载脸部增强模型文件
下载依赖
完整部署后项目结构
项目使用
总结
前言
老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-Life。
项目的Github地址:项目地址
我们先看看官方给出的效果图:
就算现在看到这张图,我仍然觉着非常惊艳。下面我会把项目环境安装部署,到最后使用的效果做一个展示。
项目环境搭建
该项目的环境搭建有点复杂,我一点点说。
conda虚拟环境创建
在项目README.md文件中要求python版本在3.6以上。
我们用anaconda创建一个虚拟环境bobl,anaconda的安装配置可以参考我的另一篇文章:机器学习基础环境部署 | 机器学习系列_阿良的博客-CSDN博客_机器学习 环境搭建
我们使用命令创建:
conda create -n bobl python=3.6
激活环境
conda activate bobl
在Pycharm项目中配置interpreter,设置到conda目录envs下bobl环境的python。
Pytorch安装
虽然项目官方给出的requirements.txt包含pytorch,为了保险起见,还是去Pytorch官方网站上安装一下。Pytorch官方地址:PyTorch
因为我本机没插显卡,安装的cpu版本。有显卡的话,还是去参考:机器学习基础环境部署 | 机器学习系列_阿良的博客-CSDN博客_机器学习 环境搭建
选择对应的命令安装Pytorch库。
Synchronized-BatchNorm-PyTorch repository安装
官方给出的安装说明里面需要部署Synchronized-BatchNorm-PyTorch项目进来。
这里注意一点,需要把Synchronized-BatchNorm-PyTorch项目中的sync_batchnorm拷贝到上级目录。完整的目录接口参考下图:
Global目录Synchronized-BatchNorm-PyTorch项目部署
官方说明里面也需要把Synchronized-BatchNorm-PyTorch项目部署到Global里面。
也是一样要把sync_batchnorm拷贝到上级目录。结构如下:
检测预处理模型下载
需要用到一个检测预处理模型,主要是用来识别照片中的人脸部分的。
注意解压后的位置,结构如下:
下载脸部增强模型文件
官方说明:
下载两个模型zip解压到对应目录下,结构如下:
下载依赖
注意,我这里去掉了pytorch的依赖安装,已经已经装过了。
dlib
scikit-image
easydict
PyYAML
dominate>=2.3.1
dill
tensorboardX
scipy
opencv-python
einops
PySimpleGUI
安装命令:
pip install -r requirements.txt -i https://pypi.douban.com/simple
完整部署后项目结构
完整的结构如下图:
项目使用
官方给到的图,我就不用了,不能说明问题。我自己准备了两种图,一张是一张人脸的,一张是多张人脸的。
先按照官方给出的命令跑跑看
我们直接使用最下面这个命令,包含划痕去除与高度还原。看一下执行情况。
(bobl) D:\spyder\Bringing-Old-Photos-Back-to-Life>python run.py --input_folder E:\csdn\老照片 --output_folder result1/ --GPU -1 --with_scratch --HR
Running Stage 1: Overall restoration
initializing the dataloader
model weights loaded
directory of testing image: E:\csdn\老照片
processing 1.jpg
processing 2.jpg
Mapping: You are using multi-scale patch attention, conv combine + mask input
Now you are processing 1.png
C:\ProgramData\Anaconda3\envs\bobl\lib\site-packages\torch\nn\functional.py:3635: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4
.0. Please specify align_corners=True if the old behavior is desired. See the documentation of nn.Upsample for details."See the documentation of nn.Upsample for details.".format(mode)
Now you are processing 2.png
Finish Stage 1 ...Running Stage 2: Face Detection
12
1
Finish Stage 2 ...Running Stage 3: Face Enhancement
dataset [FaceTestDataset] of size 13 was created
The size of the latent vector size is [16,16]
Network [SPADEGenerator] was created. Total number of parameters: 92.1 million. To see the architecture, do print(network).
hi :)
Finish Stage 3 ...Running Stage 4: Blending
Finish Stage 4 ...All the processing is done. Please check the results.(bobl) D:\spyder\Bringing-Old-Photos-Back-to-Life>
输出的文件不但有最终的结果,也有检测出来的每个脸的处理前后效果。结果结构如下:
验证一下
1、多人照片最终的效果验证,下面上图是输出结果图,下图是原始图。可以看出有些划痕已经消失,但是还是有一些,不过整体的任务更立体鲜明了。
2、单人照片最终效果验证,下面上图为结果图,下图为原始图。单人就很明显了,不但划痕都消除了,人也更清晰立体,效果是真不错。
3、模型也会把多人图中的每张脸都识别出来,并且跑出结果,可以对比一下看看,细节还是修复的很好的。
总结
官方还给出了其他的命令,就不一一验证了。整体的效果是非常好的,只是在多人图的时候还有些瑕疵,瑕不掩瑜。
项目需要很多模型文件,我把我的整个项目打包,解压后模型文件都在里面,使用的话只需要安装依赖就可以了。但是你需要最新代码的话,还是要同步一下Github。
链接:https://pan.baidu.com/s/1VYvTxjR5yuaCIq9cUk8I4Q
提取码:TUAN
分享:
我从来不认为天才有多么了不起,最了不起的是那些对自己最狠的人。——《择天记》
如果本文对你有用的话,请不要吝啬你的赞,谢谢!
如何修复老照片,Bringing-Old-Photos-Back-to-Life机器学习开源项目安装使用 | 机器学习相关推荐
- 开源AI项目-老照片修复之 Bringing Old Photos Back to Life
方案 Bringing Old Photos Back to Life https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life 快速 ...
- 老照片修复之Bringing Old Photos Back to Life
1. 摘要 老照片修复中面临着许多的图像处理问题,比如填孔洞.去划痕.上色.去噪等,也就是说包含了多种图像退化问题.而使用深度学习进行训练时往往需要制造样本对,但是真实的低质量数据包含多种退化问题,想 ...
- [GAN]老照片修复Bringing Old Photos Back to Life论文总结
Title Title:Bringing Old Photos Back to Life Source:CVPR2020 论文官网 Code 1.Summary 文章提出并解决了两个问题. 问题一 泛 ...
- Bringing Old Photos Back to Life微软老照片修复全解析(原理、代码、训练、测试)
挖坑,写一下该论文相关的信息,从原理.模型代码分析.测试.最后写模型的数据集及其训练. (1) Bringing Old Photos Back to Life原理和测试 (2) Bri ...
- 让老照片重现光彩:Bringing Old Photos Back to Life(实战)
Bringing Old Photos Back to Life 香港城市大学和微软亚洲研究院的"让老照片重现光彩"(Bringing Old Photos Back to Lif ...
- 【实战】(香港城市大学,微软亚洲研究院)让老照片重现光彩(一):Bringing Old Photos Back to Life
香港城市大学和微软亚洲研究院的"让老照片重现光彩"(Bringing Old Photos Back to Life)项目侧重于对老照片进行划痕修复和人脸效果增强,在老照片处理方面 ...
- 图像去雾,利用《bringing old photos back to life》 训练并修改
目录 背景 数据的处理 模型修改 模型训练 后续 背景 <bringing old photos back to life>是一篇用于老照片修复的论文,论文的故事讲的很好,但是不利于读者的 ...
- Bringing Old Photos Back to Life模型代码分析1(数据载入部分)
(1)Bringing Old Photos Back to Life原理和测试 (2) Bringing Old Photos Back to Life模型代码分析1(数据载入部分) Bringin ...
- 还在找怎么修复老照片?火爆全网的老照片修复技术方法其实很简单
火爆全网的老照片修复技术,今天终于被我找到了!试了一下,模糊照片秒变清晰,头发丝都能看得见,真的太神奇了! 相信每个小伙伴的家中,或多或少会有一些年代久远的老照片.这些照片承载着的是老一辈人过去的回忆 ...
- 怎么修复老照片?给你推荐这几个修复方法
相信大家的家里都有老照片吧,那在你们翻看这些老照片的时候,有没有发现有些老照片变得有些破旧.泛黄.模糊等情况呢?看到这些情况,大家是不是会很心疼呢?因为这些老照片都充满了各种各样的回忆,根本拍不出第二 ...
最新文章
- php将图片链接转换为base64编码文件流
- pythone 打开文件 一行_【精品资料】用了这么多年单片机的Hex文件不懂?看这篇就够了...
- Android小结(1)
- Qt Marketplace
- 面向对象特征:封装、多态 以及 @propetry装饰器
- 用strace工具跟踪系统调用
- PHPMailer - PHP email transport class
- 从0开始学java视频_Java全套学习视频放送,从零开始一步步掌握Java技能!
- linux之debian自动登录
- 技术狂何波:战斗在程序化交易第一线
- u9系统的使用方法仓库_用友ERP系统,U9操作流程图
- U分布、T分布、z分位数
- 工作学习办公软件助手集合
- Android仿自如客APP裸眼3D效果
- 电源管理允许此设备唤醒计算机怎么关掉,允许计算机关闭此设备以节省电量灰色 | MOS86...
- 最快的计算机操作,自学电脑操作怎样比较快?
- Ubuntu Desktop - Disks
- Matlab学习笔记(1) - 符号变量及其运算
- 盲盒包装流水线 (25 分) C语言
- 3DMAX角色建模教程
热门文章
- oracle虚拟用户是什么意思,配置vsftp基于虚拟用户认证
- CentOS 8 部署禅道,并使用自己的数据库
- java源程序的运行命令_Java源程序名为Test.java,运行它的Java程序的命令是( )。 (10.0分)_学小易找答案...
- Delphi著名皮肤控件库大全
- 云烟成雨,我多想再见你,
- 计算机网络复习训练题
- 共享办公平台,提高整体使用率
- 最新资料!工银亚洲开户见证业务受理网点(深圳地区)
- Springboot实现邮箱验证码注册、找回密码和登录功能
- android 支付宝快捷支付