一键浪漫的回忆:微软开源的修复工具!!【送源码】
项目介绍
“Bringing-Old-Photos-Back-to-Life”是一款由微软开发的创新软件解决方案,它利用人工智能技术来修复和增强老旧照片的质量。这款工具可以解决老旧照片中常见的问题,如褪色、低分辨率以及物理损坏(如划痕和撕裂)。通过采用先进的图像处理技术,“Bringing-Old-Photos-Back-to-Life”能够显著改善这些照片的整体外观,使其看起来几乎就像是用现代设备拍摄的一样。


特点
它可以自动为黑白照片上色、修正颜色褪变、提高清晰度和锐利度,甚至修复轻微的物理损坏。修复后的结果不仅视觉上令人赏心悦目,而且高度逼真,这对于保存历史和个人记忆来说是一款不可或缺的工具。
开源成就
目前已经取得14.8K Star
主要功能
-
上色与颜色校正: 提升褪色或黑白照片的颜色。
-
清晰度与锐利度提升: 增加图片的分辨率和锐利度。
-
损害修复: 修复照片上的划痕、撕裂及其他物理损伤。
-
高分辨率支持: 能够处理高分辨率图片以实现细节修复。
安装使用指南
-
下载代码库:
-
首先,需要下载项目的代码库到本地环境。
git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life.git
-
-
安装同步批量归一化库:
-
进入
models/networks/目录,并下载同步批量归一化PyTorch库。cd Bringing-Old-Photos-Back-to-Life/Face_Enhancement/models/networks/ git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch.git cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm . -
同样操作需要在
Global/detection_models/目录下重复。cd ../../../ cd Global/detection_models/ git clone https://github.com/vacancy/Synchronized-BatchNorm-PyTorch.git cp -rf Synchronized-BatchNorm-PyTorch/sync_batchnorm . cd ../../..
-
-
下载人脸检测预训练模型:
-
在
Face_Detection/目录下下载人脸检测预训练模型。cd Face_Detection/ wget http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 bzip2 -d shape_predictor_68_face_landmarks.dat.bz2 cd ..
-
-
下载并解压预训练模型:
-
在
Face_Enhancement/和Global/目录下下载并解压预训练模型。cd Face_Enhancement/ wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/face_checkpoints.zip unzip face_checkpoints.zip cd ../ cd Global/ wget https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life/releases/download/v1.0/global_checkpoints.zip unzip global_checkpoints.zip cd ../
-
-
安装依赖:
-
在项目根目录下安装所需的依赖库。
pip install -r requirements.txt
-
-
如何使用:
- 对于没有划痕的图片:
对于有划痕的图片:python run.py --input_folder [测试图片文件夹路径] \--output_folder [输出路径] \--GPU 0
对于带有划痕的高分辨率图片:python run.py --input_folder [测试图片文件夹路径] \--output_folder [输出路径] \--GPU 0 \--with_scratchpython run.py --input_folder [测试图片文件夹路径] \--output_folder [输出路径] \--GPU 0 \--with_scratch \--HR -
注意:请将
[测试图片文件夹路径]和[输出路径]替换为你系统中的适当路径。如果你希望使用CPU运行,则可以将GPU选项设置为-1。
- 对于没有划痕的图片:
-
GUI运行
-
如果命令行使用不方便,还可以用官方提供的客户端程序,傻瓜式操作,直接运行
GUI.py文件
这个项目让我们意识到,技术的力量不仅仅在于创造新事物,更在于它能够帮助我们修复、保存和珍视那些无法复制的过去。无论是家庭相册中的老照片,还是历史档案中的珍贵影像,Bringing-Old-Photos-Back-to-Life都赋予了它们新的生命。
——EOF——
福利:
扫码回复【酒店】可免费领取酒店管理系统源码


相关文章:
一键浪漫的回忆:微软开源的修复工具!!【送源码】
项目介绍 “Bringing-Old-Photos-Back-to-Life”是一款由微软开发的创新软件解决方案,它利用人工智能技术来修复和增强老旧照片的质量。这款工具可以解决老旧照片中常见的问题,如褪色、低分辨率以及物理损坏(如划痕和撕裂)。通过采…...
力扣-240.搜索二维矩阵(2)
刷力扣热题–第二十七天:240.搜索二维矩阵(2) 新手第二十七天 奋战敲代码,持之以恒,见证成长 1.题目简介 2.题目解答 这道题的想法就是,整体遍历,在遇到比target还大的,就停止这行的遍历,然后转过去继续遍历下一行,如果有一行的开头大于target,直接返回…...
Python推导式和生成器表达式
Python推导式 Python推导式是一种可以从一个数据序列构建另一个新的数据序列的结构体。 除了列表推导式 (list comprehension) 以外,还有字典(dict)、集合(set)推导式。它们的语法格式如下: # 列表:使用方括号 [expression for item in it…...
比较支持向量机、AdaBoost、逻辑斯谛回归模型的学习策略与算法
(1)支持向量机:SVM 是一种监督学习算法,用于分类和回归任务。 学习策略:间隔最大化 算法:最大间隔法、软间隔算法。 参数学习:参数学习过程是要最小化目标函数,通常通过优化算法(如SMO&#x…...
Android顶部标题栏自定义,添加按钮
1. 先写一个标题栏的layout, 放在工程的res/layout下,如下: <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_par…...
Spring Boot 整合 Dubbo3 + Nacos 2.4.0【进阶】+ 踩坑记录
上一篇文章中,Spring Boot 整合 Dubbo3 Nacos 2.4.0 进行了简单的集成使用,此文简单进阶并记录踩坑日常; Nacos 2.4.0 增加鉴权的配置Nacos 2.4.0 配置 MySQLNacos2.4.0 的热更新Dubbo3 自动负载Dubbo3 的重试和超时机制踩坑记录 一、Nacos…...
浙江省食品安全管理员题库及答案
1、《中华人民国食品安全法》从(C)起施行。 A.2009年1月1日 B.2009年5月1日 C.2009年6月1日 D.2009年10月1日 2、《中华人民国食品安全法》包括 (D). A.九章共一百零一条 B.十章共一百零一条 C.九章共一百零四条 D.十章共一百零…...
C++ 几何算法 - 求两条直线交点
一:算法介绍 1. 首先定义两条直线方程: 2. 解方程,求出x, y坐标 3. 如果x分母的行列式等于0, 说明两条直线平行或方向相反 4. 如果x,y分母的行列式都等于0,说明两条线重叠 二:代码实现: #include <cmath> #include <iostream>class Point2D { public:doubl…...
Linux操作系统简介
今天给伙伴们分享一下Linux 操作系统简介,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步…...
【Python机器学习】回归——缩减系数来“理解”数据
如果数据特征比样本点还多,是不可以使用线性回归的,因为在计算的时候会出错。 如果特征比样本点还多(n>m),也就是说输入数据的矩阵x不是满秩矩阵。非满秩矩阵在求逆时会出问题。 为了解决上述问题,可以…...
组件设计原则
state数据结构设计 用数据描述所有内容数据要结构化,易于程序操作(遍历、查找)数据要可扩展,以便增加新的功能 组件设计组件通讯 从功能上拆分层次尽量让组件原子化容器组件(只管理数据)& UI组件&am…...
简单搭建vue项目
1.先安装node.js和vite,具体参考: 2.管理员身份运行cmd,跳转到node安装目录: 输入: npm create vitelatest 输入项目名称,选择vue和JavaScript 2.VisualStudioCode打开(可能需要管理员权限)创建的文件夹,点…...
ctfhub Bypass disable_function
LD_PRELOAD url 蚁剑连接 选择插件 点击开始 查看到此文件名编辑连接拼接到url后面重新连接 点击开启终端 在终端执行命令 ls / /readfile ShellShock url CTFHub 环境实例 | 提示信息 蚁剑连接 写入shell.php <?phpeval($_REQUEST[ant]);putenv("PHP_test() { :…...
【Qt】探索Qt网络编程:构建高效通信应用
文章目录 前言:1. Qt 网络编程介绍1.1 什么是网络编程?1.2 Qt的模块 2. UDP Socket2.1 核心 API 概述2.2 写一个带有界面的 Udp 回显服务器2.3 写一个带有界面的 Udp 客户端 3. TCP Socket3.1 核心 API 概述3.2 代码: 4. HTTP Client4.1 核心…...
【Android Studio】原生应用部署第三方插件(探针)
一、本地引入包流程 (一)本地引入包内容 (二)本地引入包操作步骤 将 【probe-android-sdk】目录里面所有的aar包复制到嵌码项目工程(App级别)的 libs 目录下 二、添加插件 (一)…...
嵌入式学习之路 15(C语言基础学习——指针操作一维字符型数组)
字符型数组的定义和初始化 char s[] "hello";:在栈上开辟空间并初始化。const char *p "hello";:指针 p 指向字符串常量区的 "hello",只能读取不能修改。 指针变量的类型确定 指针变量的类型由其所指向的数据…...
C++ STL专题 list的底层实现
目录 1.模拟实现list 2.节点模板讲解 3.迭代器模板讲解 3.1为什么template 有三个类型参数 (1).class T (2).class ref (3).class ptr 3.2 *重载 3.3 ->重载 3.4 前置和后置的重载 3.5 前置--和--后置的重载 3.6 和!的重载 4. list模板讲解 4.1 begin()函数 …...
【JavaEE】线程池
目录 前言 什么是线程池 线程池的优点 ThreadPollExecutor中的构造方法 corePoolSize && maximumPoolSize keepAliveTime && unit workQueue threadFactory 如何在java中使用线程池 1.创建线程池对象 2.调用submit添加任务 3.调用shutdown关闭线程池…...
lvs实战项目-dr模式实现
一、环境准备 主机名IP地址router eth0:172.25.254.100 eth1:192.168.0.100 clienteth0:172.25.254.200lvseth1:192.168.0.50web1web2 1、client配置 [rootclient ~]# cat /etc/NetworkManager/system-connections/eth0.nmconne…...
JSONP跨域
1 概述 定义 json存在的意义: 不同类型的语言,都能识别json JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 s…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...
在MobaXterm 打开图形工具firefox
目录 1.安装 X 服务器软件 2.服务器端配置 3.客户端配置 4.安装并打开 Firefox 1.安装 X 服务器软件 Centos系统 # CentOS/RHEL 7 及之前(YUM) sudo yum install xorg-x11-server-Xorg xorg-x11-xinit xorg-x11-utils mesa-libEGL mesa-libGL mesa-…...
开疆智能Ethernet/IP转Modbus网关连接斯巴拓压力传感器配置案例
本案例是将ModbusRTU协议的压力传感器数据上传到欧姆龙PLC,由于PLC采用的是Ethernet/IP通讯协议,两者无法直接进行数据采集。故使用开疆智能研发的Ethernet转Modbus网关进行数据转换。 配置过程 首先我们开始配置Ethernet/IP主站(如罗克韦尔…...
NoSQL——Redis配置与优化
目录 关系型&非关系型数据库 一、核心原理对比 二、核心特性对比 三、关键区别剖析 四、典型产品示例 总结 Redis Redis核心原理 核心特性 技术意义 配置文件解析 1. 基础配置 2. 持久化配置 3. 内存管理 4. 高可用配置 5. 性能调优 6.…...
多层PCB技术解析:从材料选型到制造工艺的深度实践
在电子设备集成度与信号传输要求不断提升的背景下,多层PCB凭借分层布局优势,成为高速通信、汽车电子、工业控制等领域的核心载体。其通过导电层、绝缘层的交替堆叠,实现复杂电路的立体化设计,显著提升空间利用率与信号完整性。 一…...
