英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料
翻译
基于优化思想的染色技术
Anat Levin Dani Lischinski Yair Weiss
图1: 输入一个由用户添加几笔颜色的灰度图像(左),我们的算法可以得到一个染色的图片(中)。作为参考,原始的彩色图像在展示在右边。
摘要:
染色是一种将颜色添加到单色图片或视频的计算机辅助过程。这一过程通常包括将图片分割成多块区域和在分割后的图像序列中跟踪这些区域。由于染色需要大量的人工干预并且是一个枯燥的、耗时和昂贵的任务,在实践中这一过程并不可靠。
在这篇文章中,我们提出了一个既不需要精确的图像分割,也不需要图像跟踪的简单的染色方法。我们的方法是基于一个简单的假设:在空间中相邻且具有相似强度的像素应该具有相似的颜色。我们使用一个二次的损失函数来抽象化这一假设并且得到了一个可以使用已有的技术解决的优化问题。在我们的方法中,一位艺术家只需要草草地画上几笔颜色,这些颜色会自动地形成一幅彩色图像或序列。我们只需要适量的用户输入就可以得到高质量的彩色图像或视频。
引言:
染色是在1970年由Wilson Markle提出用来描述为黑白电影添加颜色的电脑辅助过程。这一术语现在被用来描述任何为单色调图像添加颜色的技术。传统的为动作电影染色技术引发了很多争议,这导致迄今为止仅有少数的该类电影被染色。然而,仍然由很多的黑白电影需要被染色:艺术上的争议在这里是无关紧要的,而利润的刺激要起主导作用,就像Earl Glick在1984年提出的那样,在今天你无法以一百万美元一集来拍摄Wyatt Earp.但是可以用五万美金制作一个片段,然后进行染色来的到一个无需支付其他费用的新品牌。网络显示,对静态图画的染色也是图片编辑软件的兴趣点。
然而,染色的一个主要问题是这是一个费时费钱的过程。比如,为了对一幅静态画进行染色,艺术家通常要先将图像分割,然后对每一个区域进行色彩填充。但是自动分割算法通常无法正确识别模糊的或者复杂的区域边界,就像一个头发和脸的分界。因此,他们在创作的时候必须要手动地勾画出区域的边界。另外,对电影的染色要求在一个镜头的多个帧之间进行跟踪。已有的跟踪算法通常无法很好地跟踪到差别不大的区域,这又需要大量的人工干预。
在这篇文章中,我们描述了一种新的既不需要精确的图像分割,也不需要图像跟踪的交叉染色方法。这一方法基于统一的框架,既可以应用到静态图像,也可以应用到连续的图像片段。用户通过在图像每个区域的内部大致描述预期颜色,而不需要进行精确的边界跟踪。借助这些描述,我们的技术可以在图像序列中自动地填充上声誉的颜色。图像染色的过程在图1中进行了描述。这一算法基于简单的假设:在空间上相近的具有相似灰度值的点也有相似的颜色。这一假设使得使用已有的技术可以很有效地解决的优化问题。
因此,我们的方法是非常简单又及其有效地交互染色技术。它可以极大地减少人工干预。除了对黑白图像电影染色外,我们的技术也可以应用到再染色选择,这再数字图像领域是一种极其有用的操作。
已有的研究成果:
在Markle最初的染色过程中,一种颜色至少要染一个参考帧。行为检测和跟踪的应用使得染色可以自动填充到没有运动发生的区域。使用光流来填充运动边界附近的颜色,通常需要人工调整。
虽然在工业界关于当代的染色技术公开的并不多,但是可以知道这些系统仍然依靠分割图片定义区域和帧之间的跟踪。BlackMagic是一种用来为静态图片染色的商业软件。它为用户提供刷子和颜色图案,但是对图片的分割仍然依靠使用者。
Welsh等人在2002年提出了一种半自动化的染色方法,通过将颜色从参考图片中转化来实现。他们测试目标图片中每个像素附近的亮度值。这一技术对于不同颜色区有不同颜色簇的图片测试结果较好,但是在其他情况下,用户必须通过用样本分类进行搜索来匹配两个图片中的相关区域。尽管这项技术得到了很好的结果,但是艺术家却无法直接地控制结果——他们必须找到包含预期区域颜色的参考图片,并且参考图片必须和目标图片具有相似的画风。在有问题的区域也很难去有选择性地优化输出结果。相反,我们的方法中,艺术家可以直接选择颜色,可以通过在必要的地方添上几笔就可以优化结果。另外,Welsh的方法无法清晰地表明颜色的空间集合分布,在某些图片中,可能会对具有相似强度的相邻像素添加完全不同的颜色。
算法:
我们使用YUV颜色区,通常用在视频中。Y是单色区,我们简单将其定义为强度,就是所谓的灰度值。U和V是彩色区,用来为颜色编码。
算法中的输入是强度矩阵Y(x,y,t),输出是两个颜色矩阵U(x,y,t)和V(x,y,t)。味了简化标注,我们使用黑体来(比如r,s)来表示(x,y,t)。因此Y(r)是某个像素的强度值。
正如在引言中提到的,我们希望提出限制:如果两个相邻的像素r,s具有相似的强度值,他们的颜色应该相似。因此我们希望最小化在像素r点的U(r)和相邻像素的加权平均值:
|
(1) |
其中是权重因子,总和为1,当Y(r)和Y(s)相近的时候比较大,当强度值差别较大时权重较小。相似的权重因子在图像分割算法中广泛使用,通常也被叫做近邻函数。
我们已经测试了两个权重函数。最简单的一个通常被用来做图像分割,是基于两个强度值的平方差。
|
(2) |
第二种权重函数是基于两个强度之间的归一化相关系数。
|
(3) |
其中和是r附近窗的平均值和方差。
相关性也可以通过假设一个颜色和灰度强度的线性关系得到。假设在U(r)像素点的颜色是一个强度Y(r)的线性函数并且线性因子,对于r附近区域的所有像素均相同。这一假设可以根据经验调整,这意味着当强度是连续的,颜色应当是连续的,当强度是边界,颜色也应当是边界(尽管两边的值可以是任意的两个数字)。尽管这个模型给每个图形窗增加了一对因子,去掉这对因子就会得到带有基于相关性邻近函数的公式一。
标号表示r和s是相邻像素。在某个单帧中,如果他们的图像位置相近,我们将两个像素定义为相邻。在两个连续的帧中,考虑到运动后,如果他们的图像位置相近,则定义为相邻。定义,表示在t时刻计算的光流。当满足:
|
(4) |
像素(x0,y0,t)是像素(x1,y1,t 1)的邻点。
流场,是使用标准的运动估计算法计算得到。光流只用来定义每个像素的空间相邻点,而非时间相邻。
现在已知一系列的位置点ri,其颜色为,,基于此我们最小化J(U),J(V).由于损失函数是二次的,限制条件是线性的,这一优化问题产生了一个大的线性等式系统,我们可以用已知的方法求解。
我们的算法和其它图像处理任务的方法非常接近。在基于归一化割的图像分割算法中,我们尝试找到D-W的矩阵中次小的特征向量,其中W是n*n的矩阵,其中的元素是像素间的配对,D是对角矩阵,数值是相邻元素的和。任意一个对称矩阵A的次小的特征向量是一个单位向量使得最小并且和第一个特征向量正交。通过直接观察,归一化割得到的最小二次函数恰好是我们的损失函数J,也就是。因此,我们的算法在不同的限制下最小化同样的损失函数。在基于各向异性传播的图像去噪算法中,通常最小化和公式1相近的函数,但是这一函数也可以用于图像染色中。
结果:
这里显示了所有使用基于窗的相关性得到的结果。每个像素的平均值和方差,可以通过赋予相似像素点相应的权重进行计算。高斯窗可以得到相似的可视化结果(公式二)。对于静态的图片,我们使用Matlab中内嵌的针对稀疏线性系统的最小二乘方法求解,对于电影的动态序列,我们使用一个动态网格求解器。使用这个动态网格求解器,每一个帧的运行时间大约是15秒。在公式4中的阈值T设置为1,这样使用的窗即为3*3*3.
图2展示了一些经过用户选点后的一些灰度图片,旁边是相对应的染色结果。因为我们的主要工作并不是自动化颜色的选择,我们在选择颜色的时候使用每张图片的原始颜色区域。正如看到的那样,我们的算法可以得到非常理想的结果,尽管可以得到的彩色点输入非常少。
一般而言,艺术家可能会比较想从少量的彩色涂鸦开始,然后通过添加更多的颜色来对图像进行优化。图三便展示了针对一幅静态图片的这一过程。
图4表明了我们的技术如何运用到再染色上。为了将在左上图片中的橙子的颜色变为绿色,艺术家首先在其附近定义了一个大致的覆盖,然后在橙子中间涂上期望的颜色。然后我们使用我们的方法来扩充绿色,直到找到了强度的边界。特别地,我们在两个限制集合下最小化了损失函数(公式1)。首先,对于被用户涂色覆盖掉的像素点,最后的颜色应该是后来覆盖上的颜色。第二, 对于保护区外的颜色,最后的颜色应该和原颜色相同。所有的其它颜色都由优化算法来自动计算得到。在这个应用中,像素之间的关系不仅仅取决于他们的灰度强度值的相似度,也取决于他们在原始图像中颜色的相近度。不像全局的色图操作,我们的算法并不会重染色图像中的其他句子,因为颜色的拓展并不会跨越强度边界。图片的最下面一行展现了另一个例子。
图5和图6展示了从彩色的电影中选择的帧。虽然得到的总的颜色样本并不多,最后的染色结果却出人意料的好。我们也成功地对电视剧我爱露西中的片段成功地进行了染色,还有卓别林的经典电影摩登时代。原始的电影最开始是黑白的,因此对于这几个例子,我们并没有什么可以用来选择染色所参考的颜色。
图7和图8将我们的方法和两个可以替代的方法进行了比较。在图7中,替代的方法是先将图片自动分割,然后使用大面积染色来对每一个分块进行染色,所选的颜色是最初的几笔色彩。图7a表现了使用正交分割方法来计算得到的自动分割方法处理后的结果。分割是一个非常复杂困难的方法,即使最先进的方法也无法保证百分之百成功自动地勾画出所有的边界,就像头发和额头之间的复杂界限很难区分,或者说嘴唇和脸之间这种对比度非常低的界限区分。最后,通过这种方法实现的染色(如图7b所示)比由我们的方法计算得到的值(如图7c所示)要差得多。在这两种方法中,使用了同样的选择颜色。我们需要精心挑选不同的颜色,这样,缺陷会表现得更明显一些。
图8将我们的对图像序列染色的方法和另一种方法进行了比较。在另一种方法中,只对单一的帧进行了染色,然后跟踪光流。跟踪的光流用来随时间将颜色进行拓展,以实现染色的目的。我们的方法由于只是使用光流来定义相邻部分,这样要更加稳健,毕竟可以避免出现跟踪失败的情况。
在这两种情况下,不论是使用自动分割的方法还是使用跟踪来在时间序列上染色,最后的结果都可以通过使用更加先进的算法进行优化。换句话说,如果自动分割已经是完美的了,那么基于流的分块填充也将会得到完美的结果。同样的,如果密度光流已经是完美的了,那么从一个帧扩充到其他帧的染色方法也应该是完美的。金冠计算机视觉已经发展了很多年在自动地填色领域先进的算法仍然无法到达完美的输出。我们的优化框架的一个好处是我们企图使用分割和光流作为一种对于正确的染色的一种提示,但是即使这一提示出现了问题,最后的优化结果仍然非常好。
总结
尽管从1970年开始图像处理就开始取得飞跃式的发展,但是染色仍然是一个对人工操作要求较多的任务,并且非常地耗费时间。在这篇文章中,我们已经提出了一种可以帮助图像艺术家自动为电影染色的方法,同时只需要较少的人工干预。在我们算法的框架中,艺术家不需要非常精确地勾画出物体间的明确边界。相反,艺术家们只需要在选中的帧中为少量的像素点染色即可。我们的算法将会自动地扩展这些颜色,并且会基于强度边界。我们已经展示了我们出色的染色算法可以只依赖非常少量的用户干预便可以实现。
作为一个优化问题,区域染色的一个非常吸引人的特征是它和其他的图像处理的问题有清晰的界限。更具体来说,我们已经展示了我们的算法旨在最小化损失函数,这和最先进的分割算法要达到的目的是一样的,但是两者的限制条件是不同的。在未来阶段的工作中,我们将依靠这一等价关系来将图像分割方法的有利因素(比如更加先进的近邻函数和更快的优化方法)引入到图像染色问题中去。另外,我们计划探索额外的染色空间和色彩拓展机制,从而可以对色彩和饱和度区分对待。我们坚信这些额外的改进将会使我们得到更好的染色结果,与此同时,标记的染色点甚至也会有所减少。
致谢
我们想对Raanan Fattal对我们多网格求解问题的帮助表示感谢。这一工作部分是由以色列科学和人道主义学院和以色列科学技术部赞助的以色列科学组织赞助。
图2. 静态图染色示例。顶行:带有彩色点的黑白输入图像。底行:染色结果图像。
图3: 逐步改进染色。艺术家由图(a1)展示的彩色点开始,产生了(a2)的结果。注意到桌布产生了和女孩裙子一样的颜色。并且,青色奶嘴的颜色有些溢出到后面的墙体上。通过像(b1)那样在桌子上和墙上添加彩色点,这些问题得到了解决,如图(b2)。接下来,艺术家决定通过增加些红色像素来改变珠子的颜色,得到如同(c2)的结果。注意这并不需要对每一个珠子进行标记。
图4:对静物画的再染色。图(a)是输入图片。图(b)是将不改变颜色的部分标记为白色来保持其原有的颜
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[141826],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。