资讯专栏INFORMATION COLUMN

CVPR 之 老照片修复

Yi_Zhi_Yu / 3216人阅读

摘要:周末闲来无事,随手整理电脑里的照片,望着一张物是人非的老相片,勾起了斑驳的回忆。忽尔转念一想,何不下,但有些大且不免费自己懒得装,于是,转向免费的图像复原软件。参考资料照片修复使用原文链接专注于机器视觉编程

    周末闲来无事,随手整理电脑里的照片,望着一张物是人非的老相片,勾起了斑驳的回忆。忽尔转念一想,何不 PS 下,但 Photoshop 有些大且不免费自己懒得装,于是,转向免费的图像复原软件。

    网上搜来找去,却一直没寻到合适的,最后查到 CVPR 2020 的一篇 Oral 论文,看到有的博客已经详细介绍过了,恰好作者也开放了源码,于是,一时兴起,拍脑门决定,就拿这个来复原老相片吧。

    结果,忙活了半个晚上 (主要是用手机热点,时间浪费在了下载速度上) 加一个上午 (踩了很多第三方库安装、python 向低版本重装的坑),终于成功复原图像,遂写下此博文,以免后来者重复踩坑 ... ...

 

1  CVPR 会议

    CVPR 全称 IEEE Conference on Computer Vsion and Pattern Recongniton,是计算机视觉的三大顶会之一 (另两个是 ICCV 和 ECCV),由 IEEE 每年举办一次

    2021年,按照 Google Scholar Metrics 排名,CVPR 已经挤掉了《柳叶刀》,成为全球影响力排名第四的顶级期刊会议,排在前面的有 《Nature》和《Science》

     

 

 2  Oral 论文

    2020年的 CVPR 会议中,有效投稿 6656 篇论文,1470 篇被录用,接收率约 22%,其中 335 篇选中 Oral,比率约 5%

    这篇《Bringing Old Photos Back to Life》属于 Oral 论文,含金量可见一斑,论文链接:https://arxiv.org/pdf/2004.09484.pdf

    论文的内容不再赘述,请读者自行阅读,摘录论文实现的效果图,如下:

       

    源码作者已经开放,GitHub 链接:https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life

 

3  实践步骤

3.1  测试环境

    Win 64 中使用 PoweShell 终端,已安装 Python 3.9.9,安装过程中勾选下图 pip 选项:

      

    可在 PowerShell 中输入 py --version,查看安装的 Python 版本 

3.2  源码和模型

3.2.1  源码    

    如有 git 可用 git clone 命令,如下

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

    也可直接下载链接中的 Source code:https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases

      

    如果下载速度较慢的话,可先点击下载,然后复制链接到迅雷下载,能显著提高下载速度

3.2.2  模型

    1)  下载 face_landmark 预训练模型,解压后放在 Face_Detection 目录下

cd Face_Detection/wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2bzip2 -d shape_predictor_68_face_landmarks.dat.bz2cd ../

    2)  下载 face_checkpoints 模型,解压后置于 Face_Enhancement 目录下

cd Face_Enhancement/wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/face_checkpoints.zipunzip face_checkpoints.zipcd ../  

    3)  下载 global_checkpoints 模型,解压后置于 Global 目录下

cd Global/wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/global_checkpoints.zipunzip global_checkpoints.zipcd ../

    2) 和 3) 也可以通过 3.2.1 中的链接下载,解压后分别置于对应目录中

3.2.3  sync_batchnorm

    下载 Synchronized-BatchNorm-PyTorch,将子文件夹 sync_batchnorm,拷贝到 Face_Enhancement/models/networks/ 目录下

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

    相同的 sync_batchnorm 文件夹,再拷贝到 Global/detection_models/ 目录下

cd Global/detection_modelsgit clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch  # no need doing git clone once againcp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .cd ../../ 

3.3  依赖库

3.3.1  第三方库

    可直接使用 pip 和 requirements.txt,一键下载全部依赖库

pip install -r requirements.txt

 requirements.txt 中的所有依赖库如下:其中,torch, torchvision 和 dlib 稍稍复杂,可放在后面多带带安装

torchtorchvisiondlibscikit-imageeasydictPyYAMLdominate>=2.3.1dilltensorboardXscipyopencv-pythoneinopsPySimpleGUI

3.3.2  Torch 和 Torchvision  

    Torch, Torchvision 和 Python,三者版本是有一定的对应关系,需要多带带安装,关系图参考:https://github.com/pytorch/vision

      

    第一种方法,用 pip install torch==1.8.1 和 pip install torchvision==0.9.2 进行安装,但在 PowerShell 中,有时会因网络不稳定导致安装不成功

    第二种方法,提前下载好对应的 .whl 版本,下载链接:https://download.pytorch.org/whl/torch_stable.html,然后,分别执行如下命令    

pip install  torch-1.8.1+cpu-cp39-cp39-win_amd64.whlpip install  torchvision-0.9.1+cpu-cp39-cp39-win_amd64.whl

    安装成功后,可用如下命令查看版本    

import torchprint(torch.__version__)

    查看到的版本是 torch 1.8.1+cpu 和 torchvision 0.9.1+cpu

3.3.3  dlib

    直接使用 pip install dib,安装并不成功,建议先下载 .whl 文件,再通过 pip 来安装,下载链接:https://github.com/sachadee/Dlib    

pip install dlib-19.22.99-cp39-cp39-win_amd64.whl

3.4  执行效果

    此处使用普通电脑测试,没有 GPU,所以 "--GPU" 设为 “-1”

    1)  对于带有划痕的照片,加选项 “--with_scratch” 

    2)  对于高分辨率的照片,加选项 "--HR"

py run.py --input_folder ./test_images/old/ --output_folder ./output/ --GPU -1

    翻拍的老相片,复原前后对比如下:尤其放大相片后,人脸的对比效果非常明显

        

     

 4  其它方法

    阅读一篇好的论文,显然比在网上搜索更加有效,从文末的效果对比可知,主流的图像复原方法有:DIP, CyleGAN, Sequential, Pix2Pix 和 Operation-wise Attention 等,也算是一个额外的收获吧。

      

 

参考资料

    Bringing Old Photos Back to Life

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

   

原文链接: http://www.cnblogs.com/xinxue/

专注于机器视觉、OpenCV、C++ 编程

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124122.html

相关文章

  • CVPR 2018:用GAN预测20年后你长什么样

    摘要:年后的你长什么样北京航空航天大学和密歇根州立大学的研究人员设计了一个系统,采用生成对抗网络,可以根据原始照片生成一个人年龄增长后的样子,甚至连发际线逐渐后移也能逼真地模拟。 20年后的你长什么样?北京航空航天大学和密歇根州立大学的研究人员设计了一个AI系统,采用生成对抗网络(GAN),可以根据原始照片生成一个人年龄增长后的样子,甚至连发际线逐渐后移也能逼真地模拟。论文发表在CVPR 2018...

    notebin 评论0 收藏0
  • Google GAN父 ICCV2017演讲:解读生成对抗网络的原理与应用

    摘要:但年在机器学习的较高级大会上,苹果团队的负责人宣布,公司已经允许自己的研发人员对外公布论文成果。苹果第一篇论文一经投放,便在年月日,斩获较佳论文。这项技术由的和开发,使用了生成对抗网络的机器学习方法。 GANs「对抗生成网络之父」Ian Goodfellow 在 ICCV 2017 上的 tutorial 演讲是聊他的代表作生成对抗网络(GAN/Generative Adversarial ...

    plokmju88 评论0 收藏0
  • CVPR2016主旨演讲及焦点论文速览,深度学习垄断地位遭质疑

    摘要:本届会议共收到论文篇,创下历史记录有效篇。会议接收论文篇接收率。大会共有位主旨演讲人。同样,本届较佳学生论文斯坦福大学的,也是使用深度学习做图像识别。深度学习选择深度学习选择不过,也有人对此表示了担心。指出,这并不是做学术研究的方法。 2016年的计算机视觉领域国际顶尖会议 Computer Vision and Pattern Recognition conference(CVPR2016...

    Corwien 评论0 收藏0

发表评论

0条评论

Yi_Zhi_Yu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<