端木春江 左德遥 赵頔
摘 要: 由于传统的基于插值的图像超分辨率算法容易使图像的边缘部分出现模糊或过度平滑的现象,对此提出一个仅沿图像边缘方向进行插值的算法,使垂直于边缘方向上的像素点不参与插值和滤波,从而减少图像过度平滑的几率。该算法首先检测图像的边缘,然后对边缘点沿量化的边缘方向进行三次样条(cubic spline)插值;对平滑点,先用双立方(bi-cubic)插值算法进行插值,再用各向异性算子进行滤波。实验表明,所提出算法的性能好于原有的超分辨率插值算法。
关键词: 图像处理; 图像超分辨率; 图像放大; 图像插值
中图分类号:TP37 文献标志码:A 文章编号:1006-8228(2018)03-01-03
The edge keeping super-resolution algorithm for real-time applications
Duanmu Chunjiang, Zuo Deyao, Zhao Di
(Zhejiang Normal University, Jinhua, Zhejiang 321004, China)
Abstract: Since the blur and the over-smooth phenomenons often appears in the traditional interpolation-based image super-resolution algorithms in the literature, a new super-resolution algorithm is proposed, which only interpolates the pixels along the edge direction. In this way, the pixels lying perpendicular to the image edges do not participate in the interpolation and filtering, so that the over-smooth occurring probability can be reduced. In this algorithm, the image edges are firstly detected. Then, the cubic spline interpolation is carried out along the image edge direction for the edge pixels, and the bi-cubic interpolation and an-isotropic filtering are carried out for the smooth pixels. Experimental results show that the proposed algorithm performs better than the original interpolation-based super-resolution algorithms.
Key words: image processing; image super-resolution; image magnification; image interpolation
0 引言
通过单幅参考图像的超分辨率方法可以把一幅低分辨率的图像放大为一幅高分辨率的图像,以提高图像的分辨率和清晰度。因而,其成为近年来的研究热点,并具有广泛的应用,如:对遥感图像、医学图像、监控图像、互联网中图像等所做的提高其分辨率的清晰化处理。传统的超分辨率放大的方法分为:基于插值的方法[5]、基于样例的方法[2]、基于稀疏表示的方法[1]、和基于深度学习的方法[4]。由于只有基于插值的方法具有较小的计算复杂度,适合于实时的应用,这里主要考虑对已有最优的插值方法[6]的改进。
传统的基于插值的超分辨率处理算法具有简单快速的特点。因而,可广泛地应用于实时地高清视频放大的场合。其他的超分辨处理的算法,由于计算复杂度高,耗时久,而不适于实时场合下应用。但是,传统的基于插值的算法容易使图像的边缘部分出现模糊或过度平滑的现象。为了在插值算法中降低图像边缘的模糊程度,提出了一个仅沿图像边缘方向进行插值的算法。这样,在垂直于边缘方向上的像素点在放大的时候就不参与插值和滤波,从而减少这些像素使图像过度平滑的几率。
在第2节将给出所提出方法的详细的介绍,第3节给出所提出方法的实验结果,并在第4节给出总结。
1 所提出的方法
我们所提出的方法,首先对低分辨率的像素进行边缘检测。然后,对图像边缘采用沿着边缘方向的插值处理以保持图像的边缘;对于图像平滑部分,采用各向异性的滤波进行处理。其中的详细步骤描述如下。
1.1 边缘像素点的检测
首先采用如下2个算子来检测图像中的边缘:
⑴
⑵
检测图像的边缘时,先将低分辨率图像f(i,j)与算子Gx、Gy作卷积,得到图像的梯度的模值G(i,j),然后将G(i,j)与预定义的阈值T1比较,阈值T1一般是根据经验取值。若G(i,j)>T1,则判定像素点(i,j)为边缘点,否则认为像素点(i,j)为非边缘点(即平滑点)。模值G(i,j)的计算式为:
⑶
梯度的角度的计算式为:
⑷
式⑶、式⑷中,?表示卷积运算。
1.2 边缘像素点的处理
对于灰度值大于T1的边缘点,首先标记其周围的待插值点为边缘点,然后以待插值的边缘点为中心,构建5×5的窗口,再沿边缘方向进行三次样条插值对该边缘点进行处理。其中边缘方向将由边缘像素点的梯度方向来确定,并被量化为这些角度。
三次样条插值在样条插值中运用最广泛。三次样条插值曲线是一个平滑的分段函数。在此,将沿边缘方向对边缘像素点进行三次样条插值,即用三次样条插值曲线沿这些角度和5×5窗口内像素点的灰度值进行方向滤波,以估计高分辨率图像上待插值点的灰度值。
给定n+1个已知像素点,则存在n个区间,一维的三次样条插值曲线S(x)在每个区间[xi,xi+1]上满足以下三个条件:①S(x)是一个三次函数;②函数值等于像素点的灰度值,即yi=S(xi);③S(x)的一阶导数S'(x)、二阶导数S''(x)在每个区间[xi,xi+1]上连续。所以,区间[xi,xi+1]上的三次样条插值曲线函数S(x)可表示为:
⑸
其中ai、bi、ci、di为4n个未知系数,可通过上述的三个条件以及边界条件求解。边界条件包括自然边界、非节点边界和固定边界。
其中,自然边界端点处的二阶导数为0,固定边界端点处一阶导的值为给定的已知值,非节点边界端点处的三阶导数与端点邻点的三阶导数相等。
1.3 对判定的平滑像素点的处理
在低分辨率的图像中未被标记为边缘点的待插值点即为平滑点。对于待插值的平滑点,首先找到该平滑点的16个近邻像素点,然后利用双立方插值算法对平滑点插值,再利用各向异性滤波算子滤波以更好地估计平滑点的灰度值。
各向异性滤波算子的思想来源于物理模型中的扩散模型,将图像的灰度看作杂质或温度。杂质浓度不均匀时,会从高浓度区域向低浓度区域扩散;温度不均匀时,会从高温度向低温度扩散。当扩散为各向同性时,扩散过程表示为:
⑹
其中div表示散度算子,表示图像的梯度。当a=1时,式⑹的解为:
⑺
其中f(x,y,t)表示擴散后的图像,f(x,y,0)表示原图像,是高斯滤波器,其中。
由式⑹、⑺可知,各向同性扩散相当于用高斯滤波器滤波图像,而高斯滤波器不能很好地保护图像的边缘。为此,根据P-M扩散方程的思想,设计了一个各向异性的滤波算子,可表示为:
⑻
其中α是一个参数,函数m(s)设置为一个单调递减函数。
⑼
其中k为需要通过实验来优化的参数。本文利用式⑻所示的各向异性滤波算子更新像素点的灰度值,其滤波表达式为:
⑽
其中β是一个参数,f(i,j,n)、f(i,j,n+1)分别是图像f(i,j)在第n、n+1次迭代的值,直到f(i,j,n)和f(i,j,n+1)的差值非常小时,迭代终止。f(i,j,n)的初始值为像素点(i,j)双立方插值后的值。
2 实验结果
本文首先采用了以往文献中经常用来比较超分辨率图像处理的测试图,即名为Lena、Butterfly、Parthenon、Raccoon、Baboon、Peppers的彩色图像作为彩色图像的标准测试图,并采用名为House、Elaine的灰度图像作为测试图。本文利用MATLAB软件来仿真算法的重建效果,并根据大量的实验结果,将本章所提出的方法中参数优化地设置如下:阈值T1设为100,k设置为2,参数α、β分别设置为0.1和2。
表1 测试图像的实验结果(PSNR(dB))
[图像 双立方
(bi-cubic)
插值方法 SAI插值
方法[6] 所提出的
方法 提出方法相对于SAI方法所提高的性能ΔPSNR) Lena 30.16 31.70 31.91 0.21 Butterfly 22.14 23.85 24.09 0.23 Parthenon 24.96 26.61 26.84 0.23 Raccoon 27.19 28.79 29.01 0.22 Baboon 22.40 24.11 24.34 0.23 Peppers 29.24 30.80 31.01 0.21 House 27.69 29.28 29.50 0.22 Elaine 30.48 32.01 32.22 0.21 平均 26.78 28.39 28.61 0.22 ]
表2 测试图像的实验结果(SSIM)
[图像 双立方
(bi-cubic)
插值方法 SAI插值
方法 本章所提
出的方法 本章方法相对于SAI方法所提高的性能(ΔSSIM) Lena 83.71 87.62 87.95 0.33 Butterfly 73.38 79.77 80.30 0.53 Parthenon 63.31 72.12 72.85 0.73 Raccoon 64.77 73.23 73.93 0.70 Baboon 47.34 59.98 61.03 1.05 Peppers 83.39 87.38 87.71 0.33 House 78.75 83.85 84.28 0.43 Elaine 73.35 79.75 80.28 0.53 平均 71.00 77.96 78.54 0.58 ]
表3 各种算法的平均运行时间(s)
[ 双立方
(bi-cubic)插值方法 SAI插值
方法[6] 基于深度
学习的
方法[4] 基于邻域
嵌入的
方法[2] 基于稀疏
字典的
方法[3] 所提出
的方法 平均用时
(以秒为
单位) 0.009 1.51 4233000 55220 2436 0.011 ]
由表1和表2可以看出,所提出的算法在PSNR和SSIM指标上都要高于双立方插值算法和目前最优的插值算法(SAI插值算法[6])。从表3可以看出,所提出的算法的用时较短,和双立方插值方法的用时大致相等,可以用于实时超分辨率放大应用的场合。
3 結论
提出了一种新的插值算法,其具有如下创新点:①对图像中的边缘像素点,仅沿边缘方向进行三次样条插值,减少了边缘的模糊程度。②边缘方向被量化为这些角度,复杂度低。③设计的各向异性滤波算子更好地估计了平滑像素点(非边缘像素点)插值后的灰度值。仿真结果显示其比双立方插值算法和SAI插值算法具有更好的性能,且其具有较低的计算复杂度,能胜任实时视频放大应用的场合。
参考文献(References):
[1] M. Protter Romano, M. Elad. Single image interpolation
via adaptive nonlocal sparsity-based modeling[J]. IEEE Trans. Image Process,2014.23(7):3085-3098
[2] W. T. Freeman, T. R. Jones, E. C. Pasztor. Example-
based super-resolution[J].IEEE Computer Graphics and Applications,2002.22(2):56-65
[3] Jianchao Yang, John Wright, Thomas S. Huang, Yi Ma.
Image Super-Resolution Via Sparse Representation[J]. IEEE Transactions on Image Processing,2010.19(11):2861-2873
[4] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou
Tang. Image Super-Resolution Using Deep Convolutional Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2016.38(2):295-307
[5] X. Li, M. T. Orchard. New edge-directed interpolation[J].
IEEE Transactions on Image Processing,2001.10(10):1521-1527
[6] K.-W. Hung, W.-C. Siu. Robust soft-decision
interpolation using weighted least squares[J]. IEEE Transactions on Image Processing,2012.21(3):1061-1069