CN117853681A - 在二维图像中生成表示二维人类的三维人类模型 - Google Patents

在二维图像中生成表示二维人类的三维人类模型 Download PDF

Info

Publication number
CN117853681A
CN117853681A CN202311286080.7A CN202311286080A CN117853681A CN 117853681 A CN117853681 A CN 117853681A CN 202311286080 A CN202311286080 A CN 202311286080A CN 117853681 A CN117853681 A CN 117853681A
Authority
CN
China
Prior art keywords
dimensional
scene
editing system
image editing
based image
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.)
Pending
Application number
CN202311286080.7A
Other languages
English (en)
Inventor
G·戈里
周易
王杨抟风
周洋
K·K·辛格
尹在新
D·C·阿西特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US18/304,144 external-priority patent/US20240144520A1/en
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN117853681A publication Critical patent/CN117853681A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

本公开的实施例涉及在二维图像中生成表示二维人类的三维人类模型。本公开涉及使用二维图像的三维表示经由基于场景的编辑来对二维图像进行修改的系统、方法和非暂态计算机可读介质。例如,在一个或多个实施例中,所公开的系统利用二维图像的三维表示来根据各种阴影图生成和修改二维图像中的阴影。此外,所公开的系统利用二维图像的三维表示来修改二维图像中的人类。所公开的系统还利用二维图像的三维表示来经由二维图像的尺度场来提供场景尺度估计。在一些实施例中,所公开的系统利用二维图像的三维表示来生成和可视化用于修改二维图像中的对象的3D平面表面。所公开的系统还使用二维图像的三维表示来定制二维图像的焦点。

Description

在二维图像中生成表示二维人类的三维人类模型
相关申请的交叉引用
本申请要求2023年4月20日提交的美国专利申请第18/304,144号的优先权,它是2023年3月27日提交的美国专利申请第18/190,500号和2023年3月27日提交的美国专利申请第18/190,513号的部分继续申请,它们各自要求2022年10月6日提交的美国临时专利申请第63/378,616号的权益和优先权,并且是2022年11月23日提交的美国专利申请第18/058,538号,2022年11月23日提交的美国专利申请第18/058,554号,2022年11月23日提交的美国专利申请第18/058,575号,2022年11月23日提交的美国专利申请第18/058,601号,2022年11月23日提交的美国专利申请第18/058,622号和2022年11月23日提交的美国专利申请第18/058,630号的部分继续申请。本申请也是2023年3月27日提交的美国专利申请第18/190,544号和2023年3月27日提交的美国专利申请第18/190,556号的部分继续申请,其各自要求2022年10月6日提交的美国临时专利申请第63/378,616号的权益和优先权,并且是2022年11月23日提交的美国专利申请第18/058,538号,2022年11月23日提交的美国专利申请第18/058,554号和2022年11月23日提交的美国专利申请第18/058,601号的部分继续申请。本申请还是2023年3月27日提交的美国专利申请第18/190,636号和2023年3月27日提交的美国专利申请第18/190,654号的部分继续申请,其各自要求2022年10月6日提交的美国临时专利申请第63/378,616号的权益和优先权。上述申请在此全文引入作为参考。
背景技术
近年来,用于执行计算机视觉和图像编辑任务的硬件和软件平台有了显著的进步。实际上,系统提供了各种与图像相关的任务,例如对象标识、分类、分割、合成、样式转移、图像修复等。
发明内容
本文描述的一个或多个实施例利用实现人工智能模型以促进灵活和高效的基于场景的图像编辑的系统、方法和非暂态计算机可读介质,提供了益处和/或解决本领域中的一个或多个问题。为了说明,在一个或多个实施例中,系统利用一个或多个机器学习模型来学习/标识数字图像的特性、预测对数字图像的潜在编辑、和/或生成可在各种编辑中使用的补充组件。因此,该系统获得对二维图像的理解,就好像它是真实场景,具有反映真实世界(例如,三维)状况的不同语义区域。此外,该系统使二维图像能够被编辑,使得改变自动且一致地反映对应的真实世界状况,而不依赖于额外的用户输入。该系统还基于二维场景的三维特性提供对二维图像中的二维对象的逼真编辑,例如通过基于二维图像生成一个或多个三维网格。因此,该系统促进了对数字图像的灵活和直观的编辑,同时有效地减少了进行这种编辑通常所需的用户交互。
本公开的一个或多个实施例的附加特征和优点在下面的描述中概述,并且部分地将从描述中显而易见,或者可以通过这种示例实施例的实践来了解。
附图说明
通过参考附图,本公开将以额外的具体性和细节描述本发明的一个或多个实施例。以下各段简要介绍了这些附图,其中:
图1示出了根据一个或多个实施例的基于场景的图像编辑系统操作的示例环境;
图2示出了根据一个或多个实施例的基于场景的图像编辑系统将数字图像编辑为真实场景的概览图;
图3示出了根据一个或多个实施例的分割神经网络,该分割神经网络由基于场景的图像编辑系统用来为对象生成对象掩蔽;
图4示出了根据一个或多个实施例,使用级联调制修复神经网络来生成修复数字图像;
图5示出了根据一个或多个实施例的级联调制修复神经网络的示例架构;
图6示出了根据一个或多个实施例,在级联调制修复神经网络中实现的全局调制块和空间调制块;
图7示出了根据一个或多个实施例,用于生成对象掩蔽和内容填充以促进对数字图像的对象感知修改的图示;
图8A-图8D示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以促进移动操作;
图9A-图9C示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以促进删除操作;
图10示出了根据一个或多个实施例的基于场景的图像编辑系统在生成语义场景图时使用的图像分析图;
图11示出了根据一个或多个实施例的基于场景的图像编辑系统在生成语义场景图时使用的真实世界类别描述图;
图12示出了根据一个或多个实施例的基于场景的图像编辑系统在生成语义场景图时使用的行为策略图;
图13示出了根据一个或多个实施例的由基于场景的图像编辑系统生成数字图像的语义场景图;
图14示出了根据一个或多个实施例的用于使用模板图生成数字图像的语义场景图的图示;
图15示出了根据一个或多个实施例的用于生成数字图像的语义场景图的另一图示;
图16示出了根据一个或多个实施例的多属性对比分类神经网络的概述;
图17示出了根据一个或多个实施例的多属性对比分类神经网络的架构;
图18示出了根据一个或多个实施例的由基于场景的图像编辑系统用来修改对象属性的属性修改神经网络;
图19A-图19C示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以促进修改数字图像中描绘的对象的对象属性;
图20A-图20C示出了根据一个或多个实施例的另一图形用户界面,该另一图形用户界面由基于场景的图像编辑系统实现以促进修改在数字图像中描绘的对象的对象属性;
图21A-图21C示出了根据一个或多个实施例的又一图形用户界面,该又一图形用户界面由基于场景的图像编辑系统实现以促进修改数字图像中描绘的对象的对象属性;
图22A-图22D示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以促进关系感知对象修改;
图23A-图23C示出了根据一个或多个实施例的另一图形用户界面,该另一图形用户界面由基于场景的图像编辑系统实现以促进关系感知对象修改;
图24A-图24C示出了根据一个或多个实施例的又一图形用户界面,该又一图形用户界面由基于场景的图像编辑系统实现以促进关系感知对象修改;
图25A-图25D示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以基于分类关系将对象添加到用于修改的选择;
图26示出了根据一个或多个实施例的神经网络管道,该神经网络管道由基于场景的图像编辑系统用来从数字图像标识和移除干扰对象;
图27示出了根据一个或多个实施例的干扰物检测神经网络的架构,该干扰物检测神经网络由基于场景的图像编辑系统用于标识和分类数字图像中的干扰对象;
图28示出了根据一个或多个实施例的热图网络的架构,该热图网络由基于场景的图像编辑系统用作干扰物检测神经网络的一部分;
图29示出了根据一个或多个实施例的混合分类器的架构,该混合分类器由基于场景的图像编辑系统用作干扰物检测神经网络的一部分;
图30A-图30C示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以从数字图像标识和移除干扰对象;
图31A-图31C示出了根据一个或多个实施例的另一图形用户界面,该另一图形用户界面由基于场景的图像编辑系统实现以从数字图像标识和移除干扰对象;
图32A-32B示出了根据一个或多个实施例的利用智能扩张以从数字图像移除对象的基于场景的图像编辑系统;
图33示出了根据一个或多个实施例的阴影检测神经网络的概述;
图34示出了根据一个或多个实施例的阴影检测神经网络的实例分割组件的概述;
图35示出了根据一个或多个实施例的阴影检测神经网络的对象感知组件的概述;
图36示出了根据一个或多个实施例的阴影检测神经网络的阴影预测组件的概述;
图37示出了根据一个或多个实施例的阴影检测神经网络的架构的概述;
图38示出了根据一个或多个实施例的用于使用阴影检测神经网络的第二级来确定与在数字图像中描绘的对象相关联的阴影的图示;
图39A-图39C示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统实现以标识并移除数字图像中描绘的对象的阴影;
图40示出了根据一个或多个实施例,基于场景的图像编辑系统通过根据二维图像的场景的三维特性放置二维对象来修改二维图像的概览图;
图41示出了根据一个或多个实施例,基于场景的图像编辑系统使用多个模型来生成用于在二维图像中放置或移动对象的阴影的图示;
图42示出了根据一个或多个实施例,基于场景的图像编辑系统为二维图像中的多个不同类型的对象生成阴影图的图示;
图43示出了根据一个或多个实施例,基于场景的图像编辑系统确定二维图像的照明特征的图示;
图44示出了根据一个或多个实施例,基于场景的图像编辑系统利用渲染模型以基于放置在二维图像中的对象来生成修改的二维图像的图示;
图45示出了根据一个或多个实施例,基于场景的图像编辑系统为二维图像生成分段三维网格的图示;
图46A-图46C示出了根据一个或多个实施例的用于在具有逼真阴影生成的二维图像中移动对象的图形用户界面;
图47A-图47B示出了根据一个或多个实施例的与为对象生成代理三维网格相关的,对应于二维图像的示例三维网格;
图48A-图48B示出了根据一个或多个实施例的用于将对象从第一二维图像插入第二二维图像的图形用户界面;
图49示出了根据一个或多个实施例的用于对插入到二维图像中的对象执行三维编辑的图形用户界面;
图50示出了根据一个或多个实施例,基于场景的图像编辑系统结合执行一个或多个下游操作,使用尺度场模型从二维图像生成尺度场的概览图;
图51示出了根据一个或多个实施例,基于场景的图像编辑系统利用机器学习模型从二维图像生成尺度场和地面到地平线向量的图示;
图52示出了根据一个或多个实施例的投影到三维空间的二维图像的三维特性的图示;
图53A-图53C示出了根据一个或多个实施例的二维图像的二维特性和投影到三维空间的二维图像的三维特性之间的关系图;
图54示出了根据一个或多个实施例,基于场景的图像编辑系统基于尺度场和地平线向量修改一个或多个机器学习模型的参数的图示;
图55A-图55D示出了根据一个或多个实施例的用于确定二维图像的尺度场的处理中的图像覆盖;
图56A-图56E示出了根据一个或多个实施例的为全景二维图像的裁剪部分生成的尺度场;
图57示出了根据一个或多个实施例的包括指示度量距离的覆盖的二维图像;
图58示出了根据一个或多个实施例的包括使用不同方法的插入对象的多个二维图像;
图59示出了根据一个或多个实施例,基于场景的图像编辑系统经由二维人类的三维表示对从二维图像中提取的二维人类进行重姿势的概览图;
图60示出了根据一个或多个实施例,基于场景的图像编辑系统生成表示从二维图像中提取的二维人类的三维人类模型的图示;
图61A-图61D示出了根据一个或多个实施例,基于场景的图像编辑系统基于从二维图像中提取的二维人类来生成和细化三维人类模型的图示;
图62示出了根据一个或多个实施例,基于场景的图像编辑系统响应于经由三维表示对二维人类进行重姿势而生成修改的二维图像的图示;
图63A-图63G示出了根据一个或多个实施例的用于经由表示二维图像中的二维人类的三维人类模型来修改二维图像的图形用户界面;
图64示出了根据一个或多个实施例的与在二维图像中对二维人类进行重姿势相关的数字图像;
图65示出了根据一个或多个实施例的与经由三维人类模型在二维图像中修改与二维人类交互的二维对象有关的数字图像;
图66示出了根据一个或多个实施例,基于场景的图像编辑系统生成用于结合修改二维图像中的对象而显示的平面表面的概览图;
图67示出了根据一个或多个实施例,基于场景的图像编辑系统确定所选对象的一部分在二维图像中场景的三维表示内的三维位置以用于生成平面表面的图示;
图68A-图68E示出了根据一个或多个实施例的用于结合修改对象在二维图像内的位置来显示平面表面的图形用户界面;
图69A-图69B示出了根据一个或多个实施例的用于显示用于修改二维图像内的所选对象的不同类型的平面表面的图形用户界面;
图70A-图70C示出了根据一个或多个实施例的用于结合修改二维图像内的所选对象来显示和移动平面表面的图形用户界面;
图71示出了根据一个或多个实施例的用于生成和显示三维边界框的图形用户界面,该三维边界框包括用于修改二维图像内的所选对象的平面表面;
图72示出了根据一个或多个实施例的用于修改与场景中的附加对象相交的所选对象的视觉特性的图形用户界面;
图73示出了根据一个或多个实施例,基于场景的图像编辑系统基于输入元素的位置来修改二维图像的模糊的概览图;
图74A示出了根据一个或多个实施例,基于场景的图像编辑系统利用具有输入元素的三维表示来修改用于将模糊应用于二维图像的各部分的焦点的图示;
图74B示出了根据一个或多个实施例,基于场景的图像编辑系统经由三维渲染器修改用于修改二维图像的模糊的相机参数的图示;
图74C示出了根据一个或多个实施例,基于场景的图像编辑系统经由二维渲染器,根据深度图中的深度值修改二维图像的模糊的图示;
图75A-图75E示出了根据一个或多个实施例的用于经由输入元素修改二维图像的焦点的图形用户界面;
图76A-图76B示出了根据一个或多个实施例的用于经由各种输入元素修改二维图像的焦点的图形用户界面;
图77A-图77C示出了根据一个或多个实施例的用于根据深度值选择二维图像的部分的图形用户界面;
图78A-图78C示出了根据一个或多个实施例的用于根据深度值选择二维图像的对象的图形用户界面;
图79示出了根据一个或多个实现的基于表示二维图像的三维网格来修改二维图像的深度位移系统的概览图;
图80示出了根据一个或多个实现,深度位移系统生成表示二维图像的位移三维网格的概览图;
图81示出了根据一个或多个实现,深度位移系统确定二维图像的密度值的图示;
图82示出了根据一个或多个实现,深度位移系统在一个或多个采样迭代中确定二维图像的采样点的图示;
图83示出了根据一个或多个实现,深度位移系统基于二维图像的采样点生成位移三维网格的图示;
图84A-图84B示出了根据一个或多个实现的用于二维图像的多个不同位移三维网格;
图85示出了根据一个或多个实现的基于附加输入为二维图像生成位移三维网格的深度位移系统;
图86示出了根据一个或多个实施例的基于场景的图像编辑系统的示例示意图;
图87示出了根据一个或多个实施例的用于基于二维图像的三维特性修改二维图像中的阴影的一系列动作的流程图;
图88示出了根据一个或多个实施例的用于利用二维图像的对象的多个阴影图来修改二维图像中的阴影的一系列动作的流程图;
图89示出了根据一个或多个实施例的用于生成指示二维图像的像素与度量距离比的尺度场的一系列动作的流程图;
图90示出了根据一个或多个实施例的用于在二维图像中生成二维人类的三维人类模型的一系列动作的流程图;
图91示出了根据一个或多个实施例的用于基于修改表示二维图像的二维人类的三维人类模型的姿势来修改二维图像的一系列动作的流程图;
图92示出了根据一个或多个实施例的用于基于二维图像的三维表示来生成用于变换二维图像中的对象的平面表面的一系列动作的流程图;
图93示出了根据一个或多个实施例的用于基于二维图像的三维表示来修改二维图像的焦点的一系列动作的流程图;以及
图94示出了根据一个或多个实施例的示例性计算设备的框图。
具体实施方式
本文描述的一个或多个实施例包括基于场景的图像编辑系统,其使用智能图像理解来实现基于场景的图像编辑技术。实际上,在一个或多个实施例中,基于场景的图像编辑系统利用一个或多个机器学习模型来处理数字图像,以预期用于修改数字图像的用户交互。例如,在一些实现中,基于场景的图像编辑系统执行为数字图像构建知识集和/或在接收针对某些修改的用户输入之前自动启动用于这些修改的工作流的操作。基于该预处理,基于场景的图像编辑系统促进与数字图像进行用户交互,就好像它是反映真实世界状况的真实场景一样。例如,基于场景的图像编辑系统使得用户交互能够将经预处理的语义区域(例如,已经经由预处理标识和/或掩蔽的对象)作为用于编辑的不同组件而不是以各个底层像素为目标。此外,基于场景的图像编辑系统自动修改数字图像以一致地反映对应的真实世界状况。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统利用机器学习来处理数字图像,以预期未来修改。具体地,在一些情况下,基于场景的图像编辑系统使用一个或多个机器学习模型来执行将促进后续修改的准备操作。在一些实施例中,基于场景的图像编辑系统响应于接收到数字图像而自动执行预处理。例如,在一些实现中,基于场景的图像编辑系统在接收用于这种编辑的用户输入之前,收集数据和/或启动用于编辑数字图像的工作流。因此,基于场景的图像编辑系统允许用户交互直接指示对数字图像的预期编辑,而不是经常用于进行这些编辑的各种准备步骤。
作为示例,在一个或多个实施例中,基于场景的图像编辑系统对数字图像进行预处理以促进对象感知修改。具体地,在一些实施例中,基于场景的图像编辑系统对数字图像进行预处理,以预期用于操纵数字图像的一个或多个语义区域的用户输入,诸如用于移动或删除数字图像内的一个或多个对象的用户输入。
为了说明,在一些情况下,基于场景的图像编辑系统利用分割神经网络来为数字图像中描绘的每个对象生成对象掩蔽。在一些情况下,基于场景的图像编辑系统利用洞填充模型来为每个对象(例如,为每个对应的对象掩蔽)生成内容填充(例如,修复片段)。在一些实现中,基于场景的图像编辑系统通过用相应的内容填充预先填充对象洞来为数字图像生成完整背景。因此,在一个或多个实施例中,基于场景的图像编辑系统对数字图像进行预处理,以准备对象感知修改,诸如移动操作或删除操作,通过在接收到针对这类修改的用户输入之前预先生成对象掩蔽和/或内容填充。
因此,在接收到针对数字图像的对象进行对象感知修改(例如,移动操作或删除操作)的一个或多个用户输入时,基于场景的图像编辑系统利用对应的预先生成的对象掩蔽和/或内容填充来完成修改。例如,在一些情况下,基于场景的图像编辑系统经由显示数字图像的图形用户界面检测与其中描绘的对象的用户交互(例如,用户对对象的选择)。响应于用户交互,基于场景的图像编辑系统呈现先前生成的对应对象掩蔽。基于场景的图像编辑系统还经由图形用户界面检测用于移动或删除对象的与对象的第二用户交互(例如,利用所呈现的对象掩蔽)。相应地,移动或删除该对象,显示先前位于该对象后面的内容填充。
此外,在一个或多个实施例中,基于场景的图像编辑系统对数字图像进行预处理以生成针对该数字图像的语义场景图。具体地,在一些实施例中,基于场景的图像编辑系统生成语义场景图以绘制出数字图像的各种特性。例如,在一些情况下,基于场景的图像编辑系统生成语义场景图,该语义场景图描述数字图像中描绘的对象、那些对象的关系或对象属性、和/或被确定为可用于数字图像的后续修改的各种其他特性。
在一些情况下,基于场景的图像编辑系统利用一个或多个机器学习模型来确定要包括在语义场景图中的数字图像的特性。此外,在一些情况下,基于场景的图像编辑系统利用一个或多个预定或预先生成的模板图来生成语义场景图。例如,在一些实施例中,基于场景的图像编辑系统在生成语义场景时利用图像分析图、真实世界类别描述图和/或行为策略图。
因此,在一些情况下,基于场景的图像编辑系统使用为数字图像生成的语义场景图来促进对数字图像的修改。例如,在一些实施例中,在确定对象已被选择用于修改时,基于场景的图像编辑系统从语义场景图中检索对象的特性以促进修改。为了说明,在一些实现中,基于场景的图像编辑系统基于来自语义场景图的特性来执行或建议对数字图像的一个或多个附加修改。
作为一个示例,在一些实施例中,在确定对象已被选择用于修改时,基于场景的图像编辑系统提供该对象的一个或多个对象属性,以经由显示该对象的图形用户界面来显示。例如,在一些情况下,基于场景的图像编辑系统从对应的语义场景图中检索对象的一组对象属性(例如,大小、形状或颜色),并呈现该组对象属性以与该对象相关联地显示。
在一些情况下,基于场景的图像编辑系统还促进用户与所显示的一组对象属性进行交互,以修改一个或多个对象属性。例如,在一些实施例中,基于场景的图像编辑系统允许改变所显示的一组对象属性的文本或从所提供的一组对象属性备选中选择的用户交互。基于用户交互,基于场景的图像编辑系统通过根据用户交互修改一个或多个对象属性来修改数字图像。
作为另一示例,在一些实现中,基于场景的图像编辑系统利用语义场景图来实现关系感知对象修改。为了说明,在一些情况下,基于场景的图像编辑系统检测用户交互,该用户交互选择数字图像中描绘的对象以进行修改。基于场景的图像编辑系统参考先前为数字图像生成的语义场景图,以标识该对象与数字图像中描绘的一个或多个其他对象之间的关系。基于所标识的关系,基于场景的图像编辑系统还将一个或多个相关对象作为目标以供修改。
例如,在某些情况下,基于场景的图像编辑系统自动将一个或多个相关对象添加到用户选择。在一些情况下,基于场景的图像编辑系统提供将一个或多个相关对象包括在用户选择中的建议,并基于对该建议的接受来添加一个或多个相关对象。因此,在一些实施例中,基于场景的图像编辑系统在其修改用户选择的对象时修改一个或多个相关对象。
在一个或多个实施例中,除了对数字图像进行预处理以标识所描绘的对象以及它们的关系和/或对象属性之外,基于场景的图像编辑系统还对数字图像进行预处理以帮助移除干扰对象。例如,在一些情况下,基于场景的图像编辑系统利用干扰物检测神经网络来将数字图像中描绘的一个或多个对象分类为数字图像的主体和/或将数字图像中描绘的一个或多个其他对象分类为干扰对象。在一些实施例中,基于场景的图像编辑系统在数字图像的显示内提供干扰对象的视觉指示,建议移除这些对象以呈现更美观和连贯的视觉结果。
此外,在一些情况下,基于场景的图像编辑系统检测干扰对象(或其他所选对象)的阴影,以便与干扰对象一起移除。具体地,在一些情况下,基于场景的图像编辑系统利用阴影检测神经网络来标识数字图像中描绘的阴影,并将这些阴影与其对应的对象相关联。因此,在从数字图像移除干扰对象时,基于场景的图像编辑系统还自动移除相关联的阴影。
在一个或多个实施例中,基于场景的图像编辑系统还基于二维图像中的场景的三维特性来提供对二维图像的编辑。例如,基于场景的图像编辑系统利用二维图像的场景的深度估计来生成表示场景中的前景/背景对象的三维网格。此外,基于场景的图像编辑系统利用三维特性来根据三维相对位置提供对二维图像内的对象的逼真编辑。为了说明,基于场景的图像编辑系统根据二维图像中场景的三维特性来提供阴影生成或焦点确定。在附加实施例中,基于场景的图像编辑系统提供具有交互重定姿的三维人类建模。
基于场景的图像编辑系统提供了优于传统系统的优点。实际上,传统的图像编辑系统存在若干技术缺陷,导致操作不灵活和低效。为了说明,传统系统通常是不灵活的,因为它们严格地在像素级别上对数字图像执行编辑。具体地,传统系统通常通过针对编辑单独地将像素作为目标来执行特定编辑。因此,这样的系统经常严格地要求用于编辑数字图像的用户交互以与单个像素交互以指示用于编辑的区域。此外,许多传统系统(例如,由于其基于像素的编辑)要求用户在如何与数字图像交互以及系统本身的用户界面方面具有大量深入的专业知识,以选择期望的像素并执行适当的工作流来编辑那些像素。
此外,传统的图像编辑系统常常不能有效地运行。例如,传统系统通常需要大量的用户交互来修改数字图像。实际上,除了用于选择单个像素的用户交互之外,传统系统通常需要用户与多个菜单、子菜单和/或窗口交互以执行编辑。例如,许多编辑可能需要使用多个不同的工具执行多个编辑步骤。因此,许多传统系统需要多次交互以在给定的编辑步骤选择适当的工具、为该工具设置所需的参数、以及利用该工具来执行编辑步骤。
与传统系统相比,基于场景的图像编辑系统具有改进的灵活性。具体地,基于场景的图像编辑系统实现了促进灵活的基于场景的编辑的技术。例如,通过经由机器学习对数字图像进行预处理,基于场景的图像编辑系统允许编辑数字图像,就好像它是真实场景一样,其中场景的各种元素是已知的,并且能够在语义级别上直观地与其交互以执行编辑,同时连续地反映真实世界状况。实际上,在像素是许多传统系统下的目标单元并且对象通常被视为像素组的情况下,基于场景的图像编辑系统允许用户交互将整个语义区域(例如,对象)视为不同的单元。此外,在传统系统通常需要执行编辑所需的工具和工作流的深入的、专门的知识的情况下,基于场景的编辑系统提供使用户能够专注于编辑的最终目标的更直观的编辑体验。
此外,与传统系统相比,基于场景的图像编辑系统具有更高的效率。具体地,基于场景的图像编辑系统实现减少编辑所需的用户交互的图形用户界面。实际上,通过对数字图像进行预处理以预期编辑,基于场景的图像编辑系统减少了执行编辑所需的用户交互。具体地,基于场景的图像编辑系统执行编辑所需的许多操作,而不依赖于用户指令来执行那些操作。因此,在许多情况下,基于场景的图像编辑系统减少了传统系统中通常需要的,用于选择要作为编辑目标的像素,并导航菜单、子菜单或其他窗口以选择工具、选择其对应的参数、并应用该工具来执行编辑的用户交互。通过实现减少和简化编辑数字图像所需的用户交互的图形用户界面,基于场景的图像编辑系统在屏幕空间相对有限的计算设备(例如平板电脑或智能手机设备)上提供了改进的用户体验。
现在将参考附图提供关于基于场景的图像编辑系统的附加细节。例如,图1示出了基于场景的图像编辑系统106在其中操作的示例性系统100的示意图。如图1所示,系统100包括(多个)服务器102、网络108和客户端设备110a-110n。
尽管图1的系统100被描绘为具有特定数量的组件,但是系统100能够具有任意数量的附加或替换组件(例如,经由网络108与基于场景的图像编辑系统106通信的任意数量的服务器、客户端设备或其他组件)。类似地,尽管图1示出了(多个)服务器102、网络108和客户端设备110a-110n的特定布置,但是各种附加布置也是可能的。
(多个)服务器102、网络108和客户端设备110a-110n直接或间接(例如,通过下面结合图94更详细讨论的网络108)通信地彼此耦合。此外,(多个)服务器102和客户端设备110a-110n包括各种计算设备中的一个或多个(包括参考图94更详细地讨论的一个或多个计算设备)。
如上所述,系统100包括(多个)服务器102。在一个或多个实施例中,(多个)服务器102生成、存储、接收和/或发送包括数字图像和修改的数字图像的数据。在一个或多个实施例中,(多个)服务器102包括数据服务器。在一些实现中,(多个)服务器102包括通信服务器或web托管服务器。
在一个或多个实施例中,图像编辑系统104提供客户端设备(例如,客户端设备110a-110n之一的用户)生成、编辑、管理和/或存储数字图像的功能。例如,在一些情况下,客户端设备经由网络108将数字图像发送到(多个)服务器102上托管的图像编辑系统104。然后,图像编辑系统104提供客户端设备可以用来编辑数字图像、存储数字图像以及随后搜索、访问和查看数字图像的选项。例如,在一些情况下,图像编辑系统104提供客户端设备可以用来修改数字图像内的对象的一个或多个选项。
在一个或多个实施例中,客户端设备110a-110n包括访问、查看、修改、存储和/或提供数字图像以供显示的计算设备。例如,客户端设备110a-110n包括智能手机、平板电脑、台式计算机、膝上型计算机、头戴式显示设备或其他电子设备。客户端设备110a-110n包括可以访问、查看、修改、存储和/或提供数字图像以供显示的一个或多个应用(例如,客户端应用112)。例如,在一个或多个实施例中,客户端应用112包括安装在客户端设备110a-110n上的软件应用。附加地或备选地,客户端应用112包括web浏览器或访问(多个)服务器102上托管的(并由图像编辑系统104支持的)软件应用的其他应用。
为了提供示例实现,在一些实施例中,(多个)服务器102上的基于场景的图像编辑系统106支持客户端设备110n上的基于场景的图像编辑系统106。例如,在一些情况下,(多个)服务器102上的基于场景的图像编辑系统106学习用于分析和/或修改数字图像的(多个)神经网络114的参数。然后,基于场景的图像编辑系统106经由(多个)服务器102将(多个)神经网络114提供给客户端设备110n。换言之,客户端设备110n从(多个)服务器102获得(例如,下载)具有学习到的参数的(多个)神经网络114。一旦下载,客户端设备110n上的基于场景的图像编辑系统106利用(多个)神经网络114独立于(多个)服务器102来分析和/或修改数字图像。
在备选实现中,基于场景的图像编辑系统106包括允许客户端设备110n与(多个)服务器102上托管的内容和服务交互的web托管应用。为了说明,在一个或多个实现中,客户端设备110n访问由(多个)服务器102支持的软件应用。作为响应,(多个)服务器102上的基于场景的图像编辑系统106修改数字图像。然后,(多个)服务器102将修改的数字图像提供给客户端设备110n以供显示。
实际上,基于场景的图像编辑系统106能够全部或部分地由系统100的各个元件实现。实际上,尽管图1示出了关于(多个)服务器102实现的基于场景的图像编辑系统106,但是基于场景的图像编辑系统106的不同组件能够由系统100内的各种设备实现。例如,基于场景的图像编辑系统106的一个或多个(或全部)组件由与托管图像编辑系统104的(多个)服务器102不同的计算设备(例如,客户端设备110a-110n之一)或分离的服务器实现。实际上,如图1所示,客户端设备110a-110n包括基于场景的图像编辑系统106。下面将参考图44描述基于场景的图像编辑系统106的示例组件。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106将二维数字图像作为反映真实世界状况的真实场景来管理。具体地,基于场景的图像编辑系统106实现促进将数字图像修改为真实场景的图形使用界面。图2示出了根据一个或多个实施例,基于场景的图像编辑系统106将数字图像作为真实场景进行管理的概览图。
如图2所示,基于场景的图像编辑系统106提供用于在客户端设备204上显示的图形用户界面202。如进一步示出的,基于场景的图像编辑系统106提供用于在图形用户界面202内显示的数字图像206。在一个或多个实施例中,在经由客户端设备204的相机捕获数字图像206之后,基于场景的图像编辑系统106提供数字图像206以供显示。在一些情况下,基于场景的图像编辑系统106从另一计算设备接收数字图像206,或者以其他方式访问在本地或远程的某个存储位置处的数字图像206。
如图2所示,数字图像206描绘各种对象。在一个或多个实施例中,对象包括在数字图像中描绘的不同视觉组件。具体地,在一些实施例中,对象包括可与数字图像中描绘的其他视觉元素分离标识的不同视觉元素。在许多情况下,对象包括一组像素,它们一起描绘与其他像素的描绘分离的不同视觉元素。对象指的是图像中主体、概念或子概念的视觉表示。具体地,对象指的是图像中的一组像素,它们组合在一起以形成对项目、物品、部分项目、组件或元素的视觉描绘。在某些情况下,可以经由不同级别的抽象来标识对象。换言之,在某些情况下,对象包括可单独标识或作为聚合的一部分的单独对象组件。为了说明,在一些实施例中,对象包括语义区域(例如,天空、地面、水等)。在一些实施例中,对象包括可标识事物的实例(例如,人、动物、建筑物、汽车、或云、衣服或某些其他附件)。在一个或多个实施例中,对象包括子对象、部件或部分。例如,人类的脸、头发或腿可以是作为另一对象(例如,人类的身体)的一部分的对象。在又一实现中,阴影或反射包括对象的一部分。作为另一示例,衬衫是可以是另一对象(例如,人)的一部分的对象。
如图2所示,数字图像206描绘静态的二维图像。具体地,数字图像206描绘从相机的视角捕获的场景的二维投影。因此,数字图像206反映捕获图像的状况(例如,照明、周围环境或所描绘对象所受的物理状况);然而,它是静态进行的。换言之,当对数字图像206进行改变时,状况不被固有地维持。在许多传统系统下,当编辑数字图像时,需要额外的用户交互来维持与这些状况的一致性。
此外,数字图像206包括共同描绘各种语义区域的多个单独像素。例如,数字图像206描绘多个对象,诸如对象208a-208c。虽然每个对象的像素都有助于描绘连贯(cohesive)的视觉单位,但它们通常不被视为连贯的视觉单位。实际上,数字图像的像素通常固有地被视为具有其自身值(例如,颜色值)的单个单元,该值可与其他像素的值分离地修改。因此,当对数字图像进行改变时,传统系统通常需要用户交互来单独地以像素作为目标以供修改。
然而,如图2所示,基于场景的图像编辑系统106将数字图像206作为真实场景来管理,一致地维持在修改数字图像时捕获图像的状况。具体地,基于场景的图像编辑系统106自动维持状况,而不依赖于用户输入来反映那些状况。此外,基于场景的图像编辑系统106在语义级别上管理数字图像206。换言之,数字图像206将数字图像206中描绘的每个语义区域作为连贯单元(cohesive)来管理。例如,如图2中所示和将讨论的,不需要用户交互来选择底层像素以与对应的对象交互,而是基于场景的图像编辑系统106使得用户输入能够将对象作为一个单元,并且基于场景的图像编辑系统106自动标识与该对象相关联的像素。
为了说明,如图2所示,在一些情况下,基于场景的图像编辑系统106在计算设备200(例如,客户端设备204或分离的计算设备,诸如以上参考图1讨论的(多个)服务器102)上操作以对数字图像206进行预处理。具体地,基于场景的图像编辑系统106执行一个或多个预处理操作,以预期对数字图像的未来修改。在一个或多个实施例中,在已经接收到用于进行预期修改的用户输入之前,响应于接收或访问数字图像206,基于场景的图像编辑系统106自动执行这些预处理操作。如进一步示出的,基于场景的图像编辑系统106利用一个或多个机器学习模型,诸如(多个)神经网络114来执行预处理操作。
在一个或多个实施例中,基于场景的图像编辑系统106通过学习数字图像206的特性来对数字图像206进行预处理。例如,在一些情况下,基于场景的图像编辑系统106分割数字图像206、标识对象、分类对象、确定对象的关系和/或属性、确定照明特性、和/或确定深度/透视特性。在一些实施例中,基于场景的图像编辑系统106通过生成用于修改数字图像206的内容来对数字图像206进行预处理。例如,在一些实现中,基于场景的图像编辑系统106为每个所描绘的对象生成对象掩蔽和/或生成用于填充每个所描绘的对象后面的背景的内容填充。背景指的是图像中对象背后的内容。因此,当第一对象位于第二对象之前时,第二对象形成第一对象的背景的至少一部分。备选地,背景包含图像中最远的元素(通常是语义区域,如天空、地面、水等)。在一个或多个实施例中,对象的背景包括多个对象/语义区域。例如,对象的背景可以包括另一对象的一部分和图像中最远元素的一部分。下面将参考后续附图更详细地讨论各种预处理操作及其在修改数字图像中的使用。
如图2所示,基于场景的图像编辑系统106经由图形用户界面202检测用户与对象208c的交互。具体地,基于场景的图像编辑系统106检测用于选择对象208c的用户交互。实际上,在一个或多个实施例中,基于场景的图像编辑系统106确定用户交互以对象为目标,即使在用户交互仅与基于数字图像206的预处理的贡献对象208c的像素的子集交互的情况下。例如,如上所述,在一些实施例中,基于场景的图像编辑系统106经由分割对数字图像206进行预处理。因此,在检测到用户交互时,基于场景的图像编辑系统106已经将数字图像206划分/分割成其各种语义区域。因此,在一些情况下,基于场景的图像编辑系统106确定用户交互选择不同的语义区域(例如,对象208c),而不是用户与其交互的特定底层像素或图像层。
如图2进一步所示,基于场景的图像编辑系统106经由对对象208c的修改来修改数字图像206。虽然图2示出了对象208c的删除,但是各种修改是可能的,并且将在下面更详细地讨论。在一些实施例中,基于场景的图像编辑系统106响应于检测到用于执行修改的第二用户交互来编辑对象208c。
如图所示,在从数字图像206中删除对象208c时,基于场景的图像编辑系统106自动地显示已经被放置在对象208c的位置的背景像素。实际上,如上所述,在一些实施例中,基于场景的图像编辑系统106通过为每个所描绘的前景对象生成内容填充来对数字图像206进行预处理。因此,如图2所示,当从数字图像206移除对象208c时,基于场景的图像编辑系统106自动暴露先前为对象208c生成的内容填充210。在一些情况下,基于场景的图像编辑系统106将内容填充210定位在数字图像内,使得内容填充210被暴露,而不是在移除对象208c时出现洞。
因此,与许多传统系统相比,基于场景的图像编辑系统106具有改进的灵活性。具体地,基于场景的图像编辑系统106实现灵活的基于场景的编辑技术,其中将数字图像修改为维持真实世界状况(例如,物理、环境或对象关系)的真实场景。实际上,在图2所示的示例中,基于场景的图像编辑系统106利用预先生成的内容填充来一致地维持数字图像206中描绘的背景环境,就好像数字图像206已经捕获了该背景的整体。因此,基于场景的图像编辑系统106使得所描绘的对象能够自由地四处移动(或完全移除),而不中断其中描绘的场景。
此外,基于场景的图像编辑系统106以改进的效率操作。实际上,通过分割数字图像206并生成内容填充210,以预期将对象208c从其在数字图像206中的位置移除的修改,基于场景的图像编辑系统106减少了在传统系统下通常需要执行那些相同操作的用户交互。因此,与这些传统系统相比,基于场景的图像编辑系统106能够以更少的用户交互来实现对数字图像的相同修改。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106在数字图像上实现对象感知图像编辑。具体地,基于场景的图像编辑系统106实现将对象作为可交互且可修改的连贯单元(cohesive unit)的对象感知修改。图3至图9B示出了根据一个或多个实施例的实现对象感知修改的基于场景的图像编辑系统106。
实际上,许多传统的图像编辑系统在与数字图像中描绘的对象交互方面是不灵活和低效的。例如,如前所述,传统系统通常是僵化的,因为它们要求用户交互以分离的像素为目标,而不是那些像素描绘的对象。因此,这样的系统通常需要严格而细致的过程来选择要修改的像素。此外,当经由用户选择进行对象标识时,这些系统通常无法预测和准备对这些对象进行的潜在编辑。
此外,许多传统的图像编辑系统需要大量的用户交互来修改数字图像中描绘的对象。实际上,除了用于标识数字图像中的对象的像素选择过程--这本身可能需要一系列用户交互--传统系统可能需要相当长的工作流,其中用户与多个菜单、子菜单、工具和/或窗口交互以执行编辑。通常,在能够执行所需的编辑之前,对对象执行编辑需要多个准备步骤,这需要额外的用户交互。
基于场景的图像编辑系统106提供了优于这些系统的优点。例如,基于场景的图像编辑系统106经由对象感知图像编辑提供了改进的灵活性。具体地,基于场景的图像编辑系统106实现对象级交互--而不是像素级或层级交互,从而促进直接将被描绘为连贯单元的对象而不是其分离的组成像素作为目标的用户交互。
此外,基于场景的图像编辑系统106提高了与数字图像中描绘的对象交互的效率。实际上,如前所述,并且如将在下面进一步讨论的,基于场景的图像编辑系统106实现用于标识和/或分割所描绘的对象的预处理操作,以预期对那些对象的修改。实际上,在许多情况下,基于场景的图像编辑系统106在不接收针对那些修改的用户交互的情况下执行这些预处理操作。因此,基于场景的图像编辑系统106减少了对所描绘的对象执行给定编辑所需的用户交互。
在一些实施例中,基于场景的图像编辑系统106通过为数字图像中描绘的每个对象/语义区域生成对象掩蔽(object mask)来实现对象感知图像编辑。具体地,在一些情况下,基于场景的图像编辑系统106利用诸如分割神经网络的机器学习模型来生成(多个)对象掩蔽。图3示出了根据一个或多个实施例,由基于场景的图像编辑系统106用来为对象生成对象掩蔽的分割神经网络。
在一个或多个实施例中,对象掩蔽包括数字图像的映射,该数字图像的映射对于每个像素具有该像素是否对应于对象的一部分(或其他语义区域)的指示。在一些实现中,该指示包括二进制指示(例如,对于属于该对象的像素,该指示为“1”,对于不属于该对象的像素,该指示为“0”)。在备选实现中,该指示包括指示像素属于对象的可能性的概率(例如,1和0之间的数字)。在这样的实现中,值越接近1,像素越有可能属于对象,反之亦然。
在一个或多个实施例中,机器学习模型包括基于输入可调(例如,训练)的计算机表示,以近似用于生成相应输出的未知函数。具体地,在一些实施例中,机器学习模型包括计算机实现的模型,该模型利用算法来通过分析已知数据来学习已知数据并对其进行预测,以学习以生成反映已知数据的模式和属性的输出。例如,在一些情况下,机器学习模型包括但不限于神经网络(例如卷积神经网络、递归神经网络或其他深度学习网络)、决策树(例如梯度增强决策树)、关联规则学习、归纳逻辑编程、支持向量学习、贝叶斯网络、基于回归的模型(例如删失回归)、主成分分析或其组合。
在一个或多个实施例中,神经网络包括互连的人工神经元的模型(例如,按层组织),其通信并学习近似复杂函数,并基于提供给该模型的多个输入生成输出。在某些情况下,神经网络包括一个或多个机器学习算法。此外,在某些情况下,神经网络包括实现深度学习技术的算法(或算法集),该深度学习技术利用一组算法来对数据中的高级抽象建模。为了说明,在一些实施例中,神经网络包括卷积神经网络、递归神经网络(例如,长短期记忆神经网络)、生成性对抗神经网络、图神经网络或多层感知器。在一些实施例中,神经网络包括神经网络或神经网络组件的组合。
在一个或多个实施例中,分割神经网络包括为数字图像中描绘的对象生成对象掩蔽的计算机实现的神经网络。具体地,在一些实施例中,分割神经网络包括计算机实现的神经网络,其检测数字图像内的对象并为对象生成对象掩蔽。实际上,在一些实现中,分割神经网络包括神经网络管道,该神经网络管道分析数字图像、标识在数字图像中描绘的一个或多个对象、并为该一个或多个对象生成对象掩蔽。然而,在某些情况下,分割神经网络关注用于生成对象掩蔽的任务的子集。
如上所述,图3示出了基于场景的图像编辑系统106在一个或多个实现中用来为数字图像中描绘的对象生成对象掩蔽的分割神经网络的一个示例。具体地,图3示出了在一些实施例中基于场景的图像编辑系统106用来检测数字图像中的对象并为这些对象生成对象掩蔽的分割神经网络的一个示例。实际上,图3示出了检测掩蔽神经网络300,其包括对象检测机器学习模型308(以对象检测神经网络的形式)和对象分割机器学习模型310(以对象分割神经网络的形式)。具体地,检测掩蔽神经网络300是在2022年1月31日提交的美国专利申请第17/589,114号中描述的在设备上掩蔽系统的实现,其全部内容通过引用并入本文。
尽管图3示出了利用检测掩蔽神经网络300的基于场景的图像编辑系统106,但在一个或多个实现中,基于场景的图像编辑系统106利用不同的机器学习模型来检测对象、为对象生成对象掩蔽、和/或从数字图像中提取对象。例如,在一个或多个实现中,基于场景的图像编辑系统106利用以下文档中描述的机器学习模型或神经网络之一,作为分割神经网络(或作为分割神经网络的备选):2021年1月26日提交的题为“Segmenting Objects InDigital Images Utilizing AMulti-Object Segmentation Model Framework”(基于多目标分割模型框架的数字图像目标分割)的美国专利申请第17/158,527号;或2019年4月8日提交的题为“Robust Training of Large-Scale Object Detectors with Noisy Data”(具有噪声数据的大规模目标检测器的稳健训练)的美国专利申请第16/388,115号;或2019年7月22日提交的题为“Utilizing Multiple Object Segmentation Models ToAutomatically Select User-Requested Objects In Images”(利用多目标分割模型自动选择图像中的用户请求对象)的美国专利申请第16/518,880号;或2020年3月20日提交的题为“Utilizing A Large-Scale Object Detector To Automatically Select Objects InDigital Images”(利用大规模目标探测器自动选择数字图像中的目标)的美国专利申请第16/817,418号;或Ren等,“Faster r-cnn:Towards real-time object detection withregion proposal networks”(更快的r-cnn:使用区域建议网络实现实时目标检测),NIPS,2015;或Redmon等,“You Only Look Once:Unified,Real-Time Object Detection”(您只需看一次:统一的实时对象检测),CVPR 2016,前述申请和论文中的每一个的内容通过引用整体并入本文。
类似地,在一个或多个实现中,基于场景的图像编辑系统106利用以下文档中描述的机器学习模型或神经网络之一,作为分割神经网络(或作为分割神经网络的备选):NingXu等,“Deep GrabCut for Object Selection”(用于对象选择的深度抓取切割),公布于2017年7月14日;或2017年10月31日提交的题为“Deep Salient Content Neural Networksfor Efficient Digital Object Segmentation”(深度突出内容神经网络在数字对象分割中的应用)的美国专利申请公开第2019/0130229号;或2018年7月13日提交的题为“Automatic Trimap Generation and Image Segmentation”(三叉图自动生成与图像分割)的美国专利申请第16/035,410号;或2015年11月18日提交的题为“UtilizingInteractive Deep Learning To Select Objects In Digital Visual Media”(利用交互式深度学习在数字视觉媒体中选择对象)的美国专利第10,192,129号,其每一个通过引用整体并入本文。
在一个或多个实现中,分割神经网络是全景分割神经网络。换言之,分割神经网络为给定对象类型的各个实例创建对象掩蔽。此外,在一个或多个实现中,分割神经网络为语义区域(例如,水、天空、沙子、泥土等)生成对象掩蔽,除了数不胜数的事物。实际上,在一个或多个实现中,基于场景的图像编辑系统106利用以下文档中描述的机器学习模型或神经网络之一,作为分割神经网络(或作为分割神经网络的备选):2021年10月2日提交的题为“PANOPTIC SEGMENTATION REFINEMENT NETWORK”(全景分割细化网络)的美国专利申请第17/495,618号;或2021年11月12日提交的题为“MULTI-SOURCE PANOPTIC FEATURE PYRAMIDNETWORK”(多源全景特征金字塔网络)的美国专利申请第17/454,740号,其每一个通过引用整体并入本文。
现在返回图3,在一个或多个实现中,基于场景的图像编辑系统106利用检测掩蔽神经网络300,该检测掩蔽神经网络300包括具有骨干网络的编码器302(或神经网络编码器)、检测头(detection head)304(或神经网络解码器头)和掩蔽头(masking head)306(或神经网络解码器头)。如图3所示,编码器302对数字图像316进行编码,并将该编码提供给检测头304和掩蔽头306。检测头304利用编码来检测数字图像316中描绘的一个或多个对象。掩蔽头306为检测到的对象生成至少一个对象掩蔽。
如上所述,检测掩蔽神经网络300利用对象检测机器学习模型308和对象分割机器学习模型310两者。在一个或多个实现中,对象检测机器学习模型308包括图3所示的编码器302和检测头304两者。而对象分割机器学习模型310包括编码器302和掩蔽头306两者。此外,对象检测机器学习模型308和对象分割机器学习模型310是用于处理目标和/或源数字图像内的对象的分离的机器学习模型。图3示出了作为用于检测和分割数字图像的对象的单个模型的编码器302、检测头304和掩蔽头306。出于效率目的,在一些实施例中,基于场景的图像编辑系统106将图3中所示的网络用作单个网络。集合网络(即,对象检测机器学习模型308和对象分割机器学习模型310)被称为检测掩蔽神经网络300。以下段落描述了与网络的对象检测机器学习模型308相关的组件(诸如检测头304)以及过渡到讨论与对象分割机器学习模型310相关的组件。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106利用对象检测机器学习模型308来检测和标识数字图像316内的对象(例如,目标或源数字图像)。图3示出了根据至少一个实施例的基于场景的图像编辑系统106使用的对象检测机器学习模型308的一个实现。具体地,图3示出了利用对象检测机器学习模型308来检测对象的基于场景的图像编辑系统106。在一个或多个实施例中,对象检测机器学习模型308包括深度学习卷积神经网络(CNN)。例如,在一些实施例中,对象检测机器学习模型308包括基于区域的(R-CNN)。
如图3所示,对象检测机器学习模型308包括较低的神经网络层和较高的神经网络层。通常,较低的神经网络层共同形成编码器302,而较高的神经网络层共同形成检测头304(例如,解码器)。在一个或多个实施例中,编码器302包括将数字图像编码成特征向量的卷积层,该特征向量从编码器302输出并作为输入提供给检测头304。在各种实现中,检测头304包括分析特征向量并输出检测到的对象(可能具有对象周围的近似边界)的完全连接层。
具体地,在一个或多个实现中,编码器302包括生成特征图形式的特征向量的卷积层。为了检测数字图像316内的对象,对象检测机器学习模型308利用跨特征图的小窗口滑动的小网络形式的卷积层来处理特征图。对象检测机器学习模型308还将每个滑动窗口映射到低维特征。在一个或多个实施例中,对象检测机器学习模型308使用作为完全连接层的两个分离的检测头来处理该特征。在一些实施例中,第一头包括生成检测到的对象的盒回归层(box-regression layer)和生成对象标签的对象分类层。
如图3所示,来自检测头304的输出显示每个被检测对象上方的对象标签。例如,检测掩蔽神经网络300响应于检测到对象,向每个检测到的对象分配对象标签。具体地,在一些实施例中,检测掩蔽神经网络300利用基于对象的分类的对象标签。为了说明,图3示出了用于女人的标签318、用于鸟类的标签320和用于男人的标签322。尽管未在图3中示出,但在一些实现中,检测掩蔽神经网络300进一步区分女人和女人手持的冲浪板。此外,检测掩蔽神经网络300还可选地为所示的语义区域(例如,沙子、海和天空)生成对象掩蔽。
如上所述,对象检测机器学习模型308检测数字图像316内的对象。在一些实施例中,并且如图3所示,检测掩蔽神经网络300利用近似边界(例如,边界框319、321和323)指示被检测对象。例如,每个边界框包括围绕对象的区域。在一些实施例中,检测掩蔽神经网络300用诸如检测到的对象的名称、边界框的坐标和/或边界框的尺寸等先前提到的对象标签来注释边界框。
如图3所示,对象检测机器学习模型308检测数字图像316的若干对象。在一些情况下,检测掩蔽神经网络300标识边界框内的所有对象。在一个或多个实施例中,边界框包括指示检测到的对象的近似边界区域。在一些情况下,近似边界指的是包括比对象掩蔽更大和/或精度更低的对象的区域的指示。在一个或多个实施例中,近似边界包括检测到的对象的至少一部分和数字图像316中不包括检测到的对象的部分。近似边界包括各种形状,例如正方形、矩形、圆形、椭圆形或对象周围的其他轮廓。在一个或多个实施例中,近似边界包括边界框。
在检测到数字图像316中的对象时,检测掩蔽神经网络300为检测到的对象生成对象掩蔽。通常,检测掩蔽神经网络300生成更好地定义对象的边界的分割掩蔽,而不是在对象定位期间使用粗糙的边界框。以下段落根据一个或多个实施例提供关于为检测到的对象生成对象掩蔽的附加细节。具体地,图3示出了根据一些实施例,基于场景的图像编辑系统106利用对象分割机器学习模型310经由对象掩蔽来生成分割的对象。
如图3所示,基于场景的图像编辑系统106利用对象分割机器学习模型310处理边界框中检测到的对象,以生成对象掩蔽,诸如对象掩蔽324和对象掩蔽326。在备选实施例中,基于场景的图像编辑系统106利用对象检测机器学习模型308本身来生成检测到的对象的对象掩蔽(例如,分割对象以供选择)。
在一个或多个实现中,在生成检测到的对象的对象掩蔽之前,基于场景的图像编辑系统106接收用户输入312以确定要为其生成对象掩蔽的对象。例如,基于场景的图像编辑系统106从用户接收指示对检测到的对象之一的选择的输入。为了说明,在所示实现中,基于场景的图像编辑系统106接收用户选择边界框321和边界框323的用户输入312。在备选实现中,基于场景的图像编辑系统106自动地为每个对象生成对象掩蔽(例如,无需指示要选择的对象的用户请求)。
如上所述,基于场景的图像编辑系统106利用对象分割机器学习模型310处理数字图像316中检测到的对象的边界框。在一些实施例中,边界框包括来自对象检测机器学习模型308的输出。例如,如图3所示,边界框包括对象周围的矩形边框。具体地,图3示出了围绕在数字图像316中检测到的女人、鸟和男人的边界框319、321和323。
在一些实施例中,基于场景的图像编辑系统106利用对象分割机器学习模型310来为边界框内的前述检测到的对象生成对象掩蔽。例如,对象分割机器学习模型310对应于一个或多个深度神经网络或模型,该一个或多个深度神经网络或模型基于对应于数字图像316内的对象的边界框参数来选择对象。具体地,对象分割机器学习模型310分别为检测到的男人和鸟生成对象掩蔽324和对象掩蔽326。
在一些实施例中,基于场景的图像编辑系统106基于由对象检测机器学习模型308标识的对象的对象标签,来选择对象分割机器学习模型310。通常,基于标识与输入边界框相关联的一个或多个对象类别,基于场景的图像编辑系统106选择对象分割机器学习模型,其被调整为针对所标识的一个或多个类别的对象生成对象掩蔽。为了说明,在一些实施例中,基于确定一个或多个所标识的对象的类别包括人类或人,基于场景的图像编辑系统106利用特殊的人类对象掩蔽神经网络来生成对象掩蔽,例如图3中所示的对象掩蔽324。
如图3进一步所示,基于场景的图像编辑系统106接收对象掩蔽324和对象掩蔽326作为来自对象分割机器学习模型310的输出。如前所述,在一个或多个实施例中,对象掩蔽包括对应于源或目标数字图像中的对象的像素级掩蔽。在一个示例中,对象掩蔽包括指示一个或多个对象的预测边缘以及包含在预测边缘内的像素的分割边界。
在一些实施例中,基于场景的图像编辑系统106还经由集体网络,即检测掩蔽神经网络300,以与上述相同的方式检测数字图像316中所示的对象。例如,在一些情况下,基于场景的图像编辑系统106经由检测掩蔽神经网络300检测数字图像316内的女人、男人和鸟。具体地,基于场景的图像编辑系统106经由检测头304,利用特征金字塔(feature pyramid)和特征图来标识数字图像316内的对象,并经由掩蔽头306生成对象掩蔽。
此外,在一个或多个实现中,尽管图3示出了基于用户输入312生成对象掩蔽,但是基于场景的图像编辑系统106在没有用户输入312的情况下生成对象掩蔽。具体地,基于场景的图像编辑系统106为数字图像316内的所有检测到的对象生成对象掩蔽。为了说明,在至少一个实现中,尽管没有接收到用户输入312,但基于场景的图像编辑系统106为女人、男人和鸟生成对象掩蔽。
在一个或多个实施例中,基于场景的图像编辑系统106通过利用洞填充模型(hole-filing model)针对数字图像中描绘的每个对象(例如,针对对应于所描绘的对象的每个对象掩蔽)生成内容填充来实现对象感知图像编辑。具体地,在一些情况下,基于场景的图像编辑系统106利用机器学习模型,诸如内容感知的洞填充机器学习模型来为每个前景对象生成(多个)内容填充。图4至图6示出了根据一个或多个实施例,由基于场景的图像编辑系统106用来为对象生成内容填充的内容感知的洞填充机器学习模型。
在一个或多个实施例中,内容填充包括为替换数字图像的另一组像素而生成的一组像素。实际上,在一些实施例中,内容填充包括用于替换另一组像素的一组替换像素。例如,在一些实施例中,内容填充包括被生成以填充在一组像素(例如,描绘对象的一组像素)已经从数字图像移除或在其内移动之后(或如果)而剩余的洞(例如,内容空白)的一组像素。在某些情况下,内容填充对应于数字图像的背景。为了说明,在一些实现中,内容填充包括所生成的一组像素,以与可被移动/移除的对象附近的背景的一部分混合。在一些情况下,内容填充包括修复片段,诸如从数字图像内的其他像素(例如,其他背景像素)生成的修复片段。在一些情况下,内容填充包括其他内容(例如,任意选择的内容或由用户选择的内容)以填充洞或替换另一组像素。
在一个或多个实施例中,内容感知的洞填充机器学习模型包括生成内容填充的计算机实现的机器学习模型。具体地,在一些实施例中,内容感知的洞填充机器学习模型包括为数字图像中的替换区域生成内容填充的计算机实现的机器学习模型。例如,在一些情况下,基于场景的图像编辑系统106确定对象已在数字图像内移动或从数字图像移除,并利用内容感知的洞填充机器学习模型来生成针对作为响应移动/移除的结果而暴露的洞的内容填充。然而,如将更详细地讨论的,在一些实现中,基于场景的图像编辑系统106预测对象的移动或移除,并利用内容感知的洞填充机器学习模型来为该对象预先生成内容填充。在一些情况下,内容感知的洞填充机器学习模型包括神经网络,例如修复神经网络(例如,使用数字图像的其他像素来生成内容填充--更具体地修复片段--的神经网络)。换言之,在各种实现中,基于场景的图像编辑系统106利用内容感知的洞填充机器学习模型来在最初不描绘这种内容的数字图像的位置处提供内容(例如,由于该位置被诸如对象的另一语义区域占据)。
图4示出了根据一个或多个实施例,基于场景的图像编辑系统106利用诸如级联调制修复神经网络(cascaded modulation inpainting neural network)420的内容感知机器学习模型从具有替换区域404的数字图像402生成修复数字图像408。
实际上,在一个或多个实施例中,替换区域404包括对应于对象的区域(以及如果对象被移动或删除将存在的洞)。在一些实施例中,基于场景的图像编辑系统106基于用户对要从数字图像移动、移除、覆盖或替换的像素(例如,描绘对象的像素)的选择来标识替换区域404。为了说明,在一些情况下,客户端设备选择在数字图像中描绘的对象。因此,基于场景的图像编辑系统106删除或移除对象并生成替换像素。在一些情况下,基于场景的图像编辑系统106通过经由分割神经网络生成对象掩蔽来标识替换区域404。例如,基于场景的图像编辑系统106利用分割神经网络(例如,上面参考图3讨论的检测掩蔽神经网络300)来检测具有数字图像的对象并为该对象生成对象掩蔽。因此,在一些实现中,基于场景的图像编辑系统106在接收用户输入以移动、移除、覆盖或替换最初占据替换区域404的像素之前,为替换区域404生成内容填充。
如图所示,基于场景的图像编辑系统106利用级联调制修复神经网络420来生成针对替换区域404的替换像素。在一个或多个实施例中,级联调制修复神经网络420包括用于生成替换像素的生成性对抗神经网络。在一些实施例中,生成性对抗神经网络(或“GAN”)包括经由对抗性过程被调整或训练以生成输出数字图像(例如,从输入数字图像)的神经网络。在一些情况下,生成性对抗神经网络包括多个组成神经网络,诸如编码器神经网络和一个或多个解码器/生成器神经网络。例如,编码器神经网络从噪声向量或数字图像中提取潜在代码。生成器神经网络(或生成器神经网络的组合)通过组合所提取的潜在代码(例如,从编码器神经网络)来生成修改的数字图像。在训练期间,鉴别器神经网络与生成器神经网络竞争,通过确定所生成的数字图像是真实的(例如,来自一组所存储的数字图像)还是虚假的(例如,不是来自一组所存储的数字图像),来分析所生成的数字图像以生成真实性预测。鉴别器神经网络还使基于场景的图像编辑系统106修改编码器神经网络和/或一个或多个生成器神经网络的参数,以最终生成欺骗鉴别器神经网络以指示所生成的数字图像是真实数字图像的数字图像。
沿着这些思路,生成性对抗神经网络指的是具有特定架构或特定目的的神经网络,例如生成性修复神经网络。例如,生成性修复神经网络包括生成性对抗神经网络,该生成性对抗神经网络用内容填充来修复或填充数字图像的像素(或者生成内容填充,以预期修复或填充数字图像的像素)。在某些情况下,生成性修复神经网络通过填充洞区域(由对象掩蔽指示)来修复数字图像。实际上,如上所述,在一些实施例中,对象掩蔽使用分割或掩蔽来定义替换区域,该分割或掩蔽指示、重叠、覆盖或勾勒出要在数字图像内被移除或替换的像素。
因此,在一些实施例中,级联调制修复神经网络420包括生成性修复神经网络,该生成性修复神经网络利用具有一个或多个级联调制解码器层的解码器。实际上,如图4所示,级联调制修复神经网络420包括多个级联调制解码器层410、412、414、416。在一些情况下,级联调制解码器层包括至少两个连接的(例如,级联的)调制块,用于在生成修复数字图像时调制输入信号。为了说明,在一些情况下,级联调制解码器层包括第一全局调制块和第二全局调制块。类似地,在一些情况下,级联调制解码器层包括第一全局调制块(其分析全局特征并利用全局空间不变方法)和第二空间调制块(其利用空间变化方法分析局部特征)。下面将提供关于调制块的附加细节(例如,关于图5至图6)。
如图所示,基于场景的图像编辑系统106利用级联调制修复神经网络420(以及级联调制解码器层410、412、414、416)来生成修复数字图像408。具体地,级联调制修复神经网络420通过生成针对替换区域404的内容填充来生成修复数字图像408。如图所示,替换区域404现在利用具有替换像素的内容填充而被填充,该替换像素描绘了代替替换区域404的照片级真实感(photorealistic)场景。
如上所述,基于场景的图像编辑系统106利用包括级联调制解码器层的级联调制修复神经网络来生成修复数字图像。图5示出了根据一个或多个实施例的级联调制修复神经网络502的示例架构。
如图所示,级联调制修复神经网络502包括编码器504和解码器506。具体地,编码器504包括不同尺度/分辨率的多个卷积层508a-508n。在一些情况下,基于场景的图像编辑系统106将数字图像输入510(例如,数字图像的编码)馈送到第一卷积层508A,以生成较高尺度(例如,较低分辨率)的编码特征向量。第二卷积层508b以较高尺度(较低分辨率)处理编码特征向量,并生成附加的编码特征向量(以另一较高尺度/较低分辨率)。级联调制修复神经网络502迭代地生成这些编码特征向量,直到达到最终/最高尺度卷积层508n,并生成数字图像的最终编码特征向量表示。
如图所示,在一个或多个实施例中,级联调制修复神经网络502从编码器504的最终编码特征向量生成全局特征码(global feature code)。全局特征码包括从全局(例如,高级别、高尺度、低分辨率)角度的数字图像的特性表示。具体地,全局特征码包括数字图像的表示,该数字图像反映以最高尺度/最低分辨率编码特征向量(或满足阈值尺度/分辨率的不同编码特征向量)。
如图所示,在一个或多个实施例中,级联调制修复神经网络502将神经网络层(例如,完全连接层)应用于最终编码特征向量以生成样式码512(例如,样式向量)。此外,级联调制修复神经网络502通过将样式码512与随机样式码514组合来生成全局特征码。具体地,级联调制修复神经网络502通过利用神经网络层(例如,多层感知器)来处理输入噪声向量来生成随机样式码514。神经网络层将输入噪声向量映射到随机样式码514。级联调制修复神经网络502将随机样式码514与样式码512组合(例如,连接、相加或相乘)以生成全局特征码516。尽管图5示出了生成全局特征码516的特定方法,但是基于场景的图像编辑系统106能够利用各种不同的方法来生成表示编码器504的编码特征向量的全局特征码(例如,没有样式码512和/或随机样式码514)。
如上所述,在一些实施例中,级联调制修复神经网络502利用编码器504生成图像编码。图像编码是指数字图像的编码表示。因此,在一些情况下,图像编码包括一个或多个编码特征向量、样式码和/或全局特征码。
在一个或多个实施例中,级联调制修复神经网络502利用多个傅里叶卷积编码器层来生成图像编码(例如,编码特征向量、样式码512和/或全局特征码516)。例如,傅里叶卷积编码器层(或快速傅立叶卷积)包括卷积层,该卷积层包括非局部感受场和卷积单元内的跨尺度融合。具体地,快速傅立叶卷积可以在单个运算单元中包括三种计算:执行小核卷积的局部分支、处理光谱堆叠图像块的半全局分支、以及操纵图像级别频谱的全局分支。这三个分支相辅相成地处理不同的尺度。此外,在某些情况下,快速傅立叶卷积包括用于跨尺度融合的多分支聚合过程。例如,在一个或多个实施例中,级联调制修复神经网络502使用快速傅立叶卷积层,如Lu Chi、Borui Jiang、和Yadong Mu在“Fast Fourier convolution,Advances in Neural Information Processing Systems”(快速傅立叶卷积,神经信息处理系统的新进展),33(2020)中所描述的,其通过引用整体并入本文。
具体地,在一个或多个实施例中,级联调制修复神经网络502针对编码器卷积层508a-508n中的每一个使用傅里叶卷积编码层。因此,级联调制修复神经网络502利用具有不同尺度/分辨率的不同傅立叶卷积编码层来生成具有改进的非局部感受场的编码特征向量。
编码器504的操作也可以用变量或方程来描述,以展示级联调制修复神经网络502的功能。例如,如上所述,级联调制修复神经网络502是在其解码阶段具有所建议的用于图像修复的级联调制块的编码器-解码器网络。具体地,级联调制修复神经网络502以将部分图像和掩蔽作为输入的编码器E开始,以产生从输入分辨率到分辨率4×4的多尺度特征图:
其中/>是按尺度1≤i≤L生成的特征(而L是最高尺度或分辨率)。该编码器由一组具有残余连接的2跨步卷积来实现。
在生成最高尺度特征之后,全连接层之后是/>归一化,会产生全局样式码来表示全局输入。与编码器并行,基于MLP的映射网络从归一化的随机高斯噪声z产生随机样式码w,从而模拟生成过程的随机性。此外,基于场景的图像编辑系统106将w与S相结合以产生最终全局码g=[s;w],以用于解码。如上所述,在一些实施例中,基于场景的图像编辑系统106利用最终全局码作为针对数字图像的图像编码。
如上所述,在一些实现中,全卷积模型受到有效感受场增长缓慢的影响,尤其是在网络的早期阶段。因此,在编码器内使用跨步卷积可以在洞区域内生成无效特征,从而使解码阶段的特征校正更具挑战性。快速傅立叶卷积(FFC)可以帮助早期层获得覆盖整个图像的感受场。然而,传统系统仅在瓶颈层使用FFC,这对计算要求很高。此外,浅瓶颈层不能有效地捕获全局语义特征。因此,在一个或多个实现中,基于场景的图像编辑系统106将编码器中的卷积块替换为编码层的FFC。FFC使编码器能够在早期阶段传播特征,从而解决在洞内生成无效特征的问题,这有助于改善结果。
如图5进一步所示,级联调制修复神经网络502还包括解码器506。如图所示,解码器506包括多个级联调制层520a-520n。级联调制层520a-520n处理输入特征(例如,输入全局特征图和输入局部特征图)以生成新特征(例如,新全局特征图和新局部特征图)。具体地,级联调制层520a-520n中的每一个以不同的尺度/分辨率操作。因此,第一级联调制层520a采用以第一分辨率/尺度的输入特征,并以较低尺度/较高分辨率(例如,通过作为一个或多个调制操作的一部分的上采样)生成新特征。类似地,附加级联调制层以更低的尺度/更高的分辨率操作,直到以输出尺度/分辨率(例如,最低尺度/最高分辨率)生成修复数字图像。
此外,级联调制层中的每一个包括多个调制块。例如,关于图5,第一级联调制层520a包括全局调制块和空间调制块。具体地,级联调制修复神经网络502关于全局调制块的输入特征执行全局调制。此外,级联调制修复神经网络502关于空间调制块的输入特征执行空间调制。通过在每个级联调制层内执行全局调制和空间调制,基于场景的图像编辑系统106细化全局位置以生成更准确的修复数字图像。
如图所示,级联调制层520a-520n是级联的,因为全局调制块馈送到空间调制块中。具体地,级联调制修复神经网络502基于在全局调制块处被生成的特征来在空间调制块处执行空间调制。为了说明,在一个或多个实施例中,级联调制修复神经网络502利用全局调制块来生成中间特征。级联调制修复神经网络502还利用卷积层(例如,2层卷积仿射参数网络)来将中间特征转换为空间张量。级联调制修复神经网络502利用空间张量来调制由空间调制块分析的输入特征。
例如,图6根据一个或多个实施例提供了关于全局调制块和空间调制块的操作的附加细节。具体地,图6示出了全局调制块602和空间调制块603。如图6所示,全局调制块602包括第一全局调制操作604和第二全局调制操作606。此外,空间调制块603包括全局调制操作608和空间调制操作610。
例如,调制块(或调制操作)包括用于根据一个或多个状况(condition)调制(例如,缩放或移位)输入信号的计算机实现的过程。为了说明,调制块包括放大某些特征,同时抵消/归一化这些放大以维持在生成性模型内的操作。因此,例如,在一些情况下,调制块(或调制操作)包括调制层、卷积层和归一化层。调制层对卷积的每个输入特征进行缩放,并且归一化移除来自卷积的输出特征图的统计的缩放的影响。
实际上,因为调制层修改特征统计,所以调制块(或调制操作)通常包括用于解决这些统计变化的一种或多种方法。例如,在一些情况下,调制块(或调制操作)包括利用批归一化或实例归一化来归一化特征的计算机实现的过程。在一些实施例中,通过根据从输入状况预测的仿射参数对归一化激活进行缩放和移位来实现调制。类似地,一些调制过程用解调过程代替特征归一化。因此,在一个或多个实施例中,调制块(或调制操作)包括调制层、卷积层和解调层。例如,在一个或多个实施例中,调制块(或调制操作)包括由TeroKarras、Samuli Laine、Miika Aittala、Janne Hellsten、Jaakko Lehtinen、和Timo Aila在“Analyzing and improving the image quality of StyleGA”(StyleGA图像质量的分析与改进),CVPR(2020)(下文称为StyleGan2)中描述的调制方法,其通过引用整体并入本文。在一些情况下,调制块包括一个或多个调制操作。
此外,在一个或多个实施例中,全局调制块(或全局调制操作)包括以空间不变的方式调制输入信号的调制块(或调制操作)。例如,在一些实施例中,全局调制块(或全局调制操作)根据数字图像的全局特征(例如,不跨特征图或图像的坐标在空间上变化)来执行调制。因此,例如,全局调制块包括根据由编码器生成的图像编码(例如,全局特征码)来调制输入信号的调制块。在一些实现中,全局调制块包括多个全局调制操作。
在一个或多个实施例中,空间调制块(或空间调制操作)包括以空间变化的方式(例如,根据空间变化的特征图)来调制输入信号的调制块(或调制操作)。具体地,在一些实施例中,空间调制块(或空间调制操作)利用空间张量以空间变化的方式调制输入信号。因此,在一个或多个实施例中,全局调制块应用全局调制,其中仿射参数在空间坐标上是一致的,并且空间调制块应用在空间坐标上变化的空间变化的仿射变换。在一些实施例中,空间调制块包括与另一调制操作组合的空间调制操作(例如,全局调制操作和空间调制操作)。
例如,在一些实施例中,空间调制操作包括空间自适应调制,如Taesung Park、Ming-Yu Liu、Ting-Chun Wang和Jun-Yan Zhu在“Semantic image synthesis withspatially-adaptive normalization”(基于空间自适应归一化的语义图像合成),CVPR(2019)中描述的,其通过引用整体并入本文(下文称为Taesung)。在一些实施例中,空间调制操作利用具有与Taesung不同的架构的空间调制操作,包括调制-卷积-解调管道。
因此,关于图6,基于场景的图像编辑系统106利用全局调制块602。如图所示,全局调制块602包括第一全局调制操作604和第二全局调制操作606。具体地,第一全局调制操作604处理全局特征图612。例如,全局特征图612包括由级联调制修复神经网络生成的反映全局特征(例如,高级别特征或对应于整个数字图像的特征)的特征向量。因此,例如,全局特征图612包括反映从级联解码器层的先前全局调制块生成的全局特征的特征向量。在一些情况下,全局特征图612还包括对应于由编码器生成的编码特征向量的特征向量(例如,在第一解码器层,在各种实现中,基于场景的图像编辑系统106利用编码特征向量、样式码、全局特征码、常量、噪声向量或其他特征向量作为输入)。
如图所示,第一全局调制操作604包括调制层604a、上采样层604b、卷积层604c和归一化层604d。具体地,基于场景的图像编辑系统106利用调制层604a基于全局特征码614(例如,全局特征码516)来执行全局特征图612的全局调制。具体地,基于场景的图像编辑系统106将神经网络层(即,完全连接层)应用于全局特征码614以生成全局特征向量616。然后,基于场景的图像编辑系统106利用全局特征向量616来调制全局特征图612。
此外,基于场景的图像编辑系统106应用上采样层604b(例如,以修改分辨率尺度)。此外,基于场景的图像编辑系统106应用卷积层604c。此外,基于场景的图像编辑系统106应用归一化层604d以完成第一全局调制操作604。如图所示,第一全局调制操作604生成全局中间特征618。具体地,在一个或多个实施例中,基于场景的图像编辑系统106通过将第一全局调制操作604的输出与编码特征向量620(例如,来自具有匹配尺度/分辨率的编码器的卷积层)进行组合(例如,连接)来生成全局中间特征618。
如图所示,基于场景的图像编辑系统106还利用第二全局调制操作606。具体地,基于场景的图像编辑系统106将第二全局调制操作606应用于全局中间特征618,以生成新的全局特征图622。具体地,基于场景的图像编辑系统106将全局调制层606a应用于全局中间特征618(例如,以全局特征向量616为条件)。此外,基于场景的图像编辑系统106应用卷积层606b和归一化层606c来生成新的全局特征图622。如图所示,在一些实施例中,基于场景的图像编辑系统106在生成新的全局特征图622时应用空间偏置。
此外,如图6所示,基于场景的图像编辑系统106利用空间调制块603。具体地,空间调制块603包括全局调制操作608和空间调制操作610。全局调制操作608处理局部特征图624。例如,局部特征图624包括由级联调制修复神经网络生成的反映局部特征(例如,低级别、特定或空间变化特征)的特征向量。因此,例如,局部特征图624包括反映从级联解码器层的先前空间调制块生成的局部特征的特征向量。在一些情况下,全局特征图612还包括与由编码器生成的编码特征向量对应的特征向量(例如,在第一解码器层,在各种实现中,基于场景的图像编辑系统106利用编码特征向量、样式码、噪声向量或其他特征向量)。
如图所示,基于场景的图像编辑系统106利用全局调制操作608从局部特征图624生成局部中间特征626。具体地,基于场景的图像编辑系统106应用调制层608a、上采样层608b、卷积层608c和归一化层608d。此外,在一些实施例中,基于场景的图像编辑系统106将空间偏置和广播噪声应用于全局调制操作608的输出,以生成局部中间特征626。
如图6所示,基于场景的图像编辑系统106利用空间调制操作610来生成新的局部特征图628。实际上,空间调制操作610基于全局中间特征618来调制局部中间特征626。具体地,基于场景的图像编辑系统106从全局中间特征618生成空间张量630。例如,基于场景的图像编辑系统106应用卷积仿射参数网络来生成空间张量630。具体地,基于场景的图像编辑系统106应用卷积仿射参数网络来生成中间空间张量。基于场景的图像编辑系统106将中间空间张量与全局特征向量616组合以生成空间张量630。基于场景的图像编辑系统106利用空间张量630来调制局部中间特征626(利用空间调制层610a),并生成调制张量。
如图所示,基于场景的图像编辑系统106还将卷积层610b应用于调制张量。具体地,卷积层610b从调制张量生成卷积特征表示。此外,基于场景的图像编辑系统106将归一化层610c应用于卷积特征表示以生成新的局部特征图628。
尽管示出为归一化层610c,但在一个或多个实施例中,基于场景的图像编辑系统106应用解调层。例如,基于场景的图像编辑系统106应用调制-卷积-解调管道(例如,一般归一化而不是实例归一化)。在某些情况下,该方法避免了由实例归一化引起的潜在伪影(例如,水滴伪影)。实际上,解调/归一化层包括通过统一的解调/归一化值(例如,通过统一的标准差而不是基于特征图的内容使用依赖于数据的常量归一化的实例归一化)来缩放每个输出特征图的层。
如图6所示,在一些实施例中,基于场景的图像编辑系统106还将移位张量632和广播噪声应用于空间调制操作610的输出。例如,空间调制操作610生成归一化/解调的特征。基于场景的图像编辑系统106还通过将仿射参数网络应用于全局中间特征618来生成移位张量632。基于场景的图像编辑系统106组合归一化/解调的特征、移位张量632和/或广播噪声以生成新的局部特征图628。
在一个或多个实施例中,在生成新的全局特征图622和新的局部特征图628时,基于场景的图像编辑系统106前进到解码器中的下一级联调制层。例如,基于场景的图像编辑系统106使用新的全局特征图622和新的局部特征图628作为对以不同尺度/分辨率的附加的级联调制层的输入特征。基于场景的图像编辑系统106还利用附加的级联调制层来生成附加的特征图(例如,利用附加的全局调制块和附加的空间调制块)。在一些情况下,基于场景的图像编辑系统106利用级联调制层迭代地处理特征图,直到达到最终尺度/分辨率以生成修复数字图像。
尽管图6示出了全局调制块602和空间调制块603,但在一些实施例中,基于场景的图像编辑系统106利用全局调制块,其后是另一全局调制块。例如,基于场景的图像编辑系统106用附加的全局调制块替换空间调制块603。在这样的实施例中,基于场景的图像编辑系统106利用跳步连接(skip connection)来替换图6中所示的APN(和空间张量)和相应的空间调制。例如,基于场景的图像编辑系统106利用全局中间特征来执行关于局部中间向量的全局调制。因此,在一些情况下,基于场景的图像编辑系统106利用第一全局调制块和第二全局调制块。
如上所述,解码器还可以用变量和方程来描述,以示出级联调制修复神经网络的操作。例如,如上所述,解码器堆叠一系列级联调制块以对输入特征图进行上采样。每个级联调制块将全局码g作为输入,以根据局部图像的全局表示来调制特征。此外,在一些情况下,基于场景的图像编辑系统106提供了在预测全局结构之后校正局部误差的机制。
具体地,在一些实施例中,基于场景的图像编辑系统106利用级联调制块来解决全局和局部地生成相干特征的挑战。在高级别,基于场景的图像编辑系统106遵循以下方法:i)分解全局和局部特征以将局部细节与全局结构分离,ii)从全局结构预测局部细节的全局和空间调制的级联。在一个或多个实现中,基于场景的图像编辑系统106利用从全局码生成的空间调制来进行更好的预测(例如,并丢弃实例归一化以使设计与StyleGAN2兼容)。
具体地,级联调制以来自前一尺度的全局和局部特征和/>和全局码g作为输入,并产生下一尺度/分辨率的新的全局和局部特征/>和/>为了从/>产生新的全局码基于场景的图像编辑系统106使用包括调制-卷积-解调过程的全局码调制阶段,其生成上采样特征X。
由于全局向量g在表示2-d视觉细节上的表达能力有限,并且洞内外的特征不一致,因此全局调制可能产生与上下文不一致的失真特征。为了补偿,在一些情况下,基于场景的图像编辑系统106利用生成更准确特征的空间调制。具体地,空间调制以X为空间码,g为全局码,以空间自适应的方式调制输入局部特征
此外,基于场景的图像编辑系统106利用独特的空间调制-解调机制来避免传统系统中由实例归一化引起的潜在的“水滴”伪影。如图所示,空间调制遵循调制-卷积-解调管道。
具体地,对于空间调制,基于场景的图像编辑系统106通过2层卷积仿射参数网络(APN)从特征X生成空间张量A0=APN(Y)。同时,基于场景的图像编辑系统106从具有全连接层(fc)的全局对象g生成全局向量α=fc(g)以捕获全局上下文。基于场景的图像编辑系统106生成最终空间张量A=A0+α,作为A0和α的广播总和,用于利用逐元素乘积⊙来缩放块的中间特征Y:
此外,对于卷积,调制张量与3×3可学习核K卷积,结果是:
对于空间感知解调,基于场景的图像编辑系统106应用解调步骤来计算归一化输出具体地,基于场景的图像编辑系统106假设输入特征Y是具有单位方差的独立随机变量,并且在调制之后,输出的期望方差不改变,即/>因此,这给出解调计算:
其中是解调系数。在一些情况下,基于场景的图像编辑系统106利用标准张量运算来实现前述等式。
在一个或多个实现中,基于场景的图像编辑系统106还添加空间偏差和广播噪声。例如,基于场景的图像编辑系统106将归一化特征与由来自特征X的另一仿射参数网络(APN)产生的移位张量B=APN(X)与广播噪声n相加,以产生新的局部特征/>
因此,在一个或多个实施例中,为了针对具有替换区域的数字图像生成具有替换像素的内容填充,基于场景的图像编辑系统106利用内容感知的洞填充机器学习模型(例如,级联调制修复神经网络)的编码器来从数字图像生成编码特征图。基于场景的图像编辑系统106还利用内容感知的洞填充机器学习模型的解码器来生成替换区域的内容填充。具体地,在一些实施例中,基于场景的图像编辑系统106利用来自内容感知的洞填充机器学习模型的一个或多个解码层的局部特征图和全局特征图来生成数字图像的替换区域的内容填充。
如以上参考图3至图6所讨论的,在一个或多个实施例中,基于场景的图像编辑系统106利用分割神经网络来为数字图像中描绘的对象生成对象掩蔽,并且利用内容感知的洞填充机器学习模型来针对那些对象(例如,针对为对象生成的对象掩蔽)生成内容填充。如进一步提到的,在一些实施例中,基于场景的图像编辑系统106生成(多个)对象掩蔽和(多个)内容填充,以预期对数字图像的一个或多个修改--在接收到针对这样的修改的用户输入之前。例如,在一个或多个实现中,在打开、访问或显示数字图像706时,基于场景的图像编辑系统106自动生成(多个)对象掩蔽和(多个)内容填充(例如,无需用户输入来这样做)。因此,在一些实现中,基于场景的图像编辑系统106促进数字图像的对象感知修改。图7示出了根据一个或多个实施例的用于生成对象掩蔽和内容填充以促进对数字图像的对象感知修改的图示。
在一个或多个实施例中,对象感知修改包括以数字图像中标识的对象为目标的编辑操作。具体地,在一些实施例中,对象感知修改包括以先前已分割的对象为目标的编辑操作。例如,如所讨论的,在一些实现中,在接收用于修改对象的用户输入之前,基于场景的图像编辑系统106为数字图像中描绘的对象生成掩蔽。因此,在用户选择对象时(例如,用户选择描绘对象的至少一些像素),基于场景的图像编辑系统106确定以对整个对象的修改为目标,而不是要求用户专门指定要编辑的每个像素。因此,在一些情况下,对象感知修改包括通过管理将对象描绘为连贯单元的一部分的所有像素而不是单个元素来以对象为目标的修改。例如,在一些实现中,对象感知修改包括但不限于移动操作或删除操作。
如图7所示,基于场景的图像编辑系统106利用分割神经网络702和内容感知的洞填充机器学习模型704来分析/处理数字图像706。数字图像706相对于背景描绘多个对象708a-708d。因此,在一个或多个实施例中,基于场景的图像编辑系统106利用分割神经网络702来标识数字图像内的对象708a-708d。
在一个或多个实施例中,基于场景的图像编辑系统106利用分割神经网络702和内容感知的洞填充(content-aware hole-filling machine)机器学习模型704来分析数字图像706,以预期接收用于数字图像706的修改的用户输入。实际上,在一些情况下,基于场景的图像编辑系统106在接收用于这种修改的用户输入之前分析数字图像706。例如,在一些实施例中,基于场景的图像编辑系统106响应于接收或以其他方式访问数字图像706而自动分析数字图像706。在一些实现中,基于场景的图像编辑系统106响应于一般用户输入来分析数字图像,以启动预期后续修改的预处理。
如图7所示,基于场景的图像编辑系统106利用分割神经网络702来为数字图像706中描绘的对象708a-708d生成对象掩蔽710。具体地,在一些实施例中,基于场景的图像编辑系统106利用分割神经网络702来为每个所描绘的对象生成分离的对象掩蔽。
如图7进一步所示,基于场景的图像编辑系统106利用内容感知的洞填充机器学习模型704来生成对象708a-708d的内容填充712。具体地,在一些实施例中,基于场景的图像编辑系统106利用内容感知的洞填充机器学习模型704来为每个所描绘的对象生成分离的内容填充。如图所示,基于场景的图像编辑系统106使用对象掩蔽710生成内容填充712。例如,在一个或多个实施例中,基于场景的图像编辑系统106利用经由分割神经网络702生成的对象掩蔽710,作为要使用由内容感知的洞填充机器学习模型704生成的内容填充712来被替换的替换区域的指示符。在一些情况下,基于场景的图像编辑系统106利用对象掩蔽710从数字图像706过滤出对象,这导致数字图像706中的剩余洞被内容填充712填充。
如图7所示,基于场景的图像编辑系统106利用对象掩蔽710和内容填充712来生成完整背景714。在一个或多个实施例中,完整背景图像包括具有用内容填充替换的对象的一组背景像素。具体地,完整背景包括数字图像的背景,其具有用相应的内容填充替换在数字图像内被描绘的对象。在一个或多个实现中,完整背景包括为图像中的每个对象生成内容填充。因此,当对象在彼此前面时,完整背景可以包括各种级别的完成,使得针对第一对象的背景包括第二对象的一部分,并且第二对象的背景包括图像中的语义区域或最远的元素。
实际上,图7示出了具有洞718a-718d的数字图像706的背景716,其中描绘了对象708a-708d。例如,在一些情况下,基于场景的图像编辑系统106使用对象掩蔽710过滤掉对象708a-708d,使洞718a-718d保留。此外,基于场景的图像编辑系统106利用内容填充712来填充洞718a-718d,从而产生完整背景714。
在其他实现中,基于场景的图像编辑系统106利用对象掩蔽710作为数字图像706中的替换区域的指示符。具体地,基于场景的图像编辑系统106利用对象掩蔽710作为潜在替换区域的指示符,潜在替换区域可以从接收用户输入而产生,以通过移动/移除对象708a-708d中的一个或多个来修改数字图像706。因此,基于场景的图像编辑系统106利用内容填充712来替换由对象掩蔽710指示的像素。
尽管图7指示生成分离的完整背景,但应当理解,在一些实现中,基于场景的图像编辑系统106创建完整背景714作为数字图像706的一部分。例如,在一个或多个实施例中,基于场景的图像编辑系统106将内容填充712定位在其在数字图像706中的对应对象(例如,作为分离的图像层)之后。此外,在一个或多个实施例中,基于场景的图像编辑系统106将对象掩蔽710定位在其对应对象之后(例如,作为分离的层)。在一些实现中,基于场景的图像编辑系统106将内容填充712放置在对象掩蔽710之后。
此外,在一些实现中,基于场景的图像编辑系统106为数字图像生成多个填充背景(例如,半完整(semi-completed)背景)。例如,在数字图像描绘多个对象的一些情况下,基于场景的图像编辑系统106为来自多个对象的每个对象生成填充背景。为了说明,基于场景的图像编辑系统106通过在将数字图像的其他对象视为背景的一部分的同时为该对象生成内容填充,来生成针对该对象的填充背景。因此,在一些情况下,内容填充包括位于数字图像内的对象之后的其他对象的一部分。
因此,在一个或多个实施例中,如图7所示,基于场景的图像编辑系统106生成组合图像718。实际上,基于场景的图像编辑系统106生成具有作为单独层的数字图像706、对象掩蔽710和内容填充712的组合图像。尽管图7示出了在组合图像718内的对象708a-708d之上的对象掩蔽710,但是应当理解,在各种实现中,基于场景的图像编辑系统106将对象掩蔽710以及内容填充712放置在对象708a-708d之后。因此,基于场景的图像编辑系统106呈现组合图像718以在图形用户界面内显示,使得对象掩蔽710和内容填充712被隐藏而不可见,直到接收到触发那些组件的显示的用户交互。
此外,尽管图7示出了与数字图像706分离的组合图像718,但是应当理解,在一些实现中,组合图像718表示对数字图像706的修改。换言之,在一些实施例中,为了生成组合图像718,基于场景的图像编辑系统106通过添加由对象掩蔽710和内容填充712组成的附加层来修改数字图像706。
在一个或多个实施例中,基于场景的图像编辑系统106利用组合图像718(例如,数字图像706、对象掩蔽710和内容填充712)来促进关于数字图像706的各种对象感知修改。具体地,基于场景的图像编辑系统106利用组合图像718来实现促进灵活的对象感知修改的高效图形用户界面。图8A-图8D示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统106实现以促进移动操作。
实际上,如图8A所示,基于场景的图像编辑系统106提供图形用户界面802以在诸如移动设备的客户端设备804上显示。此外,基于场景的图像编辑系统106提供了用于与图形用户界面一起显示的数字图像806。
应当注意,图8A的图形用户界面802在样式上是简约的。具体地,图形用户界面802不包括除了数字图像806之外的大量菜单、选项或其他视觉元素。尽管图8A的图形用户界面802未显示除数字图像806之外的菜单、选项或其他视觉元素,但应当理解,图形用户界面802在各种实施例中显示至少一些菜单、选项或其他视觉元素--至少在最初显示数字图像806时。
如图8A进一步所示,数字图像806描绘了多个对象808a-808d。在一个或多个实施例中,基于场景的图像编辑系统106在接收用于移动操作的用户输入之前对数字图像806进行预处理。具体地,在一些实施例中,基于场景的图像编辑系统106利用分割神经网络来检测并生成多个对象808a-808d的掩蔽,和/或利用内容感知的洞填充机器学习模型来生成对应于对象808a-808d的内容填充。此外,在一个或多个实现中,基于场景的图像编辑系统106在加载、访问或显示数字图像806时生成对象掩蔽、内容填充和组合图像,并且除了打开/显示数字图像806之外无需用户输入。
如图8B所示,基于场景的图像编辑系统106经由图形用户界面802检测与对象808d的用户交互。具体地,图8B示出了在各种实施例中,基于场景的图像编辑系统106检测由用户的手指(手810的一部分)执行的用户交互(例如,触摸交互),尽管用户交互是由其他工具(例如,由鼠标或触控板控制的指示笔或指针)执行的。在一个或多个实施例中,基于场景的图像编辑系统106基于用户交互确定对象808d已被选择来用于修改。
在各种实施例中,基于场景的图像编辑系统106经由各种操作检测用于选择对象808d的用户交互。例如,在一些情况下,基于场景的图像编辑系统106经由在对象808d上单敲(或点击)来检测选择。在一些实现中,基于场景的图像编辑系统106经由双敲(或双击)或按压和按住操作来检测对对象808d的选择。因此,在一些情况下,基于场景的图像编辑系统106利用第二点击或按住操作来确认用户对对象808d的选择。
在一些情况下,基于场景的图像编辑系统106利用各种交互来区分单对象选择或多对象选择。例如,在一些情况下,基于场景的图像编辑系统106确定单敲用于选择单个对象并且双敲用于选择多个对象。为了说明,在某些情况下,在接收到对对象的第一轻敲时,基于场景的图像编辑系统106选择该对象。此外,在接收到对对象的第二轻敲时,基于场景的图像编辑系统106选择一个或多个附加对象。例如,在一些实现中,基于场景的图像编辑系统106选择具有相同或相似分类的一个或多个附加对象(例如,当第一轻敲与图像中的人交互时选择图像中描绘的其他人)。在一个或多个实施例中,如果在接收到第一轻敲之后的阈值时间段内接收到第二轻敲,则基于场景的图像编辑系统106将第二轻敲识别为用于选择多个对象的交互。
在一些实施例中,基于场景的图像编辑系统106识别用于选择数字图像内的多个对象的其他用户交互。例如,在一些实现中,基于场景的图像编辑系统106接收跨数字图像的显示的拖拽动作,并选择在拖拽动作的范围内被捕获的所有对象。为了说明,在一些情况下,基于场景的图像编辑系统106绘制随着拖动运动而增长的框,并选择落入该框内的所有对象。在一些情况下,基于场景的图像编辑系统106沿着拖动运动的路径绘制线,并选择被该线截取的所有对象。
在一些实现中,基于场景的图像编辑系统106还允许用户交互以选择对象的不同部分。为了说明,在某些情况下,在接收到对对象的第一轻敲时,基于场景的图像编辑系统106选择该对象。此外,在接收到对对象的第二轻敲时,基于场景的图像编辑系统106选择对象的特定部分(例如,人类的肢体或躯干或车辆的部件)。在一些情况下,基于场景的图像编辑系统106选择由第二轻敲触摸的对象的部分。在一些情况下,基于场景的图像编辑系统106在接收到第二轻敲时进入“子对象”模式,并利用附加的用户交互来选择对象的特定部分。
返回图8B,如图所示,基于检测到用于选择对象808d的用户交互,基于场景的图像编辑系统106提供与对象808d相关联的视觉指示812。实际上,在一个或多个实施例中,基于场景的图像编辑系统106检测到用户与对象808d的一部分的交互--例如,与描绘对象的像素的子集--并确定用户交互将对象808d作为整体(而不是用户与其交互的特定像素)作为目标。例如,在一些实施例中,基于场景的图像编辑系统106利用与对象808d相对应的预先生成的对象掩蔽,来确定用户交互是以对象808d还是数字图像806的某个其他部分为目标。例如,在一些情况下,在检测到用户与对象掩蔽内对应于对象808d的区域交互时,基于场景的图像编辑系统106确定用户交互以对象808d作为整体为目标。因此,基于场景的图像编辑系统106提供了与对象808d作为整体相关联的视觉指示812。
在一些情况下,基于场景的图像编辑系统106利用视觉指示812,经由图形用户界面802指示对于对象808d的选择已被登记。在一些实现中,基于场景的图像编辑系统106利用视觉指示812来表示对应于对象808d的预先生成的对象掩蔽。实际上,在一个或多个实施例中,响应于检测到与对象808d的用户交互,基于场景的图像编辑系统106呈现对应的对象掩蔽。例如,在一些情况下,基于场景的图像编辑系统106呈现对象掩蔽,以准备对对象808d的修改和/或指示对象掩蔽已经生成并且可供使用。在一个或多个实施例中,基于场景的图像编辑系统106经由图形用户界面802显示对象掩蔽本身,而不是使用视觉指示812来表示对象掩蔽的呈现。
此外,由于基于场景的图像编辑系统106在接收到选择对象808d的用户输入之前为对象808d生成对象掩蔽,因此基于场景的图像编辑系统106在没有与传统系统相关联的时延或延迟的情况下呈现视觉指示812。换言之,基于场景的图像编辑系统106在没有与生成对象掩蔽相关联的任何延迟的情况下呈现视觉指示812。
如进一步所示,基于检测到用于选择对象808d的用户交互,基于场景的图像编辑系统106提供选项菜单814以经由图形用户界面802显示。图8B所示的选项菜单814提供多个选项,尽管在各种实施例中该选项菜单包括各种数目的选项。例如,在一些实现中,选项菜单814包括一个或多个精选选项,诸如被确定为流行或使用频率最高的选项。例如,如图8B所示,选项菜单814包括删除对象808d的选项816。
因此,在一个或多个实施例中,基于场景的图像编辑系统106基于用户交互的上下文提供用于经由图形用户界面802显示的修改选项。实际上,如刚才所讨论的,基于场景的图像编辑系统106提供选项菜单,该选项菜单提供用于与所选对象交互(例如,修改)的选项。在这样做时,基于场景的图像编辑系统106通过保留用于显示的选项或菜单直到确定那些选项或菜单在用户与数字图像交互的当前上下文中将是有用的,来最小化在许多传统系统下典型的屏幕杂乱。因此,基于场景的图像编辑系统106使用的图形用户界面802允许在具有相对有限的屏幕空间的计算设备上更灵活地实现,例如智能手机或平板设备。
如图8C所示,基于场景的图像编辑系统106经由图形用户界面802检测到用于在数字图像806上移动对象808d的附加用户交互(如经由箭头818所示)。具体地,基于场景的图像编辑系统106检测到用于将对象808d从数字图像806中的第一位置移动到第二位置的附加用户交互。例如,在一些情况下,基于场景的图像编辑系统106经由拖拽运动来检测第二用户交互(例如,用户输入选择对象808d并且在保持在对象808d上的同时跨图形用户界面802移动)。在一些实现中,在对象808d的初始选择之后,基于场景的图像编辑系统106检测到作为对第二位置的点击或轻敲的附加用户交互,并确定将第二位置用作对象808d的新位置。应当注意,基于场景的图像编辑系统106响应于附加的用户交互移动作为整体的对象808d。
如图8C所示,在将对象808d从第一位置移动到第二位置时,基于场景的图像编辑系统106暴露(expose)放置在对象808d之后(例如,在相应对象掩蔽之后)的内容填充820。实际上,如前所述,基于场景的图像编辑系统106将预先生成的内容填充放置在为其生成内容填充的对象(或对应的对象掩蔽)之后。因此,在将对象808d从其在数字图像806内的初始位置移除时,基于场景的图像编辑系统106自动显示相应的内容填充。因此,基于场景的图像编辑系统106提供对象可移动而不暴露数字图像本身中的任何洞的无缝体验。换言之,基于场景的图像编辑系统106提供数字图像806用于显示,就好像它是其中整个背景已知的真实场景一样。
此外,由于基于场景的图像编辑系统106在接收到移动对象808d的用户输入之前为对象808d生成了内容填充820,因此基于场景的图像编辑系统106在没有与传统系统相关联的时延或延迟的情况下暴露或呈现内容填充820。换言之,随着对象808d在数字图像806上移动,基于场景的图像编辑系统106递增地暴露内容填充820,而没有与生成内容相关联的任何延迟。
如图8D进一步所示,基于场景的图像编辑系统106在完成移动操作时取消选择对象808d。在一些实施例中,对象808d维持对对象808d的选择,直到接收到指示取消选择对象808d的另一用户交互(例如,与数字图像806的另一部分的用户交互)。如进一步指示的,在取消选择对象808d时,基于场景的图像编辑系统106进一步移除先前呈现的选项菜单814。因此,基于场景的图像编辑系统106动态地呈现用于经由图形用户界面802与用于显示的对象交互的选项,以维持不会占用(overwhelm)具有有限屏幕空间的计算设备的显示的简约样式。
图9A-图9C示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统106实现以促进删除操作。实际上,如图9A所示,基于场景的图像编辑系统106提供用于在客户端设备904上显示的图形用户界面902,并且提供用于在图形用户界面902中显示的数字图像906。
如图9B进一步所示,基于场景的图像编辑系统106经由图形用户界面902检测到与数字图像906中描绘的对象908的用户交互。响应于检测到用户交互,基于场景的图像编辑系统106呈现对应的对象掩蔽,从而提供视觉指示910(或对象掩蔽本身)以与对象908相关联地显示,并且提供选项菜单912以供显示。具体地,如图所示,选项菜单912包括用于删除已被选择的对象908的选项914。
此外,如图9C所示,基于场景的图像编辑系统106从数字图像906移除对象908。例如,在一些情况下,基于场景的图像编辑系统106经由图形用户界面902检测到附加的用户交互(例如,与用于删除对象908的选项914的交互),并且作为响应从数字图像906移除对象908。如进一步所示,在从数字图像906移除对象908时,基于场景的图像编辑系统106自动暴露先前被放置在对象908之后(例如,在相应对象掩蔽之后)的内容填充916。因此,在一个或多个实施例中,基于场景的图像编辑系统106提供内容填充916以在移除对象908时立即显示。
尽管图8B、图8C和图9B示出了提供菜单的基于场景的图像编辑系统106,但在一个或多个实现中,基于场景的图像编辑系统106允许基于对象的编辑而不需要或利用菜单。例如,基于场景的图像编辑系统106响应于第一用户交互(例如,轻敲相应对象)选择对象808d、908并呈现视觉指示812、910。基于场景的图像编辑系统106响应于第二用户交互而不使用菜单来执行数字图像的基于对象的编辑。例如,响应于在图像上拖拽对象的第二用户输入,基于场景的图像编辑系统106移动对象。备选地,响应于第二用户输入(例如,第二轻敲),基于场景的图像编辑系统106删除对象。
与传统系统相比,基于场景的图像编辑系统106为编辑数字图像提供了更大的灵活性。具体地,基于场景的图像编辑系统106促进能够与对象交互的对象感知修改,而不需要以底层像素为目标。实际上,基于对有助于描绘对象的一些像素的选择,基于场景的图像编辑系统106灵活地确定已经选择了整个对象。这与需要用户从指示选择对象的意图的菜单中选择选项、提供指示要选择的对象的第二用户输入(例如,关于对象的边界框或关于对象的另一大致边界的绘制)以及另一用户输入以生成对象掩蔽的传统系统形成对比。相反,基于场景的图像编辑系统106提供了利用单个用户输入(轻敲对象)来选择对象。
此外,在先前选择之后用于实现修改的用户交互时,基于场景的图像编辑系统106将修改应用于整个对象,而不是所选择的特定像素集合。因此,基于场景的图像编辑系统106将数字图像内的对象作为真实场景的对象来管理,其是交互的并且可以作为连贯单元来处理。此外,如所讨论的,通过灵活且动态地管理除数字图像之外在图形用户界面上显示的内容的量,基于场景的图像编辑系统106提供了关于在较小设备上部署的改进的灵活性。
此外,与许多传统系统相比,基于场景的图像编辑系统106提供了改进的效率。实际上,如前所述,传统系统通常需要执行由用户交互序列组成的工作流来执行修改。在修改旨在以特定对象为目标的情况下,这些系统中的许多系统需要若干用户交互来仅仅指示该对象是后续修改的主体(例如,用于标识对象并将该对象与图像的其余部分进行分离的用户交互),以及用于闭合所执行的修改(例如,填充在移除对象之后剩余的洞)的循环的用户交互。然而,基于场景的图像编辑系统106通过在接收用于这样的修改的用户输入之前对数字图像进行预处理来减少修改通常所需的用户交互。实际上,通过自动生成对象掩蔽和内容填充,基于场景的图像编辑系统106消除了执行这些步骤的用户交互的需要。
在一个或多个实施例中,基于场景的图像编辑系统106执行数字图像的进一步处理,以预期修改数字图像。例如,如前所述,在一些实现中,基于场景的图像编辑系统106从数字图像生成语义场景图。因此,在一些情况下,在接收到用于修改数字图像的一个或多个用户交互时,基于场景的图像编辑系统106利用语义场景图来执行修改。实际上,在许多情况下,基于场景的图像编辑系统106在接收用于修改数字图像的用户输入之前生成用于修改数字图像的语义场景图。图10-图15示出了根据一个或多个实施例的用于生成数字图像的语义场景图的图示。
实际上,许多传统系统是不灵活的,因为它们通常在确定数字图像的特性之前等待用户交互。例如,这样的传统系统通常等待指示要确定的特性的用户交互,然后响应于接收到用户交互而执行对应的分析。因此,这些系统不具有随时可用的有用特性。例如,在接收到用于修改数字图像的用户交互时,传统系统通常必须执行对数字图像的分析以确定在已经接收到用户交互之后要改变的特性。
此外,如前所述,这种操作导致低效操作,因为图像编辑通常需要用户交互的工作流,其中许多用户交互用于确定在修改的执行中使用的特性。因此,传统系统通常需要大量的用户交互来确定编辑所需的特性。
基于场景的图像编辑系统106通过为数字图像生成语义场景图以预期对数字图像的修改来提供优点。实际上,通过生成语义场景图,基于场景的图像编辑系统106提高了相对于传统系统的灵活性,因为它使得数字图像的特性易于在图像编辑过程中使用。此外,基于场景的图像编辑系统106通过减少确定这些特性所需的用户交互来提供改进的效率。换言之,基于场景的图像编辑系统106消除了在传统系统中编辑数字图像的准备步骤经常需要的用户交互。因此,基于场景的图像编辑系统106使得用户交互能够更直接地注意力图像编辑本身。
此外,通过为数字图像生成语义场景图,基于场景的图像编辑系统106智能地生成/获得允许像真实世界场景一样编辑图像的信息。例如,基于场景的图像编辑系统106生成指示对象、对象属性、对象关系等的场景图,其允许基于场景的图像编辑系统106实现基于对象/场景的图像编辑。
在一个或多个实施例中,语义场景图包括数字图像的图形表示。具体地,在一些实施例中,语义场景图包括映射出数字图像的特性及其相关联的特性属性的图。例如,在一些实现中,语义场景图包括节点图,该节点图具有表示数字图像的特性的节点以及与表示那些特性的特性属性的节点相关联的值。此外,在某些情况下,节点之间的边表示特性之间的关系。
如上所述,在一个或多个实现中,基于场景的图像编辑系统106在生成针对数字图像的语义场景图中利用一个或多个预定或预先生成的模板图。例如,在一些情况下,基于场景的图像编辑系统106在生成语义场景图时利用图像分析图。图10示出了根据一个或多个实施例,基于场景的图像编辑系统106在生成语义场景图时使用的图像分析图1000。
在一个或多个实施例中,图像分析图包括用于构建语义场景图的模板图。具体地,在一些实施例中,图像分析图包括基于场景的图像编辑系统106用来组织被包括在语义场景图中的信息的模板图。例如,在一些实现中,图像分析图包括指示如何组织表示数字图像的特性的语义场景图的节点的模板图。在一些情况下,图像分析图附加地或备选地指示要在语义场景图中表示的信息。例如,在一些情况下,图像分析图指示要在语义场景图中表示的数字图像的特性、关系和特性属性。
实际上,如图10所示,图像分析图1000包括多个节点1004a-1004g。具体地,多个节点1004a-1004g对应于数字图像的特性。例如,在一些情况下,多个节点1004a-1004g表示要在分析数字图像时而被确定的特性类别。实际上,如图所示,图像分析图1000指示语义场景图将表示数字图像内的对象和对象组以及数字图像的场景,包括光源、设置和特定位置。
如图10进一步所示,图像分析图1000包括多个节点1004a-1004g的组织。具体地,图像分析图1000包括以组织多个节点1004a-1004g的方式布置的边1006a-1006h。换言之,图像分析图1000示出了其中包括的特性类别之间的关系。例如,图像分析图1000指示由节点1004f表示的对象类别和由节点1004g表示的对象组类别密切相关,两者都描述了在数字图像中被描绘的对象。
此外,如图10所示,图像分析图1000将特性属性与节点1004a-1004g中的一个或多个相关联,以表示对应特性类别的特性属性。例如,如图所示,图像分析图1000将季节属性1008a和时间属性1008b与由节点1004c表示的设置类别相关联。换言之,图像分析图1000指示在确定数字图像的设置时应该确定季节和时间。此外,如图所示,图像分析图1000将对象掩蔽1010a和边界框1010b与由节点1004f表示的对象类别相关联。实际上,在一些实现中,基于场景的图像编辑系统106为数字图像中描绘的对象生成内容,诸如对象掩蔽和边界框。因此,图像分析图1000指示该预生成的内容将与表示针对数字图像生成的语义场景图内的对应对象的节点相关联。
如图10进一步所示,图像分析图1000将特性属性与边1006a-1006h中的一个或多个相关联,以表示由这些边1006a-1006h表示的对应特性关系的特性属性。例如,如图所示,图像分析图1000将特性属性1012a与指示在数字图像中描绘的对象将是特定对象组的成员的边1006g相关联。此外,图像分析图1000将特性属性1012b与指示在数字图像中描绘的至少一些对象彼此具有关系的边1006h相关联。图10示出了在各种实施例中在对象之间标识的关系的样本,并且关于这些关系的附加细节将在下面更详细地讨论。
应当注意,图10中表示的特性类别和特性属性是示例性的,并且图像分析图1000包括在各种实施例中未示出的各种特性类别和/或特性属性。此外,图10示出了图像分析图1000的特定组织,尽管在不同的实施例中使用备选布置。实际上,在各种实施例中,基于场景的图像编辑系统106适应各种特性类别和特性属性,以促进随后生成支持各种图像编辑的语义场景图。换言之,基于场景的图像编辑系统106包括它确定在编辑数字图像中有用的那些特性类别和特性属性。
在一些实施例中,基于场景的图像编辑系统106利用真实世界类别描述图来生成针对数字图像的语义场景图。图11示出了根据一个或多个实施例,基于场景的图像编辑系统106在生成语义场景图时使用的真实世界类别描述图1102。
在一个或多个实施例中,真实世界类别描述图包括描述可以在数字图像中描绘的场景组件(例如,语义区域)的模板图。具体地,在一些实施例中,真实世界类别描述图包括模板图,该模板图由基于场景的图像编辑系统106用来向语义场景图提供关于可能在数字图像中描绘的场景组件(诸如对象)的上下文信息。例如,在一些实现中,真实世界类别描述图提供可以在数字图像中描绘的某些对象的对象分类和/或剖析(anatomy)(例如,对象组件)的层级结构。在一些情况下,真实世界类别描述图还包括与其中表示的对象相关联的对象属性。例如,在一些情况下,真实世界类别描述图提供被分配给给定对象的对象属性,诸如形状、颜色、制造对象的材料、对象的重量、对象可以支撑的重量、和/或被确定为在随后修改数字图像时有用的各种其他属性。实际上,如将讨论的,在一些情况下,基于场景的图像编辑系统106利用数字图像的语义场景图来建议某些编辑或建议避免某些编辑,以维持数字图像相对于被包含在构建语义场景图的真实世界类别描述图中的上下文信息的一致性。
如图11所示,真实世界类别描述图1102包括多个节点1104a-1104h和连接节点1104a-1104h中的一些节点的多条边1106a-1106e。具体地,与图10的图像分析图1000相比,真实世界类别描述图1102不提供互连的节点的单个网络。相反,在一些实现中,真实世界类别描述图1102包括彼此分离且不同的多个节点集群1108a-1108c。
在一个或多个实施例中,每个节点集群对应于可以在数字图像中被描绘的单独场景组件(例如,语义区域)类别。实际上,如图11所示,节点集群1108a-1108c中的每一个对应于可以在数字图像中被描绘的单独的对象类别。如上所述,在各种实施例中,真实世界类别描述图1102不限于表示对象类别,并且可以表示其他场景组件类别。
如图11所示,节点集群1108a-1108c中的每一个描绘了对应于所表示的对象类别的类别描述的层级结构(或者称为对象分类的层级结构)。换言之,节点集群1108a-1108c中的每一个描绘了描述或标记对象的特定性/通用性程度。实际上,在一些实施例中,基于场景的图像编辑系统106应用在节点集群中被表示的所有类别描述/标签,来描述在数字图像中被描绘的对应对象。然而,在一些实现中,基于场景的图像编辑系统106利用类别描述/标签的子集来描述对象。
作为示例,节点集群1108a包括表示侧桌(side table)类别的节点1104a和表示桌子类别的节点1104b。此外,如图11所示,节点集群1108a包括节点1104a和节点1104b之间的边1106a,以指示侧桌类别是桌子类别的子类别,从而指示适用于侧桌的这两个分类之间的层级结构。换言之,节点集群1108a指示侧桌可被分类为侧桌和/或更一般地被分类为桌子。换言之,在一个或多个实施例中,在检测到数字图像中描绘的侧桌时,基于场景的图像编辑系统106基于真实世界类别描述图1102中表示的层级结构将侧桌标记为侧桌和/或标记为桌子。
节点集群表示类别描述的层级结构的程度在各种实施例中各不相同。换言之,所表示的层级结构的长度/高度在各种实施例中各不相同。例如,在一些实现中,节点集群1108a还包括表示家具类别的节点,指示侧桌可被分类为家具。在一些情况下,节点集群1108a还包括表示无生命对象的节点,指示侧桌可如此分类。此外,在一些实现中,节点集群1108a包括表示实体类别的节点,指示侧桌可被分类为实体。实际上,在一些实现中,真实世界类别描述图1102内表示的类别描述的层级结构包括类别描述/标签--例如实体类别—以如此高级别的通用性,以至于它通常适用于真实世界类别描述图1102内表示的所有对象。
如图11进一步所示,节点集群1108a包括所表示的对象类别的剖析(例如,对象组件)。具体地,节点集群1108a包括针对对象的桌子类别的组成部分的表示。例如,如图所示,节点集群1108a包括表示桌腿类别的节点1104c。此外,节点集群1108a包括边1106b,该边指示来自桌腿类别的桌腿是来自桌子类别的桌子的一部分。换言之,边1106b指示桌腿是桌子的组件。在一些情况下,节点集群1108a包括用于表示作为桌子的一部分的其他组件的附加节点,诸如桌面、桌板(leaf)或挡板(apron)。
如图11所示,表示桌腿对象类别的节点1104c连接到表示桌子对象类别的节点1104b,而不是连接到表示对象的侧桌类别的节点1104a。实际上,在一些实现中,基于场景的图像编辑系统106基于确定所有桌子包括一条或多条桌腿来利用这样的配置。因此,由于侧桌是桌子的子类别,节点集群1108a的配置指示所有侧桌也包括一条或多条桌腿。然而,在一些实现中,基于场景的图像编辑系统106附加地或备选地将表示桌腿对象类别的节点1104c连接到表示侧桌对象桌类的节点1104a,以指定所有侧桌包括一条或多条桌腿。
类似地,节点集群1108a包括与用于侧桌类别的节点1104a相关联的对象属性1110a-1110d,以及与用于桌子类别的节点1104b相关联的附加对象属性1112a-1112g。因此,节点集群1108a指示对象属性1110a-1110d特定于侧桌类别,而附加对象属性1112a-1112g更一般地与桌子类别相关联(例如,与落入桌子类别内的所有对象类别相关联)。在一个或多个实施例中,对象属性1110a-1110d和/或附加对象属性1112a-1112g是已经被任意分配给它们各自的对象类别的属性(例如,经由用户输入或系统默认)。例如,在一些情况下,基于场景的图像编辑系统106确定所有侧桌可以支撑100磅,如图11所示,而不考虑所使用的材料或构建的质量。然而,在一些情况下,对象属性1110a-1110d和/或附加对象属性1112a-1112g表示落入特定类别内的所有对象中共有的对象属性,例如相对较小的侧桌大小。然而,在一些实现中,对象属性1110a-1110d和/或附加对象属性1112a-1112g是应该为相应对象类别的对象确定的对象属性的指示符。例如,在一个或多个实施例中,在标识侧桌时,基于场景的图像编辑系统106确定侧桌的容量、大小、重量或支撑重量中的至少一个。
应当注意,在一些实施例中,包括在真实世界类别描述图中的对象属性和包括在图像分析图中的特性属性之间存在一些重叠。实际上,在许多实现中,对象属性是特定于对象的特性属性(而不是用于数字图像的设置或场景的属性)。此外,应当注意,对象属性仅是示例性的,并不一定反映要与对象类别相关联的对象属性。实际上,在一些实施例中,所示的对象属性及其与特定对象类别的关联是可配置的,以适应编辑数字图像的不同需要。
在某些情况下,节点集群对应于一个特定对象类别,并呈现该特定类别的类别描述和/或对象组件的层级结构。例如,在一些实现中,节点集群1108a仅对应于侧桌类别,并且呈现与侧桌相关的类别描述和/或对象组件的层级结构。因此,在一些情况下,在标识数字图像内的侧桌时,基于场景的图像编辑系统106在生成语义场景图时参考侧桌类别的节点集群1108a,但在标识数字图像内的另一桌子的子类时参考另一节点集群。在一些情况下,该另一节点集群包括与节点集群1108a的若干相似性(例如,相似的节点和边),因为另一类型的桌子将被包括在桌子类别的子类别中并且包括一个或多个桌腿。
然而,在一些实现中,节点集群对应于多个不同但相关的对象类别,并为那些对象类别呈现类别描述和/或对象组件的共同层级结构。例如,在一些实施例中,节点集群1108a包括表示餐桌类别的附加节点,该附加节点经由指示餐桌也是桌子的子类别的边连接到表示桌子类别的节点1104b。实际上,在一些情况下,节点集群1108a包括表示桌子类别的各种子类别的节点。因此,在一些情况下,在从数字图像标识桌子时,基于场景的图像编辑系统106在为数字图像生成语义场景图时参考节点集群1108a,而不考虑桌子所属的子类别。
如将描述的,在一些实现中,对多个相关子类别使用共同节点集群促进数字图像内的对象交互。例如,如上所述,图11示出了多个单独的节点集群。然而,如进一步提到的,在一些情况下,基于场景的图像编辑系统106包括在真实世界类别描述图1102内的所有表示的对象之间共同的分类(例如,实体分类)。因此,在一些实现中,真实世界类别描述图1102包括互连的节点的单个网络,其中对应于单独对象类别的所有节点集群在共有节点处来连接,诸如表示实体类别的节点。因此,在一些实施例中,真实世界类别描述图1102示出了所有所表示的对象之间的关系。
在一个或多个实施例中,基于场景的图像编辑系统106在生成数字图像的语义场景图中利用行为策略图。图12示出了根据一个或多个实施例,基于场景的图像编辑系统106在生成语义场景图中使用的行为策略图1202。
在一个或多个实施例中,行为策略图包括模板图,该模板图基于描绘对象的上下文描述在数字图像中描绘的对象的行为。具体地,在一些实施例中,行为策略图包括模板图,该模板图基于对数字图像中描绘的对象和/或其与数字图像中描绘的其他对象的关系的语义理解,来将行为分配给数字图像中描绘的对象。实际上,在一个或多个实施例中,行为策略包括各种类型的对象之间的各种关系,并指定针对这些关系的行为。在一些情况下,基于场景的图像编辑系统106包括作为语义场景图的一部分的行为策略图。在一些实现中,如下面将进一步讨论的,行为策略与语义场景图分离,但是基于语义场景图中表示的对象的语义理解和关系来提供插件行为。
如图12所示,行为策略图1202包括多个关系指示符1204a-1204e和与关系指示符1204a-1204e相关联的多个行为指示符1206a-1206e。在一个或多个实施例中,关系指示符1204a-1204e引用关系主体(例如,作为关系的主体的数字图像中的对象)和关系客体(例如,作为关系的客体的数字图像中的对象)。例如,图12的关系指示符1204a-1204e指示关系主体由关系客体“支撑”或是关系客体的“一部分”。此外,在一个或多个实施例中,行为指示符1206a-1206e向关系主体分配行为(例如,指示关系主体与关系客体“一起移动”或“一起删除”)。换言之,当关系客体被修改时,行为指示符1206a-1206e为关系主体提供修改指令。
图12提供了在各种实施例中由基于场景的图像编辑系统106识别的关系的小子集。例如,在一些实现中,由基于场景的图像编辑系统106识别并被合并到所生成的语义场景图中的关系包括但不限于,被描述为“上面”、“下面”、“后面”、“前面”、“接触”、“被持有”、“持有”、“支撑”、“站在上面”、“被穿着”、“穿着”、“靠在上面”、“被看着”或“看着”的关系。实际上,如上所述,在一些实现中,基于场景的图像编辑系统106利用关系对来描述两个方向上的对象之间的关系。例如,在一些情况下,在描述第一对象被第二对象“支撑”的情况下,基于场景的图像编辑系统106还描述第二对象正在“支撑”第一对象。因此,在一些情况下,行为策略图1202包括这些关系对,并且基于场景的图像编辑系统106相应地在语义场景图中包括信息。
如进一步所示,行为策略图1202还包括与关系指示符1204a-1204e相关联的多个分类指示符1208a-1208e。在一个或多个实施例中,分类指示符1208a-1208e指示所分配的行为应用于的对象类别。实际上,在一个或多个实施例中,分类指示符1208a-1208e引用对应关系客体的对象类别。如图12所示,分类指示符1208a-1208e指示行为被分配给作为指定对象类别的子类别的对象类别。换言之,图12示出分类指示符1208a-1208e引用特定对象类别,并指示所分配的行为应用于落入该对象类别内的所有对象(例如,作为落入该对象类别的子类别的一部分的对象类别)。
由分类指示符在其对应的对象分类层级结构内引用的指定对象类别的通用性或特殊性的级别在各种实施例中各不相同。例如,在一些实施例中,分类指示符引用最低分类级别(例如,适用的最具体分类),使得不存在子类别,并且对应的行为仅应用于具有该特定对象最低分类级别的那些对象。另一方面,在一些实现中,分类指示符引用最高分类级别(例如,适用的最通用分类)或最低分类级别之上的某个其他级别,使得对应的行为应用于与存在于该指定分类级别内的多个分类级别中的一个或多个相关联的对象。
为了提供行为策略图1202如何指示所分配的行为的说明,关系指示符1204a指示对象(例如,关系主体)和另一对象(例如,关系客体)之间的“支撑”关系。行为指示符1206a指示与“支撑”关系相关联的“一起移动”行为,并且分类指示符1208a指示该特定行为适用于某一指定对象类别内的对象。因此,在一个或多个实施例中,行为策略图1202示出落入指定对象类别中并且与另一对象具有“支撑”关系的对象将表现出“一起移动”行为。换言之,如果指定对象类别的第一对象在数字图像中被描绘由第二对象支撑,并且该数字图像被修改以移动第二对象,则作为根据行为策略图1202的修改的一部分,基于场景的图像编辑系统106自动将第一对象与第二对象一起移动。在一些情况下,不是自动移动第一对象,而是基于场景的图像编辑系统106提供用于移动第一对象的建议,以在用于修改数字图像的图形用户界面内显示。
如图12所示,一些关系指示符(例如,关系指示符1204a-1204b或关系指示符1204c-1204e)指的是相同的关系,但与不同的行为相关联。实际上,在一些实现中,行为策略图1202将多个行为分配给同一关系。在某些情况下,差异是由于指定的子类的差异造成的。具体地,在一些实施例中,基于场景的图像编辑系统106为一个对象类别的对象分配用于特定关系的特定行为,但为另一个对象类别的对象分配用于相同关系的不同行为。因此,在配置行为策略图1202中,基于场景的图像编辑系统106在各种实施例中不同地管理不同的对象类别。
图13示出了根据一个或多个实施例的由基于场景的图像编辑系统106为数字图像生成的语义场景图1302。具体地,图13所示的语义场景图1302是语义场景图的简化示例,并且在各种实施例中没有描绘由基于场景的图像编辑系统106生成的语义场景图中包括的所有信息。
如图13所示,根据上面参考图10描述的图像分析图1000来组织语义场景图1302。具体地,语义场景图1302包括引用数字图像的特性的互连的节点的单个网络。例如,语义场景图1302包括节点1304a-1304c,其表示如它们与节点1306的连接所指示的所描绘的对象。此外,语义场景图1302包括表示与节点1304a-1304c相对应的对象之间的关系的关系指示符1308a-1308c。如进一步示出的,语义场景图1302包括表示对象之间的共性的节点1310(例如,其中对象全部包括在数字图像中,或者对象指示数字图像的主体(subject)或主题(topic))。此外,如图所示,语义场景图1302包括对应于节点1304a-1304c的对象的特性属性1314a-1314f。
如图13进一步所示,语义场景图1302包括来自以上参考图11描述的真实世界类别描述图1102的上下文信息。具体地,语义场景图1302包括节点1312a-1312c,其指示对应于节点1304a-1304c的对象所属的对象类别。尽管未在图11中示出,但语义场景图1302还包括由节点1312a-1312c表示的每个对象类别的对象分类的全层级结构。然而,在一些情况下,节点1312a-1312c中的每一个都包括指向真实世界类别描述图1102内它们各自的对象分类层级结构的指针。此外,如图13所示,语义场景图1302包括其中表示的对象类别的对象属性1316a-1316e。
此外,如图13所示,语义场景图1302包括来自上面参考图12描述的行为策略图1202的行为。具体地,语义场景图1302包括行为指示符1318a-1318b,行为指示符1318a-1318b基于其关联关系指示其中表示的对象的行为。
图14示出了根据一个或多个实施例的用于利用模板图生成针对数字图像的语义场景图的图示。实际上,如图14所示,基于场景的图像编辑系统106利用一个或多个神经网络1404来分析数字图像1402。具体地,在一个或多个实施例中,基于场景的图像编辑系统106利用一个或多个神经网络1404来确定数字图像1402的各种特性和/或其对应的特性属性。例如,在一些情况下,基于场景的图像编辑系统106利用分割神经网络来标识和分类数字图像中描绘的对象(如以上参考图3所讨论的)。此外,在一些实施例中,基于场景的图像编辑系统106利用神经网络来确定对象和/或其对象属性之间的关系,这将在下面更详细地讨论。
在一个或多个实现中,基于场景的图像编辑系统106利用深度估计神经网络来估计数字图像中对象的深度,并将所确定的深度存储在语义场景图1412中。例如,基于场景的图像编辑系统106利用深度估计神经网络,如2021年2月26日提交的题为“GENERATINGDEPTH IMAGES UTILIZING A MACHINE-LEARNING MODEL BUILT FROM MIXEDDIGITAL IMAGESOURCES AND MULTIPLE LOSS FUNCTION SETS”(利用混合数字图像源和多损失函数集建立的机器学习模型生成深度图像)的美国申请第17/186,436号中所描述的,该申请通过引用整体并入本文。备选地,基于场景的图像编辑系统106利用深度细化神经网络,如2022年4月12日提交的题为“UTILIZING MACHINE LEARNING MODELS TO GENERATE REFINED DEPTHMAPS WITH SEGMENTATION MASK GUIDANCE”(利用机器学习模型生成具有分割掩蔽指导的细化深度图)的美国申请17/658,873中所描述的,该申请通过引用整体并入本文。然后,当编辑对象以执行真实场景编辑时,基于场景的图像编辑系统106访问来自语义场景图1412的对象的深度信息(例如,对象的平均深度)。例如,当在图像内移动对象时,基于场景的图像编辑系统106然后从语义场景图1412访问数字图像中的对象的深度信息,以确保被移动的对象不被放置在具有较小深度的对象的前面。
在一个或多个实现中,基于场景的图像编辑系统106利用深度估计神经网络,来估计数字图像中的对象或场景的照明参数,并将所确定的照明参数存储在语义场景图1412中。例如,基于场景的图像编辑系统106利用源特定照明估计神经网络,如2019年9月3日提交的题为“DYNAMICALLY ESTIMATING LIGHT-SOURCE-SPECIFIC PARAMETERS FOR DIGITALIMAGES USING A NEURAL NETWORK”(利用神经网络动态估计数字图像的光源特定参数)的美国申请第16/558,975号中所描述的,该申请通过引用整体并入本文。然后,当编辑对象以执行真实场景编辑时,基于场景的图像编辑系统106从语义场景图1412访问对象或场景的照明参数。例如,当在图像内移动对象或在数字图像中插入新对象时,基于场景的图像编辑系统106访问来自语义场景图1412的照明参数,以确保在数字图像内移动/放置的对象具有逼真的照明。
在一个或多个实现中,基于场景的图像编辑系统106利用深度估计神经网络来估计数字图像中的对象或场景的照明参数,并将所确定的照明参数存储在语义场景图1412中。例如,基于场景的图像编辑系统106利用源特定照明估计神经网络,如2019年9月3日提交的题为“DYNAMICALLY ESTIMATING LIGHT-SOURCE-SPECIFIC PARAMETERS FOR DIGITALIMAGES USING A NEURAL NETWORK”(利用神经网络动态估计数字图像的光源特定参数)的美国申请第16/558,975号中所描述的,该申请通过引用整体并入本文。然后,当编辑对象以执行真实场景编辑时,基于场景的图像编辑系统106从语义场景图1412访问针对对象或场景的照明参数。例如,当在图像内移动对象或在数字图像中插入新对象时,基于场景的图像编辑系统106访问来自语义场景图1412的照明参数,以确保在数字图像内移动/放置的对象具有逼真的照明。
如图14进一步所示,基于场景的图像编辑系统106利用一个或多个神经网络1404的输出以及图像分析图1406、真实世界类别描述图1408和行为策略图1410,来生成语义场景图1412。具体地,基于场景的图像编辑系统106根据由图像分析图1406、真实世界类别描述图1408和行为策略图1410提供的结构、特性属性、对象分类的层级结构和行为,来生成语义场景图1412以包括对数字图像1402的描述。
如前所述,在一个或多个实施例中,图像分析图1406、真实世界类别描述图1408和/或行为策略图1410是预先确定或预先生成的。换言之,基于场景的图像编辑系统106在实现之前预先生成、构造或以其他方式确定每个图的内容和组织。例如,在一些情况下,基于场景的图像编辑系统106基于用户输入生成图像分析图1406、真实世界类别描述图1408和/或行为策略图1410。
此外,在一个或多个实施例中,图像分析图1406、真实世界类别描述图1408和/或行为策略图1410是可配置的。实际上,可以基于偏好或编辑数字图像的需要,来重新配置、重新组织和/或添加或移除其中表示的数据。例如,在一些情况下,由行为策略图1410分配的行为在一些图像编辑上下文中工作,但不在其他图像编辑上下文中工作。因此,当在另一图像编辑上下文中编辑图像时,基于场景的图像编辑系统106实现一个或多个神经网络1404和图像分析图1406,但实现不同的行为策略图(例如,被配置为满足该图像编辑上下文的偏好的行为策略图)。因此,在一些实施例中,基于场景的图像编辑系统106修改图像分析图1406、真实世界类别描述图1408和/或行为策略图1410,以适应不同的图像编辑上下文。
例如,在一个或多个实现中,基于场景的图像编辑系统106通过标识用户类型来确定用于选择行为策略图的上下文。具体地,基于场景的图像编辑系统106为各种类型的用户生成多个行为策略图。例如,基于场景的图像编辑系统106为新手或新用户生成第一行为策略图。在一个或多个实现中,第一行为策略图包括比第二行为策略图更多数量的行为策略。具体地,对于较新的用户,基于场景的图像编辑系统106利用第一行为策略图,该第一行为策略图提供更大的动作自动化并且向用户提供更少的控制。另一方面,基于场景的图像编辑系统106针对高级用户使用具有比第一行为策略图更少的行为策略的第二行为策略图。以这种方式,基于场景的图像编辑系统106基于关系向高级用户提供对对象的基于关系的动作(自动移动/删除/编辑)的更大控制。换言之,通过利用针对高级用户的第二行为策略图,基于场景的图像编辑系统106执行对相关对象的较少自动编辑。
在一个或多个实现中,基于场景的图像编辑系统106基于数字图像的视觉内容(例如,在数字图像中描绘的对象的类型)、正在使用的编辑应用等,来确定用于选择行为策略图的上下文。因此,在一个或多个实现中,基于场景的图像编辑系统106基于图像内容、用户类型、正在使用的编辑应用或另一上下文来选择/使用行为策略图。
此外,在一些实施例中,基于场景的图像编辑系统106在分析多个数字图像中利用图。实际上,在一些情况下,图像分析图1406、真实世界类别描述图1408和/或行为策略图1410并不专门以特定数字图像为目标。因此,在许多情况下,这些图是通用的,并且由基于场景的图像编辑系统106重新用于数字图像分析的多个实例。
在一些情况下,基于场景的图像编辑系统106还实现一个或多个映射,以在一个或多个神经网络1404的输出与图像分析图1406、真实世界类别描述图1408和/或行为策略图1410的数据方案之间进行映射。作为一个示例,在各种实施例中,基于场景的图像编辑系统106利用各种分割神经网络来标识和分类对象。因此,根据所使用的分割神经网络,给定对象的结果分类可以是不同的(例如,不同的用词(wording)或不同的抽象级别)。因此,在一些情况下,基于场景的图像编辑系统106利用将分割神经网络的特定输出映射到真实世界类别描述图1408中表示的对象类别的映射,从而允许结合多个神经网络使用真实世界类别描述图1408。
图15示出了根据一个或多个实施例的用于生成数字图像的语义场景图的另一图示。具体地,图15示出了根据一个或多个实施例的基于场景的图像编辑系统106生成语义场景图的示例框架。
如图15所示,基于场景的图像编辑系统106标识输入图像1500。在一些情况下,基于场景的图像编辑系统106基于请求来标识输入图像1500。例如,在一些情况下,该请求包括为输入图像1500生成语义场景图的请求。在一个或多个实现中,分析输入图像的请求包括基于场景的图像编辑系统106访问、打开或显示输入图像1500。
在一个或多个实施例中,响应于该请求,基于场景的图像编辑系统106为输入图像1500生成对象建议和子图建议。例如,在一些实施例中,基于场景的图像编辑系统106利用对象建议网络(object proposal network)1520来提取针对输入图像1500的一组对象建议。为了说明,在一些情况下,基于场景的图像编辑系统106提取在输入图像1500内检测到的用于人类的对象建议的集合、(多个)人类穿着的对象、靠近(多个)人类的对象、建筑物、植物、动物、背景对象或场景(包括天空或天空中的对象)等。
在一个或多个实施例中,对象建议网络1520包括上面参考图3讨论的检测掩蔽神经网络300(具体地,对象检测机器学习模型308)。在一些情况下,对象建议网络1520包括诸如区域建议网络(“RPN”)的神经网络,其是基于区域的卷积神经网络的一部分,以提取由多个边界框表示的对象建议集。一个示例RPN在S.Ren、K.He、R.Girshick和J.Sun的“Fasterr-cnn:Towards real-time object detection with region proposal networks”(更快的r-cnn:使用区域建议网络实现实时目标检测),NIPS,2015中公开,其全部内容通过引用并入本文。作为示例,在一些情况下,基于场景的图像编辑系统106使用RPN来提取输入图像内的重要对象(例如,可检测对象或具有阈值大小/可见性的对象)的对象建议。下面的算法表示对象建议集的一个实施例:
[o0,...,0N-1]=fRPN(I)
其中I是输入图像,fRPN(·)表示RPN网络,并且oi是第i个对象建议。
在一些实现中,结合确定对象建议,基于场景的图像编辑系统106还确定每个对象建议相对于输入图像1500的尺寸的坐标。具体地,在某些情况下,对象建议的位置基于包含数字图像内的对象的(多个)可见部分的边界框。为了说明,对于oi,对应边界框的坐标由ri=[xi,yi,wi,hi]表示,其中(xi,yi)是左上角的坐标,并且wi和hi分别是边界框的宽度和高度。因此,基于场景的图像编辑系统106确定输入图像1500中每个重要对象或实体的相对位置,并将位置数据与对象建议集一起存储。
如上所述,在一些实现中,基于场景的图像编辑系统106还确定针对对象建议的子图建议。在一个或多个实施例中,子图建议指示涉及输入图像1500中的特定对象建议的关系。可以理解,数字图像中的任何两个不同对象(oi,oj)可以对应于相反方向上的两种可能的关系。作为示例,第一对象可以在第二对象的“上面”,并且第二对象可以在第一对象的“下面”。由于每对对象具有两种可能的关系,因此N个对象建议的可能关系的总数为N(N-1)。因此,在试图为输入图像的每个对象建议确定两个方向上的所有可能关系的系统中,较多的对象建议比较少的对象建议导致较大的场景图,同时增加了计算成本并且降低了对象检测的推断速度。
子图建议减少了基于场景的图像编辑系统106分析的潜在关系的数目。具体地,如前所述,子图建议表示涉及两个或更多特定对象建议的关系。因此,在一些情况下,基于场景的图像编辑系统106确定针对输入图像1500的子图建议,以通过聚类而不是维持N(N-1)个可能的关系来减少潜在关系的数目。在一个或多个实施例中,基于场景的图像编辑系统106使用在Y.Li、W.Ouyang、B.Zhou、Y.Cui、J.Shi和X.Wang的“”(可分解网:一个高效的基于子图的场景图生成框架),ECCV,2018年6月29日中描述的聚类和子图建议生成过程,其全部内容通过引用并入本文。
作为示例,对于对象建议对,基于场景的图像编辑系统106基于与对象建议相关联的置信度得分来确定子图。为了说明,基于场景的图像编辑系统106生成具有置信度得分的每个对象建议,该置信度得分指示该对象建议是与输入图像的对应区域的正确匹配的置信度。基于场景的图像编辑系统106还基于组合置信度得分来确定针对对象建议对的子图建议,该组合置信度得分是两个对象建议的置信度得分的乘积。基于场景的图像编辑系统106还将子图建议构造为具有组合置信度得分的对象建议的联合框。
在一些情况下,基于场景的图像编辑系统106还抑制子图建议以将候选关系表示为两个对象和一个子图。具体地,在一些实施例中,基于场景的图像编辑系统106利用非最大值抑制来将候选关系表示为其中i≠j且/>是与oi相关联的所有子图的第k个子图,oi的子图包括oj和潜在的其他对象建议。在抑制子图建议之后,基于场景的图像编辑系统106将每个对象和子图分别表示为特征向量/>和特征图/>其中D和Ka是维度。
在确定针对输入图像中的对象的对象建议和子图建议之后,基于场景的图像编辑系统106从外部知识库1522检索并嵌入关系。在一个或多个实施例中,外部知识库包括涉及对象的语义关系的数据集。具体地,在一些实施例中,外部知识库包括语义网络,该语义网络包括基于背景知识和上下文知识对对象之间的关系(在此也称为“常识关系”)的描述。在一些实现中,外部知识库包括一个或多个服务器上的数据库,该数据库包括来自一个或多个源的关系知识,一个或多个源包括专家创建的资源、众包资源、基于web的源、词典或包括关于对象关系的信息的其他源。
此外,在一个或多个实施例中,嵌入包括将对象作为向量的关系的表示。例如,在一些情况下,关系嵌入包括使用从外部知识库提取的关系的三元组(即,对象标签、一个或多个关系和对象实体)的向量表示。
实际上,在一个或多个实施例中,基于场景的图像编辑系统106与外部知识库1522通信以获得用于改进对象和子图建议的有用对象关系信息。此外,在一个或多个实施例中,基于场景的图像编辑系统106使用嵌入的关系来细化对象建议和子图建议(由框1524表示),如下更详细地描述。
在一些实施例中,在准备从外部知识库1522检索关系时,基于场景的图像编辑系统106对对象和子图建议执行内部细化过程(例如,在准备细化对象和子图建议的特征时)。具体地,基于场景的图像编辑系统106使用每个对象oi连接到一组子图Si并且每个子图sk与一组对象Ok相关联的知识,通过关注相关联的子图特征图(表示相关联的对象向量)来细化对象向量(表示子图)。例如,在某些情况下,内部细化过程表示为:
其中(表示/>)是指示将/>(表示/>)传递到oi(表示到sk)的权重的softmax层的输出,并且fs→o和fs→o是非线性映射函数。在一个或多个实施例中,由于oi和sk的不同维度,基于场景的图像编辑系统106对s→o或o→s的细化应用池化或基于空间位置的注意力。
在一些实施例中,一旦完成了内部细化,基于场景的图像编辑系统106就从最初细化的对象特征向量预测对象标签,并将该对象标签与外部知识库1522中的对应语义实体进行匹配。具体地,基于场景的图像编辑系统106访问外部知识库1522以获得对应于对象标签的最常见的关系。基于场景的图像编辑系统106还从外部知识库1522中选择预定数目的最常见关系,并使用检索到的关系来细化对应的对象建议/特征向量的特征。
在一个或多个实施例中,在使用嵌入关系细化对象建议和子图建议之后,基于场景的图像编辑系统106预测来自细化建议的对象标签1502和谓词标签。具体地,基于场景的图像编辑系统106基于细化的对象/子图特征来预测标签。例如,在一些情况下,基于场景的图像编辑系统106利用对应特征向量的细化特征直接预测每个对象标签。另外,基于场景的图像编辑系统106基于主体和客体特征向量来预测谓词标签(例如,关系标签),结合由于子图特征与若干对象建议对相关联而产生的其对应子图特征图。在一个或多个实施例中,用于预测标签的推断过程如下所示:
其中,frel(·)和fnode(·)分别表示用于谓词和对象识别的映射层,而表示卷积运算。此外,/>表示基于从外部知识库中提取的关系的细化特征向量。
在一个或多个实施例中,基于场景的图像编辑系统106还使用预测的标签来生成语义场景图1504。具体地,基于场景的图像编辑系统106使用对象标签1502和来自细化特征的谓词标签,来创建输入图像1500的语义信息的图形表示。在一个或多个实施例中,基于场景的图像编辑系统106将场景图生成为i≠j,其中/>是场景图。
因此,基于场景的图像编辑系统106结合外部知识库1522利用对象及其标签的相对位置来确定对象之间的关系。基于场景的图像编辑系统106在生成行为策略图1410时利用所确定的关系。作为示例,基于场景的图像编辑系统106确定手和手机在数字图像内具有重叠位置。基于相对位置和深度信息,基于场景的图像编辑系统106确定人(与手相关联)具有“持有”手机的关系。作为另一示例,基于场景的图像编辑系统106确定人和衬衫在数字图像内具有重叠的位置和重叠的深度。基于相对位置和相对深度信息,基于场景的图像编辑系统106确定该人具有“穿着”衬衫的关系。另一方面,基于场景的图像编辑系统106确定人和衬衫具有重叠位置,并且衬衫具有比数字图像内的人类的平均深度更大的平均深度。基于相对位置和相对深度信息,基于场景的图像编辑系统106确定该人具有在衬衫“前面”的关系。
通过为数字图像生成语义场景图,基于场景的图像编辑系统106提供了改进的灵活性和效率。实际上,如上所述,由于在接收到用户交互以执行修改时在修改数字图像中使用的特征是容易获得的,因此基于场景的图像编辑系统106生成语义场景图以提供改进的灵活性。因此,基于场景的图像编辑系统106减少了在准备执行修改时确定那些特征(或生成所需内容,例如边界框或对象掩蔽)在传统系统下通常需要的用户交互。因此,基于场景的图像编辑系统106提供了更高效的图形用户界面,其需要更少的用户交互来修改数字图像。
另外,通过为数字图像生成语义场景图,基于场景的图像编辑系统106提供了编辑像真实世界场景一样的二维图像的能力。例如,基于利用各种神经网络生成的图像的生成的语义场景图,基于场景的图像编辑系统106确定对象、其属性(位置、深度、材料、颜色、重量、大小、标签等)。基于场景的图像编辑系统106利用语义场景图的信息来智能地编辑图像,就好像该图像是真实世界场景一样。
实际上,在一个或多个实施例中,基于场景的图像编辑系统106利用为数字图像生成的语义场景图来促进对数字图像的修改。例如,在一个或多个实施例中,基于场景的图像编辑系统106促进使用对应的语义场景图对数字图像中描绘的对象的一个或多个对象属性进行修改。图16-图21C示出了根据一个或多个实施例的修改在数字图像中描绘的对象的一个或多个对象属性。
许多传统系统不灵活,因为它们经常需要困难、乏味的工作流来对数字图像中描绘的对象的特定对象属性进行针对性修改。实际上,在这样的系统下,修改对象属性通常需要手动操纵对象属性。例如,修改数字图像中描绘的对象的形状通常需要多次用户交互才能手动重构对象的边界(通常在像素级别),而修改大小通常需要与调整大小工具进行繁琐的交互,以调整大小并确保比例。因此,除了不灵活之外,许多传统系统还存在效率低下的问题,因为这些系统执行这种针对性修改所需的过程通常涉及大量的用户交互。
基于场景的图像编辑系统106通过以改进的灵活性和效率操作来提供优于传统系统的优点。实际上,通过呈现图形用户界面元素(通过该图形用户界面元素,用户交互能够以对象的对象属性为目标),基于场景的图像编辑系统106在数字图像中描绘的对象的交互性方面提供了更大的灵活性。具体地,经由图形用户界面元素,基于场景的图像编辑系统106提供对对象属性的灵活选择和修改。因此,基于场景的图像编辑系统106还通过减少修改对象属性所需的用户交互来提供改进的效率。实际上,如下面将讨论的,基于场景的图像编辑系统106使得用户交互能够与对象属性的描述进行交互,以便修改该对象属性,从而避免了许多传统系统所需的用户交互的困难、繁琐的工作流。
如所建议的,在一个或多个实施例中,基于场景的图像编辑系统106通过确定数字图像中描绘的对象的对象属性来促进修改那些对象的对象属性。具体地,在一些情况下,基于场景的图像编辑系统106利用诸如属性分类神经网络的机器学习模型来确定对象属性。图16-图17示出了根据一个或多个实施例,由基于场景的图像编辑系统106用来确定对象的对象属性的属性分类神经网络。具体地,图16-图17示出了在一个或多个实施例中,由基于场景的图像编辑系统106使用的多属性对比分类神经网络。
在一个或多个实施例中,属性分类神经网络包括标识数字图像中描绘的对象的对象属性的计算机实现的神经网络。具体地,在一些实施例中,属性分类神经网络包括计算机实现的神经网络,其分析在数字图像中描绘的对象,标识对象的对象属性,并且作为响应提供对应对象属性的标签。应当理解,在许多情况下,属性分类神经网络更广泛地标识和分类数字图像中描绘的语义区域的属性。实际上,在一些实现中,属性分类神经网络确定除对象(例如,前景或背景)之外的数字图像中描绘的语义区域的属性。
图16示出了根据一个或多个实施例的多属性对比分类神经网络的概述。具体地,图16示出了基于场景的图像编辑系统106利用多属性对比分类神经网络来提取数字图像内描绘的对象的各种属性标签(例如,负标签、正标签和未知标签)。
如图16所示,基于场景的图像编辑系统106利用具有数字图像1602的嵌入神经网络1604,来生成图像-对象特征图1606和低级别属性特征图1610。具体地,基于场景的图像编辑系统106通过将对象-标签嵌入向量1608与来自嵌入神经网络1604的高级别属性特征图组合来生成图像-对象特征图1606(例如,图像-对象特征图X)。例如,对象-标签嵌入向量1608表示对象标签(例如,“椅子”)的嵌入。
此外,如图16所示,基于场景的图像编辑系统106生成局部图像-对象特征向量Zrel。具体地,基于场景的图像编辑系统106利用具有定位器神经网络1612的图像-对象特征图1606来生成局部图像-对象特征向量Zrel。具体地,基于场景的图像编辑系统106将图像-对象特征图1606与局部对象注意力特征向量1616(表示为G)进行组合,以生成局部图像-对象特征向量Zrel,以反映在数字图像1602中被描绘的相关对象(例如,“椅子”)的分割预测。如图16进一步所示,在一些实施例中,使用基准真值对象分割掩蔽1618来训练定位器神经网络1612。
此外,如图16所示,基于场景的图像编辑系统106还生成局部低级别属性特征向量Zlow。具体地,参考图16,基于场景的图像编辑系统106利用来自具有低级别属性特征图1610的定位器神经网络1612的局部对象注意力特征向量G来生成局部低级别属性特征向量Zlow。
此外,如图16所示,基于场景的图像编辑系统106生成多注意力特征向量ZATT。如图16所示,基于场景的图像编辑系统106通过利用多注意力神经网络1614的注意力图1620,从图像-对象特征图1606生成多注意力特征向量Zatt。实际上,在一个或多个实施例中,基于场景的图像编辑系统106利用多注意力特征向量Zatt来关注与数字图像1602内描绘的对象相关的不同空间位置处的特征,同时预测描绘的对象的属性标签。
如图16进一步所示,基于场景的图像编辑系统106在生成局部图像-对象特征向量Zrel、局部低级别属性特征向量Zlow和多注意力特征向量Zatt(在图16中统称为向量1622)时,利用分类器神经网络1624来预测属性标签1626。具体地,在一个或多个实施例中,基于场景的图像编辑系统106利用具有局部图像-对象特征向量Zrel、局部低级别属性特征向量Zlow和多注意力特征向量Zatt的级联的分类器神经网络1624,来确定针对数字图像1602内描绘的对象(例如,椅子)的属性标签1626。如图16所示,基于场景的图像编辑系统106确定数字图像1602中描绘的椅子的正属性标签、不是数字图像1602中描绘的椅子的属性的负属性标签、以及与基于场景的图像编辑系统106不能利用分类器神经网络1624置信地分类为属于数字图像1602中描绘的椅子的属性标签相对应的未知属性标签。
在一些情况下,基于场景的图像编辑系统106利用分类器神经网络1624针对特定属性输出的概率(例如,概率得分、浮点概率),来确定对于数字图像1602中描绘的对象(例如,椅子),属性是否被分类为正、负和/或未知属性标签。例如,当特定属性的概率输出满足正属性阈值(例如,正概率、大于0.5的概率)时,基于场景的图像编辑系统106将该属性标识为正属性。此外,当特定属性的概率输出满足负属性阈值(例如,负概率、低于-0.5的概率)时,基于场景的图像编辑系统106将该属性标识为负属性。此外,在一些情况下,当特定属性的概率输出不满足正属性阈值或负属性阈值时,基于场景的图像编辑系统106将该属性标识为未知属性。
在某些情况下,特征图包括高度、宽度和维度位置(H×W×D),其在每个H×W图像位置处具有D维特征向量。此外,在一些实施例中,特征向量包括表示数字图像内的内容(或对象)的特性和/或特征的一组值。实际上,在一些实施例中,特征向量包括对应于与数字图像相关的潜在和/或显著属性的一组值。例如,在某些情况下,特征向量是表示数字图像内描绘的特征的多维数据集。在一个或多个实施例中,特征向量包括由机器学习算法学习的一组数值度量。
图17示出了根据一个或多个实施例的多属性对比分类神经网络的架构。实际上,在一个或多个实施例中,如图17所示,基于场景的图像编辑系统106利用具有嵌入神经网络、定位器神经网络、多注意力神经网络和分类器神经网络组件的多属性对比分类神经网络来确定数字图像中描绘的对象的正和负属性标签(例如,根据输出属性存在概率)。
如图17所示,基于场景的图像编辑系统106利用多属性对比分类神经网络内的嵌入神经网络。具体地,如图17所示,基于场景的图像编辑系统106利用(例如,图16的嵌入神经网络1604的)低级别嵌入层1704(例如,嵌入NNl)来从数字图像1702生成低级别属性特征图1710。此外,如图17所示,基于场景的图像编辑系统106利用(例如,图16的嵌入神经网络1604的)高级别嵌入层1706(例如,嵌入NNh)来从数字图像1702生成高级别属性特征图1708。
具体地,在一个或多个实施例中,基于场景的图像编辑系统106利用卷积神经网络作为嵌入神经网络。例如,基于场景的图像编辑系统106生成具有从基于卷积神经网络的嵌入神经网络提取的空间大小H×W的D维图像特征图在一些情况下,基于场景的图像编辑系统106利用ResNet-50的倒数第二层的输出作为图像特征图fimg(I)。
如图17所示,基于场景的图像编辑系统106利用嵌入神经网络的高级别嵌入层和低级别嵌入层,来提取高级别属性特征图1708和低级别属性特征图1710两者。通过提取数字图像1702的高级别属性特征图1708和低级别属性特征图1710两者,基于场景的图像编辑系统106解决了不同类别属性之间的特征的异质性。实际上,属性跨越了广泛的语义级别。
通过利用低级别特征图和高级别特征图两者,基于场景的图像编辑系统106在广泛的语义级别范围内准确地预测属性。例如,基于场景的图像编辑系统106利用低级别特征图来准确地预测属性,例如但不限于所描绘对象的颜色(例如,红色、蓝色、多色)、图案(例如,条纹、虚线、条纹)、几何图形(例如,形状、大小、姿势)、纹理(例如,粗糙、光滑、锯齿状)或材料(例如,木质、金属、光泽、哑光)。同时,在一个或多个实施例中,基于场景的图像编辑系统106利用高级别特征图来准确地预测属性,例如但不限于所描绘的对象的对象状态(例如,破碎、干燥、凌乱、充满、陈旧)或动作(例如,跑、坐、飞)。
此外,如图17所示,基于场景的图像编辑系统106生成图像-对象特征图1714。具体地,如图17所示,基于场景的图像编辑系统106将来自对应于对象(例如,“椅子”)的标签的对象-标签嵌入向量1712(例如,诸如图16的对象-标签嵌入向量1608)与高级别属性特征图1708进行组合,以生成图像-对象特征图1714(例如,诸如图16的图像-对象特征图1606)。如图17进一步所示,基于场景的图像编辑系统106利用特征合成模块(例如,fcomp),其利用对象-标签嵌入向量1712和高级别属性特征图1708来输出图像-对象特征图1714。
在一个或多个实施例中,基于场景的图像编辑系统106生成图像-对象特征图1714,以向多属性对比分类神经网络提供额外信号,以学习其预测属性的相关对象(例如,同时还编码针对该对象的特征)。具体地,在一些实施例中,基于场景的图像编辑系统106结合对象-标签嵌入向量1712(作为特征合成模块fcomp中的输入以生成图像-对象特征图1714),以通过使多属性对比分类神经网络学习以避免不可行的对象-属性组合(例如,停放的狗、说话的桌子、吠叫的沙发)来改进多属性对比分类神经网络的分类结果。实际上,在一些实施例中,基于场景的图像编辑系统106还利用对象-标签嵌入向量1712(作为特征合成模块fcomp中的输入)来使多属性对比分类神经网络学习将某些对象-属性对关联在一起(例如,球总是圆的)。在许多情况下,通过引导多属性对比分类神经网络关于它针对什么对象预测属性,使得多属性对比分类神经网络能够关注对象的特定视觉方面。这进而提高了所描绘对象的提取属性的质量。
在一个或多个实施例中,基于场景的图像编辑系统106利用特征合成模块(例如,fcomp)来生成图像-对象特征图1714。具体地,基于场景的图像编辑系统106实现具有根据以下公式的选通机制的特征合成模块(例如,fcomp):
fcomp(fimg(I),φo)=fimg(I)⊙fgateo)
fcompo)=σ(Wg2·ReLU(Wg1φo+bg1)+bg2)
在以上第一个函数中,基于场景的图像编辑系统106利用高级别属性特征图fimg(I)的通道式乘积(⊙)和对象-标签嵌入向量的过滤器fgate,来生成图像-对象特征图/>
此外,在以上第二个函数中,基于场景的图像编辑系统106使用所广播的中的sigmoid函数σ来匹配作为2层多层感知器(MLP)的特征图空间维度。实际上,在一个或多个实施例中,基于场景的图像编辑系统106使用fgate作为过滤器,该过滤器选择与感兴趣的对象相关的属性特征(例如,如由对象-标签嵌入向量φo所指示的)。在许多情况下,基于场景的图像编辑系统106还利用fgate来抑制不兼容的对象-属性对(例如,说话的桌子)。在一些实施例中,基于场景的图像编辑系统106可以标识针对数字图像内描绘的每个对象的对象-图像标签,并通过利用多属性对比分类神经网络使用所标识的对象-图像标签来输出针对每个描绘对象的属性。
此外,如图17所示,基于场景的图像编辑系统106利用具有定位器神经网络1716的图像-对象特征图1714,来生成局部图像-对象特征向量Zrel(例如,如图16中还示为定位器神经网络1612和Zrel)。具体地,如图17所示,基于场景的图像编辑系统106通过利用具有定位器神经网络1716的卷积层frel的图像-对象特征图1714,来生成反映所描绘对象的分割预测的局部对象注意力特征向量1717(例如,图16中的G)。然后,如图17所示,基于场景的图像编辑系统106将局部对象注意力特征向量1717与图像对象特征图1714组合以生成局部图像-对象特征向量Zrel。如图17所示,基于场景的图像编辑系统106利用局部对象注意力特征向量1717和图像对象特征图1714之间的矩阵乘法1720来生成局部图像-对象特征向量Zrel
在一些情况下,数字图像可以包括多个对象(和/或背景)。因此,在一个或多个实施例中,基于场景的图像编辑系统106利用定位器神经网络来学习抑制不相关对象区域(例如,未反映在目标对象的分割预测中以隔离目标对象的区域)的改进的特征聚合。例如,参考数字图像1702,基于场景的图像编辑系统106利用定位器神经网络1716来定位对象区域,使得多属性对比分类神经网络预测正确对象(例如,所描绘的椅子)而不是其他无关对象(例如,所描绘的马)的属性。为此,在一些实施例中,基于场景的图像编辑系统106利用定位器神经网络,该定位器神经网络利用来自标签图像(例如,如下所述的基准真值图像)的数据集的对象分割掩蔽(例如,与基准真值相关的对象掩蔽)的监督学习。
为了说明,在一些情况下,基于场景的图像编辑系统106利用2堆栈卷积层frel(例如,核大小为1),随后是空间softmax,以根据以下公式从图像-对象特征图生成局部对象注意力特征向量G(例如,局部对象区域):/>
例如,局部对象注意力特征向量G包括H×W的单个数据平面(例如,具有单个维度的特征图)。在一些情况下,局部对象注意力特征向量G包括特征图(例如,局部对象注意力特征图),该特征图包括一个或多个特征向量维度。
然后,在一个或多个实施例中,基于场景的图像编辑系统106利用局部对象注意力特征向量Gh,w和图像-对象特征图Xh,w来根据以下生成局部图像-对象特征向量Zrel
在一些情况下,在以上功能中,基于场景的图像编辑系统106使用来自局部对象注意力特征向量Gh,w的权重,将中(来自图像-对象特征图)的H×W D维特征向量Xh,w池化为单个D维特征向量Zrel
在一个或多个实施例中,参考图17,基于场景的图像编辑系统106训练定位器神经网络1716以利用对象分割掩蔽1718(例如,来自图16的基准真值对象分割掩蔽1618)的直接监督来学习局部对象注意力特征向量1717(例如,G)。
此外,如图17所示,基于场景的图像编辑系统106利用具有多注意力神经网络1722的图像-对象特征图1714来生成多注意力特征向量Zatt(例如,图16的多注意力神经网络1614和Zatt)。具体地,如图17所示,基于场景的图像编辑系统106利用具有图像-对象特征图1714的卷积层fatt(例如,注意力层)来提取注意力图1724(例如,注意力1至注意力k)(例如,图16的注意力图1620)。然后,如图17进一步所示,基于场景的图像编辑系统106将提取的注意力图424(注意力1至注意力k)传递通过投影层fproj(例如,经由线性投影),以提取用于生成多注意力特征向量Zatt的一个或多个注意力特征。
在一个或多个实施例中,基于场景的图像编辑系统106利用多注意力特征向量Zatt,通过将焦点提供给描绘对象的不同部分和/或描绘对象周围的区域(例如,关注不同空间位置处的特征),来准确地预测数字图像内描绘对象的属性。为了说明,在一些情况下,基于场景的图像编辑系统106利用多注意力特征向量Zatt来通过关注在数字图像中描绘的人(即,对象)的不同部分来提取诸如“赤脚”或“光头”的属性。同样地,在一些实施例中,基于场景的图像编辑系统106利用多注意力特征向量Zatt来区分可依赖于来自所描绘对象的周围环境的信息的不同活动属性(例如,跳跃与蹲下)。
在某些情况下,基于场景的图像编辑系统106生成针对数字图像内的对象而被描绘的每个属性的注意力图。例如,基于场景的图像编辑系统106利用具有一个或多个注意力层的图像-对象特征图来为每个已知属性从图像-对象特征图生成注意力图。然后,基于场景的图像编辑系统106利用具有投影层的注意力图来生成多注意力特征向量Zatt。在一个或多个实施例中,基于场景的图像编辑系统106针对为数字图像内的对象而被描绘的各种属性生成各种数目的注意力图(例如,系统可以为每个属性生成注意力图或与属性数目不同数目的注意力图)。
此外,在一个或多个实施例中,基于场景的图像编辑系统106利用混合共享多注意方法,该混合共享多注意方法允许注意力跳(attention hop),同时从图像-对象特征图生成注意力图。例如,基于场景的图像编辑系统106根据以下函数从利用卷积层(例如注意力层)的图像-对象特征图X提取M个注意力图/>
在一些情况下,基于场景的图像编辑系统106利用卷积层其具有与上述函数(3)中的2堆栈卷积层frel类似的架构。通过利用上述第二个函数中概述的方法,基于场景的图像编辑系统106利用与不同范围的属性相对应的不同的注意力图集合。
随后,在一个或多个实施例中,基于场景的图像编辑系统106根据以下函数利用M个注意力图(例如,)来从图像-对象特征图X聚合M个注意力特征向量/>
此外,参考图17,基于场景的图像编辑系统106将M个注意力特征向量传递通过投影层/>以根据以下函数提取一个或多个注意力特征向量z(m)
然后,在一个或多个实施例中,基于场景的图像编辑系统106通过根据以下函数连接各个注意力特征向量来生成多注意力特征向量Zatt
在一些实施例中,基于场景的图像编辑系统106在M个注意力跳方法中利用具有多注意力神经网络的散度损失。具体地,基于场景的图像编辑系统106利用散度损失,该散度损失鼓励注意力图关注数字图像的不同(或独特)区域(来自图像-对象特征图)。在一些情况下,基于场景的图像编辑系统106利用散度损失,该散度损失通过最小化注意力特征的注意力权重向量(例如,E)之间的余弦相似性(例如,范数)来促进注意力特征之间的多样性。例如,基于场景的图像编辑系统106根据以下函数确定散度损失/>
在一个或多个实施例中,基于场景的图像编辑系统106利用散度损失来学习多注意力神经网络1722和/或多属性对比分类神经网络的参数(作为整体)。
此外,如图17所示,基于场景的图像编辑系统106还生成局部低级别属性特征向量Zlow(例如,图16的Zlow)。实际上,如图17所示,基于场景的图像编辑系统106通过对低级别属性特征图1710和局部对象注意力特征向量1717进行组合,来生成局部低级别属性特征向量Zlow。例如,如图17所示,基于场景的图像编辑系统106利用矩阵乘法1726来对低级别属性特征图1710和局部对象注意力特征向量1717进行组合,以生成局部低级别属性特征向量Zlow
在一个或多个实施例中,通过生成并利用局部低级别属性特征向量Zlow,基于场景的图像编辑系统106提高了针对数字图像中描绘的对象提取的低级别特征(例如,颜色、材料)的准确性。具体地,在一个或多个实施例中,基于场景的图像编辑系统106从局部对象注意力特征向量(例如,来自定位器神经网络)池化低级别特征(由来自低级别嵌入层的低级别属性特征图表示)。实际上,在一个或多个实施例中,通过利用低级别特征图从局部对象注意力特征向量池化低级别特征,基于场景的图像编辑系统106构造局部低级别属性特征向量Zlow
如图17进一步所示,基于场景的图像编辑系统106利用具有局部图像-对象特征向量Zrel、多注意力特征向量Zatt和局部低级别属性特征向量Zlow的分类器神经网络1732(fclassifier)(例如,图16的分类器神经网络1624),来确定针对数字图像1702内描绘的对象(例如,“椅子”)的正属性标签1728和负属性标签1730。在一些实施例中,基于场景的图像编辑系统106利用局部图像-对象特征向量Zrel、多注意力特征向量Zatt和局部低级别属性特征向量Zlow的连接作为分类器神经网络1732(fclassifier)的分类层中的输入。然后,如图17所示,分类器神经网络1732(fclassifier)针对数字图像1702中的描绘对象生成正属性标签1728(例如,红色、鲜红、干净、巨型、木质),并且还生成负属性标签1730(例如,蓝色、填充、图案、多色)。
在一个或多个实施例中,基于场景的图像编辑系统106利用作为2层MLP的分类器神经网络。在一些情况下,基于场景的图像编辑系统106利用分类器神经网络,该分类器神经网络包括各种量的隐藏单元和后面跟随sigmoid的输出逻辑值。在一些实施例中,分类器神经网络由基于场景的图像编辑系统106训练以生成正属性标签和负属性标签。尽管本文描述的一个或多个实施例利用2层MLP,但在一些情况下,基于场景的图像编辑系统106利用线性层(例如,在分类器神经网络内、用于fgate和用于图像-对象特征图)。
此外,在一个或多个实施例中,基于场景的图像编辑系统106利用局部图像-对象特征向量Zrel、多注意力特征向量Zatt和局部低级别属性特征向量Zlow与分类器神经网络的各种组合,来提取针对数字图像中描绘的对象的属性。例如,在某些情况下,基于场景的图像编辑系统106提供局部图像-对象特征向量Zrel和多注意力特征向量Zatt以提取针对所描绘对象的属性。在一些情况下,如图17所示,基于场景的图像编辑系统106利用每个局部图像-对象特征向量Zrel、多注意力特征向量Zatt和局部低级别属性特征向量Zlow与分类器神经网络的连接。
在一个或多个实施例中,基于场景的图像编辑系统106利用分类器神经网络1732来生成对应于属性标签的预测得分作为输出。例如,分类器神经网络1732可以为一个或多个属性标签生成预测得分(例如,蓝色的得分为0.04、红色的得分为0.9、橙色的得分为0.4)。然后,在一些情况下,基于场景的图像编辑系统106利用与满足阈值预测得分的预测得分相对应的属性标签。实际上,在一个或多个实施例中,基于场景的图像编辑系统106通过利用来自分类器神经网络的属性的输出预测得分来选择各种属性标签(正和负两者)。
尽管本文的一个或多个实施例说明了利用特定嵌入神经网络、定位器神经网络、多注意神经网络和分类器神经网络的基于场景的图像编辑系统106,但是基于场景的图像编辑系统106可以针对这些组件(例如,CNN、FCN)利用各种类型的神经网络。此外,尽管本文中的一个或多个实施例描述了利用矩阵乘法组合各种特征图(和/或特征向量)的基于场景的图像编辑系统106,但是在一些实施例中,基于场景的图像编辑系统106利用各种方法来组合特征图(和/或特征向量),例如但不限于连接、乘法、加法和/或聚合。例如,在一些实现中,基于场景的图像编辑系统106通过级联局部对象注意特征向量和图像-对象特征图来对局部对象注意力特征向量和图像-对象特征图进行组合,以生成局部图像-对象特征向量。
因此,在一些情况下,基于场景的图像编辑系统106利用属性分类神经网络(例如,多属性对比分类神经网络)来确定数字图像中描绘的对象的对象属性或以其他方式确定的描绘的语义区域的属性。在一些情况下,基于场景的图像编辑系统106将为数字图像确定的对象属性或其他属性添加到该数字图像的语义场景图。换言之,基于场景的图像编辑系统106利用属性分类神经网络来生成数字图像的语义场景图。然而,在一些实现中,基于场景的图像编辑系统106将所确定的对象属性或其他属性存储在分离的存储位置中。
此外,在一个或多个实施例中,基于场景的图像编辑系统106促进通过响应于用户输入修改一个或多个对象属性来修改数字图像中描绘的对象的对象属性。具体地,在一些情况下,基于场景的图像编辑系统106利用诸如属性修改神经网络的机器学习模型来修改对象属性。图18示出了根据一个或多个实施例的由基于场景的图像编辑系统106用来修改对象属性的属性修改神经网络。
在一个或多个实施例中,属性修改神经网络包括计算机实现的神经网络,其修改对象的指定对象属性(或其他指定语义区域的指定属性)。具体地,在一些实施例中,属性修改神经网络包括计算机实现的神经网络,其接收以对象属性为目标并指示对象属性的改变的用户输入,并根据所指示的改变来修改对象属性。在一些情况下,属性修改神经网络包括生成性网络。
如图18所示,基于场景的图像编辑系统106向对象修改神经网络1806提供对象1802(例如,描绘对象1802的数字图像)和修改输入1804a-1804b。具体地,图18示出了修改输入1804a-1804b,其包括用于要改变的对象属性的输入(例如,对象1802的黑色)和用于发生改变的输入(例如,将对象1802的颜色改变为白色)。
如图18所示,对象修改神经网络1806利用图像编码器1808从对象1802生成视觉特征图1810。此外,对象修改神经网络1806利用文本编码器1812从修改输入1804a-1804b生成文本特征1814a-1814b。具体地,如图18所示,对象修改神经网络1806在联合嵌入空间1816内生成视觉特征图1810和文本特征1814a-1814b(标记为“视觉-语义嵌入空间”或“VSE空间”)。
在一个或多个实施例中,对象修改神经网络1806执行文本引导的视觉特征操纵,以将修改输入1804a-1804b基于视觉特征图1810上,并利用所提供的文本特征操纵视觉特征图1810的对应区域。例如,如图18所示,对象修改神经网络1806利用操作1818(例如,向量算术运算)从视觉特征图1810和文本特征1814a-1814b生成操纵的视觉特征图1820。
如图18进一步所示,对象修改神经网络1806还利用固定边缘提取器1822来提取对象1802的边缘1824(边界)。换言之,对象修改神经网络1806利用固定边缘提取器1822来提取要修改的区域的边缘1824。
此外,如图所示,对象修改神经网络1806利用解码器1826来生成修改对象1828。具体地,解码器1826根据从对象1802提取的边缘1824以及从对象1802和修改输入1804a-1804b生成的操纵的视觉特征图1820,来生成修改对象1828。
在一个或多个实施例中,基于场景的图像编辑系统106训练对象修改神经网络1806以处理开放词汇表指令和开域数字图像。例如,在一些情况下,基于场景的图像编辑系统106利用大规模图像字幕数据集训练对象修改神经网络1806以学习通用视觉语义嵌入空间。在一些情况下,基于场景的图像编辑系统106利用卷积神经网络和/或长短期记忆网络作为对象修改神经网络1806的编码器,以将数字图像和文本输入转换成视觉和文本特征。
下面提供文本引导的视觉特征操纵的更详细的描述。如前所述,在一个或多个实施例中,基于场景的图像编辑系统106利用联合嵌入空间1816,经由向量算术运算来操纵具有修改输入1804a-1804b的文本指令的视觉特征图1810。当操纵某些对象或对象属性时,对象修改神经网络1806旨在仅修改特定区域,同时维持其他区域不变。因此,对象修改神经网络1806在表示为的视觉特征图1810和文本特征1814a-1814b(例如,表示为文本特征向量)之间进行向量算术运算。
例如,在一些情况下,对象修改神经网络1806标识视觉特征图1810中要在空间特征图上操纵(即,将修改输入1804a-1804b作为基础)的区域。在一些情况下,对象修改神经网络1806经由视觉特征图1810的加权和为文本查询提供软接地。在一些情况下,对象修改神经网络1806使用文本特征1814a-1814b(表示为)作为权重来计算视觉特征图1810的加权和g=tTV。使用该方法,对象修改神经网络1806提供软接地图/>其粗略地定位视觉特征图1810中与文本指令相关的对应区域。
在一个或多个实施例中,对象修改神经网络1806使用接地图(grounding map)作为位置自适应系数来控制不同位置处的操纵强度。在一些情况下,对象修改神经网络1806利用系数α来控制全局操纵强度,这使得能够在源图像和操纵图像之间进行连续转换。在一个或多个实施例中,基于场景的图像编辑系统106将视觉特征图中的空间位置(i,j)(其中i,j∈{0,1,...6})处的视觉特征向量表示为/>
基于场景的图像编辑系统106利用对象修改神经网络1806经由由软接地图和系数α加权的向量算术运算来执行各种类型的操作。例如,在一些情况下,基于场景的图像编辑系统106利用对象修改神经网络1806来改变对象属性或全局属性。对象修改神经网络1806将源概念(例如,“黑色三角形”)和目标概念(例如,“白色三角形”)的文本特征嵌入分别表示为t1和t2。对象修改神经网络1806如下执行位置(i,j)处的图像特征向量vi,j的操纵:
其中i,j∈{0,1,...6}并且是在7×7特征图的位置(i,j)处被操纵的视觉特征向量。
在一个或多个实施例中,对象修改神经网络1806移除源特征t1并且将目标特征t2添加到每个视觉特征向量vi,j。此外,<vi,j,t1>表示位置(i,j)处的软接地图的值,计算为图像特征向量与源文本特征的点积。换言之,该值表示视觉嵌入vi,j在文本嵌入t1的方向上的投影。在一些情况下,对象修改神经网络1806利用该值作为位置自适应操纵强度来控制应该编辑图像中的哪些区域。此外,对象修改神经网络1806使用系数α作为控制图像级操纵强度的超参数。通过平滑地增加α,对象修改神经网络1806实现从源属性到目标属性的平滑转换。
在一些实现中,基于场景的图像编辑系统106利用对象修改神经网络1806来从数字图像移除概念(例如,对象属性、对象或其他视觉元素)(例如,移除人类的附件)。在一些情况下,对象修改神经网络1806将要移除的概念的语义嵌入表示为t。因此,对象修改神经网络1806执行如下移除操作:
此外,在一些实施例中,基于场景的图像编辑系统106利用对象修改神经网络1806来修改对象属性(或语义区域的其他属性)出现的程度(例如,使红苹果不那么红或增加数字图像的亮度)。在一些情况下,对象修改神经网络1806经由超参数α控制属性的强度。通过平滑地调整α,对象修改神经网络1806逐渐加强或削弱属性出现的程度,如下所示:
在导出操纵特征图之后,对象修改神经网络1806利用解码器1826(图像解码器)来生成操纵图像(例如,修改对象1828)。在一个或多个实施例中,基于场景的图像编辑系统106训练对象修改神经网络1806,如F.Faghri等人在“Vse++:Improvingvisual-semantic Embeddings with Hard Negatives”(Vse++:用硬否定改进视觉语义嵌入),arXiv:1707.05612,2017zhong所描述的,其通过引用整体并入本文。在一些情况下,解码器1826将1024×7×7个特征图作为输入,并且由7个ResNet块组成,之间具有上采样层,其生成256×256个图像。此外,在一些情况下,基于场景的图像编辑系统106利用鉴别器,包括多尺度的基于贴片的鉴别器。在一些实现中,基于场景的图像编辑系统106利用GAN损失、感知损失和鉴别器特征匹配损失来训练解码器1826。此外,在一些实施例中,固定边缘提取器1822包括双向级联网络。
图19A-图19C示出了根据一个或多个实施例,由基于场景的图像编辑系统106实现的图形用户界面,以促进修改在数字图像中描绘的对象的对象属性。实际上,尽管图19A-图19C具体示出了修改对象的对象属性,但是应当注意,在各种实施例中,基于场景的图像编辑系统106类似地修改数字图像的其他语义区域(例如,背景、前景、地面、天空等)的属性。
实际上,如图19A所示,基于场景的图像编辑系统106提供用于在客户端设备1904上显示的图形用户界面1902,并且提供用于在图形用户界面1902内显示的数字图像1906。如进一步所示,数字图像1906描绘对象1908。
如图19A进一步所示,响应于检测到用户与对象1908的交互,基于场景的图像编辑系统106提供用于在图形用户界面1902内显示的属性菜单1910。在一些实施例中,属性菜单1910提供对象1908的一个或多个对象属性。实际上,图19A示出了属性菜单1910提供分别指示对象1908的形状、颜色和材料的对象属性指示符1912a-1912c。然而,应当注意,在各种实施例中提供了各种备选或附加对象属性。
在一个或多个实施例中,基于场景的图像编辑系统106从针对数字图像1906生成的语义场景图中,检索针对对象属性指示符1912a-1912c的对象属性。实际上,在一些实现中,基于场景的图像编辑系统106为数字图像1906生成语义场景图(例如,在检测到用户与对象1908的交互之前)。在一些情况下,基于场景的图像编辑系统106利用属性分类神经网络来确定对象1908的对象属性,并将所确定的对象属性包括在语义场景图中。在一些实现中,基于场景的图像编辑系统106从分离的存储位置检索对象属性。
如图19B所示,基于场景的图像编辑系统106检测用户与对象属性指示符1912c的交互。实际上,在一个或多个实施例中,对象属性指示符1912a-1912c是交互性的。如图所示,响应于检测到用户交互,基于场景的图像编辑系统106从显示中移除对象1908的对应对象属性。此外,响应于检测到用户交互,基于场景的图像编辑系统106提供用于在图形用户界面1902内显示的数字键盘1914。因此,基于场景的图像编辑系统106提供输入文本用户输入的提示。在一些情况下,在检测到用户与对象属性指示符1912c的交互时,基于场景的图像编辑系统106维持对应对象属性以用于显示,从而允许用户交互在确认对象属性已成为修改目标时移除对象属性。
如图19C所示,基于场景的图像编辑系统106检测与图形用户界面1902内显示的数字键盘1914的一个或多个用户交互。具体地,基于场景的图像编辑系统106接收经由数字键盘1914提供的文本用户输入。基于场景的图像编辑系统106还确定文本用户输入提供对对应于对象属性指示符1912c的对象属性的改变。此外,如图所示,基于场景的图像编辑系统106提供文本用户输入以作为对象属性指示符1912c的一部分进行显示。
在这种情况下,用户与图形用户界面1902的交互提供了将对象1908的材料(material)从第一材料(例如,木材)改变为第二材料(例如,金属)的指令。因此,在接收到关于第二材料的文本用户输入时,基于场景的图像编辑系统106通过修改对象1908的对象属性来修改数字图像1906,以反映用户提供的第二材料。
在一个或多个实施例中,基于场景的图像编辑系统106利用属性修改神经网络来改变对象1908的对象属性。具体地,如以上参考图18所述,基于场景的图像编辑系统106将数字图像1906以及由文本用户输入提供的第一材料和第二材料组成的修改输入提供给属性修改神经网络。因此,基于场景的图像编辑系统106利用属性修改神经网络,来提供描绘具有修改的对象属性的对象1908的修改的数字图像作为输出。
图20A-图20C示出了根据一个或多个实施例,由基于场景的图像编辑系统106实现的另一图形用户界面,以促进修改数字图像中描绘的对象的对象属性。如图20A所示,基于场景的图像编辑系统106提供描绘对象2008的数字图像2006,用于在客户端设备2004的图形用户界面2002内显示。此外,在检测到用户与对象2008的交互时,基于场景的图像编辑系统106提供了具有列出对象2008的对象属性的属性对象指示符2012a-2012c的属性菜单2010。
如图20B所示,基于场景的图像编辑系统106检测到与对象属性指示符2012a的附加用户交互。响应于检测到附加用户交互,基于场景的图像编辑系统106提供用于在图形用户界面2002内显示的备选属性菜单2014。在一个或多个实施例中,备选属性菜单2014包括用于改变对应对象属性的一个或多个选项。实际上,如图20B所示,备选属性菜单2014包括备选属性指示符2016a-2016c,其提供可以用来代替对象2008的当前对象属性的对象属性。
如图20C所示,基于场景的图像编辑系统106检测到用户与备选属性指示符2016b的交互。因此,基于场景的图像编辑系统106通过根据具有备选属性指示符2016b的用户输入修改对象2008的对象属性来修改数字图像2006。具体地,基于场景的图像编辑系统106修改对象2008以反映与备选属性指示符2016b相关联的备选对象属性。
在一个或多个实施例中,基于场景的图像编辑系统106在修改对象2008时利用备选对象属性的文本表示。例如,如上所述,基于场景的图像编辑系统106将文本表示作为文本输入提供给属性修改神经网络,并利用属性修改神经网络来输出修改的数字图像,其中对象2008反映其对象属性中的目标改变。
图21A-图21C示出了根据一个或多个实施例,由基于场景的图像编辑系统106实现的另一图形用户界面,以促进修改数字图像中描绘的对象的对象属性。如图21A所示,基于场景的图像编辑系统106提供描绘对象2108的数字图像2106,用于在客户端设备2104的图形用户界面2102内显示。此外,在检测到用户与对象2108的交互时,基于场景的图像编辑系统106提供属性菜单2110,其具有列出对象2108的对象属性的属性对象指示符2112a-2012c。
如图21B所示,基于场景的图像编辑系统106检测到与对象属性指示符2112b的附加用户交互。响应于检测到附加用户交互,基于场景的图像编辑系统106提供滑动条2114,用于在图形用户界面2102内显示。在一个或多个实施例中,滑动条2114包括滑动条元素2116,其指示对应对象属性在数字图像2106中出现的程度(例如,其在数字图像2106中的存在的强弱)。
如图21C所示,基于场景的图像编辑系统106检测到与滑动条2114的滑动条元素2116的用户交互,从而增加对应对象属性在数字图像中出现的程度。因此,基于场景的图像编辑系统106通过修改对象2108来修改数字图像2106,以反映对应对象属性的外观中增加的强度。
具体地,在一个或多个实施例中,基于场景的图像编辑系统106根据用户交互来利用属性修改神经网络以修改数字图像2106。实际上,如以上参考图18所述,基于场景的图像编辑系统106能够经由系数α来修改对象属性的外观的强弱(strength or weakness)。因此,在一个或多个实施例中,基于场景的图像编辑系统106经由用户交互,基于滑动条元素2116的定位来调整系数α。
通过如上所述促进以特定对象属性为目标的图像修改,与传统系统相比,基于场景的图像编辑系统106提供了改进的灵活性和效率。实际上,基于场景的图像编辑系统106提供了一种灵活、直观的方法,其视觉地显示对象的属性的描述,并允许与这些描述交互的用户输入来改变属性。因此,基于场景的图像编辑系统106允许用户交互以高抽象级别的对象属性为目标(例如,不必在像素级别进行交互),而不是像在许多传统系统中典型的那样需要对对象属性进行繁琐的手动操纵。此外,由于基于场景的图像编辑系统106实现经由相对较少的用户与所提供的视觉元素的交互对对象属性的修改,因此基于场景的图像编辑系统106实现了提供改进的效率的图形用户界面。
如前所述,在一个或多个实施例中,基于场景的图像编辑系统106还使用为数字图像生成的语义场景图来实现关系感知对象修改。具体地,基于场景的图像编辑系统106利用语义场景图来基于它们与数字图像中的一个或多个其他对象的关系来通知数字图像中描绘的对象的修改行为。图22A-图25D示出了根据一个或多个实施例的实现关系感知对象修改。
实际上,许多传统的系统是不灵活的,因为它们需要不同的对象单独交互以进行修改。即使在不同对象要被类似地修改(例如,类似地调整大小或移动)的情况下,通常是这种情况。例如,传统系统通常需要经由用户交互来执行单独的工作流,以修改单独的对象,或者至少执行修改的准备步骤(例如,勾勒对象和/或将对象与图像的其余部分分离)。此外,当执行修改时,传统系统通常不能适应数字图像中的对象之间的关系。实际上,这些系统可以修改数字图像内的第一对象,但不能根据两个对象之间的关系对第二对象执行修改。因此,所得到的修改的图像可能看起来不自然或在美学上令人困惑,因为它不能正确地反映两个对象之间的关系。
因此,传统系统通常也是低效的,因为它们需要大量的用户交互来修改数字图像中描绘的单独对象。实际上,如上所述,传统系统通常需要经由用户交互来执行单独的工作流,以执行修改单独的对象所需的许多步骤。因此,许多用户交互是冗余的,因为对于单独的对象,用户交互被多次接收、处理和响应。此外,当修改与另一对象具有关系的对象时,传统系统需要额外的用户交互来根据该关系修改另一对象。因此,这些系统不必要地重复所使用的交互(例如,用于移动对象然后移动相关对象的交互)以对相关对象执行单独的修改,即使在该关系暗含要执行的修改的情况下也是如此。
基于场景的图像编辑系统106通过实现关系感知对象修改,提供了比传统系统更大的灵活性和效率。实际上,如将讨论的,基于场景的图像编辑系统106提供了用于选择用于修改的相关对象的灵活、简化的过程。因此,基于场景的图像编辑系统106灵活地允许用户交互经由单个工作流来选择和修改数字图像中描绘的多个对象。此外,基于场景的图像编辑系统106促进对相关对象的直观修改,从而所得到的修改的图像继续反映该关系。因此,与传统系统相比,由基于场景的图像编辑系统106修改的数字图像提供了更自然的外观。
此外,通过实现用于选择和修改相关对象的简化过程,基于场景的图像编辑系统106提高了效率。具体地,基于场景的图像编辑系统106实现减少选择和修改多个相关对象所需的用户交互的图形用户界面。实际上,如将讨论的,基于场景的图像编辑系统106处理与一个对象的相对少量的用户交互,以预测、建议和/或执行对其他对象的修改,从而消除了对这些修改的额外用户交互的需要。
例如,图22A-图22D示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统106实现以促进关系感知对象修改(relationship-awareobject modification)。实际上,如图22A所示,基于场景的图像编辑系统106提供了描绘对象2208a-2208b和对象2220的数字图像2206,用于在客户端设备2204的图形用户界面2202内显示。具体地,数字图像2206描绘了对象2208a-2208b之间的关系,其中对象2208a正持有对象2208b。
在一个或多个实施例中,基于场景的图像编辑系统106参考先前为数字图像2206生成的语义场景图以标识对象2208a-2208b之间的关系。实际上,如前所述,在一些情况下,基于场景的图像编辑系统106包括为数字图像生成的语义场景图中的数字图像的对象之间的关系。例如,在一个或多个实施例中,基于场景的图像编辑系统106利用机器学习模型来确定对象之间的关系,机器学习模型诸如以上参考图15讨论的模型(例如,聚类和子图建议生成模型)之一。因此,基于场景的图像编辑系统106在语义场景图中的数字图像的表示内包括所确定的关系。此外,在接收用户交互以修改对象2208a-2208b中的任一个之前,基于场景的图像编辑系统106确定对象2208a-2208b之间的关系以用于包括在语义场景图中。
实际上,图22A示出了来自数字图像2206的语义场景图的语义场景图组件2210。具体地,语义场景图组件2210包括表示对象2208a的节点2212a和表示对象2208b的节点2212b。此外,语义场景图组件2210包括与节点2212a-2212b相关联的关系指示符2214a-2214b。关系指示符2214a-2214b指示对象2208a-2208b之间的关系,其中对象2208a持有对象2208b,而对象2208b反过来由对象2208a持有。
如进一步所示,语义场景图组件2210包括与关系指示符2214b相关联的行为指示符2216a-2216b。行为指示符2216a-2216b基于对象2208b与对象2208a的关系向对象2208b分配行为。例如,行为指示符2216a指示,因为对象2208b被对象2208a持有,所以对象2208b与对象2208a一起移动。换言之,当移动对象2208a时,行为指示符2216a指示基于场景的图像编辑系统106移动对象2208b(或至少建议对象2208b被移动)。在一个或多个实施例中,基于场景的图像编辑系统106基于在生成语义场景图中使用的行为策略图,在语义场景图内包括行为指示符2216a-2216b。实际上,在某些情况下,分配给“持有”关系(或其他关系)的行为基于所使用的行为策略图而各不相同。因此,在一个或多个实施例中,基于场景的图像编辑系统106参考先前生成的语义场景图来标识对象与基于这些关系分配的行为之间的关系。
应当注意,语义场景图组件2210指示行为指示符2216a-2216b的行为被分配给对象2208b而不是对象2208a。实际上,在一个或多个实施例中,基于场景的图像编辑系统106基于对象在关系中的角色来将行为分配给对象。例如,虽然当移动持有对象(holdingobject)时,移动被持有对象(held object)可能是适当的,但是在一些实施例中,基于场景的图像编辑系统106确定当移动被持有对象时持有对象不必移动。因此,在一些实现中,基于场景的图像编辑系统106向相同关系中的不同对象分配不同的行为。
如图22B所示,基于场景的图像编辑系统106确定选择对象2208a的用户交互。例如,基于场景的图像编辑系统106确定用户交互以对象2208a为修改目标。如进一步所示,基于场景的图像编辑系统106提供用于显示的视觉指示2218,以指示对象2208a的选择。
如图22C所示,响应于检测到选择对象2208a的用户交互,基于场景的图像编辑系统106自动选择对象2208b。例如,在一个或多个实施例中,在检测到选择对象2208a的用户交互时,基于场景的图像编辑系统106参考针对数字图像2206生成的语义场景图(例如,对应于对象2208a的语义场景图组件2210)。基于语义场景图中表示的信息,基于场景的图像编辑系统106确定数字图像2206中存在与对象2208a具有关系的另一对象。实际上,基于场景的图像编辑系统106确定对象2208a持有对象2208b。相反,基于场景的图像编辑系统106确定对象2208b被对象2208a持有。
因为对象2208a-2208b具有关系,所以基于场景的图像编辑系统106将对象2208b添加到选择。如图22C所示,基于场景的图像编辑系统106修改选择的视觉指示2218以指示对象2208b已被添加到选择。尽管图22C示出了对象2208b的自动选择,但在一些情况下,基于场景的图像编辑系统106基于根据对象2208b与对象2208a的关系在语义场景图内分配给对象2208b的行为来选择对象2208b。实际上,在一些情况下,基于场景的图像编辑系统106指定对象之间的关系何时导致在用户选择一个对象时自动选择另一个对象(例如,经由“一起选择”行为)。然而,如图22C所示,在某些情况下,基于场景的图像编辑系统106默认地自动选择对象2208b。
在一个或多个实施例中,基于场景的图像编辑系统106基于对象2208a和对象2208b包括在选择中来为对象2208a和对象2208b呈现对象掩蔽。实际上,基于场景的图像编辑系统106为对象2208a-2208b呈现预先生成的对象掩蔽,以预期对对象2208a-2208b的修改。在一些情况下,基于场景的图像编辑系统106从数字图像2206的语义场景图中检索预先生成的对象掩蔽,或者检索预先生成的对象掩蔽的存储位置。在任一情况下,在对象2208a-2208b被包括在选择中并且在已经接收到修改输入之前,对象掩蔽是容易获得的。
如图22C进一步所示,基于场景的图像编辑系统106提供了用于在图形用户界面2202内显示的选项菜单2222。在一个或多个实施例中,基于场景的图像编辑系统106确定如果被选择,则来自选项菜单222的修改选项中的至少一个修改选项将应用于对象2208a-2208b两者。具体地,基于场景的图像编辑系统106基于被分配给对象2208b的行为,来确定针对对象2208a所选择的修改也将应用于对象2208b。
实际上,在一个或多个实施例中,除了确定对象2208a-2208b之间的关系之外,基于场景的图像编辑系统106还参考针对数字图像2206的语义场景图,以确定已经基于该关系而被分配的行为。具体地,基于场景的图像编辑系统106参考与对象2208a-2208b之间的关系相关联的行为指示符(例如,行为指示符2216a-2216b)以基于它们的关系来确定哪些行为被分配给对象2208a-2208b。因此,通过确定分配给对象2208b的行为,基于场景的图像编辑系统106确定如何响应潜在编辑。
例如,如图22D所示,基于场景的图像编辑系统106一起删除对象2208a-2208b。例如,在一些情况下,响应于检测到对选项菜单2222内呈现的选项2224的选择,基于场景的图像编辑系统106删除对象2208a-2208b。因此,尽管经由用户交互将对象2208a作为删除的目标,但是基于场景的图像编辑系统106基于经由语义场景图分配给对象2208b的行为(即,“一起删除”行为)将对象2208b包括在删除操作中。因此,在一些实施例中,基于场景的图像编辑系统106通过基于对象与其他对象的关系删除对象来实现关系感知对象修改。
如前所述,在一些实现中,如果基于场景的图像编辑系统106的分配行为指定应该与另一对象一起选择该对象,则基于场景的图像编辑系统106仅将该对象添加到选择中。至少在一些情况下,如果其分配行为指定应该与另一对象一起选择该对象,则基于场景的图像编辑系统106仅在接收任何修改输入之前添加该对象。实际上,在一些情况下,基于被分配给第二对象的行为,仅对第一对象的潜在编辑的子集适用于第二对象。因此,如果不存在提供自动选择的行为,则在接收修改输入之前将第二对象包括在第一对象的选择中,有违反行为策略图经由经由语义场景图所阐述的规则的风险。为了避免这种风险,在一些实现中,基于场景的图像编辑系统106在确定是否将第二对象添加到选择之前等待,直到已经接收到修改输入。然而,在一个或多个实施例中--如图22A-图22D所示--基于场景的图像编辑系统106在检测到对第一对象的选择时自动添加第二对象。在这样的实施例中,基于场景的图像编辑系统106在基于被分配给第二对象的行为确定对第一对象的修改不适用于第二对象时,取消选择第二对象。
如图22D进一步所示,对象2220保留在数字图像2206中。实际上,基于场景的图像编辑系统106没有响应于用户与对象2208a的交互而将对象2220添加到选择中,也没有将对象2220与对象2208a-2208b一起删除。例如,在参考数字图像2206的语义场景图时,基于场景的图像编辑系统106确定在对象2220和对象2208a-2208b中的任一个之间不存在关系(至少,不存在应用于该场景的关系)。因此,基于场景的图像编辑系统106使得用户交互能够一起修改相关对象,同时防止在没有更有针对性的用户交互的情况下修改不相关的对象。
此外,如图22D所示,当移除对象2208a-2208b时,基于场景的图像编辑系统106在数字图像2206内展示内容填充2226。具体地,在删除对象2208a-2208b时,基于场景的图像编辑系统106暴露先前为对象2208a生成的内容填充以及先前为对象2208b生成的内容填充。因此,基于场景的图像编辑系统106促进对数字图像2206进行无缝修改,就好像它是真实场景一样。
图23A-图23C示出了根据一个或多个实施例,由基于场景的图像编辑系统106实现以促进关系感知对象修改的另一图形用户界面。实际上,如图23A所示,基于场景的图像编辑系统106提供了描绘对象2308a-2308b和对象2320的数字图像2306,以在客户端设备2304的图形用户界面2302内显示。具体地,数字图像2306描绘了对象2308a-2308b之间的关系,其中对象2308a持有对象2308b。
如图23A进一步所示,基于场景的图像编辑系统106检测到选择对象2308a的用户交互。响应于检测到用户交互,基于场景的图像编辑系统106提供将对象2308b添加到选择的建议。具体地,基于场景的图像编辑系统106提供了询问用户是否希望将对象2308b添加到选择的文本框2310,并且提供了用于同意添加对象2308b的选项2312和用于拒绝添加对象2308b的选项2314。
在一个或多个实施例中,基于场景的图像编辑系统106基于经由为数字图像2306生成的语义场景图确定对象2308a-2308b之间的关系来提供将对象2308b添加到选择的建议。在一些情况下,基于场景的图像编辑系统106还根据基于该关系而被分配给对象2308b的行为来提供用于添加对象2308b的建议。
如图23A所示,基于场景的图像编辑系统106不建议将对象2320添加到选择。实际上,在一个或多个实施例中,基于参考语义场景图,基于场景的图像编辑系统106确定对象2320与对象2308a-2308b中的任一个之间不存在关系(至少不存在相关关系)。因此,基于场景的图像编辑系统106确定从建议中省略对象2320。
如图23B所示,基于场景的图像编辑系统106将对象2308b添加到选择。具体地,响应于接收到与选项2312的用户交互以同意添加对象2308b,基于场景的图像编辑系统106将对象2308b添加到选择。如图23B所示,基于场景的图像编辑系统106修改选择的视觉指示2316,以指示对象2308b与对象2308a一起被添加到选择。
如图23C所示,响应于检测到一个或多个附加用户交互,基于场景的图像编辑系统106通过在数字图像2306内移动对象2308a来修改数字图像2306。此外,基于场景的图像编辑系统106基于在选择中包括对象2308b来将对象2308b与对象2308a一起移动。因此,基于场景的图像编辑系统106通过基于对象与其他对象的关系来移动对象,从而实现关系感知对象修改。
图24A-图24C示出了根据一个或多个实施例的由基于场景的图像编辑系统106实现的又一图形用户界面,以促进关系感知对象修改。实际上,如图24A所示,基于场景的图像编辑系统106提供描绘对象2408a-2408b和对象2420的数字图像2406,用于在客户端设备2404的图形用户界面2402内显示。具体地,数字图像2406描绘了对象2408a-2408b之间的关系,因为对象2408a持有对象2408b。
如图24A所示,基于场景的图像编辑系统106检测到与对象2408a的用户交互。响应于检测到用户交互,基于场景的图像编辑系统106提供用于在图形用户界面2402内显示的选项菜单2410。如图所示,选项菜单2410包括用于删除对象2408a的选项2412。
如图24B所示,基于场景的图像编辑系统106检测到与用于删除对象2408a的选项2412的附加用户交互。响应于检测到附加用户交互,基于场景的图像编辑系统106经由询问用户是否希望将对象2408b添加到选择的文本框2414、用于同意添加对象2408b的选项2416和用于拒绝添加对象2308b的选项2418,来提供用于将对象2408b添加到选择的建议以供显示。
实际上,如上所述,在一个或多个实施例中,基于场景的图像编辑系统106在建议添加第二对象(或自动添加第二对象)之前等待接收用以修改第一对象的输入。因此,基于场景的图像编辑系统106在将第二对象包括在选择中之前,确定对象和待定修改之间的关系是否指示应该添加第二对象。
为了说明,在一个或多个实施例中,在检测到与选项2412的附加用户交互时,基于场景的图像编辑系统106参考数字图像2406的语义场景图。在参考语义场景图时,基于场景的图像编辑系统106确定对象2408a与对象2408b具有关系。此外,基于场景的图像编辑系统106基于该关系确定而被分配给对象2408b的行为指示应该与对象2408a被一起删除对象2408b。因此,在接收到用于删除对象2408a的附加用户交互时,基于场景的图像编辑系统106确定也应该删除对象2408b,然后提供将对象2408b添加(或自动添加对象2408b)到选择的建议。
如图24C所示,基于场景的图像编辑系统106从数字图像2406一起删除对象2408a和对象2408b。具体地,响应于检测到与用于将对象2408b添加到选择的选项2416的用户交互,基于场景的图像编辑系统106添加对象2408b并执行删除操作。在一个或多个实施例中,在检测到与拒绝添加对象2408b的选项2418的用户交互时,基于场景的图像编辑系统106从选择中省略对象2408b并且仅删除对象2408a。
尽管以上具体讨论了基于它们与其他对象的关系来移动对象或删除对象,但是应当注意,在各种实施例中,基于场景的图像编辑系统106实现各种其他类型的关系感知对象修改。例如,在一些情况下,基于场景的图像编辑系统106经由调整修改大小、重新着色或恢复原有质感修改或构图来实现关系感知对象修改。此外,如前所述,在一些实施例中,基于场景的图像编辑系统106使用的行为策略图是可配置的。因此,在一些实现中,由基于场景的图像编辑系统106实现的关系感知对象修改基于用户偏好而改变。
在一个或多个实施例中,除了基于在结合到语义场景图中的行为策略图内描述的关系来修改对象之外,基于场景的图像编辑系统106还基于分类关系来修改对象。具体地,在一些实施例中,基于场景的图像编辑系统106基于由合并到语义场景图中的真实世界类别描述图所描述的关系来修改对象。实际上,如前所述,真实世界类别描述图为可以在数字图像中被描绘的对象提供对象分类的层级结构。因此,在一些实现中,基于场景的图像编辑系统106基于数字图像内的对象与其他对象的关系,经由它们各自的对象分类层级结构来修改它们。例如,在一个或多个实施例中,基于场景的图像编辑系统106基于对象与其他对象的关系,经由其各自的对象分类层级结构将对象添加到选择以供修改。图25A-图25D示出了根据一个或多个实施例的图形用户界面,其由基于场景的图像编辑系统106实现,以基于分类关系将对象添加到选择以供修改。
具体地,图25A示出了基于场景的图像编辑系统106提供描绘多个对象2508a-2508g的数字图像2506,以在客户端设备2504的图形用户界面2502中显示。具体地,如图所示,对象2508a-2508g包括各种物品,诸如鞋子、眼镜和外套。
图25A还示出了来自数字图像2506的语义场景图的语义场景图组件2510a-2510c。实际上,语义场景图组件2510a-2510c包括为对象2508a-2508g中的每一个提供对象分类层级结构的语义场景图的部分。备选地,在一些情况下,语义场景图组件2510a-2510c表示用于制作语义场景图的真实世界类别描述图的部分。
如图25A所示,语义场景图组件2510a包括表示服装类别的节点2512、表示配饰类别的节点2514和表示鞋子类别的节点2516。如图进一步所示,配饰类别是服装类别的子类别,而鞋子类别是配饰类别的子类别。类似地,语义场景图组件2510b包括表示服装类别的节点2518、表示配饰类别的节点2520、以及表示作为配饰类别的子类别的眼镜类别的节点2522。此外,语义场景图组件2510c包括表示服装类别的节点2524和表示作为服装类别的另一个子类别的外套类别的节点2526。因此,语义场景图组件2510a-2510c提供适用于对象2508a-2508g中的每一个的各种分类。具体地,语义场景图组件2510a提供与数字图像2506中呈现的鞋子相关联的对象分类的层级结构,语义场景图组件2510b提供与眼镜相关联的对象分类的层级结构,以及语义场景图组件2510c提供与外套相关联的对象分类的层级结构。
如图25B所示,基于场景的图像编辑系统106检测到选择对象2508e的用户交互。此外,基于场景的图像编辑系统106检测到选择对象2508b的用户交互。如图进一步所示,响应于检测到对象2508b和对象2508e的选择,基于场景的图像编辑系统106提供文本框2528,该文本框2528建议将数字图像2506中的所有鞋子添加到选择中。
为了说明,在一些实施例中,响应于检测到对象2508b和对象2508e的选择,基于场景的图像编辑系统106参考为数字图像2506生成的语义场景图(例如,与对象2508b和对象2508e相关联的语义场景图组件)。基于参考语义场景图,基于场景的图像编辑系统106确定对象2508b和对象2508e两者都是鞋子类别的一部分。因此,基于场景的图像编辑系统106经由鞋子类别确定在对象2508b和对象2508e之间存在分类关系。在一个或多个实施例中,基于确定对象2508b和对象2508e两者都是鞋子类别的一部分,基于场景的图像编辑系统106确定提供选择以数字图像2506内的所有鞋子为目标的用户交互。因此,基于场景的图像编辑系统106提供文本框2528,该文本框2528建议将其他鞋子添加到选择。在一个或多个实施例中,在接收到接受建议的用户交互时,基于场景的图像编辑系统106将其他鞋子添加到选择。
类似地,如图25C所示,基于场景的图像编辑系统106检测到选择对象2508c的用户交互和选择对象2508b的另一用户交互。响应于检测到用户交互,基于场景的图像编辑系统106参考为数字图像2506生成的语义场景图。基于参考语义场景图,基于场景的图像编辑系统106确定对象2508b是鞋子类别的一部分,鞋子类别是配饰类别的子类别。换言之,基于场景的图像编辑系统106确定对象2508b是配饰类别的一部分。同样,基于场景的图像编辑系统106确定对象2508c是眼镜类别的一部分,眼镜类别是配饰类别的子类别。因此,基于场景的图像编辑系统106经由配饰类别确定对象2508b和对象2508c之间存在分类关系。如图25C所示,基于确定对象2508b和对象2508c两者都是配饰类别的一部分,基于场景的图像编辑系统106提供文本框2530,建议将数字图像2506中描绘的所有其他配饰(例如,其他鞋子和眼镜)添加到选择。
此外,如图25D所示,基于场景的图像编辑系统106检测到选择对象2508a的用户交互和选择对象2508b的另一用户交互。响应于检测到用户交互,基于场景的图像编辑系统106参考为数字图像2506生成的语义场景图。基于参考语义场景图,基于场景的图像编辑系统106确定对象2508b是鞋子类别的一部分,鞋子类别是配饰类别的子类别,配饰类别是服装类别的子类别。类似地,基于场景的图像编辑系统106确定对象2508a是外套类别的一部分,其也是服装类别的子类别。因此,基于场景的图像编辑系统106经由服装类别确定对象2508b和对象2508a之间存在分类关系。如图25D所示,基于确定对象2508b和对象2508a两者都是服装类别的一部分,基于场景的图像编辑系统106提供文本框2532,该文本框2532建议将数字图像2506中描绘的所有其他服装项目添加到选择。
因此,在一个或多个实施例中,基于场景的图像编辑系统106预测作为目标用户交互的对象,并且基于它们的分类关系促进更快地选择那些对象。在一些实施例中,在经由所提供的建议选择多个对象时,基于场景的图像编辑系统106响应于附加用户交互来修改所选择的对象。实际上,基于场景的图像编辑系统106一起修改所选择的对象。因此,基于场景的图像编辑系统106实现图形用户界面,该图形用户界面提供了使用减少的用户交互来选择和修改多个相关对象的更灵活和高效的方法。
实际上,如前所述,与传统系统相比,基于场景的图像编辑系统106提供了改进的灵活性和效率。例如,通过基于对相关对象的选择来选择对象(例如,自动地或经由建议),基于场景的图像编辑系统106提供了以多个对象为目标进行修改的灵活方法。实际上,基于场景的图像编辑系统106灵活地标识相关对象并将它们包括在选择中。因此,基于场景的图像编辑系统106实现图形用户界面,该图形用户界面减少在用于选择和修改多个对象的传统系统中通常需要的用户交互。
在一个或多个实施例中,基于场景的图像编辑系统106还对数字图像进行预处理以帮助移除干扰对象。具体地,基于场景的图像编辑系统106利用机器学习来标识数字图像中的对象,将对象中的一个或多个对象分类为干扰对象,并促进对干扰对象的移除,以提供视觉上更连贯且更美观的所得图像。此外,在一些情况下,基于场景的图像编辑系统106利用机器学习来促进移除与干扰对象相关联的阴影。图26-图39C示出了根据一个或多个实施例的基于场景的图像编辑系统106从数字图像标识和移除干扰对象及其阴影的示意图。
许多传统系统在用于移除干扰的人类的方法方面缺乏灵活性,因为它们从用户手中剥夺了控制权。例如,传统的系统通常会自动移除被它们归类为干扰的人。因此,当接收到数字图像时,这样的系统不能为用户交互提供提供关于移除过程的输入的机会。例如,这些系统不允许用户交互以从一组人中移除被标识为要移除的人。
此外,传统系统通常不能灵活地移除所有类型的干扰对象。例如,许多传统系统不能灵活地移除由干扰对象和非人类对象投射的阴影。实际上,虽然一些现有的系统标识并移除了数字图像中的干扰的人,但这些系统往往无法标识数字图像中人或其他对象投射的阴影。因此,所得到的数字图像将仍然包括干扰的人类的影响,因为尽管干扰的人本身被移除,但其阴影仍然存在。这进一步导致这些传统系统需要额外的用户交互来标识和移除这些阴影。
基于场景的图像编辑系统106通过在移除过程中提供更多的用户控制,同时减少从数字图像中删除对象通常所需的交互来解决这些问题。实际上,如下面将解释的,基于场景的图像编辑系统106将所标识的干扰对象呈现为被选择用于移除的一组对象以供显示。基于场景的图像编辑系统106还使得用户交互能够向该集合添加对象、从该集合移除对象、和/或确定何时删除所选择的对象。因此,基于场景的图像编辑系统106基于机器学习和用户交互采用灵活的工作流来移除干扰对象。
此外,基于场景的图像编辑系统106灵活地标识并移除与数字图像内的干扰对象相关联的阴影。通过移除与干扰对象相关联的阴影,基于场景的图像编辑系统106提供了更好的图像结果,因为移除了干扰对象及其在数字图像内的影响的附加方面。与传统系统相比,这允许减少用户交互,因为基于场景的图像编辑系统106不需要额外的用户交互来标识和移除阴影。
图26示出了根据一个或多个实施例的神经网络管道,该神经网络管道由基于场景的图像编辑系统106用来从数字图像标识和移除干扰对象。实际上,如图26所示,基于场景的图像编辑系统106接收描绘多个对象的数字图像2602。如图所示,基于场景的图像编辑系统106将数字图像2602提供给神经网络管道,其包括分割神经网络2604、干扰物检测神经网络2606、阴影检测神经网络2608和修复神经网络2610。
在一个或多个实施例中,基于场景的图像编辑系统106利用上述分割神经网络之一(例如,参考图3讨论的检测掩蔽神经网络300)作为分割神经网络2604。在一些实施例中,基于场景的图像编辑系统106利用上面讨论的内容感知机器学习模型之一作为修复神经网络2610(例如,参考图4讨论的级联调制修复神经网络420)。下面将更详细地讨论干扰物检测神经网络2606和阴影检测神经网络2608。
如图26所示,基于场景的图像编辑系统106利用神经网络管道从数字图像2602生成修改的数字图像2612。具体地,基于场景的图像编辑系统106利用神经网络的管道来标识并从数字图像2602中移除干扰对象。具体地,基于场景的图像编辑系统106利用分割神经网络2604为数字图像中的对象生成对象掩蔽。基于场景的图像编辑系统106利用干扰物检测神经网络2606来确定针对多个对象中的对象的分类。更具体地,基于场景的图像编辑系统106向每个对象分配主体对象或干扰对象的分类。基于场景的图像编辑系统106利用对象掩蔽从数字图像中移除干扰对象。此外,基于场景的图像编辑系统106利用修复神经网络2610来生成用于数字图像2602中从其移除干扰对象的部分的内容填充,以生成修改的数字图像2612。如图所示,基于场景的图像编辑系统106删除多种不同类型的干扰对象(多个男人和杆子)。实际上,基于场景的图像编辑系统106足够鲁棒,以将非人类对象标识为干扰(例如,女孩后面的杆子)。
在一个或多个实施例中,基于场景的图像编辑系统106利用图26所示的神经网络的子集来生成修改的数字图像。例如,在一些情况下,基于场景的图像编辑系统106利用分割神经网络2604、干扰物检测神经网络2606和内容填充210,来从数字图像生成修改的数字图像。此外,在一些情况下,基于场景的图像编辑系统106利用与所示不同的神经网络的顺序。
图27示出了根据一个或多个实施例的干扰物检测神经网络2700的架构,其由基于场景的图像编辑系统106用来标识和分类数字图像中的干扰对象。如图27所示,干扰物检测神经网络2700包括热图网络2702和干扰物分类器2704。
如图所示,热图网络2702对输入图像2706进行操作以生成热图2708。例如,在一些情况下,热图网络2702生成表示可能的主体对象的主体热图和表示可能的干扰对象的干扰物热图。在一个或多个实施例中,热图(也称为类别激活图)包括由卷积神经网络作出的预测,其以0到1的比例指示图像的特定像素属于一组类别中的特定类别的概率值。与对象检测相反,热图网络的目标是在某些情况下将单个像素分类为同一区域的一部分。在某些情况下,区域包括数字图像中所有像素具有相同颜色或亮度的区域。
在至少一个实现中,基于场景的图像编辑系统106对整个图像训练热图网络2702,包括没有干扰对象的数字图像和描绘主体对象和干扰对象的数字图像。
在一个或多个实施例中,热图网络2702标识数字图像中的特征,该特征有助于得出给定区域更有可能是干扰对象或更有可能是主体对象的结论,诸如身体姿势和取向。例如,在一些情况下,热图网络2702确定具有与站在注意姿势相反的无精打采姿势的对象很可能是干扰对象,并且还确定背向相机的对象很可能是干扰对象。在一些情况下,热图网络2702考虑其他特征,诸如大小、强度、颜色等。
在一些实施例中,热图网络2702将输入图像2706的区域分类为主要对象或干扰物,并基于分类输出热图2708。例如,在一些实施例中,热图网络2702将被确定为主体对象的一部分的任何像素在主体热图内表示为白色,并且将被确定为不是主体对象的一部分的任何像素表示为黑色(反之亦然)。类似地,在一些情况下,热图网络2702将被确定为干扰对象的一部分的任何像素表示为干扰物热图内的白色,而将被确定为不是干扰对象的一部分的任何像素表示为黑色(反之亦然)。
在一些实现中,热图网络2702还生成表示可能背景的背景热图作为热图2708的一部分。例如,在一些情况下,热图网络2702确定背景包括不是主体对象或干扰对象的一部分的区域。在一些情况下,热图网络2702在背景热图内将被确定为背景的一部分的任何像素表示为白色,而将被确定为不是背景的一部分的任何像素表示为黑色(反之亦然)。
在一个或多个实施例中,干扰物检测神经网络2700利用由热图网络2702输出的热图2708作为干扰物分类器2704之前的热图,以指示输入图像2706的特定区域包含干扰对象或主体对象的概率。
在一个或多个实施例中,干扰物检测神经网络2700利用干扰物分类器2704来考虑被包括在热图2708中的全局信息和被包括在一个或多个单独对象2710中的局部信息。为了说明,在一些实施例中,干扰物分类器2704针对对象的分类生成得分。如果基于局部信息,数字图像中的对象看起来是主体对象,但是热图2708高概率地指示该对象是干扰对象,则干扰分类器2704在某些情况下得出该对象确实是干扰对象的结论。另一方面,如果热图2708指向作为主体对象的对象,则干扰物分类器2704确定该对象已被确认为主体对象。
如图27所示,干扰物分类器2704包括裁剪生成器2712和混合分类器2714。在一个或多个实施例中,干扰物分类器2704接收已经从输入图像2706标识的一个或多个单独对象2710。在一些情况下,经由用户注释或某个对象检测网络(例如,上面参考图3讨论的对象检测机器学习模型308)来标识一个或多个单独对象2710。
如图27所示,干扰物分类器2704利用裁剪生成器2712通过基于一个或多个单独对象2710的位置来裁剪输入图像2706,以生成裁剪图像2716。例如,在输入图像2706中存在三个对象检测的情况下,裁剪生成器2712生成三个裁剪图像--裁剪图像针对每个检测到的对象。在一个或多个实施例中,裁剪生成器2712通过移除输入图像2706在相应推断边界区域的位置之外的所有像素来生成裁剪图像。
如进一步所示,干扰物分类器2704还利用裁剪生成器2712,通过相对于每个检测到的对象裁剪热图2708来生成裁剪热图2718。例如,在一个或多个实施例中,裁剪生成器2712根据主体热图、干扰物热图和背景热图中的每一者,基于热图内对应于检测到的对象的位置的区域,为每个检测到的对象生成一个裁剪热图。
在一个或多个实施例中,对于一个或多个单独对象2710中的每个单独对象,干扰物分类器2704利用混合分类器2714来对对应的裁剪图像(例如,其特征)和对应的裁剪热图(例如,其特征)进行操作,以确定该对象是主体对象还是干扰对象。为了说明,在一些实施例中,对于检测到的对象,混合分类器2714对与检测到的对象相关联的裁剪图像和与检测到的对象相关联的裁剪热图(例如,基于检测到的对象的位置从热图2708中得到的裁切热图)执行操作,以确定检测到的对象是主体对象还是干扰对象。在一个或多个实施例中,干扰物分类器2704将检测到的对象的裁剪图像的特征与对应的裁剪热图的特征组合(例如,经由连接或附加特征),并将该组合提供给混合分类器2714。如图27所示,混合分类器2714从其对应的裁剪图像和裁剪热图生成二元判定2720,其包括用于作为主体对象或干扰对象的检测到的对象的标签。
图28示出了根据一个或多个实施例的热图网络2800的架构,其由基于场景的图像编辑系统106用作干扰物检测神经网络的一部分。如图28所示,热图网络2800包括卷积神经网络2802作为其编码器。在一个或多个实施例中,卷积神经网络2802包括深度残差网络。如图28进一步所示,热图网络2800包括热图头2804作为其解码器。
图29示出了根据一个或多个实施例的混合分类器2900的架构,其由基于场景的图像编辑系统106用作干扰物检测神经网络的一部分。如图29所示,混合分类器2900包括卷积神经网络2902。在一个或多个实施例中,混合分类器2900使用卷积神经网络2902作为编码器。
为了说明,在一个或多个实施例中,基于场景的图像编辑系统106将裁剪图像2904的特征提供给卷积神经网络2902。此外,基于场景的图像编辑系统106将与裁剪图像2904的对象相对应的裁剪热图2906的特征提供给混合分类器2900的内层2910。具体地,如图所示,在一些情况下,基于场景的图像编辑系统106将裁剪热图2906的特征与先前内部层的输出进行连接(经由级联操作2908),并将所得到的特征图提供给混合分类器2900的内层2910。在一些实施例中,特征图包括2048+N个通道,其中N对应于热图网络的输出的通道,并且2048对应于先前内部层的输出的通道(尽管2048是一个示例)。
如图29所示,混合分类器2900对内层2910的输出执行卷积以减小通道深度。此外,混合分类器2900对后续内部层2914的输出执行另一卷积,以进一步减小通道深度。在一些情况下,混合分类器2900对二进制分类头2912之前的最终内部层2916的输出应用池化。例如,在一些情况下,混合分类器2900对最终内部层输出的值进行平均以生成平均值。在平均值高于阈值的一些情况下,混合分类器2900将对应的对象分类为干扰对象并输出对应的二进制值;否则,混合分类器2900将对应的对象分类为主体对象并输出对应的二进制值(反之亦然)。因此,混合分类器2900提供了包含对应对象的标签的输出2918。
图30A-图30C示出了根据一个或多个实施例的图形用户界面,该图形用户界面由基于场景的图像编辑系统106实现以从数字图像标识和移除干扰对象。例如,如图30A所示,基于场景的图像编辑系统106提供了数字图像3006,以用于在客户端设备3004的图形用户界面3002内显示。如进一步所示,数字图像3006描绘了对象3008和多个附加对象3010a-3010d。
另外,如图30A所示,基于场景的图像编辑系统106提供进度指示符3012以在图形用户界面3002内显示。在一些情况下,基于场景的图像编辑系统106提供进度指示符3012以指示正在针对干扰对象分析数字图像3006。例如,在一些实施例中,基于场景的图像编辑系统106提供进度指示符3012,同时利用干扰物检测神经网络来标识和分类数字图像3006内的干扰对象。在一个或多个实施例中,基于场景的图像编辑系统106在接收到数字图像3006时并且在接收到用于修改对象3010a-3010d中的一个或多个的用户输入之前自动实现干扰物检测神经网络。然而,在一些实现中,基于场景的图像编辑系统106等待接收到用户输入时,然后针对干扰对象分析数字图像3006。
如图30B所示,基于场景的图像编辑系统106在完成分析时提供用于在图形用户界面3002内显示的视觉指示符3014a-3014d。具体地,基于场景的图像编辑系统106提供视觉指示符3014a-3014d以指示对象3010a-3010d已被分类为干扰对象。
在一个或多个实施例中,基于场景的图像编辑系统106还提供视觉指示符3014a-3014d以指示对象3010a-3010d已被选择用于删除。在一些情况下,基于场景的图像编辑系统106还呈现针对对象3010a-3010d的预先生成的对象掩蔽,以准备删除对象。实际上,如已经讨论的,基于场景的图像编辑系统106针对数字图像的对象预先生成对象掩蔽和内容填充(例如,利用上面引用的分割神经网络2604和修复神经网络2610)。因此,基于场景的图像编辑系统106具有易于用于修改对象3010a-3010d的对象掩蔽和内容填充。
在一个或多个实施例中,基于场景的图像编辑系统106使得用户交互能够添加到要删除的对象的选择中或从中移除。例如,在一些实施例中,在检测到用户与对象3010a的交互时,基于场景的图像编辑系统106确定从删除操作中省略对象3010a。此外,基于场景的图像编辑系统106从图形用户界面3002的显示中移除视觉指示3014a。另一方面,在一些实现中,基于场景的图像编辑系统106检测用户与对象3008的交互,并作为响应,确定将对象3008包括在删除操作中。此外,在一些情况下,基于场景的图像编辑系统106为对象3008提供视觉指示以用于显示和/或呈现针对对象3008的预先生成的对象掩蔽以准备删除。
如图30B进一步所示,基于场景的图像编辑系统106提供移除选项3016以在图形用户界面3002内显示。在一个或多个实施例中,响应于检测到用户与移除选项3016的交互,基于场景的图像编辑系统106移除已被选择用于删除的对象(例如,已被分类为干扰对象的对象3010a-3010d)。实际上,如图30C所示,基于场景的图像编辑系统106从数字图像3006移除对象3010a-3010d。此外,如30C所示,在移除对象3010a-3010d时,基于场景的图像编辑系统106展示先前生成的内容填充3018a-3018d。
通过使用户交互能够控制哪些对象被包括在删除操作中并且进一步选择何时移除所选对象,基于场景的图像编辑系统106提供了更大的灵活性。实际上,虽然传统系统通常在没有用户输入的情况下自动删除干扰对象,但是基于场景的图像编辑系统106允许根据经由用户交互表达的用户偏好来删除干扰对象。因此,基于场景的图像编辑系统106灵活地允许经由用户交互控制移除过程。
在各种实施例中,除了移除经由干扰物检测神经网络标识的干扰对象之外,基于场景的图像编辑系统106还提供用于移除数字图像的不想要部分的其他特征。例如,在一些情况下,基于场景的图像编辑系统106提供了一种工具,由此用户交互可以针对数字图像的任意部分进行删除。图31A-图31C示出了根据一个或多个实施例的图形用户界面,其由基于场景的图像编辑系统106实现以从数字图像标识和移除干扰对象。
具体地,图31A示出了在客户端设备3104的图形用户界面3102上显示的数字图像3106。数字图像3106对应于在已经移除由干扰物检测神经网络标识的干扰对象之后的图30C的数字图像3006。因此,在一些情况下,保留在数字图像3106中的对象表示未被标识为干扰对象并被移除的那些对象。例如,在一些情况下,数字图像3106的地平线附近的对象3110的集合包括未被干扰物检测神经网络标识为干扰对象的对象。
如图31A进一步所示,基于场景的图像编辑系统106提供画笔工具选项3108以在图形用户界面3102内显示。图31B示出在检测到用户与画笔工具选项3108的交互时,基于场景的图像编辑系统106使得一个或多个用户交互能够使用画笔工具来选择数字图像3106的任意部分(例如,未被干扰物检测神经网络标识的部分)以供移除。例如,如图所示,基于场景的图像编辑系统106接收以描绘对象集合3110的数字图像3106的一部分为目标的与图形用户界面3102的一个或多个用户交互。
如图31B所示,通过画笔工具,基于场景的图像编辑系统106在某些情况下允许自由形式的用户输入。具体地,图31B示出了基于场景的图像编辑系统106提供表示经由画笔工具选择的数字图像3106的部分(例如,目标特定像素)的视觉指示3112。实际上,基于场景的图像编辑系统106使用画笔工具来实现对数字图像3106的各个部分的任意选择,而不是接收与先前标识的对象或其他预先分割的语义区域的用户交互。因此,基于场景的图像编辑系统106利用画笔工具来提供额外的灵活性,由此用户交互能够指定可能无法由机器学习标识的数字图像的不期望区域。
如图31B进一步所示,基于场景的图像编辑系统106提供移除选项3114以在图形用户界面3102内显示。如图31C所示,响应于检测到用户与移除选项3114的交互,基于场景的图像编辑系统106移除数字图像3106的所选部分。此外,如图所示,基于场景的图像编辑系统106用内容填充3116填充所选部分。在一个或多个实施例中,在从数字图像3106移除的部分不包括先前为其选择了内容填充的对象(或以其他方式包括先前生成的内容填充中未包括的额外像素)的情况下,基于场景的图像编辑系统106在移除经由画笔工具选择的数字图像3106的部分之后生成内容填充3116。具体地,在移除所选部分之后,基于场景的图像编辑系统106利用内容感知的洞填充机器学习模型来生成内容填充3116。
在一个或多个实施例中,当从数字图像移除对象时,基于场景的图像编辑系统106还实现智能扩张(smart dilation)。例如,在一些情况下,基于场景的图像编辑系统106利用智能扩张来移除接触、重叠或靠近数字图像中描绘的其他对象的对象。图32A示出了根据一个或多个实施例,基于场景的图像编辑系统106利用智能扩张来从数字图像移除对象。
通常,传统系统利用紧密掩蔽(例如,紧密附着于对应对象的边界的掩蔽)从数字图像中移除对象。然而,在许多情况下,数字图像包括对象边界周围的渗色或伪影。例如,存在一些图像格式(JPEG),它们特别容易受到对象边界周围存在与格式相关的伪影的影响。当这些问题出现时,使用紧密掩蔽会在所生成的图像中产生不良效果。例如,修复模型通常对这些图像瑕疵很敏感,在直接对分割输出进行操作时会产生较大的伪影。因此,所得到的修改图像不准确地捕捉到过创建附加图像噪声来移除对象的用户意图。
因此,当移除对象时,基于场景的图像编辑系统106扩张(例如,扩展)对象的对象掩蔽以避免相关联的伪影。然而,扩张对象掩蔽存在移除数字图像中描绘的其他对象的部分的风险。例如,在要移除的第一对象与第二对象重叠、接触或接近的情况下,第一对象的扩张掩蔽通常将延伸到第二对象占据的空间中。因此,当使用扩张对象掩蔽移除第一对象时,通常移除第二对象的较大部分,并且(通常不正确地)填充所产生的洞,从而在所得到的图像中造成不期望的效果。因此,基于场景的图像编辑系统106利用智能扩张来避免将要移除的对象的对象掩蔽显著扩展到由其他对象占据的数字图像的区域。
如图32A所示,基于场景的图像编辑系统106确定移除在数字图像3204中描绘的对象3202。例如,在一些情况下,基于场景的图像编辑系统106确定(例如,经由干扰物检测神经网络)对象3202是干扰对象。在一些实现中,基于场景的图像编辑系统106接收要移除的对象3202的用户选择。数字图像3204还描绘对象3206a-3206b。如图所示,被选择用于移除的对象3202与数字图像3204中的对象3206b重叠。
如图32A中进一步所示,基于场景的图像编辑系统106为要移除的对象3202生成对象掩蔽3208,并为对象3206a-3206b生成组合对象掩蔽3210。例如,在一些实施例中,基于场景的图像编辑系统106利用分割神经网络从数字图像3204生成对象掩蔽3208和组合对象掩蔽3210。在一个或多个实施例中,基于场景的图像编辑系统106通过为对象3206a-3206b中的每个对象生成对象掩蔽并确定单独的对象掩蔽之间的并集来生成组合对象掩蔽3210。
此外,如图32A所示,基于场景的图像编辑系统106执行为要移除的对象3202扩展对象掩蔽3208的动作3212。具体地,基于场景的图像编辑系统106扩展对象掩蔽3208内的对象3202的表示。换言之,基于场景的图像编辑系统106将像素添加到对象掩蔽3208内的对象的表示的边界。扩展量在各种实施例中有所不同,并且在一些实现中是可配置的,以适应用户偏好。例如,在一个或多个实现中,基于场景的图像编辑系统106通过将对象掩蔽向外扩展10、15、20、25或30个像素来扩展对象掩蔽。
在扩展对象掩蔽3208之后,基于场景的图像编辑系统106执行检测对象3202的扩展的对象掩蔽与其他检测到的对象3206a-3206b的对象掩蔽(即,组合对象掩蔽3210)之间的重叠的动作3214。具体地,基于场景的图像编辑系统106确定与扩展对象掩蔽内的对象3202的扩展表示相对应的像素在哪里与与组合对象掩蔽3210内的对象3206a-3206b相对应的像素重叠。在一些情况下,基于场景的图像编辑系统106确定扩展对象掩蔽和组合对象掩蔽3210之间的并集,并使用所得到的并集确定重叠。基于场景的图像编辑系统106还执行从对象3202的扩展对象掩蔽中移除重叠部分的动作3216。换言之,基于场景的图像编辑系统106从扩展对象掩蔽内的对象3202的表示中移除与组合对象掩蔽3210内对应于对象3206a和/或对象3206b的像素重叠的像素。
因此,如图32A所示,基于场景的图像编辑系统106为要移除的对象3202生成智能扩张的对象掩蔽3218(例如,扩展的对象掩蔽)。具体地,基于场景的图像编辑系统106通过在与对象3206a-3206b中的任何一个不重叠的区域来扩展对象掩蔽3208并且避免在与对象3206a-3206b中的至少一个重叠的区域中的扩展,来生成智能扩张的对象掩蔽3218。至少在一些实现中,基于场景的图像编辑系统106减少了在重叠的区域中的扩展。例如,在一些情况下,智能扩张的对象掩蔽3218仍然包括在重叠区域中的扩展,但是当与不存在重叠的区域相比时,扩展明显较小。换言之,基于场景的图像编辑系统106在存在重叠的区域中使用更少的像素来扩展。例如,在一个或多个实现中,与存在重叠的区域相比,基于场景的图像编辑系统106将对象掩蔽扩展或扩张到不存在重叠的区域中的5倍、10倍、15倍或20倍。
换言之,在一个或多个实施例中,基于场景的图像编辑系统106通过将对象3202的对象掩蔽3208扩展到对象3206a-3206b的对象掩蔽未占据的区域(例如,对象3206a-3206b本身未占据的区域)来生成智能扩张的对象掩蔽3218(例如,扩展的对象掩蔽)。例如,在一些情况下,基于场景的图像编辑系统106将对象掩蔽3208扩展成数字图像3204的邻接对象掩蔽3208的部分。在一些情况下,基于场景的图像编辑系统106将对象掩蔽3208扩展到设置数量的像素的邻接部分。在一些实现中,基于场景的图像编辑系统106利用不同数量的像素来将对象掩蔽3208扩展成不同的邻接部分(例如,基于检测到对象掩蔽3208和其他对象掩蔽之间的重叠区域)。
为了说明,在一个或多个实施例中,基于场景的图像编辑系统106将对象掩蔽3208扩展到数字图像3204的前景和背景中。具体地,基于场景的图像编辑系统106通过组合不被删除的对象的对象掩蔽来确定前景。基于场景的图像编辑系统106将对象掩蔽3208扩展到邻接的前景和背景。在一些实现中,基于场景的图像编辑系统106将对象掩蔽3208扩展到前景中第一量,并且将对象掩蔽3208扩展到背景中不同于第一量的第二量(例如,第二量大于第一量)。例如,在一个或多个实现中,基于场景的图像编辑系统106将对象掩蔽向背景区域中扩展20个像素,并将两个像素扩展到前景区域(扩展到邻接对象掩蔽,诸如组合对象掩蔽3210)。
在一个或多个实施例中,基于场景的图像编辑系统106通过将对象掩蔽3208扩展到前景中第二量来确定用于将对象掩蔽3208扩展到前景中的第一量--与用于将对象掩蔽3208扩展到背景中的量相同。换言之,基于场景的图像编辑系统106将对象掩蔽3208作为整体扩展到前景和背景中相同的量(例如,使用相同数目的像素)。基于场景的图像编辑系统106还确定扩展对象掩蔽和对应于其他对象3206a-3206b的对象掩蔽(例如,组合对象掩蔽3210)之间的重叠区域。在一个或多个实施例中,重叠区域存在于数字图像3204的、与对象掩蔽3208相邻的前景中。因此,基于场景的图像编辑系统106减少对象掩蔽3208到前景中的扩展,使得该扩展对应于第二量。实际上,在一些情况下,基于场景的图像编辑系统106从对象3202的扩展对象掩蔽中移除重叠区域(例如,移除重叠像素)。在一些情况下,基于场景的图像编辑系统106移除重叠区域的一部分而不是整个重叠区域,从而导致对象3202的扩展对象掩蔽与对应于对象3206a-3206b的对象掩蔽之间的重叠减少。
在一个或多个实施例中,由于移除对象3202包括移除与为对象3202生成的智能扩张的对象掩蔽3218(例如,扩展的对象掩蔽)相邻的前景和背景,因此基于场景的图像编辑系统106在移除之后修复剩余的洞。具体地,基于场景的图像编辑系统106用前景像素和背景像素修复洞。实际上,在一个或多个实施例中,基于场景的图像编辑系统106利用修复神经网络来生成用于所产生的洞的前景像素和背景像素,并利用所生成的像素来修复该洞,从而产生修改的数字图像(例如,修复数字图像),其中对象3202已被移除并且数字图像3204的相应部分已被填充。
例如,图32B示出了在执行修复之前智能地扩张对象掩蔽所提供的优点。具体地,图32B示出,当将智能扩张的对象掩蔽3218(例如,扩展的对象掩蔽)提供给修复神经网络(例如,级联调制修复神经网络420)作为要填充的区域时,修复神经网络生成修改的数字图像3220,其中与智能扩张的对象掩蔽3218对应的区域填充由修复神经网络生成的像素。如图所示,修改的数字图像3220在与智能扩张的对象掩蔽3218相对应的修复区域中不包括伪影。实际上,修改的数字图像3220提供了逼真的外观图像。
相反,图32B示出当将对象掩蔽3208(例如,未扩展的对象掩蔽)提供给修复神经网络(例如,级联调制修复神经网络420)作为要填充的区域时,修复神经网络生成修改的数字图像3222,其中与智能扩张的对象掩蔽3218对应的区域填充由修复神经网络生成的像素。如图所示,修改的数字图像3222包括与对象掩蔽3208对应的修复区域中的伪影。具体地,在所生成的水中,沿着女孩和事件的背部有伪影。
通过生成智能扩张的对象掩蔽,基于场景的图像编辑系统106在移除对象时提供改进的图像结果。实际上,基于场景的图像编辑系统106利用扩展来移除数字图像中的伪影、色彩流失或其他不期望的错误,但避免移除保留在数字图像中的其他对象的显著部分。因此,基于场景的图像编辑系统106能够在可能的情况下填充被移除的对象留下的洞而不增强当前错误,而无需不必要地替换剩余的其他对象的部分。
如前所述,在一个或多个实施例中,基于场景的图像编辑系统106还利用阴影检测神经网络来检测与数字图像内描绘的干扰对象相关联的阴影。图33至图38示出了根据一个或多个实施例的阴影检测神经网络的图示,该阴影检测神经网络由基于场景的图像编辑系统106用来检测与对象相关联的阴影。
具体地,图33示出了根据一个或多个实施例的阴影检测神经网络3300的概述。实际上,如图33所示,阴影检测神经网络3300通过第一级3304和第二级3310分析输入图像3302。具体地,第一级3304包括实例分割组件3306和对象感知组件3308。此外,第二级3310包括阴影预测组件3312。在一个或多个实施例中,实例分割组件3306包括以上参考图26讨论的神经网络管道的分割神经网络2604。
如图33所示,在分析输入图像3302之后,阴影检测神经网络3300标识其中描绘的对象3314a-3314c和阴影3316a-3316c。此外,阴影检测神经网络3300将对象3314a-3314c与其各自的阴影相关联。例如,阴影检测神经网络3300将对象3314a与阴影3316a相关联,并且类似地将其他对象与阴影关联。因此,当其相关联的对象被选择用于删除、移动或一些其他修改时,阴影检测神经网络3300促进阴影的包含。
图34示出了根据一个或多个实施例的阴影检测神经网络的实例分割组件3400的概述。如图34所示,实例分割组件3400实现实例分割模型3402。如图34所示,实例分割组件3400利用实例分割模型3402来分析输入图像3404,并基于该分析来标识其中描绘的对象3406a-3406c。例如,在一些情况下,基于场景的图像编辑系统106输出针对对象3406a-3406c的对象掩蔽和/或边界框。
图35示出了根据一个或多个实施例的阴影检测神经网络的对象感知组件3500的概述。具体地,图35示出了对应于经由先前实例分割组件在数字图像内检测到的每个对象的输入图像实例3502a-3502c。具体地,每个输入图像实例对应于不同的检测到的对象,并且对应于为该数字图像生成的对象掩蔽和/或边界框。例如,输入图像实例3502a对应于对象3504a,输入图像实例3502b对应于对象3504b,以及输入图像实例3502c对应于对象3504c。因此,输入图像实例3502a-3502c示出了由阴影检测神经网络的实例分割组件提供的分离的对象检测。
在一些实施例中,对于每个检测到的对象,基于场景的图像编辑系统106为阴影检测神经网络的第二级(即,阴影预测组件)生成输入。图35示出了生成针对对象3504a的输入3506的对象感知组件3500。实际上,如图35所示,对象感知组件3500使用输入图像3508、对应于对象3504a的对象掩蔽3510(称为对象感知通道)和对应于对象3504b-3504c的组合对象掩蔽3512(称为对象区分通道)来生成输入3506。例如,在一些实现中,对象感知组件3500组合(例如,连接)输入图像3508、对象掩蔽3510和组合对象掩蔽3512。对象感知组件3500类似地也为其他对象3504b-3504c生成第二级输入(例如,连同输入图像3508一起利用它们各自的对象掩蔽和表示其他对象的组合对象掩蔽)。
在一个或多个实施例中,基于场景的图像编辑系统106(例如,经由对象感知组件3500或阴影检测神经网络的某个其他组件)使用为对象3504b和对象3504c生成的单独对象掩蔽的并集(union)来生成组合对象掩蔽3512。在一些情况下,对象感知组件3500不利用对象区分通道(例如,组合对象掩蔽3512)。相反,对象感知组件3500使用输入图像3508和对象掩蔽3510来生成输入3506。然而,在一些实施例中,使用对象区分通道在阴影检测神经网络的第二级中提供了更好的阴影预测。
图36示出了根据一个或多个实施例的阴影检测神经网络的阴影预测组件3600的概述。如图36所示,阴影检测神经网络向阴影预测组件3600提供由对象感知组件编译的输入,该对象感知组件包括输入图像3602、针对感兴趣对象的对象掩蔽3604和针对其他检测到的对象的组合对象掩蔽3606。阴影预测组件3600利用阴影分割模型3608来生成针对感兴趣对象的第一阴影预测3610和针对其他检测到的对象的第二阴影预测3612。在一个或多个实施例中,第一阴影预测3610和/或第二阴影预测3612包括针对对应阴影的阴影掩蔽(例如,其中阴影掩蔽包括针对阴影的对象掩蔽)。换言之,阴影预测组件3600利用阴影分割模型3608,通过生成针对感兴趣对象的预测的阴影的阴影掩蔽来生成第一阴影预测3610。类似地,阴影预测组件3600利用阴影分割模型3608,通过为针对其他检测到的对象预测的阴影生成组合阴影掩蔽来生成第二阴影预测3612。
基于阴影分割模型3608的输出,阴影预测组件3600提供针对感兴趣对象的对象-阴影对预测3614。换言之,阴影预测组件3600将感兴趣对象与其在输入图像3602内投射的阴影相关联。在一个或多个实施例中,阴影预测组件3600类似地为输入图像3602中描绘的所有其他对象生成对象-阴影对预测。因此,阴影预测组件3600标识在数字图像中描绘的阴影,并将每个阴影与其对应的对象相关联。
在一个或多个实施例中,阴影预测组件3600使用的阴影分割模型3608包括分割神经网络。例如,在一些情况下,阴影分割模型3608包括上面参考图3讨论的检测掩蔽神经网络。作为另一个实施例,阴影分割模型3608包括由下文描述的DeepLabv3语义分割模型:Liang-Chieh Chen等人,Rethinking Atrous Convolution for Semantic ImageSegmentation(针对语义图像分割的再思考Atrous卷积),arXiv:1706.05587,2017,或由下文描述的DeepLab语义分割模型:Liang-Chieh Chen等人,“Deeplab:Semantic ImageSegmentation with Deep Convolutional Nets,Atrous Convolution,and FullyConnected CRFs”(Deeplab:基于深度卷积网络、Atrous卷积和完全连通CRF的语义图像分割),arXiv:1606.00915,2016,两者的全部内容通过引用并入本文。
图37示出了根据一个或多个实施例的阴影检测神经网络3700的架构的概述。具体地,图37示出了阴影检测神经网络3700,其包括参考图34讨论的实例分割组件3400、参考图35讨论的对象感知组件3500、以及参考图36讨论的阴影预测组件3600。此外,图37示出阴影检测神经网络3700生成关于输入图像3702中描绘的每个对象的对象掩蔽、阴影掩蔽和预测。因此,阴影检测神经网络3700输出将数字图像中描绘的每个对象与其阴影相关联的最终预测3704。因此,如图37所示,阴影检测神经网络3700提供端到端神经网络框架,其接收数字图像并输出其中描述的对象和阴影之间的关联。
在一些实现中,阴影检测神经网络3700确定在数字图像内描绘的对象不具有相关联的阴影。实际上,在一些情况下,在利用其各种组件分析数字图像时,阴影检测神经网络3700确定在数字图像内没有描绘与对象相关联的阴影。在一些情况下,基于场景的图像编辑系统106提供指示缺少阴影的反馈。例如,在一些情况下,在确定在数字图像内没有描绘阴影(或不存在与特定对象相关联的阴影)时,基于场景的图像编辑系统106提供用于显示的消息或指示缺少阴影的其他反馈。在一些情况下,基于场景的图像编辑系统106不提供显式反馈,但不自动选择或提供将阴影包括在对象选择内的建议,如下面参考图39A-图39C所讨论的。
在一些实现中,当已经生成对象的对象掩蔽时,基于场景的图像编辑系统106利用阴影检测神经网络的第二级(second stage)来确定与数字图像中描绘的对象相关联的阴影。实际上,图38示出了根据一个或多个实施例的用于使用阴影检测神经网络的第二级来确定与在数字图像中描绘的对象相关联的阴影的图示。
如图38所示,基于场景的图像编辑系统106将输入图像3804提供给阴影检测神经网络的第二级(即,阴影预测模型3802)。此外,基于场景的图像编辑系统106向第二级提供对象掩蔽3806。基于场景的图像编辑系统106利用阴影检测神经网络的第二级来为输入图像3804中描绘的对象的阴影生成阴影掩蔽3808,从而导致对象与输入图像3804内的对象投射的阴影之间的关联(例如,如视觉化3810中所示)。
通过提供对阴影检测神经网络的第二级的直接访问,基于场景的图像编辑系统106在阴影检测过程中提供灵活性。实际上,在某些情况下,已经为数字图像中描绘的对象创建了对象掩蔽。例如,在一些情况下,基于场景的图像编辑系统106实现单独的分割神经网络,以作为单独工作流程的一部分来生成用于数字图像的对象掩蔽。因此,对象的对象掩蔽已经存在,并且基于场景的图像编辑系统106利用先前的工作来确定对象的阴影。因此,基于场景的图像编辑系统106还提供了效率,因为它通过直接访问阴影检测神经网络的阴影预测模型来避免重复工作。
图39A-图39C示出了根据一个或多个实施例的图形用户界面,其由基于场景的图像编辑系统106实现以标识并移除数字图像中描绘的对象的阴影。实际上,如图39A所示,基于场景的图像编辑系统106提供描绘对象3908的数字图像3906,用于在客户端设备的图形用户界面3902内显示。如图进一步所示,对象3908在数字图像3906内投射阴影3910。
在一个或多个实施例中,在接收到数字图像3906时,基于场景的图像编辑系统106利用阴影检测神经网络来分析数字图像3906。具体地,基于场景的图像编辑系统106利用阴影检测神经网络来标识对象3908,标识由对象3908投射的阴影3910,并且进一步将阴影3910与对象3908相关联。如前所述,在一些实现中,基于场景的图像编辑系统106还利用阴影检测神经网络来为对象3908和阴影3910生成对象掩蔽。
如先前参考图26所讨论的,在一个或多个实施例中,基于场景的图像编辑系统106标识由数字图像内的对象投射的阴影,作为用于标识数字图像内干扰对象的神经网络管道的一部分。例如,在一些情况下,基于场景的图像编辑系统106使用分割神经网络来标识数字图像的对象,使用干扰物检测神经网络来将一个或多个对象分类为干扰对象,使用阴影检测神经网络来标识阴影并将阴影与其对应的对象相关联,以及使用修复神经网络来生成内容填充以替换被移除的对象(及其阴影)。在一些情况下,响应于接收到数字图像,基于场景的图像编辑系统106自动实现神经网络管道。
实际上,如图39B所示,基于场景的图像编辑系统106提供视觉指示3912以在图形用户界面3902内显示,视觉指示3912指示选择要移除的对象3908。如进一步示出的,基于场景的图像编辑系统106提供视觉指示3914以供显示,视觉指示3914指示选择要移除的阴影3910。如所建议的,在一些情况下,基于场景的图像编辑系统106自动(例如,在确定对象3908是干扰对象时)选择对象3908和阴影3910以用于删除。然而,在一些实现中,基于场景的图像编辑系统106响应于接收到一个或多个用户交互来选择对象3908和/或阴影3910。
例如,在一些情况下,基于场景的图像编辑系统106接收用户对对象3908的选择,并自动将阴影3910添加到该选择。在一些实现中,基于场景的图像编辑系统106接收用户对对象3908的选择,并提供用于在图形用户界面3902中显示的建议,其建议将阴影3910添加到该选择。响应于接收到附加的用户交互,基于场景的图像编辑系统106添加阴影3910。
如图39B进一步所示,基于场景的图像编辑系统106提供移除选项3916以在图形用户界面3902内显示。如图39C所示,在接收到移除选项3916的选择时,基于场景的图像编辑系统106从数字图像移除对象3908和阴影3910。如进一步示出的,基于场景的图像编辑系统106用内容填充3918替换对象3908,并用内容填充3920替换阴影3910。换言之,基于场景的图像编辑系统106在移除对象3908和阴影3910时分别展示内容填充3918和内容填充3920。
尽管图39A-图39C示出了针对删除操作实现阴影检测,但是应当注意,在各种实施例中,基于场景的图像编辑系统106实现对其他操作(例如,移动操作)的阴影检测。此外,尽管图39A-图39C关于从数字图像移除干扰对象进行了讨论,但是基于场景的图像编辑系统106在本文描述的其他特征的上下文中实现阴影检测。例如,在一些情况下,基于场景的图像编辑系统106实现关于用户交互直接以对象为目标的对象感知修改的阴影检测。因此,基于场景的图像编辑系统106通过分割对象及其阴影并在接收用户交互之前生成相应的内容填充来修改对象以允许与数字图像的无缝交互,从而允许与数字图像的无缝交互,从而为对象感知修改提供进一步的优势。
通过标识由数字图像内的对象投射的阴影,与传统系统相比,基于场景的图像编辑系统106提供了改进的灵活性。实际上,基于场景的图像编辑系统106灵活地标识数字图像内的对象以及数字图像中描绘的那些对象的其他方面(例如,它们的阴影)。因此,基于场景的图像编辑系统106在移除或移动对象时提供更好的图像结果,因为它适应这些其他方面。这进一步导致减少了用户与图形用户界面的交互,因为基于场景的图像编辑系统106不需要针对移动或移除对象的阴影的用户交互(例如,标识阴影像素和/或将阴影像素绑定到对象的用户交互)。
在一些实现中,基于场景的图像编辑系统106实现一个或多个附加特征以促进数字图像的修改。在一些实施例中,这些特征提供了附加的基于用户界面的效率,因为它们减少了在图像编辑的上下文中执行某些动作通常需要的与用户界面的用户交互的量。在一些情况下,这些特征还有助于在具有有限屏幕空间的计算设备上部署基于场景的图像编辑系统106,因为它们有效地使用可用空间来帮助图像修改,而不会用不必要的视觉元素拥挤显示器。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106基于二维(“2D”)图像场景的三维(“3D”)特征来提供对二维图像的编辑。具体地,基于场景的图像编辑系统106利用多个模型处理二维图像以确定对二维图像中的二维场景的三维理解。基于场景的图像编辑系统106还提供用于编辑二维图像的工具,例如通过在二维图像内移动对象或将对象插入到二维图像中。
图40示出了基于场景的图像编辑系统106通过根据二维图像场景的三维特性放置二维对象来修改二维图像的概述。具体地,基于场景的图像编辑系统106提供用于编辑二维图像4000的工具。例如,基于场景的图像编辑系统106提供用于编辑二维图像4000内的对象或将对象插入到二维图像4000中并基于编辑的图像生成阴影的工具。
在一个或多个实施例中,基于场景的图像编辑系统106检测将二维对象4002放置在二维图像4000内的选定位置的请求。例如,基于场景的图像编辑系统106确定二维对象4002包括在二维图像4000内检测到的对象。在附加实施例中,基于场景的图像编辑系统106确定二维对象4002包括被插入到二维图像4000中的对象。
根据一个或多个实施例,二维图像4000中的场景包括一个或多个前景和/或一个或多个背景对象。作为示例,图40的二维图像4000在包括风景俯瞰的背景下包括诸如汽车的前景对象。在一些实施例中,二维图像包括基于场景的图像编辑系统106确定为背景的一部分并且没有前景对象的一个或多个对象。
在一个或多个实施例中,结合编辑二维图像4000,基于场景的图像编辑系统106处理二维图像4000以获得对二维图像4000中的场景的三维理解。例如,基于场景的图像编辑系统106确定二维图像4000中的场景的三维特性4004。在一些实施例中,基于场景的图像编辑系统106通过确定二维图像4000中的对象在三维空间中的相对位置来确定三维特性4004。为了说明,基于场景的图像编辑系统106通过估计二维图像4000中的像素的深度值来确定三维特性4004。在附加实施例中,基于场景的图像编辑系统106生成表示二维图像4000中的场景的三维网格(或多个三维网格)。
根据一个或多个实施例,如图40所示,基于场景的图像编辑系统106利用三维特性4004来生成在选定位置处包括二维对象4002的修改的二维图像4006。具体地,基于场景的图像编辑系统106利用三维特性4004来确定相对于一个或多个其他对象放置二维图像的位置,并根据对场景的三维理解来生成逼真的阴影。例如,基于场景的图像编辑系统106利用三维特性4004来确定对象和场景网格,并确定对象相对于场景中的一个或多个其他对象在三维空间中的位置。
此外,基于场景的图像编辑系统106基于二维对象4002相对于场景中的其他(多个)对象的位置来生成修改的二维图像4006以包括一个或多个阴影。具体地,基于场景的图像编辑系统106利用对象和场景的三维特性4004以及图像照明参数来生成阴影图。此外,基于场景的图像编辑系统106通过根据二维对象4002和场景中的一个或多个其他对象(例如,背景对象)的相对位置合并阴影图来对修改的二维图像4006进行渲染,以确定修改的二维图像4006中的一个或多个阴影的正确位置、方向和形状。因此,基于场景的图像编辑系统106根据自动确定的二维场景的三维特性为二维图像的编辑提供对象的准确移动、插入和阴影。
在一个或多个实施例中,基于场景的图像编辑系统106提供了对在数字图像中提供阴影生成和编辑的传统系统的改进。例如,与在二维图像中使用基于图像的阴影生成的传统系统相比,基于场景的图像编辑系统106利用对二维图像中的内容的三维理解来生成阴影。具体地,基于场景的图像编辑系统106可以在三维空间中重构二维图像的场景,以用于确定对二维图像中的内容的修改是否以及如何影响场景内的阴影。为了说明,基于场景的图像编辑系统106在根据场景的三维表示在二维图像内移动现有和虚拟对象的同时提供可靠的阴影交互。
通过在二维图像中生成二维场景的三维表示,基于场景的图像编辑系统106根据对内容的三维理解来实时生成阴影以在图形用户界面内呈现。具体地,与利用深度学习来基于二维图像中的修改内容生成阴影的传统系统不同,当用户与场景交互时,基于场景的图像编辑系统106提供更新后的阴影。因此,基于场景的图像编辑系统106可以根据前景和背景对象的三维上下文(例如,根据对象的估计深度和位置)向用户提供对二维图像内的阴影的修改的准确渲染(rendering)。此外,通过生成代理对象来表示二维图像的场景中的现有对象,基于场景的图像编辑系统可以根据对场景中的相应对象所做的改变来提供高效和准确的阴影生成。
如上所述,基于场景的图像编辑系统106利用多个模型来基于对象在二维图像的场景内的移动或插入来修改二维图像。具体地,基于场景的图像编辑系统106利用多个模型来提取二维图像的特征并确定二维图像的照明和结构。图41示出了其中基于场景的图像编辑系统106根据用户交互使用多个模型来编辑二维图像以将对象放置在二维图像的场景内的实施例。更具体地,基于场景的图像编辑系统106利用多个模型来根据从二维图像提取的照明和三维特性来生成更新后的二维阴影。
如图41所示,基于场景的图像编辑系统106可以利用各种机器学习模型或神经网络来生成修改的数字图像,其描绘根据从二维图像提取的三维场景建模的操纵阴影。例如,图41示出了数字图像4102。如图所示,基于场景的图像编辑系统106利用深度估计/细化模型4104来生成和/或细化数字图像4102的深度图。为了说明,基于场景的图像编辑系统106利用深度估计/细化模型4104来确定数字图像4102中描绘的每像素深度值。
在一个或多个实施例中,深度估计/细化模型4104包括深度估计神经网络,以生成深度图,该深度图包括数字图像4102相对于数字图像4102的视图的每像素深度值。具体地,每像素深度值基于数字图像4102中的对象的相对位置来确定与数字图像4102的视点(例如,相机视点)的相对深度/距离。为了说明,深度估计模型包括具有卷积神经网络结构的单目深度估计模型(例如,单图像深度估计模型或边)。备选地,深度估计模型利用变换器模型和/或利用自我注意力层来生成深度图。例如,在一个或多个实施例中,基于场景的图像编辑系统106利用如下文描述的深度估计模型:“Generating Depth Images Utilizing AMachine-Learning Model Built From Mixed Digital Image Sources And MultipleLoss Function Sets”(利用混合数字图像源和多损失函数集建立的机器学习模型生成深度图像),2021年2月26日提交的美国专利申请第17/186,436号,其通过引用整体并入本文。在一个或多个实施例中,深度估计/细化模型4104通过针对数字图像4102中的每个像素确定在数字图像4102中检测到的对象的相对距离/深度来生成深度图。
此外,在一个或多个实施例中,深度估计/细化模型包括细化数字图像的深度图的细化模型4102。具体地,细化模型利用数字图像4102的图像分割模型来生成(或以其他方式获得)数字图像4102的分割掩蔽。为了说明,图像分割模型包括被训练成从数字图像中分割数字对象的卷积神经网络。在一个或多个实施例中,基于场景的图像编辑系统利用如下文描述的图像分割模型:“Deep Salient Content Neural Networks for EfficientDigital Object Segmentation”(用于高效数字对象分割的深度突出内容神经网络),2017年10月31日提交的美国专利申请公开第2019/0130229号,其通过引用整体并入本文。此外,在一个或多个实施例中,细化模型包括所描述的模型。实际上,在一个或多个实现中,基于场景的图像编辑系统106利用下文描述的方法:“UTILIZING MACHINE LEARNING MODELS TOGENERATE REFINED DEPTH MAPS WITH SEGMENTATION MASK GUIDANCE”(利用机器学习模型生成具有分割掩蔽指导的精细化深度图),2022年4月12日提交的美国专利申请第17/658,873号,其通过引用整体并入本文。
图41还示出了基于场景的图像编辑系统106利用三维场景表示模型4106来生成数字图像4102中描绘的场景的三维场景表示4108。在一个或多个实施例中,三维场景表示模型4106包括用于生成表示数字图像4102中的对象的一个或多个三维网格的一个或多个神经网络。例如,三维场景表示模型4106利用深度图来生成表示数字图像4102中的场景的一个或多个三维网格。为了说明,三维场景表示模型4106根据特定网格分辨率(例如,所选择的密度或顶点/面的数量),利用深度图的每像素深度值来生成顶点并将边与三维空间中的坐标连接以在三维空间中表示数字图像4102的场景。
在一些实施例中,基于场景的图像编辑系统106利用一个或多个神经网络来生成表示数字图像4102中的一个或多个对象的三维网格。例如,基于场景的图像编辑系统106根据二维图像的像素深度值和估计的相机参数生成包括镶嵌的三维网格。为了说明,基于场景的图像编辑系统106确定三维网格和数字图像4102的像素之间的映射(例如,投影),用于确定结合编辑数字图像4102修改三维网格的哪些部分。在备选实施例中,基于场景的图像编辑系统106利用来自数字图像4102的基于密度信息的深度位移信息和/或自适应采样来生成表示数字图像4102的内容的自适应三维网格。
在一个或多个实施例中,基于场景的图像编辑系统106检测数字图像4102中的对象。具体地,结合经由三维场景表示模型4106生成三维场景表示4108。例如,基于场景的图像编辑系统106利用对象检测模型4110来检测数字图像4102中的前景和/或背景对象(例如,经由由上述图像分割模型生成的分割掩蔽)。在一个或多个实施例中,对象检测模型4110包括图像分割模型或作为图像分割模型的一部分。因此,基于场景的图像编辑系统106利用对象检测模型4110来向三维场景表示模型4106提供与数字图像4102中的各种对象相关联的信息。三维场景表示模型4106利用对象信息和深度图来生成表示数字图像4102中的一个或多个检测到的对象的一个或多个三维网格。因此,三维场景表示模型4106根据由深度估计/细化模型4104生成的深度图,经由表示数字图像4102的内容的一个或多个三维网格来生成三维场景表示4108。
此外,在一个或多个实施例中,基于场景的图像编辑系统106估计数字图像4102的相机/照明参数。例如,基于场景的图像编辑系统106利用从数字图像4102提取照明特征4114和相机参数4116的照明/相机模型4112。为了说明,基于场景的图像编辑系统106利用照明/相机模型4112来确定数字图像4102中的一个或多个光源的一个或多个值或参数。此外,基于场景的图像编辑系统106利用照明/相机模型4112来基于数字图像4102中表示的视图来确定一个或多个相机参数。在一个或多个实施例中,基于场景的图像编辑系统106利用如下文描述的相机参数估计神经网络:2019年1月25日提交的,题为“UTILIZING ACRITICAL EDGE DETECTION NEURAL NETWORK AND A GEOMETRIC MODEL TO DETERMINECAMERA PARAMETERS FROM A SINGLE DIGITAL IMAGE”(利用临界边缘检测神经网络和几何模型从单幅数字图像确定相机参数)的美国专利第11,094,083号,其通过引用整体并入本文。在附加实施例中,基于场景的图像编辑系统106从与数字图像4102相关联的元数据中提取一个或多个相机参数。
根据一个或多个实施例,基于场景的图像编辑系统106检测与客户端设备的交互以修改数字图像4102。具体地,基于场景的图像编辑系统106检测与数字图像4102内的对象相关的选定位置4118的用户交互。例如,基于场景的图像编辑系统106检测在数字图像4102内插入对象或移动对象的用户交互。为了说明,选定位置4118的用户交互将对象从数字图像4102中的一个位置移动到另一个位置。备选地,选定位置4118的用户交互在数字图像4102中的选定位置处插入对象。
在一个或多个实施例中,基于场景的图像编辑系统106利用阴影生成模型4120来基于数字图像4102生成修改的数字图像4122。具体地,阴影生成模型4120通过根据对象的选定位置生成更新后的阴影来生成修改的数字图像4122。为了说明,阴影生成模型4120根据三维场景表示4108、照明特征4114和对应于数字图像4102的相机参数4116来生成多个阴影图。此外,基于场景的图像编辑系统106利用阴影生成模型4120来基于阴影图生成修改的数字图像4122。
在附加实施例中,基于场景的图像编辑系统106利用修复模型4124来生成修改的数字图像4122。具体地,响应于将对象从一个位置移动到另一个位置,基于场景的图像编辑系统106利用修复模型4124来在修改的数字图像4122中生成一个或多个修复区域。例如,基于场景的图像编辑系统106利用修复模型4124,来填充与对象在三维空间中的初始位置相对应的三维网格的一部分。基于场景的图像编辑系统106还利用修复模型4124(或另一修复模型)来在二维空间中生成填充修改的数字图像4122的相应部分。在一个或多个实施例中,基于场景的图像编辑系统106利用如下文所述的修复神经网络:2022年5月13日提交的,题为“OBJECT CLASS INPAINTING IN DIGITAL IMAGES UTILIZING CLASS-SPECIFICINPAINTING NEURAL NETWORKS”(基于特定类修复神经网络的数字图像目标类别修复)的美国专利申请第17/663,317号,或者2022年7月27日提交的,题为“GENERATING NEURALNETWORK BASED PERCEPTUAL ARTIFACT SEGMENTATIONS IN MODIFIED PORTIONS OF ADIGITAL IMAGE”(基于数字图像的修改部分中的感知伪影生成分割神经网络)的美国专利申请第17/815,409号,其通过引用整体并入本文。
如上所述,基于场景的图像编辑系统106利用多个阴影图修改二维图像。图42示出了基于场景的图像编辑系统106通过将一个或多个对象放置在二维图像的场景内来编辑二维图像。具体地,图42示出了基于场景的图像编辑系统106生成与被放置在二维图像内的对象的不同的对象类型相对应的多个阴影图。
在一个或多个实施例中,阴影图包括用于投影,该投影在用于确定是否以及在哪里生成在三维空间中的一个或多个阴影的过程中使用。例如,阴影图包括指示特定对象是否根据三维空间内的一个或多个光源在一个或多个方向上投射阴影的数据。因此,基于场景的图像编辑系统106利用阴影图来根据与像素相关联的深度值(例如,表面在三维空间中的对应三维位置)、光源的位置和方向、和/或一个或多个中间对象,来确定在基于场景的渲染的二维图像中的特定像素是否从光源可见。因此,基于场景的图像编辑系统106利用多个阴影图来根据场景中(多个)对象和/或(多个)光源的位置来生成阴影。
在一个或多个实施例中,基于场景的图像编辑系统106处理包括场景中的一个或多个前景和/或背景对象的二维图像4200。例如,基于场景的图像编辑系统106利用一个或多个图像处理模型(例如,对象检测模型)来从二维图像4200提取背景4202。此外,基于场景的图像编辑系统106利用一个或多个图像处理模型来从二维图像4200提取前景对象4204。为了说明,基于场景的图像编辑系统106确定二维图像4200的前景对象4204包括大型车辆,并且背景4202包括树木成排的道路。
在附加实施例中,基于场景的图像编辑系统106还结合编辑二维图像4200来确定用于插入到二维图像4200中的一个或多个附加对象。作为示例,图42示出了包括从分离的文件或程序导入的图形的插入对象4206。为了说明,插入对象4206包括具有先前生成的三维网格的三维模型。
根据一个或多个实施例,基于场景的图像编辑系统106基于对应于从二维图像4200提取的数据的多个阴影类型来生成多个阴影图。例如,基于场景的图像编辑系统106确定单独的前景和背景阴影图。此外,基于场景的图像编辑系统106基于插入到二维图像4200中的任何对象来生成单独的阴影图。
例如,图42示出了基于场景的图像编辑系统106生成对应于背景4202的估计阴影图4210。具体地,基于场景的图像编辑系统106生成估计阴影图4210以表示阴影,阴影与一个或多个背景对象相对应和/或与对应于背景4202的相机外对象相对应。为了说明,背景4202包括在二维图像4200内不可见(或仅部分可见)的、排列在道路一侧的树所产生的阴影。此外,在一个或多个实施例中,基于场景的图像编辑系统106为地面构造或作为背景风景的一部分的其他对象(例如山)产生的阴影生成估计阴影图4210。
根据一个或多个实施例,基于场景的图像编辑系统106通过确定二维图像4200中指示阴影部分的像素来生成估计阴影图4210。具体地,基于场景的图像编辑系统106提取指示二维图像4200的部分的像素值因阴影而改变的发光值(或其他基于照明的值)。基于场景的图像编辑系统106利用提取的值,来标识被背景阴影覆盖的二维图像4200的特定区域。此外,基于场景的图像编辑系统106利用与二维图像4200相对应的相机参数(例如,相机位置)来生成针对二维图像4200的阴影区域的阴影图(例如,基于来自相机位置的结合背景深度值或背景网格的投射射线)。在一些实施例中,基于场景的图像编辑系统106以估计阴影图4210作为纹理来渲染背景网格,其中基于场景的图像编辑系统106将被掩蔽的区域写入估计阴影图4210作为无限远处的遮挡像素。
在一个或多个实施例中,基于场景的图像编辑系统106还为前景对象4204生成单独的阴影图。具体地,在二维图像4200中检测到的前景对象4204可以包括基于前景对象4204的可见部分的部分对象。例如,当确定前景对象4204的三维特性时,基于场景的图像编辑系统106确定可见部分的三维特性。在一些实施例中,基于场景的图像编辑系统106生成表示前景对象4204的可见部分的部分三维网格。
因此,在一个或多个实施例中,基于场景的图像编辑系统106生成阴影代理4208以包括前景对象4204的更完整的表示。例如,基于场景的图像编辑系统106生成阴影代理4208,以通过估计前景对象4204的完整(或更完整)三维形状来确定由前景对象4204投射的一个或多个阴影。在一些实施例中,如下面参考图47A-图47B更详细地描述的,基于场景的图像编辑系统106生成阴影代理4208以替换二维图像4200的场景内对应于前景对象4204的一个或多个阴影。
在至少一些实施例中,基于场景的图像编辑系统106利用阴影代理4208为前景对象4204生成代理阴影图4212。具体地,基于场景的图像编辑系统106生成代理阴影图4212,用于生成与阴影代理4208相关的一个或多个阴影。为了说明,基于场景的图像编辑系统106基于阴影代理4208而不是基于前景对象4204来生成代理阴影图4212以包括一个或多个阴影。结合生成代理阴影图4212,在一个或多个实施例中,基于场景的图像编辑系统106移除由前景对象4204生成的一个或多个阴影。因此,基于场景的图像编辑系统106使用代理阴影图4212作为前景对象4204的原始阴影的替换。
图42还示出了基于场景的图像编辑系统106生成表示插入对象4206的对象阴影图4214。具体地,基于场景的图像编辑系统106生成对象阴影图4214以表示插入到二维图像4200中的任何对象,其中基于场景的图像编辑系统106已经为该二维图像4200确定了先前生成的三维网格(或已经存在的三维网格)。例如,基于场景的图像编辑系统106确定插入到二维图像4200中的一个或多个对象具有从一个或多个其他文件或应用导入的对应三维网格。
因此,如上所述,基于场景的图像编辑系统106生成与多个不同对象类型或阴影类型相关的每个分离的阴影图。例如,不同的阴影图包括用于基于对应的对象类型生成阴影的不同信息。为了说明,基于场景的图像编辑系统106确定每个对象类型在二维图像4200内是否可见、被照亮、投射阴影或接收阴影。基于场景的图像编辑系统106还确定每个对象类型是否从一个或多个其他特定对象类型接收阴影。
作为示例,基于场景的图像编辑系统106确定背景对象(例如,背景4202)是可见的、未被照亮的,并且不投射阴影(例如,由于是背景的一部分)。此外,基于场景的图像编辑系统106确定背景对象从阴影代理和插入对象接收阴影。在一个或多个实施例中,基于场景的图像编辑系统106确定前景对象(例如,前景对象4204)是可见的、未被照亮的,并且不投射阴影(例如,由于具有不完整的三维特性数据)。基于场景的图像编辑系统106还确定前景对象从插入对象和估计阴影图4210接收阴影。在附加实施例中,基于场景的图像编辑系统106还确定插入对象(例如,插入对象4206)是可见的、被照亮的、投射阴影并且从所有其他阴影源接收阴影。
在一个或多个实施例中,尽管图42示出了每个对象类型的各个对象,但是基于场景的图像编辑系统106备选地确定一个或多个对象类型具有多个对象。例如,基于场景的图像编辑系统106确定二维图像包括多于一个的前景对象和/或多于一个的插入对象。因此,基于场景的图像编辑系统106生成与对应类型的所有对象相关的每个阴影图。为了说明,基于场景的图像编辑系统106生成与多个前景对象相关的代理阴影图或与多个插入对象相关的对象阴影图。
根据一个或多个实施例,响应于为与编辑二维图像相关的多种对象类型生成多个阴影图,基于场景的图像编辑系统106利用阴影图来生成修改的二维图像。例如,基于场景的图像编辑系统106利用与二维图像相关联的相机和照明信息来根据阴影图在修改的二维图像中生成逼真的阴影。图43示出了基于场景的图像编辑系统106确定与二维图像4300相关联的照明信息的图示。
具体地,图43示出了基于场景的图像编辑系统106处理二维图像4300以确定基于图像的照明参数4302和光源4304。例如,基于场景的图像编辑系统106利用一个或多个图像处理模型来估计光源4304的位置、亮度、颜色和/或色调。此外,基于场景的图像编辑系统106利用一个或多个图像处理模型来确定相对于光源4304的相机位置/位置、焦距或其他相机参数。在一个或多个实施例中,基于场景的图像编辑系统106利用如下文所述的机器学习模型:2019年9月3日提交的,题为“DYNAMICALLY ESTIMATING LIGHT-SOURCE-SPECIFICPARAMETERS FOR DIGITAL IMAGES USING A NEURAL NETWORK”(使用神经网络动态估计数字图像的光源特定参数)的美国专利申请第16/558,975号,其通过引用整体并入本文。
根据一个或多个实施例,响应于基于二维图像确定一个或多个光源的照明参数,基于场景的图像编辑系统106将一个或多个对应的光源插入到具有二维图像中场景的三维表示的三维空间中。具体地,基于场景的图像编辑系统106利用估计的光源位置、估计的光源方向、估计的光源强度和估计的光源类型(例如,点源、线源、面源、基于图像的光源或全局源)来将光源插入到三维空间中。为了说明,基于场景的图像编辑系统106在特定位置处插入光源,并且具有从二维图像4300估计的特定参数,以向多个三维对象(例如,前景对象和背景对象)提供光,以用于根据基于图像的照明参数4302和估计的相机参数进行渲染。
结合确定针对数字图像中的一个或多个光源的照明参数和/或数字图像的一个或多个相机参数,基于场景的图像编辑系统106响应于用户输入来渲染修改的数字图像。图44示出了基于场景的图像编辑系统106基于在二维图像(例如,图42的二维图像4200)内插入或修改的一个或多个对象来生成修改的二维图像4400。此外,图44示出了基于场景的图像编辑系统106利用二维图像中的照明数据、阴影数据和内容的三维特性来生成修改的二维图像4400。
根据一个或多个实施例,基于场景的图像编辑系统106利用渲染模型4402来处理来自二维图像以及与该二维图像相关联的一个或多个对象的数据。例如,基于场景的图像编辑系统106利用包括三维渲染模型的渲染模型4402,以基于表示二维图像中的一个或多个对象的三维网格4404,来生成修改的二维图像4400。此外,基于场景的图像编辑系统106利用渲染模型4402来根据阴影图4406和照明参数4408生成一个或多个对象的阴影。因此,基于场景的图像编辑系统106利用三维网格4404、阴影图4406和照明参数4408重构二维图像中的场景。
在一个或多个实施例中,基于场景的图像编辑系统106利用阴影图来为一个或多个前景对象和/或一个或多个插入对象生成一个或多个阴影。具体地,基于场景的图像编辑系统106利用照明参数(例如,光源位置)来合并阴影图以用于合成修改的二维图像4400。例如,基于场景的图像编辑系统106利用渲染模型4402,根据照明参数4408基于三维网格4404的对象类型和相对位置来合并阴影图4406。为了说明,如上所述,基于场景的图像编辑系统106合并阴影图4406以创建前景阴影图和背景阴影图。在一些实施例中,基于场景的图像编辑系统106还合并阴影图4406以生成一个或多个插入对象的插入阴影图。
作为示例,基于场景的图像编辑系统106通过合并对应于二维图像的背景的估计阴影图和对应于插入对象的对象阴影图来生成前景阴影图。具体地,基于场景的图像编辑系统106将前景阴影图生成为:FOREGROUND(x)=min(INSERTED(x),SHADOWMASK(x)),其中OBJECT表示对象阴影图,SHADOWMASK表示估计阴影图,以及x表示特定像素到光源的距离。此外,基于场景的图像编辑系统106将背景阴影图生成为:BACKGROUND(x)=max(1-FOREGROUND(x),min(OBJECT(x),PROXY(x))),其中PROXY表示代理阴影图。此外,基于场景的图像编辑系统106将插入阴影图生成为:INSERTED(x)=min(FOREGROUND(x),PROXY(x))。通过如上所述合并阴影图,基于场景的图像编辑系统106因此检测第一对象是否在光源和第二对象之间,以用于确定如何对第一对象和/或第二对象施加阴影。
在一个或多个实施例中,当根据每个对象的对象类型/类别对场景中的各个对象施加阴影时,基于场景的图像编辑系统106应用合并的阴影图。具体地,如上所述,基于场景的图像编辑系统106通过采样对象阴影图以计算光强度,以使用基于物理的渲染阴影器对插入对象施加阴影。在一个或多个实施例中,基于场景的图像编辑系统106不在最终彩色输出中渲染代理对象(例如,在修改的二维图像4400中隐藏代理对象)。此外,基于场景的图像编辑系统106通过以下方式生成背景和前景对象颜色:COLOR(x)=(SHADOW_FACTOR(x))*TEXTURE(x)+(1-SHADOW_FACTOR(x))*SHADOW_COLOR。SHADOW_FACTOR是基于场景的图像编辑系统106通过对适当的阴影图进行采样来生成的值,采样半径越大,产生的阴影越柔和。此外,SHADOW_COLOR表示基于场景的图像编辑系统106经由阴影估计模型或基于用户输入确定的环境光。TEXTURE表示根据二维图像中的对应像素值应用于三维网格4404的纹理。
尽管上述实施例包括基于场景的图像编辑系统106合并用于背景的阴影图、阴影代理和用于数字图像的插入对象,但在一些实施例中,基于场景的图像编辑系统106生成并合并上述阴影图的组合的子集。例如,在一些实施例中,基于场景的图像编辑系统106生成基于二维图像的背景的估计阴影图和基于前景对象的代理三维网格的代理阴影图,而不生成用于插入对象的阴影图(例如,响应于确定二维图像不具有任何插入对象)。基于场景的图像编辑系统106合并估计阴影图和代理阴影图以生成修改的二维图像。备选地,基于场景的图像编辑系统106合并一个或多个插入对象的估计阴影图和阴影图,而不使用代理阴影图(例如,响应于确定二维图像不具有任何其他前景对象)。因此,基于场景的图像编辑系统106可以利用上述公式来根据二维图像中的特定对象来合并和应用针对不同对象类型的不同阴影图。
此外,基于场景的图像编辑系统106利用照明参数4408来确定修改的二维图像4400的场景中的对象的照明和着色。例如,当渲染修改的二维图像4400时,基于场景的图像编辑系统106基于照明参数4408和三维网格4404来确定环境照明、环境遮挡、反射和/或其他效果。在一个或多个实施例中,基于场景的图像编辑系统106通过对二维图像的副本进行模糊、将二维图像的模糊副本包裹在三维网格4404周围(例如,生成围绕场景的360度环境)并且渲染所产生的场景来确定环境照明。在备选实施例中,基于场景的图像编辑系统106利用一个或多个神经网络来确定来自场景的一个或多个隐藏/相机外部分的照明,以在渲染修改的二维图像4400期间使用。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106提供二维图像中的对象分割。例如,基于场景的图像编辑系统106利用对象分割来标识前景/背景对象和/或用于生成与前景/背景对象相对应的三维网格。图45示出了基于场景的图像编辑系统106生成语义图以指示二维图像内的单独对象,以在二维图像的场景的对应三维表示中生成一个或多个二维对象网格的概况。
如图45所示,基于场景的图像编辑系统106确定二维图像4500。例如,二维图像4500包括多个对象--例如,前景区域中的一个或多个对象和/或背景区域中的一个或多个对象。在一个或多个实施例中,基于场景的图像编辑系统106利用语义分割神经网络(例如,对象检测模型、深度学习模型)来基于二维图像4500中检测到的对象将二维图像4500的像素自动标记为对象分类。在各种实施例中,基于场景的图像编辑系统106利用各种模型或架构来确定对象分类和图像分割,如前所述。此外,基于场景的图像编辑系统106生成包括二维图像4500的像素的对象分类的语义图4502。
在一个或多个实施例中,基于场景的图像编辑系统106利用语义图4502来生成分割的三维网格4504。具体地,基于场景的图像编辑系统106利用二维图像4500中的像素的对象分类来确定与二维图像4500中的对象相对应的三维网格的部分。例如,基于场景的图像编辑系统106利用二维图像4500和表示二维图像4500的三维网格之间的映射,来确定三维网格的各部分的对象分类。为了说明,基于场景的图像编辑系统106基于二维图像4500和二维图像4500之间的映射来确定与在二维图像4500中检测到的特定对象(例如,前景对象)相对应的三维网格的特定顶点。
在一个或多个实施例中,响应于确定与二维图像相关联三维网格的不同部分对应于不同对象,基于场景的图像编辑系统106分割三维网格。具体地,基于场景的图像编辑系统106利用与三维网格的部分相关联的对象分类信息,来将三维网格分离成多个分离的三维对象网格。例如,基于场景的图像编辑系统106确定三维网格的一部分对应于二维图像4500中的汽车,并从三维网格的其余部分分离对应于汽车的三维网格的部分。
因此,在一个或多个实施例中,基于场景的图像编辑系统106将三维网格分割成对应于二维图像的两个或更多个分离网格。为了说明,基于场景的图像编辑系统106通过将二维图像4500分离成场景中的多个分离的三维对象网格,来生成分割的三维网格4504。例如,基于场景的图像编辑系统106生成对应于汽车的三维对象网格、对应于道路的三维对象网格、对应于一个或多个树木组的一个或多个三维对象网格等。
在附加实施例中,基于场景的图像编辑系统106基于二维图像中的对象子集来分割三维网格。为了说明,基于场景的图像编辑系统106确定二维图像4500中用于分割三维网格的一个或多个对象。例如,基于场景的图像编辑系统106确定二维图像4500的前景中的一个或多个对象以生成分离的三维对象网格。在一些实施例中,基于场景的图像编辑系统106确定用于生成分离的三维对象网格的对象的突出度(例如,比例大小)。在一个或多个实施例中,基于场景的图像编辑系统106响应于对一个或多个对象的选择来确定一个或多个对象(例如,经由显示二维图像4500的图形用户界面手动选择二维图像4500中的汽车)。备选地,基于场景的图像编辑系统106确定对象属于前景还是背景,并且仅为前景对象生成分离的网格。
根据一个或多个实施例,基于场景的图像编辑系统106根据数字图像的估计三维特性提供用于编辑二维数字图像的工具。图46A-图46C示出了用于基于所生成的二维图像的三维表示来编辑二维图像的客户端设备的图形用户界面。例如,基于场景的图像编辑系统106提供用于在二维图像内移动对象和/或将对象插入(例如,导入)到二维图像中的工具。
在一个或多个实施例中,如图46A所示,客户端设备显示用于在客户端应用内编辑的二维图像4600a。例如,客户端应用包括数字图像编辑应用,其包括用于生成数字图像或对数字图像执行各种修改的多个工具。因此,客户端设备显示二维图像4600a,以通过与二维图像4600a中的一个或多个对象的交互进行修改。
结合编辑二维图像4600a,基于场景的图像编辑系统106确定二维图像4600a中的场景的三维特性。例如,基于场景的图像编辑系统106利用一个或多个神经网络来生成与二维图像4600a的场景中的对象相对应的一个或多个三维网格。为了说明,基于场景的图像编辑系统106生成表示场景的背景中的多个背景对象的第一三维网格。此外,基于场景的图像编辑系统106生成表示在二维图像4600a的场景内的第一位置处的前景对象4602a的第二三维网格(例如,通过从第一三维网格分割第二三维网格)。在一些实施例中,基于场景的图像编辑系统106生成与一个或多个附加检测到的前景对象(例如,二维图像4600a中示出的栅栏的一个或多个部分)相对应的一个或多个附加三维网格。
根据一个或多个实施例,响应于经由客户端设备的图形用户界面选择二维图像4600a中的对象的输入,基于场景的图像编辑系统106提供用于将所选对象放置在二维图像4600a内的一个或多个选项。具体地,客户端设备在客户端应用内提供工具,通过该工具,用户可以选择在二维图像4600a内移动对象。例如,响应于对前景对象4602a的选择,基于场景的图像编辑系统106选择与前景对象4602a对应的三维网格。为了说明,响应于该选择,基于场景的图像编辑系统106选择与前景对象4602a的三维网格相对应的多个顶点。
在一个或多个实施例中,基于场景的图像编辑系统106通过基于经由客户端设备的用户输入改变所选对象的位置来修改二维图像4600a。例如,响应于将前景对象4602a从第一位置(例如,前景对象4602a的原始位置)移动到第二位置的请求,基于场景的图像编辑系统106将对应的三维网格在三维空间中的位置从第一位置修改为第二位置。此外,基于场景的图像编辑系统106响应于移动所选对象来更新在客户端设备的图形用户界面内显示的二维图像4600a。
图46B示出了客户端设备基于从图46A所示的第一位置到第二位置的移动的前景对象4602b来显示修改的二维图像4600b。具体地,通过在二维图像中生成对应于(多个)前景对象和(多个)背景对象的多个三维网格,基于场景的图像编辑系统106提供与将移动的前景对象4602b放置在第二位置相关的逼真阴影。例如,如图所示,基于场景的图像编辑系统106在修改的二维图像4600b内的新位置为移动的前景对象4602b生成更新后的阴影4604。
在一个或多个实施例中,基于场景的图像编辑系统106移除对应于第一位置处的前景对象4602a的先前阴影(如图46A中所示)。例如,基于场景的图像编辑系统106利用前面描述的阴影移除操作来移除由前景对象4602a相对于二维图像4600a的光源产生的原始阴影。在至少一些实施例中,基于场景的图像编辑系统106在二维图像4600a内移动前景对象4602a之前移除初始阴影。为了说明,基于场景的图像编辑系统106响应于在二维图像4600a内移动对象的工具或功能的选择或响应于在客户端应用内打开二维图像4600a来移除初始阴影。在附加实施例中,基于场景的图像编辑系统106为第一位置处的前景对象4602a生成新阴影,并响应于移动前景对象4602a来更新新阴影(例如,生成更新后的阴影4604)。在其他实施例中,响应于将前景对象4602b放置在第二位置,基于场景的图像编辑系统106移除初始阴影并生成更新后的阴影4604。
如上所述,基于场景的图像编辑系统106根据二维图像中的对象类型,基于多个阴影图来生成阴影。例如,基于场景的图像编辑系统106至少部分地基于背景的估计阴影图和移动的前景对象4602b的代理阴影图来生成移动的前景对象4602b的更新后的阴影4604。为了说明,基于场景的图像编辑系统106为移动的前景对象4602b生成阴影代理(例如,代理三维网格),并且利用阴影代理而不是移动的前景对象4602b生成更新后的阴影4604。因此,基于场景的图像编辑系统106根据修改的二维图像4600b的估计照明参数来合并相应的阴影图以生成更新后的阴影4604。
此外,在一个或多个实施例中,基于场景的图像编辑系统106响应于在二维图像内移动对象而生成一个或多个修复区域。具体地,如图46B所示,基于场景的图像编辑系统106检测由前景对象覆盖的背景部分的一个或多个区域。具体地,如图所示,响应于移动汽车,基于场景的图像编辑系统106确定汽车后面的背景中的道路、栅栏、植物等的一部分被暴露。
基于场景的图像编辑系统106利用一个或多个修复模型(例如,一个或多个神经网络)来修复背景部分的一个或多个区域。为了说明,基于场景的图像编辑系统106基于先前覆盖背景部分中的一个或多个区域的移动的前景对象4602b生成修复区域4606以恢复丢失的信息。例如,基于场景的图像编辑系统106利用第一模型在与移动的前景对象4602b后面的区域的二维坐标相对应的三维空间中的位置处重构网格。更具体地,基于场景的图像编辑系统106利用平滑模型来基于三维空间中的估计三维点来生成平滑深度值,三维空间中的估计三维点与二维图像4600a中与背景部分中的区域相邻或周围的区域相对应。因此,基于场景的图像编辑系统106生成多个顶点和边来填充与移动的前景对象4602b后面的背景相对应的三维网格中的“洞”。
在一个或多个实施例中,基于场景的图像编辑系统106利用背景中的三维网格的填充部分来生成修复区域4606。具体地,基于场景的图像编辑系统106利用修复模型来为修复区域4606内的像素生成预测像素值。例如,基于场景的图像编辑系统106使用修复模型来捕捉修复区域4606附近区域的特征,例如基于像素值、检测到的对象、或修复区域4606附近区域的其他视觉或语义属性。因此,基于场景的图像编辑系统106利用来自相邻区域的上下文信息来生成用于修复区域4606的修复内容。此外,基于场景的图像编辑系统106将修复区域4606作为纹理应用于重构网格部分。
如上所述,基于场景的图像编辑系统106还提供用于将对象插入到二维图像中的工具。图46C示出了客户端设备在初始位置显示包括图46A的前景对象4602a的修改的二维图像4600c。另外,图46C示出了客户端设备显示导入到修改的二维图像4600c中的插入对象4608。
在一个或多个实施例中,响应于将对象插入到二维图像中的请求,基于场景的图像编辑系统106访问指定的对象并将该对象插入到二维图像中以经由客户端设备的图形用户界面进行显示。例如,所选对象与先前定义的三维网格相关联。为了说明,响应于将插入对象4608导入修改的二维图像4600c的三维表示的请求,基于场景的图像编辑系统106从单独的文件、数据库或应用导入对应于插入对象4608的三维网格。
备选地,基于场景的图像编辑系统106将对应于插入对象4608的二维网格导入到修改的二维图像4600c中。例如,与将对象插入到二维图像中的请求相关联,基于场景的图像编辑系统106生成表示二维对象的三维网格。例如,基于场景的图像编辑系统106基于插入对象4608的视觉特征、与插入对象4608相关联的语义信息(例如,通过检测到对象是道路标志)或与插入对象4608相关联的其他信息,利用一个或多个神经网络,来生成表示插入对象4608的三维网格。
在一个或多个实施例中,基于场景的图像编辑系统106利用与插入对象4608相对应的三维网格,来在修改的二维图像4600c内生成阴影4610。具体地,基于场景的图像编辑系统106(例如,基于对应的三维网格和照明参数)生成对应于插入对象4608的对象阴影图。为了说明,如前所述,基于场景的图像编辑系统106生成对象阴影图,用于根据修改的二维图像4600c中的一个或多个光源,渲染由插入对象4608投射到一个或多个其他对象上的阴影(即,使得阴影跟随在二维场景中描绘的其他对象的三维轮廓,如图46C的汽车上的阴影所示)。
当渲染修改的二维图像4600c时,基于场景的图像编辑系统106还应用阴影图。具体地,基于场景的图像编辑系统106将基于插入对象4608的对象阴影图与用于修改的二维图像4600c的一个或多个附加阴影图合并。例如,基于场景的图像编辑系统106确定修改的二维图像4600c包括插入对象4608和前景对象4602a(例如,在初始位置)。基于场景的图像编辑系统106将与插入对象4608相对应的对象阴影图、与前景对象4602a的阴影代理相对应的代理阴影图、以及修改的二维图像4600c的背景的估计阴影图进行合并。
为了说明,基于场景的图像编辑系统106结合前景对象4602a和修改的二维图像4600c的背景,基于插入对象4608合并阴影图以生成阴影4610。例如,基于场景的图像编辑系统106确定插入对象4608至少部分地位于前景对象4602a和从修改的二维图像4600c提取的光源之间。此外,基于场景的图像编辑系统106通过根据对象的相对三维位置和每种对象类型的特征来合并阴影图,以在修改的二维图像4600c中生成一个或多个阴影。因此,基于场景的图像编辑系统106合并阴影图以将插入对象4608的阴影4610投射到前景对象4602a的至少一部分和背景的一部分上。
在一个或多个实施例中,当用户编辑图像时,基于场景的图像编辑系统106实时更新二维图像的阴影。例如,基于场景的图像编辑系统106基于经由客户端设备的输入来确定插入、移动或删除数字图像中的一个或多个对象的一个或多个请求。响应于这样的请求,基于场景的图像编辑系统106为数字图像中的每个对象类型生成更新后的阴影图。此外,基于场景的图像编辑系统106基于对象的更新位置和合并的阴影图在客户端设备的图形用户界面内渲染修改的数字图像(或修改的数字图像的预览)。
在一个或多个附加实施例中,基于场景的图像编辑系统106通过用于多个图像编辑操作的阴影映射,在二维图像中提供逼真的阴影生成。例如,尽管上述实施例描述了通过将对象放置在二维图像内的特定位置来编辑二维图像,但是基于场景的图像编辑系统106也响应于对二维图像中的对象的修改而生成并合并多个阴影图。为了说明,响应于改变二维图像内的对象的形状、大小或取向的请求,基于场景的图像编辑系统106基于该请求更新针对对象的三维特性(例如,代理三维网格)。此外,基于场景的图像编辑系统106基于更新的三维特性生成更新后的阴影图(例如,更新的代理阴影图),并根据更新后的阴影图重新渲染二维图像。
如上所述,基于场景的图像编辑系统106为二维图像内的对象生成阴影代理以用于编辑二维图像。图47A-图47B示出了对应于二维图像的场景的示例三维网格。具体地,图47A-图47B的三维网格对应于图46A的二维图像的场景。图47A示出了表示二维图像中的背景和前景对象的三维网格。图47B示出了前景对象的阴影代理。
如图47A所示,基于场景的图像编辑系统106基于二维图像生成一个或多个三维网格。具体地,基于场景的图像编辑系统106生成表示二维图像的场景中的背景内容的第一三维网格4700(例如,基于来自二维图像的估计深度值)。基于场景的图像编辑系统106还从二维图像确定前景对象(例如,汽车),并为前景对象生成第二三维网格4702。在一些实施例中,基于场景的图像编辑系统106生成包括二维图像的所有内容的初始三维网格,并将该三维网格分离成第一三维网格4700和第二三维网格4702。在备选实施例中,基于场景的图像编辑系统106(例如,基于分割掩蔽)分别地生成第一三维网格4700和第二三维网格4702。
在一个或多个实施例中,基于场景的图像编辑系统106生成表示前景对象的可见部分的第二三维网格4702。例如,基于场景的图像编辑系统106利用与二维图像中的像素相对应的深度值来生成第二三维网格4702(例如,通过在前景对象的边界处将第二三维网格4702与第一三维网格4700分离)。另外,如图47A所示,由于在二维图像中仅有一部分前景对象可见,所以第二三维网格4702缺乏细节。
此外,在一个或多个实施例中,基于场景的图像编辑系统106利用一个或多个修复模型来修复二维图像的一部分和三维网格的相应部分。如图47A所示,基于场景的图像编辑系统106修复第一三维网格4700的与前景对象后面的背景的一部分相对应的部分。例如,基于场景的图像编辑系统106基于第一三维网格4700的相邻区域中的顶点的三维位置(例如,利用平滑模型),将多个顶点插入到第一三维网格4700的该部分中,以为该部分提供一致的三维深度。此外,基于场景的图像编辑系统106利用附加修复模型生成纹理以应用于第一三维网格4700的该部分。
根据一个或多个实施例,基于场景的图像编辑系统106为前景对象生成阴影代理。具体地,图47B示出了基于场景的图像编辑系统106生成代理三维网格4704以表示前景对象。例如,基于场景的图像编辑系统106根据第二三维网格4702在三维空间中的三维位置,基于前景对象生成代理三维网格4704。为了说明,基于场景的图像编辑系统106生成代理三维网格4704以估计前景对象在三维空间中的可见和不可见部分的形状,以便在渲染二维图像时产生阴影。
在一些实施例中,基于场景的图像编辑系统106通过确定前景对象的对称轴或平面来生成代理三维网格4704。例如,基于场景的图像编辑系统106处理前景对象的可见部分的特征以检测对称轴(例如,基于重复特征)。为了说明,基于场景的图像编辑系统106利用图像处理技术和/或对象检测技术来基于汽车的两个尾灯在二维图像中的可见性来确定汽车在二维图像中的对称轴。因此,基于场景的图像编辑系统106确定前景对象在后备箱的大约一半标记处具有对称平面,并且该对称平面贯穿汽车的中间。
响应于检测到前景对象的对称轴,基于场景的图像编辑系统106通过镜像第二三维网格4702并将镜像部分缝合到第二三维网格4702来生成代理三维网格4704。在一个或多个实施例中,基于场景的图像编辑系统106复制第二三维网格4702中的多个顶点,并复制所复制的顶点。此外,基于场景的图像编辑系统106镜像复制的顶点的位置,并根据对称轴平移复制的顶点。基于场景的图像编辑系统106还跨对称轴将顶点连接到复制的顶点以创建完整的三维网格。在备选实施例中,基于场景的图像编辑系统106将现有网格的顶点镜像到对称轴的另一侧,并利用球体对象将顶点从球体收缩包裹到包括镜像部分的几何图形的表面。
在附加实施例中,基于场景的图像编辑系统106通过导入表示前景对象的形状的先前生成的三维网格来生成代理三维网格4704。具体地,基于场景的图像编辑系统106利用对象检测来确定前景对象属于与先前生成的三维网格相关联的特定对象类别。为了说明,基于场景的图像编辑系统106确定前景对象包括与先前生成的三维网格相关联的特定品牌和/或型号的汽车。基于场景的图像编辑系统106访问先前生成的三维网格(例如,从数据库)并将该三维网格插入到三维空间中的对应位置,以生成代理三维网格4704。
在一些实施例中,基于场景的图像编辑系统106确定二维图像中的特定对象包括具有特定姿势的人。基于场景的图像编辑系统106利用模型来生成具有特定姿势的人类的三维网格。因此,基于场景的图像编辑系统106基于经由一个或多个神经网络生成的姿势人类模型来生成代理三维网格,该一个或多个神经网络从二维图像提取形状和姿势信息(例如,通过回归检测到的人类形状的姿势)。
尽管图47B示出了代理三维网格4704在三维空间中是可见的,但在一个或多个实施例中,基于场景的图像编辑系统106在图形用户界面内隐藏代理三维网格4704。例如,基于场景的图像编辑系统106利用代理三维网格4704在渲染的二维图像中生成阴影而在二维图像中不可见。此外,在一些实施例中,基于场景的图像编辑系统106利用前景对象的三维网格而不是代理三维网格来渲染由一个或多个其他对象投射在前景对象上的阴影。因此,基于场景的图像编辑系统106可以近似由前景对象经由代理三维网格4704生成的阴影,同时提供前景对象的可见部分上的阴影的准确渲染。
图48A-图48B示出了基于场景的图像编辑系统106经由二维场景的三维特性修改二维图像的附加示例。具体地,图48A示出了包括前景对象4802(例如,人)的第一二维图像4800。在一个或多个实施例中,基于场景的图像编辑系统106接收从第一二维图像4800复制前景对象4802并将前景对象4802插入第二二维图像的请求。
根据一个或多个实施例,响应于该请求或响应于将前景对象4802插入到另一数字图像中,基于场景的图像编辑系统106为前景对象4802生成代理三维网格。图48B示出了其中插入了前景对象4802a的第二二维图像4804。具体地,基于场景的图像编辑系统106在选择的位置将前景对象4802a插入到第二二维图像4804中。此外,基于场景的图像编辑系统106在三维空间中的对应位置处插入对应于前景对象4802a的代理三维网格,该三维空间包括表示第二二维图像4804的场景的三维网格。
此外,在一个或多个实施例中,基于场景的图像编辑系统106基于第二二维图像4804和对应于前景对象4802a的代理三维网格来生成多个阴影图。具体地,响应于将前景对象4802a的代理三维网格插入到对应于第二二维图像4804的三维空间中,基于场景的图像编辑系统106生成用于第二二维图像4804的代理阴影图。此外,基于场景的图像编辑系统106根据第二二维图像4804中已经存在的阴影(例如,由树木和灌木生成的阴影)来生成针对第二二维图像4804的估计阴影图。
结合将前景对象4802a插入到第二二维图像4804中,基于场景的图像编辑系统106对修改的二维图像进行渲染以包括由前景对象4802a生成的阴影4806。此外,如图所示,基于场景的图像编辑系统106对修改的二维图像进行渲染以包括由背景对象投射到前景对象4802a上的一个或多个阴影的效果。具体地,基于场景的图像编辑系统106合并代理阴影图和估计阴影图,以确定是否放置由前景对象4802a和背景投射的阴影以及将其放置在哪里。如图48B所示,前景对象4802a将阴影投射到背景上,并且背景(例如,树木)将至少部分阴影投射到前景对象4802a上。在第二二维图像4804内移动对象使得基于场景的图像编辑系统106来更新前景对象4802a和/或背景的阴影的位置和效果。
图49示出了用于编辑二维图像中的对象的各种视觉特性的图形用户界面。具体地,图49示出了显示包括插入对象4902的二维图像4900的客户端设备。例如,客户端设备在选择的位置处显示插入到二维图像4900中的对象4902。在一个或多个实施例中,客户端设备提供用于诸如通过在三维空间中沿地面移动对象4902来修改对象4902的位置的工具。因此,当对象4902在二维图像4900内移动时,基于场景的图像编辑系统106还相对于表示二维图像4900的三维空间内的场景的三维网格移动对象4902的对应三维网格。为了说明,在二维图像4900中沿地面向前移动对象4902使得基于场景的图像编辑系统106基于三维空间中地面的几何形状来增大或减小对象4902的大小和/或旋转。
此外,在一个或多个实施例中,基于场景的图像编辑系统106基于二维图像4900的多个阴影图来生成对象4902的阴影4904。例如,基于场景的图像编辑系统106基于二维图像4900的背景生成估计阴影图,其包括树木及其基于背景中的光源的对应阴影。此外,基于场景的图像编辑系统106为对象4902生成对象阴影图。基于场景的图像编辑系统106通过合并阴影图来生成对象4902的阴影4904,包括基于光源的方向和长度以及对应于对象4902在三维空间中的三维网格的透视。此外,在二维图像4900中移动对象4902使得基于场景的图像编辑系统106更新后的阴影4904的位置、方向和大小。
在一个或多个附加实施例中,基于场景的图像编辑系统106还提供用于编辑对象4902的三维特性的工具。具体地,图49示出了用于在三维空间中旋转对象4902的一组视觉指示符4906。更具体地,响应于检测到与该组视觉指示符4906的一个或多个交互,基于场景的图像编辑系统106修改与对象4902对应的三维网格在三维空间中的取向,并相应地更新对象4902的二维描绘。此外,在一些实施例中,基于场景的图像编辑系统106利用背景的三维网格来提供对对象4902的取向的逼真修改,例如通过约束对象4902的某些部分与地面接触(例如,通过确保动物的脚在旋转对象4902时与地面接触)。类似地,基于场景的图像编辑系统106可以利用这样的约束来修改对象4902沿地面的位置,以根据背景的一个或多个轮廓来维持对象4902的特定部分与背景之间的一致接触。
基于场景的图像编辑系统106可以结合上述各种图像编辑方法来利用这些三维建模和阴影生成方法。例如,基于场景的图像编辑系统106可以对数字图像进行预处理,以标识前景对象、生成前景对象的三维模型、以及在前景对象后面进行修复。响应于用户对对象的选择(例如,手指按压),图像编辑系统可以移动该对象并生成动态阴影,该动态阴影落在场景中描绘的其他对象的三维轮廓上并在其上扭曲。
在一些实施例中,基于场景的图像编辑系统106利用二维图像的三维特性和/或三维表示来确定与二维图像的内容相关联的深度和/或尺度信息。例如,基于场景的图像编辑系统106利用二维图像中检测到的地面特征和相机参数的三维特性来估计对应于二维图像中的特定像素位置的像素与度量缩放(例如,像素数量到度量距离/高度)。图50示出了基于场景的图像编辑系统106利用二维图像5000的三维特性来生成包括二维图像5000中的内容的尺度信息的尺度场的概述。具体地,图50示出了基于场景的图像编辑系统106利用机器学习模型来生成尺度场以用于执行一个或多个下游操作。
在一个或多个实施例中,基于场景的图像编辑系统106利用尺度场模型5002从二维图像5000生成尺度场5004。具体地,基于场景的图像编辑系统106提供用于自动处理二维图像5000以确定二维图像5000的内容的尺度信息的工具。例如,基于场景的图像编辑系统106提供工具,其用于通过对基于二维图像5000的内容对象进行缩放来编辑对象或将对象插入到二维图像5000中。在另一示例中,基于场景的图像编辑系统106提供用于确定二维图像5000中描绘的内容的度量距离的工具。
根据一个或多个实施例,尺度场模型5002包括用于生成尺度场5004的机器学习模型(例如,包括一个或多个神经网络层的神经网络)。具体地,基于场景的图像编辑系统106利用尺度场模型5002来生成表示度量距离相对于像素距离的尺度的尺度场5004。例如,基于场景的图像编辑系统106生成尺度场5004以表示二维图像5000的三维空间中的度量距离相对于二维空间中的对应像素距离的比率。因此,基于场景的图像编辑系统106生成尺度场5004,以包括指示二维图像5000中的多个像素的像素度量比的多个值。为了说明,尺度场5004中的值对于给定像素表示从二维空间中的点到地平线的距离与对应的三维空间之间的比率。
在一个或多个实施例中,基于场景的图像编辑系统106利用尺度场模型5002来生成尺度场5004,以包括二维图像5000的像素子集的值。例如,尺度场5004包括与二维图像5000的地平线以下的像素相对应的非空或非零值。根据一个或多个实施例,基于场景的图像编辑系统106将尺度场5004生成为与二维图像5000中的像素矩阵相对应的值矩阵。在一些示例中,基于场景的图像编辑系统106生成尺度场5004,用于在编辑二维图像5000的同时存储在存储器中,或者作为对应于二维图像5000的单独文件(或元数据)以用于各种下游操作。
如图50所示,基于场景的图像编辑系统106利用尺度场5004来执行与二维图像5000相关联的一个或多个附加下游操作。例如,基于场景的图像编辑系统106利用尺度场5004来基于二维图像5000生成修改的二维图像5006。为了说明,基于场景的图像编辑系统106通过根据尺度场5004将对象插入到二维图像5000中的特定位置来生成修改的二维图像5006。在一些实施例中,基于场景的图像编辑系统106通过根据尺度场5004将二维图像5000中的对象从一个位置移动到另一位置来生成修改的二维图像5006。
在附加实施例中,基于场景的图像编辑系统106利用尺度场5004来确定二维图像5000中的度量距离。例如,基于场景的图像编辑系统106利用尺度场5004来确定与二维图像5000的内容相关的生成距离5008。为了说明,基于场景的图像编辑系统106利用尺度场5004来基于二维图像5000的一个或多个像素的尺度场5004的一个或多个值来确定二维图像5000内的内容的大小、长度、宽度或深度。因此,基于场景的图像编辑系统106利用尺度场5004来基于二维图像5000中描绘的内容的像素距离来提供与对应于二维图像5000中的内容的度量距离测量相关联的信息。
根据一个或多个实施例,通过利用图50的尺度场模型来生成二维图像的尺度场,基于场景的图像编辑系统106提供比传统系统更好的数字图像的尺度感知信息。具体地,与利用相机内部/外部参数在二维测量和三维测量之间转换的传统系统相反,基于场景的图像编辑系统106根据直接来自二维图像的二维和三维空间之间的平移来提供准确的缩放。此外,与利用单视图度量来建立诸如消失点和消失线的低级图像特征之间的关系的传统系统相比,基于场景的图像编辑系统106通过使用数字图像上的带注释的尺度场来训练尺度场模型,以利用尺度场来更准确地确定对象的缩放。
在一个或多个实施例中,基于场景的图像编辑系统106利用尺度场模型来生成用于分析和/或修改数字图像的尺度场。具体地,如上所述,基于场景的图像编辑系统106利用尺度场来提供对二维图像内容的精确的尺度感知处理。例如,基于场景的图像编辑系统106生成表示以像素为单位的二维测量到对应三维空间中的三维测量的转换的尺度场。为了说明,基于场景的图像编辑系统106通过在尺度场模型的训练期间利用二维图像到相机的估计距离和相机的估计参数来生成尺度场以提供这样的尺度感知数据。
根据一个或多个实施例,在二维图像的每个地面像素处,根据透视相机模型,像素高度随对应的三维度量高度线性(或近似线性)增长。通过局部定义像素与其对应度量高度之间的比率,基于场景的图像编辑系统106生成尺度场。因此,基于场景的图像编辑系统106在二维图像中提供场景的尺度的密集、局部、非参数表示。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106利用机器学习模型生成二维图像的尺度场。图51示出了基于场景的图像编辑系统106用来确定二维图像5100中的内容的尺度的尺度场模型的实施例。具体地,图51示出了尺度场模型的实施例,该尺度场模型包括用于生成与二维图像5100中的内容的尺度相关联的多种类型的数据的多个分支。
如图51所示,尺度场模型包括编解码器架构中的多个神经网络层。具体地,尺度场模型包括对二维图像5100的特征进行编码的编码器5102。在一个或多个实施例中,编码器5102包括用于从二维图像5100提取特征的基于变换器的特征提取器。例如,基于场景的图像编辑系统106利用尺度场模型的编码器5102来基于所提取的二维图像5100的特征,来生成二维图像5100的特征表示。
响应于从二维图像5100生成特征表示,基于场景的图像编辑系统106利用图51的尺度场模型来生成多个不同的输出。更具体地,尺度场模型包括尺度场解码器5104(“SF解码器”),以基于特征表示生成尺度场5106。为了说明,尺度场解码器5104处理由编码器5102生成的特征表示,以在尺度场模型的第一分支中生成尺度场5106。在一个或多个实施例中,尺度场模型包括尺度场解码器5104,以生成与二维图像5100相同分辨率的尺度场5106。例如,编码器5102从二维图像5100生成下采样分辨率的特征表示,并且尺度场解码器5104将特征分辨率解码和上采样到更高的分辨率(例如,二维图像5100的分辨率)。
根据一个或多个实施例,尺度场模型还包括附加分支。具体地,如图51所示,尺度场模型包括具有地面到地平线解码器5108(“G2H解码器”)的神经网络分支。具体地,地面到地平线解码器5108对特征表示进行解码以生成多个地面到地平线向量5110。在一个或多个实施例中,地面到地平线向量包括指示从三维空间中的特定点到地平线的方向和距离的向量。例如,地面到地平线解码器5108基于投影到三维空间的二维图像5100的内容的投影,为二维图像5100中描绘的多个地面点生成地面到地平线向量5110,以指示从地面点到地平线的垂直距离。
如图51所示,基于场景的图像编辑系统106利用尺度场模型从二维图像5100生成尺度场5106和地面到地平线向量5110。尽管图51示出了尺度场模型生成尺度场5106和地面到地平线向量5110,但是在备选实施例中,基于场景的图像编辑系统106利用仅生成二维图像的尺度场的尺度场模型。例如,基于场景的图像编辑系统106利用单分支神经网络来基于二维图像生成尺度场。
根据一个或多个实施例,基于场景的图像编辑系统106利用尺度场5106和地面到地平线向量5110来执行一个或多个下游操作。例如,基于场景的图像编辑系统106利用尺度场5106来测量在数字图像或其他尺度内图像合成操作中描绘的内容的度量距离。在另一示例中,基于场景的图像编辑系统106利用尺度场5106来在数字图像内插入对象或移动对象,包括在建筑或家具应用中使用。此外,基于场景的图像编辑系统106利用地面到地平线向量5110来确定对象在数字图像内的放置角度(例如,旋转/方向)。
在一些实施例中,基于场景的图像编辑系统106训练一个或多个神经网络以生成与二维图像相关联的尺度感知信息。例如,基于场景的图像编辑系统106生成包括用于学习图51的尺度场模型的参数的多个带注释的二维图像的训练数据。具体地,如下面参考图54更详细地描述的,基于场景的图像编辑系统106生成带注释的二维图像的数据集,该数据集包括用于训练基于二维图像中的内容自动生成尺度场的尺度场模型的尺度信息。
结合生成带注释的二维图像,基于场景的图像编辑系统106确定与二维图像相关联的尺度信息。例如,图52示出将二维图像5200的内容的二维特性投影到三维特性的二维图像5200的表示。在一个或多个实施例中,如图所示,将二维特性变换为三维特性可选地涉及从二维图像5200确定估计深度值5202。为了说明,如前所述,基于场景的图像编辑系统106利用深度估计神经网络来估计二维图像的像素的深度值。
如图52所示,基于场景的图像编辑系统106通过将二维图像5200的内容投影到三维空间5204来确定与二维图像5200的内容对应的三维空间5204。例如,基于场景的图像编辑系统106基于估计深度值5202来确定三维空间5204。为了说明,基于场景的图像编辑系统106通过利用一个或多个神经网络,例如自适应镶嵌模型或其他三维网格生成模型,将估计深度值5202转换为三维空间5204中的三维点。
在附加实施例中,基于场景的图像编辑系统106通过标识二维图像5200中的特定内容来将二维图像5200的内容投影到三维空间5204中。具体地,基于场景的图像编辑系统106确定二维图像5200中的估计地面5206。例如,基于场景的图像编辑系统106标识二维图像5200中对应于地面的地面像素。
此外,在一个或多个实施例中,基于场景的图像编辑系统106确定指示与二维图像5200相关联的相机参数的注释。具体地,基于场景的图像编辑系统106确定与捕获二维图像5200的相机的相机位置相对应的相机高度5208。在一些实施例中,基于场景的图像编辑系统106确定与相机相关联的焦距5210和相机间距5212。例如,基于场景的图像编辑系统106确定影响二维图像5200中描绘的内容的位置、旋转、倾斜、聚焦等的相机参数。在附加实施例中,基于场景的图像编辑系统106确定指示二维图像5200中的特定高度或距离的注释。根据一个或多个实施例,基于场景的图像编辑系统106利用一个或多个神经网络来确定相机参数。此外,在一些实施例中,基于场景的图像编辑系统106利用相机高度5208来确定二维图像5200的地平线5214。
备选地,在一个或多个实施例中,基于场景的图像编辑系统106确定二维图像5200中的注释,该注释指示允许基于场景的图像编辑系统106响应于用户输入,来确定三维空间5204和相机参数的某些信息。例如,基于场景的图像编辑系统106(或另一系统)将二维图像5200连同多个附加数字图像一起提供给多个人类注释方,以注释地平线。因此,基于场景的图像编辑系统106获得注释的数字图像,并使用一个或多个图像处理模型来基于人类来源或其他来源的注释来确定三维空间(例如,估计的相机高度、地平线和地面)。
图53A-图53C示出了指示二维图像中的度量距离和像素距离之间的关系的图示。此外,图53A-图53C示出了相机参数对度量距离和像素距离之间的关系的影响。具体地,图53A示出了根据相机5302的相机参数将图像平面5300中的点投影到三维空间中的点。图53b示出了用于捕捉二维图像的相机的各种相机参数的图示。此外,图53C示出了根据相机参数和点的投影在三维空间中的度量距离和在二维空间中的像素距离之间的关系。
如上所述,图53A示出了从二维图像到三维空间中的点的投影。例如,图53A示出了对应于二维图像的图像平面5300上的不同像素的多个点在与二维图像对应的三维空间中的多个地面点上的投影。为了说明,基于相机5302的相机参数,图像平面5300中对应于第一像素高度的第一点5304a投影到三维空间中的第一地面点5306a。另外,基于相机5302的相机参数,图像平面5300中对应于第二像素高度的第二点5304b投影到三维空间中的第二地面点5306b。图53A还示出了基于相机5302的相机参数,图像平面5300中对应于第三像素高度的第三点5304c投影到三维空间中的第三地面点5306c。
在一个或多个实施例中,如图53A所示,三维空间中的地平线5308对应于相机5302的相机高度5310。具体地,地平线5308对应于在二维图像中将地面与天空分离的视觉边界。此外,在一个或多个实施例中,地平线5308等于相机高度5310。因此,当将二维图像的内容投影到三维空间时,确定相机5302的相机高度5310还指示三维空间中的地平线5308。
在一个或多个附加实施例中,二维图像包括地面像素5312,其对应于作为从其确定相机高度5310的单个平面投射到三维空间的地面5314。具体地,地面像素5312包括图像平面5300中对应于三维空间中的地平线5308的点以下的像素。因此,将图像平面5300中对应于地平线5308的点下方的像素投影到三维空间中导致将像素投影到地面5314上的地面点。此外,将地平线上方的像素投影到三维空间中并不会导致将像素投影到地面5314上的地面点。
图53A还示出,通过在三维空间中延伸地平线5308,地平线5308相对于地面5314处于等距离位置。具体地,图53A示出了表示从第一地面点5306a到地平线5308的第一距离的第一地面到地平线向量5316a、表示从第二地面点5306b到地平线5308的第二距离的第二地面到地平线向量5316b、以及表示从第三地面点5306c到地平线5308的第三距离的第三地面到地平线向量5316c。更具体地,第一地面到地平线向量5316a、第二地面到地平线向量5316b和第三地面到地平线向量5316c指示从地面5314到地平线5308的相同距离(例如,相同的度量高度)。
图53B示出了图53A的相机5302的各种相机参数。具体地,图53B示出指示相机5302相对于地平线5308的角度θ的相机间距5318。例如,相机间距0度表示相机5302指向水平方向,而相机间距45度表示相机5302指向水平和垂直中间的向下方向。此外,图53B示出了相机5302的焦距5320,表示相机5302的透镜的中心与焦点(例如,图像平面5300上的点)之间的距离。
图53C示出了根据相机5302的相机参数的二维图像的三维空间和二维空间中的距离之间的关系。例如,图53C示出了对应于地面上的点5314上的点与地平线5308之间的距离的地面到地平线向量5322。此外,图53C示出了对应于地面上的点5314上的点与三维空间中的特定点之间的距离的地面到点向量5324。为了说明,地面到点向量5324指示位于地面5314上的点处的对象的高度。
在一个或多个实施例中,如图53C所示,三维空间中的地面到地平线向量5322对应于图像平面5300(例如,在二维空间中)上的第一像素距离5326。此外,三维空间中的地面到点向量5324对应于图像平面5300上的第二像素距离5328。如图所示,第一像素距离5326和第二像素距离5328之间的差对应于地面到地平线向量5322和地面到点向量5324之间的差。为了说明,二维空间中的差异相对于三维空间中的差异具有线性关系(或近似线性关系)。因此,将地面到点向量5324改变为第二像素距离5328,导致三维空间和二维空间中的差异的线性改变。
在一个或多个实施例中,基于场景的图像编辑系统106基于比率公式确定三维空间中的像素距离和度量距离之间的线性关系。例如,基于场景的图像编辑系统106确定固定地面点上的像素高度和度量高度之间的关系。更具体地,基于场景的图像编辑系统106确定相机高度hcam、相机间距θ、焦距f和从相机到两个向量的z轴距离d。例如,在固定地面点处的第一向量包括第一度量高度h1,并且在固定地面点处的第二向量包括第二度量高度h2。图像平面上的线的像素距离包括对应于第一向量的第一像素距离ph1和对应于第二向量的第二像素距离ph2。此外,基于场景的图像编辑系统106确定以下像素距离:
/>
基于场景的图像编辑系统106通过产生线性关系的近似来修改上述像素距离,如下:
基于指示度量距离和像素距离之间的线性关系的上述确定,基于场景的图像编辑系统106确定二维图像中的二维向量场,对于该二维图像,多个向量从地面像素开始并在与地平线的交点处结束。具体地,基于场景的图像编辑系统106确定当投影到三维空间时在二维空间中垂直于地面平面图的多个地面到地平线向量。此外,如前所述,地面到地平线向量具有与相机高度相对应的相同度量距离。地平线向量在像素和度量距离之间也具有线性关系。因此,基于场景的图像编辑系统106通过将地面到地平线向量的像素量级除以相机的绝对度量高度来定义尺度场SF:
其中(x,y)是二维坐标,并且ph是由图像高度和宽度归一化的从(x,y)的地面到地平线向量的像素高度。所产生的尺度场是指示像素与度量比率的每像素值的二维图。
在一个或多个实施例中,基于场景的图像编辑系统106确定尺度场,该尺度场为二维图像中的每个地面像素提供信息,该信息指示在投影的三维空间中有多少像素表示一定量的垂直度量长度。通过生成尺度场,基于场景的图像编辑系统106实现对二维图像的各种尺度感知操作,例如三维理解或尺度感知图像编辑。此外,在一些实施例中,基于场景的图像编辑系统106利用二维图像的尺度场来进一步改进用于确定二维图像的深度估计的神经网络的性能。此外,尽管上面的示例描述了确定二维图像中的像素到度量高度,但是基于场景的图像编辑系统106还可以利用尺度场来基于像素到度量高度来确定其他像素到度量距离。在备选实施例中,基于场景的图像编辑系统106基于度量到像素高度来生成尺度场以表示度量到像素高度。
根据一个或多个实施例,基于场景的图像编辑系统106利用带注释的二维图像来结合从二维图像生成尺度感知数据来训练一个或多个神经网络。例如,如图54所示,基于场景的图像编辑系统106利用包括二维图像5400的数据集来训练机器学习模型5402。具体地,在一个或多个实施例中,基于场景的图像编辑系统106利用包括二维图像5400的训练数据集来修改机器学习模型5402的参数,以生成尺度场数据和/或附加尺度感知信息(例如,地面到地平线向量)。
在一个或多个实施例中,基于场景的图像编辑系统106通过用尺度感知信息注释二维图像5400来生成包括二维图像5400的训练数据集。例如,基于场景的图像编辑系统106(例如,经由一个或多个附加机器学习模型)自动注释二维图像5400的一个或多个部分。在一些实施例中,基于场景的图像编辑系统106基于用户输入(例如,经由一个或多个人类注释)注释二维图像5400的一个或多个部分。此外,在一些实施例中,基于场景的图像编辑系统106利用各种场景类型、图像类型和/或相机参数来训练机器学习模型5402。
在至少一些实施例中,基于场景的图像编辑系统106基于相机参数来确定二维图像5400的注释5404。为了说明,基于场景的图像编辑系统106基于内部和外部相机参数来确定针对web图像或其他二维图像的数据集的尺度信息。在附加实施例中,基于场景的图像编辑系统106基于附加传感器系统和/或与二维图像5400相关联的元数据来确定注释。因此,基于场景的图像编辑系统106利用一种或多种类型的源来利用视场、俯仰、滚动和/或相机高度参数来注释二维图像5400。此外,基于场景的图像编辑系统106利用相机参数来确定二维图像的地平线和地面到地平线向量5400。图55A-图55D和图56A-图56E以及相应的描述提供了关于注释二维图像的附加细节。
结合生成包括多个注释5404的二维图像5400的数据集,基于场景的图像编辑系统106利用机器学习模型5402来生成预测的尺度信息。例如,如图54所示,基于场景的图像编辑系统106利用第一机器学习模型来生成二维图像5400的预测尺度场5406。此外,如图54所示,基于场景的图像编辑系统106利用第二机器学习模型来为二维图像5400生成预测的地面到地平线向量5408。
响应于生成预测尺度场5406和/或预测的地面到地平线向量5408,基于场景的图像编辑系统106利用注释5404来确定一个或多个损失。具体地,基于场景的图像编辑系统106根据注释5404确定基准真值尺度场5410和基准真值地面到地平线向量5412。例如,基于场景的图像编辑系统106将预测尺度场5406与基准真值尺度场进行比较以确定第一损失5414。此外,基于场景的图像编辑系统106比较预测的地面到地平线向量5408以确定第二损失5416。
在一个或多个实施例中,基于场景的图像编辑系统106利用第一损失5414和/或第二损失5416来修改一个或多个机器学习模型5402的参数。例如,基于场景的图像编辑系统106修改基于第一损失5414生成尺度场的第一机器学习模型的参数。此外,基于场景的图像编辑系统106修改第二机器学习模型的参数,该第二机器学习模型基于第二损失5416生成地面到地平线向量。在一些实施例中,基于场景的图像编辑系统106利用单个模型(例如,多分支模型)来生成预测尺度场5406和预测的地面到地平线向量5408。因此,基于场景的图像编辑系统106利用第一损失5414和第二损失5416来修改单个模型的参数(例如,通过修改分离分支的参数)。
在一些实施例中,基于场景的图像编辑系统106利用回归损失(例如,具有相等损失权重的均方误差损失)来确定第一损失5414和第二损失5416。例如,基于场景的图像编辑系统106通过对预测尺度场5406、预测地面到地平线向量5408、基准真值尺度场5410和基准真值地面到地平线向量5412进行归一化来确定损失。为了说明,基于场景的图像编辑系统106根据相应的平均值和方差值来归一化数据。更具体地,基于场景的图像编辑系统106确定具有多个通道的完全连接的层的输出,其通过预定义的面元值(bin value)而被softmax和加权求和。根据一个或多个实施例,基于场景的图像编辑系统106根据下面的表1确定用于全局参数估计的面元范围和分布,其中和/>分别指均匀分布和正态分布。此外,地平线偏移是地平线距图像中心的垂直距离,将左上角设置为原点。
图55A-图55D示出了包括与为二维图像生成尺度场相关的多个不同注释的二维图像。具体地,图55A示出了未注释的二维图像5500a。具体地,如图所示,未注释的二维图像5500a包括由具有已知(或估计)相机高度的相机捕获的场景。图55b示出了包括对应于相机高度的地平线5502的第一注释二维图像5500b。图55C示出了具有从对应三维空间中的多个地面点到地平线的多个地面到地平线向量(例如,地面到地平线向量5504)的第二注释二维图像5500c。
图55D示出了包括尺度场覆盖的二维图像5506。具体地,如图所示,尺度场包括针对地平线以下的多个像素的多个值。例如,二维图像5506包括尺度场覆盖,该尺度场覆盖包括表示地平线以下区域中的每个像素的着色值。如图所示,每个值表示与二维图像的参数相对应的像素与度量比。更具体地,如图55D中所示,尺度场的值更低(例如,指示更低的像素与深度比),并且离地平线更高更远(并且更接近相机位置)。因此,从每个像素到地平线的像素距离(以像素数计)相对于从三维空间中的对应地面点到地平线(在三维空间中)的度量距离的比率在地平线附近最低。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106利用多种不同类型的数字图像来训练机器学习模型以确定场景感知数据。具体地,基于场景的图像编辑系统106利用二维全景图像来生成训练数据集。例如,基于场景的图像编辑系统106利用全景图像来提取用于缩放训练数据集的多个不同图像。在一些实施例中,全景图像提供不同的相机参数组合,同时维持相同的相机高度。图56A-图56D示出了全景图像和从全景图像提取的多个图像。
例如,图56A示出了包括空间的360度视角的全景图像5600。此外,如图所示,基于场景的图像编辑系统106基于全景图像5600为训练数据集确定多个单独的二维图像。为了说明,基于场景的图像编辑系统106确定全景图像5600的第一部分5602、第二部分5604、第三部分5606和第四部分5608。从全景图像5600提取的每个图像包括具有相同相机高度的不同相机参数(例如,俯仰、滚动)。每个图像还包括空间内的内容的不同视图。
图56B示出了与全景图像5600的第一部分5602相对应的第一图像5610a。图56b还示出了被覆盖的第一图像5610b,其包括覆盖在第一图像5610a之上的尺度场和地面到地平线向量。
图56C示出了与全景图像5600的第二部分5604相对应的第二图像5612a。图56C还示出了被覆盖的第二图像5612b,其包括覆盖在第二图像5612a之上的尺度场和地面到地平线向量。
图56D示出了与全景图像5600的第三部分5606相对应的第三图像5614a。图56D还示出了被覆盖的第三图像5614b,其包括覆盖在第三图像5614a上的尺度场和地面到地平线向量。
图56E示出了与全景图像5600的第四部分5608相对应的第四图像5616a。图56E还示出了被覆盖的第四图像5616b,其包括覆盖在第四图像5616a之上的尺度场和的地面到地平线向量。
如图56B-图56E所示,基于场景的图像编辑系统106确定全景图像5600的每个单独部分的等距矩形到透视裁剪。结合确定分离的裁剪,基于场景的图像编辑系统106为全景图像5600的每个单独部分确定尺度场。因此,基于场景的图像编辑系统106从单个全景图生成具有相同相机高度的相机参数的不同组合的多个单独图像。此外,如在单独的图像中所示,基于场景的图像编辑系统106相对于不同图像的特定地平线和对应的地面到地平线向量来确定尺度场。基于场景的图像编辑系统106可以类似地从各种室内和室外场景的全景中提取多个图像。
在一个或多个实施例中,基于场景的图像编辑系统106生成包括具有多条非水平地平线的数字图像的训练数据集。具体地,基于场景的图像编辑系统106利用结合地平线的相机参数来确定数字图像是否由于相机滚动和/或俯仰而倾斜。基于场景的图像编辑系统106可以在训练机器学习模型以解释处理的数字图像中的这种相机滚动和/或俯仰时利用这种信息。
图57示出了显示包括基于数字图像的内容的尺度感知信息的数字图像5700的客户端设备的图形用户界面。具体地,客户端设备显示数字图像5700,包括由具有特定参数的相机拍摄的场景中的多个对象。在一个或多个实施例中,基于场景的图像编辑系统106利用一个或多个神经网络来处理数字图像5700,以生成数字图像5700的尺度场。基于场景的图像编辑系统106(或诸如数字图像编辑系统的另一系统)利用尺度场来执行一个或多个下游操作。
例如,如图所示,客户端设备显示具有覆盖在数字图像5700之上的尺度感知信息的数字图像5700。为了说明,基于场景的图像编辑系统106利用为数字图像5700生成的尺度场来经由客户端设备显示对应于捕获数字图像5700的相机的相机高度的地平线5702。此外,基于场景的图像编辑系统106基于基于数字图像5700的尺度场提取的度量距离来生成多个测量。更具体地,客户端设备显示包括第一对象5704的数字图像5700,其具有指示从检测到的地面点到第一对象5704的顶部的距离的高度线5706。客户端设备还显示指示高度线5706的度量距离的测量覆盖5708,其指示根据从检测到的地面点处的像素的尺度场提取的像素到度量值的三维空间中的度量距离。
在附加实施例中,基于场景的图像编辑系统106为附加对象和/或二维图像的部分提供度量距离。例如,基于场景的图像编辑系统106利用数字图像的尺度感知信息来确定二维图像内的非垂直距离。为了说明,基于场景的图像编辑系统106利用二维图像的多个地面到地平线向量和/或来自尺度场的像素到度量值来估计与二维图像内不垂直于地平线的线相对应的水平距离或其他距离。
在一个或多个实施例中,基于场景的图像编辑系统106基于二维图像中所选像素的尺度场值来测量二维图像内的度量距离(例如,高度或宽度)。例如,关于测量从二维图像中的第一像素(例如,地面点)到第二像素的距离--诸如从对象的底部到顶部--基于场景的图像编辑系统106确定在指示第一像素处的像素高度与相机高度的比率的第一像素处的、针对二维图像的尺度场中的值。基于场景的图像编辑系统106利用所指示的比率将与二维图像中的对象相关联的像素距离转换为对象的度量距离(例如,50像素表示该地面点处的2米)。在一些实施例中,基于场景的图像编辑系统106利用多于一个像素的尺度场值来确定从一个地面点到另一个地面点的距离。
根据一个或多个实施例,基于场景的图像编辑系统106还利用尺度感知信息来修改数字图像。例如,图58示出了通过将对象插入到场景中而修改的多个数字图像。具体地,图58示出了在特定位置处进入基准真值图像5800a的基准真值高度的第一人轮廓5802a。另外,结合确定基准真值图像5800a,基于场景的图像编辑系统106确定相机参数和与基准真值图像5800a相关联的地平线。
在一个或多个实施例中,基于场景的图像编辑系统106通过确定指示对象插入点处的地面点处的像素的尺度场值,将对象插入到二维图像中。例如,基于场景的图像编辑系统106确定像素的尺度场值,以确定插入点的像素距离与度量距离的比率。基于场景的图像编辑系统106利用与插入对象相关联的距离(例如,已知高度)的知识,并将该距离转换为像素距离。基于场景的图像编辑系统106基于基于尺度场值确定的像素距离来缩放对象以在插入点插入。另外,基于场景的图像编辑系统106响应于基于二维图像中的一个或多个附加像素的一个或多个附加尺度场值改变图像内对象的位置来修改对象的尺度。
图58还示出了多个修改的数字图像,包括利用各种模型尺度的相同位置处的人类轮廓。具体地,基于场景的图像编辑系统106利用上述尺度场模型(例如,在图51中)根据尺度场和为第一修改图像5800b生成的地面到地平线向量来生成第一修改图像5800b,该第一修改图像5800b包括在该位置处的人类轮廓5802b。图58还示出了第二修改图像5800c,包括在根据针对第二修改图像5800c估计的地面到地平线向量和相机高度的位置处的人类轮廓5802c。图58还示出了第三修改图像5800d,包括在根据为第三修改图像5800d估计的多个相机参数(例如,水平偏移/地平线、视场、相机滚动和相机高度)的位置处的人类轮廓5802d。如图所示,基于场景的图像编辑系统106利用尺度场来生成具有相对于基准真值图像5800a的精确缩放的第一修改图像5800b,而其他模型产生不精确的缩放。
下面的表2包括对多个不同图像数据集上的多个不同模型的模型缩放性能的测量。具体地,表2包括对来自各种数据集的样本的模型性能(例如,模型1、模型2和模型3的性能)的定量评估。模型1包括由在全景数据集上训练的基于场景的图像编辑系统106使用的尺度场模型。模型2包括用于生成上面在全景数据集上训练的图58的第二修改图像5800c的模型。模型3包括用于生成上面在全景数据集上训练的图58的第三修改图像5800d的模型。模型1*和模型2*是指在全景数据集和web图像数据集上训练的模型1和模型2。此外,Stanford2D3D对应于下文所述的数据集:Iro Armeni Sasha Sax,Amir R.Zamir,和SilvioSavarese,“Joint 2d-3d-semantic data for indoor scene understanding”(用于室内场景理解的联合2D-3D语义数据),arXiv:1702.01105(2017)。Matterport3D对应于下文描述的数据集:Angel Chang,Angela Dai,Thomas Funkhouser,Maciej Halber,MatthiasNiessner,Manolis Savva,Shuran Song,Andy Zeng,和Yinda Zhang,“Matterport3d:Learning from rgb-d data in indoor environments”(Matterport3d:从室内环境中的rgb-d数据中学习),3D视觉国际会议(2017)。
如上表所示,基于场景的图像编辑系统106利用尺度场来提供比其他模型更高的缩放精度。具体地,尺度度量表明,当用尺度场中提供的密集场信息替换全局参数预测时的性能。此外,如所指示的,在全景和web图像上训练基于场景的图像编辑系统106所使用的尺度场模型显著提高了对包括大量场景的web图像的缩放性能,而不会显著降低相对于在特定室内场景中具有有限范围的相机高度的其他数据集的性能。
在一个或多个实施例中,如上所述,基于场景的图像编辑系统106生成在二维图像中检测到的二维人类的三维表示。具体地,基于场景的图像编辑系统106生成表示二维图像中的二维人类的三维人类模型,以执行多个下游操作。例如,图59示出了基于场景的图像编辑系统106基于二维图像5900中的二维人类生成三维表示的概览。更具体地,图59示出了基于场景的图像编辑系统106利用二维人类的三维表示来基于三维表示的修改姿势来修改二维图像。
在一个或多个实施例中,基于场景的图像编辑系统106利用多个神经网络来生成对应于从二维图像5900提取的二维人类的三维人类模型5902。具体地,基于场景的图像编辑系统106利用神经网络来提取基于二维人类的姿势和形状信息,以在三维空间内生成三维人类模型5902。例如,如前所述,基于场景的图像编辑系统106生成二维图像5900的场景内的内容的三维表示。因此,基于场景的图像编辑系统106生成三维人类模型5902并将其插入到三维空间内相对于二维图像5900的其他内容的特定位置。
在一个或多个实施例中,如图59所示,基于场景的图像编辑系统106基于三维人类模型5902确定修改的三维人类模型5904。例如,基于场景的图像编辑系统106响应于经由与三维人类模型5902交互的图形用户界面的用户输入来生成重姿势的(reposed)三维人类模型。因此,基于场景的图像编辑系统106生成包括目标姿势的修改的三维人类模型5904。
此外,如图59所示,基于场景的图像编辑系统106利用修改的三维人类模型5904来生成修改的二维图像5906。具体地,基于场景的图像编辑系统106基于修改的三维人类模型5904生成包括修改的二维图像的修改的二维图像5906。因此,基于场景的图像编辑系统106提供用于基于三维空间中的相应三维表示在二维图像中对二维人类姿势进行重定姿(reposing)的工具。
尽管图59示出了基于场景的图像编辑系统106通过对三维人类模型5902进行重定姿来利用三维人类模型5902以生成修改的二维图像5906,但是在其他实施例中,基于场景的图像编辑系统106利用三维人类模型5902来执行与二维图像5900相关联的一个或多个附加下游操作。例如,基于场景的图像编辑系统106利用三维人类模型5902来确定三维空间中二维图像5900的对象之间的交互。此外,在一些实施例中,基于场景的图像编辑系统106利用三维人类模型5902来在三维空间中生成阴影(例如,如上所述,参考图40)。
根据一个或多个实施例,通过利用多个神经网络来生成二维图像中的人类的三维表示,基于场景的图像编辑系统106提供对二维图像中的人类姿势的实时编辑。具体地,与基于附加二维图像中的人类姿势在二维图像中提供人类的重定姿的传统系统相比,基于场景的图像编辑系统106基于用户对二维图像的输入来提供动态实时对二维图像中的人类进行重姿势。更具体地,基于场景的图像编辑系统106从单个单目图像提供对人类进行重姿势。
另外,基于场景的图像编辑系统106通过从二维图像中的二维人类提取三维姿势和三维形状信息来提供二维图像中的人类的准确重定姿。与基于附加二维图像中的不同人类的姿势对二维图像中人类进行重定姿的其他系统相比,基于场景的图像编辑系统106利用对二维图像中的人类的三维理解来对二维图像中的人类进行重定姿。具体地,基于场景的图像编辑系统106利用二维人类的三维表示来提供二维人类的三维表示的准确重定姿并且根据重定姿的三维表示重构二维人类。另外,与传统系统相比,当通过直接从二维图像提取人类的形状和姿势来对三维表示进行重定姿时,基于场景的图像编辑系统106保留人类的身体形状。此外,如下面更详细地描述的,基于场景的图像编辑系统106还提供改进的用户界面,其减少交互并提高实现系统在生成修改的数字图像中的效率(相对于需要与大量工具和像素进行大量用户交互以生成具有修改的姿势的图像的传统系统)。
如上所述,在一个或多个实施例中,基于场景的图像编辑系统106生成从二维图像提取的二维人类的三维表示。图60示出了基于场景的图像编辑系统106利用多个神经网络来生成二维图像6000中的人类的三维表示的示意图。具体地,基于场景的图像编辑系统106确定二维图像中的人类的三维特性,以执行各种下游操作,例如但不限于,对人类进行重定姿、生成阴影和/或确定与二维图像中的其他对象的交互。为了说明,基于场景的图像编辑系统106利用多个神经网络来提取在二维图像中检测到的人类的二维特性和三维特性,以基于人类重构三维人类模型。
在一个或多个实施例中,二维图像6000包括二维人类6002。例如,二维图像6000包括基于场景的图像编辑系统106从中提取与一个或多个人相关联的信息的照片或其他图像。为了说明,基于场景的图像编辑系统106利用二维姿势神经网络6004来提取与二维人类相关联的二维姿势数据。具体地,二维姿势神经网络6004包括二维身体追踪器,该二维身体追踪器检测/追踪图像中的人类并为二维人类6002生成二维姿势数据6006。更具体地,二维姿势数据6006包括与二维图像6000对应的二维空间内(例如,相对于x轴和y轴)的二维人类6002的姿势。
根据一个或多个实施例,基于场景的图像编辑系统106利用如下文所述的神经网络:Zhe Cao,Gines Hidalgo,Tomas Simon,Shih-En Wei,和Yaser Sheikh,“OpenPose:Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields”(OpenPose:基于部分亲和场的实时多人二维位姿估计),CVPS(2019),其通过引用整体并入本文。例如,二维姿势神经网络6004利用非参数表示(“部位亲和场”)来将特定身体部位与数字图像中检测到的个体相关联。在其他实施例中,基于场景的图像编辑系统106利用一个或多个使用人类检测和身体部位/关节检测和/或分割的附加神经网络来生成二维姿势数据6006。例如,基于场景的图像编辑系统106利用基于卷积神经网络的模型来通过网格图像特征图来检测铰接的二维姿势。
在一个或多个附加实施例中,基于场景的图像编辑系统106利用三维姿势/形状神经网络6008来提取二维图像6000中的二维人类6002的三维特性。具体地,基于场景的图像编辑系统106利用三维姿势/形状神经网络6008来基于二维人类6002生成三维姿势数据6010和三维形状数据6012。如上所述,基于场景的图像编辑系统106确定二维人类6002在三维空间中的三维姿势,同时维持二维人类6002在三维空间中的三维形状。例如,基于场景的图像编辑系统106生成包括二维图像6000的场景的三维表示的三维空间,并且生成检测到的人相对于场景的一个或多个其他对象(例如,背景)的三维姿势数据6010和三维形状数据6012。
基于场景的图像编辑系统106可以利用各种机器学习架构来重构三维人类姿势。根据一个或多个实施例,基于场景的图像编辑系统106利用如下文所述的神经网络:KevinLin,Lijuan Wang,和Zicheng Liu,“End-to-End Human Pose and Mesh Reconstructionwith Transformers”(基于变换器的端到端人类姿势和网格重构),CVPR(2021)(下文中称为“Lin”),其通过引用整体并入本文。具体地,基于场景的图像编辑系统106利用神经网络从单个单目图像重构三维人类姿势和网格顶点(例如,形状)。例如,三维姿势/形状神经网络6008包括基于变换器的编码器,用于联合建模顶点-顶点和顶点-关节交互,以联合生成三维关节坐标和网格顶点。在备选实施例中,基于场景的图像编辑系统106利用分离的神经网络从二维图像6000分别生成三维姿势数据6010和三维形状数据6012。
在一个或多个实施例中,如图60所示,基于场景的图像编辑系统106利用二维和三维数据来生成二维人类6002的三维表示。具体地,基于场景的图像编辑系统106通过将二维姿势数据6006与三维姿势数据6010和三维形状数据6012进行组合,来生成三维人类模型6014。例如,基于场景的图像编辑系统106利用二维姿势数据6006来细化三维姿势数据6010。此外,基于场景的图像编辑系统106利用三维形状数据6012结合细化的三维姿势数据来生成具有二维图像6000中的二维人类6002的姿势的三维人类模型6014,同时维持二维人类6002的形状。
如上所述,基于场景的图像编辑系统106通过从二维图像中提取姿势和形状数据来生成二维图像中的二维人类的三维表示。例如,如图61A-图61D所示,基于场景的图像编辑系统106生成并组合在二维图像中表示二维人类的二维数据和三维数据。具体地,基于场景的图像编辑系统106利用多个单独的神经网络来提取二维图像中的人类的二维和三维特性。基于场景的图像编辑系统106还利用一个或多个优化/细化模型来细化三维数据以用于人类的三维表示。
例如,如图61A所示,基于场景的图像编辑系统106基于二维图像6100中的二维人类生成二维姿势数据。在一个或多个实施例中,基于场景的图像编辑系统106基于二维图像6100生成图像掩蔽6102。具体地,基于场景的图像编辑系统106确定二维图像6100中包括人类的部分,并基于所标识的二维图像6100的部分生成图像掩蔽6102。在附加实施例中,基于场景的图像编辑系统106响应于在二维图像6100中检测到人类而裁剪二维图像6100。例如,基于场景的图像编辑系统106利用裁剪神经网络,该裁剪神经网络自动检测二维图像6100并将其裁剪到包括人类的二维图像6100的部分。
在一个或多个实施例中,基于场景的图像编辑系统106利用图像掩蔽6102来从二维图像6100提取姿势信息。例如,基于场景的图像编辑系统106将具有图像掩蔽6102的二维图像6100提供给二维姿势神经网络6104。备选地,基于场景的图像编辑系统106将基于二维图像6100和图像掩蔽6102的裁剪图像提供给二维姿势神经网络6104。在附加示例中,基于场景的图像编辑系统106向二维姿势神经网络6104提供二维图像6100(例如,未裁剪且没有图像掩蔽)。例如,基于场景的图像编辑系统106将二维图像6100提供给二维姿势神经网络6104,其生成与二维图像6100中的二维人类相对应的裁剪图像。
如上所述,在一个或多个实施例中,二维姿势神经网络6104包括检测和标识二维图像中的人类的二维身体追踪器。具体地,基于场景的图像编辑系统106利用二维姿势神经网络6104来检测二维图像6100中的人(例如,在对应于图像掩蔽6102的部分内)。此外,基于场景的图像编辑系统106利用二维姿势神经网络6104来生成与二维图像6100中的人类姿势相对应的二维姿势数据。
例如,如图61A所示,基于场景的图像编辑系统106利用二维姿势神经网络6104来为二维图像6100中的人生成二维骨架6106。具体地,基于场景的图像编辑系统106通过确定表示二维图像6100中的人类的身体结构的骨骼6108(经由各种关节连接)来生成二维骨架6106。为了说明,基于场景的图像编辑系统106确定对应于特定身体部分(四肢、躯干等)的骨骼6108的长度、位置和旋转,其与二维图像6100的二维空间相关。因此,基于场景的图像编辑系统106根据二维图像6100中的人类在像素坐标方面生成二维骨架6106。
在附加实施例中,基于场景的图像编辑系统106利用二维姿势神经网络6104来生成对应于二维图像6100的部分的边界框6110。具体地,基于场景的图像编辑系统106生成边界框6110以指示二维图像6100中的人类的一个或多个身体部位。例如,基于场景的图像编辑系统106标记对应于二维骨架6106中的一个或多个骨骼6108和/或一组或多组骨骼的身体部位。为了说明,基于场景的图像编辑系统106生成与人类全身相关的边界框。在一些实施例中,基于场景的图像编辑系统106还生成对应于手的单独边界框(例如,第一手的第一边界框和第二手的第二边界框)。
在一个或多个实施例中,基于场景的图像编辑系统106基于二维图像6100中的人类生成注释6112。具体地,基于场景的图像编辑系统106利用二维姿势神经网络6104,基于人类的的视觉特征,结合其他姿势数据(例如,二维骨架6106)来确定人类的一个或多个类别。例如,基于场景的图像编辑系统106生成指示人类全身在二维图像6100中是否可见、检测到的姿势是站立姿势(中立或非中立)还是非站立姿势和/或姿势的取向(例如,前、侧、后)的注释。在一些实施例中,基于场景的图像编辑系统106生成指示其他特征的附加注释,诸如人类是否持有对象、人类穿的是什么类型的衣服、以及可以影响人类的形状或姿势的其他细节。
结合在二维图像6100中生成人类的二维姿势数据,基于场景的图像编辑系统106还生成人类的三维姿势和形状数据。在至少一些实施例中,基于场景的图像编辑系统106利用一个或多个神经网络来从二维图像6100中提取人类的三维特性。例如,图61B示出了基于场景的图像编辑系统106利用多个神经网络来提取人类特定部分的三维姿势/形状数据。为了说明,基于场景的图像编辑系统106为二维图像6100的全身部分和一个或多个手部分生成单独的三维姿势/形状数据。
如图61B所示,基于场景的图像编辑系统106基于从二维图像6100提取的二维姿势数据来确定与二维图像6100对应的数据。例如,基于场景的图像编辑系统106确定与二维图像6100相关联的图像掩蔽6102a。此外,在一个或多个实施例中,基于场景的图像编辑系统106基于图像掩蔽6102a和二维图像6100来确定由二维姿势神经网络6104生成的边界框6110a和注释6112a。因此,基于场景的图像编辑系统106将从二维图像6100提取的数据提供给多个神经网络。在备选实施例中,基于场景的图像编辑系统106将二维图像6100提供给神经网络。
在一个或多个实施例中,基于场景的图像编辑系统106将从二维图像6100提取的数据提供给一个或多个神经网络以生成三维姿势数据和三维形状数据。具体地,基于场景的图像编辑系统106利用第一神经网络(例如,三维姿势/形状神经网络6114a)来生成二维图像6100中的人类的第一部分的三维姿势数据和三维形状数据。例如,基于场景的图像编辑系统106向三维姿势/形状神经网络6114a提供与二维图像6100中的二维人类的身体相对应的身体边界框。基于场景的图像编辑系统106还向三维姿势/形状神经网络6114a提供与二维人类的身体相关联的一个或多个注释。
在附加实施例中,基于场景的图像编辑系统106将从二维图像6100提取的数据提供给第二神经网络(例如,三维手神经网络6114b)以生成三维姿势数据以及二维图像6100中人类的第二部分的三维姿势数据。例如,基于场景的图像编辑系统106向三维手神经网络6114b提供与二维图像6100中的二维人类的一个或多个手相对应的一个或多个手部边界框。在一些实施例中,基于场景的图像编辑系统106向三维手神经网络6114b提供与二维人类的(多只)手相关联的一个或多个注释。
根据一个或多个实施例,基于场景的图像编辑系统106利用神经网络为二维图像6100中的二维人类的不同部分生成三维姿势数据和三维形状数据。具体地,基于场景的图像编辑系统106利用单独的神经网络生成身体和手部姿势/形状数据。例如,基于场景的图像编辑系统106利用三维姿势/形状神经网络6114a来生成二维图像6100中人类的身体部分的三维姿势数据和三维形状数据。此外,基于场景的图像编辑系统106利用三维手神经网络6114b来生成针对二维图像6100的(多只)手部分的三维姿势数据和三维形状数据。
例如,基于场景的图像编辑系统106利用三维姿势/形状神经网络6114a来生成与二维图像6100中的人相对应的三维骨架6116a。为了说明,基于场景的图像编辑系统106生成对应于三维空间内的二维图像6100中的人类的骨骼6118a。更具体地,基于场景的图像编辑系统106确定骨骼6118a在三维空间中的长度、旋转、方向和相对位置。此外,基于场景的图像编辑系统106确定在三维空间中连接骨骼的关节,包括确定对应于骨骼6118a及其相应关节的一个或多个可能的旋转角度。
在一个或多个实施例中,基于场景的图像编辑系统106还利用三维姿势/形状神经网络6114a来为二维图像6100中的人类的身体部分生成三维形状6120a。具体地,基于场景的图像编辑系统106通过基于在二维图像6100中检测到的人类的形状来生成三维空间内的多个顶点的网格来生成三维形状6120a。例如,基于场景的图像编辑系统106根据检测到的人类的形状生成由多条边连接的顶点,每个顶点具有对应的三维坐标。
结合生成三维骨架6116a和三维形状6120a,基于场景的图像编辑系统106生成与二维图像6100中的人类的身体部分相对应的三维身体模型6122。具体地,基于场景的图像编辑系统106将三维骨架6116a与三维形状6120a组合以生成三维身体模型6122。例如,基于场景的图像编辑系统106基于三维形状6120a生成具有默认姿势(例如,具有t-姿势的装配网格)的三维身体模型6122。基于场景的图像编辑系统106根据三维骨架6116a来修改三维身体模型6122,例如通过调整三维形状6120a的姿势以将三维身体模型6122的部分适配到骨骼6118a。
根据一个或多个实施例,基于场景的图像编辑系统106利用三维手神经网络6114b来生成与二维图像6100中的人类的手部分相对应的三维手骨架6116b。具体地,基于场景的图像编辑系统106生成与三维空间内的二维图像6100中的人类的手部分相对应的骨骼6118b。例如,基于场景的图像编辑系统106确定骨骼6118b在三维空间中的长度、旋转、方向和相对位置。为了说明,基于场景的图像编辑系统106确定在三维空间中连接手部骨骼的关节,包括确定对应于骨骼6118b及其相应关节的一个或多个可能的旋转角度。
根据一个或多个实施例,基于场景的图像编辑系统106还利用三维手神经网络6114b来为二维图像6100中的人类的手部分生成三维手部形状6120b。具体地,基于场景的图像编辑系统106通过基于在二维图像6100中检测到的手部的形状来生成三维空间内的多个顶点的网格来生成三维手部形状6120b。例如,基于场景的图像编辑系统106根据检测到的手的形状生成由多条边连接的顶点,每个顶点具有对应的三维坐标。
此外,基于场景的图像编辑系统106生成与二维图像6100中的人类的手部分相对应的三维手部模型6124。具体地,基于场景的图像编辑系统106将三维手部骨架6116b与三维手部形状6120b组合以生成三维手部模型6124。在一个或多个实施例中,基于场景的图像编辑系统106基于三维手部形状6120b生成具有默认姿势(例如,具有手在三维空间中的特定取向和/或手指的特定张开)的三维手部模型6124。此外,基于场景的图像编辑系统106根据三维手部骨架6116b来修改三维手部模型6124,例如通过调整三维手部形状6120b的姿势以将三维手部模型6124的部分适配到骨骼6118b。
在一个或多个实施例中,基于场景的图像编辑系统106生成对应于二维图像6100中的每个人类的手的多个三维手部模型。具体地,基于场景的图像编辑系统106利用三维手神经网络6114b来为二维图像6100中的每一只手生成分离的三维手部模型。例如,基于场景的图像编辑系统106利用从二维图像6100提取的多个手部边界框来生成多个三维手部模型。
根据一个或多个实施例,基于场景的图像编辑系统106对三维姿势/形状神经网络6114a和三维手部神经网络6114b使用相同的神经网络结构。例如,如前所述,基于场景的图像编辑系统106利用Lin中描述的神经网络的不同实例来生成二维图像6100中的人类的一个或多个部分的一个或多个三维表示。基于场景的图像编辑系统106生成用于从二维图像提取特定于身体或特定于手的三维姿势/形状数据的单独实例。为了说明,基于场景的图像编辑系统106训练三维姿势/形状神经网络6114a以基于包括身体和对应的三维身体模型的训练数据集从二维图像的身体提取三维姿势/形状数据。此外,基于场景的图像编辑系统106基于包括手和对应的三维手部模型的训练数据集来训练三维手神经网络6114b,以从二维图像的手部提取三维姿势/形状数据。在备选实施例中,基于场景的图像编辑系统106使用针对三维姿势/形状神经网络6114a和三维手部神经网络6114b的不同架构。
响应于生成二维姿势数据和三维姿势数据,基于场景的图像编辑系统106、基于场景的图像编辑系统106执行一个或多个优化操作以生成二维图像中的人类的最终三维表示。例如,图61C示出了基于场景的图像编辑系统106执行与生成三维人类模型相关的第一优化操作。更具体地,基于场景的图像编辑系统106利用第一优化操作来将二维图像中对应于人类的三维数据与二维图像中对应于人类的一个或多个手的三维数据进行组合。
如图61C所示,基于场景的图像编辑系统106利用合并模型6126来对三维身体模型6122和三维手部模型6124(例如,如图61B中生成的)进行合并。例如,基于场景的图像编辑系统106利用合并模型6126,通过根据相机空间在三维空间内将三维手部模型6124与三维身体模型6122连接来生成三维人类模型6128。具体地,给定与三维手部模型6124对应的裁剪的手部区域,基于场景的图像编辑系统106利用合并模型6126来生成相机空间中的预测三维手关节位置和图像空间(例如,对应于二维图像的二维空间)中的预测二维关节位置。
此外,基于场景的图像编辑系统106利用合并模型将预测的三维手关节位置分配给三维手部模型6124中的全身三维关节的手腕。具体地,基于场景的图像编辑系统106利用合并模型来从手预测(例如,在三维手部模型6124中)减去手腕的三维位置,并且从全身预测(例如,从三维身体模型6122)添加手腕的三维位置。另外,在一个或多个实施例中,基于场景的图像编辑系统106(例如,基于图61B的图像掩蔽6102a)将裁剪图像的图像坐标映射到完整图像坐标。基于场景的图像编辑系统106利用合并模型6126根据映射的坐标将全身预测的二维手关节位置替换为预测的二维手关节位置。基于场景的图像编辑系统106还使用更新后的二维关节来连接三维身体模型6122和三维手部模型6124来优化三维关节。
根据一个或多个实施例,基于场景的图像编辑系统106还执行第二优化操作以生成二维图像中的人类的最终表示。例如,图61D示出了基于场景的图像编辑系统106执行优化操作,以根据为人生成的二维姿势数据来细化二维图像中为人生成的三维姿势数据。具体地,基于场景的图像编辑系统106利用关于与二维图像相关联的相机视图的信息来基于二维姿势数据来修改三维姿势数据。
如图61D所示,基于场景的图像编辑系统106基于二维骨架6106(例如,包括骨骼6108)来细化三维骨架6116a(例如,包括骨骼6118a),如关于图61A所描述的。在一个或多个实施例中,基于场景的图像编辑系统106利用骨骼位置细化模型6130来基于与二维骨架6106中的骨骼6108相对应的位置、取向和关节,来细化与三维骨架6116a中的骨骼6118a相对应的位置、取向和关节。
在一个或多个实施例中,基于场景的图像编辑系统106利用骨骼位置细化模型6130来修改三维骨架6116a中的骨骼6118a的位置和取向,以减小相对于二维骨架6106中的骨骼6108的差异。例如,基于场景的图像编辑系统106以二维骨架6106的骨骼6108作为指导参考,将三维骨架6116a中的骨骼6118a提供给骨骼位置细化模型6130。基于场景的图像编辑系统106利用骨骼位置细化模型6130来迭代调整三维骨架6116a,以减小三维骨架6116a与二维骨架6106之间的差异。在一个或多个实施例中,基于场景的图像编辑系统106联合修改三维骨架6116a的骨骼6118a的位置和取向,以根据三维人类模型的形状维持三维骨架6116a的结构/形状。
在一个或多个实施例中,基于场景的图像编辑系统106生成二维图像中的二维人类的三维表示,以用于执行各种下游操作。例如,基于场景的图像编辑系统106生成用于在二维图像中对二维人类进行重定姿的三维表示。图62示出了基于场景的图像编辑系统106修改包括二维人类的二维图像6200的图示。更具体地,基于场景的图像编辑系统106通过经由二维人类的三维表示修改二维人类的姿势来修改二维图像6200。
根据一个或多个实施例,基于场景的图像编辑系统106生成表示二维图像6200中的二维人类的三维人类模型6202。具体地,如上所述,基于场景的图像编辑系统106利用一个或多个神经网络来生成三维人类模型6202。例如,基于场景的图像编辑系统106提取与二维空间和三维空间中的二维人类相关联的姿势和形状数据,以在三维空间内生成三维人类模型6202。
在至少一些实施例中,基于场景的图像编辑系统106提供三维人类模型6202以供在用于修改三维人类模型6202的姿势的客户端设备处显示。例如,基于场景的图像编辑系统106基于重定姿输入6206确定三维人类模型6202的修改姿势。为了说明,重定姿输入6206包括经由一个或多个图形用户界面元素直接修改三维人类模型6202的姿势的输入。基于场景的图像编辑系统106根据修改的姿势生成修改的三维人类模型6204。
在一些实施例中,结合基于修改的三维人类模型6204修改二维图像6200,基于场景的图像编辑系统106还提取对应于三维人类模型6202的纹理图6208。具体地,基于场景的图像编辑系统106从与三维人类模型6202相关的二维图像6200的像素值提取纹理图6208。例如,基于场景的图像编辑系统106利用神经网络来生成纹理图6208,包括从图像空间到三维人类模型6202的UV映射。因此,纹理图6208包括基于二维图像6200中的像素值和对应位置映射到三维人类模型6202的特定点(例如,顶点或面)的像素值。
此外,在一个或多个实施例中,基于场景的图像编辑系统106确定修改的三维人类模型6204的中间表示。具体地,基于场景的图像编辑系统106通过向修改的三维人类模型6204中的每个点分配特定值(例如,二维阵列中身体上的每个点的独特值),来生成修改的三维人类模型6204的密集表示。在一些实施例中,密集表示中的值包括颜色值,使得修改的三维人类模型6204的每个点具有不同的分配颜色值。相应地,不同的姿势会产生不同的密集表示。
在一个或多个实施例中,基于场景的图像编辑系统106利用生成器神经网络6212来根据修改的三维人类模型6204生成修改的二维图像6214。例如,基于场景的图像编辑系统106将纹理图6208和中间表示6210提供给生成器神经网络6212,以生成修改的二维图像6214。在一些实施例中,基于场景的图像编辑系统106还向生成器神经网络6212提供二维图像6200(或二维图像6200中的二维人类的姿势的附加中间表示)。
基于场景的图像编辑系统106利用生成器神经网络6212来生成修改的二维图像6214,以包括根据由中间表示6210和纹理图6208指示的目标姿势而被重定姿的二维人类。为了说明,生成器神经网络6212预测修改的二维图像6214中的二维人类的姿势和位置。此外,在一个或多个实施例中,生成器神经网络6212基于由二维图像6200和/或纹理图6208提供的上下文信息,来生成修改的二维图像6214中的二维人类和/或背景的一个或多个部分的一个或多个纹理。
在一个或多个实施例中,基于场景的图像编辑系统106利用如下文所述的生成器神经网络:2023年3月27日提交的,题为“SYNTHESIZING A MODIFIEDDIGITAL IMAGEUTILIZING AREPOSING MODEL”(利用重定姿模型合成修改的数字图像)的美国专利申请第18/190,636号,其通过引用整体并入本文。具体地,基于场景的图像编辑系统106利用生成器神经网络6212经由从二维图像6200提取的特征来生成修改的二维图像6214。例如,基于场景的图像编辑系统106利用生成器神经网络6212来根据与二维人类相关联的局部特征来修改二维人类的姿势,同时维持在二维图像6200中标识的全局特征。因此,基于场景的图像编辑系统106根据二维图像6200的场景内的目标姿势提供修改的二维人类的视觉特征。
在一个或多个实施例中,基于场景的图像编辑系统106在图形用户界面内提供用于经由三维表示修改二维图像中的人类姿势的工具。此外,基于场景的图像编辑系统106在图形用户界面内提供用于基于人类的修改姿势生成修改的二维图像的工具。图63A-图63G示出了客户端设备的图形用户界面,该客户端设备用于通过对二维图像中的二维人类的三维表示的姿势修改来修改该二维图像。
图63A示出了客户端设备处的客户端应用的图形用户界面。例如,客户端应用包括用于执行各种图像编辑任务的数字图像编辑应用。在一个或多个实施例中,客户端设备显示包括涉及二维人类6302的场景的二维图像6300。具体地,如图所示,二维图像6300包括在各种对象的背景下的二维人类6302。
在一个或多个实施例中,基于场景的图像编辑系统106利用一个或多个神经网络来从二维图像6300检测和提取二维人类6302。例如,基于场景的图像编辑系统106通过为包括二维人类6302的像素生成图像掩蔽来提取二维人类6302。为了说明,基于场景的图像编辑系统106利用经训练以检测数字图像中的人类的神经网络。此外,在一些实施例中,基于场景的图像编辑系统106利用图像掩蔽来生成包括二维人类6302的裁剪图像(例如,用于在对二维图像6300执行一个或多个操作的同时存储在存储器中)。
根据一个或多个实施例,基于场景的图像编辑系统106利用裁剪后的图像来生成二维人类6302的三维表示。具体地,图63B示出了基于场景的图像编辑系统106生成表示二维图像6300中的二维人类6302的三维人类模型6304。例如,基于场景的图像编辑系统106生成三维人类模型6304以作为图形用户界面内的二维图像6300上的覆盖显示。为了说明,基于场景的图像编辑系统106基于检测到的二维人类6302的姿势来生成三维人类模型6304(例如,利用如上所述的多个神经网络),并且在图形用户界面内在二维人类6302的顶部显示三维人类模型6304。
在一些实施例中,客户端设备在与二维图像6300的二维人类6302对应的图形用户界面内的位置处显示三维人类模型6304。具体地,基于场景的图像编辑系统106将三维人类模型6304放置在基于从二维图像6300中的二维人类6302到三维人类模型6304的特征的映射的位置处。例如,基于场景的图像编辑系统106基于检测到的与三维人类模型6304的部分相对应的二维人类6302的特征(例如,根据纹理图)来放置三维人类模型6304。在一些实施例中,基于场景的图像编辑系统106根据二维图像6300的图像空间来确定用于放置三维人类模型6304的坐标。
在至少一些实施例中,基于场景的图像编辑系统106提供三维人类模型6304以在没有纹理的图形用户界面内显示。为了说明,客户端设备显示具有默认纹理(例如,诸如灰色的纯色)的三维人类模型6304。备选地,客户端设备显示具有基于图63A中的二维人类6302的纹理的三维人类模型6304。例如,基于场景的图像编辑系统106响应于对三维人类模型6304的修改而生成估计纹理,并在三维人类模型6304上显示估计纹理。
根据一个或多个实施例,基于场景的图像编辑系统106提供用于经由三维人类模型6304的姿势来修改二维人类6302的姿势的工具。例如,基于场景的图像编辑系统106提供用于响应于姿势修改工具的选择来修改三维人类模型6304的姿势的一个或多个工具。备选地,基于场景的图像编辑系统106提供用于响应于与二维图像6300相关联的意图的上下文确定来修改三维人类模型6304的姿势的一个或多个工具。为了说明,基于场景的图像编辑系统106提供用于响应于在二维图像6300中检测到二维人类6302来修改三维人类模型6304的姿势的工具。在一些实施例中,基于场景的图像编辑系统106响应于经由图形用户界面选择二维图像6300中的二维人类6302来提供工具。
图63C示出了客户端设备显示指示三维人类模型的可修改部分的一个或多个图形元素。具体地,如图所示,客户端设备显示三维人类模型6306,该三维人类模型6306包括指示三维人类模型6306中的可修改关节的多个点。例如,客户端设备为三维人类模型6306中的每个互动点(例如,每个关节)显示可选择元素。在一个或多个实施例中,基于场景的图像编辑系统106基于对应于三维人类模型6306的三维骨架中的关节或其他姿势信息来确定要与三维人类模型6306一起显示的点。
在一个或多个附加实施例中,基于场景的图像编辑系统106还提供用于查看二维图像在三维空间中的投影的工具。例如,图63D示出了基于场景的图像编辑系统106在三维空间内生成的图63A的二维图像6300的三维表示6308。具体地,基于场景的图像编辑系统106生成表示二维图像6300的内容的三维网格(例如,经由一个或多个神经网络)。为了说明,基于场景的图像编辑系统106基于二维图像6300中的一个或多个前景对象和/或一个或多个背景对象,生成包括深度位移信息的三维表示6308。因此,基于场景的图像编辑系统106生成包括与图63A中所示的二维人类6302相对应的部分的三维表示6308。
根据一个或多个实施例,基于场景的图像编辑系统106生成与二维人类相关联的三维人类模型6306a(例如,如图63d中所示)。此外,基于场景的图像编辑系统106基于三维表示6308的、与二维人类相对应的部分的位置,在三维空间内定位三维人类模型6306a。为了说明,基于场景的图像编辑系统106将三维人类模型6306a插入在与三维表示6308的与二维人类相对应的部分相同的位置处,或在三维表示6308的与二维人类相对应的部分之前(例如,相对于相机位置)。在一些实施例中,如图所示,诸如响应于用户输入在三维空间内旋转三维表示6308,客户端设备修改所显示的二维图像以示出三维表示6308。在备选实施例中,基于场景的图像编辑系统106在图形用户界面内隐藏三维表示6308,同时使用三维空间来修改二维图像6300。
在一个或多个实施例中,响应于经由客户端设备的图形用户界面与点的交互,客户端设备显示具有二维图像的一个或多个附加交互元素6300。例如,图63E示出了客户端设备显示图63A的二维图像6300的三维表示6308A的第二视图。响应于选择在表示二维图像6300的二维人类6302的三维人类模型6306b上被显示的点,基于场景的图像编辑系统106显示交互元素6310。具体地,客户端设备显示交互元素6310,其包括用于响应于一个或多个输入来改变所选关节在三维空间内的旋转的一个或多个轴。为了说明,基于场景的图像编辑系统106利用逆运动学来改变三维人类模型6306b的一个或多个部分的位置和/或旋转,以响应在所选择的点处与交互元素6310的一个或多个交互。
根据一个或多个实施例,基于场景的图像编辑系统106还利用一个或多个约束来确定三维人类模型6306b的修改姿势。具体地,基于场景的图像编辑系统106基于与三维人类模型6306b的一部分(例如,所选关节)对应的一个或多个姿势先验来确定该部分的一个或多个运动约束。例如,基于场景的图像编辑系统106基于典型的髋关节旋转角度来确定三维人类模型6306b的髋关节的一个或多个旋转角度。因此,基于场景的图像编辑系统106基于与髋关节相关联的运动约束来限制三维人类模型6306b的一个或多个腿部的旋转。
在一个或多个实施例中,基于场景的图像编辑系统106提供用于基于预先构建的姿势库来对三维人类模型6306b进行重定姿的附加工具。例如,客户端设备显示用户可以从中选择的姿势列表。响应于姿势的选择,基于场景的图像编辑系统106基于所选择的姿势修改三维人类模型6306b的姿势。为了说明,基于场景的图像编辑系统106从选择的姿势获得骨骼位置和关节信息(例如,旋转/角度),并根据获得的骨骼位置和关节信息修改三维人类模型6306b的三维骨骼。
图63F示出了显示三维表示6308b的客户端设备,其包括包含修改姿势的修改三维人类模型6312。具体地,基于场景的图像编辑系统106响应于与一个或多个交互元素(例如,与修改的三维人类模型6312的特定部分相对应的交互元素6310a)的一个或多个交互,来修改三维人类模型的一个或多个部分。因此,如图所示,基于场景的图像编辑系统106根据三维人类模型的一个或多个部分的一个或多个旋转和/或位置改变,来修改表示二维图像中的二维人类的三维人类模型。基于场景的图像编辑系统106基于姿势修改输入来提供修改的三维人类模型6312以在客户端设备处显示。
在一个或多个实施例中,基于场景的图像编辑系统106还结合一个或多个姿势修改输入来提供对三维人类模型的姿势的改变的描绘。例如,基于场景的图像编辑系统106修改与姿势修改输入一起显示在客户端设备处的三维人类模型的姿势。为了说明,基于场景的图像编辑系统106根据三维人类模型的初始姿势(例如,如图63E所示)和三维人类模型的目标姿势(例如,如图63F所示)来确定三维人类模型的一个或多个部分的运动范围。基于场景的图像编辑系统106在图形用户界面内显示三维人类模型的一个或多个部分的运动范围(例如,通过跟随移动或旋转三维人类模型的一部分的光标或触摸输入)。
在一些实施例中,基于场景的图像编辑系统106还结合对三维人类模型的更新来更新二维人类。例如,基于场景的图像编辑系统106确定与三维人类模型的一个或多个部分相对应的二维人类的一个或多个部分的相应运动范围。为了说明,基于场景的图像编辑系统106确定姿势修改输入对三维人类模型的一部分进行修改。基于场景的图像编辑系统106确定二维人类的相应部分,并基于对三维人类模型的修改来实时更新二维人类的姿势。在备选实施例中,基于场景的图像编辑系统106响应于提交动作或基于修改的三维人类模型以预定时间间隔更新二维图像中的二维人类6312。
图63G示出了基于图63F的修改的三维人类模型6312显示修改的二维图像6314的客户端设备。具体地,基于场景的图像编辑系统106利用神经网络基于二维图像6300(例如,如图63A所示)和修改的三维人类模型6312来生成修改的二维图像6314。例如,基于场景的图像编辑系统106基于修改的三维人类模型6132的修改的姿势,生成修改的二维人类6316以包括修改的姿势。此外,在一个或多个实施例中,基于场景的图像编辑系统106根据修改的姿势(例如,基于二维人类的初始纹理图)生成二维人类的一个或多个更新的纹理。为了说明,基于场景的图像编辑系统106为先前不可见的二维人类的部分(例如,手臂或腿的先前隐藏的部分)生成更新的像素值,或者基于修改的姿势修改衣服的纹理。响应于确定背景的一个或多个部分响应于修改的姿势而显露,基于场景的图像编辑系统106还生成对应于二维人类后面的背景的一个或多个修复部分。
在一个或多个实施例中,如上所述,基于场景的图像编辑系统106通过在二维图像中对二维人类进行重定姿,来生成修改的二维图像。图64示出了与修改二维图像中的二维人类的姿势相关联的数字图像。具体地,图64示出了包括具有初始姿势的二维人类6402的第一二维图像6400。图64还响应于修改表示二维人类6402的相应三维人类模型的姿势来生成第二二维图像6404。具体地,第二二维图像6404包括基于修改的姿势的修改的二维人类6406。此外,图64示出了基于场景的图像编辑系统106基于表示二维人类6402的三维人类模型的修改姿势生成的中间表示6408。
在附加实施例中,基于场景的图像编辑系统106提供用于经由三维表示对二维图像中的二维人类执行附加操作的工具。根据一个或多个实施例,如前所述,基于场景的图像编辑系统106提供用于根据基于场景的图像编辑系统106为二维人类生成的三维表示来修改二维人类的衣服的工具。图65示出了包括二维人类和修改的二维图像6502的二维图像6500。具体地,基于场景的图像编辑系统106响应于与二维图像6500中表示二维人类的三维人类模型的交互来生成修改的二维图像6502,以改变二维人类上的服装图案(例如,通过修改二维图像6500中表示二维人类的三维人类模型的纹理图)。
尽管图65示出了基于场景的图像编辑系统106通过改变二维人类的衣服的纹理来修改二维图像中的二维人类,但是基于场景的图像编辑系统106备选地通过确定二维人类中的一个或多个对象之间的交互来修改二维人类。例如,基于场景的图像编辑系统106确定对应于二维图像的三维空间中的三维对象与表示二维人类的三维人类模型之间的交互。为了说明,基于场景的图像编辑系统106提供用于与场景中的对象交互的工具,包括表示二维人类的三维人类模型,并确定这些交互如何影响场景中的其他对象。
作为示例,基于场景的图像编辑系统106确定重定姿的三维人类模型与一个或多个服装对象之间的交互。具体地,修改三维人类模型的姿势可以影响衣物(例如,帽子或衬衫)的位置、形状或其他属性,这允许基于场景的图像编辑系统106提供用于试穿新服装等的工具。在附加示例中,基于场景的图像编辑系统106确定重定姿的三维人类模型与一个或多个背景对象之间的交互。为了说明,修改三维人类模型的姿势可以使该三维人类模型的一部分接触背景对象。在一个或多个实施例中,基于场景的图像编辑系统106基于二维图像中场景的三维表示来确定是否发生这种交互,并根据交互对三维人类模型的姿势施加限制(例如,通过防止人类的手臂或腿与家具相交)。
在附加实施例中,基于场景的图像编辑系统106利用在二维图像中表示二维人类的所生成的三维人类模型来基于二维图像中的照明来执行一个或多个附加操作。例如,基于场景的图像编辑系统106利用二维图像的场景的三维表示来结合修改二维图像的内容来再现阴影。为了说明,如前所述,响应于在三维空间内进行重姿势和/或移动三维人类模型,基于场景的图像编辑系统106利用三维人类模型来生成二维图像的逼真阴影。
根据一个或多个实施例,基于场景的图像编辑系统106还提供用于理解对象在三维空间内的三维定位的工具。具体地,在一个或多个实施例中,基于场景的图像编辑系统106利用对二维图像的场景的三维理解来确定场景内对象的相对位置。此外,基于场景的图像编辑系统106利用对场景的三维理解来生成并显示与图像中的对象的选择相关的平面表面(planar surface)。因此,基于场景的图像编辑系统106提供了改进的图形用户界面,用于修改三维空间内的对象,从而更好地视觉理解对象在场景内的定位。
图66示出了基于场景的图像编辑系统106生成并显示用于修改场景的三维表示中的对象的平面表面的概览图。具体地,图66示出了基于场景的图像编辑系统响应于对三维场景内的对象的选择而生成与所选择的对象的位置相对应的平面表面。基于场景的图像编辑系统106将平面表面映射到对象,使得对三维空间内的对象的修改(例如,对对象的位置的修改)导致如在图形用户界面内显示的那样修改平面表面。
在一个或多个实施例中,基于场景的图像编辑系统106生成或以其他方式确定包括多个对象的三维场景6600。例如,基于场景的图像编辑系统106可选地利用一个或多个神经网络来从二维图像6602提取内容并生成包括二维图像6602中的对象的三维场景6600。为了说明,基于场景的图像编辑系统106生成表示三维空间内的二维图像6602中的一个或多个对象(例如,前景和/或背景对象)的一个或多个三维网格。具体地,基于场景的图像编辑系统106生成表示二维图像中的一个或多个前景对象的一个或多个前景三维网格以及表示二维图像中的背景的背景三维网格。在备选实施例中,基于场景的图像编辑系统106确定三维场景6600,包括表示三维空间内的任何对象集合的三维网格(例如,经由三维模型应用生成的三维网格)。
根据一个或多个实施例,基于场景的图像编辑系统106从三维场景6600确定所选对象6604。具体地,基于场景的图像编辑系统106响应于指示选择的对象6604的输入,确定从三维场景6600内的多个对象中选择对象。例如,基于场景的图像编辑系统106结合修改三维场景6600内的所选对象6604的请求来确定所选对象6604。在一些实施例中,基于场景的图像编辑系统106确定三维场景6600中的多个所选对象(例如,结合一起修改多个所选对象的请求)。
在一个或多个附加实施例中,基于场景的图像编辑系统106基于所选对象6604(或包括所选对象6604的一组所选对象)生成平面表面6606。具体地,基于场景的图像编辑系统106确定所选对象6604(或所选对象6604的一部分)在三维空间内相对于该三维空间内的一个或多个轴的三维位置。此外,基于场景的图像编辑系统106根据所选择的对象6604的三维位置来生成平面表面6606。基于场景的图像编辑系统106还提供平面表面6606,用于结合修改三维场景6600中的所选对象6604在客户端设备的图形用户界面内显示。
在一个或多个实施例中,基于场景的图像编辑系统106利用平面表面6606来提供所选对象6604在三维空间内移动的视觉指示。具体地,在受限状况下修改三维空间内的对象对用户来说可能是受限和令人困惑的。例如,由于在二维编辑空间内表示三维空间,根据给定固定相机位置(例如,固定编辑视点)的场景的三维理解来修改场景中的对象可能是具有挑战性的。为了说明,根据对象的大小和/或所选对象相对于相机视图或地平线的位置,准确地表示对象在二维编辑空间内的相对三维位置可能是具有挑战性的。基于场景的图像编辑系统106通过提供平面指南来帮助理解场景的三维特性,从而在二维编辑空间内提供改进的对象交互。
根据一个或多个实施例,基于场景的图像编辑系统106利用在二维编辑空间内显示的平面表面来指示特定对象在三维空间内的三维位置。为了说明,基于场景的图像编辑系统106结合相应对象的移动来显示和移动三维空间内的平面表面。因此,基于场景的图像编辑系统106提供与变换二维编辑空间内的三维场景中的对象有关的附加视觉内容。一些传统的图像编辑系统提供指导或可见轴来帮助用户在编辑空间中编辑数字内容,这可能难以从单个视点来解释。与这些传统系统形成对比的是,基于场景的图像编辑系统106结合平面表面利用对场景中的对象的三维理解,以经由固定相机的二维编辑空间提供对象的直观且连续的变换/移动。为了说明,通过提供与修改三维空间中的对象有关的变换平面,基于场景的图像编辑系统106基于图像空间中的移动来提供三维场景中向前-向后或向上-向下移动的视觉指示。
图67示出了包括与基于场景的图像编辑系统106相关联的附加细节的示图,所述基于场景的图像编辑系统106生成并显示用于变换三维场景中的对象的平面表面。具体地,图67示出了包括三维空间内的多个对象的三维场景6700。例如,如前所述,基于场景的图像编辑系统106确定包括二维图像中的二维场景的三维表示的三维场景6700(例如,通过为二维场景中的对象生成三维网格)。因此,基于场景的图像编辑系统106确定三维特性(例如,三维空间内场景中的对象的三维形状和/或坐标)。
在一个或多个实施例中,如图67所示,基于场景的图像编辑系统106从三维场景6700确定所选对象6702(或所选对象组)。具体地,响应于选择三维场景6700中的对象的用户输入,基于场景的图像编辑系统106接收所选对象6702的指示。备选地,基于场景的图像编辑系统106响应于选择三维场景6700中的对象的自动过程(例如,响应于利用一个或多个神经网络来推断与编辑数字图像有关的意图)来确定所选对象6702。在一些实施例中,基于场景的图像编辑系统106在显示三维场景6700的图形用户界面内突出显示所选对象6702。
根据一个或多个实施例,基于场景的图像编辑系统106确定所选对象6702(或所选对象组)的特定部分,以生成指示所选对象6702在三维空间中的位置的图形元素。例如,图67示出了所选对象6702的对象部分6704的指示。为了说明,基于场景的图像编辑系统106基于所选对象6702在三维空间内沿一个或多个轴的位置来确定所选对象6702的部分。在一些实施例中,基于场景的图像编辑系统106标识对应于沿特定轴的最小值的顶点或一组顶点,诸如沿着z轴或垂直轴的最低部分或所选对象6702相对于三维场景6700的相机视图的底部。
如图67所示,基于场景的图像编辑系统106还确定与三维空间内的对象部分6704相对应的三维位置值6706。具体地,基于场景的图像编辑系统106标识与对象部分6704的位置相对应的三维空间内的三维坐标。为了说明,响应于沿特定轴或一组轴标识所选对象6702的最低部分(例如,底部),基于场景的图像编辑系统标识最低部分的三维坐标。在至少一些实施例中,三维位置值6706包括对象部分6704沿垂直轴的最小值。在备选实施例中,三维位置值6706对应于所选对象6702的不同部分,诸如所选对象6702的顶部、中心或质心。
根据一个或多个实施例,响应于确定三维位置值6706,基于场景的图像编辑系统106生成对应于三维位置值6706的平面表面6708。具体地,基于场景的图像编辑系统106沿三维空间内的两个或更多个轴生成平面表面6708。例如,基于场景的图像编辑系统106生成沿两个或更多个轴与三维位置值6706相交的无限平面或部分平面。为了说明,基于场景的图像编辑系统106在沿x轴和y轴的三维位置值处生成平面表面6708,使得平面表面6708具有相同的z轴值(例如,沿平面表面6708的恒定高度)。在备选实施例中,基于场景的图像编辑系统106沿着多于两个轴生成平面表面6708,例如沿着三维场景6700内的平坦、成角度的表面(例如,沿着对象部分6704的表面)。
在至少一些实施例中,基于场景的图像编辑系统106基于但不与三维位置值6706相交,在三维空间内的特定位置处生成平面表面6708。例如,基于场景的图像编辑系统106沿三维空间中的一个或多个轴确定与三维位置值6706相距一定距离处的附加三维位置值。为了说明,基于场景的图像编辑系统106通过沿垂直轴将预定位移值应用于三维位置值6706来确定附加三维位置值。在一些实施例中,基于场景的图像编辑系统106在距离三维位置值6706特定距离处的附加对象的表面上生成平面表面6708。
除了生成平面表面6708之外,基于场景的图像编辑系统106还生成平面表面6708的纹理6710。具体地,基于场景的图像编辑系统106生成纹理6710以指示平面表面6708是帮助修改三维空间内的对象的视觉元素。在一个或多个实施例中,基于场景的图像编辑系统106生成用于显示平面表面6708的部分透明纹理,同时还从图形用户界面中的相机视图的角度提供平面表面6708后面或下面的对象/内容的视觉指示。此外,在一些实施例中,基于场景的图像编辑系统106为平面表面6708(例如,为平面表面6708的不同部分或为平面表面6708的不同状态)生成多个纹理。
根据一个或多个实施例,基于场景的图像编辑系统106在图形用户界面内显示具有三维场景6700的平面表面6708。具体地,图67示出了基于场景的图像编辑系统106在图形用户界面内提供所显示的平面表面6712。例如,基于场景的图像编辑系统106在包括三维场景6700的三维空间内的三维位置值6706处或者在基于三维位置值6706的附加三维位置值处,向所显示的平面表面6712提供纹理6710。因此,基于场景的图像编辑系统106在图形用户界面内提供无限平面或部分平面,用于提供与三维空间内的一个或多个对象的相对定位相关联的附加信息。
在一个或多个实施例中,基于场景的图像编辑系统106还提供用于修改三维空间内的所选对象6702的工具。例如,基于场景的图像编辑系统106提供用于修改所选对象6702在三维空间内的位置的工具。如图67所示,响应于修改所选对象6702的位置,基于场景的图像编辑系统106在图形用户界面内提供修改的对象6714。具体地,基于场景的图像编辑系统106在新位置处提供修改的对象6714,并且响应于修改所选对象6702的位置来修改所显示的平面表面6712的位置或视觉特性。为了说明,响应于修改所选对象6702沿一个或多个轴的位置,基于场景的图像编辑系统106使得所显示的平面表面6712沿着一个或多个轴跟随相应的对象部分6704。
如上所述,基于场景的图像编辑系统106提供用于通过使用平面表面来修改图形用户界面内的对象的工具。具体地,基于场景的图像编辑系统106结合图形用户界面内的一个或多个附加元素利用平面表面来提供三维场景内的对象定位的准确和直观的三维表示。例如,在一个或多个实施例中,基于场景的图像编辑系统106生成二维图像中的二维场景的三维表示。在一些实施例中,基于场景的图像编辑系统106利用平面表面来示出场景内对象的相对三维定位,同时维持固定的相机视点(例如,二维编辑界面中平面表面的二维可视化)。
图68A-图68DE示出了客户端设备的图形用户界面,用于生成和显示与变换三维场景6800中的一个或多个对象有关的平面表面。在一个或多个实施例中,客户端设备包括移动设备(例如,智能手机或平板电脑)、台式设备或膝上型设备。此外,在一个或多个实施例中,如图68A所示,基于场景的图像编辑系统106基于二维图像中的二维场景来生成三维场景6800。例如,基于场景的图像编辑系统106基于二维图像中的二维对象生成三维场景6800以包括三维空间中具有顶点和边缘的一个或多个三维网格。在备选实施例中,三维场景6800包括经由三维编辑应用生成的一个或多个对象。
根据一个或多个实施例,客户端设备经由图形用户界面检测与三维场景中的对象的交互6800。例如,客户端设备提供用于移动、添加、移除或以其他方式与三维场景中的对象交互的工具6800。在一些实施例中,客户端设备检测经由触摸屏接口和/或经由鼠标设备与三维场景6800中的对象交互的输入。另外,在涉及从二维图像生成三维场景6800的一个或多个实施例中,客户端设备提供用于根据检测到的二维图像的三维特性修改二维图像内的对象的二维编辑空间。为了说明,基于场景的图像编辑系统106提供对二维场景中的对象的三维编辑。
在一个或多个实施例中,客户端设备检测对三维场景中的对象的选择6800。例如,如图68B所示,客户端设备经由图形用户界面接收指示三维场景6800a内的所选对象6802a的输入。具体地,如图所示,客户端设备确定对三维场景6800a内的所选对象6802a进行变换或修改的意图。为了说明,客户端设备确定修改所选对象6802a在三维场景6800a内的位置的指示或推断意图。
结合确定修改所选对象6802a的意图,基于场景的图像编辑系统106生成平面表面6804a。具体地,基于场景的图像编辑系统106在与所选对象6802a的一部分相对应的三维场景6800a内的特定位置处生成平面表面6804a。例如,基于场景的图像编辑系统106确定所选对象6802a的底部(例如,图68B中沿z轴的最低位置处的沙发腿的一个或多个顶点)。基于场景的图像编辑系统106根据所选择的对象6802a的确定部分来生成平面表面6804a,用于在客户端设备上显示。
根据一个或多个实施例,如前所述,基于场景的图像编辑系统106生成包括部分透明纹理的平面表面6804a。例如,客户端在具有部分透明纹理的三维空间内显示平面表面6804a,使得平面表面6804a后面或下面的一个或多个对象(例如,一个或多个背景对象)至少部分可见。为了说明,客户端设备在三维场景6800a内沿垂直轴的特定三维位置值处在所选对象6802a下方显示平面表面6804a。
在一个或多个实施例中,基于场景的图像编辑系统106还相对于平面表面6804a生成对应于所选对象6802a的对象平台6806a。具体地,基于场景的图像编辑系统106通过确定所选择的对象6802a相对于平面表面6804a的平面轴的位置来生成对象平台6806a。例如,基于场景的图像编辑系统106确定所选对象6802a的一条或多条边沿平面轴的三维位置值。此外,基于场景的图像编辑系统106基于所选对象6802a的一条或多条边的三维位置值,例如通过生成指示所选对象6802a在平面表面6804a上的水平定位的边界框来生成对象平台6806a。
在一些实施例中,基于场景的图像编辑系统106为对象平台6806a生成分离的纹理。具体地,基于场景的图像编辑系统106为对象平台6806a外部的平面表面6804a的一部分生成第一纹理,并为对象平台6806a内的平面表面6804a的一部分生成第二纹理。为了说明,基于场景的图像编辑系统106将与平面表面6804a的其余部分不同的透明度施加到对象平台6806a。备选地,基于场景的图像编辑系统106为对象平台6806a生成轮廓或边界框以在客户端设备处显示。
在一个或多个实施例中,基于场景的图像编辑系统106结合变换三维场景中的所选对象来修改平面表面。图68C示出了用于修改包括所选对象6802b的三维场景6800b的图形用户界面。具体地,响应于修改所选对象6802b沿对应于在客户端设备处显示的平面表面6804b的平面轴的位置(例如,在水平方向上),基于场景的图像编辑系统106修改平面表面6804b。例如,基于场景的图像编辑系统106基于对所选对象6802b的修改来改变对象平台6806b的位置,例如通过响应于将所选对象6802b从第一位置移动到第二位置来移动对象平台6806b以停留在所选对象6802b之下。通过基于所选对象6802b的位置修改对象平台6806b的位置,基于场景的图像编辑系统在客户端设备的图形用户界面的二维编辑空间内提供对象在三维场景6800b中的相对位置的三维理解。在一些实施例中,当移动对象平台6806b时,基于场景的图像编辑系统106还修改对象平台6806b的视觉特性。
在一个或多个附加实施例中,基于场景的图像编辑系统106提供用于修改对象在三维场景内垂直于平面表面的位置的工具。具体地,图68D示出了用于修改具有三维场景6800c中的对象的平面的客户端设备的图形用户界面。例如,图68D示出了所选对象6802c相对于为说明所选对象6802c的变换而生成的平面表面6804c在垂直方向上的移动。更具体地,客户端设备显示所选择的对象6802c相对于三维场景6800c内的地板表面在向上方向上的移动。
在一个或多个实施例中,客户端设备响应于选择所选对象6802c并将其从第一位置移动到第二位置的输入,在垂直于平面表面6804c的方向上移动所选对象6802c和平面表面6804c。在备选实施例中,客户端设备响应于选择并修改平面表面6804c的位置的输入,在垂直于平面表面6804c的方向上移动所选择的对象6802c和平面表面6804c,从第一位置到第二位置。因此,在一个或多个实施例中,客户端设备响应于所选对象6802c或平面表面6804c的移动而一起移动所选对象6802c和平面表面6804c。如图所示,在一些实施例中,响应于移动所选对象6802c,客户端设备显示具有部分或完全透明纹理的平面表面6804c的至少一部分以显示平面表面6804c后面的对象。
此外,结合垂直移动平面表面6804c,基于场景的图像编辑系统106还修改平面表面6804c相对于与二维编辑空间相关联的相机视图(例如,地平线)的透视,以维持平面表面6804c与三维场景6800c中的其他内容的准确透视。例如,结合生成或以其他方式确定三维场景6800c,基于场景的图像编辑系统106还确定相机参数(例如,位置、视场、俯仰或滚动)。基于场景的图像编辑系统106利用相机参数来确定对应于三维场景6800c的地平线。基于场景的图像编辑系统106利用相机参数来确定如何相对于三维场景6800c中的其他内容来移动和显示平面表面6804c,例如基于平面表面6804c的位置到地平线的距离。
根据一个或多个附加实施例,基于场景的图像编辑系统106在图形用户界面内提供与修改所选对象6802c有关的附加信息。具体地,基于场景的图像编辑106生成表示所选对象6802c与三维场景6800c中的附加表面之间的距离的附加平面6808(例如,附加平面)。例如,图68D的客户端设备显示附加平面6808,其尺寸基于所选对象6802c(或对象平台6806c)与附加表面的接近程度。更具体地,基于场景的图像编辑系统106根据所选择的对象6802c与附加表面或对象之间的距离,来确定附加平面表面的可见部分的大小。
为了说明,客户端设备响应于所选对象6802c和附加表面之间的距离在阈值距离内而显示附加平面6808。在一些实施例中,当所选对象6802c变得更接近附加表面时(例如,基于所选对象6802c的垂直移动),客户端设备增加附加平面6808的大小,并且当所选对象6802c远离附加表面时,缩小附加平面6808的大小。此外,在一些实施例中,客户端设备响应于所选对象6802c与附加表面之间的距离超过阈值距离而隐藏附加平面6808。
此外,在一些实施例中,基于场景的图像编辑系统106基于在三维场景内移动的对象的接近程度,为三维场景的多个表面生成一个或多个附加平面。图68E示出了包括在三维场景6800d内移动的所选对象6802d的三维场景6800d。具体地,响应于所选对象6802d在三维场景6800d内的移动(以及平面表面6804d和/或对象平台6806d的相应移动),基于场景的图像编辑系统106在三维场景6800d中的附加表面(例如,墙)上生成附加平面6810。例如,当所选对象6802d沿着一个或多个轴水平移动时,基于场景的图像编辑系统106基于所选对象6802d与附加表面之间的距离以相应大小显示(或隐藏)附加平面6810。在其他实施例中,基于场景的图像编辑系统106基于所选对象6802c的方向的移动和/或附加表面的大小来确定是否显示附加平面。
在一个或多个实施例中,基于场景的图像编辑系统106结合修改三维场景中的对象来显示具有有限大小的平面表面。例如,尽管图68A-图68E示出了基于场景的图像编辑系统106生成与所选对象在三维场景中的位置相对应的无限(或大)平面表面,但是基于场景的图像编辑系统106备选地基于所选对象的大小来生成平面表面。为了说明,图69A-图69B示出了显示具有基于所选对象的大小和位置的大小和位置的平面表面的图形用户界面。
图69A示出了包括客户端设备的图形用户界面内的多个对象的三维场景6900a。例如,客户端设备在三维场景6900a内显示选择的对象6902a。此外,客户端设备显示包括基于所选对象6902a的一部分的位置的平面表面6904a。另外,在一个或多个实施例中,基于场景的图像编辑系统106基于所选对象6902a的大小生成包括有限大小的平面表面6904a。为了说明,基于场景的图像编辑系统106根据对应于所选对象6902a的大小的对象平台来生成平面表面6904a。在一个或多个实施例中,基于场景的图像编辑系统106生成无限平面表面,同时仅显示平面表面的一部分,诸如平面表面的对象平台部分。
在一些实施例中,基于场景的图像编辑系统106基于所选对象的形状或其他标准来生成具有不同形状的平面表面。如图69A所示,基于场景的图像编辑系统106基于所选择的对象6902a的形状来生成平面表面6904a。备选地,基于场景的图像编辑系统106根据默认设置、所选对象所在表面的形状、特定形状的可见性等来生成平面表面。图69B示出了包括所选对象6902b和为所选对象6902b生成的平面表面6904b的三维场景6900b。如图所示,图69B的平面表面6904b包括与图69A的平面表面6904a不同的形状。在附加实施例中,基于场景的图像编辑系统106生成平面表面,包括但不限于圆形、正方形、矩形或其他形状。
根据一个或多个实施例,基于场景的图像编辑系统106基于平面表面的状态和/或对象平台的状态为平面表面和/或对象平台提供不同的纹理。图70A-图70C示出了显示包括多个对象的三维场景的图形用户界面。例如,图70A示出客户端设备在第一位置显示包括所选对象7002a的三维场景7000a。具体地,客户端设备接收将所选对象7002a从第一位置移动到第二位置的请求。
如图所示,基于场景的图像编辑系统106根据所选对象7002a的第一位置来生成平面表面7004a。在一个或多个实施例中,基于场景的图像编辑系统106在从所选对象7002a移位的位置处生成平面表面7004a。例如,如图70A所示,基于场景的图像编辑系统106在所选对象7002a下方的表面(例如,桌子)的顶部生成平面表面7004a。
在一个或多个实施例中,基于场景的图像编辑系统106提供垂直于平面表面7004a移动所选对象7002a的选项(例如,所选工具或模式)。因此,在这种模式下,基于场景的图像编辑系统106不是移动具有所选对象7002a的平面表面7004a,而是沿至少一个轴移动所选对象7002a,而不移动平面表面7004a。为了说明,基于场景的图像编辑系统106限制所选对象7002a沿相对于平面表面7004a的垂直方向的移动。在一个或多个附加实施例中,基于场景的图像编辑系统106随着所选对象7002a在一个或多个轴上的移动来移动平面表面7004a,同时限制平面表面7004a在一个或多个其他轴上的移动。例如,基于场景的图像编辑系统106水平(或以其他方式与平面轴一起)移动平面表面7004a,而不沿垂直方向移动平面表面7004a。
图70A示出客户端设备在具有第一纹理的第一位置处显示平面表面7004a。例如,响应于确定平面表面7004a处于静止(例如,不移动并且处于静止状态),客户端设备显示具有第一纹理的平面表面7004a。为了说明,客户端设备显示具有平面表面7004a的平面表面7004a,该平面纹理指示平面表面7004a没有移动。
图70B示出客户端设备结合与将所选对象7002b移动到第二位置来显示具有第二纹理的平面表面7004b。具体地,响应于确定平面表面7004b正在移动(例如,响应于将所选对象7002b从第一位置移动到第二位置),客户端设备显示具有第二纹理的平面表面7004b。在一个或多个实施例中,第二纹理包括具有轮廓、凹凸或帮助说明平面表面7004b在三维场景7000b内的移动的其他细粒度细节的纹理。在一些实施例中,基于场景的图像编辑系统106还响应于移动平面表面7004b来修改平面表面7004b的透明度(或其他视觉特性)。
在一个或多个附加实施例中,基于场景的图像编辑系统106沿着三维场景7000b内的表面移动平面表面7004b。具体地,基于场景的图像编辑系统106确定所选对象7002b沿一个或多个平面轴(例如,平行于平面表面7004b)在附加对象的表面之外的方向移动。例如,当平面表面7004b移动到桌子的表面之外时,基于场景的图像编辑系统106自动将平面表面7004b移动到三维场景7000b中的附加表面(例如,地板表面)。为了说明,在平面表面7004b和所选对象7002b在三维场景7000b内被分离的实施例中,基于场景的图像编辑系统106沿着一个或多个附加表面移动平面表面7004b。
图70C示出了包括多个对象的三维场景7000c,包括与结合平面表面变换对象相关联的一组选项。具体地,如图所示,客户端设备显示用于在三维场景7000c内和/或相对于平面表面7004c修改所选对象7002c的一组工具。例如,工具包括平移选项7006以将所选对象7002c的位置捕捉到附加对象的表面。为了说明,响应于平移选项7006的选择,基于场景的图像编辑系统106在特定方向(例如,基于平面表面7004c的位置、所选方向或在所选对象7002c下方的垂直方向上)确定最近的表面。
基于场景的图像编辑系统106通过将所选对象平移到与最近表面相对应的所确定的三维位置值,来将所选对象7002c捕捉到最近表面。例如,基于场景的图像编辑系统106通过沿一个或多个轴平移所选对象7002c来确定所选对象7002c的新位置,以使所选对象7002c与最近的表面相邻或接触,而不重叠最近的表面。在一些实施例中,响应于检测到所选对象7002c和平面表面7004c之间的分离,基于场景的图像编辑系统106将所选对象7002c捕捉到平面表面7004c。
在一个或多个实施例中,基于场景的图像编辑系统106提供对象在三维空间内的三维位置的一个或多个附加类型的指示符,用于在二维编辑空间内显示。例如,图71示出了显示包括多个对象的三维场景7100的客户端设备的图形用户界面。如图所示,响应于确定三维场景7100内的所选对象7102(例如,在基于场景的图像编辑系统106已为其生成三维场景7100的二维图像内),基于场景的图像编辑系统106生成三维边界框7104。此外,移动所选对象7102使得基于场景的图像编辑系统106将三维边界框7104与所选对象7102一起移动。
在一个或多个实施例中,基于场景的图像编辑系统106生成三维边界框7104,包括与三维边界框7104的角相对应的多个三维坐标。客户端设备通过将三维坐标转换为与二维图像相对应的二维编辑空间(例如,图像空间)中的二维坐标,来显示三维边界框7104。因此,三维边界框7104包括位于所选对象底部的平面表面和根据三维坐标的附加(透明)平面。
在附加实施例中,基于场景的图像编辑系统106基于三维场景内的对象之间的交互来提供附加的视觉指示。图72示出了显示包括至少第一对象7202和第二对象7204的三维场景7200的客户端设备的图形用户界面。具体地,响应于第一对象7202的选择和在朝向第二对象7204的方向上移动第一对象7202的输入,基于场景的图像编辑系统106确定第一对象7202与第二对象7204相交。响应于第一对象7202与第二对象7204相交,客户端设备显示具有修改的纹理或颜色的第一对象7202,以指示第一对象7202的无效位置。因此,基于场景的图像编辑系统106结合平面表面7206和/或对象平台7208利用第一对象7202的颜色/纹理,来指示第一对象7202在三维场景7200内的位置。
在一个或多个实施例中,基于场景的图像编辑系统106提供用于根据在相应三维场景中检测到的深度值来修改二维图像的焦点的工具。具体地,基于场景的图像编辑系统106生成并利用二维场景的三维场景来估计二维场景的内容的深度值。此外,基于场景的图像编辑系统106提供用于指示用于修改或设置与二维图像相关联的相机的焦点的深度值的接口工具,以修改二维图像的各部分的模糊值。在一些情况下,基于场景的图像编辑系统106还提供用于根据估计深度值选择二维图像的部分的工具--例如,结合二维图像的聚焦和/或模糊部分。在附加实施例中,基于场景的图像编辑系统106利用与输入元素相对应的二维图像的估计深度值,来将其他局部图像修改应用于(例如,对一个或多个对象或一个或多个对象的一个或多个部分)二维图像的特定内容的其他局部图像修改,诸如颜色变化、照明变化或其他变换。
图73示出了基于场景的图像编辑系统106基于相应的三维表示修改二维图像的一个或多个部分中的模糊的概览图。具体地,图73示出了基于场景的图像编辑系统提供用于经由图形用户界面元素与二维图像交互以指示二维图像的焦点的工具。基于场景的图像编辑系统106利用二维图像的三维表示来确定焦点并基于该焦点应用图像模糊。
在一个或多个实施例中,基于场景的图像编辑系统106确定包括具有一个或多个对象的二维场景的二维图像7300。例如,二维场景包括一个或多个前景对象和一个或多个背景对象。为了说明,图73的二维图像7300包括从特定视角沿着街道的多个建筑物的场景。在备选实施例中,二维图像7300包括其他类型的对象的不同场景,包括肖像、全景、合成图像内容等。
在附加实施例中,基于场景的图像编辑系统106提供用于在二维图像7300中选择新焦点的工具。具体地,基于场景的图像编辑系统106提供用于指示输入元素7302在二维图像7300内的位置的工具。例如,基于场景的图像编辑系统106根据二维图像7300内的光标输入或触摸输入的位置,来确定二维图像7300内的输入元素7302。备选地,基于场景的图像编辑系统106基于用户输入,根据被插入到二维图像7300的三维表示中的三维对象的位置,来确定二维图像7300内的输入元素7302。
响应于确定输入元素7302的位置,基于场景的图像编辑系统106确定二维图像7300的焦点。如图73所示,基于场景的图像编辑系统106通过对二维图像7300的一个或多个部分进行模糊,来生成修改的二维图像7304。例如,基于场景的图像编辑系统106基于输入元素7302的三维位置来确定焦点,并根据一个或多个部分相对于焦点的深度差异来对一个或多个部分进行模糊。
通过利用输入元素来确定二维图像的焦点,基于场景的图像编辑系统106提供二维图像的可定制焦点修改。具体地,基于场景的图像编辑系统102提供改进的图形用户界面,用于在捕获二维图像之后与二维图像交互以修改焦点。与提供用于在捕获图像时确定图像焦点的选项(例如,经由相机镜头的对焦)的传统系统不同,基于场景的图像编辑系统106通过对二维场景的三维理解来提供焦点定制。因此,基于场景的图像编辑系统106提供用于通过二维图像的三维表示来编辑针对任意二维图像的图像模糊的工具。
此外,通过利用二维图像的三维表示来修改二维图像的焦点,基于场景的图像编辑系统106还提供比传统系统更高的精确度。与基于对二维图像的部分的选择在图像空间中应用模糊过滤器的传统系统不同,基于场景的图像编辑系统106利用二维图像的三维表示来确定三维空间中的三维位置。因此,基于场景的图像编辑系统106利用三维位置来基于二维图像的部分相对于焦点的三维深度来提供对二维图像的部分的更准确的模糊。
图74A-图74C示出了基于场景的图像编辑系统106经由为二维图像定制焦点的图形用户界面工具来修改该二维图像的示意图。具体地,图74A示出了基于场景的图像编辑系统106响应于基于输入元素修改二维图像的焦点来生成部分模糊的二维图像。图74B示出了基于场景的图像编辑系统106经由三维渲染根据定制焦点修改二维图像。图74C示出了基于场景的图像编辑系统106经由二维渲染根据定制焦点修改二维图像。
如上所述,图74A示出了基于场景的图像编辑系统106根据定制焦点修改二维图像7400。在一个或多个实施例中,基于场景的图像编辑系统106生成二维图像7400的三维表示7402。例如,基于场景的图像编辑系统106利用一个或多个神经网络来生成三维表示7402。为了说明,基于场景的图像编辑系统106利用神经网络来估计二维图像7400的深度值。在一些实施例中,基于场景的图像编辑系统106通过根据估计深度值生成与二维图像7400中的一个或多个对象相对应的一个或多个三维网格来生成三维表示7402。
根据一个或多个实施例,基于场景的图像编辑系统106确定与二维图像7400和三维表示7402相关的输入元素7404。具体地,基于场景的图像编辑系统106基于经由图形用户界面(例如,经由鼠标/触摸输入)的用户输入和/或基于用户输入的三维表示来确定输入元素7404。更具体地,基于场景的图像编辑系统106确定相对于三维表示7402的输入元素。
为了说明,基于场景的图像编辑系统106确定用户输入相对于二维图像7400的图像空间的二维位置或移动。具体地,基于场景的图像编辑系统106检测输入(例如,经由图形用户界面),以指示二维图像7400的图像空间中的特定点。基于场景的图像编辑系统106确定图像空间中相对于三维表示7402的三维空间的指示点处的输入元素7404。备选地,基于场景的图像编辑系统106检测输入以在三维表示7402内沿对应于该输入的方向移动输入元素7404。
在一个或多个实施例中,基于场景的图像编辑系统106通过在包括三维表示7402的三维空间内生成三维对象来确定输入元素7404。具体地,基于场景的图像编辑系统106生成与二维图像7400的焦点相关的三维空间内的三维对象。例如,响应于设置或修改二维图像7400的焦点的初始输入或请求,基于场景的图像编辑系统106在三维表示7402中生成三维对象(例如,球体、立方体、平面、点)。在附加实施例中,基于场景的图像编辑系统106基于输入元素7404的位置来修改三维表示7402中的三维对象的位置。
在一些实施例中,基于场景的图像编辑系统106基于输入元素7404确定三维位置7406。具体地,基于场景的图像编辑系统106确定与输入元素7404相对于三维表示7402的位置相对应的三维坐标。例如,基于场景的图像编辑系统106基于与三维表示7402内的输入元素7404相对应的三维对象的中心点来确定三维位置7406。在其他实施例中,基于场景的图像编辑系统106基于输入元素7404的二维坐标(例如,对应于经由图形用户界面的光标或其他输入)到三维表示7402的三维空间的投影,来确定三维位置7406。
如图74A所示,响应于确定对应于输入元素7404的三维位置7406,基于场景的图像编辑系统106确定针对二维图像7400的焦点7408。具体地,基于场景的图像编辑系统106基于三维位置7406,确定三维表示7402的三维空间内的焦点7408。例如,基于场景的图像编辑系统106基于三维位置7406和与二维图像7400相对应的相机的相机位置来确定焦点7408。为了说明,基于场景的图像编辑系统106利用三维位置7406和相机位置之间的距离来确定针对相机的焦点7408。
在一个或多个实施例中,基于场景的图像编辑系统106基于焦点7408生成修改的二维图像7410。具体地,基于场景的图像编辑系统106通过根据焦点7408对二维图像7400的一个或多个部分进行模糊来生成修改的二维图像7410。例如,基于场景的图像编辑系统106基于焦点7408和根据二维图像7400的相机位置的部分之间的深度距离,来模糊二维图像7400的部分。此外,在一些实施例中,基于场景的图像编辑系统106利用一个或多个模糊偏好来确定模糊强度、模糊距离等,以生成修改的二维图像7410。
如上所述,在一些实施例中,基于场景的图像编辑系统106确定输入元素7404在三维表示7402的三维空间内的移动。例如,基于场景的图像编辑系统106检测输入元素7404相对于三维表示7402从第一位置到第二位置的移动。因此,基于场景的图像编辑系统106检测从第一位置到第二位置的移动,并将焦点7408从第一位置更新到第二位置。基于场景的图像编辑系统106基于新焦点生成更新后的修改的二维图像。
在附加实施例中,响应于输入元素7404的移动范围,基于场景的图像编辑系统106连续更新图形用户界面以显示连续修改的二维图像。具体地,基于场景的图像编辑系统106基于输入元素7404的移动范围来确定焦点7408的移动。基于场景的图像编辑系统106还基于运动焦点生成具有不同模糊的多个不同的修改的二维图像。在一些实施例中,基于场景的图像编辑系统106基于输入元素7404和焦点7408的移动范围来生成使二维图像的不同部分模糊的动画。
图74B示出了基于场景的图像编辑系统106利用定制焦点来通过场景的三维渲染来修改二维图像的模糊。在一个或多个实施例中,如上所述,基于场景的图像编辑系统106基于相对于三维表示的输入元素来确定图74A的二维图像7400的焦点7408。例如,基于场景的图像编辑系统106确定在包括三维表示的三维空间内配置相机时使用的焦点7408。
根据一个或多个实施例,基于场景的图像编辑系统106利用焦点7408来确定相机的相机参数7412。具体地,基于场景的图像编辑系统106根据指示的焦点7408来设置相机的焦距。为了说明,基于场景的图像编辑系统106基于相机与焦点在三维空间中的三维位置之间的距离来确定焦距。在附加实施例中,基于场景的图像编辑系统106确定与焦点7408相关的附加相机参数,例如但不限于视场、相机角度或镜头半径。
此外,在一个或多个实施例中,基于场景的图像编辑系统106利用三维渲染器7414来生成修改的二维图像7410a。具体地,基于场景的图像编辑系统106利用具有相机参数7412的三维渲染器7414,根据图74A的二维图像7400的场景的三维表示来渲染修改的二维图像7410a。例如,基于场景的图像编辑系统106利用三维渲染器7414以利用光线追踪或其他三维渲染过程来对来自三维表示的二维图像进行渲染。
通过基于焦点7408修改相机参数7412以供三维渲染器7414使用,基于场景的图像编辑系统106生成修改的二维图像7410a以包括真实焦点模糊。为了说明,三维渲染器7414利用三维表示的各部分的深度值的差异来结合相机参数7412来确定修改的二维图像7410a的各部分的模糊。因此,响应于焦点7408的修改,基于场景的图像编辑系统106更新相机参数7412,并重新渲染具有更新的焦点模糊的二维图像。利用三维渲染器7414允许基于场景的图像编辑系统106结合焦点相对于二维图像的三维表示的改变来提供二维图像的场景的部分的平滑/连续模糊。
在附加实施例中,基于场景的图像编辑系统106利用二维渲染过程来生成具有定制焦点的修改的二维图像。例如,图74C示出了基于场景的图像编辑系统106经由二维图像中的内容的定制焦点和估计深度值来模糊二维图像。在一个或多个实施例中,基于场景的图像编辑系统106利用二维渲染过程来根据对二维图像的三维理解来修改二维图像的各部分的模糊值。
根据一个或多个实施例,基于场景的图像编辑系统106利用二维图像7400的焦点7408,来确定二维图像7400的图像空间中的二维位置7416。具体地,基于场景的图像编辑系统106利用焦点7408在二维图像7400的三维表示内的三维位置来确定二维位置7416。例如,基于场景的图像编辑系统106利用三维空间和图像空间之间的映射(例如,UV映射或其他投影映射)来确定二维位置。
如图74C所示,基于场景的图像编辑系统106还确定对应于焦点7408的二维位置7416的深度值7418。在一个或多个实施例中,基于场景的图像编辑系统106从二维图像7400的深度图7420确定深度值7418。具体地,基于场景的图像编辑系统106结合生成二维图像7400的三维表示来生成深度图7420。为了说明,基于场景的图像编辑系统106根据在二维图像7400中检测到的一个或多个对象的位置,为二维图像7400中的每个像素生成深度值,并存储深度图7420内的所有像素的深度值(例如,以矩阵或向量)。基于场景的图像编辑系统106从深度图7420中提取对应于二维位置7416的像素的深度值7418。
根据一个或多个实施例,基于场景的图像编辑系统106利用对应于焦点7408的深度值7418来确定二维图像7400中的模糊。如图74C所示,基于场景的图像编辑系统106利用二维渲染器7422来基于焦点7408应用模糊过滤器7424。例如,基于场景的图像编辑系统106基于深度图7420中的深度值和焦点7408的深度值7418来确定模糊过滤器7424。为了说明,基于场景的图像编辑系统106基于像素的深度值相对于焦点7408的深度值7418的差异,来确定二维图像7400中的多个像素的模糊值。例如,基于场景的图像编辑系统106根据指示模糊强度、模糊距离等的各种相机参数来确定模糊过滤器7424,并且根据深度距离对二维图像7400中的像素应用模糊过滤器7424以生成修改的二维图像7410b。
在一个或多个实施例中,基于场景的图像编辑系统106还响应于修改焦点7408来更新修改的二维图像7410b。为了说明,响应于将焦点7408从二维位置7416修改为附加的二维位置,基于场景的图像编辑系统106利用二维图像7400来生成附加的修改的二维图像。具体地,基于场景的图像编辑系统106基于焦点7408在包括二维图像7400的三维表示的三维空间内的新三维位置,来确定附加二维位置。例如,基于场景的图像编辑系统106基于深度图7420和与更新后的焦点相对应的像素的深度值来确定更新后的模糊过滤器。基于场景的图像编辑系统106利用二维渲染器7422来使用更新后的模糊过滤器来生成更新后的二维图像。
图75A-图75E示出了用于定制二维图像中的焦点的客户端设备的图形用户界面。具体地,如图75A所示,客户端设备显示用于在客户端应用内编辑的二维图像7500。例如,客户端应用包括用于通过各种编辑操作来编辑数字图像的图像编辑应用。为了说明,客户端设备提供用于通过二维图像的三维表示(例如,为二维图像生成的三维网格)来编辑二维图像的工具。
在一个或多个实施例中,客户端设备显示用于修改二维图像7500的焦点的二维图像7500。例如,基于场景的图像编辑系统106确定设置或移动与二维图像7500相关联的焦点的意图。为了说明,客户端设备检测输入以指示与客户端应用内的所选工具相关的焦点的位置。备选地,客户端设备基于客户端应用内的上下文信息自动推断指示焦点位置的意图,例如用户与图形用户界面内的二维图像7500的一部分的交互。
结合确定二维图像7500的焦点,在至少一些实施例中,基于场景的图像编辑系统106经由图形用户界面确定输入元素。具体地,如前所述,基于场景的图像编辑系统106根据经由图形用户界面的输入相对于二维图像7500的位置来确定输入元素。图75B示出了与输入元素7502a的位置相对应的修改的二维图像7500a的图形用户界面。例如,如图所示,客户端设备在修改的二维图像7500a内的位置处显示输入元素7502a,该位置对应于与修改的二维图像7500a的三维表示相对应的三维空间中的三维位置。为了说明,客户端设备检测指示输入元素7502a在三维空间内的位置的一个或多个输入。
根据一个或多个实施例,基于场景的图像编辑系统106生成对应于(或以其他方式表示)三维空间内的输入元素7502a的三维对象。具体地,如图所示,基于场景的图像编辑系统106生成预定大小的球体,并将该球体插入包括在特定位置处的三维位置的三维空间中。例如,与设置针对修改的二维图像7500a的焦点有关,基于场景的图像编辑系统106将球体插入三维空间的默认位置或选定位置。此外,基于场景的图像编辑系统106基于球体在三维空间中的位置将输入元素7502a显示为球体的二维表示。
响应于确定输入元素7502a(和对应的三维对象)在三维空间内的位置,基于场景的图像编辑系统106确定修改的二维图像7500a的焦点。基于场景的图像编辑系统106根据输入元素7502a的位置生成具有焦点模糊的修改的二维图像7500a的一个或多个部分。更具体地,客户端设备结合输入元素7502a的位置在图形用户界面内显示包括一个或多个模糊部分的修改的二维图像7500a。
尽管图75B示出了客户端设备显示输入元素7502a,但在备选实施例中,客户端设备在图形用户界面内隐藏输入元素7502a。例如,基于场景的图像编辑系统106可以隐藏输入元素7502a,使其不模糊修改的二维图像7500a的一个或多个部分。此外,在一些实施例中,基于场景的图像编辑系统106仅显示输入元素7502a的一部分。在一些实施例中,基于场景的图像编辑系统106仅显示与客户端设备的输入设备相对应的光标或输入位置。作为说明,基于场景的图像编辑系统106在不显示输入元素7502a的情况下显示修改的二维图像7500a。
在一个或多个实施例中,基于场景的图像编辑系统106还基于输入元素的位置的改变来修改二维图像。图75c示出了基于输入元素7502b的更新位置来显示修改的二维图像7500b的客户端设备。具体地,基于场景的图像编辑系统106响应于将输入元素7502b从第一位置移动到第二位置的用户输入来修改输入元素7502b的位置。为了说明,基于场景的图像编辑系统106响应于经由客户端设备的图形用户界面的输入,将图75B的输入元素7502a的位置修改为图75c的输入元素7502b的位置。
根据一个或多个实施例,如图所示,基于场景的图像编辑系统106基于输入元素7502b的更新位置来修改修改的二维图像7500b的一个或多个部分的模糊。具体地,基于场景的图像编辑系统106确定输入元件7502b从第一位置到第二位置的移动。基于场景的图像编辑系统106基于输入元素7502b的更新位置来确定一个或多个部分以及该一个或多个部分的模糊值。
此外,在一个或多个实施例中,客户端设备显示输入元素的位置之间的模糊过渡。例如,当基于场景的图像编辑系统106检测到输入元素从第一位置(例如,图75B的输入元素7502a的位置)到第二位置(例如,图75c的输入元素7502b的位置)的移动时,基于场景的图像编辑系统根据该移动生成多个修改的二维图像。客户端设备在客户端应用内显示每个修改的二维图像,以提供场景内模糊效果的连续过渡(例如,动画)。在备选实施例中,客户端设备将所显示的二维图像从第一位置更新到第二位置,而不显示任何中间过渡。在一些实施例中,客户端设备基于与输入元素的移动相关联的预定时间或距离阈值来显示中间过渡。
在至少一些实施例中,基于场景的图像编辑系统106响应于指示二维图像的特定部分的输入元素来修改二维图像的焦点。具体地,图75D示出了显示具有基于包括光标的输入元素7504而被确定的焦点的二维图像7500c的客户端设备。例如,客户端设备利用指示输入元素7504在图形用户界面内的位置的输入设备(例如,鼠标设备、触摸板设备或触摸屏设备)。为了说明,响应于指示所选对象7506的输入元素7504,基于场景的图像编辑系统106通过基于所选对象7506的位置确定焦点来生成修改的二维图像。
在一个或多个实施例中,基于场景的图像编辑系统106基于输入元素7504的位置来确定二维图像7500c的三维表示内的焦点。具体地,基于场景的图像编辑系统106确定输入元素7504的位置对应于三维表示内的点。例如,基于场景的图像编辑系统106基于与输入元素7504的位置相对应的所选对象7506的顶点来确定焦点。备选地,基于场景的图像编辑系统106基于与所选对象7506相对应的三维网格的中心(例如,质心)来确定焦点。
响应于确定与所选对象7506相关的二维图像7500c的焦点,基于场景的图像编辑系统106基于所指示的焦点来生成修改的二维图像。在一个或多个实施例中,基于场景的图像编辑系统106利用焦点来进一步修改二维图像7500c。具体地,基于场景的图像编辑系统106通过放大所选对象7506来修改二维图像7500c。例如,图75E示出了根据所选对象7506a显示放大的二维图像7508的客户端设备。
更具体地,响应于所选对象7506的指示,基于场景的图像编辑系统106通过修改图75D的二维图像7500c的焦点和一个或多个相机参数来生成放大的二维图像7508。例如,如图75E所示,基于场景的图像编辑系统106通过将相机位置从二维图像的原始位置修改为与所选对象7506a对应的更新位置来生成放大的二维图像7508。为了说明,基于场景的图像编辑系统106确定所选对象7506a的边界,并在包括二维图像的三维表示的三维空间内移动相机位置以在捕捉所选对象7506a的边界的同时放大所选对象7506a。在一些实施例中,基于场景的图像编辑系统106基于在三维空间中距焦点的预定距离来确定相机位置。
在附加实施例中,基于场景的图像编辑系统106还修改三维空间内的相机的一个或多个附加参数。例如,基于场景的图像编辑系统106基于相机的更新位置和焦点来修改相机的视场、焦距或其他参数。因此,在一个或多个实施例中,基于场景的图像编辑系统106基于新焦点和相机的更新参数来生成放大的二维图像7508。
在一个或多个实施例中,基于场景的图像编辑系统102提供用于指示二维图像的焦点的各种输入元素。具体地,图76A-图76B示出了用于指示二维图像内焦点的客户端设备的图形用户界面。例如,图76A示出了图形用户界面内的修改的二维图像7600,该图形用户界面包括多个滑动条以指示修改的二维图像7600的焦点。为了说明,第一滑动条7602a指示焦点的水平位置,第二滑动条7602b指示焦点的垂直位置。备选地,第二滑动条7602b指示焦点的深度位置而不是垂直位置。
图76B示出了客户端设备的图形用户界面内的修改的二维图像7600a,包括区域选择器7604以指示针对修改的二维图像7600a的焦点。具体地,基于场景的图像编辑系统106基于区域选择器7604内的修改的二维图像7600a的一部分来确定区域选择器7604在修改的二维图像7600a内的位置。为了说明,基于场景的图像编辑系统106响应于确定该部分占据区域选择器7604内的大部分区域来确定该部分。备选地,基于场景的图像编辑系统106响应于区域选择器7604执行选择操作来确定该部分,该选择操作根据该部分的深度在该区域选择器7604“修复”该部分(例如,标记对应于该部分的像素)。基于场景的图像编辑系统106通过根据指示的部分设置焦点来生成修改的二维图像7600a。
在附加实施例中,基于场景的图像编辑系统106提供用于根据二维图像的三维表示的深度信息在二维图像内执行附加操作的工具。例如,在一些实施例中,基于场景的图像编辑系统106提供用于基于来自二维图像的三维表示的三维深度值来选择二维图像内的区域的工具。图77A-图77C示出了客户端设备的图形用户界面,用于基于三维深度值和输入元素来选择二维图像的不同区域。
图77A示出了用于经由输入元素7702在图形用户界面内的位置选择二维图像7700的一部分的图形用户界面。具体地,基于场景的图像编辑系统106通过将输入元素7702的位置转换为与二维图像7700的三维表示相对应的三维空间内的三维位置,来确定二维图像7700的第一部分7704。此外,基于场景的图像编辑系统106基于三维位置的三维深度和三维表示的一个或多个其他部分的对应三维深度来确定第一部分7704。因此,如图所示,客户端设备显示对二维图像770的第一部分的选择,包括具有与输入元素7702的三维位置相似的深度值的三维表示的部分。
图77B示出了用于选择二维图像7700a的第二部分7704a的图形用户界面。具体地,响应于确定输入元素7702a移动到图形用户界面内的新位置,基于场景的图像编辑系统106确定相对于二维图像7700a的三维表示的更新后的三维位置。基于场景的图像编辑系统106还确定与输入元素7702a的更新的三维位置的深度值类似的三维表示的一个或多个部分的深度值。因此,客户端设备显示响应于输入元素7702a的更新位置而选择的第二部分7704a。如图所示,将输入元素7702a移动到相对于二维图像7700a的新位置根据对应的深度值来改变二维图像7700a的所选部分。
在附加实施例中,基于场景的图像编辑系统106提供用于基于二维图像中的内容深度定制选择大小的选项。例如,基于场景的图像编辑系统106提供指示用于基于输入元素进行选择的深度值范围的可选选项。备选地,基于场景的图像编辑系统106基于一个或多个附加输入来修改深度值的范围,诸如响应于经由触摸屏输入、经由鼠标输入的滚动输入、或其他类型的输入的收缩或缩小运动。
具体地,图77C示出了包括二维图像7700b的图形用户界面,具有基于输入元素7702b选择的第三部分7704b。为了说明,响应于经由与输入元素7702b相关联的参数修改深度值的范围,基于场景的图像编辑系统106缩小或增大二维图像7700b内的所选区域的大小。因此,如图所示,与图77B的第二部分7704a相比,第三部分7704b具有更小的深度值选择范围。
在选择数字图像的一部分时,基于场景的图像编辑系统106还可以修改该数字图像。例如,尽管未在图77A-图77C中示出,但基于场景的图像编辑系统可以分割、移除、替换、填充或以其他方式修改(例如,改变颜色、改变阴影或调整大小)基于在此描述的方法选择的数字图像的一部分。为了说明,基于场景的图像编辑系统106可以基于与输入元素的三维位置相对应的所标识的焦点,将任何局部图像修改应用于二维图像的内容的一部分。在一个或多个实施例中,基于场景的图像编辑系统106在对应于输入元素的深度处将图像过滤器(例如,滤色器、照明过滤器或模糊过滤器)应用于二维图像的一部分。在附加实施例中,基于场景的图像编辑系统106可以诸如通过调整对象或对象的一部分的大小或扭曲,来修改或变换位于与输入元素相对应的深度处的对象或对象的一部分。
在一个或多个实施例中,基于场景的图像编辑系统106还提供用于基于深度值选择在二维图像内检测到的特定对象的工具。图78A-图78C示出了用于基于二维图像的三维表示内的深度来选择各个对象的客户端设备的图形用户界面。例如,图78A示出了包括二维场景中的多个对象(例如,人)的二维图像7800。结合生成二维图像的三维表示7800,基于场景的图像编辑系统106还确定三维表示中的单独对象的三维深度。
图78B示出基于场景的图像编辑系统106响应于输入(例如,经由输入元件7802a)选择或高亮显示二维图像7800a的一部分。为了说明,响应于确定输入元素7802a的位置,基于场景的图像编辑系统106基于与第一对象7804相对应的三维网格的深度,来选择二维图像7800a内的第一对象7804,以便在客户端设备的图形用户界面内突出显示。在一些实施例中,响应于输入元素7802a位于对应于第一对象7804的确定深度,基于场景的图像编辑系统106选择第一对象7804。备选地,基于场景的图像编辑系统106基于输入元素7802a在图形用户界面内的位置来选择第一对象7804。例如,在图形用户界面内沿特定方向移动输入元素7802a导致基于场景的图像编辑系统106改变输入元素7802a的深度,从而改变二维图像7800a内的所选对象。
作为示例,图78B示出了响应于将输入元素7802b移动到图形用户界面内的新位置的二维图像7800b。为了说明,响应于移动输入元素7802b,基于场景的图像编辑系统106确定对应于输入元素7802b的深度的第二对象7804b,并选择第二对象7804b。因此,在图形用户界面内沿特定方向(例如,从左到右或从下到上)移动输入元素7802b使得基于场景的图像编辑系统106基于对象相对于相机位置的深度值(例如,最近到最远)在二维图像7800b内的对象之间循环。在一些实施例中,尽管图78B和78C示出了不同位置处的输入元素,但基于场景的图像编辑系统106修改了选择深度,而不在图形用户界面内显示输入元素。
尽管图77A-图77C和图78A-图78B以及相应的描述指示基于场景的图像编辑系统106可以通过重构的二维图像的三维表示来修改二维图像,但是基于场景的图像编辑系统106也可以经由相应的深度图对二维图像进行修改。具体地,如图74C中所描述的,基于场景的图像编辑系统106可以生成二维图像的深度图,以根据由输入元素指示的焦点将局部图像修改应用于二维图像。例如,基于场景的图像编辑系统106可以利用二维图像的深度图的深度值来选择二维图像的一个或多个部分,然后将一个或多个图像过滤器或图像变换应用于二维图像的所选(多个)部分。因此,基于场景的图像编辑系统106可以将颜色、照明、大小调整、扭曲、模糊、像素化或其他过滤器/变换修改到基于检测到的对应于二维图像内的输入元素的深度而选择的二维图像的一部分。
如上所述,基于场景的图像编辑系统106生成用于编辑二维图像的三维网格。图79示出了基于场景的图像编辑系统106通过在三维环境中修改相应的三维网格来编辑二维图像的概览。具体地,图79示出了深度位移系统生成三维网格以在三维空间中表示二维图像的内容。图79还示出了基于场景的图像编辑系统106利用三维网格来修改二维图像。
在一个或多个实施例中,如图79所示,基于场景的图像编辑系统106标识二维图像7900。在一个或多个实施例中,二维图像7900包括栅格图像。例如,二维图像7900包括场景的数字照片,该场景包括相对于与二维图像7900相关联的视点(例如,基于相机位置)在一个或多个位置处的一个或多个对象。在附加实施例中,二维图像7900包括绘制图像(例如,手绘图像的数字表示或经由计算设备生成的数字图像),该绘制图像包括具有相对深度的多个对象。
根据一个或多个实施例,基于场景的图像编辑系统106生成表示二维图像7900的位移三维网格7902。具体地,基于场景的图像编辑系统106利用多个神经网络来生成位移三维网格7902,包括形成表示来自二维图像7900的对象的几何图形的多个顶点和面。例如,基于场景的图像编辑系统106生成位移三维网格7902,以表示来自三维空间中的二维图像7900的深度信息和位移信息(例如,对象的相对位置)。图80-图85和相应的描述提供了关于为二维图像生成自适应三维网格的附加细节。在备选实施例中,基于场景的图像编辑系统106基于估计的像素深度值和估计的相机参数生成二维图像的位移三维网格--例如,通过根据估计的像素深度值和估计的相机参数确定与二维图像中的对象相对应的镶嵌的每个顶点的位置。
在一个或多个实施例中,神经网络包括基于输入来调整(例如,训练)以逼近未知函数的计算机表示。例如,神经网络包括一个或多个层或人工神经元,它们通过分析不同抽象级别的已知数据来逼近未知功能。在一些实施例中,神经网络包括一个或多个神经网络层,包括但不限于卷积神经网络、递归神经网络(例如,LSTM)、图形神经网络或深度学习模型。在一个或多个实施例中,基于场景的图像编辑系统106利用一个或多个神经网络,包括但不限于语义神经网络、对象检测神经网络、密度估计神经网络、深度估计神经网络、相机参数估计。
在附加实施例中,基于场景的图像编辑系统106响应于位移输入来确定修改的三维网格7904。例如,响应于用于修改二维图像的位移输入7900,基于场景的图像编辑系统106修改位移三维网格7902以生成修改的三维网格7904。因此,修改的三维网格7904包括基于位移输入的一个或多个修改部分。图9-图19B和相应的描述提供了关于基于位移输入修改三维网格的附加细节。
图79还示出了基于场景的图像编辑系统106基于修改的三维网格7904生成修改的二维图像7906。具体地,基于场景的图像编辑系统106生成修改的二维图像7906以包括修改的三维网格7904的修改部分。为了说明,基于场景的图像编辑系统106利用二维图像7900到位移三维网格7902的映射,来基于修改的三维网格7904重构修改的二维图像7906。
图80示出了基于场景的图像编辑系统106生成包括来自二维图像的深度位移信息的三维网格的示意图。具体地,基于场景的图像编辑系统106通过提取与二维图像8000中的对象相关联的深度信息来生成三维网格。此外,基于场景的图像编辑系统106提取指示二维图像8000中的对象的相对位置的位移信息(例如,根据与二维图像8000的视点相关联的估计相机参数)。如图80所示,基于场景的图像编辑系统106利用深度信息和位移信息来生成表示二维图像8000的三维网格。
在一个或多个实施例中,基于场景的图像编辑系统106基于二维图像8000确定视差估计图8002。例如,基于场景的图像编辑系统106利用一个或多个神经网络来确定与二维图像8000中的像素相对应的视差估计值。为了说明,基于场景的图像编辑系统106利用视差估计神经网络(或其他深度估计神经网络)来估计对应于二维图像8000的像素的深度值。更具体地,深度值指示与图像中的每个像素的图像相关联的相机视点的相对距离。在一个或多个实施例中,深深值包括(或基于)基于场景的图像编辑系统106的像素的视差估计值。
具体地,基于场景的图像编辑系统106利用(多个)神经网络来根据给定场景中每个对象的放置(例如,每个像素位于前景/背景中的多远)的二维图像8000内的对象来估计每个像素的深度值。基于场景的图像编辑系统106可以利用各种深度估计模型来估计每个像素的深度值。例如,在一个或多个实施例中,基于场景的图像编辑系统106利用如下文所述的深度估计神经网络:2021年2月26日提交的,题为“GENERATING DEPTH IMAGESUTILIZING AMACHINE-LEARNING MODEL BUILT FROM MIXEDDIGITAL IMAGE SOURCES ANDMULTIPLE LOSS FUNCTION SETS”(利用混合数字图像源和多损失函数集建立的机器学习模型生成深度图像)的美国申请第17/186,436号,其通过引用整体并入本文。基于场景的图像编辑系统106备选地利用一个或多个其他神经网络来估计与二维图像8000的像素相关联的深度值。
如图80所示,在一个或多个实施例中,基于场景的图像编辑系统106还基于视差估计图8002来确定密度图8004。具体地,基于场景的图像编辑系统106利用一组过滤器来从视差估计图8002提取密度图8004。例如,基于场景的图像编辑系统106利用该组过滤器来确定视差估计图8002的深度变化(例如,二阶导数)的变化,以确定二维图像8000的每个像素处的深度瞬时变化率。因此,密度图8004包括指示二维图像8000中的细节密度的信息,其中最高密度的信息通常在对象的边缘以及在没有显著细节的平面区域(例如,天空或道路)中深度改变最快和较低密度的其他区域。
图80还示出了基于场景的图像编辑系统106基于密度图8004确定二维图像8000的采样点8006。例如,基于场景的图像编辑系统106基于密度图8004中的密度值来确定与二维图像8000相关的要采样的点的集合。为了说明,基于场景的图像编辑系统106利用采样模型,该采样模型对密度图8004指示的较高密度位置中的较高密度的点进行采样(例如,使用反映点密度的概率函数进行采样)。因此,基于场景的图像编辑系统106在二维图像8000包括最大量深度信息的位置对较高数量的点进行采样。
响应于确定采样点8006,基于场景的图像编辑系统106生成镶嵌8008。具体地,基于场景的图像编辑系统106基于采样点8006生成初始三维网格。例如,基于场景的图像编辑系统106利用Delaunay三角剖分来根据对应于采样点8006的Voronoi单元来生成镶嵌8008。因此,基于场景的图像编辑系统106生成包括在采样点密度较高的部分处具有较高密度的顶点和面的平面三维网格。
如图80所示,基于场景的图像编辑系统106还基于二维图像8000的镶嵌8008生成位移三维网格8010。具体地,基于场景的图像编辑系统106利用一个或多个神经网络来确定与二维图像8000相关联的透视或视点。基于场景的图像编辑系统106通过根据从二维图像8000提取的透视/视点合并指示对象在二维图像8000中的相对位置的深度位移信息来生成位移三维网格8010。因此,基于场景的图像编辑系统106通过修改网格中的顶点的位置来将平面三维网格转换为位移三维网格。
图81示出了与确定与二维图像相关联的密度图相关联的附加细节。具体地,图81示出了基于场景的图像编辑系统106与从二维图像8100提取的深度值相关地应用多个过滤器。例如,基于场景的图像编辑系统106将过滤器应用于与二维图像8100相关联的视差估计图。备选地,基于场景的图像编辑系统106将过滤器应用于与二维图像8100相关联的其他深度值。
如图81所示,基于场景的图像编辑系统106利用第一过滤器基于二维图像8100的视差估计图来确定海森绝对值图8102。具体地,基于场景的图像编辑系统106利用过滤器来基于视差估计值生成海森矩阵。例如,基于场景的图像编辑系统106从指示视差估计值的二阶导数的海森矩阵生成海森绝对值图8102,该视差估计值指示来自二维图像8100的深度信息的变化(例如,变化速率)的变化。为了说明,基于场景的图像编辑系统106通过确定海森矩阵的对角线的绝对值来生成海森绝对值图8102。
此外,如图81所示,基于场景的图像编辑系统106对海森绝对值图8102应用第二滤波以确定平滑的值映射8104。例如,基于场景的图像编辑系统106通过平滑绝对值来修改海森绝对值图8102中的绝对值。为了说明,基于场景的图像编辑系统106利用卷积运算来生成包括来自海森绝对值图8102的平滑值的平滑值图8104。在一些实施例中,通过平滑来自海森绝对值图8102的值,基于场景的图像编辑系统106移除可能通过确定海森矩阵而引入的噪声。
在一个或多个实施例中,基于场景的图像编辑系统106还修改平滑后的值图8104以确定密度图8106。具体地,如图81所示,基于场景的图像编辑系统106通过根据预定阈值截断(或裁剪)经平滑的值图8104中的值来生成密度图8106。例如,基于场景的图像编辑系统106将经平滑的值图8104中的值裁剪到值的标准差的预定比例(例如,裁剪到标准差的0.5倍)。通过截断值,基于场景的图像编辑系统106防止视差的大的局部变化支配密度图8106中的值的密度。
根据一个或多个实施例,如图所示,密度图8106包括二维图像8100的对象边界处的较高密度值和对象边界内的较低密度值。此外,密度图8106包括对象内的像素的高密度值,指示深度上的急剧转变(例如,在图81的建筑物的窗户的边缘),同时限制在没有深度急剧转变的其他区域(例如,在图81的树中的单个叶子或叶子簇之间)的密度值。因此,基于场景的图像编辑系统106生成密度图8106以指示用于采样点的二维图像8100的区域,使得采样点指示根据深度信息的转变的变化率的区域。
在一个或多个实施例中,基于场景的图像编辑系统106利用具有可定制参数的多个过滤器来确定密度图8106。例如,过滤器可以包括提供可手动定制的密度区域的参数,例如图像的边缘,以在所指示的区域提供更高的点采样。在一个或多个附加实施例中,基于场景的图像编辑系统106定制剪辑阈值以包括具有更高或更低信息密度的区域,这可以服务于特定实现。
在一个或多个实施例中,基于场景的图像编辑系统106基于对应于二维图像中的像素的密度值对二维图像的点进行采样。具体地,如图82所示,深度位移系统根据密度值对点进行采样,以在密集区域中采样较多数量的点,而在较低密度区域中对较少数量的点进行采样。根据一个或多个实施例,基于场景的图像编辑系统106利用采样模型,该采样模型根据密度图中的密度值(例如,通过利用密度图作为采样的概率分布)来确定随机采样8200。为了说明,基于场景的图像编辑系统106利用密度图对多个点进行随机采样,从而在二维图像的高密度区域中产生具有较高密度的采样点的随机采样点。
在一个或多个备选实施例中,基于场景的图像编辑系统106利用采样模型,该采样模型将密度图用作迭代采样过程中的概率分布。具体地,基于场景的图像编辑系统106利用采样模型,而不是根据密度值随机采样点,该采样模型提供采样向导致基于采样点生成的三维网格中的更均匀/更好形成的三角剖分的位置的迭代移动。例如,基于场景的图像编辑系统106利用具有松弛模型的采样模型来结合Delaunay三角剖分向相应的Voronoi单元的中心迭代地移动采样点。为了说明,基于场景的图像编辑系统106利用具有Voronoi迭代/松弛的采样模型(例如,“Lloyd”算法),该采样模型生成质心Voronoi镶嵌,其中每个Voronoi单元/区域的种子点也是其质心。更具体地,基于场景的图像编辑系统106重复地将对应的Voronoi单元的每个采样点向对应的Voronoi单元的质心移动。
因此,在一个或多个实施例中,基于场景的图像编辑系统106根据二维图像的密度图确定包括多个采样点的第一采样迭代8202。此外,在一个或多个实施例中,基于场景的图像编辑系统106执行多次迭代,以根据二维图像的密度图进一步提高采样的规则性。图82还示出了基于场景的图像编辑系统106在三个采样迭代之后确定包括多个采样点的第三采样迭代8204。从第三采样迭代8204生成的三维网格包括基于根据密度图采样的点的更多顶点和平面。
图82还示出了在100个采样迭代之后的第100个采样迭代8206。如图所示,在某个点之后继续执行采样迭代可能会减少采样点(以及生成的三维网格)与密度图之间的连接。因此,在一个或多个实施例中,基于场景的图像编辑系统106基于采样点到密度图的距离来确定迭代次数。此外,在一些实施例中,基于场景的图像编辑系统106基于资源/时间预算或二维图像的分辨率来确定迭代次数。为了说明,基于场景的图像编辑系统106确定两次或三次迭代提供产生三维网格的多个采样点,该三维网格在维持与密度图一致的同时保留二维图像的对象的边界。
在一个或多个实施例中,基于场景的图像编辑系统106还利用图像感知采样来确保基于场景的图像编辑系统106对二维图像的所有部分进行采样以生成三维网格。例如,基于场景的图像编辑系统106考虑在二维图像的边缘或角处具有很少或没有细节的部分,以确保所得到的三维网格包括三维网格中的边/角。为了说明,基于场景的图像编辑系统106向采样模型提供指令,以基于二维图像的维度/坐标(例如,通过向图像边界添加密度)沿二维图像的边缘对至少一些点进行采样。备选地,基于场景的图像编辑系统106为用户提供在生成表示二维图像的三维网格期间手动指示采样点的工具。
图83示出了基于场景的图像编辑系统106生成包括二维图像内容的深度位移信息的三维网格。具体地,图83示出了基于场景的图像编辑系统106确定采样点8300(例如,如图82中所描述的)。此外,图83示出了基于场景的图像编辑系统106基于采样点8300生成镶嵌8302。为了说明,基于场景的图像编辑系统106确定采样点8300,并在利用Voronoi松弛和Delaunay三角剖分的迭代过程中生成镶嵌8302。
在一个或多个实施例中,基于场景的图像编辑系统106修改包括顶点和面的平面网格的镶嵌8302,以包括基于二维图像中的视点的位移信息。例如,基于场景的图像编辑系统106确定与二维图像8303相关联的透视(例如,基于捕捉二维图像的相机)。通过确定基于场景的图像编辑系统106的视点并确定位移,基于场景的图像编辑系统106将深度信息合并到表示二维图像的三维网格中。
根据一个或多个实施例,基于场景的图像编辑系统106利用神经网络8304来基于二维图像8303估计与视点相关联的相机参数8306。例如,基于场景的图像编辑系统106利用相机参数估计神经网络来生成与二维图像8303相关联的估计位置、估计方向和/或估计焦距。为了说明,基于场景的图像编辑系统106利用如下文所述的神经网络:2019年1月25日提交的,题为“UTILIZING A CRITICAL EDGE DETECTION NEURAL NETWORK AND A GEOMETRICMODEL TO DETERMINE CAMERA PARAMETERS FROM A SINGLE DIGITAL IMAGE”(利用临界边缘检测神经网络和几何模型从单幅数字图像确定相机参数)的美国专利第11,094,083号,其通过引用整体并入本文。在附加实施例中,基于场景的图像编辑系统106从与二维图像8303相关联的元数据中提取一个或多个相机参数。
如图83所示,基于场景的图像编辑系统106利用相机参数8306来生成位移三维网格8308。具体地,基于场景的图像编辑系统106利用相机参数8306来根据与相机的位置、相机的焦距和/或相机的方向相关的二维图像的对应像素的深度值,来估计来自镶嵌8302的顶点的位置。为了说明,基于场景的图像编辑系统106基于对象在二维图像中的相对位置来修改多个顶点和面在三维空间中的三维位置。
此外,在一个或多个实施例中,基于场景的图像编辑系统106利用附加信息来进一步修改二维图像的三维网格。具体地,基于场景的图像编辑系统106利用来自二维图像的附加信息来确定顶点在三维网格中的位置。例如,如图84A-图84B所示,基于场景的图像编辑系统106利用附加的边缘信息来修改二维图像的三维网格。
例如,图84A示出了基于场景的图像编辑系统106利用如上参考图83描述的处理为二维图像生成位移三维网格8400。如图所示,位移三维网格8400包括基于二维图像的视点的位移信息,这可能导致在对象的边缘处的三维网格的长/变形部分。为了说明,由于没有足够的多边形来准确地表示细节,位移三维网格8400中的对象的某些边缘可能缺乏细节。
在一个或多个实施例中,基于场景的图像编辑系统106向三维网格添加附加细节(例如,经由附加顶点和面)。例如,基于场景的图像编辑系统106将来自二维图像的颜色值(例如,RGB值)用于神经网络,该神经网络基于深度值和/或相机参数来生成位移三维网格。具体地,基于场景的图像编辑系统106利用颜色值来进一步增加三维网格的边缘处的多边形的密度,以减少伪影和/或移除长多边形。图84B示出了基于场景的图像编辑系统106基于附加信息生成附加位移三维网格8402。如图所示,附加信息允许基于场景的图像编辑系统106在对象的边缘提供具有更准确细节的更高质量的位移三维网格。
如图84B所示,基于场景的图像编辑系统106利用边缘图8404,该边缘图8404包括关于二维图像内的边缘的附加信息。例如,边缘图8404包括基于突出显示可能不对应于高密度区域的特定边缘的初始边缘检测处理的边缘。为了说明,基于场景的图像编辑系统106确定模仿二维图像中的边缘的人类绘制的过滤器、利用神经网络自动检测某些边缘、利用精明的边缘检测器模型来检测边缘、语义分割或用户输入以确定房间的角落/边缘、诸如纸张的平面对象的边缘、或用于在网格生成过程期间标识要采样的附加边缘的另一对象。通过利用边缘映射8404来引导附加位移三维网格8402中的顶点的位移,基于场景的图像编辑系统106经由所指示的边缘处的附加顶点在附加位移三维网格8402中提供更准确的边缘细节。在其他实施例中,基于场景的图像编辑系统106还对与二维图像对应的视差估计图执行边缘检测操作,以确定二维图像中的采样位置。这样的处理允许基于场景的图像编辑系统106根据与生成附加位移三维网格8402相关地提供的附加信息,向附加位移三维网格8402任意添加附加细节。
图85还示出了基于场景的图像编辑系统106提供用于为二维图像生成位移三维网格的附加细节。例如,基于场景的图像编辑系统106为用户提供一个或多个工具来指示要添加到表示二维图像的三维网格的附加信息。具体地,图85示出了二维图像8500,包括在风景俯瞰的道路上停放的汽车的图像。
图85还示出用户输入已经在二维图像8500上指示了圆圈8502,用于将附加信息添加到表示二维图像8500的位移三维网格8504中。为了说明,响应于在二维图像8500上指示圆圈8502的用户输入,基于场景的图像编辑系统106将圆添加到位移三维网格8504中。例如,基于场景的图像编辑系统106在与圆圈8502相对应的位移三维网格8504的位置8506处向位移三维网格8504添加额外的顶点/面。
通过将附加信息添加到位移三维网格8504中,基于场景的图像编辑系统106在修改二维图像8500方面提供了附加的灵活性。例如,由于基于场景的图像编辑系统106在位置8506处将附加顶点/面添加到位移三维网格8504中,因此基于场景的图像编辑系统106提供在不损害位移三维网格8504的周围部分的完整性的情况下修改所选部分的能力。为了说明,响应于删除圆圈8502内的二维图像8500的部分的请求,基于场景的图像编辑系统106在位移三维网格8504的位置8506处移除位移三维网格8504的对应部分。基于场景的图像编辑系统106还提供附加选项,例如在不损害位置8506外的位移三维网格8504的部分的几何形状的情况下使圆圈8502内的部分变形,或者将圆圈8502内的部分与二维图像8500的其他部分分开地纹理化。
现在转到图86,将提供关于基于场景的图像编辑系统106的各种组件和能力的附加细节。具体地,图86示出了由计算设备8600(例如,(多个)服务器102和/或客户端设备110a-110n之一)实现的基于场景的图像编辑系统106。此外,基于场景的图像编辑系统106也是图像编辑系统104的一部分。如图所示,在一个或多个实施例中,基于场景的图像编辑系统106包括但不限于网格生成器8602,包括(多个)神经网络8604、用户界面管理器8606、图像深度管理器8608、对象管理器8610、相机管理器8612和数据存储器8614。
如图86所示,基于场景的图像编辑系统106包括网格生成器8602以从二维图像生成三维网格。例如,网格生成器8602利用(多个)神经网络8604来估计二维图像的像素的深度值,并利用一个或多个过滤器来基于所估计深度值来确定密度图。此外,网格生成器8602基于密度图对点进行采样并基于采样点生成镶嵌。网格生成器8602还通过修改镶嵌中顶点的位置以将深度和位移信息合并到表示二维图像的三维网格中来生成(例如,利用(多个)神经网络8604)位移三维网格。
基于场景的图像编辑系统106还包括用户界面管理器8606,以管理与经由各种工具修改二维图像有关的用户交互。例如,用户界面管理器8606检测输入(例如,输入元素)相对于二维图像的位置,并将这些位置转换成与对应的三维网格相关联的三维空间。用户界面管理器8606还将对三维网格所做的改变转换回相应的二维图像以在图形用户界面内显示。在另外的实施例中,用户界面管理器8606显示与编辑诸如平面表面的二维图像有关的用户界面内容。
根据一个或多个实施例,基于场景的图像编辑系统106利用图像深度管理器8608来确定并利用与二维图像的场景相关联的深度信息来修改二维图像。例如,图像深度管理器8608确定与三维空间内的输入(例如,输入元素)和/或内容相对应的三维位置和/或三维深度。在附加实施例中,图像深度管理器8608利用三维表示和/或深度估计操作来生成二维图像的深度图。图像深度管理器8608根据确定的位置/深度利用深度信息来修改二维图像。
基于场景的图像编辑系统106利用对象管理器8610来管理二维图像中的对象以及二维图像的三维表示。例如,对象管理器8610生成或以其他方式确定与相对于二维图像的三维空间中的对象相对应的三维网格。对象管理器8610与图像深度管理器8608通信以根据对象深度对对象执行操作。对象管理器8610还向基于场景的图像编辑系统106的一个或多个其他组件提供对象信息。
在一个或多个实施例中,基于场景的图像编辑系统106利用相机管理器8612来管理与二维图像相关联的相机参数。具体地,相机管理器8612估计拍摄二维图像的相机的相机参数。相机管理器8612还管理与二维图像的三维表示相对应的三维空间中的相机的相机参数。相机管理器8612管理用于渲染修改的二维图像的三维空间中的相机的参数,例如焦点、焦距、位置、旋转等。
此外,如图86所示,基于场景的图像编辑系统106包括数据存储器8614。具体地,数据存储8614包括与根据二维图像的三维表示修改二维图像相关联的数据。例如,数据存储器8614包括用于生成二维图像的三维表示的神经网络。数据存储器8614还存储三维表示。数据存储器8614还存储基于场景的图像编辑系统106用来根据二维图像的内容的三维特性来修改二维图像的信息,诸如深度值、相机参数、输入元素、对象的参数或其他信息。
图86的基于场景的图像编辑系统106的每个组件可选地包括软件、硬件或两者。例如,组件包括存储在计算机可读存储介质上并且可由诸如客户端设备或服务器设备等一个或多个计算设备的处理器执行的一个或多个指令。当由一个或多个处理器执行时,基于场景的图像编辑系统106的计算机可执行指令使(多个)计算设备执行在此描述的方法。备选地,这些组件包括硬件,例如执行特定功能或功能组的专用处理设备。备选地,基于场景的图像编辑系统106的组件包括计算机可执行指令和硬件的组合。
此外,基于场景的图像编辑系统106的组件可以例如被实现为一个或多个操作系统、一个或多个独立应用、应用的一个或多个模块、一个或多个插件、一个或多个库函数或可由其他应用调用的函数、和/或云计算模型。因此,基于场景的图像编辑系统106的组件可以被实现为诸如桌面或移动应用的独立应用。此外,基于场景的图像编辑系统106的组件可以被实现为在远程服务器上托管的一个或多个基于web的应用。备选地或附加地,基于场景的图像编辑系统106的组件可以在一套移动设备应用或“app”中实现。例如,在一个或多个实施例中,基于场景的图像编辑系统106包括或结合诸如 或/>的数字软件应用来操作。以上是Adobe公司在美国和/或其他国家/地区的注册商标或商标。
现在转到图87,该图示出了基于二维图像的三维特性修改二维图像中的阴影的一系列动作8700的流程图。虽然图87示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图87中所示的任何动作。图87的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使一个或多个处理器执行图87的动作。在又一实施例中,系统包括被配置为执行图87的动作的处理器或服务器。
如图所示,该系列动作8700包括生成表示二维图像的三维网格的动作8702。此外,动作8700的系列包括基于三维网格确定放置在二维图像的场景内的对象的估计三维特性的动作8704。该系列动作8700还包括动作8706,该动作8706根据对象的位置生成具有更新后的阴影的修改的二维图像。
在一个或多个实施例中,该系列动作8700包括由至少一个处理器确定二维图像的场景中的一个或多个背景对象的估计三维特性。该系列动作8700包括由至少一个处理器确定将对象放置在二维图像的场景内的选定位置的请求。该系列动作8700还包括由至少一个处理器根据对象的选定位置和一个或多个背景对象的估计三维特性来生成包括一个或多个更新后的阴影的修改的二维图像。
在一个或多个实施例中,动作8700的系列包括基于与二维图像的场景的一个或多个前景对象和一个或多个背景对象相对应的像素深度值以及与二维图像相对应的相机位置的估计相机参数,利用一个或多个神经网络来生成针对二维图像的三维网格。
在一个或多个实施例中,该系列动作8700包括为二维图像的场景的一个或多个前景对象和一个或多个背景对象生成对象分割图。该系列动作8700包括根据对象分割图为一个或多个前景对象和一个或多个背景对象生成多个分离的三维网格。
根据一个或多个实施例,该系列动作8700包括确定该请求包括将对象从二维图像中的第一位置移动到二维图像中的第二位置。该系列动作8700包括根据对象的形状在与二维场景内的选定位置相对应的三维位置处生成代理三维网格。该系列动作8700还包括从二维图像移除在二维图像中的第一位置处与对象相对应的第一阴影。此外,该系列动作8700包括利用代理三维网格生成在二维图像中的第二位置处与对象相对应的第二阴影。
在一些实施例中,该系列动作8700包括根据二维图像内该对象的可见部分的特征来确定对应于该对象的对称轴。该系列动作8700还包括基于对称轴生成三维网格,包括与对象的可见部分相对应的第一三维部分以及第一三维部分的与对象的不可见部分相对应的镜像三维部分。
在一个或多个实施例中,该系列动作8700包括确定该对象对应于预定的对象子集。此外,该系列动作8700包括利用为对象的预定子集训练的机器学习模型来生成表示对象的三维网格。
在至少一些实施例中,该系列动作8700包括根据表示对象的三维网格和表示一个或多个背景对象的一个或多个附加三维网格来确定对象在选定位置处的一个或多个阴影图。该系列动作8700包括基于一个或多个阴影图、估计的二维图像的相机参数和估计的二维图像的照明参数来生成修改的二维图像,该修改的二维图像包括在选定位置处对象的渲染阴影。
在一个或多个实施例中,该系列动作8700包括基于与二维图像的场景中的一个或多个背景对象相对应的像素深度值,利用一个或多个神经网络生成针对二维图像的三维网格。该系列动作8700还包括基于二维图像的三维网格并响应于将对象放置在二维图像的场景内的选定位置处的请求,确定对象相对于一个或多个背景对象的估计三维特性。该系列动作8700还包括根据对象的选定位置和对象相对于一个或多个背景对象的估计三维特性来生成包括一个或多个更新后的阴影的修改的二维图像。
根据一个或多个实施例,该系列动作8700包括确定针对二维图像的场景中的一个或多个背景对象的对象分割。该系列动作8700包括生成在三维空间内表示一个或多个背景对象的一个或多个三维网格。该系列动作8700还包括生成在三维空间内表示对象的三维网格。
在一个或多个实施例中,该系列动作8700包括基于二维图像的场景内的选定位置来确定三维位置。该系列动作8700包括将表示三维空间内的对象的三维网格放置在三维位置。
在一个或多个实施例中,该系列动作8700包括确定对象包括二维图像中的前景对象。此外,该系列动作8700包括生成代理三维网格,该代理三维网格表示对象并在显示二维图像的图形用户界面内隐藏。
该系列动作8700包括基于二维图像中的对象的特征来确定对象的对称轴。在一个或多个实施例中,该系列动作8700包括通过在对称轴上镜像对应于对象的可见部分的部分三维网格来生成表示对象的代理三维网格。
在一个或多个实施例中,该系列动作8700包括确定在三维空间中的三维位置处对应于对象在二维图像中的初始位置的三维网格的一部分。该系列动作8700包括利用平滑模型,根据三维空间中与三维网格的部分相邻的区域的估计深度值,在三维位置处生成替换三维网格部分。该系列动作8700还包括根据对应于对象在二维图像中的初始位置的背景特征,利用神经网络在修改的二维图像中生成嵌入区域。
在至少一些实施例中,该系列动作8700包括确定该请求包括将对象从二维图像的场景内的第一位置移动到二维图像的场景内的第二位置。此外,该系列动作8700包括通过将对象从二维图像的场景内的第一位置移动到二维图像的场景内的第二位置来生成修改的二维图像。该系列动作8700包括通过从二维图像移除在第一位置处与对象相对应的第一阴影来生成修改的二维图像。该系列动作8700包括通过根据对象相对于一个或多个背景对象的估计三维特性来生成在第二位置处与对象相对应的第二阴影以生成修改的二维图像,以用于在修改的二维图像内显示。
在一个或多个实施例中,该系列动作8700包括确定二维图像的场景中的一个或多个背景对象的估计三维特性。该系列动作8700还包括响应于在显示设备的图形用户界面内与二维图像交互的输入,确定将对象放置在二维图像的场景内的选定位置的请求。此外,该系列动作8700包括根据对象的位置和一个或多个背景对象的估计三维特性来生成修改的二维图像以响应于该请求在图形用户界面内显示,修改的二维图像包括一个或多个更新后的阴影。
根据一个或多个实施例,该系列动作8700包括基于二维图像的像素深度值确定二维图像的场景的对象分割图,该对象分割图包括对象的分割和一个或多个背景对象的一个或多个附加分割。此外,该系列动作8700包括基于对该对象的分割来生成对应于该对象的前景三维网格。该系列动作8700还包括基于对一个或多个背景对象的一个或多个附加分割,生成与一个或多个背景对象相对应的一个或多个背景三维网格。
在一个或多个实施例中,该系列动作8700包括确定该对象相对于该一个或多个背景对象的估计三维特性包括生成与该对象相对应的代理三维网格。该系列动作8700还包括生成修改的二维图像,包括基于与对象相对应的代理三维网格生成用于在修改的二维图像内渲染的阴影。
该系列动作8700还包括确定该请求包括将对象从二维图像的场景内的第一位置移动到二维图像的场景内的第二位置。此外,该系列动作8700包括通过移除对象在第一位置处的第一阴影来生成修改的二维图像,以及根据所估计的一个或多个背景对象的三维特性,利用表示对象的代理三维网格来生成对象在第二位置处的第二阴影。
现在转到图88,该图示出了利用用于二维图像的对象的多个阴影图来修改二维图像中的阴影的一系列动作8800的流程图。尽管图88示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图88中所示的任何动作。图88的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,这些指令使一个或多个处理器执行图88的动作。在又一实施例中,系统包括被配置为执行图88的动作的处理器或服务器。
如图所示,该系列动作8800包括生成对应于放置在二维图像的场景内的对象的阴影图的动作8802。此外,该系列动作8800包括基于在二维图像中检测到的阴影来生成二维图像的估计阴影图的动作8804。该系列动作8800还包括基于对象的阴影图和估计阴影图生成修改的二维图像的动作8806。
在一个或多个实施例中,该系列动作8800包括由至少一个处理器响应于将对象放置在二维图像的场景内的选定位置的请求,根据对象的三维特性生成与对象相对应的阴影图。在一个或多个实施例中,该系列动作8800包括由至少一个处理器基于在二维图像中检测到的一个或多个阴影以及二维图像的估计相机参数,来生成针对二维图像的估计阴影图。根据一个或多个实施例,该系列动作8800包括由至少一个处理器结合将对象放置在选定位置来基于对应于对象的阴影图和二维图像的估计阴影图,生成修改的二维图像。
在一些实施例中,该系列动作8800包括将对应于对象的三维网格放置在与二维图像的场景内的选定位置相对应的三维空间内的三维位置处。该系列动作8800包括基于三维网格在三维空间中的三维位置来确定对应于对象的阴影图。
该系列动作8800包括确定该请求包括将对象从二维图像的场景内的第一位置移动到二维图像的场景内的第二位置。该系列动作8800还包括根据从二维图像被提取的对象的特征来生成表示对象的代理三维网格。
在一些实施例中,该系列动作8800包括基于估计的二维图像的相机位置、估计的二维图像的照明参数以及在三维空间内的三维位置处的代理三维网格来生成阴影图。
该系列动作8800包括确定该请求包括将对象导入到二维图像中以放置在选定位置。该系列动作8800还包括将表示对象的导入的三维网格放置在三维空间内的三维位置处的二维图像中。该系列动作8800还包括基于二维图像的估计相机位置和导入的表示三维空间内三维位置处的对象的三维网格来生成阴影图。
在一个或多个实施例中,该系列动作8800包括确定对应于二维图像的附加对象。该系列动作8800还包括响应于该附加对象是与该对象不同的对象类型,根据该附加对象的三维特性生成对应于该附加对象的附加阴影图。此外,该系列动作8800包括基于对应于对象的阴影图、估计的二维图像的阴影图和对应于附加对象的附加阴影图来生成修改的二维图像。
根据一个或多个实施例,该系列动作8800包括:基于估计的二维图像的相机参数,根据对象的三维特性和一个或多个附加对象的估计三维特性,确定对象和对应于二维图像的一个或多个附加对象的相对位置。该系列动作8800还包括基于对象和一个或多个附加对象的相对位置来对对象的阴影图和二维图像的估计阴影图进行合并。
在一些示例中,该系列动作8800包括根据对象和对应于二维图像的一个或多个附加对象的相对位置,从二维图像中的一个或多个附加对象或者从在二维图像的场景中检测到的场景阴影,在修改的二维图像内的对象上生成至少部分阴影。
在一个或多个实施例中,该系列动作8800包括响应于将对象放置在二维图像的场景内的选定位置处的请求,生成第一阴影图,该第一阴影图包括根据选定位置处的对象的三维特性对应于对象的第一阴影类型。在一个或多个实施例中,该系列动作8800包括根据在二维图像中检测到的一个或多个阴影和估计的二维图像的相机参数来生成包括对应于二维图像的第二阴影类型的第二阴影图。在一些实施例中,动作8800的系列包括通过结合估计的二维图像的相机参数合并第一阴影图和第二阴影图来生成包括选定位置处的对象的修改的二维图像。
在至少一些实施例中,该系列动作8800包括确定该对象对应于包括一组对象特性的对象类型。例如,该系列动作8800包括根据对象类型的对象特征集生成包括一个或多个阴影的修改的二维图像。
在一些实施例中,该系列动作8800包括响应于确定该请求包括将对象从二维图像的场景内的第一位置移动到二维图像的场景内的第二位置,生成对象的代理三维网格。该系列动作8800包括基于代理三维网格和估计的二维图像的相机位置来生成第一阴影图。
根据一个或多个实施例,该系列动作8800包括基于二维图像的第二阴影图和对象的三维位置来确定来自二维图像的场景的阴影部分被投射到对象上。该系列动作8800包括从在选定位置处的对象上的二维图像的场景生成包括阴影部分的修改的二维图像。
在一个或多个实施例中,该系列动作8800包括响应于确定该请求包括在选定位置处将该对象插入到二维图像中,为该对象插入导入的三维网格。该系列动作8800包括基于所导入的三维网格和估计的二维图像的相机位置来生成第一阴影图。
在一些实施例中,该系列动作8800包括确定第一阴影类型包括与表示对象的代理三维网格有关的代理阴影类型。该系列动作8800包括确定第二阴影类型包括与在二维图像的场景内投射一个或多个阴影的一个或多个对象有关的场景阴影类型。
该系列动作8800包括根据附加对象的三维特性生成包括对应于附加对象的第三阴影类型的第三阴影图,该第三阴影类型包括与第一阴影类型和第二阴影类型不同的阴影类型。该系列动作8800还包括通过将第三阴影图与第一阴影图和第二阴影图合并来生成修改的二维图像。
根据一个或多个实施例,该系列动作8800包括响应于将前景对象放置在二维图像的场景内的选定位置的请求,根据前景对象的三维特性生成对应于前景对象的前景阴影图。在一些实施例中,动作8800的系列包括基于在二维图像的背景中检测到的一个或多个阴影和估计的二维图像的相机参数来生成二维图像的背景阴影图。此外,该系列动作8800包括通过合并前景阴影图和背景阴影图来结合将前景对象放置在选定位置来生成修改的二维图像。
在一些实施例中,该系列动作8800包括确定该请求包括将前景对象从二维图像的场景内的第一位置移动到二维图像的场景内的第二位置。该系列动作8800包括基于该请求,根据二维图像中的前景对象的特征来生成表示前景对象的代理三维网格。此外,该系列动作8800包括基于对应于代理三维网格的代理阴影和估计的二维图像的相机位置来生成前景阴影图。
该系列动作8800包括生成对应于二维图像的像素的像素深度图。该系列动作8800还包括基于在二维图像的背景中检测到的一个或多个阴影、像素深度图以及估计的二维图像的相机参数来生成背景阴影图。
在一个或多个实施例中,该系列动作8800包括基于二维图像的场景的三维表示来确定特定对象相对于二维图像的前景对象和背景的位置。该系列动作8800还包括基于特定对象相对于前景对象和背景的位置来确定使用前景阴影图和背景阴影图来确定前景对象的阴影或在背景中检测到的一个或多个阴影覆盖特定对象的一部分。
现在转到图89,该图示出了生成指示二维图像的像素-度量距离比的尺度场的一系列动作8900的流程图。尽管图89示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图89中所示的任何动作。图89的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行图89的动作。在又一实施例中,系统包括被配置为执行图89的动作的处理器或服务器。
如图所示,该系列动作8900包括生成二维图像的特征表示的动作8902。此外,动作8900的系列包括基于特征表示针对二维图像尺度场的动作8904,其包括指示二维图像中的像素到度量距离比的值。该系列动作8900还包括根据尺度场生成内容的度量距离的动作8906。备选地,该系列动作8900包括根据尺度场修改二维图像的动作8908。
在一个或多个实施例中,该系列动作8900包括利用一个或多个神经网络生成二维图像的特征表示。在一些实施例中,动作8900的系列包括利用一个或多个神经网络并基于特征表示生成二维图像的尺度场,该尺度场包括指示二维图像中的像素距离与对应于二维图像的三维空间中的度量距离的比率的多个值。在附加实施例中,该系列动作8900包括执行根据二维图像的尺度场生成二维图像中描绘的内容的度量距离、或由至少一个处理器根据二维图像的尺度场修改二维图像中的内容中的至少一个。
在一些实施例中,动作8900的系列包括利用一个或多个神经网络并且基于特征表示,根据三维空间中的二维图像的地平线来生成三维空间中的多个地面到地平线向量。在另外的实施例中,动作8900的系列包括生成地面到地平线向量,地面到地平线向量指示从与二维图像的像素相对应的三维点到三维空间中的地平线的距离和方向。
根据一个或多个实施例,该系列动作8900包括为二维图像的像素生成比率,该比率指示二维图像中的像素距离与三维空间中对应的三维距离相对于二维图像的相机高度的比率。
在至少一些实施例中,该系列动作8900包括确定对应于内容的第一像素和对应于内容的第二像素之间的像素距离。动作8900的系列包括基于像素距离和二维图像中的像素距离与三维空间中的度量距离的比率来生成度量距离。
该系列动作8900包括确定对应于第一像素的尺度场的值。此外,该系列动作8900包括基于第一像素和第二像素之间的像素距离将对应于第一像素的尺度场的值转换为度量距离。
在附加实施例中,该系列动作8900包括确定放置在二维图像内的对象的像素位置,以及基于像素位置和尺度场来确定对象的尺度。该系列动作8900包括确定对象的初始大小,并且基于由来自对象的像素位置处的尺度场的值指示的比率,将对象插入具有修改大小的像素位置。
在一个或多个实施例中,该系列动作8900包括为二维图像生成投影到相应三维空间的二维图像的多个像素的估计深度值。该系列动作8900还包括根据估计的二维图像的相机高度为二维图像确定地平线。该系列动作8900还包括根据针对多个像素和地平线的估计深度值,基于相应三维空间中的多个地面到地平线向量,为二维图像生成基准真值尺度场。此外,该系列动作8900包括基于二维图像的基准真值尺度场来修改一个或多个神经网络的参数。
根据一个或多个实施例,该系列动作8900包括为多个二维图像的二维图像生成投影到三维空间的二维图像的多个像素的估计深度值。该系列动作8900还包括根据二维图像的地平线为二维图像生成尺度场,该尺度场包括指示三维空间中的地面到地平线向量长度相对于二维图像的多个像素的像素距离的比率的多个值。此外,该系列动作8900包括基于二维图像的尺度场修改一个或多个神经网络的参数。
在一个或多个实施例中,该系列动作8900包括使用一个或多个神经网络将二维图像的多个像素投影到三维空间。动作8900的系列还包括基于二维图像的相机高度来确定三维空间中的地平线。此外,动作8900的系列包括基于估计深度值生成多个地面到地平线向量,该多个地面至水平向量表示对应于二维图像的多个像素的地面点与三维空间中的地平线之间的多个度量距离。
根据一个或多个实施例,该系列动作8900包括确定多个像素中的第一像素与对应于二维图像的地平线的第二像素之间的像素距离。该系列动作8900还包括为第一像素生成表示对应于二维图像的像素距离和相机高度之间的比率的值。
在一些实施例中,动作8900的系列包括利用一个或多个神经网络生成二维图像的估计尺度场。该系列动作8900还包括基于二维图像的尺度场和估计的二维图像的尺度场来确定损失。该系列动作8900还包括基于该损失修改一个或多个神经网络的参数。
在一个或多个实施例中,该系列动作8900包括利用一个或多个神经网络生成附加二维图像的特征表示。该系列动作8900还包括利用一个或多个神经网络为附加二维图像生成附加尺度场。在一个或多个实施例中,该系列动作8900包括通过在附加二维图像内放置具有基于附加二维图像的附加尺度场的对象大小的对象来修改附加二维图像。在一些实施例中,动作8900的系列包括根据附加二维图像的附加尺度场来确定附加二维图像中描绘的内容的度量距离。
根据一个或多个实施例,动作8900的系列包括利用一个或多个神经网络来生成二维图像的特征表示,一个或多个神经网络包括从具有注释的地平线和地平线的多个数字图像学习的参数。该系列动作8900还包括利用一个或多个神经网络并基于特征表示来生成二维图像的尺度场,该尺度场包括指示像素距离相对于二维图像的相机高度的比率的多个值。在一些实施例中,该系列动作8900包括执行根据二维图像的尺度场来生成在二维图像中描绘的对象的度量距离、或根据二维图像的尺度场来修改二维图像中的对象的至少一个。
在一个或多个实施例中,该系列动作8900包括为二维图像的像素生成表示从该像素到该二维图像的地平线的像素距离与该二维图像的相机高度之间的比率的值。
该系列动作8900还包括确定对应于二维图像的位置的像素。该系列动作8900还包括基于来自与二维图像的位置相对应的像素的尺度场的值来确定对象的缩放大小。该系列动作8900还包括根据对象的缩放大小在二维图像的位置处插入对象。
现在转到图90,该图示出了在二维图像中生成二维人类的三维人类模型的一系列动作9000的流程图。虽然图90示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图90中所示的任何动作。图90的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,这些指令使一个或多个处理器执行图90的动作。在又一实施例中,系统包括被配置为执行图90的动作的处理器或服务器。
如图所示,该系列动作9000包括从二维图像中的二维人类提取二维姿势数据的动作9002。此外,该系列动作9000包括提取与二维人类相对应的三维姿势数据和三维形状数据的动作9004。该系列动作9000还包括基于二维数据和三维数据来生成表示二维人类的三维人类模型的动作9006。
在一个或多个实施例中,该系列动作9000包括利用一个或多个神经网络从提取自二维图像的二维人类提取二维姿势数据。在一些实施例中,动作9000的系列包括利用一个或多个神经网络提取与从二维图像中提取的二维人类相对应的三维姿势数据和三维形状数据。在其他实施例中,该系列动作9000包括通过将二维姿势数据与三维姿势数据和三维形状数据组合来在对应于二维图像的三维空间内生成表示二维人类的三维人类模型。
根据一个或多个实施例,该系列动作9000包括利用第一神经网络提取二维姿势数据,该二维姿势数据包括具有二维骨骼的二维骨架和指示该二维骨架的一个或多个部分的注释。该系列动作9000还包括利用第二神经网络提取包括具有三维骨骼的三维骨骼的三维姿势数据和包括根据二维人类的三维网格的三维形状数据。该系列动作9000还包括利用用于手部特定边界框的第三神经网络来提取对应于二维人类的一个或多个手的三维手部姿势数据。
在一个或多个实施例中,该系列动作9000包括根据二维姿势数据中的一个或多个对应骨骼迭代地调整三维姿势数据中的一个或多个骨骼。在另外的实施例中,动作9000的系列包括将具有三维手姿数据的一个或多个手部骨骼迭代地连接到具有三维身体姿势数据的身体骨骼。
在一些实施例中,该系列动作9000包括响应于修改二维图像内的二维人类的姿势的指示,生成具有修改的三维姿势数据的修改的三维人类模型。该系列动作9000包括基于修改的三维人类模型生成包括修改的二维人类的修改的二维图像。
该系列动作9000包括响应于包括修改的三维姿势数据的三维人类模型,确定修改的三维人类模型与对应于二维图像的三维空间内的附加三维模型之间的交互。该系列动作9000还包括根据修改的三维人类模型和附加三维模型之间的交互来生成包括修改的二维人类的修改的二维图像。
在至少一些实施例中,该系列动作9000包括生成与二维图像中的二维人类的边界相对应的裁剪图像。该系列动作9000包括利用一个或多个神经网络从裁剪图像中提取二维姿势数据。
在一个或多个实施例中,该系列动作9000包括利用一个或多个神经网络提取与从二维图像中提取的二维人类的二维骨架相对应的二维姿势数据。在一些实施例中,动作9000的系列包括利用一个或多个神经网络提取与从二维图像提取的二维人类的三维骨架相对应的三维姿势数据和三维形状数据。该系列动作9000还包括在对应于二维图像的三维空间内,通过根据二维姿势数据和三维形状数据的二维骨架来细化三维姿势数据的三维骨架来生成表示二维人类的三维人类模型。
在一个或多个实施例中,该系列动作9000包括利用一个或多个神经网络的第一神经网络从二维图像中提取二维姿势数据。该系列动作9000还包括利用一个或多个神经网络中的第二神经网络来提取三维姿势数据和三维形状数据。
在一些实施例中,该系列动作9000包括生成与二维人类的身体部分相对应的身体边界框。该系列动作9000包括根据身体边界框利用神经网络提取与二维人类的身体部分相对应的三维姿势数据。
在一些实施例中,该系列动作9000包括生成与二维人类的一个或多个手相对应的一个或多个手部边界框。该系列动作9000还包括根据一个或多个手部边界框利用附加神经网络提取与二维人类的一个或多个手相对应的附加三维姿势数据。
在一个或多个实施例中,该系列动作9000包括将与二维人类的身体部分相对应的三维姿势数据和与二维人类的一个或多个手相对应的附加三维姿势数据进行组合。动作9000的系列包括基于骨骼在二维骨架中的位置迭代地修改骨骼在三维骨架中的位置。
在一个或多个实施例中,该系列动作9000包括修改三维空间内的三维人类模型的姿势。该系列动作9000还包括根据三维人类模型在三维空间中的姿势来生成二维图像内的二维人类的修改姿势。该系列动作9000还包括利用一个或多个神经网络来生成修改的二维图像,修改的二维图像包括根据修改的二维人类的修改的姿势和与二维图像相关联的相机位置。
根据一个或多个实施例,该系列动作9000包括利用一个或多个神经网络从提取自二维图像的二维人类提取二维姿势数据。该系列动作9000包括利用一个或多个神经网络提取与从二维图像中提取的二维人类相对应的三维姿势数据和三维形状数据。此外,该系列动作9000包括通过将二维姿势数据与三维姿势数据和三维形状数据进行组合,来在与二维图像相对应的三维空间内生成表示二维人类的三维人类模型。
在一个或多个实施例中,动作9000系列包括提取二维姿势数据,包括使用一个或多个神经网络的第一神经网络从二维图像的裁剪部分提取二维骨架。该系列动作9000包括提取三维姿势数据,包括利用一个或多个神经网络的第二神经网络从二维图像的裁剪部分提取三维骨架。
在至少一些实施例中,该系列动作9000包括利用第一神经网络提取对应于二维人类的第一部分的第一三维骨架。在一个或多个实施例中,该系列动作9000包括利用第二神经网络提取对应于包括手的二维人类的第二部分的第二三维骨架。
在一个或多个实施例中,动作9000的系列包括根据第一三维骨架的骨骼在三维空间内的位置迭代地修改第二三维骨架的骨骼的位置,以合并第一三维骨架和第二三维骨架。该系列动作9000包括根据来自二维姿势数据的二维骨架的骨骼的位置迭代地修改第一三维骨架中的骨骼的位置。
现在转到图91,该图示出了基于修改表示二维图像的二维人类的三维人类模型的姿势来修改二维图像的一系列动作9100的流程图。虽然图91示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图91中所示的任何动作。图91的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,这些指令使一个或多个处理器执行图91的动作。在又一实施例中,系统包括被配置为执行图91的动作的处理器或服务器。
如图所示,该系列动作9100包括生成用于修改二维图像中的二维人类的姿势的交互指示符的动作9102。此外,该系列动作9100包括修改表示二维人类的三维人类模型的姿势的动作9104。该系列动作9100还包括基于三维人类模型的修改的姿势生成修改的二维图像的动作9106。
在一个或多个实施例中,该系列动作9100包括生成与修改二维图像中的二维人类的姿势有关的具有二维图像的交互式指示符以在客户端设备的图形用户界面内显示。在一些实施例中,该系列动作9100包括响应于与交互式指示符的交互,来修改表示二维人类的三维人类模型的姿势。在至少一些实施例中,该系列动作9100包括根据三维人类模型的姿势生成修改的二维图像,该修改的二维图像包括二维图像中的修改的二维人类。
根据一个或多个实施例,该系列动作9100包括根据二维图像中的二维人类,利用一个或多个神经网络在三维空间内生成三维人类模型。该系列动作9100包括响应于在三维空间内生成三维人类模型来生成交互式指示符。
在一个或多个实施例中,该系列动作9100包括利用一个或多个神经网络确定对应于二维图像的相机位置。该系列动作9100包括基于对应于二维图像的相机位置在三维空间内的位置处插入三维人类模型。此外,该系列动作9100包括提供三维人类模型以与二维图像一起显示在客户端设备的图形用户界面内。
根据一个或多个实施例,该系列动作9100包括利用一个或多个神经网络从二维图像中的二维人类提取二维姿势数据。该系列动作9100包括利用一个或多个神经网络从二维图像中的二维人类提取三维姿势数据。该系列动作9100还包括在三维空间内的位置处基于二维姿势数据和三维姿势数据生成三维人类模型。
在一个或多个实施例中,该系列动作9100包括基于二维人类在二维图像中的位置将三维人类模型提供为客户端设备的图形用户界面内的覆盖。
在一些实施例中,该系列动作9100包括基于二维图像中的二维人类的姿势来确定三维人类模型的初始姿势。动作9100的系列包括基于三维人类模型的初始姿势以及与交互指示符的交互来修改三维人类模型的姿势。
在一个或多个实施例中,该系列动作9100包括根据三维人类模型的初始姿势和三维人类模型的目标姿势来确定三维人类模型的一个或多个部分的运动范围。此外,该系列动作9100包括提供二维人类的一个或多个对应部分的对应运动范围,以结合与交互指示符的交互在客户端设备的图形用户界面内显示。
在一些实施例中,动作9100的系列包括基于三维人类模型的姿势和二维人类的初始纹理来生成修改的二维人类。在一个或多个实施例中,该系列动作9100包括生成包括修改的二维人类的修改的二维图像。
此外,该系列动作9100包括在三维空间内并基于三维人类模型的姿势来确定三维人类模型与对应于二维图像中的二维对象的三维对象之间的交互。该系列动作9100还包括根据三维人类模型和三维对象之间的交互来生成表示修改的二维人类和二维对象之间的交互的修改的二维图像。
在一个或多个实施例中,该系列动作9100包括生成三维人类模型以在客户端设备的图形用户界面内显示,该三维人类模型表示二维图像在三维空间中的二维人类。该系列动作9100包括生成与修改表示二维图像中的二维人类的三维人类模型的姿势有关的交互式指示符,以在客户端设备的图形用户界面内显示。此外,该系列动作9100包括响应于与交互式指示符的交互,修改表示三维空间中的二维人类的三维人类模型的姿势。该系列动作9100还包括根据三维人类模型的姿势生成修改的二维图像,该修改的二维图像包括二维图像中的修改的二维人类。
在一个或多个实施例中,该系列动作9100包括根据二维人类在二维图像的场景中的位置,利用多个神经网络在三维空间内生成三维人类模型。该系列动作9100包括生成包括用于修改三维空间内的三维人类模型的一个或多个部分的一个或多个控件的交互式指示符。
此外,该系列动作9100包括通过响应于与交互式指示符的交互根据一个或多个控件修改三维人类模型的一部分的姿势来修改三维人类模型的姿势。该系列动作9100包括在客户端设备的图形用户界面内,结合与交互式指示符的交互,修改与三维人类模型的该部分相对应的二维人类的一部分的姿势。
根据一个或多个实施例,该系列动作9100包括基于与三维人类模型的该部分相对应的姿势先验来确定与该三维人类模型的该部分相关联的运动约束。该系列动作9100包括根据运动约束修改三维人类模型的该部分。
在一个或多个实施例中,该系列动作9100包括基于二维图像的二维人类来确定对应于三维人类模型的初始纹理。该系列动作9100包括利用神经网络根据三维人类模型的姿势和对应于三维人类模型的初始纹理来生成修改的二维图像。
在一些实施例中,该系列动作9100包括根据二维人类的初始姿势来确定被二维人类遮挡的二维图像的背景区域。该系列动作9100还包括生成用于二维图像的背景区域的修复区域,以结合修改二维人类的姿势在客户端设备的图形用户界面内显示。
根据一些实施例,该系列动作9100包括响应于与附加交互指示符的附加交互,来确定三维空间内的三维人类模型的修改形状。此外,该系列动作9100包括根据三维人类模型的姿势和三维人类模型的修改形状来生成包括二维图像中的修改的二维人类的修改的二维图像。
在一些实施例中,该系列动作9100包括生成与修改二维图像中的二维人类的姿势有关的具有二维图像的交互式指示符以在客户端设备的图形用户界面内显示。该系列动作9100还包括响应于与交互式指示符的交互,修改表示二维人类的三维人类模型的姿势。此外,该系列动作9100包括根据三维人类模型的姿势生成修改的二维图像,该修改的二维图像包括二维图像中的修改的二维人类。
在至少一些实施例中,该系列动作9100包括根据从二维图像中的二维人类提取的三维姿势和三维形状,利用多个神经网络在三维空间内生成三维人类模型。该系列动作9100还包括响应于在三维空间内生成三维人类模型来生成交互式指示符。
在一些实施例中,该系列动作9100包括修改三维人类模型的姿势,包括响应于与交互式指示符的交互来确定将三维人类模型的初始姿势改变为三维人类模型的目标姿势的请求。该系列动作9100还包括生成修改的二维图像,包括基于三维人类模型的初始姿势和三维人类模型的目标姿势修改二维人类的姿势。
在一个或多个实施例中,该系列动作9100包括利用多个神经网络基于二维图像中的二维人类的初始姿势来生成三维人类模型。该系列动作9100包括在对应于二维图像中的二维人类的位置处提供三维人类模型和交互指示符作为二维图像中的覆盖物以供在客户端设备的图形用户界面内显示。
现在转到图92,该图示出了基于二维图像的三维表示来生成用于变换二维图像中的对象的平面表面的一系列动作9200的流程图。尽管图92示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图92中所示的任何动作。图92的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,这些指令使一个或多个处理器执行图92的动作。在又一实施例中,系统包括被配置为执行图92的动作的处理器或服务器。
如图所示,该系列动作9200包括确定相对于场景的三维表示中的对象的三维位置值的动作9202。此外,该系列动作9200包括与修改对象相关联地生成对应于三维位置值的平面表面的动作9204。该系列动作9200还包括提供平面表面的一部分以经由图形用户界面显示的动作9206。
在一个或多个实施例中,该系列动作9200包括确定相对于三维空间内一个或多个轴上的场景的三维表示的一个或多个对象的对象的一部分的三维位置值。在一些实施例中,动作9200的系列包括结合修改三维空间内的对象来生成与相对于对象在三维空间内的一个或多个轴上的部分的三维位置值相对应的平面表面。根据一个或多个实施例,该系列动作9200包括提供平面表面的一部分以经由客户端设备的图形用户界面进行显示。
在一些实施例中,该系列动作9200包括响应于经由图形用户界面对对象的选择而在三维空间内的一个或多个轴上生成平面表面。
根据一个或多个实施例,该系列动作9200包括为平面表面的该部分生成部分透明纹理以在客户端设备的图形用户界面内显示。
在一个或多个实施例中,该系列动作9200包括检测对象在三维空间内从第一位置到第二位置的移动。该系列动作9200还包括响应于对象的移动将平面表面的位置从第一位置修改为第二位置。
在一些实施例中,该系列动作9200包括响应于经由图形用户界面对对象的选择,根据对象在三维空间内的一个或多个轴上的位置来确定对象的部分。
在一个或多个实施例中,该系列动作9200包括响应于检测到对象相对于平面表面的位置沿一个或多个轴的轴线的改变而修改平面表面的该部分的视觉特性。
根据一个或多个实施例,该系列动作9200包括提供用于在图形用户界面内显示的选项,以沿着三维空间内的一个或多个轴中的轴将对象的位置捕捉到最近的表面。该系列动作9200包括响应于对选项的选择,将对象沿着三维空间内的一个或多个轴中的轴向移动到与最近表面相邻的位置。该系列动作9200还包括响应于将对象移动到与最近表面相邻的位置来修改平面表面的位置或平面表面的纹理。
在一个或多个实施例中,该系列动作9200包括基于对象确定用于经由图形用户界面显示的平面表面的大小或形状。
在一些实施例中,该系列动作9200包括确定该对象与三维空间内的附加对象之间的距离低于阈值距离。该系列动作9200包括响应于对象和附加对象之间的距离低于阈值距离,生成与附加对象的表面相对应的附加平面表面,以经由客户端设备的图形用户界面进行显示。该系列动作9200还包括根据对象和附加对象之间的距离来确定附加平面表面的可见部分的大小。
在一个或多个实施例中,该系列动作9200包括在三维空间内确定包括一个或多个对象的二维图像的场景的三维表示。该系列动作9200还包括确定相对于在三维空间内的一个或多个轴上的场景的三维表示中的一个或多个对象的对象的一部分的三维位置值。此外,该系列动作9200包括结合修改对象在三维空间内的位置,生成与相对于对象在三维空间内的一个或多个轴上的部分的三维位置值相对应的平面表面。在一些实施例中,该系列动作9200包括提供平面表面的一部分以经由客户端设备的图形用户界面进行显示。
根据一个或多个实施例,该系列动作9200包括利用一个或多个神经网络生成表示二维图像中的一个或多个前景对象的一个或多个前景三维网格。该系列动作9200还包括利用一个或多个神经网络生成表示二维图像中的背景的背景三维网格。
在一个或多个实施例中,该系列动作9200包括在三维空间内确定包括对对象的选择和在三维空间内移动对象的指示的输入。该系列动作9200包括响应于输入修改对象的位置和平面表面在三维空间内的该部分的位置。
在一些实施例中,该系列动作9200包括在三维空间内确定包括对平面表面的选择和在三维空间内移动平面表面的指示的输入。该系列动作9200包括响应于输入修改对象的位置和平面表面在三维空间内的该部分的位置。
在一些实施例中,动作9200的系列包括基于二维图像的相机位置来确定对应于二维图像的场景的地平线。该系列动作9200还包括根据从平面表面的位置到地平线的距离来提供平面表面的一部分以供显示。
在一个或多个实施例中,该系列动作9200包括提供用于显示的具有第一纹理的平面表面的一部分。该系列动作9200还包括响应于修改对象在三维空间内的位置的输入,提供平面表面的该部分以不同于第一纹理的第二纹理进行显示。
该系列动作9200包括在平面表面的该部分处生成对象平台,该对象平台指示对象相对于对应于平面表面的一个或多个平面轴的位置,该对象平台包括与平面表面的一个或多个附加部分不同的纹理。该系列动作9200还包括响应于修改对象沿对应于平面表面的一个或多个平面轴的位置,修改对象平台沿平面表面的位置。
在至少一些实施例中,该系列动作9200包括确定相对于三维空间内一个或多个轴上的场景的三维表示的一个或多个对象的对象的一部分的三维位置值。该系列动作9200还包括结合修改对象在三维空间内的位置,生成与相对于对象在三维空间内的一个或多个轴上的部分的三维位置值相对应的平面表面。该系列动作9200还包括响应于修改对象在三维空间内的位置来修改客户端设备的图形用户界面内的平面表面的一部分。
在一个或多个实施例中,动作9200的系列包括确定相对于对象的该部分的三维位置值包括确定对象在三维空间内沿垂直轴的最低三维位置值。该系列动作9200还包括生成平面表面包括在沿垂直轴的对象的最低三维位置值处沿垂直于垂直轴的水平轴生成平面表面。
在一些实施例中,该系列动作9200包括检测对象沿一个或多个轴的轴的位置的改变。该系列动作9200还包括根据对象沿一个或多个轴的轴线的位置的改变来修改平面表面的该部分的位置。
现在转到图93,该图示出了根据一个或多个实施例基于二维图像的三维表示来修改二维图像的焦点的一系列动作9300的流程图。尽管图93示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图93中所示的任何动作。图93的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行图93的动作。在又一实施例中,系统包括被配置为执行图93的动作的处理器或服务器。
如图所示,该系列动作9300包括生成二维图像的三维表示的动作9302。此外,该系列动作9300包括基于输入元素在三维表示内的位置来确定二维图像的焦点的动作9304。该系列动作9300还包括基于焦点生成包括图像模糊的修改的二维图像的动作9306。
在一个或多个实施例中,该系列动作9300包括由至少一个处理器生成包括一个或多个对象的二维图像的三维表示。根据一个或多个实施例,该系列动作9300包括由至少一个处理器基于输入元素在二维图像的三维表示内的三维位置,根据二维图像的相机位置来确定针对二维图像的焦点。在一些实施例中,该系列动作9300包括由至少一个处理器基于与输入元素的三维位置相对应的焦点生成包括图像模糊的修改的二维图像。
在至少一些实施例中,该系列动作9300包括利用一个或多个神经网络生成对应于二维图像中的一个或多个前景对象的一个或多个前景三维网格。该系列动作9300包括利用一个或多个神经网络生成对应于二维图像中的一个或多个背景对象的背景三维网格。
在一些实施例中,该系列动作9300包括响应于经由显示二维图像的图形用户界面的输入来生成输入元素,该输入元素包括在包括三维表示的三维空间内的三维对象。该系列动作9300还包括基于三维对象在三维空间内的三维坐标来确定焦点。
在一个或多个实施例中,该系列动作9300包括接收用于修改三维空间内的三维对象的三维坐标的输入。该系列动作9300包括响应于输入来确定三维空间内的三维对象的修改的三维坐标和修改的尺寸。此外,该系列动作9300包括基于修改的三维对象的三维坐标来更新焦点。
根据一个或多个实施例,该系列动作9300包括在图像空间内确定对应于经由图形用户界面的输入的二维坐标。例如,该系列动作9300包括通过基于对应于二维图像的深度图将图像空间中的二维坐标转换为包括三维表示的三维空间内的三维坐标来确定三维位置。
在一些实施例中,该系列动作9300包括基于二维图像的深度图,根据输入元素的三维位置来确定二维图像的所标识像素的深度值。例如,动作9300的系列包括基于所标识的像素的深度值与二维图像的一个或多个部分中的像素的深度值之间的差,利用模糊过滤器来对二维图像的一个或多个部分中的像素进行模糊。
在一个或多个实施例中,该系列动作9300包括基于输入元素的三维位置和虚拟相机在包括三维表示的三维空间内的位置来确定三维深度。该系列动作9300还包括根据三维深度修改虚拟相机的相机参数。
根据一个或多个实施例,该系列动作9300包括确定与输入元素的三维位置相对应的二维图像的一部分。此外,该系列动作9300包括通过根据二维图像的该部分来修改相机在包括三维表示的三维空间内的相机位置,来生成在该二维图像的该部分上被放大的修改的二维图像。
在一个或多个实施例中,动作9300的系列包括确定输入元素在包括三维表示的三维空间内从第一三维位置到第二三维位置的移动范围。此外,该系列动作9300包括基于输入元素从第一三维位置到第二三维位置的移动范围来生成对二维图像的不同部分进行模糊的动画以在图形用户界面内显示。
在一个或多个实施例中,该系列动作9300包括生成包括一个或多个对象的二维图像的三维表示。该系列动作9300包括根据图形用户界面内的输入元素确定包括二维图像的三维表示的三维空间内的三维位置。此外,该系列动作9300包括通过确定与三维位置相关联的深度,基于三维空间内的三维位置来确定二维图像的焦点。该系列动作9300还包括通过基于焦点修改二维图像的一个或多个部分的图像模糊来生成修改的二维图像。
在一些实施例中,该系列动作9300包括利用一个或多个神经网络生成对应于二维图像的一个或多个前景对象或一个或多个背景对象的一个或多个三维网格。
在一个或多个实施例中,该系列动作9300包括确定输入元素在二维图像的图像空间内的位置。此外,该系列动作9300包括基于图像空间和三维空间之间的映射来确定包括三维表示的三维空间内的三维位置。
例如,该系列动作9300包括根据经由显示二维图像的图形用户界面的输入来确定输入元素在二维图像的图像空间内的修改位置。该系列动作9300还包括响应于输入元素的修改位置来修改输入元素的大小和三维空间内的三维位置。
根据一个或多个实施例,该系列动作9300包括通过确定三维位置与对应于三维空间内的相机的相机位置之间的距离,来确定与三维位置相关联的深度。该系列动作9300还包括通过基于三维位置和相机位置之间的距离来修改与三维空间内的相机对应的相机参数来生成修改的二维图像。
在一个或多个实施例中,该系列动作9300包括通过确定对应于三维空间内的三维位置的像素来确定二维图像的焦点,以及基于来自二维图像的深度图的对应于三维位置的像素的深度值来确定与三维位置相关联的深度。此外,该系列动作9300包括通过基于附加像素的深度值相对于像素的深度值的差异,对二维图像中的附加像素应用模糊过滤器来生成修改的二维图像。
在一些实施例中,动作9300的系列包括确定输入元素从三维空间内的三维位置到三维空间内的附加三维位置的移动。此外,该系列动作9300包括在输入元素根据三维位置的第一三维深度和附加三维位置的第二三维深度从三维位置移动到附加三维位置时,在图形用户界面内修改二维图像中的像素的模糊值。
在至少一些实施例中,该系列动作9300包括生成包括一个或多个对象的二维图像的三维表示。此外,该系列动作9300包括根据二维图像的相机位置,基于输入元素在二维图像的三维表示内的三维位置来确定二维图像的焦点。在一些实施例中,该系列动作9300包括基于对应于输入元素的三维位置的焦点来生成包括局部图像修改的修改的二维图像。例如,生成修改的二维图像包括根据输入元素的三维位置将图像模糊应用于二维图像的内容。
在一个或多个实施例中,该系列动作9300包括生成三维表示,包括生成与二维图像中的一个或多个对象相对应的一个或多个三维网格。动作9300的系列还可以包括确定焦点包括确定输入元素的三维位置与一个或多个三维网格的三维网格的三维深度相对应。
根据一个或多个实施例,该系列动作9300包括基于一个或多个三维网格的三维网格的三维深度来确定包括三维表示的三维空间内的相机的相机参数。该系列动作9300还包括利用三维渲染器根据相机参数生成修改的二维图像。
在至少一些实施例中,该系列动作9300包括生成包括三维空间内的三维对象的输入元素,该三维空间包括二维图像的三维表示。该系列动作9300还包括基于三维对象在三维空间内的三维坐标来确定焦点。
本公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,例如一个或多个处理器和系统存储器,如下面更详细地讨论的。本公开范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。具体地,这里描述的一个或多个过程可以至少部分地实现为包含在非暂态计算机可读介质中并且可由一个或多个计算设备(例如,这里描述的任何媒体内容访问设备)执行的指令。一般而言,处理器(例如,微处理器)从非暂态计算机可读介质(例如,存储器)接收指令,并执行这些指令,从而执行一个或多个进程,包括在此描述的一个或多个进程。
计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种截然不同的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(例如,基于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于以计算机可执行指令或数据结构的形式存储所需程序代码装置并可由通用或专用计算机访问的任何其他介质。
网络被定义为能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机正确地将该连接视为传输介质。传输介质可包括网络和/或数据链路,其可用于携带计算机可执行指令或数据结构形式的所需程序代码装置,并且可由通用或专用计算机访问。上述各项的组合也应包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传输到非暂态计算机可读存储介质(设备)(反之亦然)。例如,可以将通过网络或数据链路接收的计算机可执行指令或数据结构缓存在网络接口模块(例如,NIC)内的RAM中,然后最终将其传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因此,应当理解,非暂态计算机可读存储介质(设备)可以包括在也(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如指令和数据,当由处理器执行时,指令和数据使得通用计算机、专用计算机或专用处理设备执行特定功能或功能组。在一些实施例中,在通用计算机上执行计算机可执行指令,以将通用计算机转变为实现本公开的元素的专用计算机。计算机可执行指令可以是例如二进制、诸如汇编语言的中间格式指令、或者甚至是源代码。尽管已经以结构特征和/或方法动作专用的语言描述了该主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。
本领域技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实现,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型机、大型计算机、移动电话、PDA、平板电脑、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实施,其中本地和远程计算机系统通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)来执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被定义为用于实现对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中使用云计算来提供对可配置计算资源的共享池的无处不在且方便的按需访问。可配置计算资源的共享池可以通过虚拟化快速调配,只需很少的管理工作或服务提供商交互即可释放,然后进行相应的扩展。
云计算模型可以由各种特征组成,例如按需自助服务、广泛的网络接入、资源池、快速弹性、测量服务等。云计算模型还可以公开各种服务模型,例如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。云计算模型也可以使用不同的部署模型进行部署,例如私有云、社区云、公共云、混合云等。在本说明书和权利要求书中,“云计算环境”是使用云计算的环境。
图94示出了示例性计算设备9400的框图,该示例性计算设备9400可以被配置为执行上述过程中的一个或多个。可以理解,诸如计算设备9400的一个或多个计算设备可以表示上述计算设备(例如,(多个)服务器102和/或客户端设备110a-110n)。在一个或多个实施例中,计算设备9400可以是移动设备(例如,移动电话、智能手机、PDA、平板电脑、膝上型计算机、相机、追踪器、手表、可穿戴设备)。在一些实施例中,计算设备9400可以是非移动设备(例如,台式计算机或另一类型的客户端设备)。此外,计算设备9400可以是包括基于云的处理和存储能力的服务器设备。
如图94中所示,计算设备9400可以包括一个或多个(多个)处理器9402、存储器9404、存储设备9406、输入/输出接口9408(或“I/O接口9408”)和通信接口9410,它们可以通过通信基础设施(例如,总线9412)通信地耦合。尽管图94中示出了计算设备9400,但图94中示出的组件并不旨在是限制性的。在其他实施例中可以使用附加的或替换的组件。此外,在某些实施例中,计算设备9400包括比图94中所示的组件更少的组件。现在将更详细地描述图94中所示的计算设备9400的组件。
在特定实施例中,(多个)处理器9402包括用于执行指令的硬件,例如构成计算机程序的那些指令。作为示例而非限制,为了执行指令,(多个)处理器9402可以从内部寄存器、内部高速缓存、存储器9404或存储设备9406检索(或提取)指令,并对它们进行解码和执行。
计算设备9400包括耦合到(多个)处理器9402的存储器9404。存储器9404可以用于存储由(多个)处理器执行的数据、元数据和程序。存储器9404可以包括易失性和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储。存储器9404可以是内部或分布式存储器。
计算设备9400包括存储设备9406,存储设备9406包括用于存储数据或指令的存储器。作为示例而非限制,存储设备9406可以包括上述非暂态存储介质。存储设备9406可以包括硬盘驱动器(HDD)、闪存、通用串行总线(USB)驱动器或这些或其他存储设备的组合。
如图所示,计算设备9400包括一个或多个I/O接口9408,其被提供以允许用户向计算设备9400提供输入(例如用户笔划)、从计算设备9400接收输出、以及以其他方式向计算设备9400传输数据以及从计算设备9400传输数据。这些I/O接口9408可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备或这些I/O接口9408的组合。触摸屏可以用触笔或手指激活。
I/O接口9408可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在某些实施例中,I/O接口9408被配置为向显示器提供图形数据以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可以服务于特定实现的任何其他图形内容。
计算设备9400还可以包括通信接口9410。通信接口9410可以包括硬件、软件或两者。通信接口9410提供用于计算设备与一个或多个其他计算设备或一个或多个网络之间的通信(例如,基于分组的通信)的一个或多个接口。作为示例而非限制,通信接口9410可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或者用于与诸如Wi-Fi的无线网络进行通信的无线NIC(WNIC)或无线适配器。计算设备9400还可以包括总线9412。总线9412可以包括将计算设备9400的组件彼此连接的硬件、软件或两者。
在前述说明书中,参考其具体的示例实施例描述了本发明。参考这里讨论的细节来描述(多个)本发明的各种实施例和方面,并且附图例示了各种实施例。以上描述和附图是本发明的说明性说明,不应被解释为限制本发明。描述了许多具体细节以提供对本发明的各种实施例的透彻理解。
本发明可以在不背离其精神或基本特征的情况下以其他具体形式实施。所描述的实施例在所有方面仅被认为是说明性的而不是限制性的。例如,可以用更少或更多的步骤/动作来执行在此描述的方法,或者可以以不同的顺序来执行步骤/动作。此外,这里描述的步骤/动作可以彼此并行地重复或执行,或者与相同或相似步骤/动作的不同实例并行地重复或执行。因此,本发明的范围由所附权利要求指示,而不是由前述描述指示。权利要求的含义和等同范围内的所有变更均应包括在其范围内。

Claims (20)

1.一种计算机实现的方法,包括:
由至少一个处理器利用一个或多个神经网络从被提取自二维图像的二维人类提取二维姿势数据;
由所述至少一个处理器利用所述一个或多个神经网络提取与被提取自所述二维图像的所述二维人类相对应的三维姿势数据和三维形状数据;以及
由所述至少一个处理器并且在与所述二维图像相对应的三维空间内,通过将所述二维姿势数据与所述三维姿势数据和所述三维形状数据进行组合来生成表示所述二维人类的三维人类模型。
2.根据权利要求1所述的计算机实现的方法,其中提取所述二维姿势数据包括利用第一神经网络提取所述二维姿势数据,所述二维姿势数据包括具有二维骨骼的二维骨架和指示所述二维骨架的一个或多个部分的注释。
3.根据权利要求2所述的计算机实现的方法,其中提取所述三维姿势数据和所述三维形状数据包括利用第二神经网络提取所述三维姿势数据,所述三维姿势数据包括具有三维骨骼的三维骨架,并且所述三维形状数据包括根据所述二维人类的三维网格。
4.根据权利要求3所述的计算机实现的方法,其中提取所述三维姿势数据包括利用针对手特定边界框的第三神经网络来提取与所述二维人类的一个或多个手部相对应的三维手部姿势数据。
5.根据权利要求1所述的计算机实现的方法,其中生成所述三维人类模型包括根据所述二维姿势数据中的一个或多个对应的骨骼迭代地调整所述三维姿势数据中的一个或多个骨骼。
6.根据权利要求1所述的计算机实现的方法,其中生成所述三维人类模型包括将具有三维手部姿势数据的一个或多个手部骨架迭代地连接到具有三维身体姿势数据的身体骨架。
7.根据权利要求1所述的计算机实现的方法,还包括:
响应于修改所述二维图像内的所述二维人类的姿势的指示,生成具有经修改的三维姿势数据的经修改的三维人类模型;以及
基于所述经修改的三维人类模型,生成包括经修改的二维人类的经修改的二维图像。
8.根据权利要求7所述的计算机实现的方法,还包括:
响应于包括所述经修改的三维姿势数据的所述三维人类模型,确定所述经修改的三维人类模型与对应于所述二维图像的所述三维空间内的附加三维模型之间的交互;以及
根据所述经修改的三维人类模型与所述附加三维模型之间的所述交互,生成包括所述经修改的二维人类的所述经修改的二维图像。
9.根据权利要求1所述的计算机实现的方法,其中提取所述二维姿势数据包括:
生成与所述二维图像中的所述二维人类的边界相对应的裁剪图像;以及
利用所述一个或多个神经网络从所述裁剪图像中提取所述二维姿势数据。
10.一种系统,包括:
一个或多个存储器设备,包括二维图像;以及
一个或多个处理器,被配置为使所述系统:
利用一个或多个神经网络提取与针对从所述二维图像被提取的二维人类的二维骨架相对应的二维姿势数据;
利用所述一个或多个神经网络提取与针对从所述二维图像被提取的所述二维人类的三维骨架相对应的三维姿势数据和三维形状数据;以及
通过根据所述二维姿势数据的所述二维骨架和所述三维形状数据细化所述三维姿势数据的所述三维骨架,在对应于所述二维图像的三维空间内生成表示所述二维人类的三维人类模型。
11.根据权利要求10所述的系统,其中所述一个或多个处理器被配置为使所述系统:
利用所述一个或多个神经网络中的第一神经网络从所述二维图像提取所述二维姿势数据;以及
利用所述一个或多个神经网络中的第二神经网络提取所述三维姿势数据和所述三维形状数据。
12.根据权利要求10所述的系统,其中所述一个或多个处理器被配置为使所述系统通过以下项提取所述三维姿势数据:
生成与所述二维人类的身体部分相对应的身体边界框;以及
利用神经网络根据所述身体边界框提取与所述二维人类的所述身体部分相对应的三维姿势数据。
13.根据权利要求12所述的系统,其中所述一个或多个处理器被配置为使所述系统通过以下项提取所述三维姿势数据:
生成与所述二维人类的一个或多个手部相对应的一个或多个手部边界框;以及
利用附加神经网络根据所述一个或多个手部边界框提取与所述二维人类的所述一个或多个手部相对应的附加三维姿势数据。
14.根据权利要求13所述的系统,其中所述一个或多个处理器被配置为使所述系统通过将与所述二维人类的所述身体部分相对应的所述三维姿势数据和与所述二维人类的所述一个或多个手部相对应的所述附加三维姿势数据进行组合,来生成所述三维人类模型。
15.根据权利要求10所述的系统,其中所述一个或多个处理器被配置为使所述系统通过基于所述二维骨架中的骨骼的位置迭代地修改所述三维骨架中的骨骼的位置,来生成所述三维人类模型。
16.根据权利要求10所述的系统,其中所述一个或多个处理器被配置为使所述系统通过以下项生成经修改的二维图像:
修改所述三维人类模型在所述三维空间内的姿势;
根据所述三维人类模型在所述三维空间中的所述姿势,生成所述二维图像内的所述二维人类的经修改姿势;以及
根据所述二维人类的所述经修改的姿势和与所述二维图像相关联的相机位置,利用所述一个或多个神经网络生成所述经修改的二维图像,所述经修改的二维图像包括经修改的二维人类。
17.一种非暂态计算机可读介质,存储可执行指令,所述可执行指令在由处理设备执行时使所述处理设备执行操作,所述操作包括:
利用一个或多个神经网络从被提取自二维图像的二维人类提取二维姿势数据;
利用所述一个或多个神经网络提取被提取自所述二维图像的所述二维人类相对应的三维姿势数据和三维形状数据;以及
通过将所述二维姿势数据与所述三维姿势数据和所述三维形状数据进行组合,在与所述二维图像相对应的三维空间内生成表示所述二维人类的三维人类模型。
18.根据权利要求17所述的非暂态计算机可读介质,其中:
提取所述二维姿势数据包括利用所述一个或多个神经网络中的第一神经网络从所述二维图像的裁剪部分提取二维骨架;以及
提取三维姿势数据包括利用一个或多个神经网络中的第二神经网络从二维图像的所述裁剪部分提取三维骨架。
19.根据权利要求17所述的非暂态计算机可读介质,其中提取所述三维姿势数据包括:
利用第一神经网络提取与所述二维人类的第一部分相对应的第一三维骨架;以及
利用第二神经网络提取与包括手部的所述二维人类的第二部分相对应的第二三维骨架。
20.根据权利要求19所述的非暂态计算机可读介质,其中生成所述三维人类模型包括:
根据所述第一三维骨架的骨骼在所述三维空间内的位置,迭代地修改所述第二三维骨架的骨骼的位置,以合并所述第一三维骨架和所述第二三维骨架;以及
根据来自所述二维姿势数据的二维骨架的骨骼的位置,迭代地修改所述第一三维骨架中的骨骼的位置。
CN202311286080.7A 2022-10-06 2023-10-07 在二维图像中生成表示二维人类的三维人类模型 Pending CN117853681A (zh)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US63/378,616 2022-10-06
US18/058,601 2022-11-23
US18/058,622 2022-11-23
US18/058,554 2022-11-23
US18/058,575 2022-11-23
US18/058,630 2022-11-23
US18/058,538 2022-11-23
US18/190,556 2023-03-27
US18/190,500 2023-03-27
US18/190,636 2023-03-27
US18/190,654 2023-03-27
US18/190,513 2023-03-27
US18/190,544 2023-03-27
US18/304,144 US20240144520A1 (en) 2022-10-06 2023-04-20 Generating three-dimensional human models representing two-dimensional humans in two-dimensional images
US18/304,144 2023-04-20

Publications (1)

Publication Number Publication Date
CN117853681A true CN117853681A (zh) 2024-04-09

Family

ID=90540765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311286080.7A Pending CN117853681A (zh) 2022-10-06 2023-10-07 在二维图像中生成表示二维人类的三维人类模型

Country Status (1)

Country Link
CN (1) CN117853681A (zh)

Similar Documents

Publication Publication Date Title
CN117853611A (zh) 经由深度感知对象移动来修改数字图像
US20240144623A1 (en) Modifying poses of two-dimensional humans in two-dimensional images by reposing three-dimensional human models representing the two-dimensional humans
US20240144520A1 (en) Generating three-dimensional human models representing two-dimensional humans in two-dimensional images
US20240144586A1 (en) Generating shadows for objects in two-dimensional images utilizing a plurality of shadow maps
CN116342377A (zh) 一种降质场景下伪装目标图像自适应生成方法与系统
US20240135612A1 (en) Generating shadows for placed objects in depth estimated scenes of two-dimensional images
US20240127509A1 (en) Generating scale fields indicating pixel-to-metric distances relationships in digital images via neural networks
CN117853681A (zh) 在二维图像中生成表示二维人类的三维人类模型
CN117853610A (zh) 修改二维图像中二维人类的姿势
CN117830473A (zh) 在二维图像的深度估计场景中生成针对放置对象的阴影
AU2023210625A1 (en) Shadowmapping of depth estimated scenes
US20240135613A1 (en) Modifying digital images via perspective-aware object move
US20240135561A1 (en) Modifying digital images via depth-aware object move
US20240169628A1 (en) Moving objects casting a shadow and generating porxy shadows within a digital image
CN117853613A (zh) 经由深度感知对象移动来修改数字图像
GB2623620A (en) Generating shadows for placed objects in depth estimated scenes of two-dimensional images
US20240169624A1 (en) Modifying digital images via scene-based editing using image understanding facilitated by artificial intelligence
US20240171848A1 (en) Removing distracting objects from digital images
US20240169501A1 (en) Dilating object masks to reduce artifacts during inpainting
US20240168617A1 (en) Detecting and modifying object attributes
US20240169685A1 (en) Detecting shadows and corresponding objects in digital images
US20240135514A1 (en) Modifying digital images via multi-layered scene completion facilitated by artificial intelligence
CN117853612A (zh) 利用人类修复模型生成经修改的数字图像
US20240169502A1 (en) Detecting object relationships and editing digital images based on the object relationships
CN117876531A (zh) 利用分割分支生成填入分割图的人类修复

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