项目地址见这里:http://www.wisdom.weizmann.ac.il/~vision/SingleImageSR.html
ICCV09的论文,目前引入有550+
简介
先简单说说什么是超分辨。
输入一张低分辨率图像,比如100x100,将其升高到到高分辨率,比如200x200,并且要求清晰度尽量不变。也就是输出结果比输入有着更多的信息,是一个ill-posed的问题,所以称为“超”分辨。
一开始超分辨问题一般是用多张的相似的低分辨图像恢复成单张高分辨率图像,后来发现了其局限性,提出了基于样例学习的方法,即通过产生多个“低分辨-高分辨”图像对并学习其中的对应关系。
该文章将上述两种方法称为“Classical SR”和“Example-based SR”,并提出一个框架将它们整合在一起,而且能够用于单张低分辨率图像到高分辨率图像的恢复。
核心
见上图,作者发现了图像的自相似性:即在同一个张图片的多个尺度下,能够找到外观极其类似的图像块。例,在原图中,左上角子图中的红框是屋子的一扇窗户;而在低分辨率图像中,它跟屋子的门极其相似(左下角子图红框)。于是可以认为找到了一个“低分辨-高分辨”图像对,这样就能够利用相关信息进行恢复。
两种形式的恢复
先说第一种Classical SR。
上图(a)中代表的过程就就是Classical SR的过程,也就是利用多张低分辨图像的同样位置的patch来拟合高分辨率图像中的对应区域。
这里需要提到,从高分辨率到低分辨率的产生一般写成下面形式:
$j$是下标,忽略之
$H$是高分辨图像, $L$是低分辨图像
$B$是一个blurred filter,比如PSF或者Guassian
$↓$表示下采样(就是最原始的nearest,没有用bilinear或者bicubic的)
所以对于低分辨率图片中的一点,可以找到高分辨率图片的一个patch进行对应(上图中的圆形,类似于CNN中的感受野的概念,下面也用感受野来表示这个patch),可以改写成一个线性的约束表达式:
当这些区域之间有重叠的时候,就可以通过联立方程求解了。
这个就是Classical SR的一般性求解过程,这里需要多张低分辨率图像。
加上该文章提出的自相似性,就可以只用单张的低分辨率图像了:对于低分辨图像中的每个patch,用NN找到相似的patch,然后映射会高分辨率的感受野,通过重叠部分来联立方程。(对应上图(b))
然后说第二种Example-based SR。
其实也直观,就是Classical SR是在同一个尺度下找相似的,而Example-based SR是在不同尺度下找相似的。
简单描述过程,如上图,对于$I_0$图像中的深绿色小块,在它下两层的图像$I_{-2}$中找到了一个相似块,该块对应回去在$I_0$中对应的是浅绿色的一个“大块”。那么就认为在$I_0$中找到了一对example。然后直接将它复制到$I_2$的对应位置。
可以看出这里做了一个假设,就是认为example之间的对应关系不用学习,直接复制就可以。
然后整体的框架也如上图所示,对于输入的一张低分辨图像$I_0$,结合Example-based和classical两种方法来恢复出高分辨率图像。
这里还有一个细节,就是作者使用了一种coarse to fine的思想,即对于高分辨率的图(图中的紫色部分),也就是先恢复$I_1$,然后对错误部分进行纠正(用back projected),然后继续恢复$I_2$,再纠正,直到恢复到$I_n$,也即是需要的高分辨率图$H$。