CVPR 2018的一篇可以处理多种图像恢复任务的工作,很有意思,简单却有不错的效果。这个方法有特点的是,模型只需要在原始需要处理得数据上进行训练(这个训练仅使用这一个样本),通过对不同任务定制不同得输入,使用原始数据进行监督(类似于重建,但是这里仅使用了一个生成器的结构,采样噪声数据来生成结果)。在逐步“拟合”原始数据的过程中,模型会逐渐先学习到那些较为简单的先验规则,这时,只需要控制学习的迭代次数,就可以获得一个不错的恢复效果。
虽然这里使用具有需要改善的数据来监督,但是在训练过程没有达到过拟合时,实际上此时的模型可以实现一种对于那些高频瑕疵进行去除的效果,通过人工控制(指定迭代次数),倒是实现了高频成分添加量的一个控制。

主要方法

优势与不足

关于其他的分析,知乎上这个回答很不错,这里贴一下。

作者:知乎用户 链接:https://www.zhihu.com/question/263404981/answer/269351837 来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个研究的思路很新颖,但仔细想想,得出的结论其实是比较自然的。

自然图像作为所有可能的图像集合中很小的子集,遵循了许多先验规则,这类先验规则也被用于了许多传统的图像处理算法中。

例如,降噪、超分辨率所用的图像的自相似性,去雾使用的dark channel prior,Retinex使用的piecewise smooth等等。

而在这篇文章中的生成器网络,就会从作为label输入的参照图像中学到许多自然图像的先验特征。

具体到文中各个任务,可以分别理解。

相对于高频的、无序(信息熵高)的噪声,低频、有规则的自然图像是更容易被编码的。通过训练,CNN能很自然地提取出自然图像中普遍的特征,完成生成干净图像的任务。而对于剩余的噪声,则是要依靠网络的死记硬背来完成(在很多任务里这种情况就属于过拟合了),于是就需要更久的训练才能实现。

这种现象其实是很普遍的,例如图像、视频编码器。码率不足时就保留不了噪声;给了足够的码率,通过心理学优化,能保留噪声的pattern但不能还原;要完整地还原原始的噪声,则要付出高得多的码率。甚至由于现代编码标准与编码器设计上的进步,如x265这类编码器的“降噪”效果甚至好于一大票的非SOTA降噪算法。

网络学习生成图像的过程就类似于编解码器,自然也有着相似的性质。

另外这个结果也跟使用的loss有关,这篇文章使用的MSE天然就倾向于生成平滑、平均的结果,而对高频的噪声不敏感。如果改用基于complexity的loss,类似于视频编码器RDO中的心理学优化,就会更优先产生高频细节了(不一定是还原)。

对于inpainting,因为CNN在反向传播的时候是对图像各个部分对loss的梯度做平均,于是占据图像主要部分的自然图像就成为了优先学习的对象,网络也就先学会了生成不被“异物”遮挡的图像。

对于超分辨率同理,网络通过学习低分辨率图像的特征,并把这些特征应用在高分辨率图像中,等于是利用了不同尺度上的自相似性进行图像放大。

而这篇文章中的方法不能完成的图像修复,我认为deblurring就是其一。因为前述任务都能学习到自然图像中的高频特征,但若是参照模糊图像学习,学到的永远都是低频特征。更何况在前述任务的迭代过程中,首先学习到的也是生成模糊的图像。

通过修改loss或许能实现deblurring,但我也没想出有什么可行的方案。

相关链接