博舍

CVPR 之 老照片修复 老照片ai修复 github

CVPR 之 老照片修复

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

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

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

 

1 CVPR会议

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

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

   

 

 2 Oral论文

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

  这篇《BringingOldPhotosBacktoLife》属于Oral论文,含金量可见一斑,论文链接:https://arxiv.org/pdf/2004.09484.pdf

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

     

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

 

3 实践步骤3.1 测试环境

  Win64中使用PoweShell终端,已安装Python3.9.9,安装过程中勾选下图pip选项:

    

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

3.2 源码和模型3.2.1 源码   

  如有git可用gitclone命令,如下

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

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

    

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

3.2.2 模型

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

cdFace_Detection/wgethttp://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2bzip2-dshape_predictor_68_face_landmarks.dat.bz2cd../

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

cdFace_Enhancement/wgethttps://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/face_checkpoints.zipunzipface_checkpoints.zipcd../

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

cdGlobal/wgethttps://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/global_checkpoints.zipunzipglobal_checkpoints.zipcd../

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

3.2.3 sync_batchnorm

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

cdFace_Enhancement/models/networks/gitclonehttps://github.com/vacancy/Synchronized-BatchNorm-PyTorchcp-rfSynchronized-BatchNorm-PyTorch/sync_batchnorm.cd../../../

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

cdGlobal/detection_modelsgitclonehttps://github.com/vacancy/Synchronized-BatchNorm-PyTorch#noneeddoinggitcloneonceagaincp-rfSynchronized-BatchNorm-PyTorch/sync_batchnorm.cd../../3.3  依赖库3.3.1 第三方库

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

pipinstall-rrequirements.txt

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

torchtorchvisiondlibscikit-imageeasydictPyYAMLdominate>=2.3.1dilltensorboardXscipyopencv-pythoneinopsPySimpleGUI3.3.2 Torch和Torchvision

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

    

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

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

pipinstalltorch-1.8.1+cpu-cp39-cp39-win_amd64.whlpipinstalltorchvision-0.9.1+cpu-cp39-cp39-win_amd64.whl

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

importtorchprint(torch.__version__)

  查看到的版本是torch1.8.1+cpu和torchvision0.9.1+cpu

3.3.3 dlib

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

pipinstalldlib-19.22.99-cp39-cp39-win_amd64.whl3.4 执行效果

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

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

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

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

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

      

    

 4 其它方法

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

    

 

 

参考资料

   BringingOldPhotosBacktoLife

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

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇