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

5 款 AI 老照片修复工具的横向比较

在大语言模型和各类 AI 应用日新月异的今天,我终于下定决心,趁着老照片们还没有完全发黄褪色、受潮粘连抑或损坏遗失,将上一代人实体相册里的纸质胶卷照片全部数字化,并进行一次彻底的 AI 修复,好让这些珍贵的记忆能更长久地保存下去。

数字化的方式是使用 Google 相册提供的「照片扫描仪」(Photoscan)应用,它能自动调整角度、裁剪边缘,消除眩光、阴影,并将原件和自动编辑过的图片同时保存在 iCloud 相册中。(条件允许的话,更建议使用扫描仪以得到最大的分辨率。)

接下来遇到的问题是如何挑选一款合适的 AI 修复工具。根据以往经验和近期热门,我挑选了 5 款候选。为了使修复效果达到最好,我把待修复的小几百张老照片,几乎每张都用全部工具试了一遍,也算是对这些工具进行了一次深度使用,因此下面就把体验分享给大家。

工具列表

工具平台价格模型
CodeFormer网页免费(开源)Codebook Lookup TransFormer (CodeFormer), 2022 年
RestorePhotos.io网页免费(开源)GFP-GAN, 2021 年
jpgHD.com网页 / iOS / Android / Mac / Windows收费,可免费试用 5 张未公开的 AI 超分模型,2021 年
你我当年iOS / Android收费,观看 20 秒广告可以处理 1 张未公开
老照片修复iOS / Android收费未公开

这里额外介绍一下两款开源工具:

  • CodeFormer (官方网站 | GitHub 项目地址):南洋理工大学周尚辰等人的作品,基于 Codebook Lookup TransFormer 模型实现。可以使用作者通过在线模型运行服务 Replicate 搭建的 demo 直接体验(受限于 Replicate 的免费额度,超出需要付费)。附我使用的参数供参考:fidelity = 0.8background_enhance = trueface_upsample = trueupscale = 2
  • RestorePhotos.io (官方网站 | GitHub 项目地址):基于腾讯 ARC 实验室 GFP-GAN 模型实现的老照片修复工具。官网每天可以免费使用 5 次,但也可以通过 Vercel 等方式一键部署,并填入自己的 Replicate API key,从而不受限制地使用。

注:由于可以理解的隐私原因,以下就不放我实际用来修复的照片了,我从公开渠道搜集了一些图片用于测试,以供大家辨别参考。

第一组测试图片:单人及双人(大头照)

测试 1-1 邓丽君

这是一张电视节目截图中的邓丽君。几乎所有工具都对这张图片进行了不错的还原,包括头发以及耳环(「CodeFormer」在牙齿的细节处理上存在一些瑕疵)。你觉得哪张图更像真实的邓丽君呢?

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

测试 1-2 周杰伦

这张周杰伦童年照的原始图片比较模糊,且有很多噪点。从还原表现上来看「CodeFormer」、「你我当年」、「老照片修复」在背景降噪、衣服质感的还原上更加出色,但只有「jpgHD.com」准确还原出了周董的单眼皮以及内眼角细节,在我看来它是最像图片最初模样的。其他工具均适当发挥了「想象力」。

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

测试 1-3 张国荣与张柏芝合影

一张模糊不清的合影,5 个工具的修复效果可谓齐轨连辔。

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

测试 1-4 张学友与王祖贤合影

除「jpgHD.com」对王祖贤的皮肤处理比较粗糙以外,各家工具在这种单人及双人大头照的处理上几乎难分伯仲。注意所有工具均对耳坠进行了还原修复。

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

测试 1-5 爱因斯坦

这里尝试对 1927 年第五次索尔维会议上的阿尔伯特·爱因斯坦、亨德里克·洛伦兹、居里夫人三位大神进行修复。原图为黑白,已经过人工上色处理,但并未对细节进行放大修复。可见「CodeFormer」对人脸、西装的修复效果都更好,且成功识别了后方只有半张脸的阿瑟·康普顿。

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

测试 1-6 洛伦兹

注意「老照片修复」错误地生成了一个模糊不清的眼镜轮廓。

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

测试 1-7 居里夫人

从皮肤质感上看「CodeFormer」的清晰程度领先于其他工具。

左:原图,右:CodeFormer

左:RestorePhotos.io,右:jpgHD.com

左:你我当年,右:老照片修复

第二组测试图片:多人(大合影)

测试 2-1:轻微模糊的多人合影

图片作者无考,原标题为「镜头下:80 年代的中国儿童」。(来源链接)

原图

CodeFormer

RestorePhotos.io

jpgHD.com

你我当年

老照片修复

测试 2-2:中度模糊的四人合影

图片来源:南京理工大学经济管理学院国贸双学位班学生校园随拍(1990 年夏,左起:韩梦玲、周详文、石英、吕虹)。(来源链接)

对这张图片的处理产生了比较明显的差异,「CodeFormer」面部较为自然,成功还原了左三女生的眼镜(但产生了毛刺),并对头发、衣物和建筑物修复得更为精确;「你我当年」的面部修复效果非常自然,「老照片修复」在建筑物修复上也表现得很不错。而「RestorePhotos.io」则在面部还原上出现了较大程度的扭曲,左三女生的眼镜并没有被成功修复。

原图

CodeFormer

RestorePhotos.io

jpgHD.com

你我当年

老照片修复

测试 2-3:高度模糊的多人合影

图片来源:中国科学院上海光学精密机械研究所 80 年代西楼小会堂前合影(左起,前排:王慧敏、张莲英、杨姮彩、于阿滨、顾德英、李爱莲,后排:林岳明、方祖捷、张位在、金志良、刘枝伍、胡衍芝)。(来源链接)

这张图的人脸出现了较大程度的模糊,各个工具均充分发挥了想象进行脑补。

从五官的自然和谐程度上来看,我会对修复效果这么排序:CodeFormer > 老照片修复 > jpgHD.com > 你我当年 > RestorePhotos.io。

从背景、衣物的修复效果上来看,我会对修复效果这么排序:CodeFormer = 老照片修复 > 你我当年 > RestorePhotos.io = jpgHD.com。

原图

CodeFormer

RestorePhotos.io

jpgHD.com

你我当年

老照片修复

测试结论

工具画质提升清晰程度准确程度修复速度
CodeFormer支持
可选提高画质(自定义倍率)
很高较高
对比原图准确性较高,但有可能出现少量不自然的细节
一般
从 6s 至 60s 不等
RestorePhotos.io不支持较低
生成出来的图片最大分辨率为 1200px
较低
对比原图「脑补想象」程度更大,在小头像上表现比较差,很容易出现扭曲变形
很快
通常都可以在 10s 内完成
jpgHD.com支持
可选提高画质(2x、4x)
中等很高
能还原出原始照片的真实细节
很慢
即便是小图片也可能耗时 3 至 5 分钟
你我当年支持
默认 2x
较高中等
对于小头像可能出现失真
很快
通常在 10s 左右
老照片修复支持
默认 2x
较高较高很快
通常在 10s 左右

综合来看,我更推荐免费且开源的「CodeFormer」,如果大家与我一样有同时修复几百张照片的需求,可以将「CodeFormer」搭建在本地,处理起来就省心多了。「你我当年」、「老照片修复」表现都还算稳定,但在小头像的表现上不如「CodeFormer」,且是收费软件。

除「RestorePhotos.io」以外的工具都支持老照片上色,本文未对该功能进行测试。「RestorePhotos.io」对于大头照,以及磨砂颗粒或干涉条纹较多的疑难图片处理有一定的优势,其他情况都不甚理想。

结语

因精力有限,本文仅对一些常见情况做了测试比较,希望能帮大家做出一个初步的选择判断。实际上在老照片修复过程中还会面临诸多疑难杂症,例如因磨砂处理产生的颗粒、因翻拍屏幕产生的干涉条纹,以及一些涂抹、折痕、撕裂、霉斑等问题。面对这些问题的时候,可以尝试不同的工具进行综合对比,甚至也需要更多的耐心人工介入,将不同修复工具的效果进行叠加处理。

对老照片进行初步修缮后,还可以尝试使用这些工具进行进一步无损放大,以及智能上色处理。也推荐动手能力强的朋友们对那些非常重要的珍贵照片进行人工调色、贴图等进一步的后期加工,毕竟尽管 AI 已经能帮我们很大程度上还原照片本来的模样,却不能 100% 准确再现历史。对于修复照片有极致要求的朋友们,建议你们联系一个叫「TR 美术」的团队,我会把他们手工修复曾国藩、左宗棠的对比图附在下面,供你们参考。

「TR 美术」对曾国藩及左宗棠肖像的修复

相关文章:

5 款 AI 老照片修复工具的横向比较

在大语言模型和各类 AI 应用日新月异的今天,我终于下定决心,趁着老照片们还没有完全发黄褪色、受潮粘连抑或损坏遗失,将上一代人实体相册里的纸质胶卷照片全部数字化,并进行一次彻底的 AI 修复,好让这些珍贵的记忆能更…...

2023企业服务的关键词:做强平台底座

作者 | 曾响铃 文 | 响铃说 4月下旬,软件行业相关的大会紧锣密鼓地开了好几场,不仅有政府主办的2023中国国际软件发展大会、中国软件创新发展大会,也有用友、浪潮等服务商举办的品牌活动,让软件业的话题一直保持热度。 以用友为…...

【Linux基本指令和权限(1)】

本文思维导图: 文章目录 一、Linux操作的特点二、使用指令从Xhell登录云服务器三、基本指令1.ls指令2. pwd指令:3.cd指令4. touch指令5. rm指令 写在最后 Linux是一个操作系统,操作系统是一款做软硬件管理的软件。 一、Linux操作的特点 Li…...

虹科新品 | 用于医疗应用的压力和气体流量传感器

ES Systems在创新MEMS方面拥有丰富的经验,设计了高质量和高性能的气体流量和压力传感器,由于其技术规格,出色的可靠性和有竞争力的价格,这些传感器在竞争产品中具有独特的品质。 Part.01 应用背景 众所周知,在医疗领域…...

原生小程序如何使用pdf.js实现查看pdf,以及关键词检索高亮

1.下载pdf.js库文件 前往 pdf.js 的 官网 下载库文件,下哪个版本都可以,后者适用于旧版浏览器,所以我下载的是后者 下载完成后,因为微信小程序打包的限制,我将库文件放到项目的后台系统了,在h5端处理会比在…...

「数据架构」MDM实现失败的主要原因

我经常参与一个组织的MDM程序,当他们在一个失败的项目之后向InfoTrellis请求帮助进行清理,或者开始尝试X,以实现对某些人来说非常困难的目标时。主数据管理实现失败的原因有很多,但是没有一个是由于在这些场景中使用的责备游戏的原…...

【Java基础 1】Java 环境搭建

🍊 欢迎加入社区,寒冬更应该抱团学习:Java社区 📆 最近更新:2023年4月22日 文章目录 1 java发展史及特点1.1 发展史1.2 Java 特点1.2.1 可以做什么?1.2.2 特性 2 Java 跨平台原理2.1 两种核心机制2.2 JVM…...

2023-4-26-C++11新特性之正则表达式

🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿 💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥 💟💟喜欢的朋友可以关注一下&#xf…...

python接口自动化测试 requests库的基础使用

目录 简单介绍 Get请求 Post请求 其他类型请求 自定义headers和cookies SSL 证书验证 响应内容 获取header 获取cookies 简单介绍 requests库简单易用的HTTP库 Get请求 格式: requests.get(url) 注意:若需要传请求参数,可直接在 …...

Photon AI Translator 和做产品的一些思考

近 4 个月内我一直在做 Apple 平台的产品,虽然从使用量来说「简体中文」用户是占多数,但我一直有做多语言的支持:英语、简体中文和繁体中文。习惯上 Google 翻译的我,基本上在使用 Xcode 过程中也会一直在浏览器开着 Google Trans…...

IPTV系统架构的分析与研究

1 引言   IPTV业务是伴随着宽带互联网的飞速发展而兴起的一项新兴的互联网增值业务,它利用宽带互联网的基础设施,以家用电视机和电脑作为主要终端 ,利用网络机顶盒(STB,Set -TopBox) ,通过互联网协议来传送电视信号.提供包括 电视节 目在 内…...

workerman开发者必须知道的几个问题

1、windows环境限制 windows系统下workerman单个进程仅支持200个连接。 windows系统下无法使用count参数设置多进程。 windows系统下无法使用status、stop、reload、restart等命令。 windows系统下无法守护进程,cmd窗口关掉后服务即停止。 windows系统下无法在一个…...

golang Gin实现websocket

golang使用 Gin实现 websocket,这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下,新建项目文件夹 go-gin-websocket 进入项目文件夹,打开cmd窗口,在项目(go-gin-websocket&a…...

冯·诺依曼体系结构与初始操作系统

目录 冯诺依曼体系结构 冯诺依曼体系结构图 内存 外存 网卡和磁盘 结构之间运算速度的差异 缓冲区 初始操作系统 概念 操作系统上边与下边分别有什么 从上到下依次顺序解析 用户 用户操作接口 系统调用接口 操作系统四项管理 驱动 硬件 冯诺依曼体系结构 冯诺…...

软件测试之黑盒测试的具体方法详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一.基于需求的设计方法二.等价类三.边界值四.判定表4.1 **关系**4.2 如何设计测试用例4.3 实际案例第一步第二步第三步第四步 五.正交排列5.1 什么是正交表5.2 …...

图形编辑器:历史记录设计

大家好,我是前端西瓜哥。今天讲一下图形编辑器如何实现历史记录,做到撤销重做。 其实就是版本号的更替。每个版本保存一个状态。 数据结构 要记录图形编辑器的历史记录,支持撤销重做功能,需要两个栈:撤销&#xff0…...

ubuntu22.04下挂载第二块硬盘

文章目录 一、查看硬盘情况二、找到nvme1n1三、挂载四、修改分区文件 一、查看硬盘情况 首先要查看一下系统识别出来的设备。也就是说,我希望知道,ubuntu到底发现了几块硬盘。用命令:lsblk 显示结果如下: 有两块硬盘&#xff1a…...

举例说明.net中in与out的作用与区别

-----作用 在 .NET 中,in 和 out 是用于泛型类型参数的修饰符,它们用于指定参数类型的协变性和逆变性。 - in 修饰符:表示这个泛型类型参数是协变的。也就是说,in 类型参数可以从较特殊的类型隐式转换为较通用的类型。例如&…...

Java常见的100道面试题(内附答案及代码示例)持续更新

什么是Java程序? Java程序是一组可执行的代码,由Java编译器编译生成,可以在Java虚拟机(JVM)上运行。 public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!&qu…...

策略设计模式知多少

目录 目标 概述 实现 目标 熟悉策略设计模式,了解策略设计模式的使用场景、具体实现。 概述 一、行为设计模式 行为设计模式是设计模式的一种类型。该类型的设计模式关注的重点在于对象的行为(通信和交互),而非对象的创建方…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...