1、图像修复摘要图像修复对原始图像部分区域未知的一种修复,这是一件与艺术创作本身一样有着悠久历史的事。图像修复的应用范围很广,在欧洲文艺复兴时期从受损的画像和照片到选中的需要被去除/更换的对象。在本文中,我们介绍了一种新型的算法为了实现对静止图像的数字图像修复,也尝试着去复制了专业的修复者所使用的基本技术。在用户选定某个区域去被修复时,该类算法自动地根据待修复区域的周边信息来填充选中区域。通过完全存在内部的等照度线这种方式传播信息来完成区域填充。同以前的方式相比,本文介绍的并不要求用户去详细指出异常信息怎么得来的,这是一种自动化的机械实现过程(实现时间很快) ,从而允许同时填充众多的待修复区域,涵
2、盖了各种完全不同的结构和周边背景。此外,待修复区域的拓扑结构也没有强加的限制。对这一技术的应用包括对旧照片和损坏的胶片的复原,以及对覆盖在文章上的如日期,副标题或广告的移除,或者是从图像中移除如同麦克风或电缆等整个物体。关键词:图像复原,图像修补,等照度线,各向异性的散射相关研究和我们的贡献我们得先注意到传统的图像去噪算法并不适用于图像修复技术。在一般的图像增强应用程序中,像素点包含了真实数据和噪声的信息,在进行图像修复时,待修复区域没有重要的信息可以被用来修复。信息主要是在待修复区域周边被提取。那么也就有必要去开发具体的技术去处理这些问题。视觉信息恢复与修补的研究主要有三类:一是针对视频序列
3、的修补;二是与纹理综合相关的修补;三是非遮挡,这对研究即将要开展的工作有很大影响但却研究甚少。Kokaram 采用运动估值和自回归的模型通过相邻帧来插入到图像序列的损失中。这个想法的基本思想是从相邻帧的正确像素点里复制信息到空缺中。这个技术不能被应用到静止图像或者是跨越很多图像帧的待修复区域。Hirani 和 Totsuka 为了能替给定区域填充选定的纹理而将频率和空间域信息结合起来。这项非常简单的技术却产生了惊人的好效果。在另一方面,算法主要处理纹理综合(而不是结构背景) ,需要用户去选择要被复制到待修复区域的纹理。对于覆盖不同结构的待修复的图像区域来说,用户需要在整幅图像中经过大量的分割工
4、作来找寻相一致的替代部分。尽管部分搜索可以机械地完成,- 1 -但仍是极其耗时,也需要对很多临界参量非平凡的选择。其它纹理合成算法也可以被应用来重新创作为预定的纹理来填充待修复区域。在处理非遮挡的算法中,文献11介绍了一种新颖的方法。作者提出了一种为了实现图像分割目标而移除封闭区域的技术。其基本思想是为了减小弹力弯曲而在同样的灰度里接通T 型接合。这项技术主要被应用于只有几个灰度不变的物体的简单的图像中,但却不适用于本论文中接下来给出的几幅自然景象。Masnou and Morel近来补充了这些观点,提出了非常振奋人心的关于非遮挡的变分公式的一般化,一种特别实用的算法(不完全基于PDES)来实
5、现构想中的一些观点。这个算法执行的图像修复功能通过加入到测地线来使到达待修复区域边界的等照度线(具有相同灰度值的线)的点弯曲。根据作者所提到的,待修复区域被限制为要有同样的拓扑结构,比如说,空洞是不被允许的。此外,从到达待修复区域边界的水平线并不是被很好地保存的角度来说:该算法利用直线来连接相同灰度值的像素点。我们的算法能够解决将出现在我们接下来的文章的例证中的这些弊端, 。另一方面,我们也应该指出,这项技术最接近于我们的技术,它也部分地激发了我们研究的动机。我们的贡献视频序列修补的算法设计并不适用于我们的应用程序,因为它们通常只是对相对较小的区域起作用,并且它们依赖于许多帧信息的存在。另一方
6、面,基于纹理合成的算法能够填充大区域范围,但是需要用户去详细指出填充哪些纹理并放在哪里。这一点对这些方法造成了很大的限制,在本文后面的例子里将会有所提及,当待修复区域是被数以万计的不同背景包围时,它们中的一些只能是结构而不是纹理。我们提出的这项技术的操作过程并不需要任何用户的介入,只要选择好待修复的图像区域就可以了。这一算法也能够同时填充被不同背景包围的区域,并不需要用户去指定“填充什么纹理以及在哪里填充” 。 该算法被设计应用于结构区域(比如说:边界相互交叉的区域) ,尽管它并不是被设计来复制大区域纹理。我们接下来将要讨论的,我们所提出的算法和基于纹理合成的技术的结合是现今研究的主题。基本原
7、理为需要修补的受损区域, 为受损区域的边界。直观来看,我们提出的技术在保持” 到达” 角度的基础上延长至 的等照度线长度。在沿曲线逐渐延长以防止相互交叉的同时,我们采用这种方式从 内部处理。在我们详细介绍这项技术之前,让我们先来分析下这方面专家是如何去修复的。对于这种工作,明尼阿波利斯文学艺术学院的讨论使我们更清晰图像修复不同于艺术和专业工作,它是一种非常主观的过程。这里不存在解决问题的- 2 -特定方式,而是遵循以下基本的方法论:(1)总体的图像决定如何去填补空白,图像修补的目的是为了去复原艺术品的完整性;(2)受损区域 的周边结构一直到图像缺陷部分,轮廓线是通过到达受损区域边界 的延长线来
8、描绘出来的;(3)被轮廓线定义的受损区域内部的不同区域,通过颜色填充,与受损区域边界 相匹配;(4)也要对小细节涂色( 如在同一蓝天区域中其余部分的白色小点) 也就是说,加入了纹理。从这些被专业人员应用的基本图像修补规则中可以很快学到很多知识经验。我们的算法同时并且反复地执行了上述的准则(2)和( 3) 。我们通过平滑的方式进行内部延长到达受损区域边界 的线,从而逐步缩小间隔。.图像修补算法我们需要将上述手工操作上的图像修补概念转化为用精确的数学语言和算法语言来描述。首先,我们来讲一下图像修复的基本概念。下一章节中将阐述具体实现细节。让 成为离散的二维灰度,0,0,:)(0 INMIRNjiI
9、 图像。从操作层面上的图像修复技术的描述来看,很自然地会选择使用迭代算法。数字图像修补技术将要创建很多图像类似 , IRMjiI,0,:),(, ,当 是运算法则的输出时(修),(),(0jiInjiI)(),(limjiInjiIRnR补图像),任何采用那种方式的普通算法可以写成下面的式子:(1) ),(),(),(),(1 jijitIjiIjiI nnn变量n表示图像修补的次数n; 是像素坐标;t 是改变率; 代表图),(jiInt像 的更新。值得注意的是改进的方程式只适用于受损区域 内部,即),(jiI待修复区域。从这个公式中看出, 是 的更新的版本,来自 的),(1jiInt),(j
10、iInt ),(jiInt改进。当n增加时,我们可以得到一幅更好的图像。我们现在需要去设计更新。),(jiIt在手工操作图像修复技术的提示下,我们需要继续去修补受损区域 的边界 。也就是说,我们需要通过受损区域 外部向待修补区域 传递信息。 是我们想要传递的图像信息, 是传播方向,也就意味着:),(jiLn ),(jiNn- 3 -(2)),(),(),( jiNjiLjiI nnnt 是 的图像信息的一种改变。通过这个方程式,我们可以,估算出我们图像的 信息,再沿着 的方向估算出它的变化量。既然),(jin是恒定变化的,也就是说,当算法准则收敛时,通过(1)和(2)可以得到),(),(1ji
11、IjiInn,也正是意味着图像信息 L已经通过向量 传播出0,NL N去了。现在剩下要去表示的是要被传播的图像信息 和传播向量 。既然我们需要光滑地传播, 应该成为一幅平滑估计后的图像。为),(jiLn了这个目的,我们需要应用简单离散的拉普拉斯算子来实现:=),(jin ),(),(jiIjiInynx其它的平滑估算量也有被应用,然而通过选择这种简单的算子已经获得了满意的研究结果。接着,我们必须沿着 向量去计算 的改变值。为了实现这个目标,N),(jiLn我们必须先去定义二维信息传播中向量 的可能值。一种可能性是将 定义N为到受损区域边界 的有符号的标准单位距离,在受损区域 内部的任何点 ,
12、将成为 所属的受损图像边界 的缩减版本的标准。)(ji)(jiN),(ji 见图1 。传播边界信息标准能够实现边界等照度线的连续性从而产生了这样的选择动机。然而,为了和矢量 保持一致从而弯曲了到达图像受损区域边界N的轮廓线,见图2。这当然不是我们希望见到的。由于需要被修复的区域是任意的,而受损区域边界 的定向性也并不是图像几何学的本质。如果等照度线想要和和矢量 保持一致,那么矢量 最好选择等照度线N的方向。这又是一个引导指令的问题:由于我们可以很容易地通过等照度线的方向场来恢复灰度图像,因而在受损区域 内部持有等照度线也就等同于让图像对自身进行了修复。- 4 -图1传播行进方向选择为修复区域边
13、界的法线方向图2:延伸方向的不成功选择。左图:原图像样本区域的细节部,白色部分是待修复区域。右图:修复后图像一种随时间变化而变化的等照度线方向场的估计值:对于任何给定的的点,离散的梯度向量 给出了空间最大的方向变化,当它90),(ji ),(jiIn的旋转 是空间最小的方向变化,因此矢量 给出了等),(jiIn ),(jiIn照度线的方向。我们的字段 通过随时间变化的N而取值。最初我们使用的是一个随时间变化的比较),(),(jiInjiNn粗糙的估计值,但逐步地可以实现从受损区域边界 获得预期的连续性,而不仅仅只是一个一开始意味着着等照度线方向固定字段的 。),(jiN既然方向领域不是标准化的
14、,它的基准是 的梯度规范。这个选择),(jiInt帮助实现算法的数字化稳定性,将在接下来的段落里讨论。由于我们在沿着等照度线来实现图像修复,如果 是通过),(jiIn的顺时针旋转或逆时针旋转得到的,那么它们是相互关联的。在这),(jiIn两种情况下, 沿着方向改变应该被减小。),(jiInt概括来说,我们估计了光滑值的变化量,在我们的例子中是由离散的二维拉普拉斯给出的,并且将这一变化值设计运用到等照度线变化方向。用上述的- 5 -规则来更新图像中需要被修复的区域值。上文描述的在图像修复进程中插入一个漫射传播过程是为了保证方向场的正确演变。也就是说,每隔几步,我们在图像传播时应用几次迭代求精。这
15、样的传播与周期性轮廓线的弯曲一致,也能够避免轮廓线相互之间的交叉。我们运用各向异性的传播,14,15,为了在重建的过程中不损失清晰度的前提下实现此目标。特别是,在我们在接下来要讲的连续的时间/连续的空间里各向异性的传播方程式中应用了一次简单的离散化:离散方案和实现细节我们算法的唯一输入是需要被修复的图像,任务是对待修复区域的定界。作为一个预处理的步骤,全部的原始图像经历了各向异性的平滑传播扩散。这样做的目的是为了减小对到达受损区域边界 等照度线的噪声估计值的影响。之后,图像进入到修复的循环,只有在受损区域内部的值被修改。这些值根据图像修复程序的离散实现来改变,也就是我们接下来要讨论的内容。每几
16、次迭代会应用一步各向异性的传播过程。这个过程一直在重复直到获得一个恒稳态。在修复时间n里,用 来代表图像待修复区域 中的每一个像素点。),(jiIn 那么,从数值分析文献中得来的关于离散图像修复的方程式如下:当- 6 -我们首先通过式子(7)计算出二维图像的光滑度L以及通过式子(8)计算出等照度线方向 。接着我们通过式子(9)计算出 ,通过矢量 的映N/ nN射得到的 ,也就是说,我们沿着矢量 的方向计算出 L的变化量。最后,在nN式子(10 )中将被斜率限制版本 乘以图像梯度 。一个主要的差异实现将nI会改变体制使其变得不稳定,也因为这个原因要去应用斜率限制器。指数b和f表示前后的各自差异,
17、当指数m和M反复地表示最大值和最小值,在派生物和零之间。最后,我们注意到,选择不标准的字段 而不是标准的字段版本,能N够允许得到一个更简单更稳定的数值体制。再次注意到当图像修复技术算法到达稳定状态时,也就是说, ,我们0tI已经在几何学上解决了 的平滑问题, ,也就意味着沿着等照度线光0I滑度是不变的。当在受损区域的受损区域边界 上的像素点应用公式(4)-(10)去修复,使用已知的待修复区域周边像素信息。概念上来说,我们在区域 计算公式(4 )-(10 ) ,尽管我们只更新了受损区域内部值。这些信息在受损区域窄带 是通过受损区域内部传播的。这些信息传播,包括灰度值和等照度线方向,是我们的算法成
18、功实现的基本原理。在修复循环中,步骤A:我们通过公式(4)来执行图像修复;步骤B:通过公式(3 )来执行传播,然后在反复执行步骤A。执行的总步骤数为T步。这个数字是预先设定好的,当图像中的变量取值小于给定的门限值时,公式停止运算。我们的取值为:A=15,B=2, t=0.1的改变率。根据受损区域 的大小来决定T的取值。如果受损区域 是很大的范围,将采用多分辨率方式来加速运算进程。彩色图像可以被认为是由一组三色图像混合而成的,以上讨论的技术可以- 7 -独立地适用于每一种颜色的图像。为了避免虚假颜色,我们采用了一个跟LUV模型很相似的颜色模型,用一个亮度信号和两个色度信号来表示。如下图所示。图3:三基色模型(R,G,B)之间的关系以及在本文中用到的( )sin,