英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
图像绗缝的纹理合成与转移
摘录
我们提出一种简单的基于图像的方法来生成新的视觉外观,其中一个新的图像通过现有图像的小块拼接在一起来合成。 我们称这个过程叫做图像绗缝。 首先,我们使用绗缝作为新的、快速的但非常简单的纹理合成算法,这对于广泛的纹理会产生令人惊讶的好结果。 其次,我们扩展算法执行纹理传输渲染具有从不同对象获取的纹理的对象。 更普遍的是,我们演示如何以不同图像的风格重新渲染整个图像。 方法直接在图像上工作,不需要3D信息。
关键词:纹理合成 纹理映射 基于图像渲染
- 介绍
在过去十年中,计算机图形学在图像渲染领域发生了一系列的活动,研究人员探索到将现实世界的样本捕获为图像并将其用于综合新观点而不是重新创建整个视图的想法物理世界从零开始。这反过来又引起了对基于图像的纹理合成算法的兴趣。这样的算法应该是能够获取纹理样本并产生无限量的数据的图像数据,虽然不完全像原始图像,但是将被人类认为是相同的纹理。而且,它能够将纹理从一个物体转移到另一个物体,这是很有用的(例如,在任意物体上切割和粘贴材料性能的能力)。
在本文中,我们提出了一个非常简单的算法来解决纹理合成问题。主要思想是通过获取现有纹理以一种连续的方式拼接成它们的新纹理。然后,我们给出可以用于纹理传输的方法的概括。
输入的图像 绗缝结果
图1:纹理合成和纹理转移的绗缝演示。 使用水稻纹理图像(左上方),我们可以合成更多这样的纹理(右上)。 我们也可以转移水稻纹理到另一个图像(左下),从而显着不同的结果
1.1 之前的工作
纹理分析和综合在心理学,统计学和计算机视觉方面有着悠久的历史。 吉布森在1950年指出纹理对视觉感知的重要性[8],但它是Bela Julesz开创了纹理鉴别的工作[12]为该领域的发展铺平了道路。Julesz表明人类观察者在两个图片的统计信息匹配的情况下会觉得这些图片是一样的。这表明统计纹理合成中的两个主要任务是(1)选择正确的统计量匹配,(2)找到一个算法匹配它们。
由于人类纹理辨别的心理物理学和计算模型的激励[2,14],Heeger和Bergen [10]提出了根据滤波器响应的分析纹理在多个尺度和方向的直方图。 迭代地匹配这些直方图足以产生令人印象深刻的综合结果随机纹理(参见[22]理论论证)。 然而,由于直方图测量边际,而不是联合统计,它们没有捕获尺度和方向上的重要关系,因此算法无法应用于更结构化的纹理。 通过匹配这些成对统计,Portilla和Simoncelli [17]能够以更复杂的优化程序为代价来大幅改善结构化的纹理。
在上述方法中,通过采用随机噪声图像并强制进行纹理合成以具有相同的相关统计以放在输入图像中。 相反的方法是从输入图像开始,并将其随机化,只有统计信息匹配的才被保留。 De Bonet [3]扰乱了输入粗略到精细的方式,保留条件分布通过多个尺度(喷气)过滤输出。 徐埃尔 [21],灵感来自PHOTOSHOP中的克隆工具提出了一种简单的方法以产生类似或更好的结果。 这个想法是从输入纹理的块采取随机平方,并将它们随机放置到合成纹理(用Alpha混合来避免边缘伪像)。
图2:绗缝纹理。 来自输入纹理的方块被修补在一起以合成新的纹理样本:(a)块是
随机选择(类似于[21,18]),(b)块重叠,并且选择每个新块,以便在其区域中与其邻居“同意”重叠,(c)为了减少阻塞,块之间的边界被计算为通过重叠处的误差表面的最小成本路径。
这里保存的统计数字只是安排每个块内的像素。 虽然这种技术由于边界不一致对于结构化图案(例如棋盘)经常失败,但对于许多随机纹理,它的工作效果非常好。 一个Praun等人成功地使用了相关方法。 [18]用于不可展开物体的半自动纹理。
在全球范围内执行统计工作是一项艰巨的任务,没有一个以上算法提供了完全令人满意的解决方案。一个更容易的问题是在本地执行统计信息,一次一个像素。Efros和Leung [6]开发了一种使用非参数抽样“生长”纹理的简单方法。条件分布估计到目前为止所有其相邻合成的每个像素通过搜索样本图像和查找所有类似的邻域。(我们最近才知道一个几乎相同的算法在1981年由Garber [7]提出,但由于它计算难易度而被抛弃。)该算法对于广泛的纹理会产生好的结果,但是会令人难以置信的慢(全面搜索的输入图像需要合成每个像素!)。一些研究人员已经提出优化基本方法,包括Wei和Levoy [20](基于Popat早期的工作Picard [16]),Harrison [9]和Ashikhmin [1]。但是,所有这些改进仍然是在贪婪的单像素同时工作范式,因此容易陷入搜索空间的错误的部分,并开始“种植垃圾”[6]。
现在已经开发了特定渲染域的方法,它捕捉了我们在纹理传输中的目标的精神。 我们的目标就像在非真实感渲染中的工作(例如[4,19,15])。一个关键的区别是,我们试图通过从现实世界中抽样来表征输出渲染风格。 这就会从照片或图纸的样本中形成丰富的渲染风格。
今年发表的大量论文,都是独立开发的,与我们的工作息息相关。基于[6]的变化的纹理转移想法已被几位作者提出[9,1,11](特别是见赫兹曼的优雅论文等等 [11]在这些诉讼中)。 梁等 [13]提出了一种与我们非常相似的基于实时贴片的纹理合成方法。 读者可以通过查看这些作品,来了解这个领域更完整的样子。
-
- 动机
一个关于一像素一次合成算法的奇怪事实如Efros和Leung [6]是非常复杂的纹理几个像素实际上具有可以分配的值的选择给他们。也就是说,在合成过程中,大多数像素都有它们的完全取决于迄今为止合成的价值。作为一个简单的例子,让我们在飞机上采取一个圆圈的模式。一旦算法开始合成一个特定的圆,全部该圆的剩余像素(加上一些周围的像素)是完全确定!在这种极端的情况下,圆圈会是称为纹理元素(纹理元素),但是这个效果依然存在即使当纹理更随机和那里时,程度较小没有明显的纹素。这意味着大量的搜索工作是腰围已经“知道他们的命运”的像素。那似乎合成单位应该比单个像素多一些,也许是“补丁”。然后纹理合成的过程将会像拼图一样,把补丁拼凑在一起,确保它们都配合在一起。确定给定纹理的补丁是什么,它们如何组合在一起仍然是一个开放的问题。在这里我们将介绍一个非常幼稚的版本拼接纹理以形成输出图片。我们称这种方法为“图像绗缝”。
- 绗缝
在本节中,我们将开发基于贴图的纹理合成程序。 让我们将合成单位Bi定义为从输入纹理图像所有这些重叠块的集合SB中用户指定大小的方块。 合成一个新的纹理图像,作为一个第一步,让我们简单地将其与从SB随机取出的块进行平铺。图2(a)所示的结果看起来有点合理而对于某些纹理来说,将不会比以前更糟糕[21,18]证明了复杂的算法。 但结果还是不满意,因为无论多么平滑边缘,对于大多数结构化的纹理,这将是非常明显的块不匹配。
下一步,让我们介绍一些重叠的位置的块到新的图像。 现在,不是随机选择阻止,而是我们将通过某种措施搜索SB这样一个和他相邻的块。 图2(b)显示了所得纹理的结构的明显改善,然而,块之间的边缘仍然非常明显。再次,对于平滑的边缘如何减轻这个问题,我们将试图以更原则的方式解决。最后,我们将让具有粗糙的边缘的块具有更好地近似纹理中的特征。 现在,在将选定的块放入纹理之前,我们将看看它与其他块之间的重叠区域中的错误。 我们发现通过该错误表面的最小成本路径,并声明为成为新区块的边界。 图2(c)显示了这个简单修改的结果。
图3:针对各种纹理的图像绗缝合成结果。 所得纹理(每对右侧)合成两倍原来的大小(左)。
2.1 最小误差边界切割
我们想在两个重叠块之间进行切割两个纹理匹配最佳的像素(即重叠错误少的位置)。 这可以很容易地用动态编程完成(Dijkstra的算法也可以使用[5])。
通过以下方式计算误差表面的最小成本路径。 如果B1和B2是沿其垂直边缘(图2c)与重叠区域Bov1和Bov 2重叠的两个块,则误差表面被定义为e =(Bov 1 Bov 2)2。 找到通过这个表面的最小垂直切割我们遍历e(i = 2.。N)并计算累积最小值所有路径的错误
E:Ei,j = ei,j min(Ei1,j1,Ei1,j,Ei1,j 1)。
(1)最后,E中最后一行的最小值将会显示通过表面的最小垂直路径的尽头和一个可以追溯到最佳切割路径。 类似的程序可以应用于水平重叠。 当有垂直和水平重叠时,最小路径在中间和下方相交整体最低的被选择切割。
2.2 图像绗缝算法
完整的图像绗缝算法如下:
1.通过光栅按一个块的顺序扫描需要进行合成的图像(减去重叠部分)。
2. 对于每个位置,搜索一组块的输入纹理来满足重叠部分限制(上,左)一些容错。 随机选择一个这样的块。
3.计算新选择的块和旧块之间在重叠位置的误差表面。沿着这个表面的成本路径找到最小值,并使之成为边界新块,将块粘贴到纹理上。 重复此步骤。
块的大小是用户控制的唯一参数,它取决于给定纹理的属性,块必须足够大以捕获纹理中的相关结构,但是也要足够小,以便留下这些结构之间的联系可以用算法体现出来。
在我们所有的实验中,重叠边的宽度(一个侧)是块的大小的1/6。 计算出错误对像素值使用L2范数。 误差容限设置为在最佳匹配块的误差的0.1倍以内。
图4:更多的图像绗缝合成结果(对于每一对,左边是原始的,右边是合成的)
源纹理 源纹理 目标图像
目标图像 纹理转移结果 通信地图 纹理转移结果
图5:纹理转移:在这里,我们从橙色和毕加索绘图中取出纹理并将其转移到不同的对象上。结果具有源图像的纹理和目标图像的对应关系图。
2.3 合成结果
对于宽范围的输入纹理的合成过程的结果显示在图3和图4中。虽然该算法对于半结构化纹理(对于统计纹理合成来说总是最难的)特别有效,但性能相当对随机纹理也很好。 两个最典型的问题是过度重复(例如浆果图像),并且不匹配或变形的边界(例如突变体橄榄图像)。 两者都是主要由于输入纹理不包含足够的变异性。图6显示了绗缝与其他纹理合成算法的比较。
该算法不仅实现量小,而且也很快:用于生成这些结果的未优化的MATLAB代码根据输入和输出的大小以及使用的块大小,每个图像的运行时间为15秒到几分钟。因为约束区域总是相同的,因此很容易优化搜索过程而不影响质量结果(另见Liang et.al. [13],使用非常相似的方法报告实时性能)。
- 纹理转移
因为图像绗缝算法是基于本地图像信息选择输出贴片,它特别适用于纹理传输。 我们通过要求来增加合成算法每个贴片满足期望的对应图C,并且满足纹理合成要求。 对应图是在纹理上符合一些相应特征的源图像和控制目标图像。 那个特征可以包括图像强度,模糊图像强度,局部图像取向角度或其他衍生量。
纹理传输的一个例子如图1所示,对应图是(亮度)图像强度男人的脸。 那就是明亮的面孔和明亮的米饭被定义为具有低对应误差。 合成的水稻纹理符合该第二个约束,产生一个渲染图像似乎在水稻中呈现。
对于纹理传输,合成的图像必须尊重两个独立约束:(a)输出合法,合成源纹理的示例和(b)对应图像映射被遵守。 我们修改图像的错误项绗缝算法为加权和,alpha;次块重叠匹配误差加上(1-alpha;)倍之间的平方误差源纹理块内的对应图像素那些在当前目标图像位置。 参数alpha;确定纹理合成与保真度之间的权衡目标图像对应图。
由于附加的约束,有时一个合成通过图像不足以产生视觉上令人满意的结果。 在这种情况下,我们迭代合成图像几次,每次迭代减少块大小。 唯一的变化从非迭代版本是在满足局部纹理约束的情况下,块不仅匹配在重叠区域上与其相邻的块,而且与上一次迭代中在该块合成的。 这个迭代方案令人惊讶的是,它从使用大块开始分配一切,然后使用较小的块确保不同的纹理很好地融合在一起。 在我们的测试中,我们使用N = 3到N = 5次迭代,将块大小每次减少三分之一,并且设置alpha;的第i次为alpha;i=0.8*(i-1)/(N-1) 0
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[25611],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。