专利名称:实时的一致图像选择的利记博彩app
技术领域:
本说明书涉及选择图像的部分。
背景技术:
典型的像素分类技术允许用户提供输入(例如,通过使用鼠标), 该输入描绘或者选择来自图像中用户所期望选择的对象的 一些像素。 分类技术继而可以根据接收到的用户输入对图像中的所有其他像素 进行分类,理想上是选择来自所期望对象的所有像素。
具体地,图切分(graph cut)技术是将空间一致性借用到像素分 类的像素分类技术,其可以通过最小化具有两类项的目标代价函数来 实现区域代价和边界代价。区域代价反映将特定像素标记为前景或 者背景的代价。边界代价反映将一对相邻像素标记为都是前景、都是 背景或者一个前景一个背景的代价。当一对像素具有相似的颜色时, 利用不同的分类来标记两个像素的边界代价是高的,因为具有相似颜 色的两个像素可能应当都被选中,或者都不被选中。可以通过将给定 像素的颜色与前景和背景中期待的颜色的模型进行比较来确定区域 代价。 一般地,该模型是根据用户提供的选定像素而得出的。可以通 过找到使图像内的用户选定像素所约束的代价函数最小化的像素的 标记来确定像素的分类。可以使用多种技术来通过最小化代价函数找 到像素分类。 一种有效的方法通过如下来实现它将像素分类问题映
7射到图上,并求解最小图切分问题或者与其等价的最大图流问题。
图切分技术通常提供对图像内所描绘的 一 个或多个离散对象的 连续选择,而不会选择该一个或多个期望对象之外的不期望的或者断 开的区域。然而,这些技术通常需要大量的计算,使其无法响应实时
(live)用户输入。
实时分类技术对图像内的像素进行分类,从而可以在用户提供输 入(例如,在图像中描绘期望的对象)时该分类的呈现展示给用户。 然而,实时分类技术可能受制于不佳的、不一致的分类,其特征通常 是部分而非全部的对象选择(例如,错分类的小区域,或者结果分类 中的"孔")。而且,在接收输入时,实时分类可能出现用户发现难以 预测的不确定行为或者不稳定行为(例如,分类在图像中所描绘对象 的边界的相对较小的间隔中有所遗漏)。非预期的和不期望的选择需 要用户进行耗时的修正。此外,由于所采用算法的緩慢,实时分类技 术在此前仅仅对于小图像进行了示范。
发明内容
总体上,在一个方面,实施方式的特征在于,接收定义来自图像 的像素样本的用户输入。图像由一系列像素定义。在接收用户输入的 同时,执行以下动作一次或多次1 )根据像素样本,在一系列像素 中将像素一致地分类为前景或者背景;以及2)在定义所述样本时, 在显示器上更新图像的绘制,以描绘经过分类的前景像素和背景像 素。此方面的其他实施方式包括相应的系统、装置以及计算机程序产
口t7 0
这些和其他实施方式可以可选地包括一个或多个以下特征。 一致 地分类可以包括一致地分类图像的较低分辨率版本的像素,以生成图 像的较低分辨率版本的分类。 一致地分类可以包括根据图像的较低分 辨率版本的分类来确定图像的边缘区域,并且以全分辨率对图像的边 缘区域一致地分类。 一致地分类可以包括最小化包含区域代价和边界 代价的目标代价函数。最小化目标代价函数可以包括增量式地求解一个或多个图切分问题。可以根据像素的 一 致分类来更新先前的像素分 类。 一致地分类可以包括使用分段恒定的区域代价。
分段恒定的区域代价可以是以下之 一 与前景分类相关联的代 价,与背景分类相关联的代价,或者与偏向(bias)相关联的代价。 一致地分类可以包括将图像分割成多个部分,其中多个部分中的每个 部分包含连续的多个像素。可以根据像素样本将多个部分中的每个部 分一致地分类为前景或者背景。将图像分割成多个部分可以包括使用 分水岭或者种子填充分割。像素样本可以仅表示前景像素或者仅表示 背景像素。 一致分类可以根据当前正在接收的像素样本以及先前接收 的任何其他像素样本。 一致分类的前景像素可以表示遵守图像中的对 象边界、并且没有错分类区域的一个或多个图像区域。当用户在图像 上描画笔划时,可以接收用户输入。在显示器上绘制图像以描绘经分 类的前景像素和背景像素可以包括突出显示前景或者背景像素,模 糊前景或者背景像素,对前景或者背景像素应用过滤器,绘制描绘前 景或者背景像素的图像蒙板(mask),或者绘制前景或者背景像素区 域的边界。图像可以在以下颜色空间之一中RGB, CMYK, CIELAB, CIEXYZ, CIELUV, YCC, YIQ, HSB, HSL或者灰度。
总体上,在另一方面,实施方式的特征在于,接收来自具有多个 像素的图像的像素样本的标识。可以根据像素样本将多个像素中的像 素一致地分类为前景或者背景,包括增量式地求解一个或多个图切分 问题,以及一致地分类全分辨率图像的边缘区域,其中边缘区域是根 据图像的较低分辨率版本的分类确定的。此方面的其他实施方式包括 相应的系统、装置和计算机程序产品。
这些和其他实施方式可以可选地包括一个或多个以下特征。像素 样本可以仅表示前景像素或者仅表示背景像素。 一致地分类可以包括
最小化包含区域代价和边界代价的目标代价函数。 一致地分类可以包 括使用恒定的区域代价函数。可以在接收像素样本的标识的同时对多 个像素中的像素一致地分类,并且可以在接收期间更新显示器上图像 的绘制以描绘前景像素和背景像素。
9总体上,在另一方面,实施方式的特征在于,接收来自具有多个 像素的图像的像素样本的标识。基于该像素样本并且使用分段恒定的 区域代价,将多个像素中的像素一致地分类为前景或者背景。此方面 的其他实施方式包括相应的系统、装置以及计算机程序产品。
这些和其他实施方式可以可选地包4舌一个或多个以下特征。 一致 地分类可以包括增量式地求解一个或多个图切分问题。 一致地分类包 括以全图像分辨率 一致地分类图像的边缘区域,其中边缘区域是根据 图像的较低分辨率版本的分类确定的。像素样本可以仅表示前景像素 或者仅表示背景像素。 一致地分类可以包括最小化包含区域代价和边 界代价的目标代价函数。可以在接收像素样本的标识的同时一致地分 类多个像素中的像素,并且可以在接收期间更新显示器上图像的绘制 以描绘前景像素和背景像素。
可以实现本说明书中所描述主题的特定实施方式,以实现一个或 多个以下优点。可以与接收输入一样快地计算一致分类。在接收输入 时描绘分类的可视化绘制向用户提供了实时反馈。使用分段恒定的区 域代价来对图像一致地分类提供了从用户输入扩展开的可预测的、稳 定的像素分类。实时反馈以及更可预测的像素分类使得用户能够专注 于快速、有效地到达其期望的高质量选择。
在下文的附图和描述中记载了本说明书中所描述主题的 一个或 多个实施方式的细节。根据该描述、附图以及权利要求书,该主题的 其他特征、方面和优点将是易见的。
本专利或者申请文件包含至少 一 个彩色附图。带有彩图的本专利 或者专利申请公开的副本将依请求以及所需费用的支付由专利局提供。
图1A-图1C示出了三个时段处图像中像素的分类。 图2示出了使用最小图切分的像素分类。 图3示出了多个分辨率的图像。
10图4示出了分类边缘区域。
图5是图像选择系统的框图。
图6是用于对图像中的像素进行分类的方法的流程图。 在各图中,类似的附图标记和表示指示类似的元素。
具体实施例方式
图1A-图1C示出了像素分类,其中每个图捕获了在三个连续时 段之一处对图像选择的描绘。图像可以表示为一些列像素(例如,像 素的二维阵列),其中每个像素对描述特定位置处的图像的值(例如, 颜色、强度或者二者)进行编码。
通常,图像及其组成像素由具有图像格式的文件来描述并且存储 在该文件中,其中图像格式例如是联合图像专家组(JPEG)格式、便 携式网络图像(PNG)格式、图像互换格式(GIF)格式、位图(BMP) 格式、标签图像文件格式(TIFF)格式以及其他。彩色图像通常按照 特定的颜色空间(例如,RGB, CMYK, CIELAB, CIEXYZ, CIE LUV, YCC, YIQ, HSB, HSL或者灰度)来指定,颜色空间决定了如何可 以将图像中每个像素的值表示为颜色。
每个像素可以分类为前景或者背景,或者在另一实现中,每个像 素可以由表示前景或者背景中的成员资格程度的连续值来分类。像素 的分类可以用来选择图像的一个或多个区域。通常会对选定的像素进 行附加的操作(例如,移除、复制、色调修正或者过滤)。例如,如 果图像描绘站在树林前的一个人,可以选择图像中描绘这个人身后树 木的区域。包含树木的选定区域可被移除或是由另一描绘替代,使得 人好像是站在其他东西(例如,大海、沙漠或者婚宴)前。还可以对 选定区域应用图像处理过滤器(例如,选定区域的锐化、模糊或者颜 色平衡调节)。类似地,图1A-图1C描绘了对花冠的选择,而没有 选择花的其他部分(例如,茎或者叶)或者背景(例如,天空)。
在图1A-图1C中,经分类的前景像素以完全颜色描绘,而背景 像素通过蓝色调进行模糊。为了示意的目的,通过绿色调来表示被用户分类为前景的像素(例如,通过笔触描画)。黑线125、 135和155 示出了用户提供的输入路径,其中线上的每个黑点(例如,在125与 135之间,以及135与155之间)表示在每个先前时段期间接收到的 输入的范围。尽管将输入路径分成了三个离散的时段,但是输入是作 为单个、实时的连续动作而从用户接收的。然而, 一般地,输入也可 以不连续地提供,并且无需进行连接(例如,输入可以包括多个分离 的笔触)。
用户可以通过使用输入设备选择一个或多个像素来根据图像100 定义像素样本125。例如,用户可以使用计算机鼠标、触敏屏幕、跟 踪板、压敏板或者其他输入设备在图像100上描绘笔触125。该笔触 所覆盖的每个像素可被包含在像素样本125中。备选地,可以由系统 自动地提供像素样本125 (例如,根据由运动检测、边缘检测或者机 器视觉系统进行的标识)。可以提供可视化响应,诸如突出显示像素 样本125(例如,使其颜色更亮),以便表明哪些像素在像素样本125 中。
可将像素样本125中的像素分类为前景像素,但是, 一般地,用 户可以将像素分类为前景或者背景像素。用户例如可以通过选择分类 状态(例如,切换前景/背景按钮)或者通过变换输入(例如,使用鼠 标左键或者右键)来指示输入是前景还是背景。
使用像素样本125对图像100中的其他像素进行一致地分类。在 一些实现中,可以通过使用图切分技术来实现一致分类。在接收像素 样本125时,图像100中描绘的全色像素(例如,向日葵花瓣)表示 被一致地分类为前景像素的像素。图像100中的所有其他像素(例如, 蓝色像素)已被分类为背景像素。在一些实现中,如在图像100中, 通过正常地描绘每个前景像素(例如,按照其编码颜色值)并且(例 如,利用蓝色调)削弱背景像素来可视化地绘制像素的分类。在其他 实现中,可以在绘制之前通过图像过滤器对前景或者背景像素进行过 滤(例如,模糊背景像素)。对分类的其他描绘也是可能的(例如, 描绘图像蒙板或者绕着特定的像素分类的区域描绘动画虚线)。有区
12别地绘制已分类的前景和背景像素允许用户对那些已被分类为前景的像素和那些尚未分类的像素进行区分。
在第二时段,如图像120中所描绘,根据扩展笔触的用户输入将
附加像素135添加至像素样本。作为响应,使用像素样本(例如,135和125)将新的像素区域一致地分类为前景像素。新近被分类为前景像素的像素根据像素样本(例如,125和135)理想地选择了期望的对象(例如,向日葵花瓣)。
在第三时段,图像140示出了扩展笔触的用户交互以及将附加像素155添加至前景像素的样本。作为响应,使用像素样本(例如,155,135和125)将新的像素区域一致地分类为前景像素。前景区域中每个像素的颜色类似于像素样本(例如,125, 135和155)中像素的颜色。所有其他像素保持被分类为背景。
图像100、 120和140所捕获的时段是连续的。在每个时段期间接收到用户提供的实时用户输入。作为响应,对图像中的像素一致地分类,并且在实时可视化绘制中更新图像。提供实时可视化绘制允许用户容易地认识到用户的输入是如何影响分类的。响应于实时输入而提供实时一致选择允许用户高效、快速地实现期望的像素分类。
图2示出了使用最小图切分技术的像素分类。图像200可由图230来表示,图230可以用来确定一致的像素分类290。示例图像200包括从"a,,到"i,,的9个像素,每个像素代表不同的颜色。从用户接收到的像素样本将像素215分类为背景像素。通过从用户接收到的另一像素样本将像素"i"分类为背景210。在一些实现中,如果从用户接收到的像素样本没有包括所有分类(例如,背景和前景)中的像素,则可以自动对图像进行选种(seed),从而使图像包含每个分类的至少一个像素或者种子。种子是响应于用户输入而被分类的像素。在一些实现中,可以自动选择种子。 一般地,无需对图像进行选种,用户指定前景像素的样本或者背景像素的样本就足够了 ,因为在各种实现中,将像素标记为前景和将像素标记为背景的代价是恒定的,其中前景代价稍大于背景代价。当用户首先开始选择而没有提供任何背景样本
13时,朝向背景的这一"偏向"允许合理的行为。
在一些实现中,可以通过对不是所接收像素样本一部分的至少一个像素进行分类来自动地对图像进行选种。例如,如果用户提供了背景像素样本,则可以通过将另 一像素分类为前景来自动地对图像进行选种。备选地,如果用户提供了前景像素,则可以通过将另一像素分类为背景来自动地对图像进行选种。备选地,可以将用户没有分类的所有像素自动分类为相反的分类。例如,如果用户提供了具有前景分类的像素,则将所有其他像素自动分类为背景。在一些实现中,如果用户随后提供了对等同于种子分类的像素进行分类的像素样本,则可以对通过自动选种而分类的像素进行解分类。例如,如果用户将第一像素分类为前景,则通过将第二像素分类为背景来自动地对图像进行选种。如果用户继而将第三像素分类为背景,则可以移除给予第二像素的自动分类。
在 一 些实现中,可以根据像素与从用户接收到的像素样本的几何距离来自动地对像素分类,从而对图像进行选种。在图像200中,由
于像素210距离前景像素215最远,因此可以将其自动分类为背景。备选地,可以根据像素的值与像素样本(例如,215)中一个或多个像素值的差异程度来对像素分类。在图像200中,前景像素215是白的(例如,其颜色值为最大),黑像素210可被自动分类为背景,因为较之图像中的任何其他像素,其值与前景像素215的值最为不同。在其他实现中,可以将沿着图像边缘的像素用作背景种子像素。
在其他实现中,可以自动使未在所接收像素样本中的所有像素有所偏向。尽管已知像素样本中的像素具有特定的分类,有偏向的像素可能必须具有与所接收样本相反的分类。例如,如果前景像素样本包含来自图像的单个像素,则使图像中的所有其他像素有所偏向,有效地是使其可能具有背景分类。在将像素分类问题映射到图时,使用每个像素的分类的可能性。
可以通过图230来表示图像200及其像素("a"-"i"),其中一个像素被分类为前景215并且一个是背景210。图像200中的每个像素由图230中的节点(例如,235 )来表示。图像200中的相邻像素表示为图230中的相邻节点。例如,在图像200中,像素"b,,和"d,,与像素"a"相邻,类似地,在图230中,节点"b"和"d"与节点"a"相邻。节点(例如,235 )通过边界边(例如,240)连接到其他节点。边界边将特定的节点连接到该特定节点的邻居中的其他节点。邻居可以是4个相邻像素、8个相邻像素(例如,包括对角线相邻)或者24个相邻像素(例如,8个相邻像素加上接下来的16个最近像素)。其他邻居也是可能的。
每个边界边的权重(示为线的粗细)是基于所连接节点的像素值的相似性。每个边界边表示对所连接的像素进行不同分类(例如,前景和背景,或者反之)的边界代价。如果两个节点的像素值是相似的,则其通过高值边来连接;如果其像素值不相似,则其通过低值边来连接。例如,图像200中的像素"a"和"b"具有相似的值,因此其在图230中相应节点"a,,和"b,,之间的边也具有高值(也即,权重)。最初,每个节点("a"-"i")还具有两个区域边连接至前景末端节点245的前景区域边,以及连接至背景末端节点255的背景区域边。前景和背景末端节点是用来终止每个区域边的专用节点。为清晰起见,前景节点245与节点"e"、 "f,、 "h,,和"i,,之间的区域边没有示出;类似地,背景末端255与节点"a"、 "b"、 "d,,和"e,,之间的区域边没有在图230的描绘中示出。
每个区域边250的权重(示为线的粗细)代表对节点所表示的像素进行分类的区域代价。连接至前景末端245的每个区域边250的权重反映了将所连接的像素分类为前景的代价。连接至背景末端255的每个区域边25 0的权重反映了将所连接的像素分类为背景的代价。
可以根据描述像素是背景或者前景的可能性的模型来确定每个区域边250的权重。在一些实现中,模型可以是使用种子像素(例如,前景种子和背景种子)的颜色分布来确定像素在相同分类中的概率的混合模型(例如,高斯混合模型)。例如,如果像素在前景中的可能性高,则像素与前景末端245之间的边的权重将为高。当根据模型,
15像素可能是前景时,边的高权重反映了将像素分类为背景的高区域代价。其他模型也是可能的。
备选地,每个区域边的权重可以基于分段恒定的区域代价,而不是使用在添加或者移除种子时发生改变的模型。使用恒定的值来设置连接至已被分类的像素节点的区域边的权重。例如,已被分类为前景
的像素通过具有极大权重(例如,无穷)的区域边连接至前景末端245,并通过具有极小权重(例如,零)的区域边连接至背景末端255。被分类为背景的像素通过具有极高值的区域边连接至背景末端255,并且通过具有极小值的区域边连接至前景末端245。
在已经有所偏向、但没有分类的像素中,连接到每个相应像素的区域边的权重反映了该像素可能偏向为前景还是可能偏向为背景。例如,如果接收到前景像素样本中的多个像素,则所有其他像素可能偏向为背景像素。继而,将每个偏向于背景的像素的区域边设置为反映该偏向的恒定值。例如,可以将像素的背景区域边设置为零,并且可以将像素的前景区域边设置为较小但是非零的恒定值。相反,对于偏向于前景的像素,可以将其前景区域边设置为零,并且可以将其背景区域边设置为非零的恒定值。非零的恒定值可以是像素允许值的最大颜色值的函数。例如,对于具有8位颜色深度和最大颜色值255的像素,可以通过以下函数得出非零的恒定值0.71n(255.2)。
使用分段的区域代价使得结果分类以及图像选择是可预测的、局部可控的以及稳定的。选择是稳定的,因为像素和区域一旦被选定,则倾向于保持被选定,除非明确地撤销该选择,并且选定区域不会自动变为未选定的,这在使用其他方式时可能出现。类似地,选择是可预测的,因为在使用颜色模型得出区域代价时,不会出现对图像不相关区域的选择。例如当用户分类前景像素时,结果分类倾向于选择图像中包含用户所分类像素的区域。
通过求解将图的节点划分为两个部分的最小图切分问题或者等价的最大流问题,使用表示图像200的图230来一致地分类像素。最小图切分的解移除边界边和区域边两者,使得前景末端245和背景末
16端255在结果图(也即,得到的图)中变为分离的。例如,最小图切
分260切断边界边(例如,图230中"g"和"h"之间的边)和区域边(例 如,图230中节点"g,,和背景末端255之间的边),使得背景末端255 和前景末端245不再连接。 一般地,可以通过计算通过边和节点从一 个末端节点(例如,245 )流到另一个(例如,255 )的最大流来确定 最小切分。
最小图切分确定最小化代价函数的划分,其中代价函数的项基于 初始图中区域边和边界边的权重。 一般地
cost = /1' Zi / (cr,) + ./■)' ^"(cr,. , a^,》
以及
f I如果 CT,. #
,1。否则
cost是分类每个像素/的累积区域代价辨巧)的函数,其中特定像
素/的分类q可以是"前景,,或者"背景"。当z和)被不同地分类并且邻
近像素是z'的邻居内的像素时,cost还是针对每个像素Z及其所有邻
居像素7的累积边界成本^(z',力的函数。义项是恒定值,其确定边界代
价较之于区域代价的相对权重。
在一些实现中,可以将代价函数更具体地指定为
cost -2.i;, [(, <+ 《]+1;1^ a
在该函数中,s,+是与将像素Z连接至前景末端245的区域边相关 联的代价,而"是与将像素,连接至背景末端255的区域边相关联的 代价。项w是与将像素z'连接至其邻居y的边界边相关联的代价。在 一些实现中,与边界边相关联的权重分别取决于由边界边连接至其邻 居y的像素Z的颜色。和。.。具体地
',其中7和;^是可以特定于实现的恒定值。颜色差
可以取决于图像的颜色空间。例如,当应用于8位彩色图像时,c广cy 可以是颜色值(例如,从0到255 )之间的标量差。其他颜色差度量 应用于其他颜色空间(例如,RGB、 CMYK、 sRGB、 Adobe RGB)。当存在多个颜色平面时,(c广c/是像素Z和像素乂之间的颜色分量差 的向量的平方长度。例如,在RGB颜色空间中, (c,:-c》2=(R「R》2+(G,-G》2+(B,-B》2。类似地,在CMYK颜色空间中, (c>c》2=(C,-C》2+(M,-M》2+(Y广Y》2+(K广K》2。
一般地,尽管可以通过使用图切分来求解代价函数的解从而实现 一致分类,但是其他方法也是可能的。例如,可以使用Metropolis算 法(模拟退火)来确定解。其他实现可以将代价函数视作关于西格玛 的连续函数,并且求解得到的微分方程。
代价函数的解表示了图像中每个像素Z处的巧(西格玛)值。在 一个实现中,西格玛的值可以表达为0和1 (包括)之间的数值。例 如,零或者近似零的值表示像素是背景,而1或者接近1的值表示像 素是前景。可以使用与每个像素相关联的西格玛值来确定每个像素的 选择蒙板不透明度。例如,像素/的不透明度可以计算为
opacity = m. 1 + °^
值m是所允许的最大不透明度值,并且可以对应于所确定的选择 蒙板的位深度(例如,对于8位选择蒙板,m=255 )。不透明度然后 可以用来确定包括具有特定不透明度值(例如,作为预定的或者用户 定义的阈值而指定)的像素的选择蒙板。
一致像素分类290示出了根据图230的图切分260的一致分类。 以白色示出的像素a、 b、 d、 e和g被分类为前景,而以黑色示出的 像素c、 f、 g和i被分类为背景。每个像素是根据其在图230中的相 应节点在图切分260之后是被区域边附接至前景末端245还是背景末 端255而进行分类的。保持连接至前景末端245的节点用来分类前景 像素。连接至背景末端255的节点用来分类背景像素。例如,在图230 中,节点"h"保持连接至背景末端255,因此将像素"h"分类为背景。
如果接收到后续像素样本,对图进行变换,以反映所添加的用户 分类的像素。例如,如果在图像200中将像素"c"分类为前景,可以 通过增加将节点"c"连接至前景末端245的区域边的权重来更新图
18230。可以根据经过更新的图来确定新的最小图切分。通过新的最小 图切分对已更新图的结果划分用来对图像像素进行重新分类。
在一些实施方式中,可以增量式地确定针对已更新图的新的最小 图切分。增量式地确定新的最小图切分使用用来确定先前最小图切分 的全部或者部分解。
一般地,可以通过计算通过边和节点从一个末端
节点也即源节点(例如,节点245 )流到另一末端节点也即接收节点 (例如,节点255 )的最大流来确定最小切分。在对图进行更新使得 一个或多个边的值增大但是没有边的值减小时,则可以使用先前的解 流并继而通过所添加的边容量来推送附加的流,从而开始确定新的最 小图切分。如果两个非末端节点z'和/之间的边「(/, 乂)的容量降低到 当前通过e的流之下,则可以将节点/处新形成的超额发送至接收节 点0)。同样,可以从源节点(力接收节点y处的不足额流,以恢复流可 行性。以这种方式对流进行调节可能需要在0,y')和(/, 0上增加相同的
容量,这并不改变最优切分。可以对边(s, 0和(Z, o进行类似的容量增
加。在进行这些调节之后,可以重新开始图切分求解。用于增量式更 新图切分求解的进一步信息以及其他:技术可以在Juan和Boykov在 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (2006)中的Active Graph Cuts中找到。
接收新的像素样本(例如,通过附加的笔触),更新的像素分类 是先前像素分类与根据附加样本确定的新像素分类的结合。在接收到 第一前景像素样本时,更新的分类是新的分类,因为尚未确定先前的 分类。在接收到第二前景像素样本时,结果分类是先前分类与新分类 的和。在针对每个像素计算O和1之间的不透明度值的实现中,该和 可以计算为
值a是像素的结果不透明度,其是先前不透明度值(cg与新的不 透明度值(a)之和减去正则化的值,这确保了结果透明度在o和i之间。
类似地,如果第二像素样本是背景像素,则结果分类是从先前分类中减去的新分类。在计算不透明度值的实现中,像素的结果不透明
度如下给出
Or = o,》* o"
一般地,无需已经通过对像素一致地分类来确定先前分类。可以 使用不同的分类方法(例如,通过魔棒工具)来实现像素的先前分类。
在一些实现中,图切分计算可能在已经计算完全分辨率之前过早 地中断。在实践中,使用部分计算的图切分通常包含小缺陷,但是其
提供了完全解的近似逼近。可以在特定的时段(例如,100毫秒)内 中断图切分的计算,以确保对用户的响应反馈。
在 一 些实现中,图中的节点可以对应于图像区域中的多个像素, 只要每个像素具有相对统一的颜色。可以根据特定的节点来分类对应 于该特定节点的每个像素。只要对应于单个节点的每个像素在颜色上 非常接近(例如,其边界边具有高值),则其可能全部是背景或者前 景像素(例如,分类两个相邻像素的代价高)。可以通过分割方法来 确定像素区域。在一个实现中,可以使用分水岭算法来实现分割。在 另一实现中,可以使用种子填充算法来实现分割(例如,对于每个像 素,选择具有相同或者几乎相同颜色的所有附近像素)。
图3示出了多个分辨率的图像。例如,完全图像350为8像素长
(z-s) 、 6像素宽(a-f)。完全图像的分辨率反映用户感兴趣的图像 的全分辨率。较低分辨率图像310是4个像素长(l-o) 、 3个像素宽
(k-i),并且包含这样的像素,即每个像素表示来自完全图像350的 一个或多个像素。在此示范中,较低分辨率图像310中的每个像素表 示完全图像350中的4个像素。例如,较低分辨率图像310中的像素
(o, k)表示完全图像350中的4个像素(a, t) 、 (a, s) 、 (b, t) 和(b, s)。在一些实现中,较低分辨率图像310是通过对完全图像 350进行向下采样而根据完全图像自动生成的。缩放图像可以根据像 素样本(例如,包括每个其他像素)、线性插值、双三次插值或者其 他图像缩放技术。
可以使用完全图像350和较低分辨率图像310 二者来对完全图像
20350中的像素一致地分类。在一些实现中,如图1中所示,用户可以
与完全图像350的图形化绘制进行交互(例如,选择像素)。从用户 接收到的像素样本中的像素是来自完全图像350的像素。根据较低分 辨率图像310中的哪些像素表示像素样本中的像素,将像素样本中的 像素映射为较低分辨率图像310中的像素。例如,如果像素(c, u) 是分类为前景的像素样本,则较低分辨率图像310中的像素(n, j) 被分类为前景。备选地,用户可以与较低分辨率图像310进行交互, 其中从用户接收到的像素样本中的像素来自较低分辨率图像310。
为了对完全图像350中的像素一致地分类,可以首先对较低分辨 率图像310中的像素一致地分类。例如,如上所述,将较低分辨率图 像310 —致地分类为前景像素(例如,灰色方格)和背景像素(例如, 白色方格)。使用较低分辨率图像310中被一致分类的像素来确定完 全图像350中像素的低分辨率一致分类。通过逆向使用用以缩小完全 图像350的映射,可以将低分辨率图像310中的像素分类应用于完全 图像350中的像素。例如,如果较低分辨率图像310中的像素(m, j) 被分类为前景,则可以将完全图像350中的对应像素(d,y)、 (d,w)、 (c,y)和(c,w)也分类为前景。可以通过以全分辨率(也即,每个 像素独立地)对完全图像350中的一些像素进行分类或者重新分类来 细化低分辨率一致分类。
图4示出了分类全分辨率图像450内的已标识边缘区域410。已 经使用 一致分类的图像450的较低分辨率版本对图像450中的像素进 行了分类。例如,将边缘(虚线)470所限定的区域430中的像素分 类为前景像素。根据低分辨率一致分类,边缘470是已分类的前景和 背景像素相遇之处。边缘区域410可以包括与边缘470邻接的所有像 素。
边缘区域410包括来自边缘470的特定半径内的所有像素。例如, 边缘区域可以包括边缘像素的所有相邻像素,或者可以包括离边缘小 于4个像素的所有像素。 一般地,半径的长度与较低分辨率图像和全 分辨率图像之间的分辨率差异成比例。例如,当全分辨率图像比较低分辨率图像大2i时,可以通过函数2〃7来确定半径的长度。其他半径
也是可能的。
可选地,可以以全分辨率对边缘区域410中的像素一致地分类。 一致地分类全分辨率边缘区域410是根据边缘区域内的像素值而不是 低分辨率一致分类来对边缘区域410中的像素进行一致地分类。用于 设置边缘区域中的像素代价的过程在上文描述,除了冻结了边缘区域 周围的像素分类。冻结像素表示将分类为前景(例如,根据较低分辨 率图像)的像素的区域代价设置为/=0, ^=00,并将被分类为背景的 像素的区域代价设置为f=0。
备选地,可以根据低分辨率图构建或者修改代表性高分辨率图 像,并且从低分辨率解开始对其增量式地求解。边缘区域410之外的 像素保持其根据低分辨率分类的分类。通过对较低分辨率图像一致地 分类并继而在完全图像450中对边缘区域410重新分类,通常可以使 用比从头开始一致地分类整个完全图像450要少的计算来一致地分类 完全图像450。例如,除了较低分辨率图像的一致分类之外,无需其 他计算来准确地分类区域420内(边缘区域410之外)的像素以及区 域430内(边缘区域410之外)的像素。
在一些实现中,使用多个分辨率图像级别无需限于只有全分辨率 图像和较低分辨率图像。多个分辨率级别也是可能的,每个级别具有 比下一级别分辨率低的图像。例如,位于第三分辨率级别的图像可以 用来使用先前级别的较低分辨率的解对每个级别处的像素一致地分 类。在一些实现中,可以根据完全图像包含多少像素来动态地确定级 别的数目。
图5示出了用于一致地分类图像中像素的系统500。系统500总 体上包括模块(例如,模块540)和资源(例如,图像510)。模块 通常是不同功能的单元,其可以向其他模块提供信息以及从其他模块 接收信息。模块可以促进与输入或者输出设备的通信(例如,显示模 块590)。模块可以对资源进行操作。资源是由模块操作的信息的集 合。
22系统500包含图像510,其包含将要被一致分类的像素。系统还 可以包含一个或多个较低分辨率图像520。代价最小化模块540可以 生成针对图像510的代表图515以及针对一个或多个较低分辨率图像 (例如,图像520 )中每一个的任何较低分辨率图(例如,图525 )。 代价最小化模块540可以对图515或者任何较低分辨率图525计算图 切分。
系统500包括输入模块580,用于从用户接收像素样本。输入模 块580可以从一个或多个输入设备接收输入。输入才莫块580还可以确 定像素样本的分类。例如,分类可以基于设备的状态,例如键盘按键 的状态,正在使用鼠标左键还是右键,或者向板式设备提供输入的笔
的类型。
分类器560从输入模块580接收像素样本。分类器560根据像素 样本中的信息来更新图515,并且还利用备选的像素分类对图像510 进行选种。分类器560还可以向显示模块590提供信息,从而可以向 用户提供表明是否已经接收到像素样本的响应。显示模块590可以连 接至一个或多个显示设备。
分类器560还可以触发代价最小化模块540来最小化与每个图像 相关联的代价函数,这可以包括针对任何可用的图(例如,图515和 525 )来计算图切分(例如,响应于接收到像素样本以及更新图515)。 使用图切分,分类器560根据对图515的图切分来分类图像510中的 像素。响应于分类像素,分类器560可以向显示模块590提供信息, 从而提供响应以指明图像510中的像素分类(例如,模糊背景像素, 或者围绕前景像素区域绘制动画虚线)。
系统500还可以包括多分辨率边界模块550,其可以将由较低分 辨率图像图(例如,图525 )确定的较低分辨率分类应用于全分辨率 图像510。边界模块550确定全分辨率图像510中包含靠近两个不同 分类相遇处的 一个或多个边缘的所有像素的边缘区域。
例如,从连接至输入模块580的设备接收到特定像素样本的笔触, 其使得分类器560对图515以及较低分辨率图525中的特定像素样本中的像素进行分类。分类器560向显示模块590提供信息,从而可以 可视化地标识(例如,突出显示)特定的像素样本。分类器560可以 触发代价最小化模块540,以便针对低分辨率图像图525来计算图切 分。多分辨率边界模块550根据较低分辨率图像525来确定边缘区域, 并且更新全分辨率图515。可以再次调用代价最小化模块540,以计 算经过更新的全分辨率图515的图切分。分类器使用关于全分辨率图 515以及较低分辨率图525 二者的结果图切分,对全分辨率图像510 中的像素进行分类,并且将信息提供给显示模块590,显示模块590 提供图像510的可视化绘制,以指明每个像素的分类。
然而,在其他实现中,在接收到用户输入的同时(例如,在鼠标 点击或者拖拽过程中),可以在初步可^L化绘制(例如,全分辨率分 类的低分辨率预览)中提供根据较低分辨率图525确定的较低分辨率 分类。当不再接收到用户输入时(例如,当接收到鼠标抬起事件时), 可以在可视化绘制中提供使用全分辨率图515确定的全分辨率分类, 以指明图像510中每个像素的高分辨率分类。
图6是用于对图像中的像素进行分类的方法600的流程图。方法 600对接收的图像进行操作(步骤610)。根据接收的图像,从用户 接收定义像素样本的输入(步骤620)。根据像素样本对所接收图像 中的像素一致地分类(步骤630)。 一致地分类图像中的像素包括创 建代表图像的图以及种子。可以更新图像的绘制,以反映像素分类(步 骤640)。例如,可以将前景像素显示为突出显示或者选定。在另一 实现中,背景图像可以展现为变暗或者被有色覆盖所遮盖。从更新的 绘制中,用户可以容易地认识到包含被分类为前景或背景的像素的图 像区域。
像素分类以及对图像绘制的更新在接收输入时进行。如果从用户 接收到其他像素(步骤650),接收并且处理进一步的输入(返回步 骤620)。当已经达到了期望的分类时, 一般地,可以对已分类的像 素进行其他操作(例如,选择已分类像素,变换图像的已分类区域, 创建图像蒙板)。
24本说明书中描述的主题和功能性操作的实施方式可以在数字电 子电路中实现,或者在计算机软件、固件或硬件中实现,该计算机软 件、固件或硬件包括本说明书中公开的结构及其等同结构、或是其一 个或多个的组合。本说明书中描述的主题的实施方式可以实现为一个 或多个计算机程序产品,也即,在计算机可读介质上编码的、以便由 数据处理装置执行或控制数据处理装置操作的一个或多个计算机程 序指令模块。计算机可读介质可以是机器可读的存储设备、机器可读 的存储衬底、存储设备、实现计算机可读的传播信号的物质的组合、 或者它们中的一个或多个的结合。术语"数据处理装置"包括用于处理 数据的所有装置、设备和机器,例如包括可编程处理器、计算机,或 者多个处理器或计算机。除了硬件之外,该装置可以包括为考虑中的 计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、 数据库管理系统、操作系统、或者其中一个或多个的结合的代码。传 播信号是人工生成的信号,例如机器生成的电、光或者电磁信号,其 被生成以编码信息,用以传输到适当的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以 由任意形式的编程语言编写,包括编译语言或解释语言,并且该计算 机程序可以任意形式部署,包括部署为单独的程序或模块、组件、子 例程,或者适于在计算环境中使用的其他单元。计算机程序无需对应 于文件系统中的文件。程序可以存储在保存其他程序或数据(例如, 存储在标记语言文档中的一个或多个脚本)的文件的一部分中、可以 存储在专门用于考虑中的程序的单个文件中,或者存储在多个协同文 件中(例如,存储一个或多个模块、子程序,或代码部分的文件)。 可以将计算机程序部署为在一个计算机上执行,或者将其部署为在位
于一个地点的多个计算机上执行,或者跨过多个地点分布且通过通信 网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算 机程序的 一 个或多个可编程处理器执行,用于通过对输入数据进行操
作以及产生输出来执行功能。该处理和逻辑流程还可以由例如FPGA
25(现场可编程门阵列)或ASIC (专用集成电路)的专用逻辑电路执 行,并且也可以将装置实现为所述专用逻辑电路。
适于计算机程序执行的处理器例如包括通用和专用微处理器两 者、以及任意类型的数字计算机的任意一个或多个处理器。通常,处 理器将从只读存储器或随机存取存储器或两者处接收指令和数据。计 算机的基本单元是用于执行指令的处理器以及用于存储指令和数据 的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一 个或多个海量存储设备,或被操作性地耦合为从所述用于存储数据的 一个或多个海量存储设备接收数据、或向其传送数据、或者进行两者, 该海量存^"设备例如是》兹盘、f兹光盘、或光盘。然而,计算机不必一 定具有这样的设备。而且,计算机可以嵌入在其他设备中,例如移动
电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)
接收器,这仅是几例。适于存储计算机程序指令和数据的计算机可读
介质包括所有形式的非易失性存储器、介质和存储设备,例如包括 半导体存储器设备,如EPROM、 EEPROM和闪存设备;磁盘,如内 部硬盘或可移动硬盘;磁光盘;以及CD-ROM和DVD-ROM盘。处 理器和存储器可以由专用逻辑电路补充或者包括在专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以 在具有用于向用户显示信息的显示设备以及用户可以通过其向计算 机提供输入的键盘和指点设备的计算机上实现,其中显示设备例如是 CRT(阴极射线管)或者LCD(液晶显示器)监视器,指点设备(pointing device)例如是鼠标或者轨迹球。也可以使用其他类型的设备来提供 与用户的交互;例如,提供给用户的反馈可以是任何形式的感观反馈, 例如视觉反馈、声觉反馈、或者触觉反馈;并且可以接收来自用户的 任意形式的输入,包括声音、语音或触觉输入。
本说明书中描述的主题的实施方式可以实现在包括后端组件的 计算系统中,例如数据服务器;或实现在包括中间件组件的计算系统 中,例如应用服务器;或实现在包括前端组件的计算系统中,例如具 有图形用户界面或者Web浏览器的客户端计算机,用户通过该图形用户界面或Web浏览器可以与本说明书中描述的主题的实现进行交 互;或实现在一个或多个这样的后端、中间件、或前端组件的任意结 合中。系统组件可以通过数字数据通信的任意形式或介质(例如,通 信网络)互连。通信网络的示例包括局域网("LAN"),广域网("WAN") (例如,互联网)。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远 离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助 于在各自计算机上运行的、彼此具有客户端-服务器关系的计算机程 序得到的。
尽管本说明书包含多种具体细节,但是不应将其理解为是对本发 明的范围或者所要求保护内容的限制,而应当理解为是本发明具体实 施方式的特定特征的描述。本说明书中描述的在各个实施方式的上下 文中的某些特征也可以在单个实施方式中结合实现。相反,在单个实 施方式上下文中描述的各种特征也可以分别实现在多个实施方式中 或者任意适当的子组合中。而且,尽管上文可能将特征描述为在特定 的组合中操作,甚至初始也是这样要求保护的,但是来自所要求保护 的组合的一个或多个特征在一些情况下可以从该组合中去除,并且所 要求保护的组合可以针对子组合或组合的变形。
类似地,尽管在附图中以特定的顺序描述操作,但是不应将其理 解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要 求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和 并行处理可能是有利的。而且,在上述实施方式中多个系统组件的分 离不应被理解为在所有实施方式中需要这种操作,应当将其理解为所 描述的程序组件和系统通常可以在单个软件产品中集成在一起,或是 被打包到多个软件产品中。
已经在本说明书中描述了主题的特定实施方式。其他实施方式也 处于所附权利要求的范围之内。例如,可以按照不同的顺序来执行权 利要求中记载的动作,并仍然达到预期的结果。
2权利要求
1. 一种计算机实现的方法,包括接收定义来自图像的像素样本的用户输入,所述图像由一系列像素定义;以及在接收所述用户输入的同时,执行以下动作一次或多次基于所述像素样本,将所述一系列像素中的像素一致地分类为前景或者背景;以及在定义所述像素样本时,在显示器上更新所述图像的绘制,以描绘经过分类的前景像素和背景像素。
2. 根据权利要求1所述的方法,其中一致地分类包括一致地分类所述图像的较低分辨率版本的像素,以生成所述图像 的较低分辨率版本的分类。
3. 根据权利要求2所述的方法,其中一致地分类包括根据所述图像的较低分辨率版本的分类,确定所述图像的边缘区 域;以及以全分辨率来 一 致地分类所述图像的边缘区域。
4. 根据权利要求1所述的方法,其中一致地分类包括 最小化包含区域代价和边界代价的目标代价函数。
5. 根据权利要求4所述的方法,其中最小化所述目标代价函数包括增量式地求解一个或多个图切分问题。
6. 根据权利要求1所述的方法,进一步包括 根据像素的一致分类来更新像素的先前分类。
7. 根据权利要求1所述的方法,其中一致地分类包括 使用分段恒定的区域代价。
8. 根据权利要求7所述的方法,其中所述分段恒定的区域代价是 以下之一与前景分类相关联的代价;与背景分类相关联的代价;以及 与偏向相关联的代价。
9. 根据权利要求1所述的方法,其中一致地分类包括 将所述图像分割成多个部分,所述多个部分中的每个部分包含连续的多个像素;以及基于所述像素样本,将所述多个部分中的部分一致地分类为前景或者背景。
10. 根据权利要求9所述的方法,其中将所述图像分割成多个部 分包括使用分水呤或者种子填充分割来分割所述图像。
11. 根据权利要求1所述的方法,其中 所述像素样本仅表示前景像素或者仅表示背景像素。
12. 根据权利要求1所述的方法,其中所述一致分类是基于当前正在接收的所述像素样本以及先前接 收的任何其他像素样本。
13. 根据权利要求1所述的方法,其中经一致分类的前景像素表示遵守所述图像中的对象边界、并且没 有错分类区域的一个或多个图像区域。
14. 根据权利要求1所述的方法,其中 当用户在所述图像上描画笔触时,接收所述用户输入。
15. 根据权利要求1所述的方法,其中在显示器上绘制所述图像 以描绘经分类的前景像素和背景像素包括以下一个或多个突出显示所述前景或者背景像素;模糊所述前景或者背景像素;对所述前景或者背景像素应用过滤器;绘制图像蒙板,所述图像蒙板描绘前景或者背景像素;或者绘制所述前景或者背景像素区域的边缘。
16. 根据权利要求1所述的方法,其中所述图像在以下颜色空间之一中RGB, CMYK, CIELAB, CIEXYZ, CIELUV, YCC, YIQ, HSB, HSL或者灰度。
17. —种计算机实现的方法,包括接收来自具有多个像素的图像的像素样本的标识;以及基于所述像素样本,将所述多个像素中的像素一致地分类为前景或者背景,包括增量式地求解一个或多个图切分问题,以及以全图像 分辨率一致地分类所述图像的边缘区域,所述边缘区域根据所述图像的较低分辨率版本的分类而确定。
18. 根据权利要求17所述的方法,其中所述像素样本仅表示前景像素或者仅表示背景像素。
19. 根据权利要求17所述的方法,其中一致地分类包括 最小化包含区域代价和边界代价的目标代价函数。
20. 根据权利要求17所述的方法,其中一致地分类包括 使用恒定的区域代价函数。
21. 根据权利要求17所述的方法,进一步包括 在接收所述像素样本的标识的同时, 一致地分类所述多个像素中的像素;以及在所述接收期间,在显示器上更新所述图像的绘制,以描绘所述前景像素和所述背景像素。
22. —种计算机实现的方法,包括接收来自具有多个像素的图像的像素样本的标识;以及 基于所述像素样本,并使用分段恒定的区域代价,将所述多个像 素中的像素一致地分类为前景或者背景。
23. 根据权利要求22所述的方法,所述一致地分类包括增量式地求解一个或多个图切分问题。
24. 根据权利要求22所述的方法,所述一致地分类包括以全图像分辨率来一致地分类所述图像的边缘区域,所述边缘区 域根据所述图像的较低分辨率版本的分类而确定。
25. 根据权利要求22所述的方法,其中 所述像素样本仅表示前景像素或者仅表示背景像素。
26. 根据权利要求22所述的方法,其中一致地分类包括 最小化包含区域代价和边界代价的目标代价函数。
27. 根据权利要求22所述的方法,进一步包括 在接收所述像素样本的标识的同时, 一致地分类所述多个像素中的像素;以及在接收所述像素样本的标识时,在显示器上更新所述图像的绘 制,以描绘前景像素和背景像素。
28. —种计算机程序产品,被编码在计算机可读介质上,可进行 操作以使数据处理装置执行操作,这些操作包括接收定义来自图像的像素样本的用户输入,所述图像由一系列像 素定义;以及在接收所述用户输入的同时,执行以下动作 一次或多次基于所述像素样本,将所述一 系列像素中的像素一致地分类为前景或者背景;以及在定义所述像素样本时,在显示器上更新所述图像的绘制,以描绘经过分类的前景像素和背景像素。
29. —种计算机程序产品,被编码在计算机可读介质上,可操作 以使数据处理装置执行操作,这些操作包括接收来自具有多个像素的图像的像素样本的标识;以及基于所述像素样本,将所述多个像素中的像素一致地分类为前景或者背景,包括增量式地求解一个或多个图切分问题,以及以全图像 分辨率 一 致地分类所述图像的边缘区域,所述边缘区域根据所述图像的较低分辨率版本的分类而确定。
30. —种计算机程序产品,被编码在计算机可读介质上,可操作 以使数据处理装置执行操作,这些操作包括接收来自具有多个像素的图像的像素样本的标识;以及 基于所述像素样本,并使用分段恒定的区域代价,将所述多个像 素中的像素一致地分类为前景或者背景。
31. —种系统,包括用于接收定义来自图像的像素样本的用户输入的装置,所述图像由一系列〗象素定义;以及在接收所述用户输入的同时,用于执行以下动作一次或多次的装置基于所述像素样本,将所述一 系列像素中的像素一致地分类 为前景或者背景;以及在定义所述像素样本时,在显示器上更新所述图像的绘制, 以描绘经过分类的前景像素和背景像素。
32. —种系统,包括用于接收来自具有多个像素的图像的像素样本的标识的装置;以及用于基于所述像素样本,将所述多个像素中的像素一致地分类为 前景或者背景的装置,所述一致地分类包括增量式地求解一个或多个 图切分问题,以及以全图像分辨率一致地分类所述图像的边缘区域, 所述边缘区域根据所述图像的较低分辨率版本的分类而确定。
33. —种系统,包括用于接收来自具有多个像素的图像的像素样本的标识的装置;以及用于基于所述像素样本并使用分段恒定的区域代价,将所述多个 像素中的像素一致地分类为前景或者背景的装置。
全文摘要
本发明的方法、系统、装置和计算机程序产品,其特征在于,接收定义来自图像的像素样本的用户输入,所述图像由一系列像素定义。在接收用户输入的同时,执行以下动作一次或多次基于所述像素样本,将所述一系列像素中的像素一致地分类为前景或者背景;以及在定义所述像素样本时,在显示器上更新所述图像的绘制,以描绘经过分类的前景像素和背景像素。
文档编号G06T5/00GK101512598SQ200780032986
公开日2009年8月19日 申请日期2007年7月20日 优先权日2006年7月21日
发明者G·D·维伦斯基, J-C·奇恩, S·D·科恩 申请人:奥多比公司