开发者

Python 人工智能老照片修复算法学习

开发者 https://www.devze.com 2022-12-05 10:17 出处:网络 作者: 网络整理
目录前言项目环境搭建condhttp://www.cppcns.coma虚拟环境创建 激活环境Pytorch安装Synchronized-BatchNorm-PyTorch repository安装Global目录Synchronized-Ba编程客栈tchNorm-PyTorch项目部署检测预处理模型下
目录
  • 前言
  • 项目环境搭建
    • condhttp://www.cppcns.coma虚拟环境创建
    •  激活环境
    • Pytorch安装
    • Synchronized-BatchNorm-PyTorch repository安装
    • Global目录Synchronized-Ba编程客栈tchNorm-PyTorch项目部署
    • 检测预处理模型下载
    • 下载脸部增强模型文件
    • 下载依赖
    • 完整部署后项目结构
  • 项目使用
    • 验证一下
      • 总结

        前言

        老旧或者破损的照片如何修复呢?本文主要分享一个博主使用后非常不错的照片恢复开源项目:Bringing-Old-Photos-Back-to-Life。

        项目的github地址:项目地址

        我们先看看官方给出的效果图:

        Python 人工智能老照片修复算法学习

        就算现在看到这张图,我仍然觉着非常惊艳。下面我会把项目环境安装部署,到最后使用的效果做一个展示。

        项目环境搭建

        该项目的环境搭建有点复杂,我一点点说。

        conda虚拟环境创建

        在项目README.md文件中要求python版本在3.6以上。

        Python 人工智能老照片修复算法学习

        我们用anaconda创建一个虚拟环境bobl

        conda create -n bobl python=3.6

         激活环境

        conda activate bobl

        在Pycharm项目中配置interpreter,设置到conda目录envs下bobl环境的python。

        Python 人工智能老照片修复算法学习

        Pytorch安装

        虽然项目官方给出的requirements.txt包含pytorch,为了保险起见,还是去Pytorch官方网站上安装一下。Pytorch官方地址:PyTorch

        Python 人工智能老照片修复算法学习

        因为我本机没插显卡,安装的cpu版本。

        选择对应的命令安装Pytorch库。

        Synchronized-BatchNorm-PyTorch repository安装

         官方给出的安装说明里面需要部署Synchronized-BatchNorm-PyTorch项目进来。

        Python 人工智能老照片修复算法学习

        这里注意一点,需要把Synchronized-BatchNorm-PyTorch项目中的sync_batchnorm拷贝到上级目录。完整的目录接口参考下图:

        Python 人工智能老照片修复算法学习

        Global目录Synchronized-BatchNorm-PBDipSRUjQsyTorch项目部署

        官方说明里面也需要把Synchronized-BatchNorm-Py编程客栈Torch项目部署到Global里面。

        Python 人工智能老照片修复算法学习

        也是一样要把sync_batchnorm拷贝到上级目录。结构如下:

        Python 人工智能老照片修复算法学习

        检测预处理模型下载

        需要用到一个检测预处理模型,主要是用来识别照片中的人脸部分的。

        Python 人工智能老照片修复算法学习

         注意解压后的位置,结构如下:

        Python 人工智能老照片修复算法学习

        下载脸部增强模型文件

        官方说明:

        Python 人工智能老照片修复算法学习

        下载两个模型zip解压到对应目录下,结构如下:

        Python 人工智能老照片修复算法学习

        下载依赖

        注意,我这里去掉了pytorch的依赖安装,已经已经装过了。

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

        安装命令:

        pip install -r requirements.txt -i https://pypi.douban.com/simple

        完整部署后项目结构

        完整的结构如下图:

        Python 人工智能老照片修复算法学习

        项目使用

        官方给到的图,我就不用了,不能说明问题。我自己准备了两种图,一张是一张人脸的,一张是多张人脸的。

        Python 人工智能老照片修复算法学习

         

        Python 人工智能老照片修复算法学习

        先按照官方给出的命令跑跑看

        Python 人工智能老照片修复算法学习

        我们直接使用最下面这个命令,包含划痕去除与高度还原。看一下执行情况。

        (bobl) D:\spyder\Bringing-Old-Photos-Back-to-Life>python run.py --input_folder E:\csdn\老照片 --output_folder result1/ --GPU -1 --with_scratch --HR
        Running Stage 1: Overall restoration
        initializing the dataloader
        model weights loaded
        directory of testing image: E:\csdn\老照片
        processing 1.jpg
        processing 2.jpg
        Mapping: You are using multi-scale patch attention, conv combine + mask input
        Now you are processing 1.png
        C:\ProgramData\Anaconda3\envs\bobl\lib\site-packages\torch\nn\functional.py:3635: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4
        .0. Please specify align_corners=True if the old behavior is desired. See the documentation of nn.Upsample for details.
          "See the documentation of nn.Upsample for details.".format(mode)
        Now you are processing 2.png
        Finish Stage 1 ...
         
         
        Running Stage 2: Face Detection
        12
        1
        Finish Stage 2 ...
         
         
        Running Stage 3: Face Enhancement
        dataset [FaceTestDataset] of size 13 was created
        The size of the latent vector size is [16,16]
        Network [SPADEGenerator] was created. Total number of parameters: 92.1 million. To see the architecture, do print(network).
        hi :)
        Finish Stage 3 ...
         
         
        Running Stage 4: Blending
        Finish Stage 4 ...
         
         
        All the processing is done. Please check the results.
         
        (bobl) D:\spyder\Bringing-Old-Photos-Back-to-Life>

        输出的文件不但有最终的结果,也有检测出来的每个脸的处理前后效果。结果结构如下:

        Python 人工智能老照片修复算法学习

        验证一下

        1、多人照片最终的效果验证,下面上图是输出结果图,下图是原始图。可以看出有些划痕已经消失,但是还是有一些,不过整体的任务更立体鲜明了。

        Python 人工智能老照片修复算法学习

        Python 人工智能老照片修复算法学习

        2、单人照片最终效果验证,下面上图为结果图,下图为原始图。单人就很明显了,不但划痕都消除了,人也更清晰立体,效果是真不错。

        Python 人工智能老照片修复算法学习

        Python 人工智能老照片修复算法学习

        3、模型也会把多人图中的每张脸都识别出来,并且跑出结果,可以对比一下看看,细节还是修复的很好的。

        Python 人工智能老照片修复算法学习

         

        Python 人工智能老照片修复算法学习

        Python 人工智能老照片修复算法学习

        Python 人工智能老照片修复算法学习

        总结

        官方还给出了其他的命令,就不一编程客栈一验证了。整体的效果是非常好的,只是在多人图的时候还有些瑕疵,瑕不掩瑜。

        到此这篇关于Python 人工智能老照片修复算法学习的文章就介绍到这了,更多相关Python人工智能内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

        0

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        关注公众号