边界感知对象移除和内容填充的制作方法

专利2022-06-29  73


本公开总体上涉及从数字图像中移除对象。更具体地,但不作为限制,本公开涉及通过使用对象边界检测结合内容感知填充来从图像中移除对象。



背景技术:

在编辑诸如照片等图像期间,图形设计者可能希望移除目标对象。例如,设计者可能想要移除出现在花园照片中间的玩具,或者从房屋照片中移除庭院标志。

然而,现有的对象移除软件工具具有缺陷。例如,一些解决方案只能移除出现在简单背景前面的对象,因为这样的解决方案只是移除不想要的区域,并且使用来自图像的其他部分的样本自动填充所得到的孔。

其他解决方案通过以下方式来改进该方法:更彻底地分析孔周围的区域,以确定对于缺失内容的适当填充。但是这样的解决方案未能确定被目标对象遮挡的对象的边界,从而导致不准确的内容填充。例如,由于不能分析叶子的边界并且重新创建边界的缺失部分,这样的解决方案不能准确地重新创建被球遮挡的叶子。因此,这样的解决方案将以叶子看起来不真实的方式填充叶子的缺失部分。

因此,需要可靠且准确地移除和填充对象的解决方案。



技术实现要素:

公开了用于从图像中移除对象的系统和方法。示例性方法访问包括对象集的图像。该方法通过将对象提供给经训练的模型来标识针对该对象集中的每个对象的完整边界。该方法接收对目标对象的选择,该目标对象要从对象中被移除。该方法还确定掩模集。每个掩模对应于该对象集中的对象,并且表示由对象的边界和目标对象的边界的相交部分限定的图像区域。该方法通过对对应的区域分别执行内容填充来更新每个掩模。该方法通过将每个经更新的掩模与图像的部分合并来创建输出图像。

提及这些说明性实施例不是为了限制或限定本公开,而是提供示例以帮助理解本公开。在具体实施方式中讨论了另外的实施例,并且在那里提供了进一步的描述。

附图说明

当参考附图阅读以下的具体实施方式时,可以更好地理解本公开的特征、实施例和优点。

图1是描绘根据本公开的实施例的用于从图像中移除对象的应用组件的示例的图;

图2描绘了根据本公开的实施例的用于从图像中移除对象的系统实现的示例;

图3描绘了根据本公开的实施例的用于从图像中移除对象的过程的示例;

图4描绘了根据本公开的实施例的对象移除环境的中间结果和最终结果的示例;

图5描绘了根据本公开的实施例的用于训练条件生成对抗网络以检测对象的边界的过程的示例;

图6描绘了根据本公开的实施例的在图5中使用的训练数据的示例;以及

图7描绘了根据本公开的实施例的用于从图像中移除对象的计算系统的示例。

具体实施方式

如上文所讨论的,用于移除对象的现有解决方案存在缺陷,其包括对被移除的对象的不真实的内容填充。相反,本文中描述的实施例通过以下方式来有利于更准确的对象移除:使用深度学习来检测输入图像中存在的对象的边界,找到那些对象之间的相交部分,以及将内容填充应用于每个相交部分。因此,所公开的解决方案创建了更美观的结果,因为重新创建了底层对象的边界并且适当地填充了被移除的对象。

出于讨论目的,引入以下非限制性示例。在计算设备上执行的图像处理应用访问摄影图像。图像描绘了草坪上的花园桌子和桌子上的酒瓶。酒瓶的上部区域遮挡了草坪,并且酒瓶的下部区域遮挡了桌子。该应用接收来自图形设计者的、应当从图像中移除酒瓶的输入。

图像处理应用标识图像内的对象,具体是桌子、草坪和酒瓶。然后,图像处理应用标识检测到的对象的边界或轮廓。在一些情况下,使用诸如条件生成对抗网络等深度学习。继续该示例,应用确定第一区域或掩模以及第二区域或掩模,该第一区域或掩模与瓶子和草坪之间的相交部分或重叠相对应,该第二区域或掩模与瓶子和桌子的重叠相对应。

在检测到每个区域的情况下,图像处理应用例如基于形状所基于的对象的内容、用内容感知填充来填充掩模或使掩模完整。内容感知填充涉及:基于对象的现有内容重新创建合适的内容,以填充掩模的空白空间。例如,为了填充先前被酒瓶的上部部分覆盖的草坪区域,图像处理应用使用来自草坪的其余部分的内容来智能地使掩模完整。应用在不考虑第二掩模的情况下填充第一掩模,反之亦然。一旦两个掩模都被填充,应用将区域组合成输出图像,这作为没有酒瓶的原始图像。

所公开的解决方案提供了图像对象移除领域的技术改进。例如,某些实施例使用针对条件生成对抗网络生成训练数据的改进方法,并且然后使用经训练的网络来标识完整边界不可用的、被遮挡的对象的边界。更具体地,图像处理应用生成稳健的训练数据集,这些训练数据包括描绘边界已知的对象的图像、以及边界已经被人工遮挡的经修改的图像。然后通过该数据集训练条件生成对抗网络。通过使用网络,某些实施例可以使对象的缺失边界完整。此外,通过将内容感知填充分别应用于来自不同重叠对象的区域,实施例提供了比先前的解决方案更真实的对象移除。

此外,所公开的解决方案提供了相对于以下解决方案的技术改进:预测分割标签(例如,图像中存在的对象的类型)但是未能预测图像中的每个对象的边界并且确定对象和目标对象之间的每个相交部分。相反,所公开的解决方案预测缺失区域的分割标签,从而生成关于所预测的对象定位和目标对象的形状细节的信息。所公开的解决方案可以将分割掩模与输入图像组合以进行完整预测。通过以这种方式引导分割过程,所公开的解决方案将深度生成模型的长处与分割信息相组合,从而产生更真实的预测,尤其是对于不同对象之间的边界。另外,与在给定输入图像的情况下仅能够进行单个预测的先前的解决方案相比,所公开的解决方案提供交互式和多模态的预测。

如本文中公开的,“图像”是指照片、图像、文本、用户界面元件等的电子表示。图像的示例包括文档、文档或文档。图像可以包括一个或多个对象。

如本文中公开的,“对象”是指图像的独立组分。示例对象包括形状、字母、文本框、背景对象等。每个对象具有边界。

如本文中使用的,对象的“边界”或“轮廓”是指围绕对象的外周界。例如,围绕橙子的边界可以是圆的或接近圆的。更复杂的对象的边界可以是非线性的,例如,叶子或动物就是这种情况。

如本文中使用的,“区域”或“掩模”是指为特定用途标识或指定图像的某些像素的数据结构。例如,掩模可以标识要被填充的孔中的像素。

现在转向附图,图1是描绘根据本公开的实施例的用于从图像中移除对象的应用组件的示例的图。图1描绘了图像处理环境100,其包括输入图像110、计算系统101和输出图像140。计算系统101执行图像处理应用102并且使用机器学习模型105,计算系统101的示例在图6中被更详细地示出。

输入图像110包括第一对象112(正方形)和第二对象113(椭圆形)。可以看出,对象113在对象112的右下角中部分地遮挡对象112。因为输入图像110可以是数字化照片或包含像素的经渲染图像,所以图像处理应用102确定对象112或113及其边界。然后,图像处理应用102接收将对象113作为目标对象的指定。进而,图像处理应用102确定对象112和113的边界,确定对象112和113之间的相交部分,并且将内容填充应用于相交部分。可以看出,输出图像140示出了与对象112相对应的对象142。

对于具有更多对象的输入图像,图像处理应用102标识更多掩模并且将内容填充分别应用于对应的对象相交部分。然后,图像处理应用102将相交部分或掩模合并,成为输出图像140。图2描绘了包括更多对象的另一示例。

在一些情况下,图像处理应用102可以使用机器学习模型105来执行一个或多个任务。例如,如所描绘的,机器学习模型105是条件生成对抗模型,其包括生成模型106和判别模型107。图像处理应用102可以通过使用训练数据108来训练生成模型106和判别模型107。关于图5讨论示例性训练过程,但可以使用其他过程。

但是,不同的机器学习模型也可以存在于图像处理环境100中。机器学习模型105采用的合适模型的其他示例是预测模型、分类模型、生成模型和判别模型。此外,图像处理应用102也可以使用附加模型,例如以执行不同任务。例如,图像处理应用102可以使用第一机器学习模型来执行对象检测,并且使用第二机器学习模型来执行对象边界检测。类似地,机器学习可以用于执行内容感知填充。

图2描绘了根据本公开的实施例的用于从图像中移除对象的系统实现的示例。图2描绘了对象移除环境200,其包括对象检测模块250、对象边界模块252、对象相交模块253和内容填充模块254。为了示例目的,这些模块分离;本文中描述的功能性可以跨图像处理应用102包括的任何数目的模块而被实现。另外,一个或多个模块可以使用机器学习能力。

对象移除环境200还描绘了各个阶段的输入和输出。更具体地,对象移除环境200包括输入图像211、掩模260、掩模261和输出图像240。在一些情况下,图像处理应用102可以输出中间步骤,以用于调试或用于说明性目的。

对象检测模块250接收输入图像211,输入图像211包括对象212、对象213和对象214。对象213被指定为目标对象或者要从输入图像211中被移除的对象。可以看出,对象213与对象212和对象214相交。对象边界模块252检测对象212和213的边界。出于示例目的,示出了两个对象。在输入图像211包括多于两个对象的情况下,对象边界模块252确定针对每个附加对象的边界。

对象相交模块253确定对象212或对象214是否与对象213相交。如输入图像211中所描绘的,对象212和对象214都与对象213相交。对象相交模块253通过分析表示对象212-214的向量来确定对象的相交部分。对象相交模块253输出掩模260和掩模261,掩模260表示对象212和对象213之间的相交部分,掩模261表示214和213之间的相交部分。在输入图像211包括与目标对象相交的多于两个对象的情况下,可以确定附加的相交部分。

内容填充模块254接收掩模261和262,并且执行区域的填充。如进一步讨论的,可以使用不同的填充方法,诸如内容感知填充。可以看出,输出图像240包括与对象212相对应的对象242和与对象214相对应的对象243。对象242和243被填充,并且看起来大致类似于好像对象是在前面没有对象213的情况下绘制的。

图3描绘了根据本公开的实施例的用于从图像中移除对象的过程300的示例。图像处理应用102可以实现过程300,但是其他软件应用和计算系统也可以实现过程300。出于示例目的,关于图4讨论图3。

在框301处,过程300涉及访问包括对象的图像。图像处理应用102访问输入图像。图像处理应用102可以从外部设备或文件接收输入图像。备选地,图像处理应用102可以响应于用户绘图命令来创建输入图像。

图4描绘了根据本公开的实施例的对象移除环境的中间结果和最终结果的示例。图4描绘了输入图像401、相交区域402-403、经填充图像404-405和输出图像406。在框301处,图像处理应用102访问输入图像401。

可以看出,输入图像401描绘了位于草地411上的游泳池410,其中木制对象412遮挡了游泳池410的一部分和草地411的一部分。图像处理应用102使用对象检测模块250来标识游泳池410和草地411。可以使用不同的方法来进行对象标识。例如,机器学习模型105是经训练的分类模型,其可以基于已知图像(例如,对象、植物、动物、面部、汽车等)的训练集来检测图像的存在。用于对象标识的附加方法包括模板匹配、线性判别分析(lda)、支持向量机(svm)。

在框302处,过程300涉及标识针对每个对象的完整边界。在一些情况下,图像处理应用102可以使用经训练的条件生成对抗网络来检测对象的边界。更具体地,图像处理应用102将每个对象提供给模型,并且模型又提供表示对象的完整边界的输出。

一些对象边界可以是完整的(例如,没有被另一对象遮挡)。其他边界(诸如被目标对象遮挡的对象的边界)可能是不完整的。图像处理应用102检测这些边界。

生成对抗网络首先由蒙特利尔大学(universitedemontreal)的信息与操作研究学院(departementd'informatiqueetderechercheoprationnelle)的ianj.goodfellow等人于2014年在“generativeadversarialnetworks”中提出。生成对抗网络使用生成器来生成新的数据实例,并且使用鉴别器来评估这些实例是否属于训练数据集。

判别模型试图对输入数据进行分类。例如,可以训练判别模型以预测电子邮件消息是spam还是非spam,或者图像描绘的是狗还是不是狗。更具体地,判别模型将特征(在输入中检测到)映射到标签。

相反,生成模型试图确定如何达到特定预测。例如,生成模型试图理解为什么狗的图片被分类为狗。生成模型不是在给定输入的情况下预测标签,而是试图预测与特定标签(例如,狗)相关的特征。

通过使用经训练的模型,可以重新创建复杂形状的边界。例如,在一些情况下,重新创建规则形状的边界可能相对简单(例如,线性完成),但是其他对象的边界更难以重新创建。例如,叶子的边界不完整,因为边界被目标对象遮挡,该目标对象要被移除。通过使用经训练的条件生成对抗网络,图像处理应用102重新创建叶子的边界,其可能是复杂的和非线性的。参考图5描述了用于训练条件对抗网络的示例性过程。

继续该示例,图像处理应用102标识针对游泳池410和草地411的边界。

在框303处,过程300涉及接收对对象的选择,该对象作为要从图像中移除的目标对象。图像处理应用102可以从用户界面或从另一输入接收对目标对象的选择。基于将对象标识为目标对象,图像处理应用102继续到框304,以标识其他对象的边界与目标对象的边界之间的相交部分。继续该示例,图像处理应用102接收木制对象412是要被移除的目标对象的标识。

在框304处,过程300涉及确定掩模集。每个掩模可以对应于对象并且表示由对象的边界和目标对象的边界的相交部分限定的图像区域。继续该示例,图像处理应用102标识掩模420(在图像402中示出)和421(在图像403中示出)。更具体地,与游泳池410相对应的掩模420表示游泳池410与木制对象412之间的相交区域。与草地411相对应的掩模421表示草地411与木制对象412之间的相交区域。

在框305处,过程300涉及通过分别对对应区域执行内容填充来更新掩模集。可以使用不同的方法进行填充。在示例中,图像处理应用102使用内容感知填充来填充由每个掩模标识的对应区域或孔。不同类型的内容感知填充是可能的。

通常,内容感知填充算法寻求通过以下方式来近似地重建孔(由掩模表示的部分):重新布置来自存在的对象的其余部分(例如,采样区域)的小的正方形像素补丁并且将其拼接在一起。更具体地,内容感知填充从采样区域标识近似的匹配补丁以用于掩模。来自对象的候选补丁以迭代方式被选择、测试和细化。所得到的重建可以通过以下方式填充由掩模表示的区域:使得看起来由掩模表示的部分(例如,特定对象与目标对象之间的相交部分)从未被遮挡。

在一些情况下,该内容感知填充可以感知对象边界。例如,内容感知填充方法可以分析要被填充的形状的边界内的区域,并且不考虑边界之外的区域,这在某些情况下可以产生更好的结果。

在一些情况下,基于补丁的合成器可以用于执行内容填充。在示例中,接收第一用户输入和第二用户输入,第一用户输入指定原始图像中要被填充的孔;第二用户输入指示可以从中采样像素的原始图像的采样区域,该采样区域排除孔。约束掩模用于存储采样区域,并且基于补丁的合成器被配置为从由约束掩模指定的采样区域中采样的补丁合成目标图像。

例如,基于补丁的合成器可以使用随机算法执行补丁合成,以生成和评估候选补丁并且标识图像补丁之间的近似的最近邻匹配。为了使用从源图像变换的图像补丁来构造给定的目标图像(例如,孔),可以使用被称为最近邻域(nnf)的数据结构来管理源图像和目标图像中的补丁之间的映射。nnf包括针对目标图像中的每个像素的变换。变换可以包括相似性变换。对于给定像素,nnf中针对该像素的变换标识对应的源补丁,可以测试源补丁与关联于像素的目标补丁的相似性。基于补丁的合成器的目标是标识与每个目标补丁(即,最近邻)最佳匹配的源补丁(例如,来自有效采样区域)。可以在合成过程的各个阶段期间更新nnf域,以保持跟踪针对每个目标补丁的最近邻源补丁。

基于补丁的合成器可以涉及针对多尺度解决方案的每个尺度的初始化、搜索、投票和放大的迭代过程。例如,对于来自目标图像(例如,孔)的每个目标像素,初始化组件分配随机生成的变换作为初始化。这些变换可以包括相似性变换。相似性变换参数可以是用户选择的,预定的,其某种组合等。通常,随机生成的变换在适用的相似性变换参数(例如,平移、缩放、旋转和/或镜像搜索域)上有界。有时,补丁有效性组件确定每个候选补丁的有效性。对于未通过补丁有效性测试的候选源补丁,初始化组件分配新的随机生成的变换以代替未通过测试的候选补丁,并且重复补丁有效性测试。如果补丁有效性测试未通过测试达到某个预定的次数(例如,256),则可以通过以下方式来生成候选补丁:减小有效采样区域(例如,扩大孔),界定对应的搜索域,或者使用随机生成的简单平移而不是完全的相似性变换。这样,该备选技术可以用于生成有效候选补丁。

通常,基于补丁的合成器执行搜索以标识改进nnf的候选补丁。补丁有效性组件确定每个候选补丁的有效性。如果候选源补丁未通过补丁有效性测试,则不利用候选补丁来改进nnf。通过补丁有效性的候选补丁被评估,以确定和nnf中的现有最近邻相比,给定候选补丁是否是针对特定目标补丁的更接近的匹配(例如,候选补丁是否减少补丁距离)。换言之,nnf是nnf和先前nnf中的最小值。

在一些实施例中,传播搜索组件和随机搜索组件可以以有利于确定性填充合成的方式标识候选补丁。在传统技术中,指定的孔可以被划分成若干子细分,以供不同的线程并行处理。在一个示例中,孔可以被划分成三个子细分,并且三个线程中的每个线程并行地处理对应的子细分。在传统技术中,特定线程以扫描线顺序处理所指派的子细分中的每个像素。例如,对于给定像素,传播搜索组件传播针对相邻像素的解并且选择最佳解,随机搜索组件标识针对经随机标识的像素的解并且选择最佳解,并且所指派的线程以扫描线顺序移动到下一像素上。然而,因为一些线程可能比其他线程更快地结束生成针对所指派的子细分的填充,所以通常使用从针对相邻子细分的不完整的填充中所采样的补丁来生成针对子细分的填充。

在一些实施例中,指定的孔可以被划分成比线程更多的子细分,并且可以指派多个线程以仅并行地处理非毗邻的子细分。在简单的示例中,假定孔被划分成六个块0-5。对于基于补丁的合成器的偶数迭代,三个线程可以以扫描线顺序处理交替的块(例如,0、2、4)。在奇数迭代期间,线程可以以反向扫描线顺序(例如,1、3、5)处理交替的块。因为在任何线程结束处理特定子细分时,相邻子细分已经完成了填充,所以每个线程结束处理其所指派的子细分的时间并不重要。因此,指派多个线程以并行处理非毗邻的子细分可以产生确定性结果。

在其他实施例中,可以应用波前技术来标识候选补丁,以有利于确定性填充合成。通常,波前处理是一种用于处理多维网格的技术,其中网格中的特定单元依赖于网格中的其他单元。通过在角落中开始,处理以跨网格的对角线扫描行进,其类似于波前。在基于补丁的合成的上下文中,可以利用波前而不是以扫描线顺序来实现搜索(例如,传播搜索组件可以传播针对上方的相邻像素和针对左侧的相邻像素的解)。此外,可以修改随机搜索组件的用于随机标识像素的随机数生成器。随机数生成器通常被设计成在给定种子时生成已知的均匀数序列。对于产生确定性补丁合成的波前处理,基于补丁的合成器迭代和随机搜索迭代接受(x,y)作为输入以生成均匀数。以这种方式,对于给定的(x,y)像素值,对随机数生成器的给定调用序列将产生相同的结果。以这种方式,可以标识确定性的候选补丁集,从而有利于确定性的填充合成。本领域普通技术人员将理解其他变型。

通常,基于补丁的合成器执行投票以生成建议的目标图像。通常,执行补丁投票以累积每个相交的邻补丁的像素颜色,并且对颜色投票进行加权平均。可以将所建议的目标图像传递到用户界面以作为预览进行呈现。如上所述,在每次后续迭代期间,更新所建议的目标图像,并且经更新的目标图像可以被传递到前端以用于每次迭代。结果是逐步更新、实时预览的。这些逐步更新可以给用户提供快速实时的反馈以及更早的机会以进行任何期望的改变以达到期望的填充。

基于补丁的合成器执行放大(例如,经由放大组件来放大当前nnf,以用作在下一尺度的后续迭代期间的基线)。由于该放大可以产生无效补丁,因此补丁有效性组件有利地确定与经放大的nnf相对应的候选补丁的有效性。在后续的基于补丁的合成器迭代期间,评估通过补丁有效性的候选补丁,以确定和从随机初始化的nnf生成的相对应的候选补丁相比,给定候选补丁是否是针对特定目标补丁的更接近的匹配。

通常,对于后续的渐增尺度,重复通过基于补丁的合成器的流,直到生成全分辨率解,并且将该全分辨率解传递到前端,以呈现给用户。在一些实施例中,在一些组件检测到经更新的(例如,由用户)采样区域和/或适用的平移、缩放、旋转和/或镜像搜索域时,基于补丁的合成器可以中断。在这种场景下,如上面更详细描述的,基于补丁的合成器可以挽救现有计算以提高速度并且避免不必要的重新计算,并且可以自动开始处理经更新的采样区域和/或搜索域。附加地和/或备选地,如上面更详细地描述的,基于补丁的合成器可以传递所建议的目标图像以作为预览呈现,并且在完成填充之前中断其过程以有利于用户输入。如上面更详细地描述的,用以继续处理的用户指示可以触发基于补丁的合成器,以计算剩余的分辨率。

然而,在一些情况下,由内容感知填充所填充的孔包括不正确的图像内容,从而产生奇怪和不自然的结果。例如,通过将候选补丁限制为二维平移,经重建的目标图像的潜在质量被限制。然而,caf技术已经在计算上很昂贵,并且简单地扩展搜索域导致计算时间的不可接受的增加。

因此,在一些情况下,可以请求用户输入。交互系统包括用户界面,其允许用户指定孔和用于填充孔的采样区域。采样区域可以被存储在约束掩模中,该采样区域通常排除孔。刷子工具可以有利于用户输入添加到采样区域或从采样区域减去。在检测到用户输入完成时,交互系统可以自动将所得到的约束掩模传递给后端内容感知填充引擎,以使用指定的约束掩模合成内容感知填充。

一些实施例可以使用改进的补丁有效性测试,以用于基于补丁的合成应用。补丁旋转和缩放的引入增加了确定候选补丁是否是落在采样区域内的有效补丁的复杂性。为了测试包括多个像素的给定补丁的有效性,可以执行一系列简化测试中的一个或多个简化测试,以确定补丁的每个像素是否落在采样区域(例如,由约束掩模指定)内。可以通过以下方式来执行用于补丁有效性的孔扩张测试:扩张约束掩模中的孔以生成减小的约束掩模,并且执行查找以确定补丁中的表示性像素是否落在由减小的约束掩模指定的区域内。通过该测试的补丁是有效的。可以通过查找补丁的表示性像素是否落在孔内(例如,落在由约束掩模指定的采样区域之外)来执行用于补丁无效性的非扩张测试。满足该准则的补丁是无效的。可以通过查找补丁中的每个像素是否落在由约束掩模指定的采样区域内,来执行用于补丁有效性的综合像素测试。由于这种综合像素测试的相对较大的计算需求,有时只有使用其他两个测试中的任何一个测试无法确定其有效性的那些补丁通过综合像素测试来测试。其像素通过综合测试的补丁是有效的。可以将一个或多个补丁有效性测试包含到交互系统中,以自动合成内容感知填充。

例如,测试补丁的有效性可以包括使用相似性变换。相似性变换是保留形状的变换,其可以包括一个或多个平移、旋转、缩放或反射(即,镜像)。更具体地,示例方法涉及:生成经相似性变换的候选补丁以用于重建目标图像,基于对经相似性变换的候选补丁的表示性像素的评估来将候选补丁验证为落在源图像的采样区域内的有效补丁,以及使用经验证的候选补丁自动重建目标图像。在一些情况下,候选补丁包括来自源图像的像素。在一些情况下,其中验证候选补丁包括执行第一补丁有效性测试,第一补丁有效性测试包括扩张采样区域中的孔以生成减小的采样区域,并且基于执行查找以确定表示性像素落在减小的采样区域内来验证候选补丁。在一些情况下,扩张采样区域包括基于候选补丁的宽度、允许的补丁旋转、最大允许的缩放因子和超级采样率,来增加扩张条带的宽度。

继续该示例,如在图像404-405中可以看出,图像处理应用102已经对区域430和431执行填充。更具体地,区域430描绘了对游泳池410的先前被遮挡的部分的填充,并且区域431描绘了对草地411的先前被遮挡的部分的填充。

在框306处,过程300涉及通过将每个经更新的掩模与图像的部分合并来创建输出图像。图像的部分是没有由任何掩模表示的图像区域。图像处理应用102通过组合经填充的图像来创建输出图像。继续该示例,如在输出图像406中可以看出,图像处理应用102合并图像404和405,包括区域430和431,使得输出图像406表示目标对象,即木制对象412的移除。

如所讨论的,实施例可以使用条件生成对抗网络来执行对象边界检测,例如,如在过程300的框302处执行的。图5示出了用于训练这种网络的过程的示例。

图5描绘了根据本公开的实施例的用于训练条件对抗网络以检测对象的边界的过程的示例。机器学习模型105可以是条件生成对抗网络,其包括生成模型106和判别模型107。训练生成对抗网络涉及同时优化生成模型106和判别模型107,生成模型106捕获数据分布,判别模型107估计样本来自训练数据而不是生成网络的概率。

在框501处,过程500涉及确定针对图像内的对象的边界。出于示例目的,关于图6讨论图5,因为图6描绘了示例训练图像。但其他训练图像也是可能的。

图6描绘了根据本公开的实施例的、在图5中使用的训练数据的示例。图6描绘了图像601、掩模602和图像603。图像处理应用102接收图像601并且确定图像中的对象的边界。具体地,图像处理应用102确定针对所描绘的叶子、所描绘的蜥蜴等的边界。掩模602描绘所确定的边界。

在框502处,过程500涉及通过以下方式来创建训练图像集:将不同的随机生成的掩模应用于每个图像的边界,使得掩模最后覆盖边界的一部分。图像处理应用102随机地确定中断叶子的一部分的掩模,如图像603内的点610所描绘的。以这种方式,图像处理应用102强制条件生成对抗网络预测叶子的现在缺失的边界。框501-502重复,直到创建足够大的训练数据集。可以使用不同类型的图像来加深或加宽训练数据集。例如,可以使用具有缺失边界的叶子的多个图像来加深训练集。

在框503处,过程500涉及向判别模型提供图像流,该图像流包括该训练图像集和由生成模型生成的伪图像。在一些情况下,图像处理应用102创建图像流,该图像流包括所生成的训练图像和由生成模型生成的一个或多个伪图像。在训练期间,生成模型106与对手,即判别模型107竞争。生成模型106可以被认为类似于伪造方团队,其试图生产假币并且在没有检测的情况下使用它,而判别模型类似于警察,其试图检测假币。在这个游戏中的竞争促使两个团队改进他们的方法,直到伪造制品与真正的制品无法区分。

在框504处,过程500涉及更新生成模型或判别模型的一个或多个参数,使得损失函数最小化。生成模型106和判别模型107都可以具有一个或多个可训练参数或权重。通过更新这些参数中的一个或多个参数来训练生成对抗网络。例如,图像处理应用102可以同时更新判别分布,以便它将来自生成分布的数据的样本与生成分布的样本区分开。

更具体地,图像处理应用102从判别模型并且针对流中的每个图像接收对图像中边界的标识。进而,图像处理应用102基于边界与参考边界之间的差异来计算损失函数,并且相应地更新模型的参数。判别模型可以标识伪图像不是真实的,并且因此不基于伪图像来更新任何参数。图像处理应用102可以使用经训练的机器学习模型105来结合过程300以预测对象的边界。

图7描绘了根据本公开的实施例的用于从图像中移除对象的计算系统的示例。计算设备700是计算系统101的示例,并且可以实现图像处理应用102。可以使用任何合适的计算系统来执行本文中描述的操作。所描绘的计算设备700的示例包括通信地耦合到一个或多个存储器设备704的处理器702。处理器702执行被存储在存储器设备704中的计算机可执行程序代码730,访问被存储在存储器设备704中的数据720,或者两者。处理器702的示例包括微处理器、专用集成电路(“asic”)、现场可编程门阵列(“fpga”)或任何其他合适的处理设备。处理器702可以包括任何数目的处理设备或核,包括单个处理设备。计算设备的功能性可以用硬件、软件、固件或其组合来实现。

存储器设备704包括用于存储数据、程序代码或两者的任何合适的非暂态计算机可读介质。计算机可读介质可以包括能够向处理器提供计算机可读指令或其他程序代码的任何电子、光学、磁性或其他存储设备。计算机可读介质的非限制性示例包括闪存、rom、ram、asic或处理设备可以从其读取指令的任何其他介质。指令可以包括由编译器或解释器从以任何合适的计算机编程语言(包括例如c、c 、c#、visualbasic、java或脚本语言)编写的代码生成的处理器特定指令。

计算设备700还可以包括一定数目的外部或内部设备,诸如输入或输出设备。例如,计算设备700被示出为具有一个或多个输入/输出(“i/o”)接口708。i/o接口708可以从输入设备接收输入,或者向输出设备提供输出。一个或多个总线707也被包括在计算设备700中。总线707通信地耦合相应计算设备700的一个或多个组件。

计算设备700执行程序代码730,程序代码730将处理器702配置为执行本文中描述的一个或多个操作。例如,程序代码730使处理器执行图2或3中描述的操作。

计算设备700还包括网络接口设备710。网络接口设备710包括适合于建立到一个或多个数据网络的有线或无线数据连接的任何设备或设备组。网络接口设备710可以是无线设备,并且具有天线714。计算设备700可以使用网络接口设备710经由数据网络与实现计算设备或其他功能性的一个或多个其他计算设备通信。

计算设备700还可以包括显示设备712。显示设备712可以是lcd、led、触摸屏或可操作以显示关于计算设备700的信息的其他设备。例如,信息可以包括计算设备的操作状态、网络状态等。

一般考虑因素

本文中阐述了很多具体细节以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,没有详细描述本领域普通技术人员已知的方法、装置或系统以免模糊所要求保护的主题。

除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“运算”、“确定”和“标识”等术语的讨论是指计算设备的动作或过程,计算设备诸如一个或多个计算机或类似的电子计算设备,这些动作或过程操纵或转换在计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内被表示为物理电子或磁量的数据。

本文中讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括任何合适的组件布置,该组件布置提供以一个或多个输入为条件的结果。合适的计算设备包括访问所存储的软件的多用途的基于微处理器的计算机系统,该所存储的软件将计算系统从通用计算装置编程或配置为实现本主题的一个或多个实施例的专用计算装置。可以使用任何合适的编程、脚本或其他类型的语言或语言组合,来以要被用于编程或配置计算设备的软件来实现本文中包含的教导。

本文中公开的方法的实施例可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化——例如,可以将框重新排序、组合和/或分成子框。某些框或过程可以并行执行。

在本文中,“适于”或“被配置为”的使用意味着开放且包容性的语言,其不排除适于或被配置为执行附加任务或步骤的设备。另外,“基于”的使用意味着开放且包容性,因为“基于”一个或多个所记载的条件或值的过程、步骤、计算或其他动作在实践中可以基于除了所记载的那些之外的附加条件或值。本文中包括的标题、列表和编号仅是为了便于解释而不是限制性的。

虽然已经关于本主题的特定实施例详细描述了本主题,但是应当理解,本领域技术人员在理解前述内容之后可以容易地产生这样的实施例的变更、变型和等同物。因此,应当理解,本公开是出于示例而非限制的目的而呈现的,并且不排除包括对于本领域普通技术人员来说很清楚的、对本主题的这样的修改、变型和/或添加。


技术特征:

1.一种从图像中移除对象的方法,所述方法包括:

访问包括多个对象的图像;

通过将每个对象提供给经训练的模型,来标识针对所述多个对象中的每个对象的完整边界;

接收对来自所述多个对象的目标对象的选择,所述目标对象要从所述图像中被移除;

确定掩模集,其中每个掩模对应于所述多个对象中的对象,并且表示由所述对象的所述边界与所述目标对象的所述边界的相交部分限定的、所述图像的区域;

通过对对应的所述区域分别执行内容填充,来更新每个掩模;以及

通过将经更新的所述掩模中的每个掩模与所述图像的部分合并,来创建输出图像。

2.根据权利要求1所述的方法,其中所述图像的部分是所述图像的没有由所述掩模中的任何掩模表示的区域。

3.根据权利要求1所述的方法,其中所述经训练的模型是条件对抗网络。

4.根据权利要求1所述的方法,其中访问所述图像还包括:在所述图像中检测所述多个对象。

5.根据权利要求1所述的方法,其中所述填充包括:基于对应的所述对象,将内容感知填充分别应用于每个掩模。

6.根据权利要求1所述的方法,其中创建所述输出图像包括:从所述掩模中创建层集,并且将所述层集中的每个层合并成所述输出图像。

7.根据权利要求1所述的方法,其中填充所述掩模中的每个掩模还包括:

将每个掩模分成多个段;

对每个段执行内容感知填充;以及

将每个段组合成所述掩模。

8.根据权利要求1所述的方法,其中填充所述掩模中的每个掩模包括:

生成候选补丁,所述候选补丁包括来自由所述掩模表示的所述对象的像素;

验证所述候选补丁;以及

使用经验证的所述候选补丁,来自动重建所述掩模的像素。

9.一种用于训练条件生成对抗网络以预测对象的边界的计算机实现的方法,所述方法包括:

确定针对图像内的对象的参考边界;

通过以下方式从所述图像中创建训练图像集:将不同的随机生成的掩模应用于所述参考边界,使得所述掩模最后遮挡所述参考边界的一部分;

通过以下方式训练包括生成模型和判别模型的条件生成对抗网络:

向所述判别模型提供图像流,所述图像流包括所述训练图像集和由所述生成模型生成的伪图像,其中所述伪图像是随机生成的;以及

更新所述生成模型或所述判别模型的一个或多个参数,使得损失函数被最小化。

10.根据权利要求9所述的方法,其中所述训练还包括:针对所述图像流中的每个图像,通过以下方式迭代地训练条件生成对抗网络:

从判别模型并且针对每个图像,接收对所述图像中的边界的标识;

基于所述边界与所述参考边界之间的差异,计算损失函数;以及

更新所述判别模型的参数,使得所述损失函数被最小化。

11.根据权利要求9所述的方法,其中所述判别模型标识所述伪图像不是真实的,并且其中更新所述参数不基于所述伪图像。

12.根据权利要求9所述的方法,还包括:

访问包括第一对象和第二对象的图像;

通过以下方式标识针对每个对象的边界:

将所述对象提供给所述条件对抗网络;

从所述条件对抗网络接收针对所述对象的完整边界;确定掩模集,其中每个掩模表示由所述第一对象的所述边界与所述第二对象的所述边界的相交部分限定的、所述图像的区域;通过填充所述掩模中的每个掩模,来更新所述掩模集;以及

通过将经更新的所述掩模中的每个掩模合并成输出图像,来创建输出图像。

13.一种系统,包括:

一个或多个处理设备;以及

非暂态计算机可读介质,所述非暂态计算机可读介质通信地耦合到所述一个或多个处理设备,其中所述一个或多个处理设备被配置为执行指令并且从而执行包括以下的操作:

访问包括多个对象的图像;

通过将每个对象提供给经训练的模型,来标识针对所述多个对象中的每个对象的完整边界;

接收对来自所述多个对象的目标对象的选择,所述目标对象要从所述图像中被移除;

确定掩模集,其中每个掩模对应于所述多个对象中的对象并且表示由所述对象的所述边界与所述目标对象的所述边界的相交部分限定的、所述图像的区域;

通过对对应的所述区域分别执行内容填充,来更新每个掩模;以及

通过将经更新的所述掩模中的每个掩模与所述图像的部分合并,来创建输出图像。

14.根据权利要求13所述的系统,其中所述图像的部分是所述图像的没有由所述掩模中的任何掩模表示的区域。

15.根据权利要求13所述的系统,其中所述经训练的模型是条件对抗网络。

16.根据权利要求13所述的系统,其中访问所述图像还包括:在所述图像中检测所述多个对象。

17.根据权利要求13所述的系统,其中所述填充包括:基于对应的所述对象,将内容感知填充分别应用于每个掩模。

18.根据权利要求13所述的系统,其中创建所述输出图像包括:从所述掩模中创建层集,并且将所述层集中的每个层合并成所述输出图像。

19.根据权利要求13所述的系统,其中填充所述掩模中的每个掩模还包括:

将每个掩模分成多个段;

对每个段执行内容感知填充;以及

将每个段组合成所述掩模。

20.根据权利要求13所述的系统,其中填充所述掩模中的每个掩模包括:

生成候选补丁,所述候选补丁包括来自由所述掩模表示的所述对象的像素;

验证所述候选补丁;以及

使用经验证的所述候选补丁,来自动重建所述掩模的像素。

技术总结
本公开的实施例涉及边界感知对象移除和内容填充。公开了用于从图像中移除对象的系统和方法。图像处理应用标识图像中的对象集中的每个对象的边界。在一些情况下,标识使用深度学习。图像处理应用通过将对象提供给经训练的模型来标识针对该对象集中的每个对象的完整边界。图像处理应用确定掩模集。每个掩模对应于该对象集中的对象,并且表示由对象的边界和目标对象的边界的相交部分限定的图像区域,该目标对象要从图像中被移除。图像处理应用通过对对应的区域分别执行内容填充来更新每个掩模。图像处理应用通过将每个经更新的掩模与图像的部分合并来创建输出图像。

技术研发人员:S·塔格拉;A·亚恩;S·索尼;A·贝迪
受保护的技术使用者:奥多比公司
技术研发日:2019.09.10
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-49571.html

最新回复(0)