老照片修复AI图片放大图像超分辨率

用 AI 修老照片之前,先搞清楚它能修什么、不能修什么

9 分钟阅读

我外婆有一本厚厚的老相册,里面有一张她和外公结婚那天的合影,1958 年拍的。

照片是 6×9 厘米的小幅,泛黄,边缘磨损,最关键的是——脸上的细节几乎都糊了,能看出五官位置但看不清表情。我妈想把这张照片放大到 A4 框起来挂在客厅。

这是 AI 老照片修复最常见的需求。但很多人对它的期望有个偏差,需要先纠正:AI 不能"复原"老照片,AI 只能"重建到一个合理的版本"

这两件事差很多。

老照片为什么会糊

要理解 AI 在修什么,先要理解照片是怎么"坏"的。

扫描分辨率太低。家用扫描仪的常用扫描精度是 300 DPI,这个精度扫一张 6×9 厘米的小幅,得到的数字图片大概是 700×1050 像素。这个像素量对于"原片大小看清楚"够用了,但你想把它放大到 A4(约 3500×2480 像素)就严重不够,每个原始像素要"撑开"到 3-4 个新像素的位置,中间靠插值算法填补——传统的双三次插值会让图像看起来"平滑但糊"。

胶片本身的颗粒。1958 年的胶片化学颗粒度本来就有限,加上当时的相机镜头分辨率,照片上人脸的细节信息可能本来就只够支撑现在 3 厘米×4 厘米大小的清晰显示。再大就是无中生有。

压缩损失。如果中间这张照片经过手机拍照转存、微信发送、压缩保存这些环节,每一步都会损失高频细节。JPEG 压缩会丢掉人眼看不太出来的高频信息,但叠加多次后会明显糊化。

老化损伤。泛黄是化学褪色(蓝色感光层最先衰减),划痕、霉斑是物理损伤,颜色偏移是不同感光层衰减速度不同导致的色彩失衡。

这些退化加在一起,让一张 1958 年的老照片在数字化后看起来糊、暗、黄、有点脏。

AI 修复的真实原理

AI 修复不是"还原 1958 年那一刻的光子"——那些信息已经永久丢失了。AI 做的事情是基于训练数据里学到的"清晰人脸应该长什么样",把糊的部分重建成一个合理的版本

这是关键。"合理"不等于"原样"。

具体来说,主流的 AI 修复用两种思路,常常组合使用:

Real-ESRGAN:通用放大

Real-ESRGAN 是目前最常用的开源超分辨率模型。它的训练方式是:拿一张高清图,人为加上各种退化(模糊、噪点、压缩、缩小),让模型学习"看到退化版,怎么输出原版"。

实际推理时,你给它一张糊图,它输出一张 2 倍或 4 倍尺寸的清晰图。它的擅长场景是通用场景的整体清晰化——风景、建筑、动物、文字。

但 Real-ESRGAN 在人脸上经常翻车。原因是它的训练数据里人脸只是众多内容之一,它学到的"人脸应该长什么样"是统计平均,不是你外婆那张脸应该长什么样。结果就是输出的人脸"看起来清晰,但不像本人",五官位置对,但细节是模型猜的。

GFPGAN / CodeFormer:专门修人脸

针对人脸有专门的修复模型,GFPGAN(腾讯出品)和 CodeFormer 是两个代表。

它们的思路不同——基于 StyleGAN 这种生成式人脸模型的"人脸先验",模型大脑里有一个"人脸长什么样"的统计分布,遇到糊的人脸时,把它往这个分布里靠拢,输出一张"看起来很像高清人脸"的图。

这种思路的副作用很明显:

所有人脸都会被"美化"。皱纹被磨平、毛孔被简化、皮肤变得过于光滑。你外婆 1958 年那张沧桑而真实的脸,可能被修成一个 40 岁不到的"年轻版"。

人脸特征会向训练集均值靠拢。如果模型主要训练数据是当代亚洲人脸,输出会带有当代人脸的特征,丢失原本那个年代独特的面相特征(比如发型、眉形、表情习惯)。

眼睛容易出问题。糊到看不清眼睛的原图,AI 经常给出"通用版的眼睛"——双眼皮、瞳孔位置标准、有眼神光。但本人可能是单眼皮,或者拍照时眼睛半闭。

颜色与去噪

除了清晰化,老照片修复还涉及颜色复原

黑白照片上色用的是另外一类模型(Deep Colorization、DDColor 等),它的工作方式是根据语义识别图中物体,给每个物体上"统计上最常见的颜色"——草是绿的,天是蓝的,皮肤是肉色。但具体到你外婆当年穿的那件旗袍是什么颜色,AI 完全不知道,它只会给一个"最常见的旗袍颜色"。

去黄、去褪色用色彩校正算法。去划痕、去霉斑用 inpainting(图像内补全)算法。这些都是相对成熟的技术,效果通常比清晰化更可靠——因为它们不是"重建",是"去除"。

修出来的照片该怎么用

我对老照片修复的建议是:把"修复"和"原图"两份都留着

修复版用来日常展示——挂客厅、打印相册、家族群分享。原图保留在硬盘里作为档案,因为修复版本质是 AI 的一次"创作",几年后 AI 模型迭代了,你可能想用新模型重新修一遍。

另外,重要的家庭历史照片,修复时要谨慎

举个例子,我外公已经过世了。如果我用 AI 把他那张糊的脸"修复"成清晰的,但 AI 修出来的人不太像他本人——这件事在情感上是有风险的。你以后看到的、记得的,可能是 AI 生成的那张"近似版",而不是他真实的样子。

更稳妥的做法是分步修:

  1. 先去黄、去褪色、去划痕、去噪点。这些操作不重建细节,只是清理,相对安全。
  2. 再做温和放大(2 倍以内,不开人脸增强)。让照片整体清晰度提升,但不强行让模糊的脸变"清楚"。
  3. 如果一定要做人脸清晰化,单独做一份,并且和原图对比,确认重建后的脸还像本人。如果不像,宁可用模糊的真版本,也不要用清晰的假版本。

哪些照片 AI 修不好

我列几种 AI 当前确实救不回来的情况:

严重过曝或过暗的照片。原图整片白或整片黑的区域,没有任何信息,AI 没办法凭空猜出来该有什么。这种照片只能接受。

严重的撕裂、缺失、烧毁。AI 的 inpainting 能补小划痕、小霉斑,但补不了"半张脸不见了"这种大面积缺失。

远景中小到几个像素的人脸。一张合影里某个人的脸如果只有 10×10 像素,AI 输出的脸基本是凭空生成的,不要相信。

多人合影中混在一起的脸。AI 处理时容易"串脸"——把 A 的部分特征用到 B 上。建议这种照片用框选工具一张一张脸单独修。

字迹、印章、签名。这些是"信息性"内容,AI 重建后字会变,签名会丢失个人特征。重要文件不要用 AI 通用放大处理。

实操步骤

如果你手头有一张老照片要修,可以按这个顺序走:

第一步:用扫描仪或者用手机平拍,尽可能拿到高分辨率原始数字版。手机拍的话用专门的扫描 App(如 Office Lens、Microsoft Lens),它会做透视校正和增强。直接用相机拍的,对焦要准,光线要均匀。

第二步:做物理清理。降低饱和度去掉黄色色偏,用色阶或曲线把对比度拉回来,让画面整体干净。这一步用普通修图软件就能做。

第三步:送进 AI 放大。一开始用 2 倍放大试试,看效果是否自然。如果出现了不自然的纹理或者脸变得不像,回到原图重来,调小放大倍数。

第四步:如果是人物照,单独看一下脸。脸清晰了但不像本人,宁可用模糊版本。脸清晰且像本人,再考虑用增强版。

第五步:导出多个版本,原图、清理版、清理+放大版各存一份。

想自己上手试,可以打开 AI 图像高清放大工具 上传一张老照片或者一张低清图。工具自带 Real-ESRGAN 风格的通用放大,对老照片、模糊截图、低清图都有效果。


回到我外婆那张照片。

我后来给我妈的方案是:扫描成 600 DPI,做了去黄、降噪、补划痕,整体 2 倍放大;但没有用强力的人脸重建模型。最终输出的照片不算特别"高清",但每个细节都还是原图本来的样子,没有 AI 编造的部分。

我妈把它打印出来挂在客厅。来串门的亲戚都说:"还是当年那张啊,看着真亲切。"

这是我能给老照片修复的最好结果——清晰得刚好,真实得完整。