
104、Real-ESRGAN 实战:基于纯合成数据的高保真真实世界超分从一次真实调试说起去年接了一个项目,客户给了一堆监控摄像头拍的模糊人脸,要求超分到能看清车牌号的程度。我一开始信心满满,直接上了ESRGAN,结果输出全是伪影,人脸变成了一团马赛克里长出来的“油画”。后来换成Real-ESRGAN,效果才勉强能看。但真正让我头疼的是——客户的数据集里既有运动模糊、又有镜头畸变、还有压缩噪声,而Real-ESRGAN官方模型对这些“混合退化”的泛化能力其实没那么神。这篇文章不是来吹Real-ESRGAN有多牛的,而是记录我踩过的坑:怎么用纯合成数据训练一个能扛住真实世界退化的模型,以及哪些地方你千万别照着论文抄。为什么非得用纯合成数据?真实世界的低分辨率图像,退化过程极其复杂:模糊、噪声、下采样、压缩、甚至传感器响应曲线非线性。你不可能收集到所有场景的配对数据——HR和LR一一对应那种。所以Real-ESRGAN的核心思路是:用数学模拟退化过程,生成合成数据来训练。但这里有个陷阱:合成数据太“干净”了。如果你只用简单的双三次下采样加高斯噪声,模型学到的只是“去噪+插值”,遇到真实监控画面里的块效应、振铃效应,直接崩。Real-ESRGAN的贡献在于提出了一套“高阶退化模型”,把模糊、噪声、下采样、压缩按随机顺序组合,还加入了“振铃效应”和“块效应”的模拟。代码实战:从零搭建Real-ESRGAN训练流程