照片修复-使用Bringing-Old-Photos-Back-to-Life

2023-05-16

项目地址

github项目地址:https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

环境搭建

1、下载Bringing-Old-Photos-Back-to-Life的github项目
直接下载压缩包解压,或者clone下载都可以。
clone指令:git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

2、下载工程依赖的其他github项目
依次执行就可以了

cd Face_Enhancement/models/networks/
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../../
 
cd Global/detection_models
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../

3、下载预训练模型
人脸识别预训练模型:

cd Face_Detection/
wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
cd ../

Face_Enhancement和Global的checkpoints模型:

cd Face_Enhancement/
wget https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Face_Enhancement/checkpoints.zip
unzip checkpoints.zip
cd ../
cd Global/
wget https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Global/checkpoints.zip
unzip checkpoints.zip
cd ../

由于两个checkpoints下载的速度很慢,可以先下载,然后把下载链接复制到迅雷下载,速度可以达到10M。我将下好的上传到了百度云,
地址:https://pan.baidu.com/s/1aZOrp7OF3rt9b8B4UZxTAw,提取码:g1wj
下载完分别放到对应文件夹然后解压。

4、安装环境所需模块
按照github项目下面的说明,直接执行:pip3 install -r requirements.txt就行了。但是问题就来了!cuda、torch、torchvision版本一定要对应,直接pip安装torch和torchvision的话安装的都是最新的,执行修复图片时就会出现下面列举的错误。所以最好的方法就是打开requirements.txt然后将这些包手动pip安装,除了torch和torchvision要指定版本,其他的都可以直接pip安装。

我的环境是:cuda-8.0、torch-1.0.0、torchvision-0.2.2
三者对应关系参考:https://blog.csdn.net/jonado13/article/details/108281688

修复图片

使用时,假设输入路径为 /home/jcy/source/source/old_w_scratch(待修复的图片放在这里),输出路径为/home/jcy/source/source/output_images,那么执行指令为:
图片没有裂痕:

python3 run.py --input_folder /home/jcy/source/source/old_w_scratch --output_
folder /home/jcy/source/source/output_images --GPU 0 

图片有裂痕

python3 run.py --input_folder /home/jcy/source/source/old_w_scratch --output_
folder /home/jcy/source/source/output_images --GPU 0 --with_scratch

执行完毕,修复完的图片就会出现在output_images/final_output中。

注:
修复的图片不要太大,比较大的照片还是别想了,大概率带不动的,大图可以把人身体区域截图下来修复,或者将图片切割或裁剪。

报错
1、incompatible function arguments. The following argument types are supported: 1. (arg0: object, arg1: torch._C._jit_tree_views.SourceRange, arg2: Callable[[str], function]) -> torch._C.Type
错误原因:torch版本和torchvision版本不匹配

2、AssertionError: The NVIDIA driver on your system is too old (found version 9000).
错误原因:torch版本太高,与cuda不匹配,比如我cuda-8.0装了torch-1.5报错了,重新安装torch1.0.0解决。

运行结果

在这里插入图片描述

效果还阔以,但是只生成了这两张,因为这两张图片尺寸比较小,其他找的几张图片比较大,在生成修复图片的时候把我1080ti顶爆了,等啥时候有钱了整个3080ti试试了。。。。硬要修复大的图片,可以裁剪成多份,多次修复以后拼接成一张图片即可,但为了提高拟合度,最好每张图片中都有一块大小适中的重叠区域,而且看了一部分源码,这个项目中似乎对人脸还是挺敏感的,所以最好裁剪的每个部分都把人物包括在里面,以人物为基准向四周拓展。
在这里插入图片描述
修复完一次以后注意清理一下,最好的办法就是把输出图片的文件夹中的所有内容删除(包括图片和文件夹),否则下次修复就会出现重复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

照片修复-使用Bringing-Old-Photos-Back-to-Life 的相关文章

  • pytest增加描述列

    pytest html报告优化 添加Description 在confest py代码填写如下内容 xff1a 64 pytest span class token punctuation span mark span class toke
  • 练习题-水仙花数

    水仙花数 水仙花数 xff1a 3位数 xff0c 百位 十位 各位的立方和等于本身 python 版本1 sum1 61 0 for a in range 1 10 for b in range 10 for c in range 10
  • C++字符串拼接 字符串拼接

    C 43 43 字符串拼接 字符串拼接 功能描述 xff1a 实现在字符串末尾拼接字符串 span class token macro property span class token directive keyword include
  • kali 安装Android安全测试框架Drozer

    Drozer是MWR Labs开发的一款Android安全测试框架 是目前最好的Android安全测试工具之一 Adb就是一个命令行窗口 xff0c 用于通过电脑端与模拟器或者真实设备交互 一 安装drozer xff1a 环境 xff1a
  • 卡尔曼滤波

    卡尔曼滤波是一个纯时域的滤波器 xff0c 不需要进行频域变换 xff0c 描述状态之间的线性关系 卡尔曼滤波主要由两部分组成 xff1a 1 预测 xff1a 使用上一阶段的状态来预测当前状态的预测值 2 校正 xff1a 利用对当前状态
  • CF 1157D N Problems During K Days

    CF 1157D N Problems During K Days 题目链接题面题目大意题目分析代码 题目链接 我是题目链接戳我呀 gt lt 题面 题目大意 Polycarp想要在 k 天做 n 道题 xff0c 并且他希望每一天做的题量
  • ubuntu的命令&操作

    记录ubuntu系统使用中一些常用的操作 1 在ubuntu终端打开图像界面的文件夹 xff1a cd到指定的目录之后执行nautilus即可 参考 xff1a linux系统ubuntu中在命令行如何打开图形界面的文件夹 李照耀 博客园
  • CF 1156B Ugly Pairs

    CF 1156B Ugly Pairs 题目链接题面题目大意题目分析代码 题目链接 我是题目链接戳我呀 gt lt 题面 题目大意 有 T 个字符串 xff0c 对于每个字符串可任意更改其位置 xff0c 使相邻的两个字符的ascii码相差
  • 傅里叶变换与EEG傅里叶变换处理

    傅里叶变换与EEG傅里叶变换处理 EEG与傅里叶变换 The Basics of Signal Processing Fourier transforms Nyquist frequency sampling theorem and ali
  • 【详解】计算机视觉算法导读篇

    目录 1 深度学习发展史2 计算机视觉概述2 1 定义2 2 任务分解2 3 应用场景2 4 计算机视觉发展史 1 深度学习发展史 起源 xff1a 深度学习所需要的神经网络技术起源于20世纪50年代 xff0c 叫做感知机 当时也通常使用
  • Linux ManJaro 换源、安装应用

    1 换源 sudo pacman mirrors i c China m rank pacman文件配置 sudo nano etc pacman conf 在末尾插入 xff08 可以先浏览器打开源看是否可用 xff09 archlinu
  • 树莓派(RPi) CentOS7安装配置PHP7

    在树莓派配置了Nginx之后 xff0c 自然要上PHP大法 在下萌新 xff0c 学习PHP的时候直接入手的PHP7 xff0c 所以我就在树莓派上也配置了PHP7 xff0c 现在我将安装过程写下来分享一下 0 环境说明 设备 xff1
  • 树莓派使用apt-get安装配置Nginx+PHP7+MySQL(MariaDB)附带部分细节

    最近使用树莓派搞定了一个小项目 xff0c 现在树莓派闲置了 xff0c 正好拿来做一个小型Web服务器进行功能测试 没想到配置的过程比我想象的复杂 xff0c 好多小细节是用云服务器的时候没遇见过的 我已经尝试写的很简洁了 xff0c 各
  • UnknownError:Fail to find the dnn implementation解决方法

    程序加上下面代码 gpus 61 tf config experimental list physical devices 39 GPU 39 if not gpus return 34 No GPU available 34 try Cu
  • 设置pandas打印所有列

    pd set option display max columns None
  • 使用tensorflow时报错Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

    使用tf2 1时 xff0c cuda和cudnn都安装好了 xff0c 报错 Could not create cudnn handle CUDNN STATUS INTERNAL ERROR 最开始以为是cudnn版本问题 xff0c
  • linux安装mongo数据库软件robo3T(转载)

    robo 3T xff08 robomongo xff09 在ubuntu16 04上安装记录 96 王南北丶 2017 10 08 22 19 字数 450 阅读 1622评论 2喜欢 3 robo 3T是mongodb的一个非常好用的可
  • spss入门基本用法

    一 xff0e 数据 1 个案排序 xff1a 对数据视图中的某个个案进行排序 xff0c 具体排序规则可以点进去选择 2 变量排序 xff1a 对变量视图中某个变量进行排序 xff0c 具体规则可以点进去选择 3 转置 xff1a 行列互
  • 点积的概念

    在数学中 xff0c 数量积 xff08 dot product scalar product xff0c 也称为点积 xff09 是接受在实数R上的两个向量并返回一个实数值标量的二元运算 它是欧几里得空间的标准内积 两个向量a 61 a1
  • 如何在jupyter notebook直接安装模块

    pip install 模块名 注意要加 xff01

随机推荐