老照片修复

老照片修复

困扰

由于工作需要,经常需要找些老电影的剧照,并做些清晰度的调整。目前在用美图软件,一张张的修复,效率很低下。偶尔思考,能不能找个批量的软件给批量的处理下。

由于对代码略知一二,查下全球最大同性交友网站(github),找到了一个 老照片修复的代码 ,于是做了如下尝试。

解决方案

  1. 在github中找到老照片修复的代码(是的,这是微软的一个开源项目)
  2. 查看README,竟然有在线尝鲜地址,抱着试一试的态度打开软件,竟然真的可以用(需科学上网)。 在线尝鲜地址
  3. 上传照片修复,效果如下图:

老照片修复_第1张图片

  1. 看效果图,还是美图的修复功能略胜一筹

若只图个乐,到此可以结束了,但要批量处理自己的图片,就不得不下载并运行代码了。


代码安装调试

  1. 环境准备

    conda create --name py36 python=3.6
    
    source activate py36
    
    
  2. 代码准备

    git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life.git
    
    cd Bringing-Old-Photos-Back-to-Life
    pip install -r requirements.txt
    
  3. 库、模型依赖
    a. 下载PyTorch库

     ```bash
     cd Face_Enhancement/models/networks/
     git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
     cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
     cd ../../../
     
     mkdir Global/detection_models
     cd Global/detection_models
     git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch
     cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm .
     cd ../../
     ```
    

    b. 下载landmark 检测预训练模型

     ```bash
     wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2
     bzip2 -d shape_predictor_68_face_landmarks.dat.bz2
     cd ../
     ```
    

    c. 从Azure Blob下载训练模型

     ```bash
     cd Face_Enhancement/
     wget https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Face_Enhancement/checkpoints.zip
     unzip checkpoints.zip
     cd ../
     cd Global/
     wget https://facevc.blob.core.windows.net/zhanbo/old_photo/pretrain/Global/checkpoints.zip
     unzip checkpoints.zip
     cd ..
     ```
    
  4. 运行测试代码

    cd test/Bringing-Old-Photos-Back-to-Life/
    # CPU版本
    # --GPU -1 指使用CPU; --HR 高分辨率
    python run.py --input_folder test_images/old_w_scratch --output_folder output --GPU -1 --HR
    
    
  5. 测试自己的图片

    # 创建测试目录
    mkdir my_test_images
    mkdir my_output
    # 放入带转换的图片
    mv ~/1.png ~/2.png ~/3.png my_test_images/
    # 转换
    python run.py --input_folder my_test_images --output_folder my_output --GPU -1 --HR
    

补充

除了画质的修复,也支持裂痕的抹除,如下图:

老照片修复_第2张图片

Q&A

  1. 下载、安装cmake (https://cmake.org/download/)

    # 官网下载cmake.dmg
    # 安装后执行
    /Applications/CMake.app/Contents/bin/cmake-gui --install=/usr/local/bin
    
    # 或
    brew install cmake
    

总结

  1. 如需批量修复,且对修复效果要求不高可使用代码。
  2. 如需精修,还得借助专业的修图工具。

你可能感兴趣的:(Python,github,pytorch,深度学习)