Python开源项目之人工智能老照片修复算法学习

文章目录

    • 前言
    • 项目环境搭建
      • conda虚拟环境创建
      • 激活环境
      • Pytorch安装
      • Synchronized-BatchNorm-PyTorch repository安装
      • Global目录Synchronized-BatchNorm-PyTorch项目部署
      • 检测预处理模型下载
      • 下载脸部增强模型文件
      • 下载依赖
      • 完整部署后项目结构
    • 项目使用
    • 验证一下
    • 总结
      • 关于Python技术储备
        • 一、Python所有方向的学习路线
        • 二、Python基础学习视频
        • 三、精品Python学习书籍
        • 四、Python工具包+项目源码合集
        • ①Python工具包
        • ②Python实战案例
        • ③Python小游戏源码
        • 五、面试资料
        • 六、Python兼职渠道

前言

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

项目的Github地址:项目地址

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

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

项目环境搭建

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

conda虚拟环境创建

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

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

conda create -n bobl python=3.6

激活环境

conda activate bobl

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

Pytorch安装

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

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

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

Synchronized-BatchNorm-PyTorch repository安装

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

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

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

官方说明里面也需要把Synchronized-BatchNorm-PyTorch项目部署到Global里面。

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

检测预处理模型下载

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

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

下载脸部增强模型文件

官方说明:

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

下载依赖

注意,我这里去掉了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

完整部署后项目结构

完整的结构如下图:

项目使用

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

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

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

(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>

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

验证一下

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

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

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

总结

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

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!

因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年12月11日
下一篇 2023年12月12日

相关推荐