同一个词,两种操作
bicubic、Lanczos 这类重采样,是在已有像素之间做插值把图撑大。没有任何东西被添加,所以放 4 倍就是软 4 倍。这是诚实的那一种:它从不编造内容,因为它根本不生产内容。
AI 超分是顶着同一个标签的另一种操作。超分模型在几百万组低分辨率与高分辨率图像对上训练过,学到的是「采样极限之下通常有些什么」:皮肤的毛孔结构、一根根头发、砖块的边、织物纹路重复的方式。给它一张小图,它就把这些细节合成出来。输出确实是锐的,而这份锐是预测,不是恢复。
超分放大所有好用的地方和所有危险的地方,都源自这一点。
它修得好什么,编得凶什么
| 源的问题 | 结果 |
|---|---|
| 本身锐,只是尺寸小 | 效果最好,理想场景 |
| 轻度压缩块效应 | 顺带被清掉 |
| 失焦发虚 | 部分改善,部分是编的 |
| 小尺寸人脸 | 说得通,但不是同一个人 |
| 小字与 logo | 变成字形状的噪声,别做 |
| 运动模糊 | 恢复不了,只是模糊的边变锐 |
规律很清楚:超分在「统计性肌理」上可靠,在「只有一个正确答案」的东西上不可靠。皮肤纹理没有正确答案,猜一下没关系;客户的 logo 只有一个正确答案,猜一下就是事故。
视频放大是更难的一档
拿静态图放大器逐帧跑一遍视频,结果是画面在闪。每帧都是独立放大的,于是那些被编出来的毛孔、发丝、织物纹路,每二十四分之一秒都落在不同位置。固定机位的镜头暴露得最狠,因为眼睛有一个稳定参照可以对比。
带时序约束的视频超分模型会让每一帧参考相邻帧,用一点单帧锐度换整段画面稳住。如果手里只有静图放大器,就把倍数压低,然后补一点颗粒 —— 颗粒能给闪烁提供藏身之处。
生成视频的工序顺序:先生成,再补帧,再放大,最后调色。先放大再补帧,等于让补帧算法在一堆编出来的细节上估运动;先调色再放大,等于把这版调色烘进合成出来的肌理里。
一套不容易后悔的流程
- 按模型的原生分辨率生成。 让模型出一个奇怪尺寸是要拿质量换的,出原生尺寸再放大不用。
- 先修后放。 多出来的那根手指在工作分辨率上修掉,放大只会给你一根更大的手指。
- 源比较软时,两次 2 倍优于一次 4 倍,中间加一点轻降噪,别让第二轮在放大第一轮的猜测。
- 必须准确的地方遮出来。 人脸、包装文字、字体可以保留原分辨率,最后再合回放大好的底图上。
- 原文件留着。 超分输出不是无损变换,而且下个月的模型在同一个源上会做得更好。
怎么验收
按 100% 看,不要缩放到窗口大小,而且要左右并排比,不要来回切换。盯三处:一块皮肤或织物看有没有蜡感、一条高反差边看有没有光晕、任何重复肌理看规律是否过于整齐。三处都过,这次放大就是你要的;任何一处不过,解法是降倍数或换模型,绝不是在失败结果上再跑一轮。