孙雯雯,陶 胜
(集美大学 理学院,福建 厦门 361021)
人们在日常生活中经常需要在各式各样的设备上显示图像,图像经常需要改变尺寸或纵横比以适应日益多样化的显示设备,因此图像缩放技术已成为图像处理领域的一个研究热点问题。作为传统的图像缩放技术,均匀缩放[1]在处理非等比例的图像缩放时,会使图像被压扁或拉伸,尤其在纵横比变化很大时,图像会产生明显失真,视觉效果不好。而作为另一种传统缩放技术的裁切技术虽能避免压扁或拉伸图像,但容易丢失过多图像信息,特别是在目标尺寸明显减小的情况下。
为此,很多学者提出了基于内容感知的图像缩放方法[2,3]。2007年Avidan,Shamir[4]首次提出的Seam Carving图像缩放算法较为经典,它通过每次删除图像中能量值最小的八连通曲线,达到图像所满足的条件。但存在计算量大和可能结构畸变的缺陷,很多学者在此基础上提出了改进算法[5-8]。此外,施美玲等[9]提出了一种形变量度量模型,该模型考虑网格形状和大小,让用户通过参数调整有选择地控制主体对象的大小,以达到保持图像重要特征的目的。赵旦峰等[10]提出基于随机置乱的内容感知缩放方法,利用显著图对列/行能量向量进行随机重排,抽取满足条件的列/行,可以提高缩放速度。郭迎春等[11]提出了基于概率随机裁剪的图像缩放方法,该方法结合依概率随机裁剪与阈值学习,对非保护区域与保护区域使用不同的缩放比例。谷香丽等[12]提出一种基于弹簧变形模型的图像缩放方法,该方法利用弹簧系统的变形带动网格的变形,最终实现图像缩放。
较好的图像缩放算法需要在保持图像重要内容的同时,还要顾及图像的整体概貌与视觉的连贯性。据此,本文提出一种基于相关分析和显著性检测的图像缩放方法,首先结合相关分析与显著性检测这两种方法,定义各列/行的影响度值,进而标注影响度值低的列/行,使缩放只发生在影响度值低的列/行上。然后采用影响度扩散的方法,将被缩放列/行的影响度转移到相邻两列/行,避免了因连续过多缩放列/行而导致的整体概貌失真,最终实现即能保护图像重要内容又可以顾及整体视觉效果的目的。
对于宽度为N,高度为M的原始图像I,缩放为宽度为N′,高度为M′的目标图像I′。本文是从宽度与高度双方向进行缩放,不失一般性,下面以宽度缩放为例阐述缩放过程,对于高度的缩放,用相同方法处理即可。
将原始图像I转化为灰度图像,可以用M×N阶矩阵来表示,即
(1)
将数字图像的列看作随机变量,相关分析可以发现变量间的相互关系,其方法有很多,为简便起见,本文采用Pearson相关系数度量不同列之间关系密切程度,计算公式如下:
(2)
(3)
在图像上它能反映该列与相邻两列的相似程度,一定程度上可以衡量该列对图像的影响程度。Rcol(j)越大意味着第i列与相邻两列相关程度越强,对图像主体内容的影响越小,于是对Rcol(j)由大到小进行排序,标注出前|N′-N|列,使缩放只发生在这些列上。为直观显示,将这|N′-N|列用黑线进行标注,对于行的标注,只需对矩阵F转置得到Rrow(i)再进行相同操作即可,如图1(b)所示。
(a)原图
可以看出,利用相关分析标注的缩放部分能避开绝大部分图像的重要内容(花朵),但仍有少许黑线穿过,为了更好地保护图像的重要内容,下面结合显著性检测优化该方法。
人类视觉系统具有快速定位感兴趣区域的能力, 在计算机视觉领域中,显著性检测利用计算机来模拟人的视觉注意机制,通过在一定区域内突出某个事物,从而获取图片上相对比较重要的信息。近年来,许多学者提出了不同的显著性检测方法,其中Achanta等[13]提出的基于频率调谐(Frequency-tuned)的显著性检测算法(FT算法),首先对图像进行高斯低通滤波,然后在CIELab颜色空间中计算滤波后图像的单个像素与原图像全体像素平均值的欧氏距离,作为该像素的显著值。FT算法简单,可生成与原图像分辨率相同的显著图,且在突出显著区域的同时有较为清晰的边界,测试效果较好。因此,本文采用FT显著性检测算法建立显著图。
对于宽度为N,高度为M的原始图像I,FT算法具体实现步骤如下:
首先计算图像I在CIELab颜色空间中3个特征分量的均值Iμ=(Lμ,aμ,bμ)T:
(4)
然后对图像I进行高斯滤波得到图像IG:
IG=I⊗G
(5)
其中G为p×p的高斯滤波器,尺寸一般为3×3或5×5。 图像IG在CIELab颜色空间中3个特征分量为IG=(LG,aG,bG)T。
图像I在点(i,j)的显著值计算公式:
S(i,j)=‖IG(i,j)-Iμ‖=[LG(i,j)-Lμ]2+[aG(i,j)-aμ]2+[bG(i,j)-bμ]2
(6)
最后得到图像I的显著图,如图2(b)所示。
(a)原图
在相关分析的基础上,通过计算各列/行的相关系数标注了待缩放的列/行,为避免删去图像的重要区域,再与显著性检测相结合进行进一步优化,重新对列/行进行标注,标注出对图像的重要内容影响最小的|N′-N|列和|M′-M|行。下面将结合相关分析理论与显著性检测定义列/行的影响度值。
由式(6)点(i,j)的显著值S(i,j)来定义各列的显著值Scol(j),为第j列上所有像素点的显著值之和:
(7)
同理定义各行的显著值Srow(i):
(8)
显著度图可以反映出图像颜色、亮度等信息,式(7)中的Scol(j)越大意味着第j列对图像内容的影响越大,式(3)中的Rcol(j)可以反映第j列与相邻两列的相似程度,其Rcol(j)越大意味着相关程度越强,对图像内容的影响越小,因此,各列对图像的影响度值Infcol(j)可以定义为:
j=1,2,…,N.
(9)
同理定义各行对图像的影响度值Infrow(i):
i=1,2,…,M.
(10)
这里ω设置为0.5,分别计算各列和行的影响度值并进行相应的排序标注,从中选取影响度值最低的|N′-N|列和|M′-M|行。让图像缩放发生在这些列和行上。为了直观显示用黑线进行标注,如图3(b)所示。可以看出结合相关分析和显著性检测,依据各列/行的影响度值进行标注的缩放区域,很好地保护了图像的重要内容。
(a)原图436×660
在标注了影响度值低的列/行后,最简单有效的做法是直接删除这些影响度值低的列/行。但过多地连续删除列/行时,图像会出现不连续的块,或者出现过多非重要区域的缺失,影响图像的整体概貌。因此在缩放过程中,为避免出现这种明显的人为痕迹,我们进行折中处理,既要保护图像的重要内容又要顾及图像的整体结构。
当某列/行被删除时,提升其相邻两列/行的影响度值,这样使得非重要区域列/行的影响度值会随着相邻列/行的删除而逐步提升,可以避免连续过多地删除列/行。于是当删除某列/行时,其相邻两列/行的影响度值更新规则如下设置:
Infrow(i′)←Infrow(i′)+w(i,i′)Infrow(i)
(11)
Infcol(j′)←Infcol(j′)+w(j,j′)Infcol(j)
(12)
其中i′与j′分别为被删除行i与列j的相邻行与列,w(i,i′)和w(j,j′)分别为行与列的影响度扩散的权值,衡量了影响度扩散到相邻列与行的比例。简便起见,本文将扩散权值设置为被删除列/行的相邻两列/行各自的原始影响度值在两列/行影响度值之和所占的比例,即设置为:
(13)
(14)
其中i′=i+1或i′=i-1,j′=j+1或j′=j-1。
图4是采用影响度扩散前后的对比,图4(b)直接删除图3(b)标注的100列46行,图4(c)采用了影响度扩散方法,首先标注影响度值最低的列/行,将该列/行的影响度转移到相邻列/行,然后按照更新后的影响度值,在未标注的列/行中再次标注影响度值最低的列/行,如此重复操作,直至达到目标图像的尺寸要求。删除最终标注的列和行,从而实现图像的缩小。图4(d)可以看出采用影响度扩散的方法,图像缩放有很好的视觉连贯性,而图4(b)在多处出现明显的不连续块。
(a)原图(436×660))
放大图像时,同样采用影响度扩散的方法,首先标注影响度值最低的列/行,然后将该列/行的影响度扩散到相邻列/行,对未标注的列/行按照更新后的影响度值,再标注影响度值最低的列/行,如此重复操作,直至标注的列/行数符合目标图像的尺寸要求。在被标注的列/行后插入新的列/行,考虑到图像的连续性,它是被标注的列/行与其后一列/行的均值,若最后一列/行被标注,则直接复制最后一列/行。如图5在图像I上增加100列,46行。图5(a)未采用影响度扩散的方法,即直接放大图3(b)标注的列/行,仔细观察可发现在底部出现不连续块,相较而言,图5(b)采用了影响度扩散方法,即在图4(c)标注的列/行上进行放大,可以看出视觉连贯性更好,未出现不连续块。
(a)未采用影响度扩散方法的放大
本文使用MATLAB R2018b作为实验平台,利用本文方法选取不同图像进行双方向的尺寸调整实验,与传统的均匀采样和裁切技术进行比较分析。
图6从宽度方向进行缩小,图像原始大小为532×800,缩小为532×532,即删除262列。明显地,传统的采样方法使得图像的重要内容女孩被横向压缩,变形严重,而剪切技术虽然能保证女孩原貌,但图像信息缺失较多,如左右两侧的树木。
(a)原图
图7从宽度方向进行放大,图像原始大小为500×400,放大为500×500,即添加100列,可以看出,均匀采样使得图像的重要内容船只被水平拉伸,而单纯使用剪切则无法放大图像。
(a)原图 (b)均匀采样
图8从高度方向进行缩小,图像原始大小为742×552,缩小为552×552,即删除190行,均匀采样方法使图像重要内容房屋被纵向压缩,而剪切虽能保证房屋原貌,但图像信息丢失较多,如位于原图像底部的湖泊被剪切掉。
(a)原图
图9从高度与宽度双方向缩放,原始大小为333×450,缩放为370×370,即删除80列,增加37行,从效果来看,传统的均匀采样使图像重要内容荷花花瓣被拉长,失真严重,也无法直接使用剪切来实现这种尺寸的缩放。
(a)原图
本文提出一种基于相关分析和显著性检测的图像缩放方法。首先将数字图像的列/行看作随机变量,计算各列/行之间的Pearson相关系数,再利用FT显著性检测算法得到各点的显著值,在这两者的基础上定义了各列/行的影响度值,标注出影响度值低的列/行,使缩放只发生在影响度值低的列/行上。另外,通过采用影响度扩散的方法,将被缩放列/行的影响度值转移到相邻两列/行上,避免了因连续过多地缩放列/行而导致的整体概貌失真,最终实现即能保护图像重要内容又可以顾及图像结构的目的,整体视觉效果良好。