CN118052954A - 生成二维图像的自适应三维网格 - Google Patents
生成二维图像的自适应三维网格 Download PDFInfo
- Publication number
- CN118052954A CN118052954A CN202311114951.7A CN202311114951A CN118052954A CN 118052954 A CN118052954 A CN 118052954A CN 202311114951 A CN202311114951 A CN 202311114951A CN 118052954 A CN118052954 A CN 118052954A
- Authority
- CN
- China
- Prior art keywords
- dimensional
- dimensional image
- depth
- displacement
- grid
- 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
Links
- 230000003044 adaptive effect Effects 0.000 title abstract description 18
- 238000006073 displacement reaction Methods 0.000 claims abstract description 819
- 238000013528 artificial neural network Methods 0.000 claims abstract description 85
- 230000004044 response Effects 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000005070 sampling Methods 0.000 claims description 71
- 238000012545 processing Methods 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000009826 distribution Methods 0.000 claims description 9
- 238000009499 grossing Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 description 45
- 230000004048 modification Effects 0.000 description 35
- 238000012986 modification Methods 0.000 description 35
- 238000013507 mapping Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000003993 interaction Effects 0.000 description 13
- 239000011435 rock Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000008439 repair process Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 230000002730 additional effect Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000003708 edge detection Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 244000141353 Prunus domestica Species 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开涉及生成二维图像的自适应三维网格。公开了用于生成表示二维图像的三维网格以用于编辑二维图像的方法、系统和非暂态计算机可读存储介质。所公开的系统利用第一神经网络来基于估计的视差来确定二维图像的像素的密度值。所公开的系统根据密度值对二维图像中的点进行采样,并基于采样点生成镶嵌。所公开的系统利用第二神经网络来估计相机参数,并基于所估计的二维图像的像素的相机参数来修改三维网格。在一个或多个附加实施例中,所公开的系统生成三维网格以根据位移输入修改二维图像。具体地,所公开的系统将三维网格映射到二维图像,响应于位移输入修改三维网格,并更新二维图像。
Description
背景技术
计算机处理技术的改善导致了图像处理领域的重大进步。许多行业利用图像处理技术,包括机器学习模型,从而以各种方式操纵数字图像。为了说明,许多实体使用神经网络图像处理来检测和修改二维图像的对象,以便通过图像编辑工具进行进一步修改。然而,使用具有现有图像编辑工具的图像处理应用来编辑数字图像通常是一项耗时且计算昂贵的任务,需要大量使用图像编辑工具的经验。此外,许多实体正在调整图像编辑应用以在具有有限处理资源或用户界面能力的各种设备上使用,从而提供更多的轻量级、灵活的图像处理模型的效用。
发明内容
本公开描述了通过生成表示二维图像的自适应三维网格以用于编辑二维图像来解决上述问题(除了提供其他益处之外)的方法、非暂态计算机可读介质和系统的一个或多个实施例。具体地,在一个或多个实施例中,所公开的系统利用第一神经网络来基于估计视差来确定二维图像的像素的密度值。所公开的系统根据密度值对二维图像中的点进行采样,并基于采样点生成镶嵌(tessellation)。此外,所公开的系统利用第二神经网络来估计二维图像的相机参数,并基于二维图像的像素的相机参数来修改三维网格。
在一个或多个实施例中,所公开的系统利用表示二维图像的三维网格来修改二维图像。在一些实施例中,三维网格包括表示二维图像的自适应三维网格。备选地,所公开的系统通过均匀镶嵌来生成三维网格,均匀镶嵌基于二维图像的像素深度值和估计的相机参数。具体地,响应于在图形用户界面内修改二维图像的位移输入,所公开的系统修改表示二维图像的三维网格。例如,所公开的系统标识与位移输入相对应的三维网格的一部分,并位移该三维网格的该部分。所公开的系统还根据三维网格和二维图像之间的映射,基于三维网格的位移部分来修改二维图像。
根据一个或多个实施例,所公开的系统基于表示二维图像中的对象的分割的三维对象网格来修改二维图像。具体地,所公开的系统生成表示二维图像的三维网格(例如,自适应三维网格或基于像素深度值和估计的相机参数的三维网格)。此外,所公开的系统将三维网格分割成对应于二维图像中的分离对象的多个分离的三维对象网格。所公开的系统响应于位移输入,通过位移所选择的三维对象网格的一部分来修改二维图像。
在一个或多个实施例中,所公开的系统执行用于修改二维图像的迭代镶嵌过程。例如,所公开的系统生成表示二维图像的初始三维网格,并响应于位移输入修改初始三维网格。此外,所公开的系统基于初始三维网格的位移部分来修改二维图像。响应于提交对二维图像的修改的动作,所公开的系统通过从修改的二维图像生成更新的三维网格来执行附加的镶嵌迭代。
附图说明
将通过使用附图更具体和详细地描述和解释各种实施例,其中:
图1示出了根据一个或多个实现,其中操作深度位移系统的示例系统环境。
图2示出了根据一个或多个实现,基于表示二维图像的三维网格来修改二维图像的深度位移系统的概览图。
图3示出了根据一个或多个实现,生成表示二维图像的位移三维网格的深度位移系统的概览图。
图4示出了根据一个或多个实现,确定二维图像的密度值的深度位移系统的图示。
图5示出了根据一个或多个实现,在一个或多个采样迭代中确定二维图像的采样点的深度位移系统的图示。
图6示出了根据一个或多个实现,基于二维图像的采样点生成位移三维网格的深度位移系统的图示。
图7A-图7B示出了根据一个或多个实现,用于二维图像的多个不同位移三维网格。
图8示出了根据一个或多个实现,基于附加输入为二维图像生成位移三维网格的深度位移系统。
图9示出了根据一个或多个实现,基于针对二维图像的一部分的位移输入来生成修改的二维图像的深度位移系统的概览。
图10A-图10H示出了根据一个或多个实现,与通过位移输入修改二维图像相关的多个图形用户界面和三维网格。
图11A-图11C示出了根据一个或多个实现,用于生成与经由对应的三维网格修改二维图像有关的动画的多个图形用户界面。
图12A-图12C示出了根据一个或多个实现,与确定二维图像的一部分的位移方向的深度位移系统相关的图形用户界面和图示。
图13示出了根据一个或多个实现,分割二维图像的三维网格的深度位移系统的图示。
图14示出了根据一个或多个实现,根据二维图像的语义图分割三维网格的深度位移系统的图示。
图15示出了根据一个或多个实现,根据二维图像的深度不连续性来分割三维网格的深度位移系统的图示。
图16A-图16B示出了根据一个或多个实现,用于基于分割的三维网格来位移二维图像的特定部分的图形用户界面。
图17示出了根据一个或多个实现,利用迭代镶嵌过程来修改二维图像的深度位移系统的概览图。
图18A-图18D示出了根据一个或多个实现,利用二维图像的迭代镶嵌来迭代修改二维图像的图形用户界面。
图19A-图19B示出了根据一个或多个实现,利用迭代镶嵌和修复(inpainting)来修改二维图像的深度位移系统的图像。
图20示出了根据一个或多个实现的图1的深度位移系统的图示。
图21示出了根据一个或多个实现,用于为二维图像生成自适应位移三维网格的动作系列的流程图。
图22示出了根据一个或多个实现,用于利用位移三维网格修改二维图像的动作系列的流程图。
图23示出了根据一个或多个实现,利用分割的三维对象网格来修改二维图像的动作系列的流程图。
图24示出了根据一个或多个实现,在迭代镶嵌过程中修改二维图像的动作系列的流程图。
图25示出了根据一个或多个实现的示例性计算设备的框图。
具体实施方式
本公开描述了深度位移系统的一个或多个实施例,该深度位移系统生成表示二维图像的三维网格以用于修改二维图像。具体地,深度位移系统利用神经网络来生成二维图像的三维网格,以表示二维图像的内容在三维环境中的深度位移。在一个或多个实施例中,深度位移系统将三维网格生成为包括深度位移信息的自适应三维网格。深度位移系统响应于经由二维图像的位移输入来修改三维网格。此外,深度位移系统根据位移输入,基于三维网格的(多个)修改部分修改二维图像。因此,深度位移系统提供二维图像的各部分的实时位移,同时保持二维图像内容的深度细节。
如上所述,在一个或多个实施例中,深度位移系统生成表示二维图像中的内容的深度位移的自适应三维网格。具体地,深度位移系统利用一个或多个神经网络来基于二维图像的视差估计来确定二维图像中的像素的密度值。更具体地,深度位移系统确定二维图像的像素的深度变化的变化率(例如,二阶导数)。例如,深度位移系统利用多个过滤操作来确定密度值,以在对与二维图像相关的多个点进行采样时使用。
根据一个或多个附加实施例,深度位移系统利用二维图像的密度值来从二维图像采样点。例如,深度位移系统在一次或多次采样迭代中基于密度图中的密度值对多个点进行采样。因此,深度位移系统基于不同位置处的深度信息的密度,对对应于二维图像的不同位置处的多个点进行采样。
在一个或多个实施例中,深度位移系统基于采样点来镶嵌二维图像。具体地,深度位移系统通过对采样点进行三角剖分来生成二维图像的初始三维网格。此外,深度位移系统基于与二维图像相关联的相机参数将深度信息合并到二维图像的镶嵌中。例如,深度位移系统利用一个或多个神经网络来估计相机参数,并根据估计的相机参数修改初始三维网格以包括基于深度信息的顶点的位移。
根据一个或多个实施例,深度位移系统利用二维图像的三维网格来修改二维图像。在一个或多个实施例中,如上所述,三维网格包括二维图像的自适应三维网格。在备选实施例中,三维网格包括具有来自二维图像的像素深度值和估计的相机参数的镶嵌的三维网格。具体地,深度位移系统确定位移输入的参数以位移二维图像的一部分。深度位移系统利用位移输入的参数来确定三维网格的相应部分。为了说明,深度位移系统确定三维网格和二维图像之间的映射(例如,投射),以确定要修改的三维网格的一部分。
在一个或多个实施例中,深度位移系统基于用于修改二维图像的位移输入来修改三维网格。例如,深度位移系统基于位移输入确定一个或多个位移方向。深度位移系统根据一个或多个位移方向,例如通过改变三维网格的所选择部分的顶点的位置来修改三维网格的所选择部分。此外,深度位移系统基于位移输入的属性和/或自动检测到的三维网格部分的属性来确定特定表面或方向。
在一些实施例中,深度位移系统基于位移输入生成修改的二维图像。具体地,深度位移系统基于三维网格的(多个)修改部分来确定对二维图像的一个或多个修改。例如,深度位移系统利用二维图像和三维网格之间的映射来确定三维网格的位移部分如何修改二维图像。为了说明,深度位移系统利用先前确定的二维图像和三维网格之间的映射来基于三维网格的位移三维部分来位移二维图像的纹理。
在一个或多个实施例中,深度位移系统分割表示二维图像的内容的三维网格,以提供对二维图像的分离部分的附加控制。具体地,深度位移系统通过一个或多个对象检测模型来检测二维图像中的一个或多个对象。例如,深度位移系统确定二维图像中的对象的语义图。备选地,深度位移系统基于提取的深度/密度信息来确定二维图像的区域之间的深度不连续性。
根据一个或多个实施例,深度位移系统根据在二维图像中检测到的对象来分割三维网格。例如,深度位移系统利用语义映射和/或深度不连续性来将三维网格分割/切片成多个三维对象网格。为了说明,三维网格确定对应于检测到的对象的多个三维对象网格,以经由位移输入提供对各个对象的分离控制。
结合将三维网格分割成多个三维对象网格,深度位移系统利用位移输入的参数来基于所选择的三维对象网格修改二维图像。具体地,深度位移系统基于二维图像中的位移输入相对于三维网格中的位移输入的位置来确定所选择的三维对象网格。此外,深度位移系统根据位移输入来位移所选择的三维对象网格的一部分。
在附加实施例中,深度位移系统基于多个迭代的、自适应的三维网格提供迭代的二维图像位移。具体地,深度位移系统生成表示二维图像的内容的深度位移的初始三维网格。例如,如上所述,深度位移系统根据二维图像的密度值,利用一个或多个神经网络来生成位移三维网格。此外,深度位移系统利用一个或多个神经网络来根据针对二维图像的估计的相机参数来生成位移三维网格。
在一个或多个实施例中,响应于修改二维图像,深度位移系统利用一个或多个神经网络来生成更新的三维网格。例如,深度位移系统根据位移三维网格的一部分的位移输入来生成修改的二维图像。此外,响应于提交对二维图像的修改的动作,深度位移系统基于修改的二维图像生成更新的三维网格。为了说明,深度位移系统利用一个或多个神经网络来根据从二维图像提取的密度值来生成新的三维网格。因此,在一个或多个实施例中,深度位移系统生成迭代三维网格以考虑改变的深度位移和/或考虑先前在二维图像中不可见的新的几何图形。
用于编辑二维图像的常规系统在操作的准确性和效率方面具有许多缺点。具体地,常规图像编辑系统提供用于选择、生成或修改二维空间内的二维图像的部分的数字编辑工具。虽然在对应于二维图像的二维坐标系内编辑二维图像可以提供客户端设备可以修改二维图像的多种方式,但是执行某些类型的修改通常需要大量的时间、用户交互、用户界面和资源来获得好的结果。因此,在许多情况下,常规系统提供不准确或不真实的数字编辑结果。
此外,由于常规系统在对应的二维坐标中对二维图像执行编辑,因此常规系统缺乏操作效率。具体地,常规系统通常不能在不编辑单个像素和/或执行涉及多个工具、交互和用户界面的多个分离操作的情况下执行某些类型的图像编辑操作。例如,某些图像编辑操作涉及以某些方式变形/位移对象,同时修改颜色、阴影或其他视觉方面以保持编辑的二维图像内的一致性/真实感。常规系统通常还需要使用一个或多个神经网络、画笔、层或手动像素编辑来执行每个分离的操作,以获得准确的结果。因此,常规的系统通常速度慢、计算昂贵并且不准确。
所公开的自适应深度位移系统提供了许多优于常规系统的优点。与在二维环境中编辑二维图像的常规系统相比,深度位移系统通过利用二维图像的三维表示来对二维图像应用修改来提供改善的计算机功能。具体地,深度位移系统从二维图像生成包括深度位移信息的自适应三维网格,以与三维空间一致的方式编辑二维图像。例如,通过生成表示二维图像的自适应三维网格,深度位移系统基于三维空间中的修改对二维图像应用修改。因此,当修改二维图像时,深度位移系统应用精确的几何位移/畸变(distortion)、纹理改变和阴影。
此外,深度位移系统提供了比常规系统更高的效率和灵活性。与需要使用许多不同的工具/操作来执行某些图像编辑操作的常规系统相比,深度位移系统通过具有更少的图像编辑工具(例如,利用位移工具)、交互和用户界面的三维来提供对二维图像的快速和高效的编辑。具体地,通过在三维空间中编辑二维图像,深度位移系统提供了允许各种对象修改的位移工具。此外,深度位移系统提供了位移工具,该位移工具具有最小干扰的用户界面元素,同时还提供直观的交互。因此,深度位移系统提高了编辑二维图像的计算系统的灵活性,以允许以减少的时间、交互和计算资源进行复杂的图像编辑操作。
现在转到附图,图1包括其中实现深度位移系统102的系统环境100的实施例。具体地,系统环境100包括经由网络108通信的(多个)服务器设备104和客户端设备106。此外,如图所示,(多个)服务器设备104包括图像编辑系统110,该图像编辑系统110包括深度位移系统102。此外,客户端设备106包括图像编辑应用112,该图像编辑应用112可选地包括图像编辑系统110和深度位移系统102。此外,如图2所示,深度位移系统102包括(多个)神经网络114。
如图1所示,(多个)服务器设备104包括或托管图像编辑系统110。图像编辑系统110包括实现数字图像编辑操作的一个或多个系统,或作为其一部分。例如,图像编辑系统110提供用于对数字图像执行各种操作的工具。为了说明,图像编辑系统110经由网络108与客户端设备106通信,以经由客户端设备106处的图像编辑应用112提供用于显示和交互的工具。此外,在一些实施例中,图像编辑系统110从客户端设备106接收与编辑数字图像有关的数据,包括访问存储在(多个)服务器设备104(或存储在诸如数字内容数据库的另一设备)处的数字图像的请求和/或来自客户端设备106的将数字图像存储在(多个)服务器设备104(或另一设备)处的请求。在一些实施例中,图像编辑系统110从客户端设备106接收用于查看、生成或编辑数字图像的交互数据,处理交互数据(例如,查看、生成或编辑数字图像),并将交互数据的结果提供给客户端设备106以经由图像编辑应用112或第三方系统显示。
根据一个或多个实施例,图像编辑系统110利用深度位移系统102来生成用于编辑二维图像的自适应三维网格。具体地,结合编辑数字图像,图像编辑系统110利用深度位移系统102来(例如,经由(多个)神经网络114)生成表示与位移工具(例如,经由图像编辑应用112提供以使用)相关联的二维图像的内容的三维网格。此外,深度位移系统102利用(多个)神经网络114通过修改三维网格的相应部分来修改二维图像。在一个或多个实施例中,图像编辑系统110还将基于位移工具的二维图像和修改提供给客户端设备106(例如,用于在图像编辑应用112内显示)。
在一个或多个实施例中,(多个)服务器设备104包括各种计算设备,包括以下参考图25描述的那些计算设备。例如,(多个)服务器设备104包括用于存储和处理与编辑数字图像和生成三维网格相关联的数据的一个或多个服务器。在一些实施例中,(多个)服务器设备104还包括诸如在分布式存储环境中彼此通信的多个计算设备。在一些实施例中,(多个)服务器设备104包括内容服务器。(多个)服务器设备104还可选地包括应用服务器、通信服务器、网络托管服务器、社交网络服务器、数字内容宣传服务器或数字通信管理服务器。
此外,如图1所示,系统环境100包括客户端设备106。在一个或多个实施例中,客户端设备106包括但不限于位移设备(例如,智能电话或平板计算机)、膝上型计算机、台式机,包括以下参考图25解释的那些。此外,尽管图1中未示出,但是客户端设备106可由用户(例如,包括在系统环境100中或与系统环境100相关联的用户)操作以执行各种功能。具体地,客户端设备106执行诸如但不限于访问、查看和与数字图像交互的功能。在一些实施例中,客户端设备106还执行用于生成、捕获或访问数据以结合编辑数字内容提供给图像编辑系统110和深度位移系统102的功能。例如,客户端设备106经由网络108与(多个)服务器设备104通信以提供与数字内容相关联的信息(例如,用户交互)。尽管图1示出了具有单个客户端设备的系统环境100,但在一些实施例中,系统环境100包括不同数目的客户端设备。
此外,如图1所示,系统环境100包括网络108。网络108实现了系统环境100的组件之间的通信。在一个或多个实施例中,网络108可以包括因特网或万维网。此外,网络108可选地包括使用各种通信技术和协议的各种类型的网络,诸如公司内联网、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、蜂窝网络、广域网(WAN)、城域网(MAN)或两个或更多个这样的网络的组合。实际上,(多个)服务器设备104和客户端设备106使用适合于传输数据和/或通信信号的一个或多个通信平台和技术经由网络进行通信,通信平台和技术包括任何已知的支持数据通信的通信技术、设备、媒体和协议,参考图25描述其示例。
尽管图1示出了经由网络108进行通信的(多个)服务器设备104和客户端设备106,但在备选实施例中,系统环境100的各种组件经由其他方法(例如,(多个)服务器设备104和客户端设备106直接通信)进行通信和/或交互。此外,尽管图1示出了由系统环境100内的特定组件和/或设备实现的深度位移系统102,但也可以是整个或部分地由系统环境100中的其他计算设备和/或组件(例如,客户端设备106)实现深度位移系统102。
具体地,在一些实现中,(多个)服务器设备104上的深度位移系统102支持客户端设备106上的深度位移系统102。例如,(多个)服务器设备104为客户端设备106生成或获得深度位移系统102(包括(多个)神经网络114)。(多个)服务器设备104训练深度位移系统102并将其提供给客户端设备106,以在客户端设备106处执行三维网格生成/修改处理。换句话说,客户端设备106从(多个)服务器设备104获得(例如,下载)深度位移系统102。此时,客户端设备106能够独立于(多个)服务器设备104而利用深度位移系统102来生成用于编辑二维图像的三维网格。
在备选实施例中,深度位移系统102包括允许客户端设备106与在(多个)服务器设备104上托管的内容和服务交互的网络托管应用。为了说明,在一个或多个实现中,客户端设备106访问由(多个)服务器设备104支持的网页。客户端设备106向(多个)服务器设备104提供输入以执行数字图像编辑操作,并且作为响应,(多个)服务器设备104上的深度位移系统102或图像编辑系统110执行操作以生成用于编辑二维图像的三维网格和/或执行附加的数字图像编辑操作。(多个)服务器设备104将操作的输出或结果提供给客户端设备106。
如上所述,深度位移系统102生成用于编辑二维图像的三维网格。图2示出了深度位移系统102通过在三维环境中修改相应的三维网格来编辑二维图像的概览。具体地,图2示出了深度位移系统生成三维网格以在三维空间中表示二维图像的内容。图2还示出了深度位移系统102利用三维网格来修改二维图像。
在一个或多个实施例中,如图2所示,深度位移系统102标识二维(“2D”)图像200。在一个或多个实施例中,二维图像200包括栅格(raster)图像。例如,二维图像200包括场景的数字照片,该场景包括相对于与二维图像200相关联的视点(例如,基于相机位置)的一个或多个位置上的一个或多个对象。在附加实施例中,二维图像200包括绘制图像(例如,手绘图像的数字表示或经由计算设备生成的数字图像),包括具有相对深度的多个对象。
根据一个或多个实施例,深度位移系统102生成表示二维图像200的位移三维(“3D”)网格202。具体地,深度位移系统102利用多个神经网络来生成位移三维网格202,该位移三维网格202包括形成表示来自二维图像200的对象的几何的多个顶点和面。例如,深度位移系统102生成位移三维网格202以表示来自三维空间中的二维图像200的深度信息和位移信息(例如,对象的相对位置)。图3-图8和对应的描述提供了关于为二维图像生成自适应三维网格的附加细节。在备选实施例中,深度位移系统102基于估计的像素深度值和估计的相机参数生成二维图像的位移三维网格--例如,通过根据估计的像素深度值和估计的相机参数确定与二维图像中的对象相对应的镶嵌的每个顶点的位置。
在一个或多个实施例中,神经网络包括基于输入来调整(例如,训练)以逼近未知函数的计算机表示。例如,神经网络包括一个或多个层或人工神经元,它们通过分析不同抽象级别的已知数据来逼近未知功能。在一些实施例中,神经网络包括一个或多个神经网络层,包括但不限于卷积神经网络、递归神经网络(例如,LSTM)、图神经网络或深度学习模型。在一个或多个实施例中,深度位移系统102利用一个或多个神经网络,包括但不限于语义神经网络、对象检测神经网络、密度估计神经网络、深度估计神经网络、相机参数估计。
在附加实施例中,深度位移系统102响应于位移输入来确定修改的三维网格204。例如,响应于修改二维图像200的位移输入,深度位移系统102修改位移三维网格202以生成修改的三维网格204。因此,修改的三维网格204包括基于位移输入的一个或多个修改部分。图9-图19B和对应的描述提供了关于基于位移输入修改三维网格的附加细节。
图2还示出了深度位移系统102基于修改的三维网格204生成修改的二维图像206。具体地,深度位移系统102生成修改的二维图像206以包括修改的三维网格204的修改部分。为了说明,深度位移系统102利用二维图像200到位移三维网格202的映射来基于修改的三维网格204重建修改的二维图像206。
图3示出了深度位移系统102从二维图像生成包括深度位移信息的三维网格的示意图。具体地,深度位移系统102通过提取与二维图像300中的对象相关联的深度信息来生成三维网格。另外,深度位移系统102提取指示对象在二维图像300中的相对位置的位移信息(例如,根据与二维图像300的视点相关联的估计相机参数)。如图3所示,深度位移系统102利用深度信息和位移信息来生成表示二维图像300的三维网格。
在一个或多个实施例中,深度位移系统102基于二维图像300确定视差估计图302。例如,深度位移系统102利用一个或多个神经网络来确定与二维图像300中的像素相对应的视差估计值。为了说明,深度位移系统102利用视差估计神经网络(或其他深度估计神经网络)来估计对应于二维图像300的像素的深度值。更具体地,深度值指示与图像中的每个像素的图像相关联的相机视点的相对距离。在一个或多个实施例中,深度值包括(或基于)深度位移系统102的像素的视差估计值。
具体地,在给定场景中每个对象的放置(例如,每个像素在前景/背景中被定位为多远)的情况下,深度位移系统102利用(多个)神经网络来根据二维图像300内的对象来估计每个像素的深度值。深度位移系统102可以利用各种深度估计模型来估计每个像素的深度值。例如,在一个或多个实施例中,深度位移系统102利用深度估计神经网络,如在2021年2月26日提交的,题为“GENERATING DEPTH IMAGES UTILIZING A MACHINE-LEARNING MODELBUILT FROM MIXEDDIGITAL IMAGE SOURCES AND MULTIPLE LOSS FUNCTION SETS”的美国申请No.17/186,436中所描述的,其通过引用整体并入本文。深度位移系统102备选地利用一个或多个其他神经网络来估计与二维图像300的像素相关联的深度值。
如图3所示,在一个或多个实施例中,深度位移系统102还基于视差估计图302来确定密度图304。具体地,深度位移系统102利用滤波器集合来从视差估计图302中提取密度图304。例如,深度位移系统102利用滤波器集合来确定视差估计图302的深度变化的变化(例如,二阶导数),以确定二维图像300的每个像素处的深度瞬时变化率。因此,密度图304包括指示二维图像300中的细节密度的信息,其中最高密度的信息通常位于物体的边缘以及深度改变最快的其他区域,而较低密度在没有显著细节(例如,天空或道路)的平面区域中。
图3还示出了深度位移系统102基于密度图304确定二维图像300的采样点306。例如,深度位移系统102基于密度图304中的密度值来确定要结合二维图像300进行采样的点集。为了说明,深度位移系统102利用采样模型,该采样模型对由密度图304指示的较高密度位置中的较高密度的点进行采样(例如,使用反映点密度的概率函数进行采样)。因此,深度位移系统102在二维图像300包括最大量深度信息的位置处对较高数目的点进行采样。
响应于确定采样点306,深度位移系统102生成镶嵌308。具体地,深度位移系统102基于采样点306生成初始三维网格。例如,深度位移系统102利用狄洛尼Delaunay三角剖分来根据与采样点306相对应的沃罗诺伊Voronoi单元来生成镶嵌308。因此,深度位移系统102生成包括在采样点密度较高的部分处具有较高密度的顶点和面的平面三维网格。
如图3所示,深度位移系统102还基于二维图像300的镶嵌308生成位移三维网格310。具体地,深度位移系统102利用一个或多个神经网络来确定与二维图像300相关联的透视或视点。深度位移系统102通过根据从二维图像300提取的透视/视点并入指示对象在二维图像300中的相对位置的深度位移信息来生成位移三维网格310。因此,深度位移系统102通过修改网格中的顶点的位置来将平面三维网格转换为位移三维网格。
图4示出了与确定与二维图像相关联的密度图相关联的附加细节。具体地,图4示出了深度位移系统102结合从二维图像400提取的深度值应用多个滤波器。例如,深度位移系统102将滤波器应用于与二维图像400相关联的视差估计图。备选地,深度位移系统102将滤波器应用于与二维图像400相关联的其他深度值。
如图4所示,深度位移系统102利用第一滤波器基于二维图像400的视差估计图来确定海森Hessian绝对值图402。具体地,深度位移系统102利用滤波器来基于视差估计值生成海森Hessian矩阵。例如,深度位移系统102从指示视差估计值的二阶导数的海森Hessian矩阵生成海森Hessian绝对值图402,该视差估计值指示来自二维图像400的深度信息的变化(例如,变化速率)。为了说明,深度位移系统102通过确定海森Hessian矩阵的对角线的绝对值来生成海森Hessian绝对值图402。
此外,如图4所示,深度位移系统102对海森Hessian绝对值映射402应用第二滤波器以确定平滑的值映射404。例如,深度位移系统102通过平滑绝对值来修改海森Hessian绝对值图402中的绝对值。为了说明,深度位移系统102利用卷积运算来生成包括来自海森Hessian绝对值映射402的平滑值的平滑值图404。在一些实施例中,通过平滑来自海森Hessian绝对值映射402的值,深度位移系统102移除可能通过确定海森Hessian矩阵而引入的噪声。
在一个或多个实施例中,深度位移系统102还修改平滑后的值图404以确定密度图406。具体地,如图4所示,深度位移系统102通过根据预定阈值截断(或裁剪)平滑值图404中的值来生成密度图406。例如,深度位移系统102将平滑值映射404中的值修剪为值的标准差的预定比例(例如,修剪为标准差的0.5倍)。通过截断这些值,深度位移系统102防止视差的较大局部变化主宰密度图406中的值的密度。
根据一个或多个实施例,如图所示,密度图406包括二维图像400的对象边界处的较高密度值和对象边界内的较低密度值。此外,密度图406包括对象内的像素的高密度值,指示深度上的急剧转变(例如,在图4的建筑物的窗户的边缘),同时限制在没有深度急剧转变的其他区域(例如,在图4的树中的单个树叶或树叶簇之间)的密度值。因此,深度位移系统102生成密度图406以指示用于采样点的二维图像400的区域,使得采样点指示根据深度信息的转变的变化率的区域。
在一个或多个实施例中,深度位移系统102利用具有可定制参数的多个滤波器来确定密度图406。例如,滤波器可以包括提供可手动定制的密度区域的参数,例如图像的边缘,以在所指示的区域提供更高的点采样。在一个或多个附加实施例中,深度位移系统102定制裁剪阈值以包括具有更高或更低信息密度的区域,这可以服务于特定实现。
在一个或多个实施例中,深度位移系统102基于对应于二维图像中的像素的密度值对二维图像的点进行采样。具体地,如图5所示,深度位移系统根据密度值对点进行采样,以在密集区域中采样较多数目的点,而在较低密度区域中对较少数目的点进行采样。根据一个或多个实施例,深度位移系统102利用采样模型,该采样模型根据密度图中的密度值(例如,通过利用密度图作为采样的概率分布)来确定随机采样500。为了说明,深度位移系统102利用密度图对多个点进行随机采样,从而在二维图像的高密度区域中产生具有较高采样点密度的随机采样点。
在一个或多个备选实施例中,深度位移系统102利用采样模型,该采样模型将密度图用作迭代采样过程中的概率分布。具体地,深度位移系统102利用采样模型,而不是根据密度值随机采样点,该采样模型提供采样朝向导致基于采样点生成的三维网格中的更均匀/更好形成的三角剖分的位置的迭代位移。例如,深度位移系统102利用具有松弛模型的采样模型来结合狄洛尼Delaunay三角剖分向对应的沃罗诺伊Voronoi单元的中心迭代地位移采样点。为了说明,深度位移系统102利用具有沃罗诺伊Voronoi迭代/松弛的采样模型(例如,“Lloyd算法”),该采样模型生成质心沃罗诺伊Voronoi镶嵌,其中每个沃罗诺伊Voronoi单元/区域的种子点也是其质心。更具体地,深度位移系统102向对应的沃罗诺伊Voronoi单元的质心重复位移对应的沃罗诺伊Voronoi单元的每个采样点。
因此,在一个或多个实施例中,深度位移系统102根据二维图像的密度图确定包括多个采样点的第一采样迭代502。此外,在一个或多个实施例中,深度位移系统102执行多次迭代以进一步改善根据二维图像的密度图的采样的规则性。图5还示出深度位移系统102在三次采样迭代之后确定包括多个采样点的第三采样迭代504。从第三采样迭代504生成的三维网格包括基于根据密度图采样的点的更多顶点和平面。
图5还示出了在100个采样迭代之后的第100个采样迭代506。如图所示,在某个点之后继续执行采样迭代可能会减少采样点(以及生成的三维网格)与密度贴图之间的连接。因此,在一个或多个实施例中,深度位移系统102基于采样点到密度图的距离来确定迭代次数。此外,在一些实施例中,深度位移系统102基于资源/时间预算或二维图像的分辨率来确定迭代次数。为了说明,深度位移系统102确定两次或三次迭代提供产生三维网格的多个采样点,该三维网格在保持与密度图一致的同时保留二维图像的对象的边界。
在一个或多个实施例中,深度位移系统102还利用图像感知采样来确保深度位移系统102对二维图像的所有部分进行采样以生成三维网格。例如,深度位移系统102考虑在二维图像的边缘或角落处具有很少或没有细节的部分,以确保所得到的三维网格包括三维网格中的边缘/角落。为了说明,深度位移系统102向采样模型提供指令,以基于二维图像的维度/坐标(例如,通过向图像边界添加密度)沿二维图像的边缘对至少一些点进行采样。备选地,深度位移系统102为用户提供了在生成表示二维图像的三维网格期间手动指示采样点的工具。
图6示出了深度位移系统102生成包括针对二维图像的内容的深度位移信息的三维网格。具体地,图6示出深度位移系统102确定采样点600(例如,如图5中所描述的)。此外,图6示出了深度位移系统102基于采样点600生成镶嵌602。为了说明,深度位移系统102确定采样点600并在利用沃罗诺伊Voronoi松弛和狄洛尼Delaunay三角剖分的迭代过程中生成镶嵌602。
在一个或多个实施例中,深度位移系统102修改包括顶点和面的平面网格的镶嵌602,以包括基于二维图像中的视点的位移信息。例如,深度位移系统102确定与二维图像603相关联的透视(例如,基于捕获二维图像的相机)。通过确定深度位移系统102的视点并确定位移,深度位移系统102将深度信息合并到表示二维图像的三维网格中。
根据一个或多个实施例,深度位移系统102利用神经网络604来基于二维图像603估计与视点相关联的相机参数606。例如,深度位移系统102利用相机参数估计神经网络来生成与二维图像603相关联的估计位置、估计方向和/或估计焦距。为了说明,深度位移系统102利用神经网络,如在2019年1月25日提交的题为“UTILIZING ACRITICAL EDGEDETECTION NEURAL NETWORK AND A GEOMETRIC MODEL TO DETERMINE CAMERA PARAMETERSFROM A SINGLE DIGITAL IMAGE”的美国专利No.11,094,083中描述的,其通过引用整体并入本文。在附加实施例中,深度位移系统102从与二维图像603相关联的元数据中提取一个或多个相机参数。
如图6所示,深度位移系统102利用相机参数606来生成位移三维网格608。具体地,深度位移系统102利用相机参数606来根据与相机的位置、相机的焦距和/或相机的方向相关的二维图像的对应像素的深度值来估计来自镶嵌602的顶点的位置。为了说明,深度位移系统102基于对象在二维图像中的相对位置来修改多个顶点和面在三维空间中的三维位置。
此外,在一个或多个实施例中,深度位移系统102利用附加信息来进一步修改二维图像的三维网格。具体地,深度位移系统102利用来自二维图像的附加信息来确定三维网格中的顶点的位置。例如,如图7A-图7B所示,深度位移系统102利用附加边缘信息来修改二维图像的三维网格。
例如,图7A示出了深度位移系统102利用上面参考图6描述的处理为二维图像生成位移三维网格700。如图所示,位移三维网格700包括基于二维图像的视点的位移信息,这可能导致三维网格在对象的边缘处的长/变形部分。为了说明,由于没有足够的多边形来准确地表示细节,位移三维网格700中的对象的某些边缘可能缺乏细节。
在一个或多个实施例中,深度位移系统102向三维网格添加附加细节(例如,经由附加顶点和面)。例如,深度位移系统102将来自二维图像的颜色值(例如,RGB值)用于神经网络,该神经网络基于深度值和/或相机参数来生成位移三维网格。具体地,深度位移系统102利用颜色值来进一步增加三维网格的边缘处的多边形的密度,以减少伪像和/或移除长多边形。图7B示出深度位移系统102基于附加信息生成附加位移三维网格702。如图所示,附加信息允许深度位移系统102在对象的边缘提供具有更准确细节的更高质量的位移三维网格。
如图7B所示,深度位移系统102利用边缘映射704,该边缘映射704包括关于二维图像内的边缘的附加信息。例如,边缘图704包括基于突出显示可能不对应于高密度区域的特定边缘的初始边缘检测处理的边缘。为了说明,深度位移系统102确定模仿二维图像中的边缘的人类绘制的滤波器、利用神经网络自动检测某些边缘、利用精明的边缘检测器模型来检测边缘、语义分割或用户输入以确定房间的角落/边缘、诸如纸张的平面对象的边缘、或用于在网格生成过程期间标识要采样的附加边缘的另一对象。通过利用边缘映射704来引导位移三维网格702中的顶点的位移,深度位移系统102通过在所指示的边缘处的附加顶点来提供位移三维网格702中的更准确的边缘细节。在其他实施例中,深度位移系统102还对与二维图像对应的视差估计图执行边缘检测操作,以确定二维图像中的采样位置。这样的处理允许深度位移系统102根据与生成位移三维网格702相关地提供的附加信息,向位移三维网格702中任意添加附加细节。
图8还示出了深度位移系统102提供用于为二维图像生成位移三维网格的附加细节。例如,深度位移系统102为用户提供一个或多个工具来指示要添加到表示二维图像的三维网格的附加信息。具体地,图8示出了包括在俯瞰风景的道路上停放的汽车的图像的二维图像800。
图8还示出用户输入已经在二维图像800上指示了圆圈802,用于将附加信息添加到表示二维图像800的位移三维网格804中。为了说明,响应于在二维图像800上指示圆圈802的用户输入,深度位移系统102将圆圈添加到位移三维网格804中。例如,深度位移系统102在与圆圈802对应的位移三维网格804的位置806处将附加顶点/面添加到位移三维网格804中。
通过将附加信息添加到位移三维网格804中,深度位移系统102在修改二维图像800方面提供了附加的灵活性。例如,因为深度位移系统102在位置806处将附加顶点/面添加到位移三维网格804中,所以深度位移系统102提供在不损害位移三维网格804的周围部分的完整性的情况下修改所选择部分的能力。为了说明,响应于删除圆圈802内的二维图像800的部分的请求,深度位移系统102在位移三维网格804的位置806处移除位移三维网格804的相应部分。深度位移系统102还提供附加选项,诸如在不损害位置806外的位移三维网格804的部分的几何形状的情况下变形圆圈802内的部分,或者将圆圈802内的部分与二维图像800的其他部分分离地设置纹理。
在一个或多个附加实施例中,深度位移系统102利用上述自适应镶嵌过程来为各种操作提供三维几何图形。为了说明,深度位移系统102利用通过图3-8中描述的处理生成的位移三维网格来基于该位移三维网格来确定二维图像中的阴影/阴影。在附加实施例中,深度位移系统102利用位移三维网格来提供具有准确的上下文数据(例如,阴影/相对定位/深度值)的智能对象移除/修改/替换。
如上所述,在一个或多个实施例中,深度位移系统102提供用于利用代表性三维网格修改二维图像的工具。图9示出了深度位移系统102基于包括与二维图像相关联的深度位移信息的三维网格来修改二维图像的处理的概览。具体地,图9示出了深度位移系统基于相对于二维图像的位移输入修改三维网格的一部分,并基于修改的三维网格生成更新的二维图像。
如图9所示,深度位移系统102确定二维图像的选择图像部分900。例如,深度位移系统102确定位移输入相对于二维图像的位置以确定所选图像部分900。图10A-图10H和对应的描述提供了关于基于位移输入确定二维图像的所选择部分的附加细节。
图9示出了深度位移系统102基于所选图像部分900确定所选网格部分902。具体地,深度位移系统102基于二维图像和为二维图像生成的三维网格之间的映射来确定所选网格部分902。图10A-图10H和对应的描述提供了关于基于二维图像的所选择部分来确定三维网格的所选择部分的附加细节。
如图9所示,深度位移系统102还基于位移输入确定位移网格部分904,以修改所选图像部分900。具体地,深度位移系统102根据位移输入修改所选网格部分902。例如,深度位移系统102根据位移输入在一个或多个位移方向上修改三维网格中的一个或多个顶点。图10A-图10H和对应的描述提供了关于修改三维网格的一部分的附加细节。
在一个或多个实施例中,深度位移系统102基于位移的网格部分904生成修改的二维图像906。例如,深度位移系统102利用二维图像和三维网格之间的映射来根据位移输入来确定对二维图像的一个或多个修改。为了说明,深度位移系统102基于位移的网格部分904重新呈现二维图像的所选图像部分900以生成修改的二维图像906。图10A-图10H和对应的描述提供了关于经由表示二维图像的三维网格生成修改的二维图像的附加细节。
图10A-图10H示出了与利用位移输入来修改二维图像相关的多个图形用户界面和三维网格。具体地,图10A-图10H示出了深度位移系统102生成与用于修改二维图像的部分的位移工具相关联的三维网格。此外,图10A-图10H示出了利用位移工具基于位移输入对三维网格的修改。
例如,图10A示出了包括用于编辑数字图像的图像编辑应用1002的客户端设备1000的图形用户界面。具体地,客户端设备1000包括膝上型计算设备、台式计算设备或手持设备(例如,智能电话)或其一部分。此外,图像编辑应用1002包括用于编辑二维数字图像(例如,栅格图像)的多个工具,诸如数字照片或经由计算设备生成的数字图像。
在一个或多个实施例中,如图10A所示,客户端设备1000显示二维图像1004以在图像编辑应用1002内进行编辑。具体地,客户端设备1000显示位移工具1006,该位移工具1006包括用于位移二维图像1004的一部分的一个或多个设置。例如,位移工具1006包括用于确定位移的形状、位移方向或用于位移二维图像1004的一部分的其他属性的一个或多个设置。
为了说明,位移工具1006包括用于设置高度滤波器的选项(例如,下拉菜单),该高度滤波器确定与位移二维图像1004的一部分相关联的形状。响应于选择高度滤波器,二维图像1004的一部分的位移导致修改部分根据相应的形状位移。例如,如图所示,高度滤波器包括选择用于根据高斯分布位移二维图像1004的一部分的高斯滤波器的选项。
在附加实施例中,位移工具1006包括一个或多个选项,以选择与位移二维图像1004的一部分相关的预定位移方向。例如,如图10A所示,位移工具1006包括导致二维图像1004的所选择部分在竖直方向(例如,“上”、“右”)上位移的下拉菜单。在一些实施例中,位移工具1006包括在水平或其他方向上位移二维图像1004的所选择部分的选项。在备选实施例中,深度位移系统102提供用于自动检测位移方向或用于二维图像的一部分的自由形式位移的选项。
根据一个或多个实施例,位移工具1006包括用于设置位移操作的高度和/或半径的选项。例如,客户端设备1000显示确定用于位移二维图像1004的一部分的半径值和高度值的多个滑块。为了说明,高度值指示在位移操作期间应用于二维图像1004的所选择部分的最大位移距离或位移程度。此外,半径值指示相对于位移方向的宽度(或垂直距离),用于基于位移输入将位移应用于三维网格的一部分。例如,半径值表示最大位移半径、距选定点特定距离(或成比例距离)的位移半径或与选定高度滤波器对应的标准偏差半径。
在一个或多个实施例中,位移工具1006还包括用于指示相对于二维图像1004的边缘或二维图像1004内的对象的边缘是否知晓位移的选项。例如,响应于选择边缘感知选项,当位移二维图像1004的所选择部分时,深度位移系统102考虑(二维图像1004或(多个)对象的)边缘。备选地,取消选择边缘感知选项使得深度位移系统102在位移二维图像1004的一部分时忽略边缘。
此外,在一些实施例中,位移工具1006包括用于确定位移输入的特定属性是基于位移输入的位移或是沿着对应于位移输入的位移的路径的画笔将被位移部分位移到新部分的选项。例如,响应于移动位移部分的选项的选择,深度位移系统将位移恢复到初始选择的部分,并将该位移应用于新选择的部分。备选地,响应于选择沿着位移输入的路径刷位移的选项,深度位移系统102沿着从初始选择的部分到新选择的部分的位移输入的位移路径将位移应用于二维图像1004的每个部分。
在一个或多个实施例中,位移输入包括使用位移工具1006将位移应用于二维图像1004的输入。例如,用于修改二维图像1004的位移输入包括指示与位移工具1006相关的图形用户界面内的位置的鼠标光标。在备选实施例中,位移输入包括触摸设备上的触摸屏输入,该触摸屏输入指示图形用户界面内的位置。
图10B示出了包括与图10A的二维图像1004相关联的位移信息的三维网格1008。具体地,如前所述,深度位移系统102生成三维网格1008以包括形成表示二维图像1004的内容的结构的多个顶点和面。例如,深度位移系统102生成三维网格1008以包括沙漠场景的三维表示,包括对应于二维图像1004的估计深度值的顶点的位移。在一个或多个实施例中,如以上参考图3-图8所述,深度位移系统102利用自适应镶嵌过程来生成三维网格1008。
在备选实施例中,深度位移系统102通过根据估计的像素深度值和估计的相机参数确定三维网格1008中的顶点的位置,经由均匀镶嵌来生成三维网格1008。例如,深度位移系统102通过利用确定像素深度差异的神经网络(例如,如上所述)来确定估计的像素深度值。此外,深度位移系统102利用附加神经网络来估计相机参数。深度位移系统102通过根据估计的像素深度值和估计的相机参数估计表示二维图像1004的初始网格的顶点的位置来生成三维网格1008。
在一个或多个实施例中,响应于位移输入,深度位移系统102确定位移输入在二维图像1004和三维网格1008中的位置。具体地,深度位移系统102基于二维图像1004在三维网格1008上的投射,经由图形用户界面确定位移输入相对于二维图像1004的二维位置1010。为了说明,深度位移系统102基于与二维图像1004相关联的坐标系来确定二维位置1010。因此,深度位移系统102将二维位置1010确定为结合二维图像1004生成的(x,y)坐标位置或对应于二维图像1004的像素坐标。
在附加实施例中,深度位移系统102基于二维位置1010确定三维网格1008的三维空间内的位移的三维位置1012。具体地,深度位移系统102通过将二维图像1004投射到三维网格1008上来确定二维图像1004和三维网格1008之间的映射。例如,深度位移系统102根据从估计的相机位置投射到三维网格1008上的射线来确定纹理映射,该纹理映射指示三维网格1008上的二维图像1004的每个像素在三维空间内的位置。因此,为了确定三维位置1012,深度位移系统102利用映射/投射来基于二维图像1004的所选择部分来确定三维网格1008的所选择部分。
为了说明,深度位移系统102利用估计的相机位置将来自二维图像1004的多条射线投射到包括三维网格1008的三维空间。具体地,深度位移系统102在基于估计的相机位置的方向上将与二维图像1004的每个像素相关的射线投射到三维网格1008的对应位置上。深度位移系统102基于对应的投射射线生成映射以指示每个像素对应于三维网格1008的哪个部分(例如,一个或多个顶点/面)。
在一个或多个实施例中,深度位移系统102基于位移输入修改对应于二维图像的三维网格。图10C示出在响应于位移输入修改图10A的二维图像1004之后显示二维图像1004A的客户端设备1000。例如,深度位移系统102确定位移输入包括利用位移工具1006来位移二维图像1004a的所选择部分1014的多个设置。如图所示,深度位移系统102根据位移输入(例如,垂直位移的位移输入的位置)和位移工具1006的设置,以高斯形状向上推动所选择部分。
此外,如图所示,深度位移系统102修改与二维图像1004a的三维结构一致的二维图像1004a的所选择部分1014。具体地,图10D示出了由深度位移系统102生成以表示二维图像1004a的三维网格1008a。深度位移系统102基于二维图像1004a的所选择部分1014以及二维图像1004a和三维网格1008a之间的映射(例如,如上面参考图10A-图10B描述的初始生成的)来确定三维网格1008a的所选择部分1016。
在一个或多个实施例中,响应于位移输入,深度位移系统102利用位移工具1006的设置来确定三维网格1008a的所选择部分1016的位移。具体地,深度位移系统102利用位移工具在一个或多个位移方向上将所选的顶点集合(例如,向上位移)位移由高度滤波器确定的一个或多个位移量。例如,如图所示,深度位移系统102将对应于位移输入的点处的顶点位移第一量、相邻顶点位移第二量等。
响应于修改三维网格1008a(例如,通过位移三维网格1008a的一部分),深度位移系统102根据位移部分修改二维图像1004a。例如,深度位移系统102利用二维图像1004a和三维网格1008a之间的映射来将对三维网格1008a的修改转换为二维图像1004a的二维空间。为了说明,深度位移系统102利用相机参数基于三维网格1008a中的顶点的更新位置来重新渲染二维图像1004a。为了说明,深度位移系统102确定来自估计的相机位置的射线与三维网格1008a和二维空间中的对应像素(例如,与二维图像1004a的像素相关联)相交的位置。因此,深度位移系统102以与表示二维图像1004a的三维环境一致的方式修改二维图像1004a的一部分(例如,通过位移沙漠场景中的道路的一部分而不修改道路后面的部分,例如天空)。在一个或多个实施例中,如图10C所示,客户端设备1000显示没有改变的二维图像1004的预览1022,以允许用户在图像编辑应用1002内实时编辑二维图像1004a期间比较改变。
在一个或多个实施例中,深度位移系统102提供用于在修改的预览中应用和恢复位移的工具。具体地,深度位移系统102提供包括基于位移输入的修改的二维图像1004a的实时预览。此外,深度位移系统102提供将位移提交给二维图像1004a并保存对二维图像1004a的内容进行的任何变形的选项。图10C示出了客户端设备1000显示保持选项1018以将位移提交(例如,保存位移)到二维图像1004a。
客户端设备1000还显示还原选项1020以还原位移并将二维图像1004a还原到先前状态(例如,不需要使用分离的撤消按钮)。在一些情况下,深度位移系统102提供用于提交(commiting)或恢复位移的附加方法。例如,响应于检测到按键按下(例如,退出键),深度位移系统102恢复改变并且不提交位移。备选地,响应于检测到分离的按键按下(例如,空格键或回车键),深度位移系统102提交改变并将二维图像1004a与位移一起存储。
在一个或多个实施例中,客户端设备1000检测与位移输入相关的附加输入。例如,响应于与位移输入相关的附加鼠标点击、触摸屏输入或其他输入,深度位移系统102改变二维图像和对应的三维网格内的位移的位置。图10E示出客户端设备1000显示包括与位移输入相关联的所选择部分1024的二维图像1004b。在一个或多个实施例中,响应于接收到附加输入(例如,鼠标中键点击),深度位移系统102将位移的位置改变为二维图像1004b内的新位置,同时将对二维图像1004b的原始部分的改变恢复到先前状态。
图10F示出了与图10E的二维图像1004b对应的三维网格1008b。响应于具有位移输入的附加输入,深度位移系统102将位移部分的位置改变为三维网格1008b的所选择部分1026。此外,响应于将修改部分位移到新位置,深度位移系统102还更新在客户端设备1000处显示的二维图像1004b的预览,以反映对三维网格1008b的改变。
在备选实施例中,深度位移系统102不是将位移的位置改变到新位置并恢复原始位置处的位移,而是沿着位移输入的位移路径将位移应用于三维网格1008b和二维图像1004b的所有区域。为了说明,深度位移系统102基于与位移工具1006相关联的所选设置来确定是沿路径移动位移或是应用位移。因此,深度位移系统102基于位移工具1006的所选设置沿路径应用类似于笔画的位移。
如上所述,深度位移系统102还提供具有附加属性的位移工具,该附加属性允许对与位移输入相关联的形状和/或位移进行更好的控制。图10G示出了响应于与位移输入相关联的附加属性来显示二维图像1004c的客户端设备1000。例如,深度位移系统102确定位移输入在附加方向上位移以修改二维图像1004c的所选择部分1028。为了说明,响应于位移输入的水平位移(例如,垂直于原始位移),深度位移系统102修改与位移输入相关联的半径或形状。
结合与位移输入相关联的附加属性,图10H示出了对应于二维图像1004c的三维网格1008c。具体地,基于位移输入的附加属性,深度位移系统102确定与二维图像1004c的所选择部分1028相对应的三维网格1008c的所选择部分1030。在一个或多个实施例中,深度位移系统102根据位移输入的附加属性修改位移部分的半径、形状或其他属性。为了说明,深度位移系统102使被位移部分变平,同时位移三维网格1008c的更多选择的顶点。如图10G所示,客户端设备1000显示具有基于三维网格1008c的位移部分的修改的二维图像1004c。
在一个或多个实施例中,深度位移系统102还提供用于经由位移工具生成动画的工具。图11A-图11C示出了用于生成与二维图像有关的位移操作的动画的图形用户界面。具体地,如图11A-图11C所示,深度位移系统102确定一个或多个位移输入以位移二维图像的一个或多个部分,并从一个或多个位移输入生成动画。
图11A示出了包括图像编辑应用1102的客户端设备1100的图形用户界面。例如,如图所示,客户端设备1100显示包括基于位移输入的修改部分的第一二维图像1104。具体地,深度位移系统102基于与位移输入相关联的位移设置来位移/翘曲第一二维图像1104内的桥的一部分。图11B示出了基于相同的位移输入或不同的位移输入来显示包括不同修改部分的第二二维图像1106的客户端设备1100。
在一个或多个实施例中,深度位移系统102基于第一二维图像1104和第二二维图像1106生成动画。例如,深度位移系统102生成包括多个视频帧的动画,以示出第一二维图像1104如何改变为第二二维图像1106。根据一个或多个实施例,深度位移系统102记录位移部分从第一二维图像1104的位置到第二二维图像1106的位置的位移(例如,作为分离的视频帧),从而产生在图像中显示跨越桥梁的涟漪效果的数字视频。
在备选实施例中,深度位移系统102利用第一二维图像1104和第二二维图像1106来预测两个图像之间的多个图像。具体地,深度位移系统102利用底层三维网格来内插多个位移部分,而不是记录多个位移修改。例如,深度位移系统102利用三维网格的第一位移部分和第二位移部分来生成第一位移部分和第二位移部分之间的多个位移部分的估计位置。
作为示例,深度位移系统102利用第一二维图像1104的第一位移部分和第二二维图像1106的第二位移部分来在第一位移部分和第二位移部分之间内插多个位移部分。为了说明,深度位移系统102基于位移输入的设置以及第一和第二部分的位置来确定与桥梁相对应的三维网格的多个位移部分。因此,深度位移系统102自动生成包括指示的位移部分和估计的位移部分的动画。在一些情况下,深度位移系统102还提供通过自动改变所指示的部分和估计的部分的属性来修改动画的选项,而不需要额外的位移输入(例如,通过基于所选设置和三维网格计算地生成位移)。
图11C示出了客户端设备1100显示基于第一二维图像1104和第二二维图像1106生成的动画。例如,客户端设备1100显示包括由深度位移系统102基于动画生成的数字视频的窗口1108。此外,如图11C所示,客户端设备1100提供用于保存包括动画的数字视频的保存选项1110。
在一个或多个实施例中,深度位移系统102根据位移工具的一个或多个设置来确定位移输入的位移方向。图12A-图12C示出了深度位移系统102基于位移输入的一个或多个属性和/或基于表示二维图像的三维网格的几何形状来确定位移方向的实施例。具体地,图12A示出了与自动确定位移方向相关的图形用户界面。图12B-图12C示出了确定相对于三维网格的顶点的一个或多个位移方向。
如上所述,在一个或多个实施例中,深度位移系统102基于与位移工具相关联的所选设置来确定位移方向。例如,图12A示出了包括用于修改二维图像1204的图像编辑应用1202的客户端设备1200的图形用户界面。具体地,客户端设备1200显示用于选择位移操作的预定方向的方向设置1206。如图12A所示,深度位移系统102根据所选表面基于方向设置1206动态地确定位移方向。
更具体地,深度位移系统102基于与所选择部分相关联的表面来确定位移二维图像的所选择部分的方向。在一个或多个实施例中,深度位移系统102基于所选表面的法线来确定位移方向。例如,如图12A所示,深度位移系统102基于二维图像1204的所选择部分1208的表面来确定位移方向。为了说明,深度位移系统102确定所选择部分1208包括具有指向特定方向的总法线的表面(例如,基于包括多个建筑面的所选择部分1208)。例如,在一个或多个实施例中,深度位移系统102基于指向特定方向的对应三维网格的多边形的平均法线位置来确定表面的总体法线。
如上所述,在一个或多个实施例中,深度位移系统102根据单个预定方向来确定位移方向。图12B示出了三维网格的所选择部分中的多个相连的顶点。如图12B所示,深度位移系统102基于指示位移方向1210的设置和/或基于每个顶点所属的整个表面(例如,如图12A中所示)来确定每个顶点的位移方向1210。因此,深度位移系统102根据位移输入在位移方向1210上位移每个顶点(例如,第一顶点1212a和第二顶点1212b)。此外,在一个或多个实施例中,深度位移系统102根据所选择的位移输入的高度滤波器、形状、半径和/或高度和/或基于每个顶点到初始位移输入点的距离来确定用于修改顶点的位移距离。
在一个或多个备选实施例中,深度位移系统102为三维网格的所选择部分的每个顶点动态地确定特定位移方向。例如,图12C示出了深度位移系统102为三维网格的所选择部分中的多个顶点确定多个不同的位移方向。为了说明,深度位移系统102确定所选择部分中每个顶点的法线,并基于法线确定顶点的位移方向。具体地,图12C示出所选择部分包括第一顶点1214a和第二顶点1214b。深度位移系统102基于每个顶点的法线来确定位移方向,从而产生第一顶点1214a的第一位移方向1216a和第二顶点1214b的第二位移方向1216b。
通过基于预定方向、顶点法线或表面方向确定位移方向,深度位移系统102提供二维图像的灵活且动态的位移。例如,深度位移系统102通过通过位移相应三维网格的各个顶点来升高、降低、展平、充气/放气或以其他方式修改二维图像内的对象来提供二维图像的所选择部分的位移。此外,深度位移系统102因此提供各种不同的方式来以与二维图像的三维表示一致的方式与二维图像内的对象交互/修改对象。
在一个或多个实施例中,深度位移系统102还基于二维图像中的对象提供对应于二维图像的三维网格的分割。具体地,深度位移系统102检测二维图像中的一个或多个对象,并基于检测到的对象分割(多个)三维网格。图13示出了基于二维图像中的对象生成并分割表示二维图像的三维网格的深度位移系统102的概览。
如图13所示,深度位移系统102确定二维图像1300。例如,二维图像1300包括多个对象--例如,前景区域中的一个或多个对象和/或背景区域中的一个或多个对象。在一个或多个实施例中,深度位移系统102还利用上述自适应镶嵌操作为二维图像1300生成初始三维网格1302。因此,初始三维网格1302包括表示二维图像1300中的对象的多边形的连接的镶嵌。
在一个或多个实施例中,深度位移系统102生成分割三维网格1304。具体地,深度位移系统102利用关于对象的信息将初始三维网格1302分割成与对象相对应的多个分离的三维对象网格。图14-图15和对应的描述提供了关于分割表示二维图像的三维网格的附加细节。另外,图16A图16B和对应的描述提供了关于基于分割的三维网格修改/位移二维图像的部分的附加细节。
根据一个或多个实施例,深度位移系统102检测二维图像中的对象或对象边界以生成三维网格。图14示出了其中深度位移系统102利用语义映射来分割三维网格的实施例。具体地,深度位移系统102确定语义映射以指示二维图像内的分离对象,以在相应的三维网格中生成分离的三维对象网格。
如图14所示,深度位移系统102确定包括多个分离对象的二维图像1400。作为说明,二维图像1400包括在俯瞰风景的道路上停放的汽车的图像。在一个或多个实施例中,深度位移系统102基于二维图像1400生成语义图1402。例如,深度位移系统102利用语义分割神经网络(例如,对象检测模型、深度学习模型)来基于二维图像1400中检测到的对象将二维图像1400的像素自动标记为对象分类。深度位移系统102可以利用各种模型或架构来确定对象分类和图像分割。为了说明,深度位移系统102利用分割神经网络,如在2017年10月31日提交的,题为“Deep salient content neural networks for efficient digitalobject segmentation”的美国专利No.10,460,214中描述的,其通过引用整体并入本文。此外,深度位移系统102生成包括二维图像1400的像素的对象分类的语义图1402。
在一个或多个实施例中,深度位移系统102利用语义图1402来生成分割的三维网格1404。具体地,深度位移系统102利用二维图像1400中的像素的对象分类来确定与二维图像1400中的对象相对应的三维网格的部分。例如,深度位移系统102利用二维图像1400和表示二维图像1400的三维网格之间的映射来确定三维网格的各部分的对象分类。为了说明,深度位移系统102基于二维图像1400和二维图像之间的映射来确定与在二维图像1400中检测到的特定对象相对应的三维网格的特定顶点。
在一个或多个实施例中,响应于确定与二维图像相关联三维网格的不同部分对应于不同对象,深度位移系统102分割三维网格。具体地,深度位移系统102利用与三维网格的部分相关联的对象分类信息来将三维网格分离成多个分离的三维对象网格。例如,深度位移系统102确定三维网格的一部分对应于二维图像1400中的汽车,并且将对应于汽车的三维网格的部分与三维网格的其余部分分离。
因此,在一个或多个实施例中,深度位移系统102将三维网格分割成对应于二维图像的两个或多个分离网格。为了说明,深度位移系统102通过将二维图像1400分成场景中的多个分离的三维对象网格来生成分割的三维网格1404。例如,深度位移系统102生成对应于汽车的三维对象网格、对应于道路的三维对象网格、对应于一组或多组树木的一个或多个三维对象网格等。
在附加实施例中,深度位移系统102基于二维图像中的对象子集来分割三维网格。为了说明,深度位移系统102确定二维图像1400中用于分割三维网格的一个或多个对象。例如,深度位移系统102确定二维图像1400的前景中的一个或多个对象以生成分离的三维对象网格。在一些实施例中,深度位移系统102确定用于生成分离的三维对象网格的对象的突出度(prominence)(例如,比例大小)。在一个或多个实施例中,深度位移系统102响应于对一个或多个对象的选择(例如,经由显示二维图像的图形用户界面手动选择二维图像1400中的汽车)来确定一个或多个对象。
根据一个或多个实施例,深度位移系统102基于二维图像和/或三维网格中的深度不连续性来分割三维网格。图15示出了深度位移系统102确定包括多个分离对象的二维图像1500。关于二维图像1500,深度位移系统102生成表示二维图像1500中的对象的三维网格。
此外,在一个或多个实施例中,深度位移系统102基于二维图像1500和/或三维网格中的深度差异来确定深度不连续性1502。具体地,深度位移系统102确定指示深度急剧变化的三维网格的一个或多个部分。例如,深度位移系统102确定三维网格中的汽车边缘相对于天空、道路和/或其他背景元素具有深度不连续性。
在一个或多个实施例中,深度位移系统102基于深度不连续性1502生成分割三维网格1504。响应于检测到深度不连续性1502,深度位移系统102确定深度不连续性1502指示分离的对象。为了说明,深度位移系统102基于超过特定阈值的深度不连续性来检测分离的对象。更具体地,深度位移系统102通过将具有深度不连续性1502的位置处的三维网格分离/切片成多个分离的三维对象网格来生成分割的三维网格1504。
在一个或多个实施例中,除了用于表示二维图像的三维网格中的分离对象生成分离的三维对象网格之外,深度位移系统102利用神经网络来填充通过对三维网格进行切片而创建的三维网格部分。例如,响应于通过将与汽车对应的三维网格的部分从三维网格的剩余部分分离来生成分割三维网格1504,深度位移系统102填充通过分割三维网格而产生的三维网格的剩余部分。为了说明,深度位移系统102插入多个顶点以连接缺失部分,例如通过在缺失部分中内插或以其他方式生成表面(例如,经由内容感知填充)。
在附加实施例中,深度位移系统102利用关于对应于分割部分的对象类的信息来填充连接三维对象网格的一个或多个部分。例如,深度位移系统102确定从三维网格分割的三维对象网格对应于人或人的身体部分。深度位移系统102利用与检测到的对象类别(例如,人或手臂)相关联的信息来完成对于在二维图像中不可见的三维对象网格的区域的三维对象网格(例如,通过在二维图像中不可见的手臂的背面连接表示手臂的网格的前部)。
图16A-图16B示出了包括图像编辑应用1602的客户端设备1600的多个图形用户界面。如图16A-图16B所示,深度位移系统102提供用于根据表示二维图像1604的位移三维网格来修改二维图像1604中的各个对象的工具。更具体地,深度位移系统102基于二维图像1604中的对象自动分割三维网格。因此,深度位移系统102提供用于通过将三维网格分割成多个三维对象网格来修改各个对象的工具。
例如,图16A示出了客户端设备1600显示包括用于经由位移工具进行编辑的多个对象的二维图像1604。在一个或多个实施例中,深度位移系统102生成三维网格,该三维网格包括对应于二维图像1604中的一个或多个对象的一个或多个三维对象网格。例如,深度位移系统102通过为二维图像1604中的岩石1606生成分离的三维对象网格来分割与二维图像1604相对应的三维网格。为了说明,深度位移系统102通过从为二维图像1604生成的初始三维网格中分离相应部分来生成在三维空间中表示岩石的三维对象网格。
在一个或多个实施例中,客户端设备1600检测位移输入以在不修改二维图像1604的其他部分的情况下位移岩石1606(或岩石1606的一部分)。如图16B所示,深度位移系统102确定位移输入的属性(例如,基于与位移输入相关联的位置和/或其他设置)。响应于修改所选择部分,客户端设备1600基于位移输入显示包括修改的岩石1606a的修改的二维图像1604a。例如,深度位移系统102在与位移输入相关联的一个或多个方向上和/或基于对应于修改的岩石1606a的三维对象网格的顶点来位移修改的岩石1606a的部分。因此,客户端设备1600显示深度位移系统102根据表示岩石的三维对象网格的修改在修改的二维图像1604a中生成修改的岩石1606a。
在附加实施例中,如上所述,深度位移系统102提供对二维图像的迭代修改和镶嵌。图17示出了深度位移系统102迭代地修改和镶嵌二维图像的实施例。具体地,深度位移系统102响应于修改二维图像而生成表示二维图像的新镶嵌。
在一个或多个实施例中,如图17所示,深度位移系统102确定包括用于经由位移工具修改的一个或多个对象的二维图像1700。例如,响应于(或以其他方式结合)检测到位移输入以位移二维图像1700的一部分,深度位移系统生成包括与二维图像1700中的对象相关联的深度数据的三维网格1702。在一个或多个实施例中,深度位移系统102在对二维图像1700应用任何修改之前的初始镶嵌操作中生成三维网格1702。
根据一个或多个实施例,响应于利用三维网格1702修改二维图像1700的位移输入,深度位移系统102生成修改的二维图像1704。例如,深度位移系统102基于二维图像1700的所选择部分来确定三维网格1702的所选择部分。深度位移系统102还根据位移输入的属性修改所选择部分。此外,深度位移系统102根据给定二维图像1700和三维网格1702之间的映射的三维网格1702的修改部分来生成修改的二维图像1704。
在一个或多个实施例中,如图17所示,深度位移系统102生成表示修改的二维图像1704的新的三维网格1706。具体地,深度位移系统102通过再次执行镶嵌处理来生成新的三维网格1706。例如,深度位移系统102确定修改的二维图像1704的像素密度值,基于像素密度值生成镶嵌,并且通过根据修改的二维图像1704的像素深度值和估计的相机参数修改镶嵌以包括位移来生成新的三维网格1706。因此,深度位移系统102生成新的三维网格1706以准确地表示修改的二维图像1704。
在一个或多个实施例中,通过响应于修改对应的二维图像而生成新的三维网格,深度位移系统102提供减少与进一步修改二维图像相关的伪像的更新的镶嵌。例如,在三维网格的顶点之间引入尖锐过渡的位移操作会产生拉长的多边形。对涉及三维网格的先前修改的部分(例如,包括拉长的多边形的部分)的二维图像应用进一步的修改可能导致对应于二维图像的部分的几何图形的伪像和不正确的扭曲。因此,通过在一个或多个位移操作之后迭代地更新表示二维图像的三维网格,深度位移系统102改善修改区域中的镶嵌以减少或消除未来位移操作中的伪像。
图18A-图18D示出了与基于修改二维图像的位移输入的迭代镶嵌处理相关的多个图形用户界面和三维网格。具体地,图18A示出了包括用于编辑数字图像的图像编辑应用1802的客户端设备1800的图形用户界面。例如,如图18A所示,客户端设备1800显示包括场景(例如,沙漠场景)中的多个对象的二维图像1804。
在一个或多个实施例中,结合修改二维图像的位移操作1804,深度位移系统102生成三维网格。图18B示出了深度位移系统102为二维图像1804生成的第一三维网格1806。为了说明,第一三维网格1806包括二维图像1804中的对象的镶嵌,该镶嵌包括基于根据与二维图像1804相关联的视点的深度值的镶嵌中的顶点的对象的位移信息。
响应于用于修改二维图像的一部分的位移输入1804,深度位移系统102修改第一三维网格1806的相应部分。例如,图18C示出客户端设备1800基于位移输入显示修改的二维图像1804a。为了说明,深度位移系统102基于第一三维网格1806的修改部分生成修改的二维图像1804a的修改部分。
在附加实施例中,深度位移系统102基于修改的二维图像1804a生成更新的镶嵌。具体地,图18D示出了深度位移系统102为修改的二维图像1804a生成的第二三维网格1806a。例如,第二三维网格1806a包括修改的二维图像1804a中的对象的镶嵌,该镶嵌包括根据与二维图像1804和修改的二维图像1804a相关联的视点基于新的深度值的修改的二维图像1804a中的对象的位移信息。
在一个或多个实施例中,深度位移系统102通过利用新的镶嵌处理(例如,如上所述)来生成第二三维网格1806a。为了说明,深度位移系统102确定修改的二维图像1804a的像素的新密度值,并基于新密度值对点进行采样。此外,深度位移系统102根据新的密度值基于采样点生成新的镶嵌,并且根据修改的二维图像1804a的视点修改新的镶嵌以包括深度信息。
在一个或多个备选实施例中,深度位移系统102通过基于第一三维网格1806内插数据来生成第二三维网格1806a。例如,深度位移系统102确定第一三维网格1806的一个或多个区域,该一个或多个区域包括基于位移引入到二维图像1804的细长多边形或其他伪像(例如,纹理伪像)。深度位移系统102利用第一三维网格1806中的顶点的新位置来插入多个顶点,并通过内插第一三维网格1806的一个或多个表面来减小镶嵌中的多边形的大小。通过将新顶点插入到镶嵌中,深度位移系统102生成第二三维网格1806a以包括更精确的几何图形并防止进一步修改中的伪像,同时还保留第二三维网格1806a中响应于第一三维网格1806的一部分的位移而变得相对于修改的二维图像1804a的视点变得模糊的信息。
图19A-图19B示出了与修改数字图像的位移操作相关的图像。具体地,图19A示出了包括具有多个对象(例如,地面、树木)的场景的二维图像1900。在一个或多个实施例中,深度位移系统102生成表示二维图像1900的三维网格,用于经由位移工具修改二维图像1900。图19b示出了修改的二维图像1902,该修改的二维图像1902包括通过位移包括位移部分1904的二维图像1900的一个或多个部分而创建的多个山丘。为了说明,位移部分1904包括地面的位移,以引入先前未包括在二维图像1900中的细节。
在一个或多个实施例中,响应于位移输入以生成位移部分1904,深度位移系统102生成表示修改的二维图像1902的新的三维网格。例如,深度位移系统102生成新的三维网格以基于包括拉长的多边形的原始三维网格将附加顶点插入到镶嵌中。在附加实施例中,深度位移系统102响应于确定位移输入引入了二维图像1900(例如,悬崖面)中先前没有的伪像和/或附加图像细节,生成新的三维网格。
根据一个或多个实施例,深度位移系统102还利用内容感知填充来修改与新的三维网格和/或修改的二维图像1902相关联的纹理数据。例如,深度位移系统102利用修复神经网络来内嵌修改的二维图像1902的一部分。深度位移系统102可以利用各种模型或架构来内嵌数字图像的像素。例如,在一个或多个实施例中,深度位移系统102利用修复神经网络,如在2022年5月13日提交的,题为“OBJECT CLASS INPAINTING IN DIGITAL IMAGESUTILIZING CLASS-SPECIFIC INPAINTING NEURAL NETWORKS”的美国专利申请No.17/663,317中所描述的,或者如在2022年7月27日提交的,题为“GENERATING NEURAL NETWORKBASED PERCEPTUAL ARTIFACT SEGMENTATIONS INMODIFIED PORTIONS OF A DIGITALIMAGE”的美国专利申请No.17/815,409中所描述的,这些申请通过引用整体并入本文。为了说明,深度位移系统102利用修复神经网络来为位移部分1904内的新表面生成新的图像细节。因此,深度位移系统102根据位移部分1904周围的上下文信息将悬崖纹理内嵌到在位移部分1904内生成的悬崖面上。
在一个或多个实施例中,深度位移系统102还响应于经由二维编辑工具对二维图像进行的修改而提供迭代镶嵌。例如,在生成对应于二维图像的三维网格之后,深度位移系统102经由二维编辑工具(例如,二维图像过滤/翘曲工具)检测用于修改二维图像的附加输入。响应于确定经由二维编辑工具修改了二维图像,深度位移系统102执行附加网格生成处理以更新对应于修改的二维图像的三维网格。因此,深度位移系统102基于在三维空间和/或在二维空间中进行的修改来提供二维图像和相应的三维网格的迭代更新。
图20示出了上述深度位移系统102的实施例的详细示意图。如图所示,深度位移系统102在(多个)计算设备2000上的图像编辑系统110中实现(例如,如图1中所描述的客户端设备和/或服务器设备,并且如以下参考图25进一步描述的)。另外,深度位移系统102包括但不限于网格生成器2002(其包括(多个)神经网络2004)、用户界面管理器2006、网格位移管理器2008、图像修改管理器2010和存储管理器2012。深度位移系统102可以在任何数目的计算设备上实现。例如,深度位移系统102可以在用于数字图像的服务器设备的分布式系统中实现。深度位移系统102还可以在一个或多个附加系统内实现。备选地,深度位移系统102可以在诸如单个客户端设备的单个计算设备上实现。
在一个或多个实施例中,深度位移系统102的每个组件使用任何适当的通信技术与其他组件通信。此外,深度位移系统102的组件能够与包括用户的其他计算设备、服务器设备(例如,云存储设备)、许可服务器或其他设备/系统的一个或多个其他设备通信。应当认识到,尽管深度位移系统102的组件在图20中示出为分离的,但是任何子组件可以被组合成更少的组件,例如组合成单个组件,或者被划分成更多的组件,以服务于特定实现。此外,尽管结合深度位移系统102描述了图20的组件,但是用于结合本文描述的深度位移系统102执行操作的组件中的至少一些可以在环境内的其他设备上实现。
在一些实施例中,深度位移系统102的组件包括软件、硬件或两者。例如,深度位移系统102的组件包括存储在计算机可读存储介质上并且可由一个或多个计算设备(例如,(多个)计算设备2000)的处理器执行的一个或多个指令。当由一个或多个处理器执行时,深度位移系统102的计算机可执行指令使(多个)计算设备2000执行本文描述的操作。备选地,深度位移系统102的组件包括硬件,例如用于执行特定功能或功能组的专用处理设备。附加地或备选地,深度位移系统102的组件包括计算机可执行指令和硬件的组合。
此外,执行本文关于深度位移系统102描述的功能的深度位移系统102的组件可以例如被实现为独立应用的一部分、应用的模块、应用的插件、可由其他应用调用的一个或多个库函数、和/或云计算模型。因此,深度位移系统102的组件可以作为个人计算设备或位移设备上的独立应用的一部分来实现。备选地或附加地,深度位移系统102的组件可以在提供数字图像修改的任何应用中实现。
如图20所示,深度位移系统102包括从二维图像生成三维网格的网格生成器2002。例如,网格生成器2002利用(多个)神经网络2004来估计二维图像的像素的深度值,并利用一个或多个滤波器来基于估计的深度值来确定密度图。此外,网格生成器2002基于密度贴图采样点,并基于采样点生成镶嵌。网格生成器2002还通过修改镶嵌中顶点的位置以将深度和位移信息合并到表示二维图像的三维网格中来生成(例如,利用(多个)神经网络2004)位移三维网格。
深度位移系统102还包括用户界面管理器2006,以管理与经由位移工具修改二维图像有关的用户交互。例如,用户界面管理器2006检测位移输入相对于二维图像的位置,并将这些位置转换成与对应的三维网格相关联的三维空间。用户界面管理器2006还将对三维网格所做的改变转换回相应的二维图像以在图形用户界面内显示。
根据一个或多个实施例,深度位移系统102包括网格位移管理器2008以基于位移工具的位移输入来修改三维网格。具体地,网格位移管理器2008确定与位移输入相对应的三维网格的所选择部分的位移。为了说明,网格位移管理器2008利用与位移输入相关联的设置来确定要位移哪些顶点以及如何位移这些顶点。
深度位移系统102还包括图像修改管理器2010以修改二维图像。例如,图像修改管理器2010响应于检测到对相应三维网格的修改而生成更新的二维图像。为了说明,图像修改管理器2010根据三维网格的一个或多个位移部分利用二维图像和三维网格之间的映射来重新绘制二维图像(例如,基于二维图像和三维网格之间的纹理映射)。
深度位移系统102还包括存储管理器2012(其包括非暂态计算机存储器/一个或多个存储设备),其存储和维护与利用三维网格修改二维图像相关联的数据。例如,存储管理器2012存储与神经网络相关联的数据,神经网络基于与用于修改二维图像的相应二维图像相关联的深度信息来生成三维网格。为了说明,存储管理器2012存储二维图像、三维网格以及二维图像和三维网格之间的映射。
现在转到图21,该图示出了为二维图像生成自适应位移三维网格的动作系列2100的流程图。尽管图21示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图21中所示的任何动作。图21的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行图21的动作。在又一实施例中,系统包括被配置为执行图21的动作的处理器或服务器。
如图所示,动作系列2100包括确定二维图像的像素的密度值的动作2102。例如,动作2102涉及基于视差估计值来确定对应于二维图像的像素的密度值,其中利用第一神经网络来生成视差估计值。此外,在一个或多个实施例中,动作2102涉及基于根据对象在二维图像中的相对位置利用第一神经网络生成的视差估计值来确定对应于二维图像的像素的密度值。
在一个或多个实施例中,动作2102涉及基于视差估计值利用多个图像滤波器来确定二维图像的像素的深度的二阶导数变化。例如,动作2102涉及确定与二维图像的视差估计值相对应的矩阵的绝对值。此外,动作2102涉及基于矩阵的绝对值来确定对应于二维图像的像素的密度值。
在一个或多个实施例中,动作2102涉及利用卷积运算从矩阵的绝对值确定平滑值。动作2102还涉及通过根据一组处理参数截断平滑后的值来生成密度图。
动作2102可以涉及利用第一神经网络生成视差估计值,该视差估计值指示与二维图像的场景中的对应点和二维图像的视点之间的距离成负相关的估计值。在一个或多个实施例中,动作2102涉及利用第一神经网络生成视差估计值,该视差估计值指示与二维图像的场景中的对应点和二维图像的视点之间的距离成负相关的估计值。此外,动作2102涉及利用一个或多个图像滤波器,基于视差估计值来确定二维图像的像素的深度的二阶导数变化。
此外,动作2102涉及基于与二维图像的视差估计值相对应的矩阵的绝对值来确定与二维图像的像素相对应的密度值。动作2102还涉及通过根据一组处理参数平滑和截断矩阵的绝对值来生成密度图,该密度图包括对应于二维图像的像素的密度值。
在一个或多个实施例中,动作2102涉及确定表示二维图像的深度值的二阶导数的矩阵,确定矩阵的对角线的绝对值,利用卷积运算生成基于绝对值的平滑值,以及根据预定阈值截断平滑值。
该动作系列2100还包括根据密度值的采样点的动作2104。例如,动作2104涉及根据对应于二维图像的像素的密度值对二维图像中的多个点进行采样。在一个或多个实施例中,动作2104涉及根据对应于二维图像的像素的密度值指示的概率分布对二维图像中的多个点进行采样。在一个或多个实施例中,动作2104涉及利用密度值作为概率分布从二维图像中选择点。动作2104可以涉及利用密度值作为跨二维图像的概率分布来选择多个点。
此外,该动作系列2100包括基于采样点生成三维网格的动作2106。例如,动作2106涉及基于在二维图像中采样的多个点来生成三维网格。为了说明,动作2106涉及基于在二维图像中采样的多个点来生成初始镶嵌。动作2106可以涉及基于多个点生成表示二维图像的内容的镶嵌。在一个或多个实施例中,动作2106涉及通过利用与来自二维图像的采样点相关的松弛模型来生成表示二维图像的内容的镶嵌。例如,动作2106涉及根据松弛算法在多次迭代中对多个点进行采样,该松弛算法基于密度值向镶嵌单元的中心迭代地位移采样点。动作2106还可以涉及利用狄洛尼Delaunay三角剖分根据采样点生成镶嵌。
该动作系列2100还包括基于估计的相机参数从三维网格生成位移三维网格的动作2108。例如,动作2108涉及利用第二神经网络基于估计的二维图像的相机参数从三维网格生成位移三维网格。为了说明,动作2108涉及利用第二神经网络生成位移三维网格,该位移三维网格包括根据估计的二维图像的相机参数更新的镶嵌。
在一个或多个实施例中,动作2108涉及基于经由一个或多个用户界面元素的一个或多个输入来确定包括与生成位移三维网格相关的采样预算或镶嵌预算的一个或多个处理参数。动作2108还涉及根据一个或多个处理参数,基于在二维图像中采样的多个点来生成三维网格。
在一个或多个实施例中,动作2108涉及利用第二神经网络确定与二维图像的视点相对应的估计相机参数。此外,动作2108涉及基于所估计的相机参数和二维图像的像素深度值来确定三维网格中的顶点的位移。动作2108还涉及通过根据所确定的三维网格中的顶点的位移来修改三维网格的顶点的位置来生成更新的镶嵌。例如,动作2108涉及根据所估计的三维网格的相机参数来修改三维网格的顶点的位置以包括深度位移。
在一个或多个实施例中,该动作系列2100包括响应于修改二维图像的请求来修改位移三维网格。此外,该动作系列2100包括响应于修改位移三维网格而生成修改的二维图像。
现在转到图22,该图示出了利用位移三维网格修改二维图像的动作系列2200的流程图。虽然图22示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图22中所示的任何动作。图22的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行图22的动作。在又一实施例中,系统包括被配置为执行图22的动作的处理器或服务器。
如图所示,动作系列2200包括基于二维图像的像素深度值生成三维网格的动作2202。例如,动作2202涉及利用一个或多个神经网络基于对应于二维图像的对象的像素深度值来生成三维网格。
在一个或多个实施例中,动作2202涉及通过基于像素深度值和估计的相机参数确定二维图像的镶嵌的顶点的位移来生成三维网格。备选地,动作2202涉及根据从二维图像的像素深度值确定的密度值,基于在二维图像中采样的多个点来生成三维网格。
该动作系列2200还包括基于位移输入确定三维网格的位置的动作2204。例如,动作2204涉及基于位移输入在二维图像内的对应位置来确定三维网格的位置。
在一个或多个实施例中,动作2204涉及确定包括二维图像内的坐标的位移输入的对应位置。动作2204还涉及基于二维图像内的坐标和从二维图像到三维网格的投射来确定三维网格的位置。
在一个或多个实施例中,动作2204涉及确定从二维图像到三维网格的投射。动作2204还涉及根据从二维图像到三维网格的投射,基于与位移输入相对应的二维图像的二维位置的位置来确定与位移输入相对应的三维网格的三维位置。
此外,该动作系列2200包括通过确定三维网格在三维网格的位置处的位移部分来修改三维网格的动作2206。例如,动作2206涉及响应于位移输入,通过确定三维网格在三维网格的位置处的位移部分来修改三维网格。
动作2206涉及确定位移输入在二维图像内的二维位置。动作2206还涉及基于位移输入在二维图像内的二维位置来确定三维网格上的位移输入的三维位置。
动作2206涉及基于位移输入的属性确定位移输入指示三维网格的一部分的位移方向。例如,动作2206涉及基于三维网格的所选择部分来确定位移方向。动作2206还涉及在位移方向上位移三维网格的该部分。
在一个或多个实施例中,动作2206涉及基于位移输入的附加属性来确定位移输入指示三维网格的该部分的附加位移方向。动作2206还涉及根据附加位移方向来位移三维网格的该部分。
此外,动作2206涉及响应于与位移输入相关的附加输入来选择要位移的三维网格的新部分。动作2206还涉及根据在位移方向上的位移输入来位移三维网格的新部分。此外,在一个或多个实施例中,动作2206涉及基于位移输入的位移,在位移方向上将三维网格的一个或多个附加部分从三维网格的部分位移到三维网格的新部分。
在一个或多个实施例中,动作2206涉及确定指示与位移输入相关联的形状的位移滤波器。动作2206还涉及根据在位移输入的方向上的位移输入的形状来位移三维网格的一部分。
动作2206可以涉及确定位移输入指示根据三维网格的位置的三维网格的一部分的位移。动作2206还可以涉及响应于位移输入来确定三维网格的位移部分。
在一个或多个实施例中,动作2206涉及在显示二维图像的图形用户界面内确定位移输入的位移方向。动作2206还涉及基于位移的位移方向来确定位移高度和位移半径。动作2206还涉及基于位移高度和位移半径来确定三维网格的位移部分。
在一个或多个实施例中,动作2206涉及基于从二维图像到三维网格的投射来确定位移输入相对于二维图像的位移以及位移输入相对于三维网格的相应位移。动作2206还涉及基于位移输入相对于三维网格的相应位移来确定三维网格的位移部分。
在一个或多个实施例中,动作2206涉及确定对应于三维网格位置处的一个或多个顶点或一个或多个面的一个或多个法线值。动作2206还涉及响应于位移输入来确定三维网格在对应于与一个或多个顶点或一个或多个面相对应的一个或多个法线值的一个或多个方向上的位移部分。
该动作系列2200还包括基于三维网格的位移部分生成修改的二维图像的动作2208。例如,动作2208涉及根据三维网格的位移部分生成包括至少一个修改部分的修改的二维图像。
在一个或多个实施例中,动作2208涉及基于三维网格和二维图像之间的映射来确定与三维网格的位移部分的三维位置相对应的二维图像的二维位置。动作2208还涉及基于三维网格的位移部分的三维位置生成包括在二维位置处的至少一个修改部分的修改的二维图像。
在一个或多个实施例中,动作2208涉及响应于位移输入,根据三维网格的位移部分提供包括至少一个修改部分的预览二维图像。动作2208还涉及响应于检测到提交三维网格的位移部分的动作来生成包括至少一个修改部分的修改的二维图像。
在一个或多个实施例中,动作2208涉及基于从二维图像到三维网格的投射来确定与三维网格的位移部分相对应的二维图像的二维位置。动作2208还可以涉及基于二维图像的二维位置生成修改的二维图像,该修改的二维图像包括根据三维网格的位移部分的至少一个修改部分。
现在转到图23,该图示出了利用分割的三维对象网格修改二维图像的动作系列2300的流程图。虽然图23示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图23中所示的任何动作。图23的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行图23的动作。在又一实施例中,系统包括被配置为执行图23的动作的处理器或服务器。
如图所示,动作系列2300包括基于二维图像的像素深度值生成三维网格的动作2302。例如,动作2302涉及利用一个或多个神经网络基于二维图像的像素深度值生成三维网格。
在一个或多个实施例中,动作2302涉及通过基于像素深度值和估计的相机参数确定二维图像的镶嵌的顶点的位移来生成三维网格。备选地,动作2302涉及根据从二维图像的像素深度值确定的密度值,基于在二维图像中采样的多个点来生成三维网格。
该动作系列2300还包括将三维网格分割成三维对象网格的动作2304。例如,动作2304涉及利用一个或多个神经网络将三维网格分割成对应于二维图像的对象的多个三维对象网格。
在一个或多个实施例中,动作2304涉及利用一个或多个对象检测模型检测二维图像的多个对象。动作2304还可以涉及响应于检测到多个对象,将三维网格分割成与二维图像的多个对象相对应的多个三维对象网格。
例如,动作2304涉及检测二维图像或三维网格中的一个或多个对象。动作2304还涉及基于在二维图像或三维网格中检测到的一个或多个对象,将三维网格的第一部分与三维网格的第二部分分离。
动作2304可以涉及利用一个或多个对象检测模型生成包括指示二维图像中的像素的对象分类的标签的语义图。动作2304还可以涉及基于语义图的标签来检测二维图像的多个对象。
在一个或多个实施例中,动作2304涉及基于二维图像的像素深度值来确定包括二维图像的相邻区域之间的深度不连续性的二维图像的一部分。动作2304涉及确定相邻区域的第一区域对应于第一对象,并且相邻区域的第二区域对应于第二对象。
在一个或多个实施例中,动作2304涉及确定包括指示二维图像中的像素的对象分类的标签的语义图。动作2304还涉及基于语义图的标签检测二维图像中的一个或多个对象。
在一个或多个实施例中,动作2304涉及基于二维图像的对应像素深度值来确定三维网格的一部分处的深度不连续性。动作2304涉及基于三维网格的该部分处的深度不连续性来检测三维网格中的一个或多个对象。
根据一个或多个实施例,动作2304涉及根据以下内容检测二维图像的对象:对应于二维图像的语义映射;或基于二维图像的像素深度值的深度间断。动作2304还涉及响应于检测到二维图像的对象而将三维网格分离成多个三维对象网格。
该动作系列2300还包括响应于位移输入修改所选择的三维对象网格的动作2306。例如,动作2306涉及响应于在显示二维图像的图形用户界面内的位移输入,基于所选择的三维对象网格的位移部分来修改所述多个三维对象网格中的所选择的三维对象网格。
动作2306可以涉及确定从二维图像到三维环境中的多个三维对象网格的投射。动作2306还涉及基于位移输入相对于二维图像的二维位置以及从二维图像到多个三维对象网格的投射来确定所选择的三维对象网格。例如,动作2306涉及确定位移输入相对于二维图像的二维位置。动作2306还涉及基于二维图像和包括多个三维对象网格的三维环境之间的映射来确定与多个三维对象网格中的三维对象网格相对应的三维位置。
在一个或多个实施例中,动作2306涉及确定位移输入指示所选择的三维对象网格的一部分的位移方向。动作2306还涉及通过根据位移方向位移所选择的三维对象网格的一部分来修改所选择的三维对象网格的一部分。
在一个或多个实施例中,动作2306涉及根据位移输入修改所选择的三维对象网格,而不修改与所选三维环境内的所选择的三维对象网格相邻的一个或多个附加三维对象网格。
在一个或多个实施例中,动作2306涉及基于位移输入的属性来确定位移输入指示所选择的三维对象网格的一部分的一个或多个位移方向。动作2306还涉及在一个或多个位移方向上位移所选择的三维对象网格的部分。
此外,该动作系列2300包括响应于修改所选择的三维对象网格而生成修改的二维图像的动作2308。例如,动作2308涉及根据所选择的三维对象网格的位移部分生成包括至少一个修改部分的修改的二维图像。
在一个或多个实施例中,动作2308涉及基于多个三维对象网格和二维图像之间的映射来确定与所选择的三维对象网格的位移部分的三维位置相对应的二维图像的二维位置。动作2308还涉及基于所选择的三维对象网格的位移部分的三维位置来生成包括在二维位置处的至少一个修改部分的修改的二维图像。
在一个或多个实施例中,动作2308涉及确定位移输入指示所选择的三维对象网格的位移方向,所选择的三维对象网格与附加三维对象网格相邻。动作2308还涉及根据位移方向位移所选择的三维对象网格的一部分,而不修改附加的三维对象网格。
根据一个或多个实施例,动作2308涉及基于二维图像和三维网格之间的映射来确定与所选择的三维对象网格的位移部分的三维位置相对应的二维图像的二维位置。动作2308还涉及根据所选择的三维对象网格的位移部分来生成包括在二维图像的二维位置处的至少一个修改部分的修改的二维图像。
例如,动作2308涉及确定二维图像和三维网格之间的映射。动作2308涉及确定所选择的三维对象网格的位移部分的三维位置。动作2308还涉及基于二维图像和三维网格之间的映射来生成修改的二维图像,该修改的二维图像包括与所选择的三维对象网格的位移部分的三维位置相对应的二维图像的二维位置处的至少一个修改的部分。
现在转到图24,该图示出了在迭代细分过程中修改二维图像的动作系列2400的流程图。尽管图24示出了根据一个实施例的动作,但备选实施例可以省略、添加、重新排序和/或修改图24中所示的任何动作。图24的动作是方法的一部分。备选地,非暂态计算机可读介质包括指令,当由一个或多个处理器执行时,该指令使得一个或多个处理器执行图24的动作。在又一实施例中,系统包括被配置为执行图24的动作的处理器或服务器。
如图所示,该动作系列2400包括基于二维图像的像素深度值生成三维网格的动作2402。例如,动作2402涉及利用一个或多个神经网络基于二维图像的像素深度值生成三维网格。例如,动作2402涉及利用一个或多个神经网络,基于二维图像的第一像素深度值生成第一三维网格。
在一个或多个实施例中,动作2402涉及通过基于像素深度值和估计的相机参数确定二维图像的镶嵌的顶点的位移来生成三维网格。动作2402备选地涉及根据从二维图像的像素深度值确定的密度值,基于在二维图像中采样的多个点来生成三维网格。
动作2402可以涉及基于二维图像的第一组采样点来生成第一镶嵌。动作2402可以涉及利用一个或多个神经网络,根据与二维图像的视点相对应的估计相机参数来确定第一像素深度值。
该动作系列2400还包括基于位移输入确定修改的二维图像的动作2404。例如,动作2404涉及基于在显示二维图像的图形用户界面内输入的位移来确定包括二维图像的至少一个修改部分的修改的二维图像。在一个或多个实施例中,动作2404涉及根据第一三维网格的相应修改部分,基于显示二维图像的图形用户界面内的位移输入来确定包括二维图像的至少一个修改部分的修改的二维图像。
例如,动作2404涉及基于位移输入确定三维网格的位移部分。动作2404还涉及根据三维网格的位移部分来生成修改的二维图像。
动作2404可以涉及确定位移输入在二维图像内的二维位置。动作2404还涉及基于位移输入在二维图像内的二维位置来确定第一三维网格上的位移输入的三维位置。动作2404还涉及根据位移输入基于第一三维网格在三维位置处的修改部分来确定二维位置处的二维图像的至少一个修改部分。
动作2404可以涉及确定相对于第一三维网格的位移输入的位移方向。动作2404还可以涉及根据位移输入的位移方向来确定第一三维网格的修改部分。为了说明,动作2404涉及基于位移输入的一个或多个位移方向确定三维网格的位移部分,以及基于三维网格的位移部分确定二维图像的至少一个修改部分。
动作2404可以涉及确定二维图像的至少一个修改部分包括图像伪像。动作2404还涉及利用修复神经网络生成校正所述至少一个修改部分内的图像伪像的嵌入图像内容。动作2404还可以涉及响应于在二维图像的至少一个修改部分中检测到伪像,利用修复神经网络为二维图像的至少一个修改部分生成嵌入图像内容。
该动作系列2400还包括基于修改的二维图像的新的像素深度值来生成更新的三维网格的动作2406。例如,动作2406涉及利用一个或多个神经网络,根据至少一个修改部分,基于修改的二维图像的新的像素深度值生成更新后的三维网格。例如,动作2406涉及利用一个或多个神经网络,根据至少一个修改部分,基于修改的二维图像的第二像素深度值生成第二三维网格。
在一个或多个实施例中,动作2406涉及响应于检测到提交至少一个修改部分的动作来确定修改的二维图像的新的像素深度值。
此外,动作2406可以涉及生成第二三维网格,包括基于修改的二维图像的第二组采样点来生成第二镶嵌。动作2406可以涉及利用一个或多个神经网络,根据与二维图像的视点相对应的估计相机参数来确定第二像素深度值。
动作2406涉及根据对应于修改的二维图像的像素的密度值对修改的二维图像的多个点进行采样。动作2406还涉及基于在修改的二维图像中采样的多个点来生成更新的三维网格。
在一个或多个实施例中,动作2406涉及响应于提交二维图像的至少一个修改部分的请求来生成第二三维网格。例如,动作2406涉及通过将至少一个修改部分的位移提交给二维图像来检测生成修改的二维图像的动作。动作2406还涉及响应于将至少一个修改部分的位移提交给二维图像来生成更新的三维网格。
动作2406还涉及确定二维图像的至少一个修改部分的初始位置遮挡了二维图像的附加部分。动作2406涉及通过在三维网格的与被二维图像的至少一个修改部分的初始位置遮挡的二维图像的附加部分相对应的部分中内插顶点位置来生成更新的三维网格。
在一个或多个实施例中,动作2406涉及结合二维图像的至少一个修改部分来内插与二维图像的遮挡部分相对应的第二三维网格的部分中的多个顶点的顶点位置。
该动作系列2400还可以包括在包括图形用户界面内的多个位移输入的多个位移迭代中生成对应于与修改的二维图像相关联的多个修改的二维图像的多个更新的三维网格。
在一个或多个实施例中,动作2402涉及根据对应于二维图像的像素的第一密度值对二维图像的第一组点进行采样。动作2402还涉及基于在二维图像中采样的第一组点来生成三维网格。因此,动作2406涉及根据对应于修改的二维图像的像素的第二密度值对修改的二维图像的第二组点进行采样。动作2406还涉及根据对应于修改的二维图像的像素的第二密度值对修改的二维图像的第二组点进行采样。动作2406还涉及基于在修改的二维图像中采样的第二组点来生成更新的三维网格。
本公开的实施例可以包括或利用包括计算机硬件的专用或通用计算机,例如一个或多个处理器和系统存储器,如下面更详细地讨论的。本公开范围内的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。具体地,这里描述的一个或多个过程可以至少部分地实现为包含在非暂态计算机可读介质中并且可由一个或多个计算设备(例如,这里描述的任何媒体内容访问设备)执行的指令。一般而言,处理器(例如,微处理器)从非暂态计算机可读介质(例如,存储器等)接收指令,并执行这些指令,从而执行一个或多个进程,包括在此描述的一个或多个进程。
计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是非暂态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本公开的实施例可以包括至少两种截然不同的计算机可读介质:非暂态计算机可读存储介质(设备)和传输介质。
非暂态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(例如,基于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于以计算机可执行指令或数据结构的形式存储所需程序代码装置并可由通用或专用计算机访问的任何其他介质。
“网络”被定义为能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或其他通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,计算机正确地将该连接视为传输介质。传输介质可包括网络和/或数据链路,其可用于携带计算机可执行指令或数据结构形式的所需程序代码装置,并且可由通用或专用计算机访问。上述各项的组合也应包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以自动地从传输介质传输到非暂态计算机可读存储介质(设备)(反之亦然)。例如,可以将通过网络或数据链路接收的计算机可执行指令或数据结构缓存在网络接口模块(例如,NIC)内的RAM中,并且最终将其传送到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因此,应当理解,非暂态计算机可读存储介质(设备)可以包括在也(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如指令和数据,当在处理器处执行时,指令和数据使得通用计算机、专用计算机或专用处理设备执行特定功能或功能组。在一些实施例中,在通用计算机上执行计算机可执行指令,以将通用计算机转变为实现本公开的元素的专用计算机。计算机可执行指令可以是例如二进制、诸如汇编语言的中间格式指令、或者甚至是源代码。尽管已经以结构特征和/或方法动作专用的语言描述了该主题,但是应当理解,在所附权利要求中定义的主题不一定限于上述特征或动作。相反,所描述的特征和动作被公开作为实现权利要求的示例形式。
本领域技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实现,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络PC、小型机、大型计算机、移动电话、PDA、平板计算机、寻呼机、路由器、交换机等。本发明还可以在分布式系统环境中实施,其中本地和远程计算机系统通过网络链接(通过硬连线数据链路、无线数据链路或通过硬连线和无线数据链路的组合)来执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
本公开的实施例还可以在云计算环境中实现。在本说明书中,“云计算”被定义为用于实现对可配置计算资源的共享池的按需网络访问的模型。例如,可以在市场中使用云计算来提供对可配置计算资源的共享池的无处不在且方便的按需访问。可配置计算资源的共享池可以通过虚拟化快速调配,只需很少的管理工作或服务提供商交互即可释放,并且进行相应的伸缩。
云计算模型可以由各种特征组成,例如按需自助服务、广泛的网络接入、资源池、快速弹性、测量服务等。云计算模型还可以公开各种服务模型,例如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。云计算模型也可以使用不同的部署模型进行部署,例如私有云、社区云、公共云、混合云等。在本说明书和权利要求书中,“云计算环境”是使用云计算的环境。
图25示出了可被配置为执行上述一个或多个过程的示例计算设备2500的框图。可以理解,诸如计算设备2500的一个或多个计算设备可以实现图1的(多个)系统。如图25所示,计算设备2500可以包括处理器2502、存储器2504、存储设备2506、I/O接口2508和通信接口2510,它们可以通过通信基础设施2512通信地耦合。在某些实施例中,计算设备2500可以包括比图25中所示的组件更少或更多的组件。现在将更详细地描述图25中所示的计算设备2500的组件。
在一个或多个实施例中,处理器2502包括用于执行指令的硬件,例如构成计算机程序的那些指令。作为示例而非限制,为了执行用于动态修改工作流的指令,处理器2502可以从内部寄存器、内部高速缓存、存储器2504或存储设备2506检索(或获取)指令,并对它们进行解码和执行。存储器2504可以是用于存储由(多个)处理器执行的数据、元数据和程序的易失性或非易失性存储器。存储设备2506包括用于存储用于执行本文描述的方法的数据或指令的存储设备,例如硬盘、闪盘驱动器或其他数字存储设备。
I/O接口2508允许用户向计算设备2500提供输入、从计算设备2500接收输出、以及以其他方式向计算设备2500传输数据和从计算设备2500接收数据。I/O接口2508可以包括鼠标、小键盘或键盘、触摸屏、照相机、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备或这些I/O接口的组合。I/O接口2508可以包括用于向用户呈现输出的一个或多个设备,包括但不限于图形引擎、显示器(例如,显示屏)、一个或多个输出驱动器(例如,显示驱动器)、一个或多个音频扬声器、以及一个或多个音频驱动器。在某些实施例中,I/O接口2508被配置为向显示器提供图形数据以呈现给用户。图形数据可以表示一个或多个图形用户界面和/或可以服务于特定实现的任何其他图形内容。
通信接口2510可以包括硬件、软件或两者。在任何情况下,通信接口2510可以提供用于计算设备2500和一个或多个其他计算设备或网络之间的通信(例如,基于分组的通信)的一个或多个接口。作为示例而非限制,通信接口2510可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或者用于与诸如Wi-Fi的无线网络进行通信的无线NIC(WNIC)或无线适配器。
此外,通信接口2510可以促进与各种类型的有线或无线网络的通信。通信接口2510还可以促进使用各种通信协议的通信。通信基础设施2512还可以包括将计算设备2500的组件彼此耦合的硬件、软件或两者。例如,通信接口2510可以使用一个或多个网络和/或协议来使通过特定基础设施连接的多个计算设备能够彼此通信以执行本文描述的过程的一个或多个方面。为了说明,数字内容活动管理过程可以允许多个设备(例如,客户端设备和服务器设备)使用用于共享诸如电子消息、用户交互信息、参与度或活动管理资源的信息的各种通信网络和协议来交换信息。
在前述说明书中,参考其具体的示例实施例描述了本公开。参考这里讨论的细节来描述(多个)本公开的各种实施例和方面,并且附图例示了各种实施例。以上描述和附图是本公开的说明性说明,不应被解释为限制本公开。描述了许多具体细节以提供对本公开的各种实施例的透彻理解。
本公开可以在不背离其精神或基本特征的情况下以其他具体形式实施。所描述的实施例在所有方面仅被认为是说明性的而不是限制性的。例如,可以用更少或更多的步骤/动作来执行在此描述的方法,或者可以以不同的顺序来执行步骤/动作。此外,这里描述的步骤/动作可以彼此并行地重复或执行,或者与相同或相似步骤/动作的不同实例并行地重复或执行。因此,本申请的范围由所附权利要求指示,而不是由前述描述指示。权利要求的含义和等同范围内的所有变更均应包括在其范围内。
Claims (20)
1.一种方法,包括:
由至少一个处理器基于视差估计值确定与二维图像的像素相对应的密度值,其中所述视差估计值利用第一神经网络而被生成;
由所述至少一个处理器根据与所述二维图像的所述像素相对应的所述密度值对所述二维图像中的多个点进行采样;
由所述至少一个处理器基于在所述二维图像中采样的所述多个点生成三维网格;以及
由所述至少一个处理器利用第二神经网络,基于所述二维图像的估计的相机参数,从所述三维网格生成位移三维网格。
2.根据权利要求1所述的方法,还包括利用所述第一神经网络生成所述视差估计值,所述视差估计值指示与在所述二维图像的场景中的对应点和所述二维图像的视点之间的距离成负相关的估计值。
3.根据权利要求1所述的方法,其中确定所述密度值包括利用多个图像过滤器,基于所述视差估计值来确定所述二维图像的像素的深度的二阶导数变化。
4.根据权利要求3所述的方法,其中确定深度的所述二阶导数变化包括:
确定与所述二维图像的所述视差估计值相对应的矩阵的绝对值;以及
基于所述矩阵的所述绝对值确定与所述二维图像的所述像素相对应的所述密度值。
5.根据权利要求4所述的方法,其中确定所述密度值包括:
利用卷积运算从所述矩阵的所述绝对值确定平滑值;以及
通过根据一组处理参数截断所述平滑值来生成密度图。
6.根据权利要求1所述的方法,其中对所述多个点进行采样包括利用所述密度值作为概率分布从所述二维图像中选择点。
7.根据权利要求6所述的方法,其中生成所述三维网格包括通过利用与来自所述二维图像的采样点有关的松弛模型来迭代地生成表示所述二维图像的内容的镶嵌。
8.根据权利要求1所述的方法,其中生成所述位移三维网格包括:
利用所述第二神经网络确定与所述二维图像的视点相对应的所述估计的相机参数;
基于所述估计的相机参数和所述二维图像的像素深度值来确定所述三维网格中的顶点的位移;以及
根据所述三维网格中的所述顶点的所确定的所述位移来修改所述三维网格中的所述顶点的位置。
9.根据权利要求1所述的方法,还包括:
基于经由一个或多个用户界面元素的一个或多个输入,确定包括与生成所述位移三维网格相关的采样预算或镶嵌预算的一个或多个处理参数;以及
根据所述一个或多个处理参数,基于在所述二维图像中被采样的所述多个点来生成所述三维网格。
10.一种系统,包括:
存储器组件;以及
处理设备,被耦合到所述存储器组件,所述处理设备执行操作,所述操作包括:
由至少一个处理器基于视差估计值来确定与二维图像的像素相对应的密度值,其中所述视差估计值是利用第一神经网络、根据对象在所述二维图像中的相对位置而被生成的;
由所述至少一个处理器根据由与所述二维图像的所述像素相对应的所述密度值所指示的概率分布,对所述二维图像中的多个点进行采样;
由所述至少一个处理器通过基于在所述二维图像中被采样的所述多个点生成初始镶嵌来生成三维网格;以及
由所述至少一个处理器利用第二神经网络,根据所述二维图像的估计的相机参数生成包括更新的镶嵌的位移三维网格。
11.根据权利要求10所述的系统,其中确定所述密度值包括:
利用所述第一神经网络生成所述视差估计值,所述视差估计值指示与在所述二维图像的场景中的对应点和所述二维图像的视点之间的距离成负相关的估计值;以及
利用一个或多个图像过滤器,基于所述视差估计值来确定所述二维图像的所述像素的深度的二阶导数变化。
12.根据权利要求11所述的系统,其中确定深度的所述二阶导数变化包括基于与所述二维图像的所述视差估计值相对应的矩阵的绝对值来确定对应于所述二维图像的所述像素的所述密度值。
13.根据权利要求12所述的系统,其中确定所述密度值包括通过根据一组处理参数平滑和截断所述矩阵的绝对值,来生成包括与所述二维图像的像素相对应的所述密度值的密度图。
14.根据权利要求10所述的系统,其中:
对所述多个点进行采样包括利用所述密度值作为跨所述二维图像的所述概率分布来选择所述多个点;以及
生成所述三维网格包括基于所述多个点生成表示所述二维图像的内容的镶嵌。
15.根据权利要求10所述的系统,其中生成所述位移三维网格包括:
利用所述第二神经网络,基于所述二维图像的视点来确定所述二维图像的所述估计的相机参数;以及
根据所述三维网格的所述估计的相机参数,通过修改所述三维网格的顶点的位置来生成所述更新的镶嵌。
16.根据权利要求10所述的系统,其中所述操作还包括:
响应于修改所述二维图像的请求来修改所述位移三维网格;以及
响应于修改所述位移三维网格而生成修改的二维图像。
17.一种非暂态计算机可读介质,包括指令,所述指令在由处理设备执行时,使所述处理设备执行操作,所述操作包括:
由至少一个处理器基于视差估计值确定与二维图像的像素相对应的密度值,其中所述视差估计值利用第一神经网络而被生成;
由所述至少一个处理器根据与所述二维图像的所述像素相对应的所述密度值,对所述二维图像中的多个点进行采样;
由所述至少一个处理器基于在所述二维图像中被采样的所述多个点生成三维网格;以及
由所述至少一个处理器利用第二神经网络,基于所述二维图像的估计的相机参数来生成位移三维网格。
18.根据权利要求17所述的非暂态计算机可读介质,其中确定所述密度值包括:
确定表示所述二维图像的深度值的二阶导数的矩阵;
确定所述矩阵的对角线的绝对值;
利用卷积运算基于所述绝对值生成平滑值;以及
根据预定阈值截断所述平滑值。
19.根据权利要求17所述的非暂态计算机可读介质,其中:
对所述多个点进行采样包括根据松弛算法在多次迭代中对所述多个点进行采样,所述松弛算法基于所述密度值向镶嵌单元的中心迭代地移动采样点;以及
生成所述三维网格包括利用狄洛尼Delaunay三角剖分,根据所述采样点生成镶嵌。
20.根据权利要求17所述的非暂态计算机可读介质,其中生成所述位移三维网格包括:
基于与所述二维图像相对应的估计的相机位置来确定所述三维网格的顶点的位移;以及
通过根据所述三维网格的所述顶点的所确定的所述位移修改所述三维网格的所述顶点的位置以包括深度位移,生成所述位移三维网格。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/055,594 | 2022-11-15 | ||
US18/055,594 US20240161320A1 (en) | 2022-11-15 | 2022-11-15 | Generating adaptive three-dimensional meshes of two-dimensional images |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118052954A true CN118052954A (zh) | 2024-05-17 |
Family
ID=91023701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311114951.7A Pending CN118052954A (zh) | 2022-11-15 | 2023-08-31 | 生成二维图像的自适应三维网格 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240161320A1 (zh) |
CN (1) | CN118052954A (zh) |
AU (1) | AU2023229535A1 (zh) |
DE (1) | DE102023124586A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240161366A1 (en) * | 2022-11-15 | 2024-05-16 | Adobe Inc. | Modifying two-dimensional images utilizing three-dimensional meshes of the two-dimensional images |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460214B2 (en) | 2017-10-31 | 2019-10-29 | Adobe Inc. | Deep salient content neural networks for efficient digital object segmentation |
US11094083B2 (en) | 2019-01-25 | 2021-08-17 | Adobe Inc. | Utilizing a critical edge detection neural network and a geometric model to determine camera parameters from a single digital image |
-
2022
- 2022-11-15 US US18/055,594 patent/US20240161320A1/en active Pending
-
2023
- 2023-08-31 CN CN202311114951.7A patent/CN118052954A/zh active Pending
- 2023-09-12 DE DE102023124586.4A patent/DE102023124586A1/de active Pending
- 2023-09-14 AU AU2023229535A patent/AU2023229535A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2023229535A1 (en) | 2024-05-30 |
DE102023124586A1 (de) | 2024-05-16 |
US20240161320A1 (en) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2080167B1 (en) | System and method for recovering three-dimensional particle systems from two-dimensional images | |
US11257298B2 (en) | Reconstructing three-dimensional scenes in a target coordinate system from multiple views | |
Cheng et al. | Robust algorithm for exemplar-based image inpainting | |
US7657060B2 (en) | Stylization of video | |
US20240161406A1 (en) | Modifying two-dimensional images utilizing iterative three-dimensional meshes of the two-dimensional images | |
Li et al. | Detail-preserving and content-aware variational multi-view stereo reconstruction | |
US20210142577A1 (en) | Systems and methods for selective image compositing | |
EP3756163B1 (en) | Methods, devices, and computer program products for gradient based depth reconstructions with robust statistics | |
Hasinoff et al. | Boundary matting for view synthesis | |
Luo et al. | A disocclusion inpainting framework for depth-based view synthesis | |
CN118052954A (zh) | 生成二维图像的自适应三维网格 | |
CN118052828A (zh) | 利用二维图像的分割三维对象网格修改二维图像 | |
Lukasczyk et al. | Voidga: A view-approximation oriented image database generation approach | |
Iizuka et al. | Efficient depth propagation for constructing a layered depth image from a single image | |
Assa et al. | Diorama construction from a single image | |
US20240161366A1 (en) | Modifying two-dimensional images utilizing three-dimensional meshes of the two-dimensional images | |
Liu et al. | Fog effect for photography using stereo vision | |
CN115375847A (zh) | 材质恢复方法、三维模型的生成方法和模型的训练方法 | |
US20220206676A1 (en) | Modifying drawing characteristics of digital raster images utilizing stroke properties | |
Pintus et al. | A Streaming Framework for Seamless Detailed Photo Blending on Massive Point Clouds. | |
US20230360327A1 (en) | Generating three-dimensional representations for digital objects utilizing mesh-based thin volumes | |
Schwärzler | Advances in the multimodal 3D reconstruction and modeling of buildings | |
CN115439314A (zh) | 一种风格化方法、设备及存储介质 | |
CN116228940A (zh) | 基于拓扑结构匹配动画骨骼的方法、装置及存储介质 | |
Lee et al. | 3D modeling using hierarchical feature point and spatio-temporal relationship |
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 |