APP下载

基于图像局部信息聚类的增强RAISR超分辨率算法

2021-06-03孙孟川谭生详王晔

现代计算机 2021年9期
关键词:插值类别卷积

孙孟川,谭生详,王晔

(四川大学计算机学院,成都610065)

0 引言

单图像超分辨率(SISR)的任务是通过一张低分辨率(LR)图像来估计其可能的高分辨率(HR)图像,这一基础视觉任务可以有很多现实的应用,例如医学影像、卫星遥感图像、图像压缩等,近年来,这一问题在学术界也得到了广泛的关注和研究。图像的分辨率指的是图像的像素点个数。一张图像的像素点个数越多,其能够承载的信息也就越多。因此一般而言,高分辨率图像具有更好的视觉效果,人眼通常能在高分辨率图像中观察到更加细腻的纹理。图像的线性退化模型可以表示为:

其中z是输入的LR图像;x是未知的HR图像;H是线性模糊核;D s是下采样算子,其中系数s是下采样的倍数。超分辨率任务的目标就是恢复出潜在的HR图像x。在退化模型中,下采样操作会有大量信息损失,因此超分辨率任务需要解决的是一个欠定的逆问题[3,5],也就是说方程的解不唯一。因此超分辨率方法需要引入先验信息,通过约束解空间来获得唯一解。

RAISR[3]方法是Google在2016年提出的一种基于样本学习的超分辨率算法,它主要的特点就是快速、准确,即其速度比基于深度学习的方法更加迅速,同时也保持了具有竞争力的图像重建质量,并且不需要大量的训练样本。其核心思想就是先通过廉价的插值方式把LR图像转化为HR图像,然后以HR图像局部的梯度信息[4]来对图像块进行分类,对于不同类别图像块采用对应的预训练的滤波器进行卷积操作来对纹理进行增强。

1 现有方法以及问题

1.1 基于插值的方法

上采样最基本的方法是基于线性插值的方法,包括最邻近插值、双线性插值、双三次插值。这些算法复杂度低,执行速度很快,因此被广泛地采用。同时这些算法都是基于图像信息的连续性假设,这使得插值方法对于高频信息很难恢复,因此不适用于重建一些比较复杂的纹理结构。在RAISR中,使用插值来作为第一步使图像被快速上采样到需要的分辨率。

1.2 基于学习的方法

在基于学习的方法中,具有代表性的是基于稀疏模型的超分辨率的方法[1,2]。这一类方法的核心思想是利用外部数据集,来让模型来从中学习从LR图像块到对应HR图像块的映射,通常在训练之前需要人为地生成成对的图像块。以基于稀疏模型的方法为例,通过训练可以得到高分辨率和低分辨率的稀疏字典,利用字典中的稀疏系数可以重建图像块。这类方法利用图像块之间的相似性,能够补偿基于插值的方法所遗失的高频信息,从而使图像能达到更清晰的视觉效果。RAISR也属于这一类的算法,因为RAISR也是从数据集中学习到丰富的卷积核,这些卷积核的集合便是把低质量图像映射到高质量图像的模型。

1.3 基于深度学习的方法

近年来,由于神经网络模型强大的非线性表达能力以及硬件的飞速发展,基于深度学习的在众多计算机视觉任务中都取得了传统方法难以超越的成绩。在超分辨率领域最开始使用深度学习的研究是Dong等人提出的SRCNN网络[5],其利用卷积神经网络(CNN)统一了提取图像特征、非线性映射、图像重建三个步骤,完成了端到端的训练,取得了不错的效果,但是庞大的参数量的限制,其运行速度需要高性能图形处理器才能以及CUDA等加速框架才能获得提升。最近还有学者把注意力转到了真实场景的超分辨率任务中,例如ESRGAN[6]、RealSR[7]等人通过探索真实场景下图像的退化模型来使得重建图像具有很好的视觉效果,而不仅仅局限于PSNR、SSIM等传统指标。但是这一类方法会导致图像引入过多额外信息,在医学图像等领域可能会误导从医人员的判断,其应用的安全性还有待进一步验证。RAISR算法训练出的卷积核能够增强纹理,并且在频率域我们可以观察到其也有低通滤波卷积核的特征,即能抑制高频信号来减轻摩尔纹等一些会使图像失真的混叠现象。

2 算法实现

算法主要以RAISR为框架,整体上分为三个步骤。第一步利用廉价的插值方法(双线性插值或者双三次插值),把低分辨率图像映射为高分辨率的图像,这一步可以让图像先达到需要的分辨率水平;第二步遍历高分辨率图像每一个图像块(patch),计算图像块的梯度统计信息,包括角度、强度、相关性三类数据,其中角度划分为24个方向,强度与相关性都为3个层级,因此每一个类别的图像块会训练216(24×3×3)个卷积核。值得一提的是,RAISR作者认为放大R倍的图像应该把像素点分为R×R个类别,在每个类别下面分别训练这216个卷积核,这样可以根据放大倍数来对应扩充卷积核的数量。这里作者采用的分类方法过于粗糙,本文便是针对这一块内容来改进;第三步利用局部梯度统计信息,可以通过哈希函数迅速找到对应的卷积核,最终用预训练的卷积核作用于图像块,得到更高质量的图像。整个上采样的过程如图1所示。

图1

卷积核的训练基于公式(2):

其中i=1,···,L为数据集中图像的编号;h∈Rd2为需要求解的卷积核,在这里以向量的形式表达;Ai∈R MN*d2为图像中抽取出的图像块,b i为真实的高分辨率图像。这是一个最小化最小二乘的问题,可以使用共轭梯度的方法快速求解出结果。

在RAISR中,作者认为通过插值放大R倍后的图像中,像素点可以分为R×R个像素类别,通过在每个类别下面单独使用梯度统计信息细化分类来训练卷积核。图2为以两倍超分为例的示意图,最终全局会训练864(2×2×216)个卷积核。

图2

这样简单的处理方法可以引入一定的空间位置信息。但以此带来的问题是不同类别但具有相同梯度统计信息的的卷积核会具有较大的差异,换言之,相似的图像块会采用差异较大的卷积核去进行计算,这减弱了卷积核的局部内容适应性。因此,本文提出利用局部信息聚类来代替上述过程,可以得到重叠更少、差异化更明显的卷积核,最后在测试数据集上也获得了更好的重建效果。聚类流程图如图3。

图3

PCA是一个应用非常广泛的数据降维方法,我们通过实验发现图像块(11×11)能量基本上集中在一个特征向量上,因此我们直接把每个图像块压缩到1维来作为聚类的根据。在压缩到两个及两个以上维度的对比实验中,我们发现大多数样本都会被聚集在一类之中,分类结果极不均衡,没有达到分类的目的,这样会导致其他类别下的卷积核由于样本量不够而发生训练不充分的情况。为了保持算法的简单性,聚类算法采用K-means来实现。

3 实验结果与分析

实验环境搭建在MacOS Catalina 10.15.7上,CPU使用的是第八代Intel Core i5四核1.4GHz。文章相关代码都存放在了开源网站GitHub上(https://github.com/Slayerxxx/E-RAISR)。训练数据集为BSD200,测试数据集使用标准的Set 5和Set 14数据集,图像重建质量指标使用PSNR来进行评估,放大倍数均为两倍。如表1所示,本文提出的增强RAISR算法在两个数据集上都超过了原始方法。

表1

算法先训练K-means聚类器,再训练卷积核,Kmeans的类别中心数目为放大因子的平方,卷积核的大小为11×11。两者训练都是采用BSD200数据集。Kmeans的训练在每一张图片随机采样3000个图像块来作为聚类样本,这些样本在进行聚类前经过了数据预处理操作,包括把像素值从0到255等比例转化到0-1,以及做了均值减法让数据零中心化。卷积核的训练样本不需要采样,而是遍历每一张图片的每一个像素点,以每一个像素点作为中心来提取大小为11×11的图像块。

我们同样也通过实验去统计了通过聚类得到的这R×R个类别的命中比例,发现在不同图片上会有不同的分类比例,也就是说分类会更加具有内容适应性,而不是原方法那样平均分类,因此验证了所提出的聚类方法下训练出的卷积核更具有差异化的特性。

4 结语

本文按三个类别总结了单图像超分辨率的研究现状,分析了各个方法的优势以及缺陷,提出了RAISR算法的改进方法,并且在主流数据集上通过实验验证了有效性,同时也理论分析了其内在原因。RAISR算法因其速度快被Google应用在了自己的产品中,但是其为了速度牺牲了一定的重建质量,本文提出的改进方法在不影响速度的情况下提升了一定的质量指标。目前学术界的目光逐渐转移到了真实场景下的超分辨率任务中,这样的场景更能落地发挥其价值,因此在今后的研究中,可以优化RAISR的图像退化模型假设,加入随机噪声等其他因素,也许可以让模型学习到的卷积核在真实场景的图像上也能获得不错的效果。

猜你喜欢

插值类别卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
滑动式Lagrange与Chebyshev插值方法对BDS精密星历内插及其精度分析
基于图像处理与卷积神经网络的零件识别
一起去图书馆吧
基于深度卷积网络与空洞卷积融合的人群计数
福州市PM2.5浓度分布的空间插值方法比较
简析基于概率预测的网络数学模型建构
不同空间特征下插值精度及变化规律研究
基于混合并行的Kriging插值算法研究