论文原名为“Image interpolation via collaging its non-local patches”
本文只对论文记录个人理解,细节部分可以去看原文,如有错误请指出。
中心思想
改算法的中心思想为:一个高分辨率图像块可以由四个低分辨率图像块重构组成;
高分辨率图片的一个像素块可以分解为由四种不同采样格得到的子像素块Yi, ya ,yb ,yc: 如下图所示,因为像素都是间隔采样且相邻,所以应该具有非常高的相似性。假设我们超分辨率的倍数是2;那么原图像素点可以理解为yi;也就是准确值,我们需要找到剩下三个像素块ya、yb、yc,如果我们找到就可以通过贴片的方式重构得到高分辨率像素块fi。为了保证我们在找的过程中ya、yb、yc不是同一个像素块,我们通过其左下角的坐标进行限制,保证ya yb yc三个具有不同的空间坐标关系。
如果用yi=ya=yb=yc来去寻找,那么明显对图片是过于苛刻的,所以寻找L个相似度最高的图像块,然后对这个图像块进行加权求和来近似ya yb 和yc。
得到ya yb yc后重新编码重构,即可得到高分辨率fi。
算法实现
1.对图片进行双线性插值得到伪高分辨率结果,其中yi所在的像素点为真实值;
2.设置迭代次数以及其它参数,需要多次进行插值不断对图片进行修正。
3.将图片分为多个像素块,获取某一像素块fi信息,然后再fi为中心的搜索框内寻找相似度前L个的faj fbj fcj ,(PS:前文提到的yi是由fi与采样网格G00相乘得到的)如下所示
4.然后通过矩阵的最小二乘法进行计算得到每个权重,然后加权求和得到最终的fa fb fc
5.将fa fb fc 进行重新编码得到该轮次输出的像素块fi
6遍历完所有像素块,完成图片的更新
7.所有轮数都计算完成,输出最终的高分辨率图片。