尽管单任务图像复原已取得了极大成功,但单模型处理多复原任务仍极具挑战。本文对 “多合一”图像复原任务进行了深入探索并指出其所面临的两个关键挑战并提出了对应的应对方案:
研究结果表明,采用所提的顺序学习和提示学习策略可以显著提高CNN和Transformer模型在多合一复原任务上的性能。此外,这两种学习策略还能够相互促进,增强模型的鲁棒性。
https://arxiv.org/abs/2401.03379 https://github.com/Xiangtaokong/MiOIR
“多合一”图像复原(Multiple-in-one Image Restoration, MiOIR)旨在通过一个模型处理多个图像复原问题,即不同任务的输入图像具有不同类型的画质退化问题。我们采用
表示MiOIR的输入,T表示任务数量,
表示第t个任务;MiOIR对应的真值表示为
。数据样例可以表示为
,N表示样本数量,
分别表示第t个任务第n个样例输入与输出。需要注意的是:不同任务的输入图像
具有相同的高质量真值图像
。
MiOIR可以描述为:
。它可以通过最小化如下损失进行学习,学习策略类似上图。
但是,MiOIR模型训练存在两个关键性挑战:
针对于上述问题,本文提出了两种优化策略:顺序学习策略与提示学习策略。接下来,我们针对这两种策略进行逐步解析。
顺序学习策略是针对“多合一”复原任务的多样性目标优化难问题而设计。如前述所提,在MiOIR模型训练过程中,所有训练数据均是可获取的的,关键是如何找一个更优的学习策略。
最直接的策略就是将所有训练数据混合后直接进行训练。但是,已有预训练相关研究表明:非相关图像复原任务预训练都可以为其他图像复原任务提供一个足够好的起点。基于此,如果我们让模型现在某些任务上学习,这些前置任务可以视作预训练任务,因此可以为后续其他任务的训练提供一个好的起点。
有很多种任务拆分方式,作为探索,我们采用了最简单的方法,如左图所示。顺序学习策略通过增量方式(即逐个添加复原任务)对MiOIR进行训练学习。经实验论证,有很多学习顺序都可以导致性能改善。
关于顺序学习顺序,作者建议:高频重建类任务(如超分、去模糊等)在前,全局亮度调整类任务(如去雾、低光增强)在后。
针对任务自适应挑战,作者提出了提示学习策略。合适的提示有助于网络更好的理解图像复原任务,进而针对性的进行图像复原处理。作者提出了两种典型的提示学习策略:显式提示学习(右图上)与自适应提示学习(右图下)。
作者采用三个CNN层(表示为
)进行提示信息P的提取,然后通过全连接层将其转换为合适形状的调制尺度s与调试偏置b参数,最后通过如下方式对复原阶段的特征进行调制处理:
需要注意:两种提示学习方式的区别仅在于如何得到提示信息,后续复原阶段的提示注入方式是相同的。
如上表所示,在域内测试集上,相比于混合学习策略
作者进一步在域外与未知退化测试集上验证了所提方案的泛化性,结果见上表,可以看到:
前面已经验证了所提方案的有效性,作者进一步验证该方案是否可以提升当前SOTA方案PromptIR的性能,结果见上表。
作者进一步验证了所提方案在其他骨干下的性能对比,见上表,可以看到:
最后,作者从可解释性维度(DDR、CHI)对所提方案进行了分析,可参考左图示意。
对比左图a与b可以看到:
对比左图c与d可以看到:
从最近几年研究来看,底层视觉领域的研究方向已经开始朝向“工业应用”偏移。针对真实场景下的图像复原问题,我们需要关注如何有效解决复杂退化场景中的图像超分、人脸复原以及面向传感器特性的图像降噪等问题。在应用层面上,这些场景可以分为限定场景下的图像复原和通用场景下的图像复原,而“多合一”图像复原是通用场景图像复原在实际应用中必须克服的难点。
事实上,围绕提示学习(任务自适应性)的研究还是挺多的,比如SRMD、UDVD、DASR、MRDA,再比如Diffusion时代的各种提示学习下的图像复原/超分方案等等。但是,多任务学习在底层视觉领域受到的关注貌似并不多。结合上述信息,这篇论文的关键其实是多任务学习中的“多目标训练冲突”问题,在引入提示学习/条件学习也就是非常自然的事情了。
多任务学习最简单而直接方法肯定是混合学习,但受限于种种因素容易陷入局部最优,甚至偶尔会出现训练不收敛问题。增量渐进式学习策略可以极大程度上避免训练不收敛问题,但恐仍无法避免局部最优问题。此外,在实际应用中,可能还需要考虑不同任务的不平衡问题,而这好像在底层视觉领域尚未得到应有的重视~
从某种程度上讲,这篇论文为真实场景图像复原引入了一个新的观察视角,在迈向通用复原大模型的路上又前进了一步~