图像超分辨讲解

图像超分辨是底层视觉若干任务中的其中一种,在底层拍照和图像显示方面有广泛的应用,我将从三个方面进行讲解,1.什么是图像超分辨,2.图像超分辨的要求,3.图像超分辨的一些传统算法。

图像超分辨讲解

图像超分辨的目的是从一张低分辨率图像构建出其对应的高分辨率图像,它在很多领域内都有广泛的应用,一个应用场景是用于安防监控,我们需要对一个区域进行放大,来看清楚里面有哪些事物,发生了什么,比如说,我们可以放大车牌来查看具体是那一辆车违反了交通规则,从而对那辆车的司机开出罚单;

再有我们可以利用图像超分辨技术来实现老电影或游戏的重制,提升其分辨率,从而提升我们观看电影或打游戏时的体验。

图像超分辨还可以用于医学图像,通过放大医学影响某一个区域的组织,来帮助医生进行更好的诊断。

对于图像超分辨,通常有两个要求:一个是输出的图像要具有足够多的细节,看起来更像是一张高质量的真实图片;另外一个要求是保持其内容与输入的低质量的图片内容一致,不能进行更改,任何一条不被满足,都不能称作是图像超分辨,比如说当图片尺寸变大,但图像并没有升高的时候,或者当图像的尺寸增大,并且分辨率也有所提升,但是所对应的内容发生改变时,都不能称为图像超分辨。

接下来我要介绍一些传统的超分辨的方法,最简单也是最常用的是基于插值的方法。比如对于一幅图像,当我们想把它超分两倍时,我们要对这些没有值的位置进行估计,使得填充上新的元素后,整张图像看起来比较平滑。

常用的插值方法包括最近邻方法、双线性插值法和双三次插值法,最近邻插值方法就是把最近的邻居的值赋给新的元素,一般情况下它的效果不是很平滑;双线性插值方法是考虑一个2*2的邻域,将新元素的值可以计算为其邻域内的已有元素值的加权平均,其中的权重是根据新元素及各个已知元素的空间距离来计算的;双三次插值也是类似的,只不过这个时候考虑的是4*4的邻域,权重的计算方法也更加复杂。但是基于插值的方法有一个缺点,就是很多图像在边缘出本身就具有不连续性,因此这种方法得到的结果看起来会显得稍微模糊一些。

另外一种更有效的方法是基于字典的方法:

首先是一个基于外部字典的方法,我们在训练时要收集大量的有代表性的成对的高质量和低质量的图像块,然后对于一个待超分的具体块,我们首先在集合中找到和这个输入图像相似的图像块,用它们相对应的高分辨率块来代替,再进行加权平均,就可以得到低质量图像块的高质量版本。这种方法可以得到较好的结果,但是当集合中没有足够多的数据时,它的表现就会受到限制。

这是基于内部字典的方法,它是基于非线性图形上的局部几何相似性,它总是为图像中某一个块在其他位置寻找类似的块,,再对其进行加权后,就可以很大程度的去除噪声,并且可以对原始不含噪声的部分进行增强。,这种方法不需要一个很大的数据集,而且速度更快,表现也更好,但是当图像中较少出现一些重复的图像块时,效果就会变得比较差。