使用深度学习的图像蒙板的制作方法

文档序号:15449652发布日期:2018-09-14 23:49阅读:262来源:国知局

本公开的各实施例总体上涉及图像处理,具体地涉及使用深度学习的图像蒙板。



背景技术:

通常期望从图像中提取对象,例如,将对象与不同的背景组合。为了方便去除前景对象,可以使用图像蒙板(matte)或蒙板来提取图像中的特定前景对象。由于图像中的像素颜色可以是前景对象的颜色、背景的颜色或前景和背景颜色的某种组合,所以图像蒙板可能包括指示存在于每个像素处的前景颜色的百分比的α值。例如,当相机像素传感器接收来自前景对象和背景两者的光时,像素可以具有前景和背景颜色的组合。通常,在对象的边缘周围的像素以及在对应于头发、毛皮和运动模糊的区域中的像素通常具有前景和背景颜色的组合。因此,可以使用这样的α值来从背景中提取前景图像。

因为确定每个像素的α值可能是耗时的,所以可以使用三元图来减少确定α值的像素数。通常,三元图指示作为纯前景、纯背景、以及混合的前景和背景颜色的未知组合的图像的区域。因此,可以仅确定具有未知的颜色组合的区域中的α值。

尽管三元图可以减少用于确定图像的α值的数目,但是与像素相关联地生成准确的α值可能是困难的,特别是在前景对象仅占据像素的部分(例如,头束)、存在透明对象(例如,玻璃或烟雾)、或者存在光学模糊(例如,对象没有焦点对准)的情况下。用于分离前景和背景的现有的蒙板方法在很大程度上依赖于颜色来确定与像素相关联的α值。例如,基于传播的方法使用已知的前景和背景颜色值填充未知区域来在已知的前景和背景区域之间传播未知区域。作为另一示例,基于采样的方法从已知的前景和背景区域获取颜色样本,并且将样本用作未知区域中的像素处的前景/背景颜色的候选。或者,存在首先使用采样方法并且然后将结果馈送到传播方法的方法。一些现有的方法已经与估计α值相关联地利用深度学习用于生成蒙板。用于预测α值的一种深度学习方法利用来自基于传播的方法的结果和归一化的rgb颜色。另一种深度学习方法训练网络以学习肖像中的个人的三元图。然后可以将三元图与基于传播的方法结合使用以预测α值。

如上所述,这些现有方法中的每一种主要依赖于颜色来确定α值。因为现有的方法依赖于颜色,所以当前景和背景颜色和/或纹理彼此相似并且在边缘方面有困难时,这样的方法无法准确地确定α值,使得具有毛皮或毛发的图像难以分割。因此,这样的方法无法产生具有相似的前景和背景颜色和/或纹理的典型的日常场景的准确的蒙板。



技术实现要素:

本发明的实施例涉及被训练为生成准确地反映图像中的像素的前景/背景关系的图像的蒙板的系统。根据本发明的实施例,这样的系统可以使用神经网络来创建。在这方面,可以训练神经网络以帮助生成图像的蒙板。由神经网络系统生成的蒙板的质量取决于系统如何被训练方式以及其在训练以生成蒙板时接收到什么数据。为了创建生成精确蒙板的神经网络系统,可以对系统进行训练,以便不仅基于颜色而且还基于结构和纹理来区分图像中的前景和背景。除了颜色之外还利用结构和纹理来训练神经网络系统可以产生更准确的蒙板。

用于创建这样的神经网络系统的训练可以通过生成包括合成复合训练图像的训练数据集来实现。合成复合训练图像可以通过将从高对比度图像中提取的对象复合到新的背景上以创建合成复合训练图像来生成。训练图像/参考蒙板对可以用于训练系统以使用颜色、形状、纹理和/或图案来区分前景和背景以生成输入图像的精确蒙板。在训练期间,确定误差并且使用误差来调节系统以避免未来迭代中出现类似的误差。在训练完成之后,神经网络系统可以用于生成输入图像的准确蒙板。然后,可以使用这样的蒙板来从输入图像中正确地提取对象。可以使用新的背景编译提取的对象以创建复合图像。

附图说明

图1描绘了根据本公开的各种实施例的其中可以实践本公开的一个或多个实施例的环境的图;

图2描绘了根据本公开的各种实施例的其中可以采用本公开的一些实现的操作环境的示例配置;

图3描绘了根据本公开的各种实施例的说明性对象提取系统的各方面;

图4提供了根据本公开的实施例的从输入图像生成蒙板的说明性方法;

图5示出了过程流程,其示出了根据本发明的实施例的用于生成用于训练神经网络系统以生成输入图像的蒙板的合成复合训练图像的实施例;

图6示出了根据本发明的实施例的用于训练神经网络系统以从输入图像生成蒙板的示例方法;

图7示出了根据本发明的实施例的用于从输入图像生成蒙板用于从输入图像中提取对象的示例方法;以及

图8是其中可以采用本公开的实施例的示例计算设备的框图。

具体实施方式

通常,用户希望从图像中提取对象。在提取之后,例如,可以将对象与新的背景组合使用来创建复合图像。例如,这样的提取过程使得用户能够将图片中在人物后面的背景从城市景观改变为热带海滩。为了从图像中提取对象,用户可以单独地去除包括图像背景的每个像素。然而,这个过程是耗时且乏味的。此外,由于各个像素的边缘通常没有与对象的边缘对准,所以这个手动过程无法将包括前景和背景信息两者的像素考虑在内。对于诸如头发或毛皮等细节尤其会发生这种情况,因为它们可能比单个像素更细。

为了减少从图像中去除对象所花费的时间和精力并且为了将具有前景和背景信息两者的像素考虑在内,可以使用蒙板来执行对象提取。蒙板是一个用于将前景对象与图像的背景分离的过程。蒙板(有时称为α蒙板)通常包括α值,每个α值指示与相应像素相关联地存在的前景颜色的百分比。因此,在蒙板时,通过将图像的每个像素分类为前景、背景或包含前景和背景信息两者,将对象或前景与图像中的背景分离。包含前景和背景信息两者的像素例如在物理上位于相机传感器上时发生,一些光从背景接收,并且一些光从前景对象接收,并且该信息被混合成单个像素。这可能在例如当对象是半透明时(例如,彩色玻璃或面纱)、或者当由于运动或光学模糊而出现模糊时发生。

创建图像中的像素的α值是一个困难的任务。这是因为,通常用于求解每个像素的α值的蒙板等式是一个欠约束等式,具有更多未知数(例如,7个)来求解给定的较少的未知值(例如,3个)。蒙板等式可以表示为ii=αifi(1-αi)biαi∈[0,1]。在这样的等式中,已知值是像素i处的红色、绿色和蓝色(rgb)颜色ii。未知值包括前景的rgb颜色f,背景的rgb颜色bi和α值估计αi。α值估计通常是指包括前景信息的像素的百分比。

为了帮助约束其中存在未知颜色混合并且需要确定α值的图像的区域,可以使用三元图。三元图标记作为纯前景和/或纯背景的图像的区域,以及指示需要确定前景/背景百分比的图像的未知区域。三元图的这个未知区域指示像素有可能是前景颜色和背景颜色的混合的区域。在确定图像的未知区域的α值之后,蒙板可以将例如纯前景描绘为白色像素,将纯背景描绘为黑色像素,并且将包括前景和背景的像素描绘为基于前景与背景的百分比的适当的灰度阴影。

通常被实现为创建图像的蒙板的现有方法极大地依赖于利用颜色来确定像素的α值。也就是说,上述基于传播的方法、基于采样的方法和深度学习技术中的每个都依赖于颜色来确定α值。然而,通过这样的现有的基于颜色的方法产生的具有相似的前景/背景纹理和/或颜色的复杂图像的蒙板通常不能令用户感到满意,因为所得到的蒙板通常包含低频拖尾或高频短粗伪像。虽然现有的方法对于高对比度的前景/背景图像(例如,在白色背景上具有黑头发的人,或者针对绿色屏幕没有穿着绿色的人)来说表现优异,但是这样的方法可能不能很好地处理复杂的现实生活中的图像,例如,在具有建筑物、汽车和树木的城市景观前面的穿着毛皮的女人。

因此,本发明的实施例旨在促进高效和有效的图像蒙板。在这方面,可以生成由用户提供的图像的蒙板,其准确地反映对象的前景/背景组合区域(或混合区域)。这样的蒙板可以用于从图像中更精确地提取对象。例如,如果对象是格子球,则当球被放置在新的背景上时,这样的蒙板将允许以使得新的背景信息通过格子球的孔可见的方式来提取格子球。

在高层次,利用神经网络系统来生成准确的蒙板。特别地,神经网络系统除了颜色之外还使用结构和纹理信息来生成准确的蒙板。神经网络是一种松散地基于大脑如何使用大型连接神经元簇来解决问题的计算方法。神经网络是自我学习和训练的,使得所生成的输出反映期望的结果。如本文中所述,可以使用若干神经网络来训练神经网络系统。在这样的系统中,可以训练第一神经网络,例如蒙板神经网络,以基于输入图像和相应的三元图来生成蒙板,三元图指定已知的前景和背景区域以及未知的前景/背景混合区域。第一神经网络预测输入图像的每个像素的α值以创建蒙板。然后,基于这些预测的α值的精度来训练第一神经网络。可以训练第二神经网络,例如,细化神经网络,以从第一神经网络获取蒙板,并且细化蒙板以进一步增加α值的准确度和/或创建更尖锐的边缘。虽然通常被描述为单独的神经网络,但是根据本文中描述的实施例,可以训练任何数目的神经网络,包括单个神经网络。

通常,为了训练蒙板神经网络,蒙板神经网络可以基于训练输入图像及其相关联的三元图来输出训练蒙板。这样的训练蒙板可以包含每个像素的估计的α值。此后,将训练蒙板与参考蒙板(称为地面真实蒙板)相比较,以确定训练蒙板与参考蒙板之间的误差。误差可能包括基于蒙板比较而标识的图像像素的不正确地预测的α值。误差可以通过以下方式来确定:使用参考蒙板并且单独地使用训练蒙板从输入图像中提取对象,并且从而将提取的对象放置在相同的新的背景上以比较复合图像之间的任何rgb差异。然后通过蒙板神经网络反馈这样的误差,以适当地训练神经网络,例如通过调节网络连接的权重以减小误差的值。

可以执行类似的过程以训练细化神经网络。更具体地,可以向细化神经网络提供训练蒙板(例如,由蒙板神经网络生成的训练蒙板)和相应的训练输入图像,以输出训练细化蒙板。然后可以将训练细化蒙板与参考蒙板(称为地面真实蒙板)相比较,以确定训练细化蒙板与参考蒙板之间的误差。然后通过细化神经网络反馈这样的误差,以适当地训练神经网络,例如通过调节网络连接的权重以减小误差的值。

这个过程可以重复足够大量的训练周期,直到神经网络系统收敛到计算的误差足够小使得输出蒙板达到与参考蒙板的期望的相似度门限水平的状态。换言之,训练可以继续,直到预测的α值在期望的相似度门限水平之内。可以理解,训练蒙板神经网络和细化神经网络可以顺序地或同时地发生。

如本文中所述,训练神经网络系统以生成输入图像的蒙板确保了从输入图像中精确地提取对象。为此,在训练过程中,基于预测的α值,神经网络系统学习将从输入图像生成的蒙板和与输入图像中的前景对象相对应的参考蒙板之间的差异考虑在内。这样的训练确保了神经网络系统不仅基于颜色来识别前景/背景之间的差异,而且还识别假定某些结构的蒙板看起来是什么样的。例如,根据本发明的实施例,神经网络系统可以被训练为不仅能够利用颜色来创建蒙板,而且还能够学习结构,例如,假定头发和毛皮看起来是什么样的。这样的系统也可以被训练为学习图案,诸如从前景到背景的过渡的模糊。此外,这样的系统可以学习识别很可能具有前景/背景组合区域的特征,例如,识别出脸部周围将具有头发。

如本文中所述,为了创建一种能够处理各种主题的鲁棒系统,大量和多种图像通常是有帮助的。创建足够的训练数据集以完成这样的鲁棒的训练是很难的,因为用于蒙板的图像应当避免运动模糊以生成准确的蒙板。因此,由于例如风的意外运动,用于训练的室外图像可能变得无用。类似地,由于受试者的运动,诸如人或动物等生物的图像可能是无用的。因此,根据本发明的实施例,可以生成合成复合图像以适当地训练蒙板神经网络系统从而训练系统以便不仅利用颜色来创建蒙板而且还学习结构、纹理和/或图案。

转到图1,图1是其中可以实践本公开的一个或多个实施例的环境100的图。环境100包括一个或多个用户设备,诸如用户设备102a-102n。用户设备的示例包括但不限于个人计算机(pc)、平板计算机、台式计算机、处理单元、这些设备的任何组合、或者具有一个或多个处理器的任何其他合适的设备。每个用户设备可以包括由创意装置108支持的至少一个应用。应当理解,以下描述通常可以以用户设备102a为例,并且可以使用任何其他用户设备。

用户设备的用户可以经由网络106来利用由创意装置108支持的各种产品、应用或服务。用户设备102a-102n可以由各种用户操作。用户的示例包括但不限于使用创意工具来生成、编辑、跟踪或管理创意内容的创意专业人士或爱好者、广告商、发行商、开发人员、内容所有者、内容管理者、内容创建者、内容查看者、内容消费者、设计者、编辑者、这些用户的任何组合、或者使用数字工具来创建、编辑、跟踪或管理数字体验的任何其他用户。

如本文中所述,数字工具包括用于以电子方式执行功能或工作流程的工具。数字工具的示例包括但不限于内容创建工具、内容编辑工具、内容发布工具、内容跟踪工具、内容管理工具、内容打印工具、内容消费工具、这些工具的任何组合、或者可以用于创建、编辑、管理、生成、跟踪、消费或执行与内容相关的任何其他功能或工作流程的任何其他工具。数字工具包括创意装置108。

如本文中所述,数字体验包括可以通过电子设备消耗的体验。数字体验的示例包括内容创建、内容编辑、内容跟踪、内容发布、内容张贴、内容打印、内容管理、内容查看、内容消费、这些体验的任何组合、或者可以执行的与内容相关的任何其他工作流程或功能。

如本文中所述,内容包括电子内容。内容的示例包括但不限于图像、视频、网站、网页、用户界面、菜单项、工具菜单、杂志、幻灯片、动画、社交帖子、评论、博客、数据馈送、音频、广告、矢量图形、位图、文档、一个或多个内容的任何组合、或者任何其他电子内容。

用户设备102a-102n可以经由网络106连接到创意装置108。网络106的示例包括但不限于互联网、局域网(lan)、无线区域网络、有线区域网络、广域网等。

创意装置108包括用于向用户提供一个或多个数字体验的一个或多个引擎。创意装置108可以使用一个或多个服务器、具有相应的应用程序编程接口的一个或多个平台、云基础设施等来实现。此外,每个引擎也可以使用一个或多个服务器、具有相应的应用程序编程接口的一个或多个平台、云基础架构等来实现。创意装置108还包括数据存储单元112。数据存储单元112可以被实现为一个或多个数据库或者一个或多个数据服务器。数据存储单元112包括由创意装置108的引擎使用的数据。

用户设备102a的用户访问网页或应用商店以探索由创意装置108支持的应用。创意装置108提供应用作为软件即服务(saas),或者作为可以安装在用户设备102a上的独立应用,或者作为组合。用户可以通过提供用户细节以及还通过创建登录细节来创建与创意装置108的账户。或者,创意装置108可以响应于接收到用户细节来自动创建用户的登录细节。在一些实施例中,还提示用户安装应用管理器。应用管理器使得用户能够管理由创意装置108支持的各种应用的安装,并且还可以管理与应用相关联的其他功能,诸如更新、订阅账户等。用户细节由用户管理引擎116接收并且作为用户数据118存储在数据存储单元112中。在一些实施例中,用户数据118还包括存储用户细节的账户数据120。

用户可以选择试用账户,或者可以基于用户选择的账户类型或订阅来进行支付。或者,支付可以基于用户选择的产品或产品数。基于用户的支付细节,用户操作简档122由授权引擎124生成。用户操作简档122存储在数据存储单元112中,并且指示用户对各种产品或服务的授权。用户操作简档122还指示用户的类型,即免费、试用、学生、打折还是付费。

在一些实施例中,用户管理引擎116和授权引擎124可以是执行这两个引擎的功能的单个引擎。

然后,用户可以经由应用下载管理引擎126来安装由创意装置108支持的各种应用。存在于数据存储单元112中的应用安装程序或应用程序128由应用下载管理引擎126提取并且被使得直接或经由应用管理器可用于用户。在一个实施例中,所有应用程序128的指示被提取并且经由应用管理器的接口提供给用户。在另一实施例中,向用户显示用户基于用户的操作简档而有资格的应用程序128的指示。然后用户选择应用程序128或用户想要下载的应用。应用程序128然后由应用管理器经由应用下载管理引擎126下载到用户设备102a上。与下载有关的相应数据也在用户操作简档122中被更新。应用程序128是数字工具的示例。应用下载管理引擎126还管理向用户设备102a提供更新的过程。

在下载、安装和启动应用程序之后,在一个实施例中,要求用户提供登录细节。用户管理引擎116和授权引擎124再次进行检查以确保用户有权使用应用程序。在另一实施例中,当用户已经登录到应用管理器时,提供对应用程序的直接访问。

用户使用安装在用户设备上的一个或多个应用程序104a-104n来创建一个或多个项目或资产。此外,用户还在每个应用程序中具有工作空间。如本文中所述,工作空间包括应用程序的设置、工具的设置或由应用程序提供的用户界面的设置、以及应用程序特定的任何其他设置或属性。每个用户都可以具有工作空间。工作空间、项目和/或资产可以通过同步引擎132作为应用程序数据130存储在数据存储单元112中。替代地或另外地,这样的数据可以存储在诸如用户设备102a等用户设备处。

应用程序数据130包括一个或多个资产140。资产140可以是用户希望与其他用户共享的共享资产或者用户想要在市场上提供的共享资产。资产140还可以跨多个应用程序128共享。每个资产包括元数据142。元数据142的示例包括但不限于字体、颜色、尺寸、形状、坐标、这些中的任何的组合等。此外,在一个实施例中,每个资产还包括文件。文件的示例包括但不限于图像144、文本146、视频148、字体150、文档152、这些中的任何的组合等。在另一实施例中,资产仅包括元数据142。

应用程序数据130还包括项目数据154和工作空间数据156。在一个实施例中,项目数据154包括资产140。在另一实施例中,资产140是独立资产。类似地,在一个实施例中,工作空间数据156可以是项目数据154的部分,而在其他实施例中它可以是独立数据。

用户可以操作一个或多个用户设备来访问数据。在这方面,应用程序数据130由用户从任何设备可访问,包括没有用于创建资产的设备140。这通过同步引擎132来实现,同步引擎132将应用程序数据130存储在数据存储单元112中并且使得应用程序数据130能够由用户或其他用户经由任何设备可访问。在用户从任何其他设备或任何其他用户访问应用程序数据130之前,如果未登录,则用户或其他用户可能需要提供用于认证的登录细节。在某些情况下,如果用户或其他用户已经登录,则实时地提供新创建的资产或对应用程序数据130的更新。还调用权限管理引擎136来确定是否可以向其他用户提供新创建的资产或更新。工作空间数据156使得同步引擎132能够基于权限管理数据138来在任何其他设备上向用户或向另一用户提供相同的工作空间配置。

在各种实施例中,可以实现各种类型的同步。例如,用户可以使用第一应用程序从用户设备102a选择字体或颜色,并且可以在任何其他设备上的第二应用程序中使用该字体或颜色。如果用户与其他用户共享字体或颜色,则其他用户也可以使该用字体或颜色。这样的同步通常实时地发生。类似地,可以执行任何类型的应用程序数据130的同步。

在一些实施例中,用户与应用104的交互由应用分析引擎158跟踪并且被存储为应用分析数据160。应用分析数据160包括例如工具的使用、特征的使用、工作流程的使用、资产140的使用等。应用分析数据160可以在每个用户的基础上包括使用数据,并且还可以在每个工具的基础上或在每个特征的基础上或在每个工作流程的基础上或在任何其他基础上包括使用数据。应用分析引擎158将一段代码嵌入到应用104中,这段代码使得应用能够收集使用数据并且将其发送到应用分析引擎158。应用分析引擎158将使用数据存储为应用分析数据160并且处理应用分析数据160以绘制有意义的输出。例如,应用分析引擎158可以绘制用户使用“工具4”最大次数的输出。应用分析引擎158的输出由个性化引擎162使用用于针对用户对工具菜单进行个性化以在顶部示出“工具4”。还可以基于应用分析数据158执行其他类型的个性化。此外,个性化引擎162还可以使用工作空间数据156或用户数据118(包括用户偏好)来针对用户对一个或多个应用程序128进行个性化。

在一些实施例中,应用分析数据160包括指示用户的项目的状态的数据。例如,如果用户正在准备数字出版应用中的文章,并且剩余的是在用户退出数字出版应用时发布准备好的文章,则应用分析引擎158跟踪状态。现在当用户接下来在另一设备上打开数字出版应用时,用户被指示状态,并且用户被提供用于使用数字出版应用或任何其他应用来进行发布的选项。此外,在准备文章的同时,也可以由同步引擎132进行推荐以合并由用户保存的并且与该文章相关的一些其他资产。这样的推荐可以使用一个或多个引擎来生成,如本文中所述。

创意装置108还包括社区引擎164,社区引擎164能够创建各种社区和社区之间的协作。如本文中所述,社区包括共享至少一个共同兴趣的一组用户。社区可以是封闭式的,即限于多个用户,也可以是开放式的,即任何人都可以参与。社区使得用户能够共享彼此的工作并且对彼此的工作做出评论等。工作包括应用程序数据140。社区引擎164存储与社区相对应的任何数据,诸如在社区上共享的工作以及针对工作作为社区数据166而接收到的评论等。社区数据166还包括通知数据并且用于由社区引擎通知其他用户,以防与工作或新工作相关的任何活动被共享。社区引擎164结合同步引擎132工作以向用户提供协作工作流程。例如,用户可以创建图像,并且可以请求某个专家意见或专家编辑。然后,专家用户可以根据用户喜好编辑图像,或者可以提供专家意见。专家对专家意见的编辑和提供使用社区引擎164和同步引擎132来实现。在协作工作流程中,为多个用户分配与工作相关的不同任务。

创意装置108还包括用于向一个或多个用户提供市场的市场引擎168。市场引擎168使得用户能够提供用于销售或使用的资产。市场引擎168能够访问用户希望在市场上提供的资产140。创意装置108还包括使得能够搜索市场中的资产140的搜索引擎170。搜索引擎170也是使得用户能够执行对资产140或任何其他类型的应用程序数据130的搜索的一个或多个应用程序128的部分。搜索引擎170可以使用元数据142或文件来执行对资产的搜索。

创意装置108还包括用于向用户提供包括电子或数字签名工作流程在内的各种文档相关的工作流程的文档引擎172。文档引擎172可以将文档作为资产140存储在数据存储单元112中,或者可以维持单独的文档库(图1中未示出)。

根据本发明的实施例,应用程序128可以包括促进生成用于从图像中提取对象的图像的蒙板的应用,诸如图2的应用210。这样的应用可以被提供给用户设备102a,使得对象提取器应用经由用户设备来操作。在另一实施例中,这样的对象提取器可以作为附属物或插件提供给应用,诸如设计或图像处理应用。

图2描绘了根据本公开的各种实施例的其中可以采用本公开的一些实现的操作环境的示例配置。应当理解,本文中描述的这种和其他布置仅作为示例来阐述。除了或代替示出的那些,可以使用其他布置和元素(例如,机器、接口、功能、顺序、和功能分组等),并且为了清楚起见,可以省略一些元素。此外,本文中描述的很多元素是可以作为离散或分布式部件或者结合其他部件结合并且以任何合适的组合和位置来实现的功能实体。本文中描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,一些功能可以由处理器执行存储在存储器中的指令来执行,如参考图8进一步描述的。

应当理解,图2所示的操作环境200是一个合适的操作环境的示例。在未示出的其他部件中,操作环境200包括多个用户设备(诸如用户设备202a和202b到202n)、网络204和服务器208。例如,图2所示的每个部件可以经由任何类型的计算设备来实现,诸如结合图8描述的计算设备800中的一个或多个。这些部件可以经由可以是有线、无线或两者的网络204彼此通信。网络204可以包括多个网络或网络的网络,但是以简单的形式示出,以防模糊本公开的各方面。作为示例,网络204可以包括一个或多个广域网(wan)、一个或多个局域网(lan)、一个或多个公共网络(诸如因特网)、和/或一个或多个专用网络。在网络204包括无线电信网络的情况下,诸如基站、通信塔或甚至接入点(以及其他部件)等部件可以提供无线连接。网络环境在办公室、企业级计算机网络、内联网和因特网中很常见。因此,没有详细描述网络204。

应当理解,在本公开的范围内,可以在操作环境200内采用任何数目的用户设备、服务器和其他部件。每个可以包括单个设备或在分布式环境中协作的多个设备。

用户设备202a到202n可以是能够由用户操作的任何类型的计算设备。例如,在一些实现中,用户设备202a到202n是关于图8描述的类型的计算设备。作为示例而非限制,用户设备可以被实施为个人计算机(pc)、膝上型计算机、移动设备、智能电话、平板电脑、智能手表、可穿戴计算机、个人数字助理(pda)、mp3播放器、全球定位系统(gps)或设备、视频播放器、手持通信设备、游戏设备或系统、娱乐系统、车辆计算机系统、嵌入式系统控制器、远程控件、器具、消费电子设备、工作站、这些描绘的设备的任何组合、或者任何其他合适的设备。

用户设备可以包括一个或多个处理器和一个或多个计算机可读介质。计算机可读介质可以包括由一个或多个处理器可执行的计算机可读指令。指令可以由一个或多个应用来实施,诸如图2所示的应用210。为了简单起见,应用210被称为单个应用,但是在实践中,其功能可以由一个或多个应用来实施。如上所述,其他用户设备可以包括类似于应用210的一个或多个应用。

应用通常可以是能够在使用蒙板从图像中提取前景对象时促进用户设备与服务器208之间的信息交换的任何应用。在一些实现中,应用包括可以在网络浏览器中运行并且可以至少部分地被托管在环境200的服务器侧的网络应用。另外地或替代地,应用可以包括专用应用,诸如具有图像处理功能的应用。在某些情况下,应用被集成到操作系统中(例如,作为服务)。因此,本文预期,“应用”被广义地解释。

根据本文中的实施例,应用210可以促进使用蒙板从图像中提取对象。特别地,用户可以选择或输入要使用蒙板来从中提取对象的图像或图片。图像和/或图片可以以任何方式来选择或输入。例如,用户可以使用设备(例如,用户设备202a)上的相机拍摄照片。作为另一示例,用户可以从存储库中选择期望的图像,存储库例如存储在由网络可访问的数据存储器中或存储在用户设备202a本地。基于输入图像,可以从输入图像中提取对象并且将其经由用户设备202a提供给用户。此外,用户可以选择例如用于所提取的对象的新背景。在这方面,可以经由用户设备的显示屏来显示所提取的对象在新的背景上的复合图像。

如本文中所述,服务器208可以促进经由对象提取器206使用蒙板来从图像中提取前景对象。服务器208包括一个或多个处理器和一个或多个计算机可读介质。计算机可读介质包括由一个或多个处理器可执行的计算机可读指令。指令可以可选地实现对象提取器206的一个或多个部件,下面另外详细地描述的。

对象提取器206可以训练和操作神经网络系统,以便使用蒙板来从图像中提取前景对象。这样的神经网络系统可以由被训练为生成指定输出的一个或多个神经网络组成。例如,神经网络系统可以包括生成输入图像的蒙板的第一神经网络(诸如蒙板神经网络)和从由第一神经网络生成的蒙板来生成细化蒙板的第二神经网络(诸如细化神经网络)。

在高水平上,对象提取器206训练神经网络系统,例如包括蒙板神经网络和细化神经网络。为了训练蒙板神经网络,可以基于输入图像使用蒙板神经网络来生成蒙板。由这样的系统生成的蒙板可以包括输入图像中的像素的预测的α值。这样的输入图像可以是通过将前景对象复合到背景而生成的合成复合图像。输入图像通常是指提供给神经网络系统的图像或其部分。用于训练蒙板神经网络的输入图像在本文中可以被称为训练图像或训练输入图像。通常,将三元图与这样的图像一起输入。使用三元图来帮助约束需要确定像素前景/背景复合的图像区域。三元图通常将图像的某些区域标记为纯前景和/或纯背景,其中围绕前景对象的区域被标记为未知,其指示该区域中的像素有可能是前景和背景的混合。在这方面,三元图可以包括三个区域:纯前景颜色像素的前景区域、纯背景颜色像素的背景区域、以及其中像素包括前景和背景颜色的未知组合的混合区域。

蒙板通常是指被生成以指示包括图像的像素的α值的蒙板。根据训练神经网络生成的蒙板在本文中可以称为训练蒙板。所生成的训练蒙板可以与参考蒙板相比较,以促进蒙板神经网络的训练。在这方面,可以基于比较来修改或调节蒙板神经网络,使得随后生成的蒙板的质量增加。可以确定质量的一种方法是基于构成所生成的蒙板的每个像素的预测的α值的准确度。这样的训练帮助在蒙板过程期间维持输入图像中的前景对象的细节。

根据本文中描述的实施例,可以通过复合所提取的前景对象和背景来生成用于生成训练蒙板的训练输入图像。如本文中使用的,参考蒙板是指与用于复合训练图像的所提取的前景对象相关联的蒙板。这样的参考蒙板被用作用于评估由蒙板神经网络从训练图像生成的蒙板的质量的标准或地面真值,并且可以包含训练图像中的像素的地面真实α值。

为了训练细化神经网络,将与蒙板(例如由蒙板神经网络生成的蒙板)连结的训练输入图像(例如提供给蒙板神经网络的训练输入图像)提供给细化神经网络。这样的细化神经网络从连结的训练输入图像和蒙板生成细化蒙板。尽管提供给细化神经网络的图像在本文中通常被称为训练图像,但是可以理解,图像可以是但不必须是被输入到蒙板神经网络中的训练图像。因此,用于训练细化神经网络的图像被称为训练图像。除了或者代替使用由蒙板神经网络生成的训练蒙板,根据本文中描述的实施例,还可以向训练神经网络提供其他训练蒙板。因此,用于训练细化神经网络的蒙板可以称为训练蒙板。在实施例中,细化蒙板反映更尖锐和/或更清晰的蒙板。细化蒙板通常是指经由细化神经网络生成的细化蒙板。训练细化蒙板是指用于训练细化神经网络的细化蒙板。参考蒙板是指用作用于评估训练细化蒙板的质量的标准的蒙板。这样的参考蒙板可以包含用于确定训练蒙板和/或训练细化蒙板的预测的α值的准确度的像素的α值。

在各种实现中,使用多个训练输入图像/三元图对对迭代地训练对象提取器206的神经网络系统(包括蒙板神经网络和细化神经网络)以生成训练蒙板和训练细化蒙板。这样的训练过程可以针对蒙板和细化神经网络单独地进行,或者同时进行。在每次迭代中,对象提取器206可以选择训练图像/三元图对和相关联的参考蒙板。对象提取器206使用蒙板神经网络从输入的训练图像/三元图对生成训练蒙板。然后将训练蒙板与参考蒙板相比较,以计算任何误差。可以通过使用训练蒙板和参考蒙板来确定另外的误差,以从输入图像中提取对象,将所提取的对象放置到新的背景上,并且然后确定两个训练复合图像之间的差异。然后可以通过蒙板神经网络反馈这样的误差,以教导网络在未来的迭代中减少这样的误差。这些误差可以基于训练蒙板的预测的α值与参考蒙板的地面真实α值相比较的准确度。

然后,对象提取器206可以使用细化神经网络来细化蒙板,例如,以细化蒙板神经网络的训练蒙板。这样的蒙板可以与用于生成训练蒙板的训练图像一起输入。细化神经网络可以输出训练细化蒙板。然后将训练细化蒙板与参考蒙板相比较以计算任何误差。然后通过细化神经网络反馈这样的误差,以教导网络在未来的迭代中减少这样的误差。这些误差可以基于训练细化蒙板的预测的α值与参考蒙板的地面真实α值相比较的准确度。

对于基于云的实现,服务器208上的指令可以实现对象提取器206的一个或多个部件,并且应用210可以由用户用来与在服务器208上实现的功能对接。在某些情况下,应用210包括网络浏览器。在其他情况下,可能不需要服务器208。例如,对象提取器206的部件可以完全实现在诸如用户设备202a等用户设备上。在这种情况下,对象提取器206可以至少部分地由对应于应用210的指令来实施。

因此,应当理解,对象提取器206可以经由布置在分布式环境中的共同提供本文中描述的功能的多个设备来提供。此外,未示出的其他部件也可以被包括在分布式环境中。另外或者相反,对象提取器206可以至少部分地集成到诸如用户设备202a等用户设备中。此外,对象提取器206可以至少部分地被实施为云计算服务。

参考图3,示出了根据本公开的各种实施例的说明性对象提取系统的各方面。对象提取器302包括训练引擎304、蒙板引擎310和数据存储器312。对象提取器302的前述部件可以例如在图2的操作环境200中实现。特别地,这些部件可以被集成到用户设备202a和202b到202n和服务器208的任何合适的组合中。

数据存储器312可以存储在本文中描述的实施例中使用的计算机指令(例如,软件程序指令、程序或服务)、数据和/或模型。在一些实现中,数据存储器312存储经由对象提取器302的各种部件接收的信息或数据,并且根据需要向各种部件提供对该信息或数据的访问。尽管被描绘为单个部件,但是数据存储器312可以被实现为一个或多个数据存储器。此外,数据存储器312中的信息可以以任何合适的方式分布在一个或多个数据存储器之间用于存储(其可以在外部被托管)。

在实施例中,存储在数据存储器312中的数据包括训练数据316。训练数据通常是指用于训练神经网络的数据或其部分。这样,训练数据316可以包括参考蒙板、参考提取的前景对象、参考复合图像、背景图像、训练图像、训练蒙板、训练细化蒙板、训练提取的前景对象、训练复合图像和/或训练三元图。在某些情况下,数据可以由对象提取器302从用户设备接收(例如,由用户设备202a或与用户相关联的另一设备经由例如应用210接收的输入图像/三元图)。在其他情况下,可以从云中的一个或多个数据存储器接收数据。

数据存储器312还可以用于存储神经网络系统314。这样的神经网络系统可以由一个或多个神经网络组成,诸如蒙板神经网络和细化神经网络。

训练引擎304可以用于训练神经网络系统314。这样的神经网络系统可以用于创建输入图像的蒙板。在实施例中,从神经网络系统生成的蒙板用于从输入图像中提取前景对象。然后可以操纵这样的提取的对象以创建复合图像,例如,以使用蒙板从海滩场景中提取沙滩球并且将提取的沙滩球放置到雪景上。如图3所示,训练引擎304包括训练图像部件306和训练部件308。虽然训练图像部件和训练部件单独示出,但是可以理解,与其相关联地描述的功能可以由任何数目的部件来执行。

训练图像部件306可以使用参考提取的前景对象和背景图像来生成训练图像以创建合成复合图像。参考提取的前景对象可以使用例如从高对比度照片或图像中提取。这样的高对比度照片或图像可以从各种来源获得。例如,图像可以是从视频中选择的帧。背景图像可以包括包含不同场景和/或纹理细节的照片或图像。背景图像可以从各种来源获得。在一些实施例中,训练图像部件306生成包括大量颜色、纹理和主题的训练图像,以确保神经网络系统在其训练完成之后能够识别受试者的各种颜色、图案、结构、和/或输入图像中描绘的对象之间的关系。训练图像部件306创建具有相似的前景和背景颜色的复合图像以及用于训练神经网络系统的复杂背景纹理导致能够从复杂图像中提取对象的更鲁棒地训练的系统。

训练图像部件306也可以用于实现增强方法以进一步扩大用于训练神经网络系统的数据集。训练图像可以以任何数目的方式被增强,以扩展训练图像的数据集。在训练过程中以这样的方式扩展数据集可以产生更细化的系统,用于从不太容易过度拟合的输入图像生成蒙板。一种增强方法包括以未知区域中的像素为中心切除320×320图像/三元图对,以增加采样空间。另外地或替代地,图像/三元图对可以被裁剪成不同的大小,例如480×480或640×640,并且然后被重新定尺寸为320×320,使得该方法更加鲁棒,以扩展和更好地学习上下文和语义。另一种方法包括翻转所提取的参考对象的方向。另外,每个训练图像/三元图对的三元图可以针对不同的训练迭代被修改和/或使用参考蒙板被修改以获得更鲁棒的三元图放置。这样的增强的数据集可以例如存储在数据存储器312上的训练数据316中。

训练图像部件306也可以用于生成训练三元图。三元图用于帮助约束需要确定像素前景/背景复合的图像区域。因此,三元图指示像素有可能是前景信息和背景信息的混合的图像并且因此需要确定α值以求解混合的百分比的区域。三元图可以由用户选择训练图像的未知区域来生成。例如,用户可以跟踪和/或界定训练图像的部分,并且指示跟踪和/或界定的部分为已知前景、已知背景还是未知区域。或者,可以使用例如中的工具通过二进制选择来生成三元图,其中在图像的前景对象周围界定未知区域,并且可以使用滑块来扩展/收缩该带以包含未知区域。另一种方法包括使用算法来创建三元图;当主题是已知的时,可以利用该方法,例如,如果图像是人,则可以对算法进行训练,以识别在包含毛发的区域周围需要较大的带并且在皮肤和/或平滑的衣服区域周围需要较细的带。

训练部件308可以选择用于训练神经网络系统以例如在这样的系统内训练蒙板神经网络的训练图像。这样的训练图像可以例如使用训练图像部件306来生成。或者,这样的训练图像可以例如从数据存储器312上的训练数据316中选择。训练图像可以包括与背景图像复合的训练提取对象,以创建合成复合图像。除了训练图像之外,训练部件308可以选择对应于训练图像的三元图。例如,三元图可以指示作为纯前景和纯背景的训练图像的像素、以及可能是前景和背景两者的混合的具有未知的前景和背景信息的像素。蒙板神经网络从连结的训练输入图像/三元图输出蒙板。这样的输出蒙板可以基于训练图像的像素的预测的α值。生成这样的蒙板可以例如通过将训练输入图像/三元图下采样到较低的维度来实现。基于下采样后的训练输入图像和三元图对,使用多个滤波器应用非线性变换序列以生成训练蒙板。此后,将训练蒙板上采样到期望的输出尺寸。

一种实现采用类似编码器解码器的架构。具体地,该架构可以是到编码器网络中的四通道输入。到编码器网络的输入使用随后的卷积层和最大池化层被转换为下采样后的特征图。接下来,解码器网络使用随后的未池化层来反转最大池化操作和卷积层,以将特征图上采样成训练蒙板。这样的编码器网络可以具有例如14个卷积层和5个最大池化层。训练每一层以分析输入图像的某些特征和/或元素。例如,可以训练第一层以检测边缘、颜色和/或图案。这样的网络可以使用不对称结构来减少参数的数目(在下面进一步描述)并且加快训练过程。具体地,网络的解码部分可以具有例如六个卷积层、五个解压缩层和最终的α预测层。网络的最后一层可以是预测训练输入图像的α值的α预测层。

然后可以通过评估不同类型的损失来训练蒙板神经网络以确定其间的任何误差或差异,如下面更详细地描述的。误差可以包括训练输出与期望输出之间的不准确、缺陷、变化和/或差异,期望输出通常被称为在网络被完全训练的情况下的地面真值或输出。这样的误差可以通过比较训练输出的参数与地面真值以找出损失函数来确定。在一些实施例中,更新神经网络涉及通过蒙板神经网络反馈误差,因此算法可以调节网络连接以便减小误差的值。

调节神经网络以纠正误差通过改变这样的蒙板神经网络的至少一个节点参数来实现。蒙板神经网络可以包括具有与每个节点相关联的参数或权重的多个互连节点。虽然不必在神经网络的训练期间指定各个参数,但是网络倾向于学习标识蒙板或者使用蒙板生成的复合图像的边缘检测、rgb颜色、特征纹理、粗糙度和/或模糊的参数。每个节点从多个其他节点接收输入,并且可以基于所有这些输入的组合激活,例如当输入信号之和高于门限时。参数可以放大或抑制输入信号。例如,参数可以是在0到1之间的值。来自每个节点的输入可以在被求和之前通过参数被加权,或者换言之,乘以参数。以这样的方式,参数可以控制每个节点与后续节点之间的连接的强度。例如,对于给定节点,第一参数可以为来自第一节点的输入提供较大的权重,而第二参数可以为来自第二节点的输入提供较小的权重。因此,这些参数加强了与第一节点的连接,使得来自第一节点的信号更有可能导致给定节点激活,而第二节点的输入不太可能导致激活。

可以例如使用诸如像素损失、组成损失等损失函数来确定误差。使用损失函数确定的误差用于通过这样的误差通过网络的后向传播来最小化蒙板神经网络中的损失。

在实施例中,可以通过评估像素损失来确定误差,像素损失是参考蒙板值或地面真实蒙板值与每个像素处的α值的训练蒙板之间的绝对差异。可以通过比较参考蒙板的像素与训练蒙板的相应像素之间的黑/白百分比、色差和/或α值来分析像素损失。这可以通过求解参考蒙板与训练蒙板之间的平均每像素差异来确定。可以用于确定像素损失的示例等式为:其中为像素i处的预测层的输出。可以进一步设置为在0到1之间的值。是像素i处的地面真实α值。ε是可以设置为等于10-6的小值。

在实施例中,可以通过评估复合损失来确定误差。复合损失可以通过计算地面真值rgb颜色与复合图像的预测rgb颜色之间的差异来确定。这样的复合图像可以通过使用基于预测的α值的参考蒙板和基于地面真实α值的训练蒙板从输入图像中提取对象并且然后将对象复合到新的背景上来生成。然后可以在每个像素处比较两个复合图像以确定任何差异。用于近似复合损失的示例等式为:其中c表示rgb图像的每个通道,p表示由训练蒙板复合的图像,g表示由参考蒙板复合的图像。复合损失约束网络以遵循复合操作,这通常导致更准确的蒙板预测。

因为仅需要推测其中像素有可能是前景和背景信息的混合的三元图的未知区域之内的α值,所以可以根据像素位置来设置像素损失和复合损失的权重,这可以帮助网络更加重视训练图像的重要区域。具体地,如果像素i在三元图的未知区域之内,则wi=1,而如果像素i在三元图的未知区域之外,则wi=0。

训练部件308可以进一步训练细化神经网络。在这方面,可以将诸如由蒙板神经网络输出的训练蒙板等训练蒙板提供给神经网络系统,特别是在这样的系统内的细化神经网络。除了这样的训练蒙板之外,输入图像可以被提供给细化神经网络。这样的输入图像可以是例如被提供给蒙板神经网络的生成训练蒙板的输入图像。如所描述的,训练蒙板可以由蒙板神经网络来产生。或者,训练蒙板及其相关联的训练图像可以从数据存储器312中的训练数据316中选择。细化神经网络可以基于输入训练蒙板及其相应的训练输入图像来产生训练细化蒙板。然后可以通过评估参考蒙板与训练细化蒙板之间的差异来训练细化神经网络,以确定其间的任何误差或差异。在一些实施例中,修改或训练神经网络涉及通过细化神经网络来反馈这样的误差,因此该算法可以调节网络连接以便减小误差的值。

一个实现采用扩展网络来进一步细化蒙板神经网络的输出以校正任何过度平滑的结果和/或其他误差。这个扩展网络实现了具有更尖锐的边缘的更准确的蒙板。细化神经网络的输入是训练图像与来自蒙板神经网络的其蒙板的连接。这样的输入可以在0到255之间被缩放,以产生四通道输入。扩展网络的输出是训练细化蒙板。这样的扩展网络可以是包括四个卷积层的完全卷积网络,其中前三层之后可以是非线性整流线性单元层,其可以增加网络的非线性属性而不影响卷积层。这个扩展网络可以不利用任何下采样层,以便维持在蒙板神经网络下采样/上采样过程中可能已经丢失的细节。这样的网络可以利用跳跃模式结构,其中输入数据的第四通道在0到1之间被缩放,并且然后与网络的输出相加。

当图像太大使得蒙板神经网络无法处理时,扩展神经网络可以允许将大图像分解成图块并且使输入图像图块运行通过蒙板神经网络。当神经网络系统(特别是蒙板神经网络)无法处理其全尺寸的输入图像时,可以将输入图像分解成图像图块。当使用cpu处理输入图像时,系统可以处理较大的图像;然而,这可能是一个非常慢的过程。使用gpu处理输入图像可以实现快速处理,但是可能导致使用较小的输入图像。蒙板神经网络可以处理的图像尺寸取决于用于运行蒙板神经网络的gpu的功能。例如,具有十二千兆字节的高端gpu将能够处理比具有两千兆字节的典型消费者gpu更大的图像。为了实现图像的这样的平铺,可以将输入图像分解成交叠的较小图像,例如,具有50个像素的交叠的500×500。对于蒙板神经网络的输入图像的平铺可能导致伪像,其中在将图块图像编译成最终图像之后,图块从一个图块转换到下一图块。因此,可以训练细化神经网络以去除任何这样的伪像。在实施例中,细化神经网络能够被训练为这样,因为细化神经网络需要更少的计算能力,并且因此可以在不进行平铺的情况下运行整个输入图像。

替代地或另外地,细化神经网络可以允许蒙板神经网络以较低分辨率运行,并且然后被上采样到期望的分辨率以创建输出蒙板。在这样的实现中,可以训练细化神经网络以去除和/或固定任何模糊和/或锐化由蒙板神经网络输出的蒙板。

调节神经网络以纠正误差通过改变这样的细化神经网络的至少一个节点参数来实现。细化神经网络可以包括具有与每个节点相关联的参数或权重的多个互连节点。每个节点从多个其他节点接收输入,并且可以基于所有这些输入的组合激活,例如当输入信号之和高于门限时。参数可以放大或抑制输入信号。例如,参数可以是在0到1之间的值。来自每个节点的输入可以在被求和之前通过参数被加权,或者换言之,乘以参数。以这样的方式,参数可以控制每个节点与下一节点之间的连接的强度。例如,对于给定节点,第一参数可以为来自第一节点的输入提供较大的权重,而第二参数可以为来自第二节点的输入提供较小的权重。因此,这些参数加强了与第一节点的连接,使得来自第一节点的信号更有可能导致给定节点激活,而第二节点的输入不太可能导致激活。

在实施例中,通过使用任何数目的方法评估参考蒙板与训练细化蒙板之间的差异来确定误差。为此,可以通过评估参考蒙板与由细化神经网络产生的训练细化蒙板之间的差异来训练网络。训练涉及基于参考蒙板与训练输出细化蒙板之间的差异来修改神经网络。神经网络的这样的修改可以涉及改变节点参数中的至少一个。

可以使用损失函数来确定误差,损失函数用于通过这样的误差通过网络的后向传播来最小化训练神经网络中的损失。例如,可以通过确定像素损失来分析这样的差异,像素损失是参考蒙板值与每个像素处的训练细化蒙板值之间的绝对差异。可以通过比较基于另外的预测的α值的参考蒙板的像素与基于地面真实α值的训练细化蒙板的相应像素之间的差异来分析像素损失。这可以通过求解参考蒙板与训练细化蒙板之间的平均每像素差异来确定。可以用于确定像素损失的示例等式为:其中为像素i处的预测层的输出,并且进一步被设置为在0到1之间。是像素i处的地面真实α值。ε是可以设置为等于10-6的小值。

在执行中,根据本公开训练的神经网络系统可以用于使用基于输入图像的预测的α值的生成的蒙板来从输入图像中提取前景对象。这样的蒙板和对象提取可以使用蒙板引擎310来执行。可以理解,诸如已训练蒙板神经网络和已训练细化神经网络等已训练神经网络系统可以由蒙板引擎使用以生成用于在从图像中提取前景对象时使用的蒙板。创建蒙板的方法可以类似于被描述为用于训练神经网络系统的过程,然而在执行中,输入图像通常不会生成合成复合图像,这是因为训练输入图像在训练期间被生成。应当理解,这样的神经网络系统可以包括蒙板神经网络和细化神经网络两者,然而,在一些实施例中,不需要细化神经网络,并且神经网络系统可以仅由蒙板神经网络和/或另外的已训练神经网络组成。

在实施例中,蒙板引擎301可以用于运行已训练神经网络系统,以生成输入图像的蒙板,其中输入图像的像素的α值由已训练神经网络系统来预测。可以在用户设备处从用户接收图像。特别地,用户可以选择或输入要使用蒙板来从中提取对象的图像或图片。这样的图像可以包括由用户使用诸如参考图8描述的计算设备拍摄的图片。图像和/或图片可以以任何方式选择或输入。例如,用户可以使用设备(例如,图2的用户设备202a)上的相机拍摄图片。作为另一示例,用户可以从存储库中选择期望的图像,存储库例如存储在由网络可访问的数据存储器中或者存储在图2的用户设备202a本地。在其他实施例中,用户可以通过输入到图像的链接或url来输入图像。或者,用户可以从存储在数据库(诸如图3的数据存储器312)中的一组图像中选择图像。除了输入图像之外,可以输入相关联的三元图。这样的三元图可以由用户输入或者利用没有用户交互的算法来输入。基于输入图像并且在一些实施例中基于相关联的三元图,可以由蒙板引擎生成输入图像的蒙板。

这样的已训练神经网络系统能够为具有相关联的三元图的图像生成蒙板,其中所有或多数像素被指定为混合的前景/背景。换言之,具有三元图的图像,其中需要每个或大多数像素需要来求解前景/背景百分比的混合。例如,森林背景前面的蜘蛛网的图像导致大部分图像被标记为未知区域以求解前景/背景百分比。

在神经网络系统基于输入图像并且在一些实施例中基于相关联的三元图生成蒙板之后,蒙板引擎310可以用于使用蒙板来从输入图像中提取前景对象。这样的提取的前景对象可以经由用户设备(例如,用户设备202a)被提供给用户。

此外,蒙板引擎可以用于使用这样的提取的前景对象和背景图像来生成复合图像。用户可以选择例如所提取的前景对象的新的背景。在这方面,可以经由用户设备的显示屏显示所提取的前景对象在新的背景上的复合图像。

蒙板引擎310还可以执行该整个过程。例如,用户可以输入站在城市景观背景前面的人的图像,神经网络系统可以生成图像的蒙板,其可以用于使用蒙板的预测的α值来从输入图像中提取人,并且然后将提取的人放置到新的背景图像上,例如,到海滩景观上。

现在转到图4,图4提供了根据本公开的实施例的从输入图像生成蒙板的说明性方法。在用于训练神经网络系统的实施例中,输入图像402可以是合成复合训练图像。为了创建这样的图像,可以使用高对比度图像来使用高精度蒙板(例如,α值容易确定)从图像中提取前景对象;这样的提取的前景对象然后可以被放置到新的背景图像上。例如,每个提取的前景对象可以被放置到最多100个背景上。对于具有493个提取的前景对象的训练数据集,这导致49,300个训练图像的训练集。如图4所示,图像402的提取的前景对象是灯泡,并且背景图像是站在一系列日本牌坊门前面的人。然后可以使用图像402来生成蒙板404。图像402可以与相关联的三元图(未示出)一起输入。在该实施例中,将蒙板404与用于提取图像402的前景对象(灯泡)的参考蒙板(未示出)相比较。第一神经网络(例如,蒙板神经网络)可以产生图像402的蒙板404。可以通过评估用于提取图像402的前景对象的参考蒙板与由蒙板神经网络产生的蒙板404之间的差异来训练蒙板神经网络。可以利用像素损失、或者训练蒙板的预测的α值与参考蒙板的地面真实α值之间的差异来确定这样的差异。也可以通过评估使用输出蒙板404和训练背景生成的输出训练复合图像(未示出)与使用参考蒙板和训练背景生成的参考复合图像(未示出)之间的差异来训练蒙板神经网络。这样的差异可以利用复合损失来确定。

然后,蒙板404可以用于训练第二神经网络(例如,细化神经网络)以从由蒙板神经网络生成的训练蒙板及其相关联的训练输入图像来生成训练细化蒙板406。可以通过评估参考蒙板与由细化神经网络产生的细化蒙板406之间的差异来训练细化神经网络。可以使用像素损失、或者训练细化蒙板的预测的α值与参考蒙板的地面真实α值之间的差异来确定这样的差异。应当理解,这个训练过程可以单独地或同时地发生。还应当理解,存在神经网络系统的实施例,其中神经网络系统包括蒙板神经网络而没有细化神经网络。

在其他实施例中,为了使用已训练神经网络从输入图像生成蒙板用于从输入图像中提取对象,用户将图像402输入到对象提取器系统中,例如,参考图2描述的对象提取器206和/或参考图3描述的对象提取器302。例如,图像可以由用户使用设备上的相机拍摄照片和/或提供到图像的url来输入。已训练神经网络系统(诸如入参考图3描述的使用蒙板引擎310运行的神经网络系统314)可以为图像402创建蒙板404,其中蒙板包括使用已训练神经网络系统确定的预测的α值。蒙板404可以是由对象提取器系统用于创建细化蒙板406的中间蒙板,其可以由对象提取器系统用于从图像402中提取对象。细化蒙板406还可以包括使用已训练神经网络系统确定的预测的α值。或者,不需要生成细化蒙板406,并且蒙板404可以由对象提取器系统用于从图像402中提取对象。蒙板404和/或细化蒙板406不必被显示给用户,在一些实施例中,可以显示一者或两者。对象提取器系统可以使用蒙板404和/或蒙板406从图像402中提取对象(在这种情况下为灯泡)。这样的提取的对象可以在用户设备(例如,用户设备202a到202n)上显示给用户。这样的用户设备可以是计算设备,诸如参考图8进一步描述的计算设备800。另外,用户可以例如通过选择要放置所提取的对象的新的背景来与这样的提取的对象交互。与提取的对象的交互可以使用用于放置在新背景上的技术来发生,包括通过使用触摸屏、触控笔、鼠标和/或轨迹板。

参考图5,提供了一种处理流程,其示出了根据本发明的实施例的用于生成训练合成复合图像用于训练神经网络系统以生成输入图像的蒙板的方法500的实施例。方法500可以例如通过训练如图3所示的对象提取器302的图像部件306来执行。

在框502,可以选择具有对象和简单背景的高对比度图像。这样的图像可以从存储在诸如图3的数据存储器312等数据库中的一组图像中选择。高对比度图像是其中在前景对象与图像背景之间存在显著对比度的图像。此外,高对比度图像将具有简单的背景,意味着背景和前景的纹理不相似。例如,具有简单背景的高对比度图像的一些示例是在白色背景上的深棕色的狗或者在绿色屏幕上的穿着黑色连衣裙的黑色头发的女人。

在框504,可以生成高对比度图像的蒙板。由于图像具有高对比度,所以当前方法可以产生高质量的蒙板,包括高精度的预测的α值。这样的蒙板可以用作用于训练神经网络系统为复杂图像创建蒙板的参考蒙板,当前方法难以产生这些图的精确蒙板。这样的蒙板可以被看作是地面真实蒙板,可以在训练期间将由神经网络系统产生的训练蒙板与该地面真实蒙板相比较。从高对比度图像生成这样的蒙板的一种方法可以是使用中的编辑功能。一旦生成了蒙板,在框504,可以提取高对比度图像中的对象。可以使用例如从高对比度图像中提取这样的对象。该提取的对象可以用于训练神经网络系统用于使用蒙板来从输入图像中提取对象,例如,在蒙板神经网络的训练期间确定复合损失,如参考图3所描述的。应当理解,即使通过当前方法产生的高对比度的蒙板也可能需要手动调节以去除任何误差并且使其成为理想的训练蒙板。

在框506,可以使用提取的对象(例如,在框504处提取的对象)来创建合成复合图像。可以通过将提取的前景对象放置到背景图像上来创建合成复合图像。产生合成复合图像允许创建大的训练数据集用于训练鲁棒的神经网络系统,其可以处理诸如头发或毛皮等复杂图像的精细的细节,其中前景和背景具有高度相似的图案和/或颜色,和/或图像中的全部或大部分像素具有前景/背景信息。另外,这样的三元图可以被描述为在图像中和/或在图像中的未知的区域中具有在门限水平以上的数目和/或百分比的像素。例如,90%的输入图像包含未知的α值。例如,当训练数据集使用493个提取的前景对象时,就会出现这样的大的数据集,其中每个提取的前景对象可以被放置到100个背景上,从而产生49,300个训练图像的训练集。

在框508,可以使用诸如在框506处创建的复合图像来训练神经网络系统。神经网络系统可以由诸如蒙板神经网络等第一神经网络和诸如细化神经网络等第二神经网络组成。此外,诸如在框504处生成的蒙板等蒙板、以及诸如在框504处生成的提取对象等提取对象可以用于训练神经网络系统。复合图像可以输入到神经网络系统中以生成训练蒙板。这些训练蒙板可以与诸如在框504处创建的蒙板等参考蒙板相比较。这样的比较可以使用与参考蒙板的地面真实α值相比较的训练蒙板的预测的α值。该比较可以用于确定神经网络系统中可以被纠正以训练更准确的系统的误差。另外地或替代地,这样的训练蒙板可以用于从训练图像中提取对象;然后将提取的训练对象放置在训练背景上。该训练复合图像可以与例如在框504处提取的参考对象相比较,该参考对象被放置在与提取的训练对象相同的训练背景上。训练复合图像与参考复合图像之间的误差可以用于校正神经网络系统中的误差。

还应当理解,实际图像可以用于训练,例如,可以使用以下中的任一项来从真实世界照片生成训练蒙板:单独的深度相机、焦点提示、颜色和/或立体声。此外,可以使用图像中固有的数据和/或用不同或替代传感设备并行收集的数据从一组图像中自动提取训练蒙板。

图6示出了根据本发明的实施例的用于训练神经网络系统以从输入图像生成蒙板的示例方法600。在框604到618,方法600包括用于训练神经网络系统的步骤。在方法600中使用的神经网络系统可以由如线610所示的两个神经网络组成:执行框602到608的第一神经网络,诸如蒙板神经网络;以及执行框612到618的第二神经网络,诸如细化神经网络。然而,应当理解,方法600可以使用一个神经网络或两个以上的神经网络来执行。

在框602,可以接收训练数据,包括:训练图像、训练三元图、参考蒙板、参考提取对象和训练背景图像。这样的训练数据可以从例如存储在图3的数据存储器312上的训练数据316和/或从存储在云中的图像数据库接收。

在框604,可以为接收到的训练图像/三元图生成训练蒙板。这可以使用神经网络系统来实现,具体地使用系统的第一神经网络(诸如蒙板神经网络)来预测包括训练蒙板的α值。在框606,将训练蒙板和与训练图像相关联的参考蒙板相比较。该比较包括确定像素损失、或者训练蒙板的预测的α值与参考蒙板的地面真实α值之间的差异。在框606,可以使用训练蒙板来从训练复合图像中提取对象;然后将提取的训练对象放置在训练背景上。该训练复合图像可以与参考提取对象相比较,该参考提取对象被放置在与提取的训练对象相同的训练背景上。该比较包括确定复合损失。

在框608,可以使用这些比较,其中可以使用所确定的损失函数来调节神经网络系统。使用损失函数确定的误差用于通过这样的误差通过系统的后向传播来最小化神经网络系统中的损失。如图6所示,上述块可以重复任何次数以训练神经网络系统的第一神经网络(例如,针对每次迭代使用不同的训练图像/三元图和相关联的参考蒙板、提取的对象以及训练背景图像)。

在框612,可以接收训练蒙板和训练图像。这样的训练蒙板可以由例如第一神经网络(诸如蒙板神经网络)来生成。接收到的训练图像是由第一神经网络用于生成训练蒙板的相同的训练图像。训练图像和训练蒙板可以存储在训练数据316中作为输出的蒙板,训练数据316存储在图3的数据存储器312上,来自存储在云中的数据库和/或来自第一神经网络。

在框614,可以使用神经网络系统从训练蒙板和训练图像生成训练细化蒙板。例如,可以使用神经网络系统的第二神经网络来生成这样的训练细化蒙板,其中第二神经网络可以是细化神经网络。在框616,可以将训练输出细化蒙板与参考蒙板相比较。该比较包括确定损失函数(诸如像素损失)、或者训练细化蒙板的预测的α值与参考蒙板的地面真实α值之间的差异。在框618,可以使用这样的比较,其中可以使用所确定的损失函数来调节神经网络系统。使用损失函数确定的误差用于通过这样的误差通过系统的后向传播来最小化神经网络系统中的损失。

如图6所示,框612到618可以重复任何次数以训练神经网络系统的第二神经网络(例如,对于每次迭代使用不同的训练蒙板/训练图像)。或者,如图6所示,框602到618可以重复任何次数以同时训练神经网络系统(例如,针对每次迭代使用不同的训练图像/三元图和相关参考蒙板、提取的对象以及训练背景图像以产生输出训练蒙板,其与训练图像一起使用以生成细化蒙板)。

图7示出了根据本发明的实施例的用于从输入图像生成蒙板用于使用所生成的蒙板的α值来从输入图像中提取对象的示例方法700。方法700可以例如在系统的训练完成之后由图2的对象提取器206和/或利用图3的神经网络系统314的对象提取器302来执行。

在框702,可以输入图像。例如,用户可以将图像输入到对象提取器中,例如,如参考图2描述的对象提取器206和/或参考图3描述的对象提取器302。这样的对象提取器可以使用例如移动应用和/或相机应用来采用。图像可以使用相机拍摄照片来输入,或者用户可以通过输入到图像的链接或url来输入图像。或者,用户可以从存储在数据库(诸如图3的数据存储器312)中的一组图像中选择图像。

在框704,可以输入三元图。三元图标记作为纯前景、纯背景和未知(例如前景和背景的未知混合)的输入图像的区域。例如,纯前景可以被指定为白色像素,纯背景可以被指定为黑色像素,并且可能由前景和背景信息组成的未知的像素可以使用灰色来标记。例如,用户可以通过绘制输入图像来输入三元图。或者,用户可以使用二进制选择以选择输入图像的前景/背景来创建三元图。这样的二进制选择可以例如通过移动扩展/收缩在对象周围的带的滑块来在中进行。此外,可以使用算法来创建三元图。使用这样的算法可以允许在没有用户干预和/或交互的情况下输入三元图。

在框706,可以实现已训练神经网络系统以生成可以用于从输入图像中提取对象的输入图像的蒙板。神经网络系统可以先前已经以参考图6中的方法600描述的方式被训练。因此,神经网络系统可以由被训练为生成输入图像的蒙板的第一神经网络(诸如蒙板神经网络)以及被训练为细化由第一神经网络生成的蒙板的第二神经网络(诸如细化神经网络)组成。在训练过程结束之后,已训练神经网络和已训练细化神经网络可以用于生成输入图像的蒙板。该已训练神经网络系统可以用于为输入图像生成用于从输入图像中提取对象的蒙板。蒙板神经网络可以用于生成输入图像的蒙板,并且细化神经网络可以用于生成输入图像的细化蒙板。这样的生成的蒙板和/或细化蒙板可以准确地提取对象,因为神经网络系统已经被训练为准确地预测所生成的蒙板和/或细化蒙板的像素的α值。

在框708,神经网络系统输出结果。这样的结果可以是蒙板,诸如参考图4讨论的蒙板404。另外地或替代地,这样的结果可以是细化蒙板,诸如细化蒙板406。这样的结果也可以是使用所生成的蒙板或所生成的细化蒙板提取的对象。在框710,可以将由神经网络系统输出的结果发送到用户设备。用户设备可以是诸如图2所示的用户设备202a到202n等用户设备。在实施例中,该输出可以由用户操纵和/或交互,例如通过选择要放置提取的对象的新的背景。与提取的对象的交互可以使用用于放置在新背景上的技术来发生,包括使用触摸屏、触控笔、鼠标和/或轨迹板的放置。

已经描述了本发明的实施例,图8提供了其中可以采用本发明的实施例的计算设备的示例。计算设备800包括直接或间接耦合以下设备的总线810:存储器812、一个或多个处理器814、一个或多个呈现部件816、输入/输出(i/o)端口818、输入/输出部件820和示例性电源822。总线810可以表示一个或多个总线(诸如地址总线、数据总线或其组合)。尽管图8的各个框为了清楚起见用线示出,但是实际上,界定各种部件并不是这样清楚,并且隐喻地,线将更准确地是灰色和模糊的。例如,可以将诸如显示设备等呈现部件视为i/o部件。另外,处理器具有存储器。发明人认识到,这是本领域的本质,并且重申图8的图示仅仅是可以结合本发明的一个或多个实施例使用的示例计算设备的说明。在诸如“工作站”、“服务器”、“笔记本电脑”、“手持设备”等种类之间没有进行区别,因为所有这些预期在图8的范围内并且指代“计算设备”。

计算设备800通常包括各种计算机可读介质。计算机可读介质可以是可以由计算设备800访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光盘存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备、或者可以用于存储所需信息并且可以由计算设备800访问的任何其他介质。计算机存储介质不包括信号本身。通信介质通常在诸如载波或其他传输机制等调制数据信号中实施计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指以能够在信号中对信息进行编码的方式设置或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、rf、红外和其他无线介质)。上述任一项的组合也应当被包括在计算机可读介质的范围内。

存储器812包括易失性和/或非易失性存储器形式的计算机存储介质。如图所示,存储器812包括指令824。指令824在由处理器814执行时被配置为引起计算设备参考上述图示来执行本文中描述的任何操作,或者实现本文中描述的任何程序模块。存储器可以是可去除的、不可去除的或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备800包括从诸如存储器812或i/o部件820等各种实体读取数据的一个或多个处理器。呈现部件816向用户或其他设备呈现数据指示。示例性呈现部件包括显示设备、扬声器、打印部件、振动部件等。

i/o端口818使得计算设备800能够在逻辑上耦合到包括i/o部件820的其他设备,其中一些可以是内置的。说明性部件包括麦克风、操纵杆、游戏键盘、卫星天线、扫描仪、打印机、无线设备等。i/o部件820可以提供处理由用户生成的空气手势、语音或其他生理输入的自然用户界面(nui)。在一些情况下,输入可以被传输到适当的网络元件用于进一步处理。nui可以实现语音识别、触摸和手写笔识别、面部识别、生物识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、以及与计算设备800上的显示相关联的触摸识别的任何组合。计算设备800可以配备有用于手势检测和识别的深度相机,诸如立体相机系统、红外相机系统、rgb相机系统及其组合。另外,计算设备800可以配备有能够检测运动的加速度计或陀螺仪。可以将加速度计或陀螺仪的输出提供给计算设备800的显示器,以渲染沉浸式增强现实或虚拟现实。

已经关于特定实施例描述了本文中提出的实施例,这些实施例在所有方面旨在是说明性的而不是限制性的。对于本公开所属领域的普通技术人员而言,替代实施例将变得容易理解,而没有脱离本发明的范围。

已经使用本领域技术人员通常使用的术语描述了说明性实施例的各个方面,以将其工作的实质传达给本领域的其他技术人员。然而,对于本领域技术人员容易理解的是,可以仅使用所描述的方面中的一些来实践替代实施例。为了说明的目的,阐述了具体的数字、材料和配置,以便提供对说明性实施例的透彻理解。然而,对于本领域技术人员容易理解的是,可以在没有具体细节的情况下实践替代实施例。在其他情况下,已经省略或简化了众所周知的特征,以免模糊说明性实施例。

进而,已经以最有助于理解说明性实施例的方式将各种操作描述为多个离散操作;然而,描述的顺序不应当被解释为暗示这些操作必然依赖于顺序。特别地,这些操作不需要按照呈现的顺序来执行。此外,将操作描述为单独的操作不应当被解释为要求操作必须独立地和/或由单独的实体执行。将实体和/或模块描述为单独的模块同样不应当被解释为要求模块分开和/或执行单独的操作。在各种实施例中,所示出的和/或描述的操作、实体、数据和/或模块可以被合并、进一步分成子部分和/或省略。

短语“在一个实施例中”或“在实施例中”重复地使用。该短语通常不是指相同的实施例;然而,它也可以指代相同的实施例。术语“包括(comprising)”、“具有(having)”和“包括(including)”是同义的,除非上下文另有规定。短语“a/b”是指“a或b”。短语“a和/或b”是指“(a)、(b)或(a和b)”。短语“a、b和c中的至少一项”是指“(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1