让老照片重现光彩:Bringing Old Photos Back to Life(实战)

2023-05-16

Bringing Old Photos Back to Life

香港城市大学和微软亚洲研究院的“让老照片重现光彩”(Bringing Old Photos Back to Life)项目侧重于对老照片进行划痕修复和人脸效果增强,在老照片处理方面取得了很好的成绩,在这篇文章里我们介绍一下这个项目。

论文地址:https://arxiv.org/abs/2004.09484

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

1.必备环境(Windows 10,显卡可有可无,GPU可设置0,CPU设置-1)

python 3.7.4
torch 1.5.0
torchvision 0.6.0

1.1从 Github 下载源代码,解压缩,进入工作目录,安装其他软件环境:

https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

pip install -r requirements.txt

1.2下载组件

(1.2.1)https://github.com/vacancy/Synchronized-BatchNorm-PyTorch

将上面项目的代码下载下来,解压缩,将 .\sync_batchnorm 拷贝到:.\Global\detection_models 和 .\Face_Enhancement\models\networks 两个目录下。

(1.2.2)http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

将下载的压缩包解压缩,拷贝到:.\Face_Detection 下。

该文件也可到百度网盘下载:https://pan.baidu.com/s/1E0J0gOlTcrjWkA5G1qddPw 提取码:qm3h

2.下载预训练模型
可以到百度网盘下载:https://pan.baidu.com/s/1T2tEqUsi4QRwBSbPNNLWPQ 提取码:fdgx

将 .\Face_Enhancement\checkpoints.zip (327MB)解压缩,保存为:.\Face_Enhancement\checkpoints 目录及相关文件

将 .\Global\checkpoints.zip (1.62GB)解压缩,保存为:.\Global\checkpoints 目录及相关文件。

3.修改几个文件

run.py,加入一行代码:

os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

.\global\detection_models\networks.py,修改:

from .sync_batchnorm.replicate import DataParallelWithCallback
from .antialiasing import Downsample

.\Face_Enhancement\models\networks\normalization.py,修改:

from .sync_batchnorm import SynchronizedBatchNorm2d

3.1将待修复的带划痕/有破损的老照片放到:.\test_images\old_w_scratch 目录下,将不带划痕需要改进色彩或清晰度的老照片放到:.\test_images\old 目录下,运行以下命令行(命令行中需要使用绝对目录!):
注:GPU可设置为0或0、1、2或0、2; CPU使用-1

修复带划痕/有破损的老照片(使用 RTX 2080Ti 最大可修复 512x512 的照片):

python run.py --input_folder D:\pycharm\Bringing-Old-Photos-Back-to-Life-master\test_images\old_w_scratch --output_folder D:\pycharm\Bringing-Old-Photos-Back-to-Life-master\output_images --GPU -1  --with_scratch

改进老照片的色彩或清晰度(使用 RTX 2080Ti 最大可改善 1024x1024 的照片):

python run.py --input_folder D:\pycharm\Bringing-Old-Photos-Back-to-Life-master\test_images\old --output_folder D:\pycharm\Bringing-Old-Photos-Back-to-Life-master\output_images --GPU -1

3.2为了避免成果照片混淆,在完成上一次修复/改进操作后,将成果照片(放在:.\output_images\final_output 目录下)移走后请将 .\output_images 下的子目录清空,然后再进行下一次操作。

4使用效果

4.1老照片修复

论文给出的例子:
在这里插入图片描述

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

让老照片重现光彩: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项目资源下载与配置Bringing O
  • 让老照片重现光彩:Bringing Old Photos Back to Life(实战)

    Bringing Old Photos Back to Life 香港城市大学和微软亚洲研究院的 让老照片重现光彩 xff08 Bringing Old Photos Back to Life xff09 项目侧重于对老照片进行划痕修复和人
  • signature=9357ba213647505b8240e6d7d6ce48bf,life-game/yarn.lock at master · soouup/life-game · GitHub...

    THIS IS AN AUTOGENERATED FILE DO NOT EDIT THIS FILE DIRECTLY yarn lockfile v1 34 64 babel code frame 64 7 8 3 34 version
  • WARNING: pip is being invoked by an old script wrapper.

  • 会画画有什么用?

    盛夏的风 安江泽 小白菜 等 13332 人赞同 原问题是 会画画有什么用 现在这样一改感觉离题太远了 特此澄清 80后大叔在当年初中时家里不给买游戏机的时候可以自己画游戏棋和小伙伴玩 自己玩的比较久的是这个超任的超悟空传 游戏本来就是棋类
  • 覆盖Android后退按钮

    关于我为什么尝试这样做的一些信息 我正在使用 ActivityGroups 从 tabHost 活动打开一个活动 并将该新活动保留在选项卡下 那部分我已经有了 但是 在该新活动中 如果我使用后退按钮 它会将我直接退出选项卡活动 因此我必须单
  • PHP 检查日期是否是过去 30 天

    我这里有点问题 我将日期插入数据库 date last applied 我可以通过使用来调用它 row date last applied 当然 现在 我需要检查这个插入的日期是否是30 天前如果是 则执行一个操作 query SELECT
  • 返回按钮重新提交表单数据 ($_POST)

    我的问题是 当表单创建上一页时 后退按钮会导致浏览器显示 页面已过期 之类的内容 Example page1 通过搜索提交的表单 标准 POST 请求 表单 指向第2页 page2 接收 POST请求并 显示结果 带有链接的用户列表 指向第
  • ror 中使用 Paperclip 进行多次上传

    我正在使用回形针上传一栋建筑物的一张照片 http www youtube com watch v KGmsaXhIdjc我已经用这种方法做到了 但我决定将多张照片上传到一栋建筑 我可以使用回形针来做到这一点还是必须更改它并使用 jQuer
  • 获取 Photos.app 中的图像数量?

    我知道可以使用 ALAssetsLibrary 获取 Photos app 中的图像 但如何获取 Photos app 中的照片总数 我几乎正在尝试检查照片的数量 因为我正在使用此问题的代码获取 Photos app 中的最后一张图像 从
  • iPhone设备上的相册路径是什么?

    我试图将 PNG 文件保存到 iPhone 设备上的相册文件夹中 扩展名为 png 以便保持透明度 我的问题是 UIImageWriteToSavedPhotosAlbum 函数使用的相册路径是什么 我正在使用数据写入文件方法 Thanks
  • 如何在手动按单个片段的后退按钮时返回到上一个片段?

    我只有一个activity和多个fragments在我的应用程序中 两个主要片段A 左 和B 右 Fragment A1 called from A B1 called from B B2 called from B1 All fragme
  • 相当于“OnBackKeyPress”的是什么

    在 Windows Phone 8 0 中 我用它来处理后退按钮 protected override void OnBackKeyPress CancelEventArgs e base OnBackKeyPress e 页面 控件上不存
  • 如何获取特定尺寸的相册照片

    我可以很好地检索相册的照片列表 是的 返回的照片数组中有不同的大小 但我的问题是 有什么方法可以指定要返回的图像的尺寸 从 photos 调用返回的数组 id gt COVER PHOTO ID from gt Array name gt
  • 如何从反应本机页面返回本机视图控制器?

    我用一个包装了一个反应本机页面UIViewController 并用导航控制器推送它 但是如何使用react native js代码弹出到本机页面 最简单的方法是拥有一个引用您的属性UIViewController在你的AppDelegat
  • Safari 9 中后退按钮后触发 JQuery/Javascript

    当我使用 Chrome Firefox 中的浏览器后退按钮向后导航时 我的网站按预期工作 与不向后导航而加载的情况相同 在 Safari 中 导航回来后 我无法触发任何 加载 类型的事件 无论标准文档是否准备就绪 还是在 StackOver
  • 覆盖后退按钮以充当主页按钮

    按下后退按钮后 我希望我的应用程序进入停止状态 而不是销毁状态 在安卓中docs http developer android com intl fr guide practices ui guidelines activity task
  • 如何使用 Photos API 在 iOS 8.0 中检索照片扩展名 (jpg/png)?

    我正在尝试使用 iOS 8 中新的 Photos API 获取照片的文件扩展名 但到目前为止还没有找到方法 在 iOS 8 0 之前 我会使用 ALAssetRepresentation 来获取文件扩展名 例如 Get asset repr
  • 如何处理对话框中的后退按钮?

    我正在开发一个应用程序 当按下按钮时 它会打开一个带有 确定 和 取消 按钮的对话框 效果很好 当用户按下后退按钮时 我按如下方式处理 public boolean onKeyDown int keyCode KeyEvent event
  • 在 Android 上点击后退按钮时关闭应用程序

    所以我的登录活动是您看到的第一个屏幕 当您点击后退按钮时 它会退出应用程序 很好 所以我再次打开应用程序 登录后 我现在处于我的主要活动中 我该如何做到这一点 以便当我现在点击后退按钮时 它会退出应用程序而不是返回到登录活动 当您推送新活动

随机推荐