具体实施方式
快速图像遮片
此处所描述的技术一般涉及用于使得能够将图像的前景部分与图像的背景部分分开的图像遮片。例如,可从输入图像中提取或拉取前景对象并将其置于由另一图像提供的背景之上。此处的实现可应用于其中难以将背景与所提取的前景区分开来的自然图像遮片。例如,当前景和背景之间的边界是诸如在头发或其他复杂结构在明显是前景和背景的图像部分之间的边界区域中延伸时产生的软边界时,可应用某些实现。此外,可以在各种应用中采用此处用于图像遮片的某些实现,诸如图像/视频分割、分层提取、新视图合成、交互式图像编辑、以及电影制作等等。
某些实现提供用于从高分辨率图像中提取高质量阿尔法遮片的交互式工具和技术。这些实现可包括基于绘图的用户界面以及实时地将结果作为反馈提供给用户的非常高效的遮片过程。该用户界面可无缝地集成两种类型的画笔工具,即选择画笔以及一个或多个遮片画笔,以便有效地处理不同种类的对象边界。此处的高效遮片计算技术允许遮片过程期间的即时反馈。因此,能够在一定范围的多兆像素图像上快速“绘制”或“画出”高质量阿尔法遮片和新合成图。
根据某些实现,选择画笔可用于固定宽度的边界,因为只可使用远离对象边界的因果笔画。此外,遮片画笔可适用于复杂的边界区域,诸如用于标识多毛的、模糊的或其他复杂或软边界区域。使用此处的不同的画笔类型和用户界面,可以在每一次鼠标拖拽操作或其他用户输入后几乎立即计算出高质量阿尔法遮片和/或新合成图并显示为反馈。这两种画笔类型可以无缝集成以使得用户能够在任何时刻使用任一种来有效地处理所有种类的边界。对于高分辨率图像提供实时反馈是不同寻常的,因为例如,画笔的半径可以容易地是数百个像素。另外,使用较小的画笔大小来进行图像交互可能是不合需要的,因为在太小的区域中局部地对阿尔法遮片求解可导致糟糕的局部最小值、误差或伪像。此外,为了支持该用户界面并进一步加速遮片优化,此处的实现可包括局部积分图像处理、自适应粗略到精细逼近、以及相对较大核前景估计,如将在下文中进一步描述的。
因为遮片问题是高度成问题的,所以在某些实现中,可由用户或应用程序提供指示明确前景、明确背景、以及未知区域的三重图(或笔画)。效率也是图像遮片的考虑事项,尤其是在应用于由常规数码相机产生的较大多兆像素图像的时候。此处的实现能够快速且高效地推断出图像的未知区域内的阿尔法遮片,并且能够处理类似头发的复杂情况。某些实现可应用于其中当用户在显示器上指示三重图的区域时实时形成遮片的交互式图像遮片。
此处的某些实现提供比常规技术快得多的、使用相对较大核遮片拉普拉斯矩阵来进行高质量图像遮片的技术。拉普拉斯矩阵(有时被称为导纳矩阵)是基于色彩的像素之间的仿射的矩阵表示。某些实现基于使用较大核遮片拉普拉斯来对线性系统求解的高效方法。核大小指的是所处理的图像部分的大小,即,包括感兴趣的像素周围的多个像素。根据此处的某些实现,使用相对较大的核大小加速约束传播,减少线性解算机收敛时间,并提高遮片质量。为了进一步加速遮片过程并减少计算时间,某些实现采用分割技术来将三重图分解成子三重图并且允许将自适应核大小分配给每一子三重图。由此,可提前固定迭代次数并且整个过程的运行时间对于未知像素的数量可以基本上是线性的。测试已展示此处的实现可以比常规技术快5到20倍同时实现高遮片质量。各实现对于诸如薄雾移除、空间变化白平衡、以及禀性图像等采用遮片拉普拉斯的其他应用也可以是有用的。
大核遮片拉普拉斯
对于彩色图像,前景F和背景B可被指定为具有阿尔法通道遮片α的色彩分量。例如,在红、绿、蓝(RGB)色彩模型中,图像可被表达为矩阵,如下:
阿尔法通道具有各种用途,包括例如,遮蔽对象、使其透明、或者添加特定色彩指示。在{α,F,B}矩阵中,阿尔法通道是区分RGB图像中的前景和背景的遮片。如此处所描述的,用户可通过目的是找到适当的a和F的被称为遮片的过程来为图像构造这一矩阵。例如,在阿尔法遮片中,阿尔法值1通常指示前景区域而阿尔法值0通常指示背景区域。
图像遮片是固有地无定解的,因为遮片等式具有太多未知量。因此,经常使用用户交互来获得高质量遮片。例如,在自然图像遮片中,用户可提供将图像分成以下三个区域的三重图:“明确前景”、“明确背景”以及“未知区域”。未知区域通常是明确前景和明确背景之间的边界。在某些实现中,用户可使用各种界面和输入设备来标识明确前景和/或明确背景。例如,用户可使用鼠标或其他输入设备来制造一个或多个笔画,涂改或点击图像以指示图像的前景部分和/或背景部分。此外,在某些实现中,三重图可以部分地或完全自动生成。例如,用户可主动标识前景的一部分和背景的一部分,且基于该标识来自动生成三重图。在某些实现中,用户可使用输入设备来主动标识未知区域或边界。在其他实现中,三重图可诸如通过运动估计基于图像序列中的前一图像来自动生成。鉴于本文的公开内容,其它变型也将显而易见。
对于具有前景色(F)、背景色(B)和前景不透明度(阿尔法遮片α)的输入图像中的每一个像素,该像素的色彩I可被表达为前景和背景色的凸或线性组合,如下:
I=Fα+B(1-α). (1)
遮片拉普拉斯矩阵是适用于图像遮片的仿射矩阵。拉普拉斯遮片的一个假设是色线模型,即位于RGB色空间中的单条线上的局部窗口中的前景(或背景)色。α是局部窗口中的I的线性变换由以下等式来证明:
其中i是像素索引,Ii和a是3×1向量,aT是向量a的转置,而a和b被假设为在局部窗口ω中是恒定的,其中,a=1/(F-B)且b=-B/(F-B)。因此,代价函数J(α,a,b)可被定义为支持遵循以下模型的阿尔法:
其中ωk是以像素k为中心的窗口,而ε是正则化参数。通过对于(a,b)来最小化代价函数,可获取α的二次函数:
J(α)=αTLα. (4)
此处α被表示为N×1向量,其中N是未知量的数量,且矩阵L被称为“遮片拉普拉斯”。拉普拉斯矩阵L是其(i,j)元素可被表达为以下等式的N×N对称矩阵:
其中ij是Kronecker增量,μk和∑k分别是窗口ωk中的色彩的均值和协方差矩阵,|ωk|是窗口ωk中的像素的数量,而U是3×3单位矩阵。
将该代价函数与用户指定的约束(例如,三重图)组合,整个代价函数可被定义为:
E(α)=αTLα+λ(α-β)TD(α-β), (6)
其中β是三重图,D是其元素对于约束像素为1否则为0的对角矩阵,而λ是用于对未知像素强制实施硬约束的较大数。在某些实现中还可结合由色采样置信度或稀疏性先验指定的数据项。等式(6)的代价函数可通过对以下稀疏线性系统求解来优化:
(L+λD)α=λDβ. (7)
薄雾移除、空间变化白平衡、以及禀性图像技术也涉及该线性系统。给定该线性系统,此处的实现提供使用适当的线性系统解算机来恢复α的遮片组件,如下文中所描述的。诸如LU(较低-较高)分解等非迭代方法通常由于高存储器成本而对处理该大规模线性系统是无效的。此外,在常规迭代方法中,已知像素的信息通过迭代地乘以矩阵来传播到未知区域中。然而,迭代方法通常是耗时的,并且迭代方法的另一缺点是执行计算的时间难以预测,因为迭代此数取决于未知量的数量、图像内容、以及三重图形状。因此,常规迭代方法通常不适用于交互式图像遮片。
此外,常规方法通常使用小窗口或核,因为矩阵对于较大窗口将会较不稀疏。常规想法认为对较不稀疏的系统求解花费较多时间。然而,根据此处的某些实现,这未必为真。因此,根据此处的某些实现,对较不稀疏的系统求解花费较少的迭代来收敛,且唯一的瓶颈是每一次迭代中的增加的计算负担。因此,此处的实现能够大大减少每一次迭代的时间,因此图像遮片组件在使用较大窗口或核时实际上可以更快。
图1出于讨论的目的描绘了具有位于其中心的像素i的21x21像素核100。遮片拉普拉斯的核大小被定义为L的行中的非零元素的数量。在等式(5)中,窗口ω的窗口半径可由“半径”r来表示。于是核大小可被定义为(4r+1)2。如等式(5)所阐述的,L的(i,j)元素仅当(i,j)∈ωk时是非零的。根据此处的某些实现,如图1所示,当窗口ω的半径为r时,以i为中心的核的半径为2r。因此,核100包括具有位于其中心的像素i的半径为r的第一窗口ωj和具有位于其中心的像素k的第二窗口ωk。像素i和像素j两者都是窗口ωi的元素,而像素i和像素k是窗口ωi的元素。因此,像素i受到离像素i的距离为2r的像素j的影响。
现有方法通常使用r=1(即,3x3像素窗口),因为L将在r较大时变得较不稀疏,并且用于对线性系统求解的存储器和时间都极大地增加。例如,在用于对线性系统求解的共轭梯度(CG)方法的情况下,CG解算机迭代地将共轭向量乘以拉普拉斯矩阵。(关于CG解算机的示例,参见Y.Saad的“Iterativemethods for sparse linear systems(用于稀疏线性系统的迭代方法)”SIAM,2003,第178页。)在每一次迭代中,矩阵积Lp支配计算成本。此处,p是前一次迭代的共轭向量。在信号处理的观点中,矩阵积Lp是p上的空间变化滤波器L的响应,其第i个元素是:
(Lp)i=∑jLijpj. (8)
使用等式(5)和(8)来计算Lp涉及空间变化卷积,其时间和存储器复杂度是O(Nr2)。当r变得更大时,这在计算上承担不起。然而,根据此处的实现,在每一次迭代中,像素可影响2r之外的另一像素。因此,信息根据2r像素来传播。相反,如果核较大,CG解算机将在较少的迭代中收敛。
此处的实现可采用O(N)时间过程(其独立于r)来计算每一次迭代中的积Lp。因为该过程独立于r,所以该过程在某些方面独立于窗口大小或核大小,并因此处理较大的核变得更高效。此外,此处的实现使用等式(9)、(10)和(11)来将积Lp作为一整体来计算,而不是显式地计算L的元素和卷积,如下文中所阐述的。因此,根据此处的实现,给定共轭向量p,Lp可通过以下三个等式来计算:
其中
是对于每一个像素k的3×1向量,
是ω
k中的p的均值,
且(Lp)
i被表示为q
i。如上所述,等式(9)-(11)独立于窗口半径r,并因此独立于窗口或核大小。因此,此处的某些实现基于值q来执行图像遮片,这由等式(9)、(10)和(11)给出,其等价于上述等式(5)和(8)中的值Lp。该等价性的定理和证明在下文中阐述。
定理:等式(9)、(10)和(11)所给出的值q与上述等式(5)和(8)所计算的值Lp相同。
证明:以矩阵记法书写,根据等式(9),存在仿射变换:
a*=Ap, (12)
其中A是取决于I的系数矩阵。当等式(9)与等式(10)组合时,可以看到,b*也是p的仿射变换:b*=Bp。类似地,q是p的仿射变换:q=Qp。
因此,为了示出q=Lp,可以示出
将等式(10)代入等式(11)并消去b,得出:
其得出:
其中如果j∈ωk,则δj∈ωk为1,否则为0。另外,等式(9)得出:
将等式(14)和等式(15)代入等式(13),得出:
其恰好是等式(5)中的L(i,j)。
此处的过程还具有直观解释:等式(9)和(10)是线性回归解并且回归模型可被表达为此外,等式(11)可被重写成:
其中,对于任何像素I
i,项
是p
i及其线性预测之间的误差。因为I
i在满足k∈ω
i的所有回归过程中都有所涉及,所以,等式(16)是i周围的所有窗口中的误差之和。
可以使用积分图像技术(参见例如,Crow,F.C.的“Summed-area tables fortexture mapping(用于纹理映射的合计区域表)”SIGGRAPH,1984)来非常高效地计算(9)和(11)中的所有求和。使用积分图像,可以在恒定的时间(例如,四次运算)中获得任何窗口的总和。例如,一旦已经为一图像计算了合计区域表,就可只用四个数组引用来在恒定的时间内估算任何矩形。因此,在每一次迭代中计算Lp的时间复杂度是O(N′)≈O(N),其中N′是未知区域的边界框的大小。因此,可以看到,时间复杂度也独立于核大小。
示例框架
图2示出了根据此处的某些实现的用于图像遮片的框架200的示例。框架200接收输入图像202以便进行处理。作为一示例,输入图像202可具有一个或多个前景对象,用户想要从输入图像202中拉取这些前景对象,诸如以便将其放置在另一图像(未示出)的背景上,等等。输入图像202可用于生成提供给可变核大小遮片组件206的三重图204。例如,在某些实现中,用户可以交互式地从图像中生成三重图,诸如通过使用鼠标和用户界面(图2中未示出)来指定明确前景区域、明确背景区域、以及边界或未知区域。在其他实现中,三重图可基于用户输入自动地或部分自动地生成。在其他实现中,可诸如由用户、应用程序等来提前生成三重图。例如,在一系列视频图像的情况下,可由应用程序诸如基于从前一帧中的运动估计来自动生成三重图,等等。
三重图和输入图像被提供给可变核大小遮片组件206以使用如上所述的等式(9)、(10)和(11)来处理该图像,以便产生阿尔法遮片和/或合成图像208。因此,对于未知区域中的每一个像素i,可变核大小遮片组件206基于前一次迭代的共轭向量p来确定值qi。如上所述,因为计算独立于窗口半径r和核大小,所以对于处理每一像素可使用相对较大的核大小(例如,5x5像素或更大),由此以比常规技术更短的计算时间实现高质量遮片。
图3A-3C描绘了示出根据图2的框架的遮片处理的输入图像300的示例。如图3A中所描绘的,输入图像300包括两个玩偶302、304作为自然背景306上的前景对象。玩偶302、304包括可能难以与背景306区分开来的头发308、310。图3B是对应于图3A的三重图312,包括明确前景区域314、316、明确背景区域318和边界或未知区域320。如上所述,在某些实现中,三重图可由用户诸如用鼠标或其他输入设备来交互式地生成。在其他实现中,三重图312可以自动地或半自动地,或者在接收到输入图像300之前生成。图3C描绘了基于上述等式(9)、(10)和(11)使用此处的独立于核大小和窗口半径r的遮片过程的实现来从输入图像300中提取的阿尔法通道或阿尔法遮片322。该过程已经清楚地将该三重图的未知区域320的细节定义为包括头发结构308、310的背景318或前景314、316。
图4描绘了根据此处的某些实现的用于图像遮片的示例过程400的流程图。在该流程图中,操作被概括成单独的框。操作可以用硬件或作为可由一个或多个处理器执行的处理器可执行指令(软件或固件)来执行。此外,过程400可以(但不一定)使用图2的框架来实现。
在框402,接收输入图像以便进行处理。例如,此处所描述的遮片组件和处理可以是诸如图像处理应用程序、照片编辑应用程序、演示应用程序、文字处理应用程序、视频编辑应用程序等计算机程序应用或软件包的一部分。
在框404,接收或为该输入图像生成对应于该图像的三重图。例如,如以上参考图3所描述的,三重图标识明确前景区域、明确背景区域、以及未知边界区域。
在框406,以独立于在处理期间使用的核大小和窗口半径的方式基于上述等式(9)、(10)和(11)来执行对图像的遮片处理。因此,使用等式(9)-(11)来将积Lp作为一整体来计算,而不是显式地计算遮片拉普拉斯L的元素和卷积。此外,因为该过程独立于核大小,所以可以在处理期间高效地采用相对较大的核大小,由此减少所执行的迭代次数并且提高总体过程的速度。对核大小的限制在下文中讨论并且基于维护系统的线性度,而不是处理时间等。
在框408,生成阿尔法遮片作为输出。阿尔法遮片清楚地指示输入图像的哪些部分是所选前景的一部分或背景的一部分。阿尔法遮片可用于各种应用,诸如用于将所选前景传送到不同的背景图像以创建合成图像或出于其他目的。
上述用于此处所描述的图像遮片的框架和过程可以在多个不同的环境和情形中实现。此外,虽然出于解释的目的在此处描述了若干示例,但本发明不限于这些特定示例,并且可扩展至其他环境、应用和设置。例如,此处的遮片处理可用于其他应用,诸如薄雾移除、空间变化白平衡、禀性成像等。
核大小
图5描绘了展示根据此处所描述的过程的实现来对同一图像进行处理期间的不同核大小的效果的图。如图5所示,可以看到解算机在较大核情况下收敛得快得多。在该示例中,当窗口半径r=1时,线性解算机花费519次迭代来收敛,而当窗口半径r=20时,解算机只花费44次迭代来收敛,且r=10和r=5的情况下的迭代数也显著地小于r=1的情况下的迭代数。此外,r=20情况下的运行时间(例如,0.090秒)(未在图5中示出)也显著地小于r=1情况下的运行时间(例如,1.07秒),而所得遮片实际上几乎相同。因此,通过采用上述过程,可以在使用相对较大的核时显著地减少线性解算机的运行时间,因为该线性解算机以较少的迭代收敛。此外,与常规技术相比,发现使用等式(5)和(8)的蛮力CG解算机的运行时间在r=1的情况下是0.95秒,在r=20的情况下是22秒。
具有大于r=1的半径的较大核也可提高所得遮片的质量,因为较大窗口可以覆盖前景/背景的断开区域。该特性在前景对象具有可通过其看见背景的各部分的洞时尤其有利。在这种情况下,当半径r=1时,该半径可能太小以至于无法覆盖已知背景和洞。因此,此处的实现可通过使用较大的窗口大小(例如,r=20)来获取高质量遮片。此外,此处的大核处理通常对于高分辨率图像可能更加适当。例如,小窗口可能不足以描述图像中的诸如头发、羽毛、绒毛等精细线条或结构,这可能导致丢失这些精细结构。然而,大窗口允许收集更多色彩样本,并由此实现较高质量的结果。此外,大窗口核还允许覆盖未知区域边界附近的更多已知像素并由此提供更稳定的约束。然而,大核的缺点是当前景/背景是复杂的时候,较大窗口导致较高的打破等式(9)-(11)所基于的色线假设(即,等式(1))的概率。例如,如果窗口太大以使得该窗口覆盖背景的不止一个色彩聚类,则色彩将不会位于同一线条中。因此,基于维护核中的色彩的线性度来限制核大小的上限。因此,遮片将不会与使用较小窗口一样准确并且可包括伪像。实际上,在创建三重图时,用户将在模糊对象或有洞的对象附近创建宽阔的未知区域带,因为难以提供精确的边界,而在另一方面,在实边界附近创建的未知区域带往往相对较窄。此外,使用高分辨率图像也可产生较宽的未知区域带。因此,使用较大核允许在宽带中高效地传播约束。然而,对于窄带,可能偏好较小的核以避免打破色线假设。为了实现该对于较窄的未知区域带使用较小核并且对于较宽的带使用较大核的目标,此处的实现基于如下所述的三重图分割技术来自适应地设置核大小。
具有三重图分割的示例框架
图6描绘了根据此处的某些实现的用于用三重图分割来进行图像遮片的框架600的示例。框架600接收输入图像602以便进行处理。作为一示例,输入图像602可具有一个或多个前景对象,用户想要从输入图像602中拉取这些前景对象,诸如以便将其放置在另一图像(未示出)的背景上,等等。输入图像602可用于生成三重图604,或者三重图604可以与输入图像602一起接收。例如,在某些实现中,用户可以交互式生成三重图,诸如通过使用鼠标和用户界面(图6中未示出)来指定明确前景区域、明确背景区域、以及边界或未知区域。在其他实现中,三重图可基于用户输入自动地或部分自动地生成。此外,可诸如由用户、应用程序等来提前生成三重图604。
可将三重图604提供给三重图分割组件606。三重图分割组件606执行三重图604的分割以便将该三重图分成较小的区域或分段以产生经分割的三重图608。通过对三重图进行分割,每一分段都可以在遮片处理期间使用最优核大小来单独地处理,如将在下文中进一步描述的。将经分割的三重图608和输入图像602提供给遮片组件610以便处理该图像以产生阿尔法遮片和/或合成图像612。
遮片组件610可包括可变核大小遮片组件614,该组件614执行遮片处理以便基于公式(9)-(11)来将阿尔法遮片与背景分开,如上所述。在某些实现中,可变核大小遮片组件614对应于上述可变核大小遮片组件206。经分割的三重图中的每一分段都可使用为该分段确定的最优核大小来处理。如上所述,因为遮片计算本身独立于窗口半径r和核大小,所以对于处理每一分段可使用相对较大的核大小(例如,5x5像素或更大),由此以比常规技术更短的计算时间实现高质量遮片。此外,通过三重图分割,可以优化核大小以维护每一核中的线性度。
遮片组件610还可包括局部处理组件616和全局处理组件618。可以提供局部处理组件616和全局处理组件618以解决否则可能由于三重图分割而出现在阿尔法遮片中的伪像和缝隙。因此,如将在下文中进一步描述的,根据某些实现,可以在每一分段的第一遍局部处理期间使用局部处理组件616来计算遮片。然后可以在对未知区域求解的一遍全局处理期间基于整个三重图使用全局处理组件618来细化遮片以移除分段之间的过渡。最后,可以在对经分割的三重图的每一分段执行附加处理的第二遍局部处理期间再次采用局部处理组件616来进一步细化遮片。鉴于本文的公开内容,其它变型也将显而易见。
三重图分割
根据此处的某些实现,三重图分割还可提高图像遮片的质量和效率。三重图分割允许在不同的区域中使用不同的窗口或核大小。因此,三重图分割将较大的线性系统缩减成一组较小的线性系统并由此进一步减少用于对整个系统求解的运行时间。
图7A示出了示例输入图像700,而图7B示出了图像700的对应的三重图702。对于给定三重图,此处的实现首先计算未知区域的重心(xc,yc)、x方差 以及y方差 其中U是未知像素集,且n是U的大小。然后使用穿过(xc,yc)的线条来将三重图分成两个区域。该线条与具有较大方差的轴(x或y)垂直。例如,在图7B所示的示例中,线条704将三重图分成两个区域,然后分别通过线条706和708来将这两个区域分成另外两个区域,这些区域中的每一个可被进一步分成另外两个区域,以此类推,以便将三重图702分成多个分段710。每一分段710都包含未知区域的一部分以及明确前景区域和明确背景区域中的至少一个。在某些实现中,可递归地划分三重图并且可相应地构建二维树数据结构。例如,在树数据结构中,整个三重图用作根区域并且每一次将一区域细分成两个子区域时,向该树添加两个分支。这一树可被称为二分空间划分(BSP)树或二维k维(2D KD)树。可遍历该树数据结构以便管理对三重图中的各分段的遮片处理。
停止对三重图进行递归细分的条件可如下确定。如果图像的细分区域覆盖足够的前景和背景约束,则可通过独立地只考虑该图像的细分区域来获取相当好的遮片。因此,分段较小是合乎需要的,同时仍旧具有尽可能多的除了未知(U)区域之外还具有明确前景(F)和明确背景(B)约束的分段。因此,根据此处的实现,可以在满足以下条件中的至少一个时停止三重图的递归划分:(a)分段只具有F和U元素;(b)分段只具有B和U元素;(c)如果划分分段,则该分段的子分段中的一个将只具有F和U元素,并且另一子分段将只具有B和U元素;或者(d)分段的最小宽度或最小高度将小于预定阈值。经验数据已示出32个像素应是合适的阈值,但也可使用其他合适的阈值。还可注意,这些条件通常导致三重图分割以使得每一分段中的未知区域的带宽一般是统一的。
根据某些实现,当已分割三重图时,每一分段中的线性系统可以如上所述地基于等式(9)-(11)来求解。积分图像在每一分段中的未知区域的边界框中计算。此处的实现首先对满足上述条件(c)或(d)的分段求解,因为这些分段直接包含F和B约束两者。然后,对其他分段(即,只具有F和U,或只具有B和U的那些分段)求解,诸如通过对树数据结构使用逆广度优先搜索次序,即,其中二叉树中的较深的叶节点具有较高的优先级。此外,因为这些其余分段不包含F或B约束中的一个,所以此处的实现将相邻分段的已经求解的遮片用作边界条件。逆广度优先搜索次序确保已经对相邻分段中的至少一个求解,但也可使用其他方法来确定对各个分段求解的次序。
另外,此处的实现使用于对每一分段求解的核大小适应该分段中的未知区域的带宽。例如,对于每一分段,令(w,h)为U的边界框(即,涵盖特定分段中的所有未知像素的最小大小的矩形)的宽度和高度。此处的实现按照wb=n/max(w,h)逼近该带的宽度。此处的实现设窗口半径r=wb/η,其中η是可根据经验来确定的因数。例如,此处的实现的实验已示出取决于所需窗口大小,η的合适的值的范围从2到20。直观上,传播将在η/2次迭代(注意,核半径是2r)内影响该带的另一侧。因此,收敛迭代次数是η的阶数,并且可以提前确定。例如,如果第一分段的未知区域的带宽大致是50像素,即,wb=50,则使用因数η为3,窗口半径r=50/3或17,以便处理该第一分段(即,核大小为69x69像素)。另一方面,当第二分段的带宽大致是30像素时,则对于该分段窗口半径r=10(即,核大小为41x41像素)。因此,此处的实现能够分配适于特定分段的核大小以便维护线性系统并实现最优处理速度。因此,传播速度对于特定分段中的未知区域的带宽是自适应的。此外,相同的迭代次数能够为不同宽度的两个未知区域带提供高质量遮片。
图8描绘了根据此处的某些实现的用于三重图分割的示例过程800的流程图。在该流程图中,操作被概括成单独的框。操作可以用硬件或作为可由一个或多个处理器执行的处理器可执行指令(软件或固件)来执行。此外,过程800可以(但不一定)使用图6的框架来实现。
在框802,接收标识明确前景部分F、明确背景部分B和边界或未知部份U的图像的三重图。
在框804,该过程选择三重图的区域以便进行处理。例如,在首次接收到三重图时,整个三重图是处理的区域,而随后,该三重图的细分区域是被选择以供处理的区域。
在框806,为所选区域的未知部分U计算重心、x方差和y方差。
在框808,可以沿着与具有较大方差的轴垂直的线分割该区域。
在框810,将通过分割所选区域创建的两个新分段添加到表示三重图分割的树数据结构。如上所述,该树数据结构可以是BSP或2D KD树。
在框812,基于指定条件来检查这两个新分割的区域以确定是否对这些分割区域中的一个或两者执行进一步的分割。因此,对于每一个新分割的区域,该过程确定是否已满足以下四个条件中的至少一个。
在框814,该过程确定分割区域是否只具有前景F和未知U元素。
在框816,该过程确定分割区域是否只具有背景B和未知U元素。
在框818,该过程确定如果划分分割区域,则是否子分割区域中的一个只具有前景F和未知U元素,而另一子分割区域将只具有背景B和未知U元素。
在框820,该过程确定分割区域的宽度或高度是否低于预定阈值。如上所述,可根据经验来确定该预定阈值。此处的实现已示出阈值可以在25和40像素之间,诸如例如32像素,但也可使用其他阈值。
在框822,该过程确定是否已满足上述条件中的一个或多个。如果否,则该过程返回到框806以处理没有满足任何条件的区域。另一方面,如果对于两个新分割的区域满足至少一个条件,则无需对这些区域进行进一步的分割并且该过程移至框824。
在框824,该过程确定是否已处理了三重图中的所有区域。当已经分割了三重图中的所有区域时,经分割的三重图准备好进行图像遮片处理。
局部-全局-局部处理
为了防止过度局部地确定结果,此处的某些实现采用局部-全局-局部(LGL)方案。按照该LGL方案,遵循上述三重图分割技术,执行快速对经分割的三重图中的每一分段的遮片求解的第一遍局部处理。接着,对整个未经分割的三重图执行一遍全局处理,并且然后对经分割的三重图执行第二遍局部处理以便进一步细化阿尔法遮片。
图9A-9H描绘了局部-全局-局部处理方案的执行和效果的示例。图9A描绘了对应于图3B的三重图312的三重图900。三重图900已经使用上述三重图分割技术来分割。最初,对三重图900中的每一分段执行图像的第一遍局部处理以生成阿尔法遮片902,如图9C所描绘的。例如,如果η=3,则遮片组件能够快速传播初始遮片信息。此外,此处的某些实现可根据经验来固定该第一遍局部处理中的迭代次数。例如,实验已示出10次迭代是使得第一遍局部处理足以获得良好的初始阿尔法遮片902的合适迭代次数。
然而,因为某种程度上是单独地处理各分段,所以在分段边界上可能存在注意得到的缝隙。图9B表示第一分段908和第二分段910之间的分段边界线906的放大区域904。图9D表示对应于图9A-9B的放大区域904的位置的阿尔法遮片902的放大区域912。对区域914中的放大区域912处的对应的阿尔法遮片902的仔细检查揭示分段边界线906的位置处的两个分段908、910之间的注意得到的过渡。
将上文中所获得的阿尔法遮片902用作初始猜测,此处的某些实现接着全局地优化整个线性系统。因此,对于全局遮片过程,在某些实现中,将窗口半径r设为min(w,h)/50,其中w和h是图像的像素宽度和高度,并且50是根据经验来确定的值,但也可使用其他合适的值。此外,要执行的迭代次数被确定为低数值,诸如5。该全局处理产生第二阿尔法遮片916,如图9E所示。如图9F的放大区域918所展示的,分段之间的注意得到的过渡通过全局处理消除。
然而,全局处理中所使用的核大小对于某些局部区域而言可能太大。因此,由于较大的核大小,阿尔法遮片916可包括伪像或者由于色线假设失败而丢失某些细节。因此,可以执行第二遍局部处理以便使用经分割的三重图900来进一步细化阿尔法遮片916。作为一示例,在第二遍局部处理中,η可以大于先前几遍处理中的η,诸如η=15,并且所准许的迭代次数也可以更大,诸如20次迭代。实验已示出大于20次的迭代几乎不改进结果。另外,因为η较大(即,与3形成对比的15),所以窗口和核大小在第二遍局部处理中比第一遍局部处理小得多以确保维护色线模型。这抑制了由于在先前两个步骤中使用较大窗口大小的伪像的出现,并且可产生第三阿尔法遮片920,如图9G所示。图9H描绘了阿尔法遮片920的放大部分922,其示出伪像被消除并且某些细节924得到改进。
时间复杂度
此处的实现的运行时间对于图像大小可以基本上是线性的,由此基于图像大小来提供可预测性能和处理时间。例如,如果N′被表示为所有分段中的未知区域的所有边界框的总面积,则当用于计算每一次迭代中的Lp的时间是O(N’)且已固定迭代次数时,局部步骤的时间复杂度是O(N′)。出于相同原因,全局步骤的时间复杂度是O(M),其中M是整个未知区域的边界框的大小。实验已示出全局步骤的时间由于较少的迭代次数而比局部步骤的时间少得多。因此,总时间复杂度基本上是O(N′)。因此,当N’稍微大于未知像素的数量N时,运行时间对于N几乎是线性的。因此,在分割三重图后,可以在运行线性解算机之前基于未知像素的数量来预测时间。
具有三重图分割的示例遮片过程
图10描绘了根据此处的某些实现的具有三重图分割的示例过程1000的示例的流程图。在该流程图中,操作被概括成单独的框。操作可以用硬件或作为可由一个或多个处理器执行的处理器可执行指令(软件或固件)来执行。此外,过程1000可以(但不一定)使用图6的框架来实现。
在框1002,接收输入图像以便进行处理。例如,在某些实现中,接收在自然背景上具有前景对象的高分辨率图像以便从该图像的背景中拉取该前景对象和阿尔法遮片。
在框1004,接收和/或生成输入图像的三重图。例如,在某些实现中,用户可交互式地使用用户界面和诸如鼠标等输入设备来生成三重图。在其他实现中,三重图可由用户或应用程序预先生成,或通过其他方法提供。
在框1006,如以上参考图8所描述地分割三重图。例如,分割三重图并且生成对应的树数据结构以允许在对各个分段进行遮片处理期间遍历三重图分段。也可使用执行对各个分段的遮片处理的其他方法。
在框1008,基于经分割的三重图来执行第一遍局部遮片处理。例如,这遍局部处理可以是使用较小迭代次数和较大核大小来对图像进行快速处理以获取第一阿尔法遮片。
在框1010,基于三重图且在不考虑分割的情况下对该图像执行一遍全局遮片处理。例如,该遍全局处理还可使用较大核大小和相对较小的迭代次数来执行以便通过移除分段之间的过渡区域来细化第一阿尔法遮片以获得第二阿尔法遮片。
在框1012,基于经分割的三重图来执行第二遍局部遮片处理以便进一步细化第二阿尔法遮片。该第二遍局部处理可使用比第一遍局部处理更小的核大小和更大的迭代次数来执行以便细化第二阿尔法遮片以获得第三阿尔法遮片。
在框1014,输出第三阿尔法遮片,并且可使用该第三阿尔法遮片来进行进一步的图像处理。例如,该第三阿尔法遮片可用于将对应的前景对象放在新背景上以创建合成图像,等等。
示例用户界面
此处的某些实现提供用于交互式图像遮片的用户界面。基于对象边界的特性,该用户界面可提供两种不同类型的交互式工具或“画笔”,其可由用户诸如通过使用鼠标、操纵杆或其他输入设备来控制。这些画笔可以在用户界面中表现为鼠标可控的光标或图标,且各自具有不同的形状以使得用户能够在画笔类型之间进行区分,并且可以在所显示的图像上移动以便与该图像交互。因此,该用户界面可提供此处被称为“选择画笔”的第一画笔类型以标识固定宽度的边界或与其交互。该用户界面还可提供此处被称为“遮片画笔”的第二画笔类型以标识复杂或软边界或与其交互。
选择画笔
图11A-11B描绘了根据此处的某些实现的采用选择画笔来交互式地从图像中生成三重图和遮片的用户界面的示例。选择画笔利用快速二分选择技术来在沿着对象边界的固定宽度的带中获取阿尔法遮片。例如,选择画笔可用于快速标识前景对象的明确前景部分,并由此可由用户用来交互式地生成三重图。如图11A所示,图像1100包括猫作为背景1104上的前景1102。为了选择前景对象1102以便进行遮片,用户可在对象1102的一部分的上方移动选择画笔1106(例如,同时按住鼠标左键)。在用户移动选择画笔1106时,该选择画笔的行进路径1108通常不显示,或者可以临时显示在对象1102的上方。由此,行进路径1108在此是出于讨论的目的而显示的。
另外,当用户在对象的区域或一部分的上方移动选择画笔1106时,由二分选择算法来自动扩展前景区域,由此在扩展区域1112的边框周围生成固定宽度的带1110。自动生成固定宽度的带1110以用作对应的三重图的未知区域1114。基于此,图像遮片组件然后在未知区域1114中计算阿尔法遮片。对应的阿尔法遮片1116在固定宽度的带1110中实时(通常小于0.2秒)显示。图11A中的框1118描绘图像1100的放大部分,该放大部分示出固定宽度的带1110、未知区域1114以及在该未知区域1114中生成的对应的阿尔法遮片1116。阿尔法遮片1116可由诸如上述或者如下文中进一步描述的图像遮片组件来生成。
选择画笔1106可结合诸如由Liu等人在“Paint Selection(绘图选择)”SIGGRAPH,2009中所描述的合适的二分选择算法,但也可采用其他合适的算法。绘图选择算法是可快速产生二分选择(对于典型的20兆像素图像,反馈时间小于0.1秒)的二分选择算法。因为在用户选择图像的一部分时绘图选择算法只增量式地扩展该选择,所以此处的实现可只计算经常作为整个对象边界的一小部分的新显现的边界的遮片。例如,绘图选择算法结合渐进式选择以使得给定现有选择F和当前画笔C,渐进式选择算法计算背景B上的新选择F′。一旦获取新选择F′,就为下一次用户交互将现有选择更新为F=F∪F′。在每一次触发的优化中,绘图选择算法首先估计前景色信息。当前画笔C和背景B的选择之间的交集被表示为种子像素S,其中S=C∩B。使用种子像素和局部背景像素两者,绘图选择算法通过适应具有四个分量的高斯混合模型(GMM)来构建局部前景色模型pf。使用局部前景像素使得估计更稳定,因为画笔或种子像素区域可以非常小。然后,更新背景色模型。在用户交互开始时,通过从背景中随机采样多个(例如,1200个)的像素来初始化背景色模型pb(具有八个分量的GMM)。在每一次后续用户交互中,绘图选择算法用从背景中随机采样的像素来替换在前一次交互中被标记为前景的相同数量的样本,并且使用已更新的样本来重新估计背景GMM。因此,绘图选择算法基于在统计上确定的色彩相似性和差异来标识前景对象的所选部分并将其与背景区分开来。
图11B示出了选择前景对象1102的其他部分以由此增加扩展区域1112以涵盖并选择整个前景对象1102的示例。图11A中的框1120描绘一放大部分,该放大部分示出固定宽度的带1110、未知区域1114以及在使用选择画笔1106来选择前景对象1102的其他区域之后在未知区域1114中生成的对应的阿尔法遮片1116。
如上所述,此处的实现提供固定宽度的带1110作为所标识的前景区域(即,扩展区域1112)和背景1104之间的未知区域1114。根据某些实现,用户可调整或指定带1114的宽度以匹配特定对象的任何模糊或复杂区域的宽度。因为此处的实现能够提供几乎即时的反馈,所以通常能够在一次或两次尝试中获得带1114的良好宽度。因此,根据此处的实现的选择画笔使用户从必须乏味地跟踪对象边界中解放出来并提供使得用户能够用几个画笔笔画来快速选择和扩展所需对象的区域的基于区域的用户界面。
遮片画笔
对于许多种类型的对象,固定宽度的带可能不足以覆盖较宽的复杂或模糊区域。对于这些区域,通常在使用选择画笔来建立初始未知区域或边界之后,用户可转为使用此处被称为遮片画笔的第二种类型的工具来修改未知区域并改进图像遮片结果。遮片画笔可用作用户用来直接绘图或选择三重图的未知区域的工具。对于诸如在按住鼠标左键时的遮片画笔的每一次移动,遮片组件实时计算新选择的未知区域中和附近的阿尔法遮片并向用户提供视觉反馈。此外,在某些实现中,如下文中进一步讨论的,遮片组件还可计算新合成图。即时更新阿尔法遮片和新合成图两者以使得用户能够立即知道接下来画哪里。
图11C描绘了用于扩展图像1100的特定区域中的未知区域1114的固定宽度的带1110的遮片画笔1122的示例。例如,在其中图像1100中的猫的毛发延伸超过固定宽度的带并延伸至背景1104中的位置处,用户可采用遮片画笔1122来扩展带1110并由此将背景的所选部分添加到通过交互生成的三重图的未知区域1114。由此,可使用遮片画笔1122来手动地将对象1102的延伸至背景中的其他部分添加至未知区域并将这些部分包括在所得遮片中。
遮片画笔1122和选择画笔1106的画笔大小可通过各种技术来调整,诸如通过使用鼠标滚轮来增加或减小所选画笔的大小。例如,在用户沿着带1110移动遮片画笔1122时,带1110可以与画笔大小相对应地增加宽度,如图11C中的放大带区域1124所示,以便在放大带区域1124中包括对象1102的附加特征。此外,当用户正在图像1100的放大带区域1124的上方移动遮片画笔1122时,可以立即计算该区域中的阿尔法遮片1126并将其显示为白色作为对用户的反馈。图11C中的框1128描绘图像1100的放大部分,该放大部分示出放大带区域1124、未知区域1114以及在该未知区域1114中生成的对应的阿尔法遮片1116。因此,用户可使用遮片画笔1122来确保将对象1102的其他复杂、多毛或模糊部分包括在为该对象创建的阿尔法遮片中。
图11D描绘了示例合成图像1130,其中前景对象1102已经从原始背景1104中拉取并与新背景1132合成。图11D中的框1134示出图像1130的放大部分,该放大部分示出已经使用上述多种画笔类型来捕捉的前景对象1102的毛发细节1136。
位置知晓画笔切换
在某些实现中,在切换画笔类型时,用户可以通过点击某些按钮或按下键盘快捷键来手动选择一种画笔类型。在画笔类型中手动切换的过程可以容易地使用户从图像上的感兴趣区域分心。为了解决这一点,此处的实现可包括位置知晓画笔切换机制,由此通过当前图像/三重图中的输入设备的光标的位置来自动确定画笔类型。
图12A-12B示出了位置知晓画笔切换的示例。图像1200包括前景1202和背景1204,且在前景区域和背景区域之间具有边界或未知区域1206。如图12A所示,用户可开始用选择画笔1106来选择并扩展前景1202的一部分以生成遮片。为了绘制或选择特定类型的区域,用户可只开始将画笔该区域的上方移动(例如,同时按下鼠标左键)并拖拽画笔(输入设备光标)。当光标位于前景1202的上方时,画笔采用选择画笔1106的形状。当用户将选择画笔1106从前景1202移至未知区域1206时,如箭头1208所示,该画笔自动将配置从选择画笔1106改为遮片画笔1122。当画笔已改变配置时,用户可增加或减小画笔的大小并再次按住鼠标左键以移动遮片画笔1122,诸如以便放大未知区域1206并由此将前景中仍然延伸至背景1204中的任何附加部分包括在阿尔法遮片中。这一选择画笔1106和遮片画笔1122之间的无缝自动切换使得用户能够保持关注图像而不将注意力移至用户界面的其他部分。
对于许多图像,使用选择画笔1106和遮片画笔1122来标识前景对象并创建遮片是足够的。然而,在诸如其中涉及复杂图像的其他实现中,具有如图12B所示的两个附加画笔是有用的。图12B包括图像1210,其具有前景1212和背景1214,其间具有未知区域1216。可提供前景标识画笔1218以便诸如通过按住鼠标左键并在未知区域1216的上方移动前景标识画笔1218来肯定地标识前景对象1212的特定部分。这将导致这些部分从阿尔法遮片白改为已知前景1212的颜色。此外,可提供背景标识画笔1220以便肯定地标识背景的各部分或者图像中不需要被包括在阿尔法遮片和所提取的前景中的其他部分。由此,背景标识画笔1220可用于拒绝将前景的一部分或图像的其他部分包括在遮片中。因此,用户可选择三种遮片画笔类型(前景、背景和未知)中的一种来修改由选择画笔1106自动创建的三重图,并且每一种画笔的大小都可通过滚动鼠标滚轮来调整。此外,如上所述,这些画笔可以在鼠标光标从前景区域移至未知区域并移至背景区域并且返回(如箭头1222、1224所示)时无缝地从一个切换至下一个。例如,当鼠标或其他输入设备的光标在未按下鼠标左键的情况下滚动通过特定区域(即,前景、未知或背景)时,画笔将改为对应于该区域的画笔配置。当画笔已经采取特定配置时,用户可按下鼠标左键以激活画笔以便执行上述功能。
用于交互式图像遮片的框架
图13是根据此处的某些实现的用于交互式图像遮片的框架1300的示例的框图。框架1300包括具有画笔组件1304的用户界面组件1302。如上所述,用户界面组件1302可向用户显示输入图像1306。用户可使用画笔组件1304来与输入图像1306交互以生成三重图1308。例如,如上所述,用户可使用选择画笔1106来选择前景区域并且用户界面组件自动标识与所选前景区域相邻的未知区域。可变核大小遮片组件1310对三重图1308的未知区域执行遮片处理以标识其中所包含的遮片部分,并将该信息连同三重图信息一起作为可视图象反馈1312提供给用户界面组件1302。用户然后可使用画笔组件1304(诸如通过使用上述遮片画笔)来进一步细化三重图1308,并接收附加图像反馈。用户可以在输出最终阿尔法遮片或合成图像之前执行任何所需数量的细化。此外,在某些实现中,图像反馈1312可包括显示所选前景对象正向其传送的新背景,而不是在交互式图像遮片处理期间显示阿尔法遮片和原始背景。
可变核大小遮片组件1310可对应于上述遮片组件206、610、以下讨论的遮片组件的附加变体、或其任何组合中的任一个。例如,如上所述,此处的某些实现基于前景色彩位于局部窗口中的单线中并且对于背景亦如此的假设来执行遮片处理。在使用较大窗口时,收集更多样本并且防止色线变得过于局部地确定。这对于高分辨率图像或对于多毛、模糊或复杂区域通常是有益的。另外,较大窗口还包括更多像素以及边界条件中的更远像素,由此在所标记的已知像素中的某一些是错误的(在使用交互式过程时有时可能发生)时候提高结果的准确度。
用于交互式图像遮片的过程
图14是根据此处的某些实现的交互式图像遮片过程1400的示例的流程图。在该流程图中,操作被概括成单独的框。操作可以用硬件或作为可由一个或多个处理器执行的处理器可执行指令(软件或固件)来执行。此外,过程1400可以(但不一定)使用图13的框架来实现。
在框1402,接收输入图像以便进行处理。例如,在某些实现中,接收在自然背景上具有前景对象的高分辨率图像以便从该图像的背景中拉取该前景对象和阿尔法遮片。接收到的图像可以显示在用户界面中,诸如显示在显示设备上,等等。
在框1404,接收用选择画笔作出的对图像的图像部分的选择。例如,如上所述,用户可使用被称为选择画笔的交互式工具来在图像上制造一个或多个笔画以标识图像中供进行遮片处理的部分。因此,用户可使用选择画笔来在图像中该用户期望从该图像中拉取的部分上制造一个或多个画笔笔画。或者,在其他实现中,选择画笔可被配置成选择图像的背景部分,而不是前景部分。
在框1406,基于从选择画笔接收到的输入,确定图像的前景部分。例如,基于一个或多个画笔笔画,二分选择算法可实时扩展图像的所选部分上的区域作为用户指示对该图像部分的选择的反馈。
在框1408,确定固定宽度的带并在图像的所选部分周围显示该带作为未知区域。例如,固定宽度的带可具有默认宽度或用户指定的宽度。此外,用户可取决于进行遮片的对象或图像部分来调整指定带宽。
在框1410,由遮片组件确定固定宽度的带中的阿尔法遮片。例如,图像的所选部分用作已知前景区域,而图像的未选部分用作背景区域,并且固定宽度的带用作未知区域,由此形成图像的三重图。可使用三重图以上述方式或使用以下描述的其他变体来对图像执行遮片处理。未知区域中的所标识的遮片可以在用户界面中实时地向用户显示。此外,如果还有要添加到所标识的部分的图像的其他明确前景部分,则用户可继续使用选择画笔来选择这些其他部分,诸如以便选择整个前景对象。因此,框1404到1410可以重复若干次。
在框1412,可接收来自遮片画笔的输入。例如,用户可检查由选择画笔产生的遮片和未知区域的范围以确定是否存在所选图像部分中期望被包括但当前未包括在所显示的遮片中的附加部分。如果存在这些附加部分,则用户可激活遮片画笔以扩展未知区域以便将这些附加部分包括在未知区域中。此外,在某些类型的图像的情况下,用户可能出于阿尔法遮片的目的希望使用将某些未知或背景部分标识为前景的一部分的前景遮片画笔和/或将某些未知或前景部分标识为背景的一部分的背景遮片画笔。
在框1414,基于从遮片画笔接收到的输入来生成经修改的遮片。例如,通过扩展未知区域,用户创建经修改的三重图,然后可实时处理该三重图并在用户界面上显示该三重图。用户可继续使用遮片画笔来进一步细化遮片和/或可以在复杂图像上使用诸如前景遮片画笔和/或背景遮片画笔等其他遮片画笔。因此,框1412和1414可以重复多次直到产生令人满意的遮片。此外,该过程不一定以该示例的次序执行。例如,用户可以在选择画笔之前使用遮片画笔,用户在任何时刻在遮片画笔和选择画笔之间切换,等等。
响应于画笔输入的更新
此处的某些实现可增量式地计算未知区域中的由遮片或选择画笔指示的遮片,即,只有一小部分图像在最近绘制的图像区域附近更新。因此,新标记或选择的区域的影响在大多数情况下极少到达非常远。因此,此处的实现通常可简单地扩展所选区域以获取已更新的区域,并且可以不更新大部分阿尔法遮片。例如,对于选择画笔,某些实现可以在两侧延伸新扩展的带(例如,带宽的3倍)以覆盖现有的未知像素。更新区域可以是现有带和两个已扩展部分的并集。此外,对于遮片画笔,某些实现可将新标记的区域扩展至画笔半径的3倍,并且已更新区域是已扩展区域和所有未知像素的交集。实验表明以上简单策略足以实现令人满意的质量,但也可应用其他策略,并且此处的实现不限于该特定示例。一旦确定了更新区域,此处的实现可以只针对该更新区域内的未知像素对阿尔法遮片求解。更新区域之外的阿尔法值可被认为是边界条件。此外,遮片组件所选的核大小可对应于在选择未知区域时使用的画笔大小,即,画笔大小越大,核大小就越大。
局部积分图像
如上所述,此处的某些实现使用积分图像技术(参见例如,Crow,F.C.的“Summed-area tables for texture mapping(用于纹理映射的合计区域表)”SIGGRAPH,1984)来计算具有独立于窗口半径的复杂度的遮片拉普拉斯矩阵。该操作占据遮片组件中的线性解算机(例如,CG解算机)的每一次迭代中大部分计算时间。然而,积分图像技术在矩形区域中计算积分图像,该矩形区域是感兴趣的像素的边界框(例如,对应于更新区域及相关联的边界条件)。不幸的是,这些像素通常只占据边界框中的一小部分。因此对于此处的交互式图像遮片实现,计算更新的整个积分图像可导致高度冗余。为了决绝这一点,此处的某些实现利用局部积分图像处理技术。
图15是用于示出局部积分图像处理的示例图像1500。图像1500包括由前景边框1504来定界的前景区域1502以及由背景边框1508来定界的背景区域1506。因此,在前景边框1504和背景边框1508之间存在未知区域1510。例如,假设刚刚已使用选择画笔来选择前景区域1502,由此基于固定宽度的带来为未知区域1510建立新位置,如上所述。为了确定已更新区域的阿尔法遮片,此处的实现可以用一系列较小的局部矩形1512、1514、1516、1518、1520来覆盖未知区域1510中的感兴趣的所有像素。积分图像只在这些小矩形1512-1520中的每一个中计算。例如,每一个小矩形1512-1520担当图像的对应部分上的箱式过滤器。此外,通常在小矩形边界附近的结果可能是错误的,因为忽略了外部像素。因此,此处的某些实现可以在遮片处理期间在每一个维度中将每一个小矩形1512-1520扩展窗口半径r,但只在原始小矩形1512-1520内应用结果。
为了获取小矩形,此处的实现首先提取未知区域1510的骨架曲线1522。在选择画笔更新的情况下,骨架曲线1522是二分选择的边界。在遮片画笔更新的情况下,骨架曲线1522可以是鼠标轨迹,即,在遮片画笔活动时的鼠标光标所遵循的路径。此处的实现将骨架曲线1522分成各个小段,并由矩形来覆盖每一段,如图15所示。这些矩形1512-1520然后在每一个维度上扩展(核大小的半径)以覆盖所有感兴趣的像素。因为小矩形的总区域只是稍微大于未知像素数N,所以线性解算机的每一次迭代中的时间复杂度减少为0(N)。此处的局部积分图像处理在其中新选择的区域通常是凸的并且未知量的带相对较长的选择画笔的情况下通常是有用的,但也可适用于遮片画笔的情况,如上所述。
自适应粗略到精细逼近
上述可变核大小遮片处理可用作用于线性系统的精确线性解算机。然而,此处的某些实现可采用粗略到精细逼近处理方案来逼近结果并进一步提高速度和效率。这些实现首先首先将彩色图像、边界条件图、以及指示已知和未知像素的图(即,等式(7)中的和β和D)二次采样(sub-sample)成粗略分辨率。二次采样尺度由S来表示。此外,直接对图像和图进行二次采样而不进行高斯模糊。接着,等式(7)中的线性系统以粗略分辨率求解。然后,等式(2)中的线性系数(a,b)以粗略分辨率计算,并且此后双线性地内插成精细分辨率。在精细分辨率彩色图像的引导下,阿尔法值直接使用等式(2)来计算而不进行任何进一步的优化。
此处,各实现可自适应地根据未知带的宽度w来对图像进行二次采样。在选择画笔的情况下,w自然是二分边界周围的带的宽度。在遮片画笔的情况下,各实现可将w认为是未知区域遮片画笔的画笔直径。对图像进行二次采样以使得粗略分辨率中的带宽是固定数值w0。因此,二次采样尺度通过下式来自适应地确定:S=w/w0。此处的某些实现默认对于选择画笔设置w0=24,对于遮片画笔设置w0=48。以粗略分辨率,遮片拉普拉斯的窗口半径r被设为r=w0/6。粗略到精细逼近的益处在于已知阿尔法值快速传播到带中,并且线性解算机通常在20次迭代内收敛。例如,假设未知区域的带宽是300像素并且遮片将要通过对具有窗口半径r=50的大核遮片拉普拉斯求解来获取。自适应粗略到精细结果已被发现基本上在视觉上与以最终分辨率处理时获取的结果相同。
在使用粗略到精细逼近时的遮片处理的时间复杂度不取决于画笔大小。例如,如果未知带的长度在精细分辨率的情况下等于l,则粗略分辨率中的未知像素的数量是
对于线性解算机,每一次迭代的时间复杂度是O(N
c)。因为迭代数通常不超过20次,所以线性解算机的整个运行时间通常与N
c成比例。由此,迭代数在精细分辨率的情况下独立于未知量的数量N。因此,只有未知区域的相对长度(l/w)影响运行时间。因此,通过使用自适应粗略到精细方案,此处的实现仍然使得用户能够获得即时反馈,即使在使用宽带或大画笔时。
前景估计
对于新合成图,此处的某些实现高效地为高分辨率图像估计前景色以便更接近地确定真实前景色。根据这些实现,遮片拉普拉斯矩阵也可适用于对前景色求解。此外,这允许此处的实现使用大核和上述自适应粗略到精细方案。因此,前景可以在与阿尔法遮片相同的框架中优雅地处理。
为了估计前景色,这些实现将Fα认为是未知变量,而不是计算F。根据等式(2)和遮片等式(1)中的局部仿射模型,Fα可由局部线性变换I来表达,如下:
此处,P=U+BiaT是3×3矩阵,且q=Bi(b-1)是3×1向量。假设平滑的B,则P和q可被认为是在局部窗口中几乎恒定的。等式(17)指示Fα的每一个通道也是局部仿射变换I,如同等式(7)中的阿尔法那样。因此,可变大小核遮片和自适应粗略到精细方案也可以在计算Fα时直接应用。
图16A-16D提供了基于可变核大小的前景估计的示例。图16A描绘了毛发延伸至自然背景中的玩具的图像1600。框1602是被框1604覆盖的区域的放大,其示出延伸至背景中的毛发1606的细节。图16B描绘了对应于根据此处的实现来获取的图像1600的阿尔法遮片1608,如上所述。框1610是对应于图16A的框1604的区域中的阿尔法遮片的放大,其示出毛发1606被包括在阿尔法遮片1608中。图16C描绘了通过将输入图像与阿尔法遮片1608相乘以形成红色背景上的合成图像1612来获取的合成图像1612。如放大框1614所示,在对应于图16A的框1604的区域中,不管高质量遮片1608如何,在合成图像1612中出现了某些洇色,从而使得毛发1606难以区分。另一方面,图16D描绘了通过对估计前景色Fα求解来生成的合成图像1616。在放大框1618中,毛发1606是清晰可辨的。使用该技术来对Fα求解的另外一个优点是α不必事先求解。因此,此处的实现能够并行地对α和F的三个前景色通道求解,由此利用现代多核机器和并行线程处理。
用于用附加处理来进行交互式图像遮片的框架
图17是根据此处的某些实现的用于用局部积分图像处理、粗略到精细逼近、和/或前景估计来进行交互式图像遮片的框架1700的示例的框图。框架1700包括具有画笔组件1704的用户界面组件1702。如上所述,用户界面组件1702可向用户显示输入图像1706。用户可使用画笔组件1704来与输入图像1706交互以生成三重图1708。例如,如上所述,用户可使用选择画笔1106来选择前景对象并且用户界面组件1702自动标识与所选前景对象相邻的未知区域。遮片组件1710对三重图1708的未知区域执行遮片处理以标识其中所包含的遮片部分,并将该信息连同三重图信息一起作为图象反馈1712提供给用户界面组件1702。基于该视觉反馈,用户然后可使用画笔组件1704(诸如通过使用上述遮片画笔)来进一步细化三重图1708,并响应于细化接收附加图像反馈。用户可以在输出最终阿尔法遮片或合成图像1714之前执行任何所需数量的细化。此外,在某些实现中,图像反馈1712可包括显示所选前景对象正向其传送的新背景或其他变体,而不是在交互式图像遮片处理期间显示阿尔法遮片和原始背景。
遮片组件1710可包括可对应于上述可变核大小遮片组件206、610、1310中的任一个的可变核大小遮片组件1716。此外,遮片组件1710还可包括局部积分图像组件1718,该组件1718用于诸如响应于对三重图1708的交互式更新来执行局部积分图像处理,如上所述。遮片组件1710还可包括用于实现如上所述的自适应粗略到精细逼近的粗略到精细逼近组件1720。例如,当将要使用较大的核大小时,可基于对图像、边界条件图以及已知和未知像素图的二次采样来采用粗略逼近。粗略到精细逼近组件将图像二次采样成用于对未知区域求解的粗略分辨率,并且随后执行双线性内插以便基于图像分辨率来以更精细的分辨率生成阿尔法遮片。遮片组件1710还可包括前景估计组件1722,该组件1722用于高效地估计前景色并使得能够使用上述粗略到精细方案。这些组件1718、1720和1722中的部分或全部可作为以上诸如参考图2、6和13讨论的其他遮片处理组件的补充或替换来使用。
用于交互式图像遮片的过程
图18是根据此处的某些实现的采用局部积分图像处理、粗略到精细逼近、和/或前景估计的交互式遮片过程1800的示例的流程图。在该流程图中,操作被概括成单独的框。操作可以用硬件或作为可由一个或多个处理器执行的处理器可执行指令(软件或固件)来执行。此外,过程1800可以(但不必)使用图17的框架来实现。
在框1802,接收输入图像以便进行处理。例如,在某些实现中,接收在自然背景上具有前景对象的高分辨率图像,诸如以便从该图像的背景中拉取该前景对象和阿尔法遮片。
在框1804,可以在用户界面中,诸如在显示设备上等显示接收到的图像,以使得用户能够与图像交互。
在框1806,从选择画笔或遮片画笔接收输入。例如,如上所述,用户可使用被称为选择画笔的交互式工具来在图像上制造一个或多个笔画以标识图像中供进行遮片处理的部分。此外,用户可使用遮片画笔来标识图像的各部分并将其添加到未知区域。
在框1808,在某些实现中,可对由从选择画笔或遮片画笔接收到的输入产生的未知区域执行局部图像处理。例如,相互重叠并一起涵盖未知区域的多个小矩形可由遮片组件来处理以标识阿尔法遮片。
在框1810,在某些实现中,可执行自适应粗略到精细处理。例如,可使用基于对图像、边界条件图以及已知和未知像素图的二次采样的粗略处理来逼近粗略分辨率的线性系统。粗略分辨率可用于更快速地对未知区域求解,并且然后可使用双线性内插来基于图像分辨率以更精细的分辨率生成阿尔法遮片。
在框1812,当前景对象将被传送到新背景时,在某些实现中,可使用其中前景色F和阿尔法遮片α基于遮片拉普拉斯矩阵来一起计算的前景估计。
在框1814,基于从使用上述画笔中的一个或多个的画笔接收到的输入来生成遮片或合成图像。用户可继续使用选择画笔或遮片画笔来进一步细化遮片和/或可以在复杂图像上使用诸如前景遮片画笔和/或背景遮片画笔等其他遮片画笔。因此,框1806-1814可以重复多次直到产生令人满意的遮片。此外,这些框不一定以该示例的次序执行,而是可以按任何合适的次序执行。
计算系统环境
图19示出了根据此处的某些实现的合适的计算系统环境1900的示例配置。计算系统环境1900可包括至少一个处理器1902、存储器1904、通信接口1906、显示设备1908、输入/输出(I/O)设备1910、以及一个或多个大容量存储设备1912,所有这些都能够通过系统总线1914或其他合适的连接来进行通信。
处理器1902可以是单个处理单元或多个处理单元,它们都可包括单个或多个计算单元或多个核。处理器1902可被实现为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。处理器1902可被配置成取出并执行存储在存储器1904、大容量存储设备1912或其他计算机可读存储介质中的计算机可读指令或处理器可访问指令,以及其他能力。
存储器1904和大容量存储设备1912是用于存储由处理器1902执行以执行上述各种功能的指令的计算机可读存储介质的示例。例如,存储器1904一般可以包括易失性存储器和非易失性存储器两者(例如RAM、ROM等)。此外,大容量存储介质1912一般可包括硬盘驱动器;固态驱动器;包括外置和可移动驱动器、存储卡、闪存、软盘、光盘(例如,CD、DVD)、存储阵列、存储区域网、网络附连存储在内的可移动介质等等,或其任何组合。存储器1904和大容量存储设备1912此处可被统称为存储器或计算机可读存储介质。存储器1904能够存储计算机可读、处理器可执行程序指令,作为可在处理器1902上执行来作为被配置成实现此处的实现所描述的操作和功能的特定机器的计算机程序代码。
存储器1904可包括可以在处理器1902上执行以实现此处所描述的功能的三重图分割组件606和遮片组件1916。遮片组件1916可对应于遮片组件206、610、1310和1710中的任一个。遮片组件1916可包括可变核大小遮片组件1918,该组件1918对应于可变核大小遮片组件206、614、1310和1716中的任一个。在某些实现中,遮片组件1916还可包括局部处理组件616和全局处理组件618。另外,在某些实现中,遮片组件1916可包括局部积分图像组件1718、粗略到精细逼近组件、以及前景估计组件1722。在某些实现中,存储器1904还可包括用于在显示设备1908上生成用户界面1924的用户界面组件1922。用户界面组件1922可使得用户能够交互式地使用遮片组件1916来从图像中拉取遮片。在某些实现中,用户界面组件1922可对应于用户界面组件1302、1702中的任一个,并且可包括对应于画笔组件1304、1704中的任一个的画笔组件1926。例如,用户可使用鼠标1928或其他输入设备1910来与图像交互,诸如通过使用一个或多个画笔来生成所处理的图像的三重图。在某些实现中,遮片组件1916、用户界面组件1922和三重图分割组件606可以是诸如图像处理应用程序、照片编辑应用程序、演示生成应用程序、文字处理应用程序、或任何其他合适的应用程序中的任一个等应用程序(未示出)等的一部分。此外,在其他实现中,遮片组件1916、用户界面组件1922以及三重图分割组件606是不包括在应用程序中的单独组件,和/或可以是操作系统(未示出)的一部分。
如上所述,计算系统环境1900还可包括用于诸如经由网络、直接连接等来与其它设备交换数据的一个或多个通信接口1906。通信接口1906可便于各种各样网络和协议类型内的通信,包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)、因特网等等。
在某些实现中,可以包括诸如监视器、显示器、或屏幕等用于向用户显示用户界面1924和/或输入图像的显示设备1908。除了鼠标1928之外,I/O设备1910可包括从用户接收各种输入并向用户提供各种输出的设备,诸如键盘、遥控器、照相机、音频设备、操纵杆等等。
此处所描述的示例环境、系统和计算设备只是适用于某些实现的的示例,而非旨在对可以实现此处所描述的过程、组件和特征的环境、体系结构和框架的使用范围或功能提出任何限制。因此,此处的实现可用于众多环境或应用,并且可以在通用或专用计算系统或具有处理能力的其他设备中实现。
另外,可以在许多不同的环境和情形中采用此处的组件、框架和过程。一般而言,参考附图描述的任何功能都可使用软件、硬件(例如,固定逻辑电路)或这些实现的组合来实现。此处所使用的术语“模块”、“机制”、或“组件”一般表示可被配置成实现规定功能的软件、硬件或软件和硬件的组合。例如,在软件实现的情况下,术语“模块”、“机制”、或“组件”可表示当在一个或多个处理设备(例如,CPU或处理器)上执行时执行指定任务或操作的程序代码(和/或声明型指令)。程序代码可被储存在一个或多个计算机可读存储器设备或其他计算机可读存储设备中。因此,此处所描述的过程、组件和模块可由计算机程序产品来实现。
虽然在图19中被示为存储在计算系统环境1900的存储器1904中,但遮片组件1916、三重图分割组件606、用户界面组件1922或其各部分可以使用可由计算系统环境1900访问的任何形式的计算机可读介质来实现。计算机可读介质可以包括例如计算机存储介质和通信介质。计算机存储介质被配置成将数据存储在非瞬态有形介质上,而通信介质则不然。
“计算机存储介质”包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或者可用于存储信息以供计算设备访问的任何其他介质。
相反,通信介质通常用诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。
此外,本发明提供了如在附图中描述和示出的各种示例实现。然而,本发明不限于此处所描述并示出的实现,而可扩展到其他实现,如本领域技术人员已知或将变得已知的。说明书中对“一个实现”、“该实现”、“这些实现”或“某些实现”的引用意味着所述特定特征、结构或特性被包括在至少一个实现中,并且这些短语在说明书各处的出现不一定都指代同一实现。
结论
此处的实现提供快速且高效的交互式图像遮片。此外,某些实现允许使用相对较大或优化的核大小来进行交互式遮片处理。用户界面可实时向用户提供包括所得遮片在内的反馈,由此使得该用户能够按需进一步细化或修改该遮片并创建比由常规技术提供的用户体验更令人满意的用户体验。
尽管用对结构特征和/或方法动作专用的语言描述了本主题,但所附权利要求书中定义的主题不限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。本发明旨在覆盖所公开的实现的任一和所有改编或变型,并且所附权利要求书不应被解释为限于说明书中所公开的具体实现。相反,本文的范围完全由所附权利要求书以及这些权利要求所授权的等效技术方案的完整范围来确定。