基于TV模型的图像修复算法.doc
《基于TV模型的图像修复算法.doc》由会员分享,可在线阅读,更多相关《基于TV模型的图像修复算法.doc(23页珍藏版)》请在冰点文库上搜索。
基于TV模型的图像修复算法
[摘要]图像修复是指对那些局部区域数据完全丢失的图像进行修补,以恢复其完整性和原有的视觉效果。
图像修复现在是计算机图形学和计算机视觉中的一个研究热点,近年来得到了广泛关注,在文物保护、影视特技制作、虚拟现实、多余物体剔除等方面有着重大的应用价值。
常用的数字图像修补方法有基于偏微分方程的图像修补方法、基于变分的图像修补方法、基于统计的图像修补方法和基于样本块的图像修补方法。
本文探讨基于TV模型的图像修复算法,阐述了TV模型的基本原理和算法实现。
基于matlab的实验结果表明,该算法能较好地保持图像的边缘,基本恢复了图像原有的视觉效果,与基于快速行进法的图像修复算法相比,无论是修复速度还是视觉效果方面都取得了较好的效果。
[关键词]全变分模型快速修复自适应修复
TV-BasedImageRestorationAlgorithmModel
[Abstract]Imagerestorationreferstothereparationofanimagetorestoreitsintegrityandoriginalvisualeffectwhichhascompletedatalossinsomepartialarea.Imagerestorationisahotspotincomputergraphicsandcomputervisionresearchandhasarousedgreatconcerninrecentyears.Itismainlyusedinheritageprotection,filmandtelevisionspecialeffectsproduction,virtualreality,excessobjectsremovalandotheraspects.Themostcommonlyusedmethodsareimagerepairmethodbasedonpartialdifferentialequations,variationalimagerepairmethodbasedonstatisticalmethodsandimagerepairsampleblock-basedimagerepairmethodcommonlyuseddigitalimagerepairmethod.ThepaperdiscussestheimagerestorationalgorithmbasedTVmodeltoexplainthebasicprinciplesandalgorithmsTVModel.BasedonMetlab,theexperimentalresultsshowthatthealgorithmcanmaintaintheedgeoftheimageandbasicallyrestorevisualeffectsoftheoriginalimage.ComparedwiththeFastMarchingMethodbasedimagerestorationalgorithms,thismethodachievesbetterresultseitherinrepairspeedorvisualeffects.
[Keyword]Total VariationmodelRapidrepairAdaptiverestoration
目录
引言 1
1预备知识 2
1.1 MATLAB的主要功能与特点 2
1.2 图像质量的评价标准 3
1.2.1主观评价方法 3
1.2.2客观评价方法 3
2常用的图像修补算法 4
2.1BSCB模型 4
2.2TV模型 5
2.3CDD模型 5
2.4优劣比较 6
3基于TV模型的图像修复算法 7
3.1基本原理 7
3.2算法实现[8] 9
3.3快速修复算法 11
3.4自适应修复算法 14
3.4.1问题的引入 15
3.4.2算法的实现 16
4仿真结果与性能分析 16
4.1仿真结果 16
4.2性能分析 18
结论 18
致谢语 19
[参考文献] 20
引言
图像修补属于图像恢复的研究领域,是图像处理领域的一个分支,也是当前计算机视觉方面的一个研究热点,在国内外受到广泛的重视。
图像修补源于艺术家修补古画,是指通过填补丢失区域的信息来恢复原画。
修补通常是由艺术家手工填补艺术作品中得一些缝隙,目的是尽可能按照作家的原意是这些图画更为清晰,并且恢复图画的完整性获得视觉上可行的效果。
手工修补工资主要是由专业修补师手工完成的,存在着费时、辛苦、主观和工作不易重复进行(一旦出错不易更改)等缺点[1]。
数字图像修补就是用一定算法来处理图画、照片或影片,包括使受损的图像恢复、移走或取代图像中被选择的物体等等。
其主要工作原理是利用数字图像待修补区域的领域信息或图像前后帧信息填充数字图像待修补区域。
手工修补直接在原作品上修补,而数字图像修补技术带来了极大的自由,比如出现错误的时候或者是逐步增强修补效果的时候,不需要担心是否会破坏原画。
毫无疑问,数字图像修补技术为修补古老的艺术作品提供了最安全便捷的途径。
随着计算机技术的发展,如何在数字图像的基础上实现半自动化和自动化的图像修补,成为图像修补研究领域的一项重要课题。
对于一些图像处理软件来说,也有这样的一些功能,但效果很不理想,而且通常是一个很复杂的过程。
数字图像修补属于数字图像复原领域,是数字图像处理的一个重要分支。
就是用一定的算法来处理图画、照片或影片,包括受损的图像恢复、移走或取代图像中不需要的物体等。
其主要工作原理是利用数字图像受损区域的邻域或前后帧信息填充数字图像的待修区域。
其主要应用于图像处理、考古、印刷、军事、政治、科研、影视业、艺术、广告等许多与图像修补相关的领域等方面。
长期以来众多学者对图像修补算法进行了大量研究,针对纹理图像人们提出了基于样本块的图像修补方法,样本块中蕴含了图像的纹理和结构信息。
Criminisi[2]等人在2003年提出的基于样本块图像修补方法通过对待修补区域的像素定义优先级,按优先级顺序填充像素来保持图像纹理和结构信息。
而非纹理图像的修补,主要是运用基于偏微分方程的图像修补方法进行的。
本文主要对于其他图像修补方法的优劣比较和基于样本块的图像修补方法的重点讨论,利用C语言编程对图像进行修补,实现图像目标的有效移除,使观察者无法察觉。
1
1预备知识
1.1MATLAB的主要功能与特点
MATLAB[1]作为一款功能强大的数学软件,除了数值计算功能外,还具备了越来越多其他的功能:
(1)数值计算功能——MATLAB具有出色的数值计算能力,它的计算速度快,精度高,收敛性好。
(2)符合计算功能——MATLAB以MAPLE的内核作为符合计算的引擎,依靠其己有的库函数,实现MATLAB的符号计算功能。
(3)数据分析和可视化功能——MATLAB的绘画功能将数据以图形方式显示出来,使数据间的关系清晰明了,对于揭示其内在本质往往有着非常重要的作用。
(4)SIMULINK动态仿真功能——SIMULINK是MATLAB为模拟动态系统而提高的一个交互式程序。
SIMULINK允许用户在屏幕上绘制框图来模拟一个系统,并动态地控制该系统。
MATLAB的特点如下:
(1)可扩展性——MATLAB最重要的特点是易于扩展,它允许用于自行建立指定功能的M文件。
(2)易学易用性——MATLAB不需要用户有高深的数学知识和程序设计能力,不需要用户深刻了解算法及编程技巧。
(3)高效性——MATLAB语句功能强大,一条语句就可完成十分复杂的任务。
1.2图像质量的评价标准
图像[2]质量的评价[3]是对图像质量优劣的定义。
通过评价标准来判断的图像修复的效果的好与坏,以便于继续改进现有的修复方法或对在现有方法基础上进行创新。
目前主要的评价方法分为两类:
一是主观评价方法,是利用人眼直观地查看图像,并由人体主观意志做出的图像好坏判断,受到查看者心理因素的影响;一是客观评价方法,利用数学统计等算法代替人眼的观察,用具体的数据指标来衡量图像质量的好与坏。
1.2.1主观评价方法
主观评价法,直观地通过人们的视觉感官对一幅图像的质量作出的直接感受,感受结果便是主观的评价结果。
不过主观评价判定得到的图像质量受观察者的个人素质和观察时候的外部因素等的影响。
1.2.2客观评价方法
客观评价方法是统计分析图像的特性的客观评价标准,由于通过计算图像特性的部分参数,对图像质量的评价更有说服力。
在实际应用中,我们经常会采用如下一些图像的数字特征来做为图像质量评估的主要客观标准,并通过Matlab软件来实现。
通过客观评价获得相似度参数较好的图像,便是图像修复质量较高的图像。
(1)均方误差()峰值信噪比()
和定义分别为:
(1)
(2)
其中,分别是方向,方向图像像素点的个数,和分别是原始图像在点(,)上的取值,是图像中灰度取值的范围,对比特的灰度图像而言=255。
峰值信噪比()反应的是整个图像的失真程度,正常情况下,峰值信噪比()越大的图像其质量就越高。
(2)相关系数()
其中表示原图像,表示噪声图像,表示方差,表示协方差。
方差()、峰值信噪比()以及相关系数()为重要的三种图像质量评价指标。
均方误差反映图像的清晰度,相关系数和及峰值信噪比反应图像失真度。
综合这三个参数可以较有说服力评价图像质量的好坏。
2常用的图像修补算法
2.1BSCB模型
Bertalmio[4]等人根据艺术家实际的图像修补方法建立了基于PDE的BSCB图像修补模型.它的主要思想是沿等照度线的方向将修补区域周围的信息迭代到修补区域内,产生修补信息.等照度线的方向可以通过计算修补的轮廓线上的每一个点的离散梯度向量(表示空间最大变化的方向),并将其旋转得到。
这样可以在迭代的过程中有效地保持边界。
每若干步迭代之后,算法进行一个反复扩散的过程,以保持修补区域的平滑。
各向异性的扩散有利于保持穿过修补区域的边界。
修复算法主要包括迭代和扩散两部分,迭代计算只在待修复区域内进行;每经过几次迭代计算,就进行一次扩散。
两个过程交替进行,直到缺损区域被完全填充完毕。
BSCB模型方程为
其中为等照度线方向.其主要思想是沿着等照度线向待修补区域光滑地传播信息,以达到修补图像的目的。
2.2TV模型
整体变分(Total Variation)基于整体变分模型的图像修复方法,即TV模型,其本质是将图像看成一个分段平滑函数,在有界空间上对图像建立模型。
该方法在实现时要将其偏微分方程数值化,转换成差分方程通过迭代运算进行偏微分方程的求解,最早是用来对受到噪声污染的图像进行降噪的,在这方面的应用最早是由L.Rudin和S.Osher等人在1992年提出的。
CHANT和SHENJ[5]建立了基于能量最小化原则的统一修复模型,并应用于图像修复领域,取得了良好效果.由于能量函数的解是利用变分原理转化的,因此该模型被称为整体变分(TotalVariation,TV)模型。
由于该模型能够起到延长边缘的作用,从而很适合图像破损面积较小的修复。
TV模型在修复时依赖于图像的集合特征,具有形态学不变性,能很好的修复自然图像。
2.3CDD模型
Chan[6]等人在提出基于整体变分(TotalVariation,TV)修复模型之后,注意到TV模型受到修复区域大小的限制而不满足图像的连通原理,进而提出了一种三阶的PDE方法—基于曲率驱动扩散(curvature-drivendiffusion,CDD)的图像修复模型。
在CDD模型中,通过曲率来调整各向异性扩散系数。
进行图像修复时,不仅考虑到整体的长度,还充分考虑到曲率的变化,从而对细长的线段也有较好的修复效果。
该模型的传导系数为,此处
(7)
其中,水平线的曲率。
引入曲率项后,CDD模型最小化的代价函数为[8]:
(8)
CDD修复模型的扩散强度不仅依赖于梯度值,还依赖于等照度线的几何信息,即曲率.由于g为增函数,扩散在等照度线曲率大的地方较强,并随着等照度线伸展的地方逐渐减弱.这使得修复过程能够消除大曲率而稳定小曲率。
2.4优劣比较
使用BSCB方法的用户只需要提供待修复区域,算法就可以自动完成修复的过程,但是BSCB模型只是基于非纹理图像的讨论,对于非纹理图像有较好的修复效果,然而对于纹理图像会产生平滑效果,导致纹理丢失。
而且BSCB模型的修复算法对小尺寸区域有良好的效果,如小裂缝、划痕、文字的擦除等,但是对于较大区域的修复,扩散通常造成模糊,且该模型修复速度较慢.
基于TV模型的图像修复的主要优点是,能在修复的过程中去除噪声的同时又保持图像边缘,且数值PDE实现方便,TV模型修复算法在不断迭代中进行信息扩散,所以修复后更平滑一些。
CDD模型的迭代比较复杂,花费的时间也较多。
在这,我们主要探讨两种基于TV模型的修复算法——基于TV模型的快速修复算法和基于TV模型的自适应修复算法。
3基于TV模型的图像修复算法
3.1基本原理
CHANT和SHENJ[7]建立了基于能量最小化原则的统一修复模型,并应用于图像修复领域,取得了良好效果.由于能量函数的解是利用变分原理转化的,因此该模型被称为整体变分(TotalVariation,TV)模型.
2002年Chan等人把TV模型推广到图像修补中,并提出了基于TV模型的图像修补方法。
TV模型在修复时依赖于图像的集合特征,具有形态学不变性,能很好的修复自然图像。
由于该模型能够起到延长边缘的作用,从而很适合图像破损面积较小的修复。
基于TV模型的图像修复算法由Chan等人于2002年提出,现简述如下。
记为待修补区域,为待修补区域的外邻域,一般为环状,如图3-1所示。
图3-1破损区域及其邻域示意图
记修复后区域内的图像为,定义代价函数为:
(1)
且满足噪声约束:
(2)
其中,为区域面积,阴影内的初始图像被高斯白噪声污染;为白噪声的标准差;为非负的实函数。
可见,式
(1)是为了使待修复区域及其边界尽可能的平滑,式
(2)使得修复过程对噪声有良好的鲁棒性。
为了对边缘也有良好的修复效果,需要选择一个合适的函数,在边缘上是一个冲击函数,因此要求代价函数有限,即:
(3)
把函数展开成如下的形式:
(4)
式(3)要求时有限,因此。
选取,此时式
(1)就是图像恢复领域中的TV(TotalVariation)模型。
运用Lagrange乘子法将有约束条件的极值问题转化为无约束条件的极值问题,新代价函数为:
(4)
根据Euler-Lagrange方程知,使得最小的应满足如下条件:
(5)
其中
20
相对应的最速下降方程为:
(6)
在实际计算中,为防止分母过小,通常需要转换为,这实际上相当于极小化了(7)式,即
(7)
用表示,则(5)式变为:
(8)
其中,取值同(5)式。
本文只考虑没有加入高斯噪声的干扰,那么(7)式变为:
(9)
即为TV模型的图像修复基本公式。
3.2算法实现[8]
图像修复是一个有约束的最小化问题,根据变分原理,无约束的极值问题较容易求解.因此,采用Lagrange乘数法转化为无约束条件的极值问题。
已知新的代价方程为和TV修复模型的欧拉一拉格朗日方程为
(1)
由梯度下降法,引入时间变量,得如下方程:
(2)
图3-2整体坐标与局部坐标示意图
为了更好地分析算法的性能,建立图像的局部坐标系,其中轴是在该像素点处平行于图像梯度方向,轴是对应的垂直方向,如图3-2所示,则.根据一阶、二阶方向导数的定义推导出在局部正交坐标系下,所对应的式子,则相应的扩散方程可以表示为:
(3)
采用时间步进法对式(3)求解,得其迭代形式为:
(4)
其中 (5)
(6)
是图像中某点梯度的模值,为了避免在扩散时梯度模值为0,通常将式(5)改写为,采用中心差分对式(4)近似计算,便可得到修复之后的结果图像。
(7)
(8)
(9)
(10)
(11)
从式(3)可以看出扩散系数影响着该方程的扩散行为。
从局部坐标系下可得,整体变分最小化仅沿着边缘的切线方向扩散。
这使得在修复过程中,对于图像的平坦区域,由于较小,则扩散系数较大,故在平滑区域扩散能力较强,从而可以有效地去除噪声;而在边缘细节较多的区域,由于较大,扩散系数较小,使得在图像纹理较多的区域扩散较慢,故能较好地保留图像的边缘细节。
因此TV模型在进行图像修复时可以在去除噪声的同时较好地保持图像的细节。
3.3快速修复算法
如图3-3,设待修复点为O,考虑O点的邻域:
、、、是O的四个邻近点,记作,半像邻近点。
图3-3待修复像素及邻域点信息图
令,通过中心差分方法数值化可得其散度,取步长为1:
(1)
设目标像素为,有:
,
以即为目标像素对应N、S、W、E的4个邻域点位置的集合,如图3-3所示
图3-3中、、、为对应的4个半像素点,它们不能直接从数字图像中得到。
令,可知散度:
。
(2)
为了避免为0,取
进一步给出、、、及、、、的逼近。
(3)
其中
(4)
同理可得、、、、、。
将上面结果代入,经计算可得:
(5)
考虑到点所处的位置,在(5)式中加入一个权值,
。
从而得出本文的修复公式,即
(6)
快速修复算法通过
(2)式对图像的边界进行修复,每修复完一圈边界,就将修复过的区域视为已知区域,再继续修复新的边界点,直到图形完全被修复。
快速修复算法避免了反复利用破损信息对图像进行修复而造成的误差,而且每个点只需要进行1次修复便可达到较好的效果,而TV模型需要迭代成百上千次才能达到较好的效果,因此,基于TV模型的快速修复算法极大地提高了修复的效率。
具体的算法步骤如下:
(1)读取待修复图像及待修复区域的信息;
(2)找出优先修复的点(即破损区域的边界点);
(3)确定的值,初始化权值;
(4)通过
(2)式对图像边界点进行修复;
(5)如果没有完成修复,更新边界及权值,回到步骤
(2)继续修复,直至图像完全被修复。
同理可计算其他半像素点梯度值、、,、将其代入
可得
(7)
定义 (8)
简化(8)得 (9)
并满足,采用迭代算法,图像修复值的计算式子为
(10)
在修复图像时,通过式(10)的迭代对内的损坏图像进行修复,由于在内,代入式(8)跟式(9)可得
(11)
权系数为图像梯度模的倒数,即扩散系数,梯度模值越大,越小,扩散强度越弱,反之越强,所以TV模型的迭代修复过程是一种各向异性扩散的过程。
,TV模型的修复顺序会影响修复的速度和准确性,修复的效率不高,因此应采用由外向内的修复顺序。
一般地,离边界越近的点准确度越高,修复图像时,应尽量采用准确度高的点。
TV模型的修复算法没有衡量待修复点邻域内各点的准确性,可能采用了较多准确度较低的像素值,虽然通过大量的迭代可以讲干扰减少,但无法彻底消除,修复效率较低。
针对TV模型算法的缺陷,考虑在一次计算中让更多的已知像素点参与运算,修复时获取的信息多,修复的时间就会减少,所以提出了基于TV模型的快速修复算法[9]。
3.4自适应修复算法
3.4.1问题的引入
由可知,基于TV模型的修复算法其实是一个加权平均算法,在迭代过程中待修复区域边界逐步向区域内进行各项异性的扩散,参数在扩散过程中起着重要影响,现证明对权重的作用。
取步长为1。
已知
(1)
(2)
(3)
记:
(4)
(5)
对任意的和,将对应的值按展开,得:
(6)
在和之间,由式(16)可知:
(7)
的方差可表示为:
(8)
可见,并且的方差随着的增大而减小。
因此,越大,梯度的作用就越小,邻域点权重的方差就越小,扩散程度较高。
反之则可以保持锐利边界不被模糊。
针对上述问题,提出了一种自适应的修复算法[10],可以有效的改善修复效果,并提高运算速度。
主要是想是在迭代初期使用较大的值,以保证边界信息可以充分的扩散,然后在使用当前值迭代至收敛时,逐步减小值,一时的边界有较好的修复效果。
3.4.2算法的实现
用如下的迭代方案替换原来迭代式:
(9)
最终算法步骤如下:
1)读取待修复图像以及待修复区域(区)信息;
2)确定区为区外边缘2像素宽的环状区域;
3)取初始;
4)对区域内的每个像素,按式
(1)
(2)(3)(9)进行迭代,更新目标像素值,在修旧图像的变化小于阈值时停止当前迭代,进入下一轮循环;
5)取,重复步骤4)。
在经过4轮不同口值的循环后,
当新旧图像的变化小于阈值或总迭代次数超过迭代上限(3000次)时停止迭代;
6)当前的迭代结果即为修复图像。
4仿真结果与性能分析
4.1仿真结果
(1)效果图。
Lena图像原图如图4-1所示,Lena图像划痕修复效果对比图如图4-3至图4-5所示。
图4-1原图