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

news2024/11/17 2:55:56

文章目录

    • 前言
    • 项目环境搭建
      • 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%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1247463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【matlab程序】南海土台风画法

【matlab程序】南海土台风画法 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Python海洋专题四】之水深地图图像修饰 【Python海洋专…

应用场景丨社区燃气管网监测系统建设

燃气作为现代社会的重要能源,燃气被广泛应用于居民生活、工业生产、商业服务等领域。然而,燃气泄漏事故时有发生,不仅给人们的生命财产安全带来严重威胁,也给燃气行业的发展带来不良影响。因此,对于燃气管道的监测和管…

你再不学Git就来不及了!!!

其他系列文章导航 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 版本控制 什么是版本控制 为什么要版本控制 一、认识 Git 1.1Git 简史 1.2Git 与其他版本管理系统的主要区别 1.3Git 的三种状态 二、Git 使用快速入门 2.1获…

conan 入门(三十三):requirements()指定header的可见性(transitive_headers)

package_type 从conan 2.x开始conafile.py增加了一个字段package_type,用于定义当前package的类型, 参见 package-type 如果我们在写conanfile.py时不指定这个成员,则它默认为library Requirement traits 不同的包类型定义默认定义不同的…

手把手webpack搭建前端架子

这里以react为例> (一)初始化package.json package name: 你的项目名字叫啥 version: 版本号 description: 对项目的描述 entry point: 项目的入口文件(一般你要用那…

web静态网页设计与制作-基于HTML+CSS+JS实现旅游摄影网站

web静态网页设计与制作,基于HTMLCSSJS实现精美的旅游摄影网站,拥有极简的设计风格,丰富的交互动效,让人眼前一亮,享受视觉上的体验。 我使用了基本的HTML结构来构建网页,并使用CSS样式进行美化设计&#xf…

在 Ubuntu 上安装最新版的 Calibre

目录 前言 方法1:从 Ubuntu 的仓库安装 Calibre 卸载 Calibre 方法2:获取最新版本的 Calibre 卸载 Calibre 结语 前言 Calibre 是一款自由开源的电子书软件。下面介绍如何在 Ubuntu Linux 上安装它。 作为电子书管理的瑞士军刀,Calibre …

软件开发的高效神器,程序员爱不释手

目录 一、低代码助力开发 二、低代码核心功能 1.业务建模: 2.表单建模: 3.页面建模: 4.流程建模: 5.报表建模: 6.门户建模: 7.大屏建模: 8.移动建模: 三、低代码解放程序员的双手 在…

POE交换机——电源解决方案-升压控制器\降压控制器\中高压降压转换器

PoE是一种有线以太网供电技术,使用于数据传输的网线同时具备直流供电的能力,PoE供电具有可靠、连接简捷、标准统一的优势。越来越多的工业物联网设备开始采用PoE供电, 如IP电话、网络视频监控以及无线以太网设备等。 PoE交换机是一种用于提供…

VMware Workstation 17 虚拟机自启动失效 解决脚本

VMware Workstation17新增加了虚拟机自启配置 但是很奇怪在我的一台计算机上能够自启,在另一台计算机上就失效 编写脚本 以命令方式完成虚拟机开机自启 #虚拟机自启.batif "%1""hide" goto CmdBegin start mshta vbscript:createobject("w…

安卓手机SD卡不小心删除了怎么办?几步轻松恢复数据!

随着科技的不断发展,安卓手机已经成为了我们生活中不可或缺的一部分。然而,在使用安卓手机的过程中,我们有时会不小心将重要的文件或者照片删除掉,这无疑会给我们的生活带来不便。那么,当安卓手机的SD卡不小心被删除了…

Ubuntu 22.04.3编译AOSP13刷机

文章目录 设备信息下载AOSP并切换分支获取设备驱动编译系统编译遇到的问题Cannot allocate memoryUbuntu设置USB调试刷机参考链接 设备信息 手机:Pixel 4XL 下载AOSP并切换分支 在清华大学开源软件镜像站下载初始化包aosp-latest.tar。 解压缩,切换到…

【GCC】1:chatgpt:NetworkControllerInterface、GoogCcNetworkController

代码基于 mediasoup-sfu-cpp 中的m77版本。使用chatgpt辅助学习。网络状态估计器:开发中 D:\XTRANS\soup\mediasoup-sfu-cpp\deps\libwebrtc\libwebrtc\api\transport\network_control.h NetworkControllerInterface 网络控制器 此类,使用 网络状态和 通信状态 以 估计网络参…

快看!!电子杂志这样制作!几分钟的事

今天手把手教你怎么轻松制作电子杂志,不费力又不耗时。还能让你的杂志跟专业设计师们排排的相提并论,一起来学习吧! 首先,你需要准备一些图片、文字素材,以及一款适合你的电子杂志制作软件。目前市面上有很多电子杂志…

面试:ShardingSphere问题

文章目录 什么是ShardingSphere,它的主要功能是什么?ShardingSphere的核心模块有哪些?他们是如何工作的?ShardingSphere 的读写分离是如何实现的?如何配置ShardingSphere的数据分片策略?ShardingSphere支持…

Android Studio 显示build variants工具栏

工具栏: 如下图所示 依次点击View-->ToolWindows-->Build Variants。 在此记个笔记

MAC M系列芯片安装 openJDK17

文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下…

Odoo:行业领先的免费开源生产制造管理系统

产品生命周期管理 用 Odoo 产品数据管理解决方案加速产品开发 研究、开发和设计新产品或者重新设计现有产品是所有制造企业的活力之源,但很多企业的设计部门和工程部门却完全脱离 ERP 系统。这导致工程师需要耗费大量时间来回答企业中其他部门就产品状态、修改级别…

虚拟机VMware下CentOS7.9对磁盘扩容

首先是在VMware虚拟下对机器进行关机,然后扩容后启动机器(操作简单,忽略,网上很多) 开始增加磁盘空间 查看磁盘空间 发现此时磁盘空间仍然没变化 df -lh 查看当前磁盘分区信息 fdisk -l 对新加磁盘空间进行分区操…

优秀的5款字体设计软件推荐

字体设计作为设计中的一个重要模块,如果字体软件选择正确,将给字体设计工作带来极大的便利,易于使用的字体设计软件,可以创造出优秀的排版设计。在日常工作中,设计师可能会在字体网站上下载字体,然后安装字…