CN111986291A - 用于内容感知填充的内容感知采样区域的自动合成 - Google Patents
用于内容感知填充的内容感知采样区域的自动合成 Download PDFInfo
- Publication number
- CN111986291A CN111986291A CN202010108650.3A CN202010108650A CN111986291A CN 111986291 A CN111986291 A CN 111986291A CN 202010108650 A CN202010108650 A CN 202010108650A CN 111986291 A CN111986291 A CN 111986291A
- Authority
- CN
- China
- Prior art keywords
- pixels
- region
- context
- area
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 97
- 239000000203 mixture Substances 0.000 title abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 66
- 230000011218 segmentation Effects 0.000 claims abstract description 61
- 238000003860 storage Methods 0.000 claims abstract description 20
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 7
- 239000003086 colorant Substances 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 4
- 238000013138 pruning Methods 0.000 claims 2
- 230000008685 targeting Effects 0.000 claims 2
- 238000004590 computer program Methods 0.000 claims 1
- 238000003786 synthesis reaction Methods 0.000 description 40
- 230000015572 biosynthetic process Effects 0.000 description 39
- 238000005192 partition Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 21
- 238000012545 processing Methods 0.000 description 20
- 230000009466 transformation Effects 0.000 description 15
- 239000002131 composite material Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 5
- 230000000877 morphologic effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000002146 bilateral effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 235000013351 cheese Nutrition 0.000 description 1
- 238000013329 compounding Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000035876 healing Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
- G06T2207/20104—Interactive definition of region of interest [ROI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20156—Automatic seed setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本公开的实施例涉及用于内容感知填充的内容感知采样区域的自动合成。本发明的实施例提供了用于自动合成针对诸如内容感知填充的孔洞填充算法的内容感知采样区域的系统、方法和计算机存储介质。给定源图像和孔洞(或其他要填充的目标区域),采样区域可以通过标识围绕孔洞的像素的带而被合成,基于一个或多个特性(例如颜色、x/y坐标、深度、焦点等)聚类这些像素,将每个所得到的集群作为前景像素传递给分割算法,然后合并所得到的像素以形成采样区域。采样区域可以被存储在约束掩码中,并传递到诸如内容感知填充之类的孔洞填充算法,以根据从合成的采样区域采样的补丁合成针对孔洞(或其他目标区域)的填充。
Description
技术领域
本公开的实施例涉及图像处理,并且更具体地涉及用于内容感知填充的图像处理。
背景技术
在编辑图像时,用户可能希望从图像中移除不想要的对象。例如,照片可以包括不想要的主题、视觉伪影诸如由于损坏或数字效果而得到的视觉伪影等。然而,简单地删除不想要的区域会在图像中留下孔洞。一些数字图像处理工具可以用从图像的其他区域采样的已转换的补丁来自动填充孔洞。例如,一些工具使用随机算法来标识图像补丁之间的近似最近邻匹配。这样,一些工具可以根据已转换的图像补丁构建复合填充。以这种方式,用户可以自动填充图像的缺失部分。然而,通常在许多情况下,常规技术会以错误的图像内容填充孔洞,从而产生尴尬且不自然的结果。
发明内容
本发明的实施例涉及用于自动合成针对诸如内容感知填充之类的孔洞填充算法的内容感知采样区域的技术,或者用于扩展图像的指定区域,诸如描画图像中对象的轮廓的用户标识区域。给定源图像和孔洞(或要填充的其他目标区域),采样区域可以通过以下方式来被合成:标识孔洞周围的像素带,基于一个或多个特性(例如,颜色、x/y坐标、深度、焦点等)聚类这些像素,将每个所得到的集群作为前景像素传递到分割算法,然后合并所得到的像素以形成采样区域。采样区域可以被存储在约束掩码中,并被提供给诸如内容感知填充之类的孔洞填充算法,以根据从合成的采样区域采样的补丁来合成针对孔洞(或其他目标区域)的填充。
这样,使用本文所述的实现,用户可以高效地并且有效地合成内容感知填充。
附图说明
下面参考附图详细描述本发明,其中:
图1是根据本发明的实施例的用于自动合成针对内容感知填充的内容感知采样区域的示例计算系统的框图;
图2图示出了根据本发明的实施例的围绕孔洞的初始上下文像素的带的聚类像素的示例;
图3图示出了根据本发明的实施例的围绕孔洞的带的经聚类的像素的示例;
图4是根据本发明的实施例的面积调整后的前景区域和填补(padding)的示例;
图5是根据本发明的实施例的示例采样区域合成流水线;
图6图示出了根据本发明的实施例的示例源图像和从常规采样区域和合成的内容感知采样区域得到的内容感知填充的比较;
图7是根据本发明的各种实施例的用于形成图像的采样区域的方法的流程图;
图8是根据本发明的各种实施例的示出用于形成图像的采样区域的另一种方法的流程图。
图9是根据本发明的实施例的用于自动合成内容感知填充的示例计算系统的框图;
图10图示出了根据本发明的实施例的示例内容感知填充工作空间;以及
图11是适合用于实现本发明的实施例的示例性计算环境的框图。
具体实施方式
综述
通常在照片编辑期间,用户希望从图像中移除不想要的对象。一种实现此目的的常规工具是内容感知填充(“CAF”)工具。通常,CAF工具可以允许用户选择、突出显示、绘制或以其他方式指示图像的不想要的区域。常规内容感知填充技术移除不想要的区域,并且使用来自图像的其他部分的样本自动填充所得到的孔洞。CAF算法试图通过重新布置和拼接(用重叠)来自源图像(例如,采样区域)的像素的小方形补丁来近似地重构目标图像(例如,孔洞)。CAF试图从采样区域为目标图像的每个补丁(即要填充的孔洞)标识近似匹配补丁(即最近邻)。源图像中的候选补丁以迭代方式被选择、测试和精炼。所得到的重建可以以此方式填充孔洞,使其看起来像不想要的对象从未在那里出现。
然而,常规内容感知填充工具有各种缺陷。例如,在很多情况下,孔洞被错误的图像内容填充了,从而产生尴尬且不自然的结果。例如,填充中的合成的纹理、线条或颜色可能不一致、分离或模糊。此外,孔洞的一些部分通常不正确地被显然不属于其的内容填充,从而产生了不合理的不期望的填充。这样,存在对改进内容感知填充的技术的需要。
相应地,本发明的实施例涉及用于自动合成针对诸如内容感知填充的孔洞填充算法的内容感知采样区域的技术。给定源图像和孔洞(或其他要填充的目标区域,无论是用户选择的、自动标识的还是其他方式),采样区域可以通过以下方式而被合成:标识围绕孔洞的像素的带,基于一个或多个特性(例如颜色、x/y坐标、深度、焦点等)聚类这些像素,将每个所得到的集群作为前景像素提供给分割算法,以及合并所得到的像素以形成采样区域。从采样区域基于对源图像的内容(例如,像素、像素特性等)的分析被合成的意义上来说,该采样区域是内容感知的。采样区域可以被存储在约束掩码中,并且被传递到诸如内容感知填充之类的孔洞填充算法,以根据从合成的采样区域采样的补丁合成针对孔洞(或其他目标区域)的填充。
在一些实施例中,围绕孔洞(或其他目标区域)的带可以被标识为初始上下文区域以便于合成采样区域。通常,围绕孔洞的像素可能具有可以被用来填充孔洞的特性。这些区域倾向于包含在色度上相似于孔洞的上下文的内容。通过将采样区域限制为在色度上与孔洞中的内容(即孔洞的上下文)相似的内容,补丁合成算法具有更好的机会对在语义上相似于与孔洞重叠的成像对象的区域进行采样。在一些实施例中,带可以被标识为围绕孔洞的像素的宽度。带的宽度可以是预定的、用户选择的等。在一些实施例中,一种或多种形态操作可以(例如,对孔)被应用以生成带。围绕孔洞的所得到的像素的带可以被用作针对孔洞的初始上下文(例如,初始上下文像素的带)。
在一些实施例中,聚类可以被应用于初始上下文像素的带。在许多情况下,孔洞会与包含多种色度特性的图像区域重叠。例如,来自室外场景的所选择的孔洞可能包括带中的一些上下文像素,其包含天空以及包含大地色调的其他上下文像素。在这种情况下,在带上应用前景分割算法可能倾向于沿着上下文带使用具有多数表示的颜色而不是具有少数表示的颜色。例如,前景分割算法可能趋向于返回仅表示或大部分表示沿着带的大多数颜色的面积。为了补偿这种潜在的表示性不足,在应用前景分割之前,聚类可以被应用于初始上下文像素的带,以对初始上下文中的相似像素进行分组。任何类型的聚类可以被应用,诸如k均值聚类、均值漂移聚类、频谱聚类、聚合聚类和/或其他聚类。在一些实施例中,聚类可以基于任何数目的图像特性和图像特性的任何组合和/或相关信息(例如,颜色、x/y坐标、深度、焦点、频率、语义掩码等)而被执行。例如,聚类可以在多个维度上(例如,在RBG空间和图像空间中的五维聚类)被执行。指定数目的集群可以被标识(例如,预定的、用户选择的等),集群可以被合并以达到指定数目,并且不与孔洞接界的集群可以被修剪。在一些实施例中,在聚类上下文像素的带之前,模糊可以被应用于源图像和/或初始上下文,以便于更可能是连续的聚类算法输出区域。任何类型的模糊可以被应用,诸如高斯模糊、双边模糊、平均过滤等。
为了标识与带中的上下文像素在色度上相似的源图像的区域,对于来自该带的上下文像素的每个集群,使用上下文像素作为示例前景像素的种子,前景分割可以被应用以标识源图像的前景和背景像素。因此,与孔洞接界的像素可以作为前景像素的种子被传递到前景分割算法,并且前景分割算法可以输出指示源图像的哪些像素属于前景并且哪些像素属于背景的前景图像掩码。所得到的前景像素可以被用来表示源图像的与上下文像素的带内的像素相似的区域。前景分割算法可以对于上下文像素的带中的像素的每个集群分别运行,将给定集群中的像素视为针对给定迭代的前景像素。有效地,前景分割用于向外扩展上下文像素的集群以捕获源图像中的其他相似像素。扩展相关上下文可以通过增加潜在有效补丁的数目并降低合成具有明显重复的填充的风险,来辅助孔洞填充算法。
通常,使用上下文像素的集群作为前景分割的种子表示对现有技术的改进。作为预备事项,孔洞填充技术的设计者经常在全局操作(例如,在整个上下文区域上发生的操作)和局部操作(例如,将上下文区域分解为分别处理的不同区域)之间进行选择。在这种场景中,全局地(例如,在整个上下文区域上)运行前景分割算法可以被视为能够限制准确性的钝技术,而在本地(例如,在不同上下文区域上)运行前景分割算法可以被认为过于昂贵。然而,通过一些全局特性将上下文像素聚类为有限数目的集群,使得在每个集群上相对昂贵的前景分割算法能够操作,从而合成了全局和局部技术的益处。
在一些实施例中,前景分割算法可以输出彼此不成比例的上下文区域的集群。使用具有不成比例集群的采样区域的孔洞填充算法可以通过包括较大集群的不成比例表示来偏向于较大集群而不是较小集群。这种不成比例表示可以通过放大表示的差异来影响使用均匀采样的孔洞填充过程。然后,表示性不足的集群可以具有与从表示性良好和/或表示性过高的集群中检索到的区域更高的匹配机会,这可以导致不合理的解决方案。
这样,在一些实施例中,包含上下文像素的集群的图像的面积可以按比例被调整。例如,上下文像素的集群的指定的特性可以被标识(例如,比较从分割算法输出的前景像素的扩展的面积与输入到分割算法的前景像素的初始面积的扩展比率,比较周长、初始面积和扩展面积的一些其他方面的比率等)。针对集群所标识的特性可以被用作目标特性,以用于针对上下文像素的其他集群重新运行前景分割算法。在一些实施例中,最大(或最小、中值、平均值等)扩展比率可以被用作目标比率。为了调整上下文像素的扩展的集群的大小,可以使用减少相似性标准的调整使上下文像素的对应初始面积可以通过分割算法来重新运行,从而标识更多相邻像素(反之亦然)。例如,相似性标准可以包括影响用于标识相邻像素的权重的平滑度项(例如,GraphCut中的相邻域项)。前景分割算法可以被重新运行一次或多次,以每次迭代更新相似性标准。一旦在相似性的公差或阈值等内达到目标特性,该过程可以继续进行指定数目的迭代。这样,上下文像素的集群可以具有基本上彼此成比例的面积。
通常,在上下文像素的原始带的大小与需要增加由前景分割算法生成的扩展的上下文区域的集群的大小之间存在折衷。在使用相对较小带的实施例中,一些初始集群可能没有足够的数据来向前景分割算法提供足够的上下文,以标识源区域中相似上下文像素的有意义的集群。另一方面,带越大,前景分割算法标识源区域中所有或大部分相似上下文像素的可能性就越大。带的大小可以进一步被限制,因为过大的带大小可以占用前景分割算法、聚类算法和/或以其他方式导致延迟。这样,一些实施例可以实现使带大小与以下中的一项或多项平衡的设计:扩大由前景分割算法生成的上下文区域的集群的大小、前景分割算法的多次迭代、对应的容差或相似性的阈值等。
所得到的上下文像素的集群可以被合并在一起以形成采样区域。例如,所合并的区域可以被用来形成单通道二进制掩码,该单通道二进制掩码可以用于指示哪些像素有效地用于孔洞填充算法中。在一些实施例中,采样区域可以被处理以移除能够负面影响孔洞填充算法的小孔洞和斑点。例如,在一些孔洞填充算法中,任何碰到孔洞的补丁都是无效的,因此包含许多小孔洞(例如,相似于瑞士奶酪)的采样区域可以减少可以从采样区域中被生成的潜在有效补丁的数目。此外,出现在采样区域外部的斑点可以导致孔洞填充期间浪费的计算。这样,采样区域可以以多种方式被处理,诸如通过执行一个或多个形态操作、中值过滤、填充小孔洞和/或移除斑点的一些其他过程、其一些组合等。在一些实施例中,关闭操作可以被执行以关闭采样区域中的小孔洞,并且打开操作可以被执行以移除斑点。关闭操作可以首先被执行,因为小孔洞在孔洞填充时通常更有害。这些和其他变型可以在本公开的范围内被实现。
在一些实施例中,所得到的采样区域可以在孔洞(或其他目标区域)周围被像素的带填补。例如,合成的采样区域可能不包括与孔洞接界的所有像素。此外,在一些实施例中,不接触孔洞但仍然包含接近孔洞的像素的集群可以被修剪。然而,在许多情况下,要采样的最重要的像素是最靠近孔洞的像素。因此,围绕孔洞的像素的填补带可以被添加到采样区域。填补带可以被标识为围绕孔洞的像素的宽度。填补带的宽度可以是预定的、用户选择的等。
所得到的采样区域(例如,二进制掩码)可以被存储在约束掩码中或以其他方式与约束掩码相关联,并且可以被传递给诸如内容感知填充之类的孔洞填充算法,以根据从合成的采样区域采样的补丁合成针对孔洞(或其他目标区域)的填充。这样,使用本文描述的实现,内容感知填充可以从内容感知采样区域高效地并且有效地被合成。尽管关于孔洞填充算法描述了实施例,但是本文描述的技术可以在对图像的一些区域进行采样以填充另一区域(例如,斑点修复)的任何算法或者其他算法中被实现。
此外,本文所描述的技术可以被实现为扩展图像的指定区域。例如,从图像标识对象(例如,描画对象的轮廓的用户选择区域,使用对象检测的自动检测的区域等)可以指定切断对象的部分的边界。这样,本文描述的技术可以被应用以扩展图像的指定区域,诸如图像中对象的区域,以便捕获可能已经无意中被省略的相似内容。后一个应用可以被用来提高缺陷选择和对象标识的准确性。
已经简要描述了本发明的方面的综述,贯穿本说明书使用的各种术语被提供。尽管在整个说明书中有关各种术语的更多详细信息被提供,但以下一些术语的一般说明也包含在内,以使得对此处公开的观念有更清晰的理解:
补丁合成——一些数字图像处理工具可以根据从图像的其他区域采样的补丁来自动合成目标图像。通常,补丁合成是指根据从源图像采样的补丁的对目标图像的该重建。在孔洞填充的上下文中,要被合成的目标图像可以是图像中的孔洞,并且源图像(或采样区域)可以是图像的其余部分或其一些部分。一种特定的补丁合成技术使用随机算法来标识图像补丁之间的近似最近邻匹配,并从已标识的图像补丁构建复合填充。这种用于标识近似最近邻匹配的技术也称为补丁匹配,并且所得到的合成填充也称为内容感知填充。
孔洞——有时,照片或其他图像包括一些不想要的对象,诸如不想要的主题、视觉伪影诸如由于损坏或数字效果得到的视觉伪影,等等。然而,简单地删除不想要的区域将在图像中留下孔洞。如本文所使用的,“孔洞”可以指代要被填充的图像的区域,而无论该区域是否实际上已被删除。相似地,“孔洞”可以指代诸如约束掩码的掩码中对应的无效采样区域。
掩码——如本文所使用的,掩码是一种或多种数据结构,其标识和/或指定用于特定用途的某些像素。例如,掩码可以用与将要被编辑的原始图像的相同尺寸来初始化。掩码可以标识要被填充的孔洞中的像素,有效采样区域中的像素、缩小区域中的像素、边缘中的像素等。在一个示例中,用户选择可以被用于生成指定图像中的有效采样区域的约束掩码。在一种实现中,约束掩码可以为每个像素编码状态,诸如有效采样区域中的像素(例如,使用任意数字诸如1、像素的值等)、无效采样区域中的像素(例如0)、孔洞中的像素、用户指定的约束中的像素等。本领域普通技术人员将理解其他变型。
扩展——如本文所用,扩展意味着造成覆盖更大的面积。例如,通过使用初始上下文区域作为前景分割算法的种子,可以将初始上下文区域被扩展以覆盖更大的面积。在该示例中,初始上下文区域可以被扩展以覆盖更大的面积,无论该更大面积是否与初始上下文区域相邻或以其他方式相连。
相似性变换——通常,相似性变换是一种保形变换,其可以包括一个或多个平移、旋转、缩放和/或反射(即镜像)。
示例采样区域合成环境
现在参考图1,适用于实现本发明的实施例的示例环境100的框图被示出。通常,环境100适合于图像编辑,并且除其他事项外,其有助于自动合成用于内容感知填充的内容感知采样区域。环境100包括用户设备110,该用户设备110具有带有用户界面125的照片编辑应用120、采样区域合成流水线130和内容感知填充引擎190。用户设备110可以是能够便于图像编辑的任何种类的计算设备。例如,在一个实施例中,用户设备110可以是诸如计算设备1100之类的计算设备,如下面参考图11所描述的。在实施例中,用户设备110可以是个人计算机(PC)、膝上型计算机、工作站、移动计算设备、PDA、蜂窝电话等。在图1所示的实施例中,用户界面125、采样区域合成流水线130和内容感知填充引擎190彼此通信。
在图1所示的实施例中,用户设备110包括用户界面125、采样区域合成流水线130和内容感知填充引擎190。这些组件中的任何一个或全部都可以被合并或被集成到应用或应用的附件或插件中,诸如照片编辑应用120。照片编辑应用120通常可以是能够便于照片或图像编辑的任何应用。应用120可以是独立应用、移动应用、web应用等。在一些实现中,(多个)应用包括web应用,其可以在web浏览器中运行,并且可以至少部分地被托管在服务器端。另外,或可替代地,(多个)应用可以包括专用应用。在一些情况下,应用可以被集成到操作系统中(例如,作为服务)。一个可以被用于照片编辑的示例应用是它是一种图形编辑应用。尽管此处通常将用户界面125、采样区域合成流水线130和内容感知填充引擎190讨论为驻留在用户设备110上,但是在一些情况下,可以将这些组件中的任何一个或全部或它们的一些部分附加地或备选地集成到操作系统(例如,作为服务)或服务器(例如,远程服务器)中。这些组件和其他组件可以经由网络彼此通信,该网络可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这种网络环境在办公室、企业范围的计算机网络、内部网和因特网中很常见。
通常,源图像和要填充的图像的目标区域(例如,孔洞)可以被标识、提供或以其他方式访问。例如,用户界面125可以允许用户指定源图像和/或目标区域。用户界面125可以使用任何合适的交互元素来实现。在一些实施例中,用户界面125可以对应于图9的用户界面930和/或图10的内容感知填充工作空间1000。在另一个示例中,源图像可以被自动分析以检测图像中的干扰物、异常、损坏或其他缺陷,并且所检测的区域可以被标记为孔洞。采样区域合成流水线130可以基于源图像和源图像的目标区域来自动合成内容感知采样区域。内容感知填充引擎190可以通过从内容感知采样区域采样来自动合成针对目标区域的内容感知填充。内容感知填充引擎190可以使用任何适当的孔洞填充算法来实现。在一些实施例中,内容感知填充引擎190可以对应于图9的内容感知填充引擎960。
尽管实施例被描述为合成采样区域,从该采样区域补丁可以被采样以用于孔洞填充算法,但是在一些实施例中,合成流水线130(或其一些部分)可以被用来标识针对图像的一些任意区域的扩展的区域。例如,图像的已标识的区域(例如,用户选择的区域诸如图像中的对象的区域、自动被检测的区域诸如使用对象检测标识的区域等)可以具有一个或多个边界,这些边界切断相似的周围内容(例如,已标识的对象的部分)。这样,合成流水线130可以被应用以扩展图像的指定区域,诸如图像中对象的已标识的区域,以便捕获已标识的区域之外的相似内容(例如,可能已从指定的区域中被不经意地省略了的内容)。因此,尽管一些实施例集中于用于填充目标区域的采样区域的生成,但是一些实施例可以生成可以与指定区域分组的扩展区域,从而扩展指定区域以包括被省略的相似内容。通过扩展对象的区域以包括对象的已切除面积,该技术可以被用来提高缺陷选择和对象标识的准确性。这些和其他变型在本公开内被预期。
在一个高级别上,给定源图像和要填充的源图像的目标区域(例如孔洞),采样区域合成流水线130可以通过标识目标区域周围的像素的带来自动合成采样区域,基于一些特性(例如颜色、x/y坐标、深度、焦点等)来聚类这些像素,将每个所得到的集群作为前景像素传递给分割算法,并且合并所得到的像素以形成采样区域。在图1所示的实施例中,采样区域合成流水线130包括下采样器135、带选择器140、模糊组件145、聚类组件150、分割组件155、合并组件165、清理组件170、填补组件175和上采样器180。该配置旨在作为示例,并且在本公开的范围内具有相似或不同功能的其他配置可以被实现。
在图1中,采样区域合成流水线130包括下采样器135和上采样器180。许多分割算法在计算上比较昂贵,和/或在处理相对较大的图像时能够导致延迟。这样,在一些实施例中,下采样器135可以对源图像和目标区域(例如,标识目标区域的掩码)进行下采样,以改进分割算法的性能(其可以由分割组件155实现)。通过非限制性示例,下采样器135可以下采样到特定维度上的指定数目的像素(例如400个像素)。采样区域合成流水线130可以以经下采样的分辨率合成采样区域,并且上采样器180可以应用上采样以匹配原始源图像的分辨率。匹配合成的采样区域的分辨率与源图像可以便于查看和/或修改采样区域,如下面关于图9和图10更详细地讨论的。
带选择器140可以访问源图像和源区域的目标区域(例如,下采样的源图像和目标区域),并将围绕目标区域的像素的带标识为初始上下文区域以便于合成采样区域。在一些实施例中,带可以被标识为围绕孔洞的像素的宽度。带的宽度可以是预定的、用户选择的等。附加地或备选地,一种或多种形态操作可以被应用(例如,对孔洞)以到达带。围绕孔洞的像素的所得到的带可以被用作孔洞的初始上下文。
在一些实施例中,模糊组件145可以将模糊应用于源图像(例如,下采样的源图像)和/或初始上下文,以便于通过聚类组件150聚类。以表面具有许多细脊的图像为例。尽管对于人眼来说,表面可以呈现为单一颜色,但是放大图像可以显示亮度和/或像素颜色的明显变化。聚类该表面的图像的小区域可以产生高频效果,诸如条纹。这样,模糊组件145可以将模糊应用于源图像和/或初始上下文,以便于更可能是连续的集群的生成。任何类型的模糊可以被应用,诸如高斯模糊、双边模糊、平均过滤等。
聚类组件150可以将聚类应用于初始上下文像素的带,以在初始上下文中生成相似像素的不同集群。任何类型的聚类可以被应用,诸如k均值聚类、均值漂移聚类、频谱聚类、聚合聚类和/或其他聚类。在一些实施例中,聚类组件150可以基于图像特性和/或相关信息(例如,颜色、x/y坐标、深度、焦点、频率、语义掩码等)的任何数目和任何组合来聚类。例如,聚类可以在多个维度上被执行(例如,在RBG空间和图像坐标中的五维聚类)。通常,在聚类维度中包括图像坐标(例如,x/y)鼓励了集群连续性。在一些实施例中,可以指定一个或多个可调参数(例如,预定的、用户选择的等),诸如指定数目的集群、集群紧密度,带宽等。应用阈值集群大小或最大集群数可以提高速度和性能。例如,如果集群太小,则后续的分割可能不会产生有用的结果。此外,对集群的数量限制可以减少由分割组件155执行的分割操作的数目。这样,在输出集群的数目超过指定集群的数目的实施例中,可以将靠在一起的集群(例如,质心相距最短的欧几里得距离的相邻集群对)合并以达到指定数目的集群。不与目标接界的集群可能会被修剪,因此只有接触目标区域的集群才能留存。结果可以是具有基本相同颜色的上下文像素的集群。
图2图示出了根据本发明的实施例的聚类围绕孔洞的初始上下文像素的带的像素的示例。在图2中,初始上下文像素的带C围绕孔洞210。在此,C表示初始上下文像素的带中所有集群的合并。在图2所示的实施例中,均值漂移聚类230在五维空间(RBG空间的三维和图像坐标的二维)中被应用于C以分离出集群C1、C2和C3。这些集群在图2中的五维空间240和图像空间250中被图示出。如图所示,C1、C2和C3中的每个集群具有基本相同颜色的像素。图3图示出了根据本发明的实施例的围绕孔洞的带的经聚类的像素的另一示例。在图3中,围绕孔洞310的初始上下文像素的带已被分为三个集群320、330和340。在修剪与孔洞310不接界的集群的实施例中,集群330和340可以从上下文像素的带中被修剪。从上下文中修剪此类集群可以通过从采样区域中省略可能与目标区域的边界在色度上不同的像素的集群,而便于更准确的填充。
现在回到图1,为了标识源图像的在色度上与带中的上下文像素的集群相似的区域,分割组件155可以基于上下文像素的每个集群而应用前景分割。更具体地,分割组件155可以访问(下采样的)源图像(其可以排除目标区域),并且对于上下文像素的每个集群,使用上下文像素作为示例前景像素来分割源图像的前景像素和背景像素。任何已知的前景分割算法可以被使用。在一些实施例中,可以将与目标区域接界的上下文像素作为前景像素的种子传递给分割组件155,并且分割组件155可以输出前景图像掩码,该前景图像掩码指示源图像的哪些像素属于前景并且哪些像素属于背景。分割组件155可以分别运行上下文像素的带中的每个像素集群,从而将给定集群中的像素视为针对给定迭代的前景像素。这样,初始上下文像素的一些或全部集群可以被扩展到可能相似的源图像的其他区域。
在图1所示的实施例中,分割组件155包括面积调整组件160。面积调整组件160可以调整上下文像素集群的面积以成比例。例如,面积调整组件160可以标识上下文像素的集群的指定的特性(例如,将从分割算法输出的前景像素的扩展的面积与输入到分割算法中的前景像素的初始面积进行比较的扩展比率、比较周长、初始面积和扩展的面积的一些其他部分等的比率)。面积调整组件160可以使用集群的已标识的特性作为目标特性,以用于对上下文像素的其他集群重新运行前景分割算法,以便为所有集群返回更少或更多的面积用于公平表示。在一些实施例中,最大(或最小、中值、平均值等)扩展比率可以被用作目标比率。
图4是根据本发明的实施例的面积调整后的前景区域的示例。图4图示出了示例孔洞405和初始上下文区域410a、410b和410c。基于这些初始上下文区域应用前景分割可以产生不同大小的扩展的上下文区域。例如,基于初始上下文区域410a、410b和410c使用相同的相似性标准(在下面更详细地解释)运行前景分割可以生成扩展的上下文区域420a、415b1和415c1。应当理解,这些扩展的上下文区域具有不同的大小。为了调整这些区域的面积,目标扩展比率可以被确定。例如,扩展的上下文区域420a的面积与初始上下文区域410a的面积的比率可以被标识为目标扩展比率,因为它具有三个分割中最大的扩展比率(一个分割对应于每个初始上下文区域410a、410b、410c)。这样,其他两个分割(对应于初始上下文区域410b和410c)可以被重新运行以瞄准该扩展比率。
为了调整上下文像素的扩展的集群的大小,通过分割算法使用减少相似性标准的调整,上下文像素的对应初始面积可以被重新运行,从而标识更多相邻像素(反之亦然)。例如,相似性标准可以包括影响用于标识相邻像素的权重的平滑度项(例如,GraphCut中的相邻域项)。这样,图1的面积调整组件160可以一次或多次重新运行前景分割算法,以每次迭代更新相似性标准。一旦在相似性的公差或阈值等内达到目标特性,该过程可以继续进行指定次数的迭代。这样,上下文像素的集群可以具有基本上彼此成比例的面积。在图4所示的示例中,基于初始上下文区域410b的连续迭代可以生成扩展的上下文区域415b1、415b2和420b。基于初始上下文区域410c的连续迭代可以生成扩展的上下文区域415c1、415c2和420c。这样,在该示例中,与初始上下文区域410a、410b和410c相对应的最终上下文区域是扩展的上下文区域420a、420b和420c。
现在回到图1,合并组件165可以合并所得到的上下文面积以形成单个采样区域。例如,合并组件165可以形成单通道二进制掩码,其表示用于采样的有效和无效像素。在一些实施例中,清理组件170可以处理采样区域以移除小孔洞和/或斑点。清理组件170可以以任何多种方式来处理采样区域,诸如通过执行一个或多个形态操作、中值过滤、填充小孔洞(例如,具有指定的大小)和/或移除斑点(例如,具有指定的大小)的一些其他过程,其一些组合等。在一些实施例中,清理组件170可以应用关闭操作以关闭采样区域中的小孔洞,并且应用打开操作以移除斑点。这些和其他变型可以在本公开的范围内被实现。
在一些实施例中,填补组件175可以用围绕目标区域的像素的带来填补采样区域,以包括与可能已经被移除(例如,在前景分割期间)的与目标区域相邻的像素。填补组件175可以将填补带标识为围绕目标区域的像素的宽度。填补带的宽度可以是预定的、用户选择的等。图4图示出了根据本发明的实施例的示例填补。在图4中,扩展的上下文区域420a、420b和420c可以被合并在一起以形成采样区域。然而,此采样区域不包括与孔洞405接界的所有像素。这样,填补带430可以被添加到采样区域。这可以确保至少有一些有效的补丁与孔洞205接界。
现在回到图1,采样区域合成流水线130可以将合成的采样区域(例如,二进制掩码)存储在约束掩码中或以其他方式与约束掩码相关联,并且采样区域和/或对应的掩码可以被传递给内容感知填充引擎190,以根据从合成的采样区域采样的补丁合成针对目标区域的填充。
现在转到图5,图5图示出了根据本发明的实施例的示例采样区域合成流水线500。采样区域合成流水线500可以对应于图5的采样区域合成流水线130的实施例。在图5中,对图像510(其包括孔洞)进行下采样515以生成缩略图520。初始上下文像素带525从缩略图520被生成。在图5中,C表示初始上下文像素带525中的所有集群的合并。均值漂移聚类530被应用于初始上下文像素带525,以生成初始上下文像素的集群535。初始上下文像素的集群535中的每个集群通过前景分割算法540运行以生成扩展的上下文区域545。调整550扩展的上下文区域545以生成调整后的扩展的上下文区域555。调整后的扩展的上下文区域555被合并560以生成采样区域565,该采样区域565可以被存储在二进制掩码中,该二进制掩码指示用于采样的有效像素(在图5中以白色图示出)。通过执行形态操作以生成更连续的采样区域575,对采样区域565进行形态平滑570。平滑采样区域575被上采样580以输出与图像510的分辨率相匹配的最终合成的采样区域585。采样区域合成流水线500仅旨在作为示例,并且在本公开的范围内其他变型可以以相似或不同的功能性被实现。
图6图示出了根据本发明的实施例的示例源图像以及从常规采样区域和合成的内容感知采样区域得到的内容感知填充的比较。在图1中,源图像被图示为具有要被填充的对应孔洞(以条纹图案图示)。在常规孔洞填充算法中,孔洞可以从源图像中被移除,并且可以将剩余区域用作采样区域。如图6所示,所得到的常规合成的填充具有各种缺陷和误差。相比之下,使用本文所述的技术来合成内容感知采样区域,图6中所得到的合成的填充更加准确。
示例流程图
现在参考图7-图8,图示出用于本文描述的各种技术的方法的流程图被提供。方法700和800以及本文描述的任何其他方法的每个方框包括使用硬件、固件和/或软件的任何组合执行的计算过程。例如,各种功能可以由执行被存储在存储器中的指令的处理器执行。该方法还可以被体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用、服务或托管服务(独立或与其他托管服务组合)或另一个产品的插件等等提供。
首先转向图7,图7图示出了根据本文所述的各种实施例的用于形成图像的采样区域的方法700。初期在框710,上下文像素的带被标识为围绕图像的孔洞。孔洞可以是用户选择的,并且带可以被标识为围绕孔洞的像素的宽度。在框720,基于一个或多个特性(例如,颜色、x/y坐标、深度、焦点、频率等),上下文像素被聚类为集群。例如,聚类可以在多个维度上被执行(例如,在RBG空间和图像空间中的五维聚类)。在框730,基于相似性标准,上下文像素的集群被扩展为包括与上下文像素的集群相似的图像像素。例如,相似性标准可以包括平滑度项,该平滑度项影响用于利用前景分割算法标识相邻像素的权重。更具体地,使用上下文像素作为示例前景像素,前景分割可以被应用以标识源图像的前景和背景像素。在框740,从上下文像素的集群形成采样区域。更具体地,上下文像素的集群可以被合并在一起以形成采样区域,并且采样区域可以被处理以移除小孔洞和斑点。在框750,用于孔洞的填充根据被从采样区域采样的像素而被合成。
现在转到图8,图8图示出了根据本文所述的各种实施例的用于形成图像的采样区域的方法800。初期在框810,上下文像素被标识为围绕要填充的图像的目标区域。目标区域可以是用户选择的,并且上下文像素可以被标识为围绕孔洞的像素的宽度。在框820,基于一个或多个特性(例如,颜色、x/y坐标、深度、焦点、频率等),上下文像素被聚类为集群。在框830,上下文像素的每个集群作为前景像素被传递到分割算法,该分割算法输出上下文像素的对应的扩展的集群。在框840,上下文像素的扩展的集群被合并以形成采样区域。
示例内容感知填充环境
现在参考图9,示出了其中可以实践本公开的一个或多个实施例的环境900的框图。通常,环境900适合于图像编辑,并且除其他外,其便于自动合成内容感知填充。环境900包括具有照片编辑应用920的用户设备910,该照片编辑应用920具有用户界面930和内容感知填充引擎960。用户设备910可以是能够便于图像编辑的任何种类的计算设备。例如,在一个实施例中,用户设备910可以是诸如计算设备1100之类的计算设备,如下面参考图11所描述的。在实施例中,用户设备910可以是个人计算机(PC)、膝上型计算机、工作站、移动计算设备、PDA、蜂窝电话等。用户界面930与内容感知填充引擎960通信。通常,用户界面930允许用户定制任何数目的输入参数,以便于内容感知填充引擎960自动合成内容感知填充。
在图9图示的实施例中,用户设备910包括用户界面930和内容感知填充引擎960。用户界面930和/或内容感知填充引擎960可以被合并或被集成到应用或应用的附件或插件中,诸如照片编辑应用920。照片编辑应用920通常可以是能够便于照片或图像编辑的任何应用。应用920可以是独立应用、移动应用、web应用等。在一些实现中,(多个)应用包括web应用,其可以在web浏览器中运行,并且可以至少部分地被托管在服务器端。另外或可替代地,(多个)应用可以包括专用应用。在一些情况下,应用可以被集成到操作系统中(例如,作为服务)。可以用于照片编辑的一个示例性应用是 其为图形编辑应用。尽管在本文中通常将用户界面930和/或内容感知填充引擎960与应用相关联地进行了讨论,但是在一些情况下,用户界面930和/或内容感知填充引擎260或其一些部分可以附加地或备选地被集成到操作系统(例如,作为服务)或服务器(例如,远程服务器)中。
通常,用户界面930是交互式软件界面,其允许用户定制各种输入参数以用于内容感知填充的自动合成。在图9中,用户界面930包括原始图像面板935、结果面板940、画笔工具945和填充属性面板950。通常,原始图像面板935呈现原始图像,并且接受要被填充的原始图像的第一区域的用户选择和/或接受要用作采样区域的原始图像的第二区域的用户选择。画笔工具945是输入工具,其允许用户交互式地刷出原始图像面板935中指示的采样区域以定制采样区域。填充属性面板950呈现并接受各种填充属性的选择,诸如用于采样区域的覆盖设置,诸如用于候选补丁的相似性变换参数的填充设置以及用于合成的填充的输出设置。结果面板940呈现填充完成之前填充的外观预览。
通常,用户界面930可以允许用户指定原始图像以进行编辑。在一些实施例中,用户界面930提供选项(例如,菜单命令)以触发内容感知填充工作空间,诸如图10中描绘的内容感知填充工作空间1000。图10图示出了用户界面930的示例布局。在该实施例中,内容感知填充工作空间1000包括原始图像面板1005(其可以对应于图9的原始图像面板935)、结果面板1040(其可以对应于图9的结果面板940)、和填充属性面板1050(其可以对应于图9的填充属性面板950)。
原始图像面板1005包括原始图像1010。待被填充图像的区域可以是用户指定的、自动生成的、其一些组合等。例如,内容感知填充工作空间1000可以提供选择工具,用户可以使用该工具指定孔洞边界,诸如孔洞边界1020。原始图像面板1005可以将孔洞边界1020覆盖在原始图像1010的顶部上,以提供对原始图像1010要被填充的区域的指示。孔洞边界1020和/或孔洞边界1020内的区域(即孔洞)可以被存储在指示要被填充的区域的一个或多个数据结构中。附加地和/或备选地,边界和/或孔洞可被存储在指示有效采样区域的一个或多个数据结构中,诸如约束掩码。更具体地,约束掩码可以将孔洞指定为用于采样的无效区域。像素可以从中被采样以进行内容感知填充的采样区域可以是用户指定的、自动合成的、其一些组合等。采样区域可以被初始化为例如可以通过修改默认区域的用户输入而被定制的默认区域(例如,自动合成的内容感知采样区域、不包括孔洞的区域等)。采样区域可以被存储在指示有效采样区域的一个或多个数据结构中,诸如约束掩码。更具体地,约束掩码可以将采样区域指定为用于采样的有效区域。
在一些实施例中,原始图像面板1005可以包括覆盖以指示采样区域。例如,原始图像面板1005包括约束掩码覆盖1030。覆盖设置可以例如经由填充属性面板1050来被定义和/或定制。例如,可定制的覆盖设置可以包括切换显示、约束掩码覆盖1030的颜色和/或不透明度。附加地和/或备选地,用于约束掩码覆盖1030描绘采样区域或描绘将不被用于采样的原始图像1010的排除的区域的选项可以被提供。在图10所示的示例中,约束掩码覆盖1030被打开、透明的、红色的、并且描绘了采样区域。
填充属性面板1050(其可以对应于图9的填充属性面板950)可以呈现并接受各种填充属性的选择,诸如用于采样区域的覆盖设置,诸如用于候选补丁的相似性变换参数的填充设置以及用于合成的填充的输出设置。通常,填充属性可以被设置以控制填充被合成的方式。例如,可定制的填充设置可以包括相似性变换参数(例如,参数指定或以其他方式指示旋转的有效范围、缩放因子、候选补丁的镜像和/或平移)、颜色适应(例如,增益和/或偏差)、确定性填充合成等。可定制的填充设置将在下面更详细地讨论。可定制的输出设置可以包括用于合成的填充的指定输出层。例如,输出到当前层用合成的填充替换当前层中的孔洞像素,输出到新的层将合成的填充输出到单独的层(例如,其周围具有透明度),和/或输出到复制层将原始图像复制到重复层中,并用重复层中的合成的填充替换孔洞像素。填充特性的其他变化对于本领域普通技术人员将是明显的。
通常,内容感知填充工作空间1000可以在任何时候自动将约束掩码和/或指定的填充属性传递到后端组件,诸如内容感知填充引擎960,以使用约束掩码来合成(或开始合成)内容感知填充。例如,内容感知填充工作空间1000在内容感知填充工作空间1000被触发时、在选择原始图像1010时、在选择或修改孔洞边界和/或采样区域时(例如,经由画笔工具945、套索工具、多边形套索工具、扩展选择工具、收缩选择工具等)、在选择或修改填充属性后、在授权进行操作(例如,单击“确定”按钮)后和/或其他一些标准下可以自动将约束掩码和/或指定的填充属性传递给内容感知填充引擎960。在用户选择孔洞边界和/或采样区域之前约束掩码被传递的事件中,约束掩码可以被初始化为某种默认状态(例如,其可以包括自动检测到的区域、从某个其他填充或先前的迭代携带的区域或选择、默认区域等)。
内容感知填充工作空间1000包括结果面板1040,结果面板1040可以包括完成之前的合成的填充预览。与最终结果匹配的预览可以由在全分辨率原始图像1010上操作的内容感知填充引擎960生成。如下面更详细地描述的,内容感知填充引擎960实现迭代过程以构造和完善填充。每次连续迭代会产生具有改进的细节和基本一致的图像结构(例如,图像中的直线和曲线)的解决方案。预览可以从用于达到完整解决方案的该相同过程中得出。通过从全分辨率原始图像1010开始(与对缩略图进行操作以生成预览的常规技术相反),并在迭代后使用填充解决方案作为预览,与常规预览不同,与最终结果的图像结构匹配的准确预览可以被生成。相应地,内容感知填充引擎960可以在迭代之后(例如,在每次迭代之后)将填充解决方案传递给结果面板1040,以呈现给用户。在一些实施例中,内容感知填充引擎960可以执行连续迭代,并且在每次迭代之后向结果面板1040提供解决方案。这样,结果面板1040可以包括具有逐渐更新结果的实时预览。这些逐步更新可以为用户提供快速、实时的反馈,并为进行期望改变以达到期望填充提供了更早的机会。
在一些实施例中,内容感知填充引擎960可以在后续迭代之前提供预览并中断该过程,以便于在完成填充之前的用户输入。例如,在生成预览之前,内容感知填充工作空间1000可以允许用户选择期望的预览分辨率和/或维度(或者默认的预览分辨率可以被利用)。内容感知填充引擎1060可以开始合成填充并且在迭代之后中断,在该迭代中,对应的当前填充解决方案的分辨率与预定阈值(无论是以像素、百分比还是其他方式指定)内的指定预览分辨率相匹配。在这些实施例中,内容感知填充引擎960可以将当前填充传递给结果面板1040,以呈现为预览。在这种场景中,内容感知填充工作空间1000可以提示用户继续处理、改变参数和/或放大或缩小预览的指示。
继续处理的用户指示可以触发内容感知填充引擎960以计算剩余分辨率,直到全分辨率结果。然而,孔洞或采样区域的改变、或候选补丁的相似性变换参数的改变,可能会使当前填充变得过时。一些现有的计算可以被挽回以提高速度并避免不必要的重新计算。例如,如果一个或多个掩码不受改变的影响,则掩码无需被重新计算。同样的,与未改变的掩码相对应的图像金字塔不需要被重新生成。如果用户不改变孔洞,则无需重新计算存储从每个像素到孔洞边界的距离变换的缓冲器。如本领域普通技术人员将理解的,诸如这些和其他的各种计算可以被高速缓存和重新利用以提高处理速度。
中断的另一种可能性是用户请求放大或缩小预览。由于内容感知填充引擎960已经计算出较低分辨率的解决方案以到达预览,因此在用户缩小预览(例如,请求较低分辨率的预览)的事件中,那些解决方案可以被高速缓存、访问和呈现。如果用户放大了预览(例如,请求更高分辨率的预览),则内容感知填充工作空间1000可以将指示传递给内容感知填充引擎960,以从上次暂停计算的先前分辨率恢复计算,以便产生下一个预览分辨率。该方法利用了先前的迭代,并允许内容感知填充引擎960快速地生成前端的新预览。
在一些实施例中,不正确的填充可以通过将孔洞划分为两个或更多个子分区并为每个子分区递增地合成填充而被改进。例如,内容感知填充工作空间1000可以接受手动标识第一子分区的输入,并且填充可以如上所述被生成。内容感知填充工作空间1000可以接受指示填充应该被接受的输入(例如,按下按钮),基于此,内容感知填充工作空间1000可以便于手动标识后续子分区的后续输入,并且重复该过程。如本领域普通技术人员将理解的,附加地和/或备选地,接受手动标识子分区的输入,子分区可以被自动生成。在一些实施例中,内容感知填充工作空间1000可以接受指示最新生成的填充应当被用来为后续子分区生成填充的输入。以这种方式,内容感知填充工作空间1000可以通过为孔洞的两个或更多个子分区递增地生成填充来填充孔洞。
前述讨论利用图10来图示出具有原始图像面板1005、结果面板1040和填充属性面板1050的示例内容感知填充工作区1000。在图10中,原始图像1010是带有蜜蜂采集花粉的花的图像。结果面板1040描绘了利用候选补丁的平移生成的示例填充。对于具有非线性特征的图像,可以通过扩展搜索域以包括候选补丁的相似性变换来提高填充质量。例如,诸如相似性变换参数之类的填充设置可以实现旋转、缩放和/或镜像。填充设置可以是预设的、可定制的以进行交互式访问等。
存在从交互式访问可定制的填充设置和/或可定制的采样区域所得到的多个潜在益处。通常情况下,使用候选补丁的相似性变换来合成填充,而不是简单地使用平移,可以显著提高填充质量。然而,每个图像是不同的,因此不同类型的变换可能更适合于特定图像。例如,旋转可能适用于弯曲的对象或透视图像。而且,在某些情况下,有限范围内的旋转可能是合适的。通常,旋转适应可以被用来指定在填充孔洞作为补丁合成的一部分时补丁可以旋转的程度(或范围)。例如,预设填充设置(例如,低、中、高、满)可以被指定与潜在旋转范围相对应。完整旋转(例如,-180°至180°)可以适合圆形或环形物体。一些中度旋转可以适用于具有大量曲率的图像。一些低度旋转可以适用于具有曲线的图像,例如道路弯道。在另一个示例中,缩放可以适合于利用不同大小的重复图案或在透视下改进图像内容的合成的填充。镜像(例如,诸如水平翻转的翻转)可以改进具有对称性的图像的合成的填充。颜色适应可以被用来指定增益和/或偏差强度,以通过改变用于填充孔洞的补丁的亮度和/或对比度作为补丁合成的一部分,来改进图像的合成的填充。通过允许用户选择适当的填充设置,用户可以指导补丁合成达到最佳解决方案。
除了和/或作为提供可定制的相似性变换参数的备选方案,另一可定制的填充设置是确定性填充合成模式。常规补丁合成技术通常是多线程的。更具体地说,可以将指定的孔洞分成几个文件,用于供不同线程并行处理。线程完成其相应解决方案的定时可以改变指定孔洞的所得到的填充解决方案。由于在常规技术中这种定时是未知的或不被控制的,因此常规补丁合成通常是不可重复的。在确定性填充合成模式下,可重复补丁合成技术可以被实现,如下面更详细地解释的。然而,由于该确定性过程可能会增加处理时间,因此,允许用户控制此模式将允许用户在速度和可重复性之间进行折衷。
除了和/或作为提供可定制的填充设置的备选方案,可定制的采样区域可以被用来改进自动合成的填充。通常,内容感知填充工作空间可以便于用户定制采样区域。例如,内容感知填充工作空间可以提供输入工具,诸如画笔工具(例如,画笔工具945),其允许用户交互式地刷出原始图像面板935中的采样区域以定制采样区域。画笔工具可以便于用户输入添加到有效采样区域或从有效采样区域中减去,该有效采样区域可以被存储在约束掩码中。画笔工具可以是可调整大小的,以增加或减小画笔大小。附加地和/或备选地,画笔工具的捕获区域形状可以被定制为任何形状。这样,画笔工具可以被用来添加采样区域或从采样区域中移除。附加地和/或备选地,各种其他输入工具可以被提供以便于用户选择和/或修改孔洞和/或采样区域,诸如套索工具、多边形套索工具、扩展选择工具、收缩选择工具等。在一些实施例中,在检测到用户输入(诸如画笔笔划从采样区域和/或对应的覆盖中移除像素)完成时,内容感知填充工作空间可以自动将所得到的采样区域(例如,经由约束掩码)传递到后端组件,诸如内容感知填充引擎960,以使用指定的约束掩码来合成内容感知填充。
现在回到图9,内容感知填充引擎960包括补丁有效性组件965和基于补丁的合成器970。补丁有效性组件965和基于补丁的合成器970通信地操作以自动合成内容感知填充(例如,填充由从用户界面930传递的约束掩码所指示的孔洞)。基于补丁的合成器270可以使用随机算法来执行补丁合成,以生成和评估候选补丁并标识图像补丁之间的近似最近邻匹配。如本领域普通技术人员将理解的,这可以涉及针对多尺度解决方案的每个尺度的初始化、搜索、投票和粗化的迭代过程。候选补丁可以在初始化、搜索和上采样期间从源图像(例如,由约束掩码指定的采样区域)被生成。通常,补丁有效性组件965通过应用一个或多个改进的补丁有效性测试来评估候选补丁的有效性。有利地,每次基于补丁的合成器970标识候选补丁时,补丁有效性组件965确定补丁的有效性。
通常,一个或多个补丁有效性测试可以被合并到一个交互式系统中,以用于自动合成内容感知填充。例如,在图9图示出的实施例中,补丁有效性组件965可以通过应用一个或多个补丁有效性测试来评估基于补丁的合成器970的候选补丁的有效性。任何合适的补丁有效性测试可以被应用,其一些示例在美国专利申请号15/921,457中进行了描述,其内容通过整体引用并入本文。
在图9中描绘的示例实现中,基于补丁的合成器970使用随机算法来执行补丁合成,以生成和评估候选补丁并标识图像补丁之间的近似最近邻匹配。为了使用从源图像变换的图像补丁来构造给定的目标图像(例如孔洞),被称为最近邻字段(NNF)的数据结构可以被用来管理源图像和目标图像中的补丁之间的映射。NNF包括对目标图像中每个像素的变换。如本文所述,这些变换可以包括相似性变换。对于给定像素,针对该像素的NNF中的变换标识了对应的源补丁,其可以被测试与像素相关联的目标补丁的相似性。基于补丁的合成器970的目的是标识与每个目标补丁(即,最近邻)最匹配的源补丁(例如,从有效采样区域中)。NNF字段可以在合成过程的各种阶段期间被更新,以跟踪每个目标补丁的最近邻源补丁。
如本领域普通技术人员将理解的,基于补丁的合成器970可以涉及针对多尺度解决方案的每个尺度的初始化、搜索、投票和粗化的迭代过程。这样,在图9所示的实施例中,基于补丁的合成器970包括对应的初始化组件972、传播搜索组件974、随机搜索组件976、投票组件978和粗化组件980。
对于来自目标图像的每个目标像素(例如孔洞),初始化组件972分配随机生成的变换作为初始化。如本文所述,这些变换可以包括相似性变换。相似性变换参数可以是用户选择的、预定的、其一些组合等。通常,将随机生成的变换被限制在适用的相似性变换参数(例如,平移、缩放、旋转和/或镜像搜索域)上。有利地,补丁有效性组件965确定每个候选补丁的有效性。对于未通过补丁有效性测试的候选源补丁,初始化组件972分配新随机生成的变换来替换失败的候选补丁,并且补丁有效性测试被重复。如果补丁有效性测试在某个预定次数(例如256次)中失败,则候选补丁可以通过减少有效采样区域(例如扩大孔洞),限制对应的搜索域和/或通过使用随机生成的简单平移而不是完全相似性变换而被生成。这样,这种备选技术可以被利用来生成有效的候选补丁。
通常,如本领域普通技术人员所理解的,基于补丁的合成器970执行搜索(例如,经由传播搜索组件974和随机搜索组件976)以标识改进NNF的候选补丁。有利地,补丁有效性组件965确定每个候选补丁的有效性。如果候选源补丁未通过补丁有效性测试,则候选补丁不会被用来改进NNF。通过补丁有效性的候选补丁被评估,以确定给定的候选补丁是否比NNF中现有的最近邻更匹配特定目标补丁(例如,候选补丁是否减少了补丁距离)。换言之,NNF=Min(NNF,先前的NNF)。
在一些实施例中,传播搜索组件974和随机搜索组件976可以按照便于确定性填充合成的方式来标识候选补丁。在常规技术中,指定的孔洞可以被分为几个子分区以用于通过不同的线程进行并行处理。在一个示例中,孔洞可以被分成三个子分区,并且三个线程中的每一个并行地处理对应的子分区。在常规技术中,特定线程按扫描线顺序处理分配的子分区中的每个像素。例如,对于给定像素,传播搜索组件974传播针对相邻像素的解决方案并选择最佳解决方案,随机搜索组件976为随机标识的像素标识解决方案并选择最佳解决方案,并且分配的线程按照扫描线顺序移至下一个像素。然而,因为一些线程可能比其他线程更快地完成了针对所分配的子分区生成填充,所以通常使用从相邻子分区的不完整填充中采样的补丁为子分区生成填充。结果,常规补丁合成通常是不可重复的。
这样,在一些实施例中,指定的孔洞可以被分成比线程更多的子分区,并且多个线程可以被分配为仅并行处理非接界的子分区。在一个简单的示例中,假设将孔洞分为0-5的六个块。对于基于补丁的合成器970的均匀迭代,三个线程可以按照扫描线顺序处理交替的块(例如,0、2、4)。在奇数次迭代期间,线程可以按照相反的扫描线顺序(例如1、3、5)处理交替的块。因为在任何线程完成对特定子分区的处理之前,相邻子分区已经完成了填充,所以每个线程完成对其所分配的子分区的处理的定时都无关紧要。这样,分配多个线程来并行处理非接界子分区可以产生确定性结果。
在一些实施例中,波前技术可以被应用于标识候选补丁以便于确定性填充合成。通常,波前处理是用于处理多维网格的技术,对于该多维网格,网格中的特定单元依赖于网格中的其他单元。通过从一个角开始,处理以相似于波前的对角线形式扫过整个网格。在基于补丁的合成的上下文中,搜索可以利用波前而不是按扫描线顺序被实现(例如,传播搜索组件974可以传播针对上方的邻近像素和针对左侧的邻近像素的解决方案)。此外,由随机搜索组件976用于随机标识的像素的随机数生成器可以被修改。随机数生成器通常被设计为在给定种子时生成已知的均匀数序列。为了进行波前处理以产生确定性补丁合成,随机数生成器可以被修改以接受<x,y,基于补丁的合成器迭代,随机搜索迭代>作为其输入以生成均匀数。以这种方式,对于给定的<x,y>像素值,对随机数生成器的给定调用序列将产生相同结果。以这种方式,候选补丁的确定性集合可以被标识,从而便于确定性填充合成。本领域普通技术人员将理解其他变型。
通常,基于补丁的合成器970执行投票(例如,经由投票组件978)以生成提议目标图像。通常,执行补丁投票以累积每个重叠的相邻补丁的像素颜色,并且对颜色投票进行加权平均。提议目标图像可以被传递到前端(例如,结果面板940)以用于呈现为预览。如上所述,在每个随后的迭代期间,提议目标图像被更新,并且更新的目标图像可以被传递给每次迭代的前端。结果是逐步更新实时预览。这些逐步的更新可以为用户提供快速、实时的反馈,并为进行期望的改变以达到期望的填充提供了更早的机会。
基于补丁的合成器970执行粗化(例如,通过粗化组件980)以放大当前的NNF,以在下一尺度的后续迭代期间用作基线。由于该粗化能够产生无效补丁,因此补丁有效性组件965有利地确定与粗化的NNF相对应的候选补丁的有效性。在后续的基于补丁的合成器270迭代期间,评估通过补丁有效性的候选补丁,以确定给定候选补丁是否比从随机初始化的NNF生成的对应候选补丁更匹配特定目标补丁。
通常,对于后续金字塔尺度,通过基于补丁的合成器970的流程被重复,直到全分辨率解决方案被生成并被传递到前端以呈现给用户为止。在一些实施例中,基于补丁的合成器970可以在一些组件检测到更新的(例如,由用户)采样区域和/或适用的平移、缩放、旋转和/或镜像搜索域时中断。在这种场景中,基于补丁的合成器970可以挽救现有的计算以改进速度并避免不必要的重新计算,如上面更详细地描述的,并且可以自动开始处理更新的采样区域和/或搜索域。附加地和/或备选地,基于补丁的合成器970能够传递提议的目标图像以用于作为预览呈现,并且中断其过程以在完成填充之前便于用户输入,如上面更详细地描述的。如上面更详细描述的,继续处理的用户指示能够触发基于补丁的合成器970以计算剩余分辨率。
这样,使用本文所述的实现,用户可以高效地并且有效地合成内容感知填充。尽管本文中针对照片编辑的上下文中的图像完成描述了技术,但是本技术可以被应用于对图像的一些区域进行采样以填充另一个区域的任何孔洞填充算法或任何其他算法(例如,斑点愈合)。这些实现仅是示例性的,并且本领域普通技术人员将理解其他实现。
示范性操作环境
已经描述了本发明的实施例的概述,下面描述可以在其中实现本发明的实施例的示例性操作环境,以便为本发明的各种方面提供一般上下文。现在特别参考图11,用于实现本发明的实施例的示例性操作环境被示出,并且该操作环境通常被指定为计算设备1100。计算设备1100仅仅是合适的计算环境的一个示例,并且不旨在暗示对本发明的使用范围或功能性的任何限制。计算设备1100也不应被解释为具有与所示出的任何一个组件或组件的组合有关的任何依赖性或要求。
可以在计算机代码或机器可用指令的一般上下文中描述本发明,其包括计算机可执行指令诸如由计算机或其他机器诸如蜂窝电话、个人数据助手或其他手持式设备执行的程序模块。通常,包括例程、程序、对象、组件、数据结构等在内的程序模块是指执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中被实践,包括手持式设备、消费电子产品、通用计算机、更多专用计算设备等。本发明也可以在分布式计算环境中实践,其中任务被通过通信网络链接的远程处理设备执行。
参考图11,计算设备1100包括直接或间接耦合以下设备的总线1110:存储器1112、一个或多个处理器1114、一个或多个呈现组件1116、输入/输出(I/O)端口1118、输入/输出组件1120和说明性电源1122。总线1110表示可能是一个或多个总线(例如地址总线、数据总线或其组合)。尽管为了清楚起见图11的各种方框用线示出,但是实际上,对各种组件的描绘不是很清楚,并且隐喻地,这些线将更准确地是灰色和模糊的。例如,可以将诸如显示设备之类的呈现组件视为I/O组件。另外,处理器具有存储器。发明人认识到这是本领域的本质,并且重申图11的图仅说明了可以结合本发明的一个或多个实施例使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型电脑”、“手持式设备”等类别之间未进行区分,因为所有这些都被认为在图11的范围内并且涉及“计算设备”。
计算设备1100通常包括各种计算机可读介质。计算机可读介质可以是可以由计算设备1100访问的任何可用介质,并且包括易失性和非易失性介质以及可移除和不可移除介质。通过示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能磁盘(DVD)或其他光盘存储、盒式磁带、磁带、磁盘存储装置或其他磁存储设备,或可以用于存储期望信息并可以由计算设备1100访问的任何其他介质。计算机存储介质本身不包括信号。通信介质典型地在诸如载波或其他运输机制的经调制的数据信号中体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息递送介质。术语“经调制的数据信号”是指具有以将信息编码在信号中的方式来设置或改变其一个或多个特性的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外和其他无线介质之类的无线介质。以上任何内容的组合也应被包括在计算机可读介质的范围内。
存储器1112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备1100包括一个或多个处理器,该处理器从诸如存储器1112或I/O组件1120的各种实体读取数据。(多个)呈现组件1116将数据指示呈现给用户或其他设备。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。
I/O端口1118允许计算设备1100逻辑地耦合到其他设备,包括I/O组件1120,其中一些可以被内置。说明性组件包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪、打印机、无线设备等。I/O组件1120可以提供自然用户界面(NUI),其处理由用户生成的空中姿势、语音或其他生理输入。在一些实例中,输入可以被传输到适当的网络元素以进行进一步处理。NUI可以实现与计算设备1100的显示器相关联的语音识别、手写笔识别、面部识别、生物识别、在屏幕上以及与屏幕相邻的姿势识别、空中姿势、头部和眼部跟踪以及触摸识别(如下面更详细的描述)的任何组合。计算设备1100可以被配备深度相机,诸如立体相机系统、红外相机系统、RGB相机系统、触摸屏技术以及这些的组合,以用于姿势检测和识别。附加地,计算设备1100可以被配备有支持检测运动的加速度计或陀螺仪。加速度计或陀螺仪的输出可以被提供给计算设备1100的显示器,以渲染沉浸式的增强现实或虚拟现实。
本文描述的实施例支持自动合成内容感知采样区域。本文描述的组件是指自动合成系统的集成组件。集成组件是指使用自动合成系统支持功能性的硬件架构和软件框架。硬件架构是指物理组件及其相互关系,并且软件框架是指提供可以被设备上包含的硬件实现的功能性的软件。
端到端的基于软件的系统可以在系统组件内操作,以操作计算机硬件以提供系统功能性。在低级别,硬件处理器执行从给定处理器的机器语言(也称为机器代码或本机)指令集中选择的指令。处理器识别本机指令,并执行与例如逻辑、控制和存储器操作有关的对应低级功能。用机器代码编写的低级软件可以为更高级软件提供更复杂的功能性。如本文所使用的,计算机可执行指令包括任何软件,包括以机器代码编写的低级软件,诸如应用软件之类的较高级软件及其任何组合。在这方面,系统组件可以管理资源并为系统功能性提供服务。对于本发明的实施例,可以预期任何其他变型及其组合。
已经在本公开中标识了各种组件,应当理解,在本公开的范围内,可以采用任何数目的组件和布置来实现期望的功能性。例如,为了概念上的清楚起见,图中所示的实施例中的组件用线示出。这些和其他组件的其他布置也可以被实现。例如,尽管一些组件被描绘为单个组件,但是本文描述的许多元件可以被实现为分立或分布式组件或与其他组件结合,并且以任何合适的组合和位置来实现。一些元素可以完全被省略。此外,如下所述,本文描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以由执行存储在存储器中的指令的处理器执行。这样,除了或代替所示的那些布置和元素,其他布置和元素(例如,机器、界面、功能、命令和功能的分组等)可以被使用。
在此具体描述本发明的主题以满足法定要求。然而,说明书本身并不旨在限制本专利的范围。相反,发明人已经预料到,所要求保护的主题还可以结合其他当前或未来技术,以其他方式体现,以包括与本文档中所描述的步骤不同的步骤或步骤的组合。此外,尽管此处可以使用术语“步骤”和/或“框”来表示所采用方法的不同元素,除非并且除非明确地描述了各个步骤的顺序,否则这些术语不应解释为暗示本文所公开的各种步骤之中或之间的任何特定顺序。
已经关于特定实施例描述了本发明,这些特定实施例在所有方面都旨在说明而不是限制。在不脱离本发明范围的情况下,备选实施例对于本发明所属领域的普通技术人员将变得明显。
从前述内容可以看出,本发明非常适合于实现上述所有目的和目标,以及该系统和方法明显且固有的其他优点。将理解的是,一些特征和子组合是有用的并且可以在不参考其他特征和子组合的情况下被采用。这是权利要求所预期的并且在权利要求的范围之内。
Claims (20)
1.存储计算机可用指令的一种或多种计算机存储介质,所述计算机可用指令在由计算设备使用时使所述计算设备执行操作,所述操作包括:
标识围绕图像的目标区域的上下文像素的带;
基于所述上下文像素的一个或多个特性,将所述上下文像素聚类为集群;
基于相似性标准,将上下文像素的所述集群扩展为包括所述图像的像素,所述像素与上下文像素的所述集群相似;
从上下文像素的经扩展的所述集群形成采样区域;以及
根据从所述采样区域采样的像素,针对所述目标区域合成填充。
2.根据权利要求1所述的一种或多种计算机存储介质,所述操作还包括:在所述聚类之前将模糊应用于上下文像素的所述带。
3.根据权利要求1所述的一种或多种计算机存储介质,其中基于相似性标准来扩展所述集群包括:将上下文像素的所述集群中的每个集群作为前景像素传递给分割算法,所述分割算法输出上下文像素的对应的经扩展的集群。
4.根据权利要求1所述的一种或多种计算机存储介质,其中基于一个或多个特性对所述上下文像素进行聚类包括:基于所述图像中的颜色和位置进行多维度聚类。
5.根据权利要求1所述的一种或多种计算机存储介质,所述操作还包括:对与所述目标区域不接界的所述集群中的至少一个集群进行修剪。
6.根据权利要求1所述的一种或多种计算机存储介质,所述操作还包括:按比例调整上下文像素的经扩展的所述集群中的至少一个集群的面积。
7.根据权利要求6所述的一种或多种计算机存储介质,其中调整上下文像素的经扩展的所述集群中的至少一个集群的所述面积包括:重新运行以针对上下文像素的经扩展的所述集群的扩展比率为目标的分割算法。
8.根据权利要求1所述的一种或多种计算机存储介质,所述操作还包括以下中的至少一项:填充孔洞或移除所述采样区域的斑点。
9.根据权利要求1所述的一种或多种计算机存储介质,所述操作还包括:将围绕所述目标区域的像素的填补带添加到所述采样区域。
10.一种用于形成图像的采样区域的计算机化的方法,所述方法包括:
标识围绕要填充的所述图像的目标区域的上下文像素;
基于所述上下文像素的一个或多个特性,将所述上下文像素聚类为集群;
将上下文像素的所述集群中的每个集群作为前景像素提供给分割算法,所述分割算法输出上下文像素的对应的经扩展的集群;以及
合并上下文像素的经扩展的所述集群以形成所述采样区域。
11.根据权利要求10所述的计算机化的方法,还包括:在所述聚类之前将模糊应用于所述上下文像素。
12.根据权利要求10所述的计算机化的方法,其中基于一个或多个特性对所述上下文像素进行聚类包括:基于所述图像中的颜色和位置进行多维度聚类。
13.根据权利要求10所述的计算机化的方法,还包括:对与所述目标区域不接界的所述集群中的至少一个集群进行修剪。
14.根据权利要求10所述的计算机化的方法,还包括:按比例调整上下文像素的经扩展的所述集群中的至少一个集群的面积。
15.根据权利要求14所述的计算机化的方法,其中调整上下文像素的经扩展的所述集群中的至少一个集群的所述面积包括:重新运行以针对上下文像素的经扩展的所述集群的扩展比率为目标的所述分割算法。
16.根据权利要求10所述的计算机化的方法,还包括以下中的至少一项:填充孔洞或移除所述采样区域的斑点。
17.根据权利要求10所述的计算机化的方法,还包括:将围绕所述目标区域的像素的填补带添加到所述采样区域。
18.一种计算机系统,包括:
一个或多个硬件处理器和存储器,所述存储器被配置为向所述一个或多个硬件处理器提供计算机程序指令;
用于使用所述一个或多个硬件处理器来控制前景分割算法以从图像的指定区域外部标识与所述指定区域相关联的所述图像的上下文像素而将扩展区域合成到所述指定区域的部件;以及
接口组件,所述接口组件被配置为使用所述一个或多个硬件处理器来与经合成的所述扩展区域相关联地呈现所述指定区域,经合成的所述扩展区域包括来自所述指定区域外部的所标识的所述上下文像素。
19.根据权利要求18所述的计算机系统,其中所述指定区域是描画对象的轮廓的用户选择的区域,并且其中所述扩展区域捕获从所述用户选择的区域中被不经意地省略的所述对象的一部分。
20.根据权利要求18所述的计算机系统,其中所述指定区域是使用对象检测的被自动检测到的区域,并且其中所述扩展区域捕获从所述被自动检测到的区域中被不经意地省略的所述对象的一部分。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/420,782 US11042969B2 (en) | 2019-05-23 | 2019-05-23 | Automatic synthesis of a content-aware sampling region for a content-aware fill |
US16/420,782 | 2019-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111986291A true CN111986291A (zh) | 2020-11-24 |
CN111986291B CN111986291B (zh) | 2024-04-23 |
Family
ID=70278215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010108650.3A Active CN111986291B (zh) | 2019-05-23 | 2020-02-21 | 用于内容感知填充的内容感知采样区域的自动合成 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11042969B2 (zh) |
CN (1) | CN111986291B (zh) |
AU (1) | AU2020201593B2 (zh) |
DE (1) | DE102020001165A1 (zh) |
GB (1) | GB2589389B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111583147B (zh) * | 2020-05-06 | 2023-06-06 | 北京字节跳动网络技术有限公司 | 图像处理方法、装置、设备及计算机可读存储介质 |
US12169916B2 (en) * | 2020-11-18 | 2024-12-17 | Samsung Electronics Co., Ltd. | System and method for image inpainting based on layout-guided pre-processing attention mechanism |
CN113781571B (zh) * | 2021-02-09 | 2025-03-18 | 北京沃东天骏信息技术有限公司 | 图像处理方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010055414A1 (en) * | 2000-04-14 | 2001-12-27 | Ico Thieme | System and method for digitally editing a composite image, e.g. a card with the face of a user inserted therein and for surveillance purposes |
US20030095707A1 (en) * | 2001-11-19 | 2003-05-22 | Koninklijke Philips Electronics N.V. | Computer vision method and system for blob-based analysis using a probabilistic pramework |
US20110208716A1 (en) * | 2010-02-19 | 2011-08-25 | Microsoft Corporation | Image-Based CAPTCHA Exploiting Context in Object Recognition |
CN102324102A (zh) * | 2011-10-08 | 2012-01-18 | 北京航空航天大学 | 一种图像场景空洞区域结构和纹理信息自动填补方法 |
US20140126833A1 (en) * | 2012-11-02 | 2014-05-08 | Cyberlink Corp. | Systems and Methods for Performing Image Inpainting |
US20140153829A1 (en) * | 2012-11-30 | 2014-06-05 | Canon Kabushiki Kaisha | Superpixel-based refinement of low-resolution foreground segmentation |
US20150363660A1 (en) * | 2014-06-12 | 2015-12-17 | Asap54.Com Ltd | System for automated segmentation of images through layout classification |
US20160142792A1 (en) * | 2014-01-24 | 2016-05-19 | Sk Planet Co., Ltd. | Device and method for inserting advertisement by using frame clustering |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6879717B2 (en) * | 2001-02-13 | 2005-04-12 | International Business Machines Corporation | Automatic coloring of pixels exposed during manipulation of image regions |
KR101669820B1 (ko) * | 2010-07-02 | 2016-10-27 | 삼성전자주식회사 | 볼륨 예측 기반 폐색 영역 양방향 복원 장치 및 방법 |
US9153031B2 (en) * | 2011-06-22 | 2015-10-06 | Microsoft Technology Licensing, Llc | Modifying video regions using mobile device input |
JP6094863B2 (ja) * | 2011-07-01 | 2017-03-15 | パナソニックIpマネジメント株式会社 | 画像処理装置、画像処理方法、プログラム、集積回路 |
KR101791604B1 (ko) * | 2012-09-11 | 2017-10-30 | 삼성전자주식회사 | 헤드 포지션 추정 방법 및 장치, 컴퓨터 판독가능 저장 매체 |
US8867794B2 (en) * | 2012-10-23 | 2014-10-21 | Cyberlink Corp. | Systems and methods for performing image inpainting based on texture analysis |
US9213896B2 (en) * | 2013-03-05 | 2015-12-15 | Mitsubishi Electric Research Laboratories, Inc. | Method for detecting and tracking objects in image sequences of scenes acquired by a stationary camera |
KR101599786B1 (ko) * | 2014-01-24 | 2016-03-09 | 에스케이플래닛 주식회사 | 참조 영역 분할을 이용한 인페인팅 장치 및 방법 |
JP5695257B1 (ja) * | 2014-07-25 | 2015-04-01 | 楽天株式会社 | 画像処理装置、画像処理方法、および画像処理プログラム |
EP2981063B1 (en) * | 2014-07-31 | 2020-03-04 | Samsung Electronics Co., Ltd | Method of modifying image including photographing restricted element, and device for performing the method |
WO2016029395A1 (en) * | 2014-08-28 | 2016-03-03 | Qualcomm Incorporated | Temporal saliency map |
AU2015392660B2 (en) * | 2015-04-27 | 2019-05-16 | Wuhan Optics Valley Zoyon Science And Technology Co., Ltd. | Stepwise-refinement pavement crack detection method |
US10165199B2 (en) * | 2015-09-01 | 2018-12-25 | Samsung Electronics Co., Ltd. | Image capturing apparatus for photographing object according to 3D virtual object |
CN108475330B (zh) * | 2015-11-09 | 2022-04-08 | 港大科桥有限公司 | 用于有伪像感知的视图合成的辅助数据 |
US9911201B2 (en) * | 2016-06-23 | 2018-03-06 | Adobe Systems Incorporated | Imaging process initialization techniques |
US20190108631A1 (en) * | 2017-10-06 | 2019-04-11 | AgriSight, Inc. | System and method for field pattern analysis |
US10586311B2 (en) | 2018-03-14 | 2020-03-10 | Adobe Inc. | Patch validity test |
US11393113B2 (en) * | 2019-02-28 | 2022-07-19 | Dolby Laboratories Licensing Corporation | Hole filling for depth image based rendering |
EP3939002A1 (en) * | 2019-03-15 | 2022-01-19 | Genentech, Inc. | Deep convolutional neural networks for tumor segmentation with positron emission tomography |
-
2019
- 2019-05-23 US US16/420,782 patent/US11042969B2/en active Active
-
2020
- 2020-02-21 DE DE102020001165.9A patent/DE102020001165A1/de active Pending
- 2020-02-21 CN CN202010108650.3A patent/CN111986291B/zh active Active
- 2020-03-04 AU AU2020201593A patent/AU2020201593B2/en active Active
- 2020-03-09 GB GB2003400.5A patent/GB2589389B/en active Active
-
2021
- 2021-06-17 US US17/350,136 patent/US12136199B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010055414A1 (en) * | 2000-04-14 | 2001-12-27 | Ico Thieme | System and method for digitally editing a composite image, e.g. a card with the face of a user inserted therein and for surveillance purposes |
US20030095707A1 (en) * | 2001-11-19 | 2003-05-22 | Koninklijke Philips Electronics N.V. | Computer vision method and system for blob-based analysis using a probabilistic pramework |
US20110208716A1 (en) * | 2010-02-19 | 2011-08-25 | Microsoft Corporation | Image-Based CAPTCHA Exploiting Context in Object Recognition |
CN102324102A (zh) * | 2011-10-08 | 2012-01-18 | 北京航空航天大学 | 一种图像场景空洞区域结构和纹理信息自动填补方法 |
US20140126833A1 (en) * | 2012-11-02 | 2014-05-08 | Cyberlink Corp. | Systems and Methods for Performing Image Inpainting |
US20140153829A1 (en) * | 2012-11-30 | 2014-06-05 | Canon Kabushiki Kaisha | Superpixel-based refinement of low-resolution foreground segmentation |
US20160142792A1 (en) * | 2014-01-24 | 2016-05-19 | Sk Planet Co., Ltd. | Device and method for inserting advertisement by using frame clustering |
US20150363660A1 (en) * | 2014-06-12 | 2015-12-17 | Asap54.Com Ltd | System for automated segmentation of images through layout classification |
Non-Patent Citations (1)
Title |
---|
杨婕;李兆歆;王素琴;石敏;刘京;: "基于空洞填补的虚拟视点绘制", 计算机工程, no. 10 * |
Also Published As
Publication number | Publication date |
---|---|
CN111986291B (zh) | 2024-04-23 |
US12136199B2 (en) | 2024-11-05 |
AU2020201593B2 (en) | 2021-08-19 |
GB2589389B (en) | 2022-06-08 |
US20200372619A1 (en) | 2020-11-26 |
GB202003400D0 (en) | 2020-04-22 |
GB2589389A (en) | 2021-06-02 |
DE102020001165A1 (de) | 2020-11-26 |
US11042969B2 (en) | 2021-06-22 |
AU2020201593A1 (en) | 2020-12-10 |
US20210312599A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10762608B2 (en) | Sky editing based on image composition | |
US7551181B2 (en) | Image region filling by exemplar-based inpainting | |
Vaquero et al. | A survey of image retargeting techniques | |
US7755645B2 (en) | Object-based image inpainting | |
CA2658727C (en) | Interactive segmentation of images with single scribbles | |
US12136199B2 (en) | Automatic synthesis of a content-aware sampling region for a content-aware fill | |
US20240171848A1 (en) | Removing distracting objects from digital images | |
US12045963B2 (en) | Detecting object relationships and editing digital images based on the object relationships | |
CN110276818B (zh) | 用于自动合成内容感知填充的交互式系统 | |
AU2023270205A1 (en) | Dilating object masks to reduce artifacts during inpainting | |
US12210800B2 (en) | Modifying digital images using combinations of direct interactions with the digital images and context-informing speech input | |
AU2023270207A1 (en) | Modifying digital images via scene-based editing using image understanding facilitated by artificial intelligence | |
AU2023270204A1 (en) | Detecting and modifying object attributes | |
US20240169685A1 (en) | Detecting shadows and corresponding objects in digital images | |
US20240362758A1 (en) | Generating and implementing semantic histories for editing digital images | |
US20240361891A1 (en) | Implementing graphical user interfaces for viewing and interacting with semantic histories for editing digital images | |
KR20050056175A (ko) | 재귀적 제어선 정합을 이용한 반자동 필드 기반 영상 변형방법 | |
Holtzman-Gazit et al. | A scale-consistent approach to image completion | |
AU2024202871B1 (en) | Image generation | |
GB2624748A (en) | Detecting shadows and corresponding objects in digital images | |
AU2023274073A1 (en) | Generating and using behavioral policy graphs that assign behaviors to objects for digital image editing | |
AU2024201423A1 (en) | Modifying digital images using combinations of direct interactions with the digital images and context-informing speech input | |
AU2023274075A1 (en) | Generating semantic scene graphs utilizing template graphs for digital image modification | |
AU2024201343A1 (en) | Implementing graphical user interfaces for viewing and interacting with semantic histories for editing digital images | |
AU2024201342A1 (en) | Generating and implementing semantic histories for editing digital images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |