APP下载

基于图像结构-纹理分解及局部总变分最小化的图像修复模型

2018-10-16杨文霞

计算机应用 2018年8期
关键词:变分优先权纹理

杨文霞,张 亮

(武汉理工大学 理学院,武汉 430070)(*通信作者电子邮箱wenxiayang@163.com)

0 引言

图像修复技术在文物修复、图像纠错和目标隐藏等领域具有广泛的应用。由于图像待修复区域的内容未知,理论上的修复结果并不唯一,故图像修复属于一种无监督方法[1]。目前,无监督图像修复方法大致分为基于偏微分方程和变分法的图像修复[2-3]和基于图像块样例的修复[4]以及一些混合方法[5]。偏微分框架下的图像修复只适用于小面积非纹理受损图像(如宽度小于5个像素点的细长条毁损),此时,图像修复问题转化为一个使用变分法求解的泛函极值问题,其极值条件为一组偏微分方程,使用数值迭代方法求得稳态解。

当待修复区域较大时,Criminisi等[4]提出基于样例的修复方法(Exemplar-Based Inpainting),其基本思想是:首先计算待修复区域的边缘上各像素点的修复优先度,按贪心算法的机制,得到具有最高优先度的待修复像素点,并以此像素点为图像块中心,统计全图中和该图像块相似性测度最大的图像块,将该图像块复制并拷贝到待修补区域,然后更新待修复区域,开始下一轮修复,直至待修复区域被全部填充完毕。由于该修复方法的“复制-粘贴”模式避免了偏微分修复框架的局部模糊效应,能较好地保持图像的结构和纹理信息,因此被广泛应用于大面积的图像修复应用中。影响该算法修复性能的关键点为:1)优先度的计算;2)图像块相似性的度量;3)最优匹配图像块的搜索和选择。其中2)和3)互相影响。

国内外学者针对以上三点提出了很多改进算法。Wexler等[6]提出采用金字塔模式和期望最大化算法,通过最小化一致性参数进行图像修复;Buyssens等[7]引入图像块的局部结构张量,将RGB三个通道方向的局部张量加权和与法向的内积作为衡量数据项的因素;Xu等[8]将结构稀疏度引入优先权计算中;Cao等[9]通过引入图像的局部结构特征来引导填充区;He等[10]通过统计图像己知区域中相似图像块的偏移量,形成一个候选匹配块集合,构造KD树(K-Dimension tree)搜索以减少计算时间和降低匹配错误概率;Kumar等[11]将图像修复转换为度量标记优化问题,使用模拟退火算法求解;Chen等[12]利用图像块的梯度模值对优先项中的数据项进行改进,并通过大量实验,得出图像块窗口的最优尺寸为9到17之间的奇数这一结论;刘华明等[13]通过对待修复图像进行均值滤波并引入自适应梯度分析以及分级搜索策略,保持自然图像的边缘光滑性;于文静等[14]通过统计相同结构偏移量的分布特征获取最优匹配信息;李梦雪等[15]通过对图像进行特征子区域划分搜索子区域,提高修复速度。

受以上模型和思想启发,本文提出了一个基于结构-纹理分解和局部总变分最小化的图像修复模型。首先利用对数总变分最小化模型将待修复图像进行结构-纹理分解,利用卡通图像中的大尺度和显著性结构边缘信息来计算修复优先权的数据项;其次,按局部总变分最小化原则,将图像块的最佳匹配转换成一个0-1优化问题,使匹配原则有利于保持图像结构和纹理的一致性,更符合人眼视觉特性。

1 基于样例的修复方法及存在的问题

1.1 基于样例的修复方法

(1)

此处ψ(p)所在区域用Np表示。分母|Np|代表图像块ψ(p)中的像素点数。C(q)代表q点的置信度:如果是待修复区域,则为0;如果是源图像区,则为1。因此,式(1)中的分子代表在图像块ψ(p)中的不需要修复的数据点数(真实数据)。这一项的含义是,如果待修补的p点所在图像块中有足够多的真实数据,那么该图像块所提供的真实信息越多(即可信度越高),应该优先被修复。

数据项D(p)的计算公式为:

(2)

图1为待修复灰度图像的一个局部放大区域。其中,斜线填充的像素点表示待修复区域边界∂Ω上的像素点,p1、p2、p3和p4点分别是待修复的几个特殊点。设图像块大小为5×5,由式(1)不难算出,这四个点的置信项分别是C(p1)=23/25,C(p2)=2/25,C(p3)=10/25,C(p4)=13/25。p1和p2分别拥有最大和最小的置信项;而p3的等照度方向和边缘法向量的方向(与水平方向的夹角为45°)是重合的,因此该点拥有最大的数据项;p4的等照度方向为水平方向,但边缘法向量的方向与水平方向的夹角为90°,因此p4点拥有最小的数据项0。

图1 图像的局部待修复区域边界

1.2 算法特性与不足

首先,由1.1节中的算法原理可知,优先权的设置和计算对修复结果有着重大的影响。如图2(a)所示,空白区域为待修复区域,从视觉合理性出发,要求修复后的图像,其几何结构和边缘信息等保持完整性和连续性,因此,期望得到如图2(d)的修复效果。图2(b)和(c)分别是采取由上向下和由下向上的修复顺序得到的修复结果,图2(d)则是按式(1)和(2)计算修复顺序后的修复结果,其优先顺序大致为从待修复区域的左右两侧往中心地带修复,显然图2(d)更具视觉合理性。

图3是图2(a)按照式(1)和(2)在修复迭代过程中的C(p)、D(P)及P(p)的变化,其中横坐标为迭代次数。可见,置信项C(p)在修复过程中的迅速下降主导着优先权P(p)的变化;D(p)虽然在迭代过程中出现几次突变型高峰值,但由于此时对应的C(p)非常小,由于乘积效应,使得数据项D(p)将不再发挥重要作用,导致优先权的计算背离结构一致性优先的初衷。图2中只有一条明显的边缘结构,尚能得到较好的修复效果。若对复杂结构的图像进行修复,修复积累误差将对视觉可信性造成较大影响。

图2 待修复图像及按不同优先顺序得到的修复结果

图3 图2(d)修复过程中的置信项、数据项和优先权项变化

其次,最优匹配块的选取原则也对修复效果有重大的影响。对于待修复图像块ψ(p),经典的衡量两个图像块的相似度的度量是差值平方和(Sum of Square Differences,SSD)。 SSD越小,图像块越相似。

(3)

但按此规则计算的SSD最小的匹配块可能不止一个,算法在实际处理时可能会随机取一个块,或者程序在循环过程中以搜寻到的第一个或最后一个作为最优匹配块,这样就忽略了图像块内的局部结构。图4是待修补块ψ(p)及两个SSD最小的匹配块ψq1与ψq2,不难算出ψq1和ψq2分别与ψ(p)有相同的SSD,但是ψq1和ψq2却有着差异非常大的局部结构,这显然会导致误差及积累误差,因此搜寻原则和匹配原则必须进行改进。

图4 与待修复图像块的SSD相同的两个图像块

2 本文模型

为解决1.2节中提出的问题,本文首先采用文献[16]提出的对数函数总变分最小化模型对待修复图像进行结构-纹理分解,使用结构分量来获得图像的等照度方向等信息,以减少等照度方向的噪声和保持大结构的一致性;并修改优先权函数,提高计算鲁棒性和可靠性。然后构建局部总变分最小化模型,选取最优匹配块,以保证图像的局部结构一致性和视觉可信性。

2.1 图像的结构-纹理分解模型及优先权计算

本文通过对数总变分最小化模型获得图像的结构成分u。u是图像f的分片光滑部分,包含f的几何结构和等照度信息;而纹理分量包含图像中的小尺寸细节及随机噪声等[17]。

假设原图像f的结构分量为u,纹理分量为v, 则u可以表示为一个有界变分(Bounded Variation)BV(Ω),它保留了图像的锐利边界和等高线信息,去掉了纹理和噪声成分。残差v=f-u为定义在L2(Ω)上的泛函。对图像的结构-纹理分解可以由如下的凸最小化问题求解:

(4)

(5)

图5、6中,(a)和(c)分别是待修复原始图像和经过结构-纹理分解后的结构图像,(b)和(d)分别是方框内的放大细节,图(e)和(f)分别是放大细节中的一部分的等照度矢量图。由图(b)和(d)可以看出,图像的纹理部分保留了图像的大边缘结构信息而去掉了纹理细节;由图(e)和(f)可见,原始图像的等照度方向矢量存在许多局部杂乱,而经过结构纹理分解后的图像,其等照度方向更加清晰、一致,保留了大尺度结构,而小尺度细节纹理被去掉,可以更好地反映图像的全局结构信息。

在得到待修复图像的结构图像后,直接在结构图像u上计算优先权,为克服乘积效应的影响,将优先权计算规则修改为:

P(p)=ξC(p)+(1-ξ)D(p)

(6)

其中,权值ξ控制C(p)和D(p)的侧重,这里选择ξ=0.5。这样,首先在结构图像上计算置信项,去掉了一些局部细小纹理噪声的干扰,同时避免了当置信项很高而数据项非常小时的优先权很小这一缺点,使优先项的计算更为可信,此外,和参考文献中的改进算法相比,优先权计算公式中没有引入额外的计算量,简单方便。

图5 待修复旧照片原图和结构图及其等照度矢量图

图6 待修复图像原图和结构分量及其局部等照度矢量

2.2 基于局部总变分最小化的0-1优化匹配策略

目标函数:

决策变量:

ci,i=1,2,…,k

ci={0,1},i=1,2,…,k

对于具有多个最小SSD的匹配区,此时不再是随机选择图像块,或者是选择在循环查找中遇到的第一个或最后一个图像块,避免了1.2节中所述的缺点。而与文献[18]不同的是,本文的最优匹配图像块是根据局部总变分最小这一合理准则从k个图像块中选出一个,而不是简单的这k个备选图像块的加权平均,从而避免了人为造成图像模糊的可能。

2.3 本文算法步骤与复杂度分析

综上所述,本文算法步骤描述如下:

算法 基于图像结构-纹理分解及局部总变分最小化的图像修复模型。

步骤1 读入待修复图像f及待修复区域掩膜M。

步骤2 根据对数总变分模型得到f的结构图像u。

步骤3 确定待修复边界∂Ω上像素点的集合S。

步骤4 对结构图像u及待修补点p,对于每个以p∈∂Ω为中心的图像块,根据式(1)计算置信项C(p),根据式(2)计算数据项D(p),根据式(6)计算优先权P(p)。

步骤5 确定优先权最大的点p,以及对应的f中的待修复图像块ψp,并记录下ψp所在位置信息。

步骤7 更新掩膜M,更新ψp置信度。

步骤8 判断掩膜M是否为空,若为空,则算法结束;否则转步骤3。

计算时间复杂度和待修复区域总像素数及形状、图像块大小patchsize及Wp和k相关。因为要存储辅助的图像结构分量,本文和经典Criminisi算法相比,空间复杂度增加一倍;时间复杂度多了一个求解总变分最小化优化过程,设共有N个点需要修复,则时间复杂度约为O(N*Wp*patchsize*k)。

3 实验结果与分析

3.1 参数设置

利用对数总变分最小化模型进行图像的结构-纹理分解时,参数λ=0.15, 图像块ψp的patchsize不宜太大或太小。patchsize太大,会造成SSD的计算不具备参考性,容易出现误判;而patchsize太小则计算耗时长,且难以捕捉到图像的结构信息。根据文献[12]的建议,本文选取patchsize=9。在非局部总变分最小化模型中,计算的非局部总变分窗口,即Wp的尺寸为27×27。

计算SSD最小的前k个备选图像块区域ψ1,ψ2,…,ψk时:k值太小,ψ1,ψ2,…,ψk的区域可能会发生重叠;k太大,又会增加不必要的优化模型计算量。经过大量实验,在综合考虑计算量和计算可信度基础上,实验选取k=10。

3.2 实验结果与比较分析

为测试本文模型的修复效果,根据图像修复的不同应用目的,选取5幅具有不同典型结构纹理特性及待修复区域的图像进行修复。其中各修复图像的黑色部分为待修复区域。将本文方法和文献[4]、文献[7]及文献[13]的算法进行对比。其中图7~10的待修复图片来自图片库http://yokoya.naist.jp/research2/inpainting/,大小为200×200。

实验计算机主板为Inter i7-4600,2.10 GHz, 内存为8.00 GB,操作系统为Windows 10。程序采用Matlab 2017(b)编写,在步骤2中,使用矩阵整体运算进行加速。

3.2.1 实验图片及主观视觉效果比较分析

图7用来测试具有简单大结构和局部细小纹理的大面积受损图像修复结果,方框内是一些重点对比区域。从图7(b)~(e)的实验结果可以看出,路面小径和草地之间的边界被很好地修复,视觉效果非常自然。可见基于样例的修复算法及该框架下的改进算法,对于具有简单大边界结构的图像可以获得非常好的修复结果。此外,修复结果也和源区图像的结构相关。若源区是大片的同质细小纹理结构,各算法都可以获得自然的修复结果。

图8用来测试跨越多个不同结构的受损区域及带局部细节毁损的图像修复效果。可以看出,各算法都能很好地保留大结构边缘(上面两个方框内的斜向山体和白云、植被栅栏与草坪),但文献[4]、[7]算法的栅栏修复缺少一根小栅栏,文献[4]算法的山修复顺序与实际情况不符,带来了一些假边缘;文献[13]算法修复的蓝天和栅栏处都有些微视觉不自然的地方;而本文算法对这三个关键部位都获得了比较好的效果。同时注意到,视觉效果的好坏与图像本身的特性是高度相关的,如图8(d)中最左边的椭圆内,虽然明显误匹配到树叶,可由于背景是山体和白云,人眼感觉仿佛是山的一角露出在白云之外,并没有感觉是明显的瑕疵。

图9用来测试具有大几何结构及局部结构与小尺度重复纹理的大面积受损图像修复。由实验结果可以看出,随着受损面积的增大,各算法的修复效果都有一些不尽如人意的瑕疵。如窗子部分的修复结果明显受优先权影响,文献[4]算法修复结果的台阶扩张到了草坪上,文献[7]、[13]算法修复结果的窗子边框都出现明显的视觉不连续,而本文算法的修复结果中最下面的窗户边框能获得和横向规律一致的效果。

图10用来测试具有复杂结构和纹理跳变的待修复图像的效果。由于待修复区域包含多种不一样的材质(墙壁、地面、树干、门框、台阶线),修复后的效果都具有人眼可见的比较明显的瑕疵。如文献[4]算法修复结果的树干明显被横向截断,文献[4]和文献[13]算法修复结果的窗子边缘及地面纹理都不自然,文献[7]和本文算法对墙壁的竖线能获得非常好的修复结果,但是文献[7]和[13]算法修复结果的台阶线处瑕疵较明显,左侧地面白线出现了不合理走向,门框内的修复瑕疵较多。总体而言,本文算法对树干、墙壁及门框与墙壁交界处都获得了较好的效果。

图11(大小为344×416)用来测试对兼具均匀渐变(皮肤)和大结构渐变(脸的轮廓、眼球、嘴唇)的图像修复效果。从眼珠、嘴巴、右侧脸颊和眉毛等结构边缘的整体修复可以看出,本文算法的效果相对是最好的。但同时也必须承认,各类算法在人脸皮肤的修复上存在很多误匹配和马赛克效应,可见基于样例的修复算法不适用于均匀渐变的图像修复。

3.2.2 客观参数对比

采用峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)和结构相似性指数 (Structural SIMilarity index, SSIM)[19]来衡量不同算法的图像修复结果。其中SSIM越大,代表两幅图像的结构相似度越强,即修复效果越好。计算SSIM时的滑动窗口大小也为7×7,SSIM的其余参数和文献[11]的设置一样。

表1为各图修复前后的SSIM及PSNR值的结果,表2给出了各待修复图像的待修复区像素点数和面积百分比。数据表明,本文模型各项指标亦优于各对比模型,与各对比模型的最好结果相比,SSIM分别提高了0.014、0.016、0.023、0.016及0.022,PSNR分别提高了2.22 dB、 2.07 dB、 1.81 dB、 1.32 dB及1.12 dB。

图7 移除小动物的修复结果

图8 移除电线杆的修复结果

图9 移除人像的修复结果

图10 移除板凳的修复结果

图11 移除铁丝网的修复结果

4 结语

本文针对基于样例的修复方法进行改进,在待修复图像的结构分量上进行优先权计算,以更好地提取出等照度信息,提高算法跟踪和修复边缘结构完整性的能力,并利用图像的局部总变分最小化来确保匹配结果的视觉一致性最优。实验结果表明,视觉效果的好坏与图像本身的特性及待修复区域周围的局部特性相关性较大。当待修复图像包含简单大结构,且待修复区域和源区包含很多细小纹理区域时,基于样例的修复框架下的修复算法均能取得较好的修复效果;当待修复区域较大,以及待修复区域包含复杂结构的图像时,修复结果会存在较多积累误差;而当待修复区域为渐变平缓区域(如皮肤)时,修复结果存在较明显的局部马赛克效应,视觉效果较差,这时可以和基于偏微分框架下的修复算法结合起来使用。此外,式(6)

中的权值ξ和式(7)中的非局部窗口Wp尺寸都可以考虑根据图像的局部特征进行自适应选择,也是下一步的研究方向。

表1 各修复模型的PSNR和SSIM值对比

表2 各待修复图像的修复区域参数

猜你喜欢

变分优先权纹理
概率生成模型变分推理方法综述
多项式变分不等式解集的非空紧性和估计
基于BM3D的复杂纹理区域图像去噪
民法典中优先权制度构建研究
使用纹理叠加添加艺术画特效
TEXTURE ON TEXTURE质地上的纹理
进入欧洲专利区域阶段的优先权文件要求
工程师使用Matlab的变分方法
消除凹凸纹理有妙招!
优先权制度在我国构建的争论与设想