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.8
,background_enhance = true
,face_upsample = true
,upscale = 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博文💥💥💥 💟💟喜欢的朋友可以关注一下…...

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 …...

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

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

举例说明.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…...

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

第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent
文章目录 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Linux 和 macOS 系统上为非根实例启动 ISCAgent在 UNIX/Linux 和 macOS 系统上为非根实例启动 ISCAgent在 Microsoft Windows 系统上启动 ISCAgent 自定义 ISCAgent 第三十九章 配置镜像 - 配置 ISCAgent - 在 UNIX Li…...

嵌入式安卓开发:使用Camera2获取相机
文章目录 Camera2介绍Camera2的主要API类介绍CameraManager通过CameraManage获取Cameracharacteristics通过CameraManage获取CameraDevice从CameraDevice获取CameraCaptureSession预览效果 参考 Camera2介绍 从Android 5.0开始,Google 引入了一套全新的相机框架 Ca…...

阿里云g8i服务器Intel Xeon(Sapphire Rapids) Platinum 8475B
阿里云服务器ECS通用型实例规格族g8i采用2.7 GHz主频的Intel Xeon(Sapphire Rapids) Platinum 8475B处理器,3.2 GHz睿频,g8i实例采用阿里云全新CIPU架构,可提供稳定的算力输出、更强劲的I/O引擎以及芯片级的安全加固。阿里云百科分享阿里云服…...

设计模式——组件协作模式之观察者模式
文章目录 前言一、“组件协作” 模式二、Observer 观察者模式1、动机2、模式定义3、伪代码示例①、第一种方案,最朴素的方式②、第二种方案,重构使得遵循DIP原则:③、进一步的小优化:④、修改使得支持多个观察者: 4、结…...

观察者设计模式知多少
目录 目标 概述 实现 推设计模式 拉设计模式 被动观察者设计模式 目标 熟悉观察者设计模式,了解观察者设计模式的使用场景、具体实现(包括:推设计模式、拉设计模式、被动观察者设计模式)。 概述 一、行为设计模式 行为设…...

Flink之TaskManager内存解析
一、CK失败 Flink任务的checkpoint操作失败大致分为两种情况,ck decline和ck expire: (1)ck decline 发生ck decline情况时,我们可以通过查看JobManager.log或TaskManager.log查明具体原因。其中有一种特殊情况为ck cancel&…...

为何越来越多人不喜欢“试用期六个月”的公司?网友:感觉不靠谱
众所周知,任何一份工作都有试用期,一般是三月左右。但如果你遇到试用期达到半年的公司,你会不会进入? 近日,就有人遇到了此类公司,并对是否要进入该公司犹豫不决。他在论坛上发帖求助:大家是怎…...

单例模式的四种创建方式
前言 单例模式是日常开发中最常见的一种设计模式,常用来做为池对象,或者计数器之类的需要保证全局唯一的场景。 单例模式的目的是保证在整个程序中只存在一个对象实例,使用单例一个前提条件就是构造器私有化,不允许通过new 对象…...

Nginx+Keepalived 中的脑裂现象
如何解决和预防 NginxKeepalived 中会出现的脑裂现象? Nginx是一种高性能的Web服务器和反向代理服务器,可以处理大量并发请求。Keepalived是一种开源软件,用于实现IP负载均衡和故障转移。在Nginx和Keepalived结合使用时,可以通过将多个Ngin…...

04 KVM虚拟化网络概述
文章目录 04 KVM虚拟化网络概述4.1 Linux Bridge4.2 Open vSwitch 04 KVM虚拟化网络概述 为了使虚拟机可以与外部进行网络通信,需要为虚拟机配置网络环境。KVM虚拟化支持Linux Bridge、Open vSwitch网桥等多种类型的网桥。如图1所示,数据传输路径为“虚…...