基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕

  • ✳️ 一、引言
  • ✳️ 二、基于单帧图像的超分辨率重构技术
    • ✳️ 2.1 最近邻域插值法
    • ✳️ 2.2 双线性插值法
    • ✳️ 2.3 双三次插值法(Keys’插值)
  • ✳️ 三、神经网络插值原理
    • ✳️ 3.1 训练阶段:
    • ✳️ 3.2 测试阶段
  • ✳️ 四、实验验证
    • ✳️ 4.1 基于神经网络双线性插值实验验证
    • ✳️ 4.2 基于神经网络Keys’插值(双三次Bicubic)实验验证
    • ✳️ 4.3 基于神经网络三次样条插值(Cubic spline interpolation)实验验证
  • ✳️ 五、参考文献
  • ✳️ 六、Matlab代码获取

✳️ 一、引言

由于多项式插值法重构得到的高分辨率图像会有边缘锯齿现象等现象, 于是研究者们提出了基于学习的超分辨率重构算法, 将目光转向图像外部的可用先验知识, 从内部有限的先验知识局限中走出来。 基于学习的超分辨率重构, 是在深度学习的基础上, 通过算法学习初始图像, 得到外部先验信息, 将大量图像的知识进行集中得到足够的先验信息, 以此作为算法的处理基础, 得到高分辨率图像。

学习重构法是将当前比较热门的机器学习思想引入图像重构, 通过算法模拟人类的认知过程, 归纳高、 低分辨率图像之间的映射关系, 经过训练得到该关系后, 低分辨率图像输入时就会通过该映射形成对应的高分辨率图像, 完成超分辨率重构。 所以, 基于学习的超分辨率重构技术就是训练得到高、 低分辨率图像之间的映射关系。

按照学习过程的程度不同, 可以将学习重构法分为浅度和深度学习重构法,浅度学习法最具代表性的算法是稀疏表示重构法, 深度学习法的代表算法是基于卷积神经网络的超分辨率重构算法。

稀疏表示最开始是在信号的表示、 压缩, 原始信号的逼真度评判与稀疏度表示。 在图像处理的发展中, 稀疏表示逐渐成为其中一种重要的技术, 被应用于图像压缩、 去噪、 复原等领域。 基于稀疏表示的超分辨率重构技术就是通过学习稀疏表示的先验知识, 计算估计出对应的高分辨率图像。 稀疏表示模型认为, 图像时可以被完整或有效近似表示成为一组原子的线性组合信号, 由稀疏系数和多个 n维度原子组成的字典表示, 故对于稀疏表示的超分辨率重构关键技术就在于稀疏系数的求解和字典的构建。

卷积神经网络最早被提出是 20 世纪中期的生物学, 后来逐渐被计算机视觉领域研究应用, 目前已广泛用于图像分类、 人物识别等方面。 卷积神经网络具有一些不同于其他网络结构的特殊之处: 局部感知、 权值共享及空间降采样。 基于卷积神经网络的超分辨率重构技术是直接建立高分辨率图像和原始低分辨率图像之间的映射, 通过中间网络的学习训练得到映射函数, 主要分为三个步骤: 提取图像块、 非线性映射、 图像重构。 在提取图像块的操作过程中, 网络需要通过卷积来提取输入的低分辨率图像, 并将得到的图像块以向量的形式表示; 第二步中网络通过卷积操作, 将提取得到的图像块向量映射成其他的高维向量, 这些向量与相应的高分辨率图像块对应; 最后, 网络通过卷积操作, 得到并组合高分辨率图像块, 完成超分辨率图像重构。

✳️ 二、基于单帧图像的超分辨率重构技术

基于单帧图像的超分辨率重构, 顾名思义是指对一张低分辨率图像进行处理得到其对应的高分辨率图像的技术。 因为该技术重构前后都只有一帧图像, 所以重构过程可使用的先验信息就相对很少, 则对应的约束条件也就越少, 所以单帧图像的超分辨率重构技术的先验知识引入主要为: 一是尽可能挖掘图像本身的内部信息, 找寻图像中相邻像素点的潜在关系, 得到原图像中没有的高频信息;另一种则是根据图像外部知识进行学习, 从而引入高频信息。 由此两种方法可以得到单帧图像的超分辨率重构技术主要有: 基于插值的单帧图像超分辨率重构和基于学习的单帧图像超分辨率重构。

✳️ 2.1 最近邻域插值法

最近邻域插值法是多项式插值法中的一种,是对多项式中的零阶项进行插值, 插值过程就是简单的像素点复制,如图1所示,没有考虑各像素点之间的相互影响。 具体做法是:找到待插像素点所映射位置的最近像素点,复制该像素点灰度值到待插点出,重复操作所有的像素点,即可得到最后的结果。此方法得到的结果会产生边缘锯齿现象和马赛克效应,但是处理速度却是最快的。

基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码_第1张图片

图1 最近邻域插值法原理示意图[1]

✳️ 2.2 双线性插值法

双线性插值法同样是一种多项式插值法。 与最近邻域插值法不同的是, 双线性插值法考虑待插点周围像素的影响, 通过加权平均得到待插点的灰度值。 在插值过程中, 需要确定待插点映射位置最近的 4 个像素点, 分别计算该点与这四个点的距离值, 以此确定各自的权重, 即距离越近权重越大, 对待插点影响越大。假设待插值像素为 f (x, y), 像素点所在的位置为 (x, y), 与此像素点距离最近的 4个点分别是 f ( x k , y k ) f\left( {{x}_{k}},{{y}_{k}} \right) f(xk,yk) f ( x k + 1 , y k ) f\left( {{x}_{k+1}},{{y}_{k}} \right) f(xk+1,yk) f ( x k , y k + 1 ) f\left( {{x}_{k}},{{y}_{k+1}} \right) f(xk,yk+1) f ( x k + 1 , y k + 1 ) f\left( {{x}_{k+1}},{{y}_{k+1}} \right) f(xk+1,yk+1), x位于 xk 和 xk+1 之间, y位于 yk 和 yk+1之间。 其中, 像素之间的距离为 1, 而 x与 xk 之间的距离为 s1,y与 yk 的距离为 s2, 故双线性插值法的计算表达式可以表示为:
在这里插入图片描述

由于双线性插值法在插值过程中引入周围 4 个点的权重, 所以得到的结果图比最近邻域插值的直接复制结果更加平滑。 而且该方法的计算程度也比较低, 但是双线性插值法得到的图像边缘和细节的表现力相对较弱。

✳️ 2.3 双三次插值法(Keys’插值)

双三次插值法与最近邻域插值、 双线性插值同样为多项式插值法, 不同的是该方法是一种分段三次插值, 通过尽可能拟合sin x/x函数来靠近理想状态的滤波器,从而得到更理想的高分辨率图像插值结果。 双三次插值法和双线性插值法相似,引入周围像素的加权值, 但是双三次插值的加权平均是考虑周围 16 个像素点的影响, 以这 16 个点的加权平均值作为插值点的灰度值。 将原始低分辨率图像中的每个点做该处理后得到最终高分辨率结果。 使用的多项式插值函数为:

基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码_第2张图片

假设待插点的位置是 (x, y), x位于 xk 和 xk+1 之间, y 位于 yk 和 yk+1之间, 像素之间的距离为 1, 而 x与 xk 之间的距离为 s1, y与 yk 的距离为 s2, 故双三次插值法的计算表达式可以表示为:

在这里插入图片描述

其中

在这里插入图片描述

基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码_第3张图片

双三次插值函数与理想状态下的滤波器函数接近, 所以由此方法得到的重构结果不会产生边缘锯齿现象以及图像的马赛克效应, 在视觉上显得更为真实。

多项式插值超分辨率重构算法虽然简单易于实现, 但是在插值过程中并没有考虑被插值图像的局部特性, 只是简单的将待插值点周围的有限个像素点进行计算得到灰度值信息。 所以通过该方法得到的超分辨率图像结果存在一些问题,如模糊效应、 块效应、 混叠效应等。 为了避免诸如此类现象的发生, 研究者们进行了更多的尝试和研究, 提出更多有效的插值方法, 以及基于学习的超分辨率重构算法等等。

✳️ 三、神经网络插值原理

多项插值神经网络技术的实现步骤如下:

✳️ 3.1 训练阶段:

(1) 采用某多项式插值技术实现图像集的内插。

(2) 将所有已插值像素点按照向量形式排序估计(对于双线性插值选两个点,对于Keys’插值和三次样条插值选四个点)。

(3) 所有向量作为神经网络输入,其插值结果作为输出。

(4) 采用已有数据集对神经网络进行训练。

✳️ 3.2 测试阶段

(1) 将所有待插值像素点按照向量形式排序估计。

(2) 将得到的向量输入神经网络中,然后计算输出。

任何固定大小的神经网络都可用于所有插值算法。采用相应的训练算法来调整网络权重,主要目的是使期望输出与实际输出的方差和最小。神经网络中的每一个权重都附加一增量来加速训练过程。和误差反向传播(EBP)算法一样,神经网络训练过程会在超过迭代次数、达到最小误差或者达到训练周期数后结束。

✳️ 四、实验验证

✳️ 4.1 基于神经网络双线性插值实验验证

在模拟实验中,首先对原始图像进行降采样,然后加入高斯白噪声(AWGN)来模拟低分辨率图像降质模型,最后,对低分辨率图像进行双线性插值向量形式排序估计,并将其作为神经网络输入,其插值结果作为输出,得到超分辨重建结果如下图所示,此时,重构图像与原始图像之间的峰值信噪比为22.9996。

基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码_第4张图片

图2 基于神经网络双线性插值图像超分辨重构

✳️ 4.2 基于神经网络Keys’插值(双三次Bicubic)实验验证

对低分辨率图像进行双三次插值,获得向量形式排序估计,并将其作为神经网络输入,其插值结果作为输出,得到超分辨重建结果如下图所示,此时,重构图像与原始图像之间的峰值信噪比为23.1746。

基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码_第5张图片

图3 基于神经网络双三次插值图像超分辨重构

✳️ 4.3 基于神经网络三次样条插值(Cubic spline interpolation)实验验证

对低分辨率图像进行三次样条插值(Cubic spline interpolation),获得向量形式排序估计,并将其作为神经网络输入,其插值结果作为输出,得到超分辨重建结果如下图所示,此时,重构图像与原始图像之间的峰值信噪比为22.8858。

基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码_第6张图片

图4 基于神经网络三次样条插值图像超分辨重构

✳️ 五、参考文献

[1] 程杰. 基于扫描干涉的红外大视场表面形貌测量技术研究[D]: 合肥工业大学, 2021.
[2] M. Awad, S. E. El-Khamy and M. M. Abd Elnaby. 2009. Neural Modeling of Polynomial Image Interpolation. In Proceedings of International Conference on Computer Engineering and Systems, Cairo, 469–474.

✳️ 六、Matlab代码获取

上述实验均由Matlab代码开展,可私信博主获取。


博主简介:研究方向涉及智能图像处理、深度学习、卷积神经网络等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


你可能感兴趣的:(#,1.5,图像超分辨重构,三,深度学习,神经网络图像插值,双三次插值法,Keys’插值,超分辨图像重构,三次样条插值)