首页 / 专利库 / 电脑图像 / 位图图像 / 基于区域的图像操纵

基于区域的图像操纵

阅读:1009发布:2020-10-09

专利汇可以提供基于区域的图像操纵专利检索,专利查询,专利分析的服务。并且基于区域的图像操纵可包括选择和分割特定图像的区域。通过使用各区域的 像素 上的简化笔画来标识这些区域。可相应地操纵或变换所标识的区域。某些实现包括使用其他图像或对象来填充区域,并且包括执行文本查询来搜索这些图像或对象。,下面是基于区域的图像操纵专利的具体信息内容。

1.一种系统(1304),包括:
与计算机可读存储介质(1504)通信的处理器(1502);
在所述计算机可读存储介质中维护的算法(1520),所述算法提供一用户界面,并且执行:
打开图像;
用所述用户界面使用所述图像的一个或多个区域中的每一个所专用的笔画来选择所述一个或多个区域;以及
用所述用户界面来变换所述一个或多个区域之一。
2.如权利要求1所述的系统,其特征在于,所述图像来自经索引的数据库
3.如权利要求1所述的系统,其特征在于,所述选择是基于所述一个或多个区域的像素来执行的,所述像素与所述笔画相关联;使用创建表示所述一个或多个区域的图的生成树的图像分割;和/或包括细化所述一个或多个区域的边界。
4.如权利要求3所述的系统,其特征在于,在创建所述生成树之前使用超像素来创建所述图。
5.如权利要求1所述的系统,其特征在于,所述变换包括对所述一个或多个区域之一加边界,和/或是以下操作之一:平移、放大、旋转、或删除。
6.如权利要求1所述的系统,其特征在于,所述算法还执行对所述一个或多个区域之一的填充,和/或还执行对于对象的文本查询搜索以填充所述一个或多个区域之一。
7.一种由计算设备执行的方法(1600),包括:
打开图像以便基于所述图像的区域来操纵所述图像(1602);
通过在所述图像的一个或多个区域上应用的笔画来标识所述一个或多个区域(1604);
分割所述一个或多个所标识的区域(1608);
变换所述一个或多个所标识的区域之一(1610);以及
创建合成图像(1612)。
8.如权利要求7所述的方法,其特征在于,打开所述图像来自本地存储器、因特网、或网络数据库之一。
9.如权利要求7所述的方法,其特征在于,所述标识包括将所述笔画与所述一个或多个区域的像素相关联。
10.如权利要求7所述的方法,其特征在于,所述分割包括创建表示所述图像的图的扩充树结构,和/或包括创建所标识的区域的位图图像,所标识的区域的每一像素由四个通道R、G、B、以及A来标识。
11.如权利要求7所述的方法,其特征在于,变换对一个或多个所标识的区域中的所述一个加边界,并且执行以下操作之一:平移、放大、旋转、或者删除。
12.如权利要求7所述的方法,其特征在于,创建包括图像区域边界细化。
13.如权利要求7所述的方法,其特征在于,还包括填充所标识的图像中的一个或多个。
14.一种由计算设备实现的方法(1600),包括:
打开多个图像中的一个图像(1602);
通过在所述图像的各区域的像素上应用通用笔画来选择这些区域(1604);
变换所述图像的所述区域之一(1610);以及
填充所述区域中的所述一个或所述图像的另一区域(1610)。
15.如权利要求14所述的方法,其特征在于,还包括对图像执行文本查询搜索来执行所述填充。

说明书全文

基于区域的图像操纵

技术领域

[0001] 本发明涉及图像操纵,尤其涉及基于区域级图像的图像操纵。

背景技术

[0002] 随着数字媒体的日益增长的使用和数字图像的盛行,对用于操纵数字图像的有效且高效的编辑工具的需求日益增长。对数字图像进行编辑和操纵包括对图像的对象和区域进行更改。在某些情况下,用户希望替换图像的对象和区域。
[0003] 典型的图像编辑和操纵可涉及对图像中的对象和区域进行乏味的手动选择。例如,用户可能必须精确地使用诸如鼠标等定点和选择设备来选中感兴趣的对象或区域。这一技术对用户而言是耗时且令人沮丧的。
[0004] 在某些情况下,用户希望用不同的区域来替换图像的一区域(如所选背景);然而,用户可用的选项是有限的。换言之,某些图像编辑和操纵方法对用于替换图像的所选区域或背景的其他区域提供有限访问或不提供访问。
[0005] 通常,在图像的对象或区域被变换,诸如增大或减小该对象或区域的大小时,与该图像的其余部分相比,该经变换的对象或区域可能具有不成比例的像素。例如,在对象或区域被变换时,该对象或区域的像素可能是不同的并且可影响该图像的一致的着色和粒度。通常,在校正这些像素时涉及额外的用户过程。

发明内容

[0006] 提供本“发明内容”是为了以简化的形式介绍将在以下“具体实施方式”中进一步描述的一些概念。本“发明内容”并不旨在标识出所要求保护的主题的关键特征或必要特征;也不旨在用于确定或限制所要求保护的主题的范围。
[0007] 本文的一些实现提供用于通过选择并操纵区域级图像来进行图像操纵的技术。在一些实现中,对其他区域或对象执行搜索以替换所选区域。附图说明
[0008] 参考附图来阐明“具体实施方式”。在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在不同附图中使用相同的附图标记指示相似或相同的项或特征。
[0009] 图1是根据一些实现的用于基于区域的图像操纵的框架框图
[0010] 图2描绘根据一些实现的用于基于区域的图像操纵的图像的示例。
[0011] 图3描绘根据一些实现的的待操纵图像的示例,其中用户使用笔画来进行标记以标识各区域。
[0012] 图4是根据一些实现的示例树结构和扩充树结构的示图。
[0013] 图5是根据一些实现的迭代地选择或分割图像的过程的框图。
[0014] 图6是根据一些实现的用于相干遮片的过程的框图。
[0015] 图7是根据一些实现的羽化函数的图表。
[0016] 图8描绘根据一些实现的包括所选区域的边界框的图像的示例。
[0017] 图9是根据一些实现的用于图像区域平移的各图像的框图。
[0018] 图10是根据一些实现的用于图像区域放大的各图像的框图。
[0019] 图11是根据一些实现的用于图像区域旋转放大的各图像的框图。
[0020] 图12是根据一些实现的图像的符号图。
[0021] 图13是根据一些实现的用于执行基于区域的图像操纵的示例系统的框图。
[0022] 图14是根据一些实现的用于基于区域的图像操纵的示例服务器计算设备的框图。
[0023] 图15是根据一些实现的用于基于区域的图像操纵的示例客户机计算设备的框图。
[0024] 图16是根据一些实现的用于基于区域的图像操纵的示例过程的流程图

具体实施方式

[0025] 区域级操纵
[0026] 本文所描述的技术一般针对用于选择和操纵(即,编辑)图像的技术。一些实现采用在区域或对象级选择和操纵图像。这可以使用所需区域或对象上的简化笔画并选择该区域或对象来执行。所选对象或区域与图像的其余部分分开并可按需进行操纵。
[0027] 可以使用查询(如,文本查询)来向用户给出用另一区域替换图像的所选区域或“空白”区域的选项。可以对包括可替换所选区域的相关区域的一个或多个图像数据库执行该查询。替换区域无缝地替换图像的所选或空白区域以创建新图像。
[0028] 所选区域或对象可以通过在所选区域或对象上移动诸如鼠标等定点设备来操纵。对该区域或对象的操纵可包括平移、旋转、删除、以及重新着色。
[0029] 在操纵或变换了该区域或对象后,该区域或对象的放置可以在没有用户干预的情况下自动执行。区域放置是将经变换区域或图像与已完成图像进行合成的过程。这还可包括在用户干预的情况下自动地变换所选区域或对象的像素。
[0030] 用于基于区域的图像操纵的示例框架
[0031] 图1是根据本文的一些实现的用于交互式的基于区域的图像操纵框架100的示例的框图。框架100能够作为用于编辑和搜索大量图像的实时的基于区域的图像操纵系统来执行。框架100可以是自包含系统(即,诸如笔记本或台式计算机之类的计算设备)或诸如网络系统之类的包括各种计算设备和外围设备的系统的一部分或被包括在其中。还构想框架100可以是包括因特网和各种区域网络的大得多的系统的一部分。框架100可以允许对图像进行基于区域的操纵和对由图像102表示的诸如数据库、因特网等图像源中的一个或多个图像进行查询搜索。
[0032] 例如,图像102可以从任何合适的源中获取,如通过爬行因特网网站、通过下载或上传图像数据库、通过将图像从成像设备存储到计算机存储介质等等。在一些实现中,图像102可以是可以在万维网上获取的数百万或者甚至数十亿个图像、照片等等。索引阶段102还包括用于生成图像102的图像索引106的索引组件104。图像索引106可以是用于基于文本来标识一个或多个图像的基于文本的图像索引。在一些实现中,索引组件104基于文本来标识图像102的各个图像。注意,可以实现其他查询搜索和索引,包括图像的视觉/图形相似性。
[0033] 可以使所生成的图像索引106可由查询搜索引擎108来使用。查询搜索引擎108可以提供用户界面组件110,以便能够接收查询,如文本查询。在所示实现中,用户界面组件110配备有查询搜索引擎108。
[0034] 用户界面组件110可以在web浏览器窗口中作为网页呈现给用户。在其他实现中,用户界面组件110可被合并到计算机上的web浏览器或其他应用程序,可以是web浏览器的插件或升级,等等。用户界面组件110可被配置成接收来自图像102的图像。向用户提供可包括一个或多个接口的输入/选择工具112以向用户界面组件110提供输入。输入/选择工具112的示例包括诸如鼠标等定点设备、键盘,等等。具体而言,如以下进一步描述的,输入/选择工具112可用于选择/取消选择以及操纵图像。此外,同样如以下进一步描述的,输入/选择工具112可被用来输入对用于替换图像的所需区域的图像或区域(例如,新背景区域)的查询(例如,文本查询)。
[0035] 查询搜索引擎108还可包括被配置成接收查询并执行对来自图像102的与查询输入相对应的一个或多个图像的搜索的匹配组件114。在一些实现中,匹配组件114使用基于查询匹配方案的图像文本索引。匹配组件114标识与用户通过输入/选择工具112提供的文本输入相对应的一个或多个图像。
[0036] 用户界面组件110输出所标识的图像中的一个或多个作为结果116。结果116可以在显示器118上实时地显示给用户。如果用户对结果116不满意,则用户可以通过输入/选择工具112交互式地并迭代地修改查询输入,如通过添加附加文本。
[0037] 显示器118显示要由用户操纵的图像。对显示器上的图像的操纵由用户通过经由用户界面组件110进行接口的输入/选择工具112来执行。
[0038] 打开图像
[0039] 要操纵的图像可以是所选图像102,实现上述系统100。具体而言,所操纵的图像可以如输入/选择工具112所指示/请求的通过用户界面组件110来调用。在其他实现中,要操纵的图像可以使用其他方法并实现其他源来调用或打开。用户界面组件可以提供菜单并将其显示在显示器118上。该菜单向用户提供打开要操纵的图像的选项。
[0040] 图2示出可被操纵的示例图像200。在该示例中,感兴趣区域是202。具体而言,感兴趣区域或对象是“狗”。区域204是图像200的背景。如以下讨论的,可以对区域202执行操纵,并且区域204可被替换。
[0041] 图像区域选择和分割
[0042] 可以实现交互式区域选择和分割过程并将其提供给用户以允许该用户在图像的特定像素上画出几笔来指示感兴趣区域和不感兴趣区域。使用优化算法来将感兴趣像素从不感兴趣像素中分割出来。
[0043] 图像分割涉及从来自图像的各区域中剪出感兴趣区域,将该图像分解成若干“”以进行分析。向用户提供简单而又相对快速的图像分割过程是合乎需要的。
[0044] 图3示出要被操纵的示例图像200。用户画出笔画300-A和300-B以区分出图像200的背景。笔画300可以是特定颜色或阴影。用户可以画出笔画302-A和302-B以选择图像200中的感兴趣对象。笔画302可以是与笔画300不同的颜色或阴影,用于从图像200的其他区域具体地描绘感兴趣区域。
[0045] 图结构可以表示图像。可以使用最小生成树来逼近图像的图结构,并且可以使用扩充树结构来合并该树的各节点的标记信息。扩充树结构可被用来对图像进行建模并且图像分割可以基于该扩充树结构来执行。
[0046] 由G={V,E}表示的图定义图像,并且包括作为该图的顶点的所有像素或超像素。作为空间邻居的每一对像素具有连接它们的边。该边的长度作为该对的对应的两个顶点u和v之间的距离来如下计算:
[0047] g(u,v)=‖fu-fv‖(1)
[0048] 其中fu和fv是像素的RGB值。因为图可以是循环的,并且图的处理在时间和复杂度上可以是冗长的,所以可以使用树来对该图像进行建模。由T=(V,E)表示的树结构是具有一个根节点的无环连通图,并且除该根节点之外的每一根节点具有唯一父节点
[0049] 图4是示例树结构400和扩充树结构402。可以使用最小生成树准则来将该图转换成树。例如,如本领域已知的,可以实现Prim的算法或Kruskal的算法来有效地执行该转换。在树400中,pa(v)被定义为v 404的父节点。Tv被定义为以节点v 404作为根的子树。例如,Tv是由节点V 404及其两个子节点形成的。根节点(即r)406被定义为r∈V,并且所有其他节点v∈V的深度可以表示为dv并且是从r 406到v 404的最短路径的边数(在该示例中,该路径通过节点u 408)。并且满足dv=dpa(v)+1,如在扩充树结构402中看到的。默认地,根节点r 406具有深度0。
[0050] 对于k向分割,通过添加若干抽象节点s1 410-A和s2 410-B(由 定义)来形成扩充树结构402。抽象节点410可以与扩充树结构402中的所有节点V相连接。抽象节点410中的每一个可以被解释成指示第k个可能的标记。扩充树结构402被定义为:
[0051]
[0052] 其中(εa={(v,s)}),v∈V且
[0053] 对扩充树结构的划分可被定义为将节点V分成k个不相交的子集使得 并且Vi和Vj之间没有边,这可以通
过移除一些边来解决。为了合并用户提供的先验信息,对被定义为 的位于不同子集中的扩充节点进行附加约束。
[0054] 通过在节点V上进行表示或标记为L={lv},其中lv是v所属的子集,最优划分是最大化以下概率测量等式的目标:
[0055]
[0056] 其中 编码了节点v∈V连接到 的概率。在一些实现中,节点可以连接到抽象节点中的有且仅有一个。在一些实现中,这一概率可以通过从所标记的像素中学习RGB色彩空间中的高斯混合模型(GMM)来求解。
[0057] T(lv|lpa(v))编码了给定其父节点的标记时lv的概率,这表示树结构400。例如,如本领域已知的,Potts模型可以如下使用:
[0058]
[0059] 其中g(v,pa(v))是v的距离度量并且pa(v)被如上定义。Z是归一化参数,并且λ控制指数函数的陡度。例如,λ可被默认设为1。
[0060] 可以采用有效的动态过程来最大化以上等式(3),如以下所描述的。子树Tv以节点v作为根。函数qv(lv)通过下式用节点v的标记lv来定义:
[0061]
[0062] 其中l*表示子树Tv中的除节点v之外的所有节点的可能标记;并且是子树Tv中的概率测量。对于树的内部节点,根据尔科夫和无
环性质,遵循以下递归计算:
[0063]
[0064]
[0065] 满足:对于叶节点v,qv(lv)可以直接求值为 因此,可以用递归的自底向上的方式来对所有内部节点和根节点的qv(lv)求值。如果树的最大深度是D,则具有深度D的节点是叶节点,并且它们的后验概率qv(lv)可如上所述地直接求值。
可以使用等式(6)来为具有深度D-1的所有节点对函数qv(lv)求值。类似地,以深度递减次序重复该过程,直至到达根节点为止。
[0066] 随后可以按自顶向下的方式从根节点到叶节点来寻找最优标记。根节点r的最优标记分配可被写成 通过用等式(6)中的arg max来替换max,根节点r处的最优值被用来寻找其子节点ω∈Cr的标记。arg max的值可以在自底向上后验概率求值的过程中记录。随后,该过程之后,可以按深度递增次序沿树向下以通过使用预先计算的 来计算每一子节点ω的最优标记分配。
[0067] 总而言之,对该树执行两遍:自底向上的一遍按深度递减次序从叶节点开始对后验概率进行求值,而自顶向下的一遍按深度递增次序从根节点开始分配最优标记。
[0068] 使用超像素
[0069] 在一些情况下,为了使树划分更加实际,可以在树拟合之前执行图粗化步骤。具体而言,可以通过根据该图像的超像素来构建该图以粗化图像图。这可以提供至少两个优点:1)降低了该图的存储复杂度,以及2)降低了树构造和对该树的推断的时间复杂度。两个超像素C1和C2之间的距离g通过下式定义,并且它基于外差和外差:
[0070] g(C1,C2)=max(d(C1,C2)/Int(C1),d(C1,C2)/Int(C2))(7)
[0071] 外差d被定义为空间相邻像素之间的最小距离,由下式定义:
[0072]
[0073] 并且内差Int(c)被定义为:
[0074] Int(C)=max(u,v)∈MST(C)g(u,v) (9)
[0075] 其中最大化是在超像素C的最小生成树MST(c)中的边上完成的。
[0076] 使用各算法的图像分割
[0077] 使用上述各算法和方法,可以执行图像分割。基于树划分的结果是通过如上所述地分割超像素来获得的。可以通过将超像素设置成节点并在两个超像素是空间邻居的情况下连接这些超像素来构造图结构。构造最小生成树来逼近该图。
[0078] 现在回头参考图3,在示例图像200中,对于交互式图像分割,用户画出若干笔画,如笔画300和302所示。笔画300和302将该图像的各像素遮蔽为不同的对象,并且具体而言,遮蔽为感兴趣对象或区域及该图像的分开且不同的背景。笔画300和302的遮蔽像素被设为具有硬约束。为了施加将像素设为硬约束,设定以下条件:如果lv不是像用户指示的那样来标记,则P(iv|lv)=0,否则P(iv|lv)=1。
[0079] 使用各算法的图像分割
[0080] 使用上述各算法和方法,可以执行图像分割。基于树划分的结果是通过如上所述地分割超像素来获得的。可以通过将超像素设置成节点并在两个超像素是空间邻居的情况下连接这些超像素来构造图结构。构造最小生成树来逼近该图结构。
[0081] 交互式区域选择
[0082] 如上所述,描述了用于向用户提供交互式地选择图像(例如,图像200)的区域(例如,区域202)能的过程和技术。用户可以画出几个笔画来指示这些笔画下的那些像素上的感兴趣区域和不感兴趣区域。随后使用优化算法来传播感兴趣区域和不感兴趣区域。
[0083] 图5示出交互式地选择或分割图像的过程500。在该示例中,示出了图2的图像200。在图像502,示出了原始图像,它具有前景或感兴趣区域202和背景或不感兴趣区域
204。在图像504,如以上参考图3所述,用户可以提供笔画以指示感兴趣区域202和不感兴趣区域204。在图像506,示出了不感兴趣区域或背景204。在图像508,示出了感兴趣区域或前景202。在用户选择了这些区域(即,前景或感兴趣区域202和背景或不感兴趣区域204)之后,可以在没有用户干预的情况下执行以下描述的过程。同样显而易见的是,上述过程和技术也可在干预的情况下执行。
[0084] 区域边界细化
[0085] 为了确定沿边界的不确定区域,可以实现以下技术。图6示出用于相干遮片的过程600。用户指定大致区域分割,如前景或F 602所表示的,这可表示图像的所需区域。在框606中标识背景区域或B 604。在框608,在F 602和B604之间添加不确定区域U 610。接着,在框612,背景镶嵌或B镶嵌614可以是常数个分割不足的背景图像。在框616,随后使用相干遮片来构造相干前景层。
[0086] 通过在α通道L(α)上合并相干先验,可以使用下式来制定相干遮片:
[0087] L(F,B,α|C)=L(C|F,B,α)+L(F)+L(α)(10)
[0088] α通道L(α)的对数概率可被建模成:
[0089]
[0090] 其中α0=f(d)是d的羽化函数,并且是 标准差。变量d是从该像素到层边界的距离。羽化函数f(d)定义边界的周围像素的α值。
[0091] 图7示出羽化函数f(d)702的示例的图表700,其中对照d 706来绘制α704。例如,如图7所示,羽化函数f(d)702可被设为f(d)=(d/w)*0.5+0.5,其中w708是羽化宽度。
[0092] 可以假定,从一组相邻前景像素观察到的色彩分布P(C);以及采样前景色彩分布P(F)是高斯分布,如下式定义的:
[0093]
[0094]
[0095] 其中σC是观察到的色彩C的标准差,是前景像素的加权平均,而∑F是加权协方差矩阵。取等式(10)相对于F和α的偏导数,并将它们设为等于0,产生以下等式:
[0096]
[0097]
[0098] 通过使用(14)和(15)来交替地求出α和F的值。最初,α可被设成α0。
[0099] 区域图像表示
[0100] 回头参考图2,在一些情况下,所选图像区域202可由32位位图图像和边界框来表示。对于32位位图图像,对于每一像素可使用四个通道R、G、B、A,其中R表示红色值,G表示绿色值,B表示蓝色值,而A表示α值(即α)。例如,如本领域已知的,α值(即α)指示以下描述的边界细化过程可获得的透明度。
[0101] 图8示出图像200的所选区域202的边界框。对于所选区域,可以创建边界框。边界框可由特定坐标表示,并由例如八个点来定义。以下可以定义边界框的特定轴坐标:“x_l”表示所选图像区域的最左侧像素的x坐标,“x_r”是所选图像区域中的最右侧像素的x坐标,“y_t”是所选图像区域中的最顶部像素的y坐标,并且“y_b”是所选图像区域中的最底部像素的y坐标。因此,在图8的该示例中,点800由(x_l,y_t)表示,点802由(x_l,y_b)表示,点804由(x_r,y_t)表示,且点806由(x_r,y_b)表示。边界框的四个其他点可包括点808、810、812和814。因此,在该示例中,从边界框中选择了八个点,它们包括边界框的四个点以及四个每一条边的中点。
[0102] 图像平移操作
[0103] 以上参考图8描述的边界框可被用来平移所选或所分割的区域。边界框的四个角顶点或点(点800、802、804和806)可被用来按比例放大/缩小所选区域,同时保持该区域的长宽比。四条边的四个中点(点808、810、812和814)可被用来沿特定方向缩放所选区域。内部中点816可被用来旋转所选区域。
[0104] 图9示出用于图像区域平移的过程900。图像902是包括具有用户所选择的边界框的所选图像区域904的原始图像。图像906示出所选图像区域904。图像908示出所选图像区域904从原始位置910的平移。图像912示出所得的合成图像。
[0105] 图10示出用于图像区域放大的过程1000。图像1002是包括具有用户所选择的边界框的所选图像区域1004的原始图像。图像1006示出所选图像区域1004。图像1008示出所选图像区域1004从原始位置1004的放大。图像1012示出所得的合成图像。
[0106] 图11示出用于图像区域旋转的过程1100。图像1102是包括具有用户所选择的边界框的所选图像区域1104的原始图像。图像1106示出所选图像区域1104。图像1108示出所选图像区域1104的旋转。图像1110示出所得的合成图像。
[0107] 因此,向用户提供了对所选图像区域执行以下动作的能力:1)平移,其中将所选图像区域拖放到图像的另一区域;2)缩放,其中用户拖曳所选图像区域的锚点来调整所选图像区域的大小并且保持所选图像区域的长宽比或改变长宽比;3)旋转,其中绕某一轴旋转所选图像区域;4)删除,其中移除所选图像区域。另外,在一些情况下,可对所选区域图像重新着色。此外,如下所述,对于一些实现,还可对所选区域图像和该图像执行其他动作。
[0108] 在用户操作之后,可以在没有用户干预的情况下相应地并且自动地变换区域图像中的像素。这样的变换可以通过使用已知双线性内插技术或诸如微软公司的GDIplus 图形库等令人鼓舞的图像变换工具来获得。例如,上述针对所选图像的像素的α通道值也可以通过将α通道看作图像并使用微软公司的GDIplus 图形库中的工具变换该α通道来进行变换。
[0109] 在变换了所选图像区域之后,在没有用户干预的情况下自动执行图像区域放置。区域放置可包括将经变换的区域图像与已完成图像进行合成的过程。在一些情况下,关于图像合成,如果存在与所选图像区域的重叠,则可以使用应用具有相干遮片的渲染的公知技术和方法来解决问题。此外,也可将已知的重新着色技术应用于经变换的区域图像和已完成或合成图像。
[0110] 对图像和区域图像执行的其他动作
[0111] 为了进一步提供令人满意的合成图像,可以对该图像和所选区域图像执行附加动作。这些动作可以在带有或没有用户干预的情况下执行。在一些实现中,附加动作是根据用户选择来执行的。
[0112] 空穴填充
[0113] 在空穴填充的概念中,填充图像的特定范围或区域。如上所述,该范围或区域可以是所选区域图像或前景。对于空穴填充,可以使用若干已知技术和方法,包括空穴填充算法。描述了一种示例区域填充算法。
[0114] 图12示出用于区域填充算法的图像1200的示例符号图。变量Ω1202表示要移除并填充的用户选择的目标区域。源区域Φ1204可被定义为整个图像1200减去目标区域Ω1202,其中I表示图像1200(Φ=I-Ω)。源区域Φ1204可以是目标区域Ω1202周围的膨胀带,或可以由用户手动地指定。
[0115] 给定补片ΨP 1206,向量nP 1208是目标区域Ω1202的轮廓δΩ1210的法线。1212定义等照度线,即点p 1214处的方向和强度。
[0116] 模板窗口或补片可由Ψ表示(例如,ΨP 1206),并且可以指定补片的大小。例如,默认窗口大小可以是9 X 9像素,然而,用户可以将窗口大小设为稍微大于源区域Φ1204中的最大可区分纹理元素的大小。
[0117] 每一像素可维护一色彩值,或在该像素未被填充的情况下可被定义为“空”。每一像素可以具有置信度值,该值反映对像素值的置信度并且一旦填充了像素则可被冻结。沿填充前线的各补片也可被给定临时优先级值,该值确定填充补片的次序。执行以下三个过程直至填充了所有像素为止:
[0118] 过程(1):计算补片优先级。可以实现不同的填充次序,包括“剥洋葱”方法,其中在同心层中从外向内来合成目标区域。
[0119] 在该示例中,实现最佳优先填充算法,它取决于分配给填充前线上的每一补片的优先级值。优先级计算偏向于处于强边的延长线上并由高置信度像素包围的那些补片。
[0120] 补片ΨP 1206以点p 1214为中心,对于一些p∈δΩ,优先级(即,P(p))被定义为以下等式中描述的两项的积。
[0121] P(p)=C(p)D(p)(16)
[0122] C(p)是置信度项而D(p)是数据项,并且被如下定义:
[0123]
[0124]
[0125] 其中|Ψp|是ΨP 1206的面积,α是归一化因子(例如,对于典型灰度图像,α=255),并且nP 1208是与点p 1214中的填充前线或前线轮廓δΩ1210正交的单位向量。为边界补片计算优先级,对目标区域的边界上的每一像素有不同的补片。
[0126] 在 初 始 化 期 间,函 数 C(p) 被 设 为 和
[0127] 置信度项C(p)可被认为是像素(点)(即,p)1214周围的可靠信息的量的测量。意图是首先填充它们的像素中的较多像素已被填充的那些补片(例如,ΨP 1206),对早先填充的或从未作为目标区域Ω1202的一部分的像素给出附加偏好。
[0128] 这可以自动地合并对沿填充前线δΩ1210的某些形状的偏好。例如,包括目标区域Ω1202的角和细小卷须的补片往往被首先填充,因为它们由来自原始图像的更多像素包围。这些补片可以提供对照其来进行匹配的更可靠的信息。相反,在伸入目标区域Ω1202的已填充像素的“半岛”的尖端处的补片往往将被搁置,直至周围像素中的大多数被填充为止。
[0129] 在粗略级别,(1)的项C(p)大致地实施合乎需要的同心填充次序。随着填充的进展,目标区域Ω1202的较外层中的像素往往将由较大置信度值来表征,并且因此被较早填充;目标区域Ω1202的中心中的像素将具有较小置信度值。
[0130] 数据项D(p)是等照度线(例如, )的强度的函数,在每一迭代命中填充前线δΩ1210。这一个项D(p)提升等照度线“流入”其中的补片的优先级。这鼓励首先合成线性结构,并且因此被安全地传播到目标区域Ω1202。
[0131] 数据项D(p)往往将等照度线(例如, )快速向内推,而置信度项C(p)往往正好抑制对目标区域Ω1202的这一类侵入。
[0132] 因为目标区域Ω1202的填充次序仅仅由优先级函数P(p)来规定,所以避免必须预定义在基于补片的方法中执行的任意填充次序是可能的。所描述的填充次序是图像性质的函数,从而造成无需补片剪除步骤或模糊诱导混合步骤即可消除“断开结构”伪像的险并且还减少了块伪像的有机合成过程。
[0133] 过程(2):传播纹理和结构信息。一旦计算了填充前线δΩ1210上的优先级,则寻找具有最高优先级的补片ΨP 1206。用从源区域Φ1204中提取的数据来填充补片ΨP1206。
[0134] 在传统内补(inpainting)技术中,像素值信息经由扩散来传播;然而,扩散必然导致图像平滑,这尤其造成大区域的模糊填充。
[0135] 因此,图像纹理可以通过对源区域Φ1204进行直接采样来传播。在源区域Φ1204中执行搜索以寻找与由下式定义的补片ΨP 1206最相似的补片:
[0136]
[0137] 其中两个一般补片Ψa和Ψb之间的距离d(Ψa,Ψb)被定义为这两个补片中的已填充像素的平方差(SSD)的总和。找到源 之后,每一待填充像素 的值从其对应位置复制到 内。
[0138] 因此,实现结构和纹理信息两者从源区域Φ1204到目标区域Ω1202的传播是可能的,一次一个补片。
[0139] 过程(3):更新置信度值。在用新像素值填充了补片 之后,如下更新由 界定的区域中的置信度项C(p):
[0140]
[0141] 这一更新允许不使用图像专用参数来测量填充前线δΩ1210上的补片的相对置信度的能力。随着填充的进展,置信度值衰减,从而指示与靠近目标区域Ω1202的中心的像素的色值有关的较小置信度。
[0142] 文本查询提交
[0143] 文本查询提交可以是可任选的用户选择过程,该过程可在用户希望特定内容来填充某一区域的情况下调用。这一过程可包括动态地构造内容数据库。一般而言,对于文本查询提交,用户可以键入对特定内容的文本查询,如“草”,以指示要填充的区域的内容。可以使用例如图像搜索引擎来从诸如因特网等各个源返回相关图像或内容。
[0144] 文本查询提交过程可由若干已知方法和技术来支持。替换查询还可涉及非文本查询。类似图像和内容可以彼此编组在一起。因此,诸如文本查询等查询可以返回多个图像或内容。用户可以从所返回的图像和内容中进行选择。该查询还可以实现语义场景匹配和寻找“最适合”图像及内容的其他准则。例如,一些图像和内容可能与特定图像的上下文不相关,或对该图像而言可能过小(即,低分辨率)或过大(即,高分辨率)。文本查询(查询)可以是基于像素的。换言之,为确保所返回的图像和内容的大小是可接受的,可以执行对具有可填充所需图像区域的特定像素大小的内容和图像的搜索。这一基于像素的搜索还可以支持图像的纹理、梯度、以及其他色彩或强度性质。
[0145] 示例系统
[0146] 图13示出了根据本文的一些实现的用于执行基于区域的图像操纵的系统1300的示例。为此,系统1300包括通过网络1306或其他通信链路与多个客户机或用户计算设备1304通信的一个或多个服务器计算设备1302。在一些实现中,服务器计算设备1302作为数据中心、服务器农场等的一部分存在,并且能用作用于提供商业搜索网站的组件。系统1300可包括与任何数量的客户机计算设备1304通信的任何数量的服务器计算设备1302。例如,在一个实现中,网络1306包括在因特网上实现的万维网,包括多个数据库、服务器、个人计算机(PC)、工作站、终端、移动设备、以及遍及全球且能够彼此通信的其他计算设备。或者,在另一可能的实现中,网络1306可仅包括经由LAN(局域网)或WAN(广域网)与一个或多个客户机设备1304通信的单个服务器计算设备1302。因此,客户机计算设备1304可按各种组合,通过有线和/或无线网络1306,包括LAN、WAN或本领域中已知的任何其他联网技术,使用如在网际协议上运行的传输控制协议(TCP/IP)或其他合适的协议等一个或多个协议,来耦合到服务器计算设备1302。
[0147] 在一些实现中,客户机计算设备1304是个人计算机、工作站、终端、移动计算设备、PDA(个人数字助理)、蜂窝电话、智能电话、膝上型计算机、平板计算设备、或具有数据处理能力的其他计算设备。此外,客户机计算设备1304可包括用于与服务器计算设备1302进行通信的浏览器1308,如用于向用户呈现本文的用户界面并用于将搜索查询提交给服务器计算设备1302。浏览器1308可以是任何合适类型的web浏览器,如Internet Explorer Firefox Chrome Safari 或被配置成如此处公开的允许提交基于草图的搜索查询的其他类型的软件
[0148] 另外,服务器计算设备1302可包括用于对从客户机计算设备1304接收的诸如文本查询等查询做出响应的查询搜索引擎108。因此,在一些实现中,查询搜索引擎108可包括用户界面组件110和匹配组件114,如上所述,以用于接收诸如文本查询等查询。在一些实现中,用户界面组件110可以提供本文描述的用户界面来作为客户机计算设备1304能够通过浏览器1308查看并与其进行交互的网页。
[0149] 另外,可以提供具有索引组件104的一个或多个索引计算设备1310。在一些实现中,索引计算设备1310可以是与服务器计算设备1302相同的计算设备;然而,在其他实现中,索引计算设备1310可以是对因特网上可获得的图像进行索引的离线web爬行搜索设施的一部分。因此,在一些实现中,图像102被存储在因特网上的多个网站中。在其他实现中,图像106被存储在可由服务器计算设备1302和/或索引计算设备1310访问的数据库中。如上所述,索引组件104为图像102生成一个或多个索引1312,诸如用于对图像102进行查询搜索以用于图像区域填充的图像索引106。
[0150] 此外,尽管在图13中示出了示例系统体系结构,但也可使用其他合适的体系结构,并且本文的实现不限于任何特定体系结构。例如,在一些实现中,索引组件104可以位于服务器计算设备1302上,并且可以消除索引计算设备1310。其他变化鉴于本发明将对于本领域的技术人员显而易见。
[0151] 示例服务器计算设备
[0152] 图14示出根据本文的一些实现的用于服务器计算设备1302和/或索引计算设备1310的合适的计算系统环境的示例配置。因此,尽管示出了服务器计算设备1302,但索引计算设备1310也可类似地配置。服务器计算设备1302可包括至少一个处理器1302、存储器1304、通信接口1406、和输入/输出接口1408。
[0153] 处理器1402可以是单个处理单元或多个处理单元,它们都可包括单个或多个计算单元或多个核。处理器1402可被实现为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。处理器1402可被配置成取出并执行存储在存储器1404、大容量存储设备1412或其他计算机可读存储介质中的计算机可读指令或处理器可访问指令,以及其他能力。
[0154] 存储器1404是用于存储由处理器1402执行以执行上述各种功能的指令的计算机可读存储介质的示例。例如,存储器1404一般可以包括易失性存储器和非易失性存储器两者(例如RAM、ROM等)。此外,存储器1404还可包括大容量存储设备,如硬盘驱动器;固态驱动器;包括外置和可移动驱动器、存储卡、闪存、软盘、光盘(例如,CD、DVD)、存储阵列、存储区域网、网络附连存储在内的可移动介质等等,或其任何组合。存储器1404能够存储计算机可读、处理器可执行程序指令,作为可在处理器1402上执行来作为被配置成实现此处的实现所描述的操作和功能的特定机器的计算机程序代码。
[0155] 存储器1404可包括程序模块1410和大容量存储设备1412。程序模块1410可包括查询搜索引擎108和其他模块1414,如操作系统、驱动程序等。如上所述,查询搜索引擎108可包括用户界面组件110和匹配组件114,这些组件可在处理器1402上执行以实现本文描述的功能。在一些实现中,存储器1404还可包括用于执行本文的索引功能的索引组件
104,但在其他实现中,索引组件104是在单独的索引计算设备上执行的。另外,大容量存储设备1412可包括索引1312。大容量存储设备1412还可包括用于服务器操作的其他数据
1416,如用于提供搜索网站的数据等。
[0156] 如上所述,服务器计算设备1402还可包括用于诸如经由网络、直接连接等来与其他设备交换数据的一个或多个通信接口1406。通信接口1806可便于各种各样网络和协议类型内的通信,包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)、因特网等等。
[0157] 示例客户机计算设备
[0158] 图15示出了根据本文的一些实现的客户机计算设备1304的合适计算系统环境的示例配置。客户机计算设备1304可包括至少一个处理器1502、存储器1504、通信接口1506、显示设备1508、其他输入/输出(I/O)设备1510、以及一个或多个大容量存储设备1512,其所有都能够通过系统总线1514或其他合适的连接来进行通信。
[0159] 处理器1502可以是单个处理单元或多个处理单元,所有这些都可包括单个或多个计算单元或多个核。处理器1502可被实现为一个或多个微处理器、微型计算机、微控制器数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操纵信号的任何设备。处理器1502可被配置成取出并执行存储在存储器1504、大容量存储设备1512或其他计算机可读存储介质中的计算机可读指令或处理器可访问指令,以及其他能力。
[0160] 存储器1504和大容量存储设备1512是用于存储由处理器1502执行以执行上述各种功能的指令的计算机可读存储介质的示例。例如,存储器1504一般可以包括易失性存储器和非易失性存储器两者(例如RAM、ROM等)。此外,大容量存储介质1512一般可包括硬盘驱动器;固态驱动器;包括外置和可移动驱动器、存储卡、闪存、软盘、光盘(例如,CD、DVD)、存储阵列、存储区域网、网络附连存储在内的可移动介质等等,或其任何组合。存储器1504和大容量存储设备1512此处可被统称为存储器或计算机可读存储介质。存储器1504能够存储计算机可读、处理器可执行程序指令,作为可在处理器1502上执行来作为被配置成实现此处的实现所描述的操作和功能的特定机器的计算机程序代码。存储器1504可包括使用所描述的用于基于区域的图像操纵的技术和方法从中选择并操纵一个或多个图像的图像1516。例如,图像106可以通过经由显示设备1508提供的用户界面1518来操纵。
另外,I/O设备1510向用户提供如上所述的选择、取消选择以及操纵图像106的各区域和对象的能力。此外,存储器1504还可包括在区域图像操纵时使用的算法1520。
[0161] 如上所述,客户机计算设备1304还可包括用于诸如经由网络、直接连接等来与其他设备交换数据的一个或多个通信接口1506。通信接口1506可便于各种各样网络和协议类型内的通信,包括有线网络(例如,LAN、电缆等)和无线网络(例如,WLAN、蜂窝、卫星等)、因特网等等。
[0162] 在一些实现中,可以包括诸如监视器、显示器、或触摸屏等用于向用户显示用户界面1518和/或图像的显示设备1508。I/O设备1510可包括从用户接收各种输入并向用户提供各种输出的设备,诸如键盘、遥控器、鼠标、照相机、音频设备等等。在其中显示设备1508是触摸屏的情况下,显示设备1508可以担当用于提交查询的输入设备以及用于显示结果的输出设备。
[0163] 此处所描述的示例环境、系统和计算设备只是适用于某些实现的示例,而非旨在对可以实现此处所描述的过程、组件和特征的环境、体系结构和框架的使用范围或功能提出任何限制。因此,此处的实现可用于众多环境或应用,并且可以在通用或专用计算系统或具有处理能力的其他设备中实现。
[0164] 另外,可以在许多不同的环境和情形中采用此处的组件、框架和过程。一般而言,参考附图描述的任何功能都可使用软件、硬件(例如,固定逻辑电路)或这些实现的组合来实现。本文所使用的术语“引擎”、“机制”、或“组件”一般表示可被配置成实现规定功能的软件、硬件或软件和硬件的组合。例如,在软件实现的情况下,术语“引擎”、“机制”、或“组件”可表示当在一个或多个处理设备(例如,CPU或处理器)上执行时执行指定任务或操作的程序代码(和/或声明型指令)。程序代码可被储存在一个或多个计算机可读存储器设备或其他计算机可读存储设备或介质中。因此,此处所描述的过程、组件和模块可由计算机程序产品来实现。
[0165] 虽然算法1520或其各部分在图15中被示为存储在计算设备1304的存储器1504中,但算法1520或其各部分可以使用可由客户机计算设备1304访问的任何形式的计算机可读介质来实现。计算机可读介质可以包括例如计算机存储介质和通信介质。计算机存储介质被配置成将数据存储在非瞬态有形介质上,而通信介质则不然。
[0166] “计算机存储介质”包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或者可用于存储信息以供计算设备访问的任何其他介质。
[0167] 相反,通信介质通常用诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。
[0168] 此外,本发明提供了如在附图中描述和示出的各种示例实现。然而,本发明不限于此处所描述并示出的实现,而可扩展到其他实现,如本领域技术人员已知或将变得已知的。说明书中对“一个实现”、“该实现”、“这些实现”或“一些实现”的引用意味着所述特定特征、结构或特性被包括在至少一个实现中,并且这些短语在说明书各处的出现不一定都指代同一实现。
[0169] 示例搜索过程
[0170] 图16描绘了根据本文的一些实现的基于区域的图像操纵过程的示例的流程图。在该流程图中,操作被概括成单独的框。操作可以用硬件或作为可由一个或多个处理器执行的处理器可执行指令(软件或固件)来执行。此外,过程1600可以,但不必使用图13的系统和上述过程来实现。
[0171] 在框1602,选择并打开要操纵的图像。该图像可以从多个源之一中选择,这些源包括本地存储器、因特网、网络数据库等。该图像可以使用诸如浏览器或编辑工具等各种应用程序来打开。可以提供一界面来打开该图像。
[0172] 在框1602,选择特定图像区域。用户可以在特定区域上画出几个笔画,包括感兴趣的对象的区域和指示背景的区域等。这些笔画可以通过颜色或阴影来进行区分。如上所述,可以使用诸如扩充树结构等算法来表示和描绘所选图像区域。可以对这些区域的边界执行细化。另外,可以执行这些区域的空穴填充。
[0173] 如果用户希望执行对图像和内容的诸如文本查询等查询以填充图像的某一区域,则沿着框1606的“是”分支,在框1608,可以执行查询提交。对于文本查询,用户可以键入指示要用于填充的所需图像或内容的词语。相关图像和内容可来自各种源,包括数据库和因特网。可以就对图像的纹理和其他质量的适用性来过滤所返回的相关图像。
[0174] 如果用户不希望进行查询提交,则沿着框1606的“否”分支,以及在框1608之后,在框1610,执行图像变换。图像变换可包括选择感兴趣区域(并且尤其是该图像的特定对象)并对其加边界。图像变换过程可包括在图像内移动对象的图像区域平移、放大该图像区域或对象的图像区域放大(在某些情况下,缩小该图像区域或对象)、旋转该图像区域或对象的图像区域旋转、以及移除该图像区域或对象的删除。另外,可以对最终或合成图像执行重新着色。
[0175] 在框1612,可将最终或合成图像呈现给用户和/或保存。所保存的合成图像可被动态地添加到数据库,并被提供一标签,如文本标签。
[0176] 因此,本文的实现提供使用最小用户干预和输入的基于区域的图像操纵。本文的基于区域的图像操纵系统使用户能够用几个笔画来选择区域,并使用某些动作来操纵这些区域。此外,本文的实现提供空穴填充和对用于填充图像区域的图像和内容的搜索。对不同图像操纵的试验结果示出了所提出的框架的有效性和效率。
[0177] 结论
[0178] 本文的实现提供使用最小用户干预的基于区域的图像操纵框架。此外,一些实现填充特定所选区域,包括对内容和图像的查询搜索,如文本查询搜索。另外,一些实现允许细化图像。
[0179] 尽管用结构特征和/或方法动作专用的语言描述了本主题,但所附权利要求书中定义的主题不限于上述具体特征或动作。相反,上文所描述的具体特征和动作是作为实现权利要求的示例形式来公开的。本发明旨在覆盖所公开的实现的任一和所有改编或变型,并且所附权利要求书不应被解释为限于说明书中所公开的具体实现。相反,本文的范围完全由所附权利要求书以及这些权利要求所授权的等效技术方案的完整范围来确定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈