让老照片重现光彩: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(实战) 的相关文章

  • WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.

    出现以下问题 解决办法 python m 会指定你当前使用的python版本 python m pip install pyreadline xff08 包名 xff09 安装成功 xff01
  • 通过磁盘清理删除windows.old

  • 【C++笔记】关于push_back(vector<int>());

    vector lt vector lt int gt gt vec vec push back vector lt int gt vec back push back vec n push back 今天在刷leetcode题的时候见到如上
  • 2017电子设计攻略_控制类

    2017年电子设计大赛准备攻略 控制类 Author 靳皓屹 中北大学 1 组队 组队是一件非常重要的事情 在组队之前 一定要想清楚 1 三个人中间是否有一位核心成员 具有决断力 能够定好团队的方向 2 分工问题 个人认为最合理的分工是这样
  • 禁用单页应用程序的浏览器后退按钮

    我需要在单页应用程序中禁用浏览器的后退按钮 我尝试使用类似的方法哈希变化 or window history forward但它们不起作用 原因可能是 url 没有在这里更改 我在 AngularJS 中工作 构建一个单页应用程序 我想禁用
  • PHP 检查日期是否是过去 30 天

    我这里有点问题 我将日期插入数据库 date last applied 我可以通过使用来调用它 row date last applied 当然 现在 我需要检查这个插入的日期是否是30 天前如果是 则执行一个操作 query SELECT
  • 更改我的网络应用程序的浏览器后退按钮行为?

    我正在制作一个 类似应用程序 的网页 实际页面比浏览器视口更宽 浏览器视口隐藏了溢出 单击不同的链接会更改 CSS 以动画显示不同的部分 这是一个非常简单的演示 http smartpeopletalkfast co uk pos 在这个阶
  • 如何将 Facebook 相册集成到网站中? [复制]

    这个问题在这里已经有答案了 可能的重复 Facebook Api 如何访问我的相册 如何在网站内显示 Facebook 相册中的照片 您可以使用图形 API 来获取相册中的图像 如下所示 https graph facebook com A
  • 从 Android 将图片发布到墙上

    我想将图片张贴到墙上 就像我在 Facebook 网页上所做的那样 我尝试过这两种方式 但都不是我想要的 http facebook stackoverflow com questions 5168145 android post pict
  • 如何通过Flickrj Api访问私人照片?

    我正在通过 Flickr API 进行经过身份验证的调用来访问照片 但我只得到我的公开照片 而没有任何私人照片 下面给出的是我正在使用的代码 Flickr f RequestContext requestContext String fro
  • 如何防止回到之前的活动?

    当按下手机上的 返回 按钮时 我想防止特定活动返回到上一个活动 具体来说 我有登录和注册屏幕 两者都启动一个名为的新活动HomeScreen当成功登录 注册时 主屏幕启动后 我想阻止用户通过按 返回 键返回登录或注册屏幕 我尝试使用Inte
  • iPhone设备上的相册路径是什么?

    我试图将 PNG 文件保存到 iPhone 设备上的相册文件夹中 扩展名为 png 以便保持透明度 我的问题是 UIImageWriteToSavedPhotosAlbum 函数使用的相册路径是什么 我正在使用数据写入文件方法 Thanks
  • 如何将我的应用程序添加到 Android“共享照片”选项? [复制]

    这个问题在这里已经有答案了 可能的重复 Android 通过对话框共享 例如 当您点击分享照片时 它会为您提供一个可通过 Instagram 消息 Gmail 等 分享的选项列表 我希望我的应用程序在安装到设备后出现在这些 共享 选项下 我
  • 防止后退按钮关闭对话框

    我试图阻止在 Android 中按后退按钮时关闭 AlertDialog 框 我遵循了两种流行的方法在这个线程中 https stackoverflow com questions 4779954 disable back button i
  • Android:如何模拟后退按钮

    目前我的活动允许用户填写某些数据 包括微调器等 当用户单击下一个系统时 系统导航到另一个屏幕 当我按下手机上的后退按钮时 之前加载和填充的数据即可使用 我的要求要求我在用户界面中提供一个软 后退 按钮 当用户单击它时 它会导航回上一屏幕 但
  • 添加一个动作来向后滑动 swift 4

    我已将其中一个视图控制器的导航栏中的后退按钮更改为自定义按钮 并为该按钮提供了按下时要执行的操作 self navigationItem hidesBackButton true let backButton UIBarButtonItem
  • 导出的 Google+ 照片,如何将 JSON 数据转换为 EXIF?

    最近使用 Google Takeout 从 Google 下载了 60GB 以上的照片和视频 这会产生大量文件 但有价值的元数据 包括照片的原始日期和位置 通常存储在每个相册的单独的metadata json 文件中 而不是存储在 EXIF
  • Javascript/jQuery 仅在浏览器后退/前进按钮单击时检测哈希更改

    是否可以仅在浏览器历史记录更改 即 后退 或 前进 按钮 时检测哈希更改 我已经看到了 onBeforeUnload 事件 但该事件不会在哈希更改时触发 因为窗口未卸载 hashchange 事件显然会在哈希值发生变化时触发 有什么解决办法
  • 滑动返回手势颤动

    如何在颤振中实现从左侧滑动返回的手势 不确定它是否已经在 iOS 上自动实现 但我也希望在 Android 上也能实现 因为事情正在变得基于手势 Use CupertinoPageRoute使其在 Android 上运行 import pa
  • 是否可以通过 UIActivityViewController 共享图像并保留 exif 数据?

    我有一个应用程序 可以通过以下方式将图像保存到相机胶卷中的自定义相册中 library writeImageToSavedPhotosAlbum newTestImage CGImage metadata metadata completi

随机推荐