CV君 2025-10-18 07:06 江苏
一个模型搞定所有图像退化!
朋友们,今天想跟大家聊一篇图像修复领域的有意思的新工作。如今,我们对图片质量的要求越来越高,但拍摄过程中总免不了各种意外,比如模糊、噪点、光线不足等等。传统的图像修复模型往往是“专科医生”,一个模型对应一种问题。但我们更想要一个“全科医生”,一个模型搞定所有图像退化问题,这就是所谓的“通用图像修复”。
最近,来自 北京大学、JIUTIAN Research 和国防科大 的研究者们就提出了一个名为 MaskDCPT 的通用图像修复预训练方法。这个名字拆开看就是 Masked Degradation Classification Pre-Training(掩码退化分类预训练),思路可以说非常巧妙。它不直接一上来就修复图像,而是先学会“诊断”图像坏掉的类型。
简单来说,这个方法通过一个统一的框架,让模型在预训练阶段就见多识广,不仅学会重建高质量图像,还学会了识别输入图像的“病症”(即退化类型)。这种“诊断+治疗”的模式,让模型在面对各种复杂的、甚至是没见过的图像退化问题时,表现得异常出色。
论文标题: Universal Image Restoration Pre-training via Masked Degradation Classification
从官方给出的效果图就能看到,无论是“五项全能”的综合修复任务,还是真实的现实世界场景,MaskDCPT 预训练过的模型在保真度和感知质量上都达到了顶尖水平。
研究背景与动机
通用图像修复的目标是用一个模型解决多种多样的图像退化问题,比如去噪、去模糊、去雨、低光增强等等。之前的预训练方法,很多是借鉴自然语言处理领域的成功经验,比如掩码自编码器(MAE),在图像上做类似“完形填空”的任务来学习特征。
但这些方法有个问题:它们大多只关注图像内容本身的重建,而忽略了一个非常重要的信息——图像究竟是“怎么坏的”。不同类型的退化(比如高斯噪声和JPEG压缩),其底层特征和修复方式是截然不同的。如果模型能提前知道退化类型,无疑会对修复工作大有裨益。
作者们认为,退化信息和图像内容信息在修复任务中是互补的。因此,他们想设计一种新的预训练范式,能同时利用这两种信息,从而学习到更通用、更强大的图像修复能力。
MaskDCPT:掩码退化分类预训练
为了实现这个目标,研究者们设计了 MaskDCPT 框架。这个框架的整体流程相当清晰直观。
它的核心思想可以概括为以下几步:
输入与掩码:输入一张低质量(退化)的图像,并像做“完形填空”一样,在图像上随机遮掉一部分小块(patch-level masking)。
编码器提取特征:一个修复骨干网络(比如 CNN 或 Transformer)作为编码器,负责从被遮挡的低质量图像中提取特征。
双解码器设计:接下来是关键,模型有两个“头”(解码器),分头行动:
重建解码器:它的任务是利用编码器提炼的特征,把被遮挡的图像“脑补”完整,重建出对应的高质量、无损的图像。这是一个图像重建任务。
分类解码器:它的任务同样是基于那些特征,但目标不是重建图像,而是判断输入的低质量图像到底属于哪一种退化类型(比如是模糊了,还是加了噪点)。这是一个分类任务。
通过这种方式,MaskDCPT 将退化类型作为一种“极弱监督”信号,巧妙地融入到预训练中。模型为了同时完成好“重建”和“分类”这两个任务,就必须学习到一种既懂图像内容、又懂退化信息的广义特征表示。CV君觉得,这种设计有点像让模型“知其然,亦知其所以然”,不仅要会修,还要知道修的是什么毛病,思路非常赞。
作者还通过实验发现,退化分类的准确率和图像修复的性能是正相关的,这印证了他们最初的猜想。同时,合适的掩码率(mask ratio)也很重要,太低了模型学不到上下文,太高了又会丢失关键信息。
上图展示了分类准确率与训练迭代次数、图像掩码率的关系,可以看到随着训练进行,分类准确率稳步提升,并且在75%的掩码率附近达到最佳。
UIR-2.5M:一个全新的大规模修复数据集
光有好的方法还不够,还需要足够多、足够好的数据来“喂养”模型。为此,作者们还贡献了一个大规模的通用图像修复数据集——UIR-2.5M。
这个数据集有多“壕”呢?它包含了 250万 个图像对,涵盖了 19种 不同的退化类型和超过 200个 退化等级,而且同时包含了合成数据和真实的现实世界数据。这为训练更鲁棒、更通用的修复模型提供了坚实的基础。
实验效果:性能显著提升
MaskDCPT 的效果到底如何?实验结果给出了答案:非常惊艳。
全能型修复任务(All-in-One Restoration)
在包含去雨、去雪、去模糊、去噪和去雾的“五项全能”修复任务上,使用 MaskDCPT 预训练的模型,无论是基于 CNN 还是 Transformer 架构,性能都得到了巨大提升。
从上表中可以看到,与那些需要专门为“全能”任务设计的复杂模型相比,仅仅是用了 MaskDCPT 预训练的经典模型(如 Uformer),就在 PSNR/SSIM 等指标上轻松超越了它们。PSNR 指标平均至少提升了 3.77 dB,这是一个非常显著的进步。
视觉效果对比也同样证明了其优越性,修复后的图像细节更清晰,伪影更少。
真实世界与未见过的退化场景
更具挑战性的是在真实世界和“域外”(Out-of-Domain)场景中的表现。
在6种真实世界的退化任务上,MaskDCPT 预训练的模型在感知指标 PIQE 上相比基线降低了 34.8%,这意味着修复后的图像在人眼看起来更自然、质量更高。
上图的视觉对比非常直观,经过 MaskDCPT 预训练的模型能够更好地处理真实复杂的低光和模糊问题。
当面对训练时从未见过的高强度噪声(σ = 75的高斯噪声)时,MaskDCPT 展现了强大的泛化能力。
可以看到,只有经过 MaskDCPT 预训练的模型能够有效去除强噪声,同时不产生多余的奇怪纹理。
混合退化场景
在更复杂的混合退化场景(比如低光+模糊)中,MaskDCPT 同样表现出色。
无论是定量指标还是视觉效果,都证明了该方法在处理复杂光照和结构问题上的能力。
消融实验
作者还进行了一系列消融实验,验证了方法设计的合理性。例如,他们比较了不同的掩码策略和掩码率,证明了 patch-level 的掩码和75%的掩码率是最佳选择。
同时,他们也验证了退化分类这个任务的重要性,证明了它确实能帮助模型提升修复性能。
总结
总的来说,MaskDCPT 这个工作直观、有效,通过一个巧妙的双任务设计,为通用图像修复的预训练提供了一个全新的、更强大的范式。作者不仅提出了新方法,还贡献了宝贵的数据集和开源代码,可以说是非常扎实和全面的工作了。
大家对这个“先诊断、后修复”的思路怎么看?欢迎在评论区留下你的看法!