Python开源项目DifFace——人脸重建(Face Restoration),模糊清晰、划痕修复及黑白上色的实践

无论是自己、家人或是朋友、客户的照片,免不了有些是黑白的、被污损的、模糊的,总想着修复一下。作为一个程序员 或者 程序员的家属,当然都有责任满足他们的需求、实现他们的想法。除了这个,学习了本文的成果,或许你还可以用来赚点小钱。

Python Anaconda 的安装、配置等等请参阅:
https://blog.csdn.net/beijinghorn/article/details/134334021icon-default.png?t=N7T8https://blog.csdn.net/beijinghorn/article/details/134334021

7 DifFace

7.1 论文Paper

DifFace: Blind Face Restoration with Diffused Error Contraction
https://arxiv.org/abs/2212.06512
Authors:
Zongsheng Yue,  https://zsyoaoa.github.io/
Chen Change Loy https://www.mmlab-ntu.com/person/ccloy/

⭐ If DifFace is helpful to your images or projects, please help star this repo. Thanks! 🤗

7.2 Update


2022.12.19: Add Colab demo google colab logo.
2022.12.17: Add the Hugging Face.
2022.12.13: Create this repo.

7.3 Applications

7.3.1 旧照片修复 Old Photo Enhancement
 


7.3.2 人脸重建 Face Restoration
   


7.4 依赖项Requirements

A suitable conda environment named DifFace can be created and activated with:

conda env create -f environment.yaml
conda activate DifFace

7.5 运行指令 Inference

7.5.1 Face image restoration (cropped and aligned)


python inference_difface.py --aligned --in_path [image folder/image path] --out_path [result folder] --gpu_id [gpu index]

7.5.2 Whole image enhancement


python inference_difface.py --in_path [image folder/image path] --out_path [result folder] --gpu_id [gpu index]

7.6 Training

7.6.1 Prepare data

Download the FFHQ dataset, and resize them into size 512x512.
https://github.com/NVlabs/ffhq-dataset

python datapipe/prepare/face/big2small_face.py --face_dir [Face folder(1024x1024)] --save_dir [Saving folder] --pch_size 512 

Extract the image path into 'datapipe/files_txt/ffhq512.txt'
python datapipe/prepare/face/split_train_val.py --face_dir [Face folder(512x512)] --save_dir [Saving folder] 

Making the testing dataset
python datapipe/prepare/face/make_testing_data.py --files_txt datapipe/files_txt/ffhq512.txt --save_dir [Saving folder]  

7.6.2 Train diffusion model


CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --standalone --nproc_per_node=4 --nnodes=1 main_diffusion.py --cfg_path configs/training/diffsuion_ffhq512.yaml --save_dir [Logging Folder]  

7.6.3 Train diffused estimator (SwinIR)


CUDA_VISIBLE_DEVICES=0,1,2,3 torchrun --standalone --nproc_per_node=4 --nnodes=1 main_sr.py --cfg_path configs/training/swinir_ffhq512.yaml --save_dir [Logging Folder]  

7.7 权利 License


This project is licensed under NTU S-Lab License 1.0. Redistribution and use should follow this license.
https://github.com/sczhou/CodeFormer/blob/master/LICENSE

7.8 相关知识 Acknowledgement


This project is based on Improved Diffusion Model. Some codes are brought from BasicSR, YOLOv5-face, and FaceXLib. We also adopt Real-ESRGAN to support background image enhancement. Thanks for their awesome works.
该项目基于改进的扩散模型。一些代码来自BasicSR、YOLOv5 face和FaceXLib。我们还采用Real ESRGAN来支持背景图像增强。感谢他们出色的作品。
https://github.com/openai/improved-diffusion
https://github.com/XPixelGroup/BasicSR
https://github.com/deepcam-cn/yolov5-face
https://github.com/xinntao/facexlib
https://github.com/xinntao/Real-ESRGAN

7.9 联系作者 Contact


If you have any questions, please feel free to contact me via zsyzam@gmail.com.

7.10 点评


论文。
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决 requests.post 数据字段编码问题的方法

问题背景 在进行网络请求时,我们通常会使用requests库的post方法来发送POST请求。然而,当我们尝试发送包含特殊字符(如中文字符)的数据时,可能会遇到数据字段被编码的问题。这可能会导致请求失败或者服务器无法正确解…

AXglyph——轻量级科研绘图软件

今天博主将推荐一款简约却不简单的制图软件——axglyph。 AxGlyph是一款十分优秀的矢量绘图软件,官方版界面简洁,功能强大,支持自由矢量画笔、混合矢量路径和矢量漫水填充。支持自由定义的磁力点阵,支持插图编号及引用管理&#…

SecureCRT 9.2.4最新

SecureCRT是一款功能强大的终端仿真软件,它通过提供安全的、高效的会话,帮助用户在远程设备上完成各种任务。SecureCRT具有出色的性能和可靠性,能够处理复杂的网络环境,提供高效的远程访问和管理。 SecureCRT的主要特点包括&…

荧光量子效率积分球的优势是什么

荧光量子效率积分球是一种测量设备,可以用于测量荧光材料在特定波长下的量子效率。它由一个具有高朗伯特性的漫反射PTFE材料制成,具有高达99%的反射率和朗伯特性。积分球有三个开口,分别为光入射口、样品口和光出射口。光入射口设置有一准直镜…

Java_static 继承

static static修饰成员变量 static修饰成员变量的应用场景 static修饰成员方法 static修饰成员方法的应用场景 static的注意事项 static的应用知识:代码块 static的应用知识:单例设计模式 饿汉式单例模式 懒汉式单例模式 面向对象三大特征之二:继承 什么是继承 继承的好处 继…

【用户实践】openGauss5.0在某省医保局实时数仓应用

一、项目背景 采用数据同步软件将各系统的数据库下的数据实时同步到openGauss数据库中;建立实时数仓;可以在实时数仓自行查询、分析、统计数据及报表;同时横向集成公共服务区和核心业务区生产库数据、集成其他委办局数据。纵向集成市级的生产…

ubuntu设置脚本开机自启动

rc-local.service flexmitd1:~$ cd /lib/systemd/system/ flexmitd1:/lib/systemd/system$ ls |grep rc-local.service rc-local.service rc-local.service.d flexmitd1:/lib/systemd/system$ pwd /lib/systemd/system flexmitd1:/lib/systemd/system$确保有rc-local.service文…

nginx快速部署一个网站服务 + 多域名 + 多端口

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

WPF下实现拖动任意地方都可以拖动窗口

首先在xaml中添加事件 <Window PreviewMouseLeftButtonDown"Window_PreviewMouseLeftButtonDown"PreviewMouseMove"Window_PreviewMouseMove"PreviewMouseLeftButtonUp"Window_PreviewMouseLeftButtonUp"/>然后脚本输入 Point _pressedP…

建筑楼宇智慧能源管理系统,轻松解决能源管理问题

随着科技的进步与人们节能减排意识的不断增强&#xff0c;建筑楼宇是当下节能减排的重要工具。通过能源管理平台解决能效管理、降低用能成本、一体化管控、精细化管理和服务提供有力支撑。 建筑楼宇智慧能源管理系统是一种利用先进手段&#xff0c;采用微服务架构&#xff0c;…

「Verilog学习笔记」优先编码器Ⅰ

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 分析编码器的功能表&#xff1a; 当使能El1时&#xff0c;编码器工作&#xff1a;而当E10时&#xff0c;禁止编码器工作&#xff0c;此时不论8个输入端为何种状态&…

基于单片机的智能考勤机(论文+源码)

1.系统设计 本课题为基于单片机的智能考勤机&#xff0c;其整个系统由STC89C52单片机&#xff0c;RC522 RFID模块&#xff0c;LCD液晶&#xff0c;按键等构成&#xff0c;在功能上&#xff0c;本系统智能考勤机主要应用在校园生活中&#xff0c;用户可以通过按键注销/注销相应的…

requests.post 数据字段编码问题的方法

今夜&#xff0c;我要在代码的海洋中遨游&#xff0c;捕捉那只顽皮的bug。作为一名程序员&#xff0c;不断解决问题是日常的工作。而今天我要解决的是 requests.post 数据字段编码问题。在编程中&#xff0c;数据的编码问题常常让人头疼&#xff0c;它可能会导致程序无法正常运…

工业品电商,新的隐形冠军藏不住了?

【潮汐商业评论/原创】 “时代真的变了。”自打从淘宝买了一批配件后&#xff0c;工厂老板李瓦就经常感慨。 李瓦经营着一家专门生产机器零部件的工厂&#xff0c;日常经常要采购传送带、螺丝、螺母等材料&#xff0c;过去他主要通过线下的方式进货。但最近朋友圈里一段淘宝工…

MySQL函数部分

资料来源:菜鸟教程 #初次知晓_2023-11-15 #中职在读 MySQL_函数部分 说明字符串函数数字函数日期函数高级函数 说明 本文依照 菜鸟教程 及课堂上课内容创作。 作者水平有限&#xff0c;如有错误请提出 若本文侵权请联系我删除 笔记下载&#xff1a; 百度云盘链接&#xff1a;…

CentOS7.9安装docker

在CentOS 7.9上安装Docker可以通过官方的Docker安装脚本或者使用系统包管理工具来完成 本次使用系统包管理工具 打开终端&#xff0c;以root权限登录系统。 安装所需的依赖&#xff1a; yum install -y yum-utils device-mapper-persistent-data lvm2 添加Docker的官方仓库…

数据较大时的输入输出

先来看问题 假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单&#xff0c;要求输出每门课的选课学生名单。 输入格式: 输入的第一行是两个正整数&#xff1a;N&#xff08;≤40000&#xff09;&#xff0c;为全校学生总数&#xff1b;K&#xff08;≤2500…

WPF程序给按钮增加不同状态的图片

首先我们在资源里添加几个图片&#xff0c;Up&#xff0c;Over和Down状态。 然后我们创建一个Style。默认我们的背景设置成Up 然后在Triggers里添加代码&#xff0c;当Property&#xff1a;IsMouseOver为True的时候更换成Over&#xff1b;当Property&#xff1a;IsPressed为Tr…

鸿蒙原生应用开发-关于页面接口router返回问题与解决思路

一、模块导入 import router from ohos.router 提供通过不同的url访问不同的页面&#xff0c;包括跳转到应用内的指定页面、用应用内的某个页面替换当前页面、返回上一页面或指定的页面等。 二、接口说明 router.pushUrl()&#xff1a;跳转到应用内的指定页面。 router.replace…

使用Zoho Projects软件进行高效项目管理的方法

本文将通过Zoho Projects项目管理软件的功能&#xff0c;结合一般情况下使用Zoho Projects进行项目管理的过程&#xff0c;为大家展示如何充分利用Zoho Projects项目管理软件进行项目管理。我们将详细介绍任务看板、文档管理、甘特图与报表、里程碑、issue等功能&#xff0c;基…