当前位置: 首页 > news >正文

一键浪漫的回忆:微软开源的修复工具!!【送源码】

项目介绍

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

特点

它可以自动为黑白照片上色、修正颜色褪变、提高清晰度和锐利度,甚至修复轻微的物理损坏。修复后的结果不仅视觉上令人赏心悦目,而且高度逼真,这对于保存历史和个人记忆来说是一款不可或缺的工具。

开源成就

目前已经取得14.8K Star

主要功能

  • 上色与颜色校正: 提升褪色或黑白照片的颜色。

  • 清晰度与锐利度提升: 增加图片的分辨率和锐利度。

  • 损害修复: 修复照片上的划痕、撕裂及其他物理损伤。

  • 高分辨率支持: 能够处理高分辨率图片以实现细节修复。

安装使用指南

  1. 下载代码库

    • 首先,需要下载项目的代码库到本地环境。

      git clone https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life.git
      
  2. 安装同步批量归一化库

    • 进入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 ../../..
      
  3. 下载人脸检测预训练模型

    • 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 ..
      
  4. 下载并解压预训练模型

    • 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 ../
      
  5. 安装依赖

    • 在项目根目录下安装所需的依赖库。

      pip install -r requirements.txt
      
  6. 如何使用:

    • 对于没有划痕的图片:
      python run.py --input_folder [测试图片文件夹路径] \--output_folder [输出路径] \--GPU 0
      
      对于有划痕的图片:
      python run.py --input_folder [测试图片文件夹路径] \--output_folder [输出路径] \--GPU 0 \--with_scratch
      
      对于带有划痕的高分辨率图片:
      python run.py --input_folder [测试图片文件夹路径] \--output_folder [输出路径] \--GPU 0 \--with_scratch \--HR
      

    • 注意:请将 [测试图片文件夹路径] 和 [输出路径] 替换为你系统中的适当路径。如果你希望使用CPU运行,则可以将GPU选项设置为 -1。    

  7. 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下&#xff0c;如下: <?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【进阶】+ 踩坑记录

上一篇文章中&#xff0c;Spring Boot 整合 Dubbo3 Nacos 2.4.0 进行了简单的集成使用&#xff0c;此文简单进阶并记录踩坑日常&#xff1b; Nacos 2.4.0 增加鉴权的配置Nacos 2.4.0 配置 MySQLNacos2.4.0 的热更新Dubbo3 自动负载Dubbo3 的重试和超时机制踩坑记录 一、Nacos…...

浙江省食品安全管理员题库及答案

1、《中华人民国食品安全法》从&#xff08;C&#xff09;起施行。 A.2009年1月1日 B.2009年5月1日 C.2009年6月1日 D.2009年10月1日 2、《中华人民国食品安全法》包括 &#xff08;D&#xff09;. 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 操作系统简介&#xff0c;希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者&#xff0c;对云原生运维感兴趣&#xff0c;也保持时刻学习&#xff0c;后续会分享工作中用到的运维技术&#xff0c;在运维的路上得到支持和共同进步…...

【Python机器学习】回归——缩减系数来“理解”数据

如果数据特征比样本点还多&#xff0c;是不可以使用线性回归的&#xff0c;因为在计算的时候会出错。 如果特征比样本点还多&#xff08;n>m&#xff09;&#xff0c;也就是说输入数据的矩阵x不是满秩矩阵。非满秩矩阵在求逆时会出问题。 为了解决上述问题&#xff0c;可以…...

组件设计原则

state数据结构设计 用数据描述所有内容数据要结构化&#xff0c;易于程序操作&#xff08;遍历、查找&#xff09;数据要可扩展&#xff0c;以便增加新的功能 组件设计组件通讯 从功能上拆分层次尽量让组件原子化容器组件&#xff08;只管理数据&#xff09;& UI组件&am…...

简单搭建vue项目

1.先安装node.js和vite&#xff0c;具体参考&#xff1a; 2.管理员身份运行cmd&#xff0c;跳转到node安装目录&#xff1a; 输入&#xff1a; npm create vitelatest 输入项目名称&#xff0c;选择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网络编程:构建高效通信应用

文章目录 前言&#xff1a;1. Qt 网络编程介绍1.1 什么是网络编程&#xff1f;1.2 Qt的模块 2. UDP Socket2.1 核心 API 概述2.2 写一个带有界面的 Udp 回显服务器2.3 写一个带有界面的 Udp 客户端 3. TCP Socket3.1 核心 API 概述3.2 代码&#xff1a; 4. HTTP Client4.1 核心…...

【Android Studio】原生应用部署第三方插件(探针)

一、本地引入包流程 &#xff08;一&#xff09;本地引入包内容 &#xff08;二&#xff09;本地引入包操作步骤 将 【probe-android-sdk】目录里面所有的aar包复制到嵌码项目工程&#xff08;App级别&#xff09;的 libs 目录下 二、添加插件 &#xff08;一&#xff09;…...

嵌入式学习之路 15(C语言基础学习——指针操作一维字符型数组)

字符型数组的定义和初始化 char s[] "hello";&#xff1a;在栈上开辟空间并初始化。const char *p "hello";&#xff1a;指针 p 指向字符串常量区的 "hello"&#xff0c;只能读取不能修改。 指针变量的类型确定 指针变量的类型由其所指向的数据…...

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&#xff1a;172.25.254.100 eth1&#xff1a;192.168.0.100 clienteth0&#xff1a;172.25.254.200lvseth1&#xff1a;192.168.0.50web1web2 1、client配置 [rootclient ~]# cat /etc/NetworkManager/system-connections/eth0.nmconne…...

JSONP跨域

1 概述 定义 json存在的意义&#xff1a; 不同类型的语言&#xff0c;都能识别json JSONP(JSON with Padding)是JSON的一种“使用模式”&#xff0c;可用于解决主流浏览器的跨域数据访问的问题。由于同源策略&#xff0c;一般来说位于 server1.example.com 的网页无法与不是 s…...

Appstore 上架问题汇总--持续更新

一、Guideline 3.2.1(viii) - Business - Other Business Model Issues - Acceptable 问题&#xff1a; We still found the app provides loan services but the domains listed on the apps Product Pages are not clearly under your control or ownership. Since users m…...

Elasticsearch RTF安全配置终极指南:X-Pack安装与免费License申请教程

Elasticsearch RTF安全配置终极指南&#xff1a;X-Pack安装与免费License申请教程 【免费下载链接】elasticsearch-rtf elasticsearch中文发行版&#xff0c;针对中文集成了相关插件&#xff0c;方便新手学习测试. 项目地址: https://gitcode.com/gh_mirrors/el/elasticsearc…...

掌控微信数据:从信息丢失到价值挖掘的完整解决方案

掌控微信数据&#xff1a;从信息丢失到价值挖掘的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…...

终极指南:5分钟学会永久免费使用Cursor Pro的完整教程

终极指南&#xff1a;5分钟学会永久免费使用Cursor Pro的完整教程 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tri…...

基于SAC强化学习算法的ROS2机器人运动控制实战解析

1. SAC强化学习算法与ROS2的完美结合 第一次接触SAC算法是在三年前的一个机器人项目中&#xff0c;当时我们团队正在为移动机器人寻找一种既稳定又高效的决策算法。试过DQN、PPO等主流方法后&#xff0c;最终SAC以其出色的样本效率和稳定性胜出。现在结合ROS2的强大通信能力&am…...

openpilot终极指南:快速实现300+车型自动驾驶辅助的完整方案

openpilot终极指南&#xff1a;快速实现300车型自动驾驶辅助的完整方案 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub_Tr…...

DC-DC移相全桥MATLAB仿真 DC- DC移相全桥电路 移相全桥DC-DC变换器matlab_simulink仿真,功率管采用mosfet,副边接整流电路。 采用PWM控制

DC-DC移相全桥MATLAB仿真 DC- DC移相全桥电路 移相全桥DC-DC变换器matlab/simulink仿真&#xff0c;功率管采用mosfet&#xff0c;副边接整流电路。 采用PWM控制&#xff1b; 输出稳定且可调&#xff0c;可稳定输出电压你想要的值 matlab 编辑 1function create_PSFB_Model(…...

苹果手机用微信,这 8 个设置赶紧关!隐私正在泄露

文章目录前言第一道门&#xff1a;别让陌生人在你家门口"数地砖"第二道门&#xff1a;给你的手机号穿上"隐身衣"第三道门&#xff1a;清理那些"寄生"在你账号上的第三方第四道门&#xff1a;关掉"附近的人"&#xff0c;拒绝被"雷…...

Intv_AI_MK11 跨平台开发应用:基于 Qt 框架的桌面智能助手

Intv_AI_MK11 跨平台开发应用&#xff1a;基于 Qt 框架的桌面智能助手 1. 为什么需要跨平台智能助手 在日常工作和学习中&#xff0c;我们经常遇到这样的场景&#xff1a;在Windows上收集的资料&#xff0c;想在Mac上继续编辑&#xff1b;在Linux服务器上开发的代码&#xff…...

liunx的编译与链接(7)

1.条件编译的现实用途1.软件根据收费情况进行条件编译来对代码进行动态裁剪2.不同硬件所需的内核代码不同&#xff0c;可以采用条件编译来进行代码裁剪3.开发工具&#xff0c;应用软件的代码采用条件编译来适配不同的操作系统2.要转换为汇编语言的原因是历史导致代码的本质是操…...