CVPR 之 老照片修復


    周末閑來無事,隨手整理電腦里的照片,望着一張物是人非的老相片,勾起了斑駁的回憶。忽爾轉念一想,何不 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.bz2
bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
cd ../

    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.zip
unzip face_checkpoints.zip
cd ../  

    3)  下載 global_checkpoints 模型,解壓后置於 Global 目錄下

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

    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-PyTorch
cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
cd ../../../

    相同的 sync_batchnorm 文件夾,再拷貝到 Global/detection_models/ 目錄下

cd Global/detection_models
git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch  # no need doing git clone once again
cp -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 稍稍復雜,可放在后面單獨安裝

torch torchvision
dlib
scikit-image
easydict
PyYAML
dominate>=2.3.1
dill
tensorboardX
scipy
opencv-python
einops
PySimpleGUI

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.whl
pip install  torchvision-0.9.1+cpu-cp39-cp39-win_amd64.whl

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

import torch
print(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

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM