CN116917946A - 提供临时纹理应用以增强3d建模的方法和*** - Google Patents
提供临时纹理应用以增强3d建模的方法和*** Download PDFInfo
- Publication number
- CN116917946A CN116917946A CN202180094702.9A CN202180094702A CN116917946A CN 116917946 A CN116917946 A CN 116917946A CN 202180094702 A CN202180094702 A CN 202180094702A CN 116917946 A CN116917946 A CN 116917946A
- Authority
- CN
- China
- Prior art keywords
- image
- model
- images
- image set
- textured
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000006870 function Effects 0.000 claims description 70
- 238000002156 mixing Methods 0.000 claims description 45
- 238000009877 rendering Methods 0.000 claims description 12
- 230000005855 radiation Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 230000001537 neural effect Effects 0.000 claims description 6
- 238000003062 neural network model Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 13
- 239000000203 mixture Substances 0.000 description 6
- 235000015220 hamburgers Nutrition 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 235000012020 french fries Nutrition 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000004579 marble Substances 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010191 image analysis Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000002834 transmittance Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004313 glare Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- 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
-
- 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
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Image Analysis (AREA)
Abstract
***和方法涉及生成第一图像集的三维(3D)模型。第一图像集(例如,输入图像集)对应于进行3D建模的对象的不同视角。从第一图像集生成体积密度函数。从体积密度函数和预定义的颜色函数生成第二图像集(例如,纹理图像集)。将第一图像集与第二图像集混合以生成第三图像集(例如,具有临时纹理的图像集)。为了生成所述3D模型,从第三图像集生成3D表面模型。此外,从第一图像集生成所述3D表面模型的纹理图。计算***被配置为渲染所述3D表面模型和所述纹理图以供显示。
Description
相关申请的交叉引用
N/A
关于联邦赞助的声明研究或开发
N/A
背景技术
计算机图形作为一个或多个图像在显示器上呈现给用户。这些图像可以从表示特定场景的三维(3D)模型生成。3D模型可以在形状、大小、纹理和其他视觉参数方面在数学上定义一个或多个对象。另外,3D模型可以定义不同的对象如何相对于3D模型中的其他对象在空间上定位。3D模型可以被格式化为各种数据结构或文件并加载到存储器中。一旦生成,计算设备就可以渲染3D模型的一个或多个图像以供显示。图像可以由相对于3D模型的特定视角、缩放和/或位置来表征。可能存在用于生成和格式化3D模型的各种技术。
附图说明
参考以下结合附图的详细描述,可以更容易地理解根据本文描述的原理的示例和实施例的各种特征,其中相同的附图标记表示相同的结构元素,并且在附图中:
图1例示了根据与本文描述的原理一致的实施例的用于将物理对象转换为三维(3D)模型的过程。
图2A和图2B例示了根据与本文描述的原理一致的实施例的用于对具有无纹理区域的对象进行建模的失败情况。
图3A和图3B例示了根据与本文描述的原理一致的实施例的生成3D模型的示例。
图4例示了根据与本文描述的原理一致的实施例的应用临时纹理的示例。
图5A和图5B例示了根据与本文描述的原理一致的实施例的通过使用临时纹理来改进3D模型的示例。
图6例示了根据与本文描述的原理一致的实施例的生成3D模型的***和方法的流程图。
图7是描绘根据与本文描述的原理一致的实施例的生成并渲染3D模型以供显示的计算设备的示例图示的示意性框图。
某些示例和实施例具有作为上述附图中所示的特征的补充和替代之一的其他特征。下面参考上述附图详细描述这些和其他特征。
具体实施方式
根据本文描述的原理的示例和实施例提供了用于改进从输入图像集生成的三维(3D)模型的技术。特别地,实施例涉及提供一种更可靠的方式来创建具有无纹理区域(例如,具有高颜色均匀性、具有光泽的表面)的对象的3D模型。当输入图像具有这种无纹理区域时,可能难以跨不同视角跟踪和关联那些区域的点。这导致较低质量的关键点数据,从而创建不完整或失真的3D重构结果。为了解决这个问题,实施例涉及将临时纹理应用于这些无纹理区域以计算3D模型的表面。建模的表面将被改进,因为临时纹理创建了跟踪跨不同视图的公共点的能力。此外,当从改进的表面模型创建纹理图时,原始图像被使用。当生成所述纹理图时,重用原始纹理排除临时纹理。
在一些实施例中,预训练的神经网络可以用于在应用临时纹理之前以体积密度函数编码对象的几何形状。这允许在开发完整的表面模型之前并且在运行整个重构管线之前将临时纹理应用于对象表面。在一些实施例中,生成神经辐射场(NeRF)模型来创建定义3D模型的体积密度特性的体积密度模型。预定义的颜色函数应用伪随机纹理来创建具有与输入图像集相同的体积密度的纹理化图像。通过以仅将纹理应用于无纹理区域的方式将输入图像集与纹理化图像混合来应用临时纹理。
图1例示了与本文描述的原理一致的用于将物理对象转换为3D模型的过程。图1描绘了图像捕捉过程103。图像捕捉过程103可以在工作室或任何其他物理环境中进行。目标是使用一个或多个相机109在视觉上捕捉对象106。一个或多个相机109可从不同视角捕捉对象106的图像。在一些情况下,不同视图可以至少部分地重叠,从而捕捉对象106的不同面元。因此,图像捕捉过程103将占据物理空间的对象106转换成图像集112。图像集112可以被称为输入图像集,因为它被用作使用3D建模过程115生成3D模型的输入。图像集112可以包括在变化的视角下视觉地表示对象106的多个图像。图像集112可以被格式化并以各种图像格式(诸如例如,位图格式或光栅格式)存储在存储器中。
3D建模过程115是将图像集112转换成3D模型114的计算机实施的过程。3D建模过程115可以被实现为可由处理器执行的软件程序、例程或模块。3D建模过程115可以访问存储器以检索图像集112并生成对应的3D模型114。3D建模过程115更多地将3D模型114作为文件或其他数据格式存储在存储器中。
3D建模过程115可以识别图像集112中的至少一个图像子集共有的关键点。在本文中,“关键点”被定义为对象106的出现在图像集中的两个或更多个图像中的点。例如,可以在图像集112中的若干图像当中捕捉对象106的特定角。当在不同视角下捕捉图像集112时,该特定角落可以在图像集112中具有变化的位置。3D建模过程115可以将特定角识别为许多关键点中的一个以将对象106重构为3D模型114。
3D模型114可以被存储为表示对象106的一个或多个计算机文件或数据格式。3D模型114可以包括3D表面模型121和纹理图124。3D表面模型121可以是表示对象106的表面几何形状的文件(或文件的一部分)。因此,表面几何形状编码对象106的各种特征的轮廓、形状和空间关系。3D表面模型121可以包括对对象106的表面建模的网格。网格可以由具有三维坐标的各种三角形(或其他多边形)形成。这些多边形可以铺设为接近对象106的表面的非重叠几何形状。在其他实施例中,可以使用(诸如球体、立方体、圆柱体等)的较小3D形状的组合来构建3D表面模型121。
纹理图124包含被映射到由3D表面模块指定的表面几何形状定义的各个点上的纹理信息。纹理图可以表示应用于3D模型114的3D表面模型121的颜色、阴影和图形图案。因此,纹理图124定义建模对象106的视觉外观。3D表面模型121的每个表面是可以由一个或多个点定义的区域。纹理图124可以是具有映射到3D表面上的坐标的2D图像。除了3D表面模型121和纹理图124之外,3D模型114可以包括其他信息(未示出)。例如,3D模型114可以包括诸如场景信息的信息。场景信息可以包括关于光源、阴影、眩光等的信息。
可以出于各种目的生成3D模型114。至少,它们可以被渲染用于显示,使得观看者可以看到3D建模对象106的图形表示。应用可以构建或以其他方式加载3D模型114以用于各种目的。应用可以通过应用表示3D模型的虚拟视角的虚拟相机来计算3D模型114的一个或多个视图。虚拟相机的位置、缩放、焦点或定向可以通过用户输入来改变。用户输入可以包括通过点击或拖动光标、按下方向按钮、将用户的物理位置转换为3D模型内的虚拟位置等来通过3D模型114进行导航。
一旦确定了3D模型的观看者,应用就可以将3D模型114转换成将窗口显露到3D模型114中的一个或多个图像。如上所述,窗口可以由具有一组坐标、视角、缩放、焦距、定向等的虚拟相机定义。在一些实施例中,渲染图像可以包括一个或多个多视图图像。多视图图像具有多个视图,其中每个视图对应于不同的视图方向。视图可以同时渲染(或被感知为同时渲染)以供由多视图显示器显示。在这方面,多视图图像可以是3D图像或被配置用于光场格式的图像。图像还可以是在2D显示器上渲染的2D图像。
图2A和图2B例示了根据与本文描述的原理一致的实施例的用于对具有无纹理区域的对象进行建模的失败情况。区域可以包括像素或相邻像素的集群。图2A描绘了由若干对象组成的场景127。对象是指占据3D空间或可以被建模为3D对象的某物。场景是指一个或多个对象。在该示例中,场景127包括各种对象,诸如汉堡包、薯条和白板。可以使用例如上面关于图1讨论的操作从场景127生成3D模型。在这方面,可以生成表面几何形状和纹理图,以在汉堡包位于由薯条包围的白板上时对汉堡包进行建模。
将该场景127建模为3D模型可能导致关于重构白板的挑战。白板主要由无纹理区域组成。“无纹理”区域或“无纹理”表面是图像的一部分,该部分具有高颜色均匀性或一致的光泽度,使得几乎没有颜色变化。无纹理区域可以在不同的视角上看起来相同。汉堡包和薯条具有足够的纹理以允许3D建模过程识别在不同角度上的关键点。例如,可以跨不同视图跟踪汉堡包或薯条的颜色或角。然而,白板在不同的视角上看起来几乎相同,因为它是无纹理的。可能难以从白板生成足够的关键点数据。场景127的3D模型可能导致白板扭曲或变形。因此,当对像例如图2A的场景127的场景进行建模时,无纹理区域可能导致失败情况。
图2B提供了当准确地建模对象时无纹理区域可能如何引起失败的更一般示例。在第一视图130a和第二视图130b中捕捉对象。两个视图130a、130b描绘了对象的不同的、部分重叠的视角。物体的第一区域133是纹理化的,而物体的第二区域135是无纹理的。例如,第一区域133可以包括颜色变化、图案、颜色辐射、阴影或其他程度的像素值变化。第二区域可以包括大致均匀的颜色变化、没有图案、没有阴影或其他均匀的像素变化。对于第一区域133,可以相对容易地识别一对匹配的关键点136。例如,第一区域133的纹理允许3D建模过程在对象上的点被呈现在不同的重叠视图130a、130b中时跟踪对象上的点。图2B示出了在相对于相同对象的不同视图的不同位置处的第一区域的匹配关键点136。对于第二区域135,没有纹理使得难以检测第一视图130a和第二视图130b之间的关键点。图2B示出了不匹配的关键点139。因此,可能难以准确地计算对象的第二区域135的表面几何形状。
图3A和图3B例示了根据与本文描述的原理一致的实施例的生成3D模型的示例。图3A示出了如何处理对象的输入图像以生成具有临时纹理的图像。临时纹理存在于3D空间中,以提高生成跨对象的不同视图的关键点数据的能力。图3B示出了如何从具有临时纹理的图像生成3D模型。具体地,3D模型由3D表面模型和纹理图组成。具有临时纹理的图像提供更准确的3D表面模型,而原始输入图像用于生成纹理图,从而从3D模型的最终渲染中排除临时纹理。
图3A和图3B中讨论的操作和数据可以由存储在存储器中并由处理器执行的一组指令来执行。例如,图3A和图3B中描述的功能可以由软件应用或其他计算机可执行代码实施,并且图3A和图3B中描述的数据可以被存储或加载在计算机存储器中。
图3A开始于接收输入图像202,输入图像202形成对应于对象的不同视角的一组图像。输入图像202可以是与图1中描述的图像集类似的图像集112。例如,输入图像202可以描绘对象的不同视图,并且可以从诸如图1中描述的图像捕捉过程103生成。在一些情况下,输入图像202可以被称为第一图像的集合或第一图像集。
输入图像202由执行图像配准的图像配准模块205接收。图像配准是确定每个图像的坐标的过程。例如,图像配准确定输入图像202中的图像的相对位置,以推断视图方向和定向。该数据被记录为相机姿态208。可以为输入图像202中的每个图像识别相机姿态208。相机姿态可以是元素矩阵,其中元素指示图像的X、Y和Z坐标以及图像的角度方向。换句话说,每个相机姿态208包括指示对应于图像的视图(例如,相机)的位置及定向的信息。因此,输入图像202中的每个图像具有由图像配准模块205生成的对应相机姿态208。在本文中,“相机姿态”被定义为指示对象的视点的位置和定向的信息。
接下来,图3A中示出了生成体积密度模型的体积密度模型生成器211。体积密度模型可以是将一组输入坐标和定向转换成体积密度值(例如,不透明度、透射率、透明度等)和颜色的体积密度函数214。例如,体积密度函数214可以符合或类似于以下等式(1):
F(x,y,z,θ,φ)=(σ,color) (1)
其中F是体积密度函数214,其接收输入变量x、y、z、θ和φ并且输出变量σ和color。变量x是沿x轴的坐标,变量y是沿y轴的坐标,变量z是沿z轴的坐标。因此,变量x、y、z是特定输入光线的位置的空间坐标。变量θ是光线在x轴和y轴之间的角度,变量是视图在z轴和xy平面之间的角度。因此,变量θ和φ定义光线在3D空间中的方向。这些输入变量一起在数学上定义光线在3D空间中的定向。输出σ是特定点处的不透明度(例如,体积密度)。这可以是3D空间中特定像素对于特定输入光线的透射率。当σ处于最大值(例如,1)时,存在出售像素,并且当σ处于最小值(例如,0)时,不存在像素。在最大值和最小值之间是具有一定透明度的像素。color变量表示像素相对于输入光线的颜色(在存在一个的程度上)。color变量可以是RBG(红色、绿色、蓝色)格式,使得其具有红色、绿色和蓝色像素值。
体积密度函数214可以被称为辐射场函数,因为它输出像素对于给定输入光线的特性。因此,可以通过提供对应于视图窗口的一组输入光线来从体积密度函数214构建图像。视图窗口可以是3D空间中使得其面向对象的平坦矩形。视图窗口可以被定义为由窗口界定的一组光线。光线可以在沿着x、y和z轴测距时具有相同的方向(例如,变量θ和φ)。这被称为“光线行进”,其中一组光线被输入到体积密度函数214中以构建构成对应视图的像素。因此,体积密度模型包括被配置为生成对应于输入相机姿态的至少一组体积密度值的函数。
可以通过训练神经网络模型来生成体积密度函数214。在一些实施例中,神经网络模型包括神经辐射场(NeRF)模型。在本文中,“NeRF模型”被定义为通过使用神经网络估计场景几何形状来生成的体积模型,该神经网络用一组图像训练以使用相对小的一组图像来预测对象在连续视图上的不透明度和颜色。最终,NeRF模型包括使用训练数据和输入图像202使用神经网络生成的体积密度函数214。
具体地,体积密度模型生成器211(例如,NeRF模型生成器)接收输入图像202以及对应的相机姿态208以生成体积密度函数214(例如,上面讨论的函数F)。例如,体积密度模型生成器211在没有已知的相机姿态208的情况下从输入图像202生成体积密度函数214,使得体积密度函数214可以预测在相机姿态208之间或之外的视角的像素值(和整个图像)。体积密度函数214可以基于输入的相机姿态或输入光线输出至少一个或多个不透明度值或一些其他体积密度值。
实施例涉及生成纹理化图像220的渲染器217。具体地,渲染器217从体积密度函数214和预定义的颜色函数223生成纹理化图像220(例如,第二图像集)。使用预定义的颜色函数223,渲染器217应用伪随机纹理,同时保持3D建模对象的体积密度。换句话说,如果体积密度函数214从输入光线或输入相机姿态输出特定颜色(例如,函数F的color变量),则渲染器217用由预定义的颜色函数223生成的颜色替换颜色值。这可以被称为伪随机颜色或伪随机纹理,因为它看起来被任意地应用于对象的3D模型,同时仍然符合某个确定性颜色函数。颜色函数被认为是预定的,因为它可以独立于输入图像202的颜色,使得它在处理输入图像202之前被确定。预定颜色函数可以包括正弦函数,并且可以以伪随机方式周期性地引入噪声来创建伪随机纹理。
伪随机颜色提供由预定义颜色函数223定义的伪随机纹理。伪随机纹理可以是大理石纹理、交叉影线纹理、之字形纹理或在小区域内具有实质上高的颜色变化或像素值变化的任何其他纹理。例如,将大理石纹理应用于图2B的场景将导致场景127具有在具有薯条的盘子上的汉堡包的形状和表面轮廓,同时具有如同整个场景是由大理石雕刻的颜色或纹理。此外,在3D空间中应用该伪随机纹理,使得改变场景的视角将导致跨视角跟踪伪随机纹理。
渲染器217可以从相同的相机姿态208生成纹理化图像220。渲染器217还可以使用体积密度函数214预测、外推或内插新视图处的体积密度值的能力从附加相机姿态生成纹理化图像220。渲染器217可以执行光线行进以将输入(例如,位置坐标、方向等)提供到体积密度函数214中,以生成对应输入的体积密度值(例如,不透明度)。渲染器217还可以针对每个输入使用预定义的颜色函数223来生成伪随机颜色值。纹理化图像220可以存储在存储器中。纹理化图像220类似于输入图像202,但是替代地,应用伪随机纹理,同时保留由输入图像202捕捉的对象的体积密度。
接下来,图3A示出了将第一图像集(例如,输入图像202)与第二图像集(例如,纹理化图像220)混合以生成第三图像集(例如,具有临时纹理224的图像)的操作。例如,混合可以是选择性的,使得输入图像202的无纹理的区域与纹理化图像220的对应区域混合。结果是具有临时纹理224的图像,其中临时纹理仅应用于输入图像202的无纹理的区域。具有临时纹理224的图像中的剩余区域看起来像输入图像202。
具体地,无纹理区域检测器226可以接收输入图像202以生成无纹理区域数据229。无纹理区域检测器226可以执行各种图像分析操作以检测无纹理区域。可以对输入图像的逐像素位图执行这些图像分析操作。在一些实施例中,无纹理区域检测器226被配置为通过对输入图像202应用角点检测操作来识别输入图像202的无纹理区域。不与一个或多个角相邻或不靠近任何边缘的像素或区域被认为是无纹理的。换句话说,特定像素或区域的角或边缘存在的程度对应于该像素或区域是否是无纹理的。具有低程度的角或边缘的像素或区域被认为是无纹理的,而具有高程度的角或边缘的像素或区域是纹理化的。
在其它实施例中,无纹理区域检测器229可以分析输入图像202上的包括阈值像素值方差内的像素的任何区域。例如,如果像素值方差低于阈值,则区域被认为是无纹理区域。在这方面,无纹理表面的区域包括阈值像素值方差内的像素。像素值变化是指像素值(例如,RGB标度内的颜色)在相邻像素之间变化的程度。低像素值方差指示在特定区域上的均匀颜色。高颜色均匀性是无纹理区域的指示。无纹理区域数据229指示每个输入图像202的无纹理区域的位置。举例来说,无纹理区域数据229可以指示输入图像202中的每个像素是否在无纹理区域内。阈值像素值方差建立被认为是无纹理或纹理化的表面的像素值方差的量。
在一些实施例中,无纹理区域检测器226确定输入图像202的特定像素或区域无纹理的程度。无纹理区域数据229可以是每个输入图像202的位图,其中位图像素值指示输入图像202中的对应像素是无纹理区域的一部分的程度。这将参考图4更详细地讨论。
无纹理区域检测器226可以执行包括分配与输入图像202的无纹理表面的区域相对应的混合权重的操作。无纹理区域数据229可以包括可以在逐像素的基础上分配的混合权重。混合权重是输入图像202中像素纹理的程度或数量的函数。因此,根据像素位置是否在输入图像202的无纹理区域内来分配混合权重。例如,如果输入图像202中的像素在高纹理区域内,则像素被分配低混合权重。如果输入图像202中的像素在无纹理区域内,则像素被分配高混合权重。因此,像素的混合权重对应于与该像素相关联的纹理的量。如上所述,可以基于相邻像素的像素值均匀性来量化与像素相关联的纹理的量。
图像混合器232被配置为将第一图像集(例如,输入图像202)与第二图像集(例如,纹理化图像220)混合以生成第三图像集(例如,具有临时纹理224的图像)。图像混合器232可以执行逐像素混合操作,其中第一图像中的像素和(具有对应位置的)第二图像中的像素具有混合或以其它方式加在一起的相应像素值。此外,混合器可以为每个像素应用混合权重。例如,混合器可以根据以下等式(2)混合像素:
Blended pixel value=A*B+(1-A)*C (1)
其中A是在0和1之间的混合权重,B是第一图像中的像素的像素值,并且C是第二图像中的对应像素的像素值。作为示例,混合权重A大于0.5,则所得到的混合像素值将比第二图像中的对应像素更多地趋向第一图像中的像素加权。一的混合权重将得到第一图像中的相同像素,而忽略第二图像中的对应像素。零的混合权重将得到第二图像中的相同像素,而忽略第一图像中的对应像素。
输入图像202中的无纹理区域将产生趋向纹理化图像220加权的混合权重,而输入图像202的纹理化区域将产生趋向输入图像202加权的混合权重。因此,可以选择性地混合具有临时纹理224的图像,以将纹理人工引入最初无纹理的输入图像202。
图3B示出了如何从输入图像202和具有临时纹理224的对应图像生成3D模型。具有临时纹理的图像被提供给图像配准模块205,以识别具有临时纹理224的图像的相机姿态241。由于临时纹理的引入,当与输入图像202相比时,具有临时纹理224的图像更适合于准确地确定关键点。纹理可以被认为是“临时的”,因为它们最终被排除在3D模型的纹理图之外。然而,可以使用临时纹理来改进关键点检测和匹配,以用于在无纹理区域上获得足够数量的关键点。因此,具有临时纹理224的图像允许更准确的表面几何建模。
接下来,三角测量模块244生成3D点数据247。三角测量模块使用从图像配准模块205接收的关键点和相机姿态241来识别多个3D点。例如,通过使用三角测量,基于不同相机姿态处的匹配关键点的位置来确定3D点。每个关键点对应于由关键点的相机姿态241的方向定义的光线。这些光线对于所有匹配的关键点的会聚点得到3D点的位置。3D点数据247包括由具有临时纹理224的图像表示的对象的3D空间中的各个点。使用填充在要不将是无纹理的区域中的临时纹理允许改进的3D点数据247。3D点数据247可以包括x-y-z坐标系中的坐标,其对应于具有临时纹理224的图像中表示的对象的表面。
表面重构模块250可以将3D点数据转换成3D表面模型253,该3D表面模型253对具有临时纹理224的图像中表示的对象的表面几何形状进行编码。换句话说,表面重构模块250根据3D点数据247的3D点重构对象的表面。这可以类似于图1的3D表面模型121。3D表面模型253可以包括连接3D点数据237中的各种3D点以对对象的表面建模的网格。3D表面模型253可以被存储为构成3D模型的单独文件或文件的一部分。在这方面,表面重构模块250从第三图像集(例如,具有临时纹理224的图像)生成3D表面模型253。
接下来,纹理映射模块256为3D表面模型253生成纹理图259。纹理图259可以类似于图1的纹理图124。从第一图像集(例如,输入图像202)生成3D表面模型的纹理图259。因此,在生成纹理图259时,临时纹理被排除在考虑之外,同时它们被用于生成3D表面模型253的表面几何形状。
最终,从由输入图像202表示的对象生成3D模型。3D模型具有通过使用将临时纹理应用于输入图像202的至少无纹理区域来改进的3D表面模型。3D模型还包括从输入图像202生成的纹理图259,其不包括临时纹理。
3D模型可以由3D渲染模块262渲染以供显示。3D渲染模块262可以从3D模型生成单视图图像或多视图图像。在多视图渲染的上下文中,3D渲染模块262可以同时将对象的一组视图渲染为多视图图像。3D渲染模块262可以使用图形驱动器来将3D模型渲染为一个或多个视图。
图4示出了根据与本文描述的原理一致的实施例的应用临时纹理的示例。具体地,图4示出了上面关于图3A和3B讨论的输入图像202中的一个。输入图像202描绘了具有纹理化区域270和无纹理区域273的对象的一个视图。纹理化区域270被示出为具有指示存在高颜色变化(例如,纹理)的对角线,这增加了跨对象的不同视图检测关键点的能力。无纹理区域273被示出为不具有指示存在可忽略的颜色变化(例如,没有纹理)的图案,这降低了跨对象的不同视图检测关键点的能力。
根据上面关于图3A讨论的操作,从输入图像202生成纹理化图像220。保持物体的体积密度,使得在生成纹理化图像220时整体表面和形状不会改变。然而,应用预定义的颜色函数来生成全局应用于对象的伪随机纹理276。因此,纹理化图像220中的对象采用如垂直虚线所示的新的伪随机纹理276,同时具有输入图像202的相同形状279(例如,表面或轮廓)。
图4还示出了选择性地混合输入图像202和纹理化图像220以生成具有临时纹理224的图像。具体地,通过分析输入图像202以确定无纹理的区域来生成无纹理区域数据229(在实施例中示出为位图掩码)。在图4的示例中,无纹理区域数据229是具有输入图像202和纹理化图像220的相同像素级维度的位图掩模。该位图掩码具有分别对应于输入图像202和纹理化图像220中的像素对的像素。例如,输入图像202的最左上像素和纹理化图像220的最左上像素对应于位图掩码的最左上像素。每个像素值指示相应的混合权重。例如,高像素值(例如,更白或更亮的像素)指示偏向输入图像202的混合权重,而低像素值(例如,更黑或更暗的像素)指示偏向纹理化图像220的混合权重。位图掩码具有较黑像素的第一区域282。该第一区域282映射到输入图像202的无纹理区域273。可能存在也映射到输入图像的无纹理区域的其他较小区域285。可以通过分析目标像素周围的颜色变化来确定位图掩码。目标像素周围的颜色变化程度确定目标像素是纹理化区域还是无纹理区域的一部分和/或目标像素形成无纹理区域的程度。目标像素被分配如位图掩码中所示的像素值。像素值以图形方式表示为特定阴影(例如,白色、黑色、灰色等)。像素值对应于混合权重。在一些实施例中,为了确定像素值,可以对每个像素执行角点检测操作,其中存在角的程度对应于像素值。
位图掩码可以用于执行输入图像202和纹理化图像220的加权混合。因此,较黑区域(例如,第一区域282或较小区域285)内的像素将采用更接近纹理化图像220的对应像素的像素值。较白区域(除了第一区域282或较小区域285之外的区域)内的像素将采用更接近输入图像202的对应像素的像素值。
具有临时纹理224的图像具有输入图像202的原始纹理区域,同时在无纹理区域273的位置处具有纹理化图像220的伪随机纹理276。无纹理区域273的位置由位图掩码指定为第一区域282。因此,具有临时纹理224的图像具有临时纹理288,该临时纹理288通过选择性地将输入图像202与纹理化图像220混合来应用。
图5A和图5B例示了根据与本文描述的原理一致的实施例的通过使用临时纹理来改进3D模型的示例。图5A描绘了具有被示出为第一视图224a和第二视图224b的临时纹理的图像。在各种不同视图224a、224b中表示的对象具有原始纹理化区域290。从用于生成第一视图224a和第二视图224b的原始输入图像(例如,图3A和图3B的输入图像202)维持原始纹理化区域290。另外,原始输入图像具有被修改为包括临时纹理292的无纹理区域。可以通过选择性地将输入图像与纹理化图像混合来应用临时纹理292,如图3A中所讨论的。图5A示出了临时纹理的使用如何提高检测更多关键点并将它们匹配为跨不同视图224a、224b跟踪的匹配关键点294的能力。关键点数据质量的增加提供了改进的3D表面模型(例如,图3B的3D表面模型253)。
图5B描绘了从改进的3D表面模型(例如,图3B的3D表面模型253)以及直接从包括原始纹理化区域或无纹理区域的输入图像生成的纹理图(例如,图3B的纹理图259)生成的第一渲染视图297a和第二渲染视图297b。生成纹理图以保留原始纹理化区域290,同时排除临时纹理292,得到原始无纹理表面298。因此,从具有无纹理区域的输入图像适当地重构3D模型。可以从该3D模型渲染经渲染的视图297a、297b,其保留输入图像的原始颜色和纹理。
图6例示了根据与本文描述的原理一致的实施例的生成三维(3D)模型的***和方法的流程图。图6的流程图提供了由执行指令集的计算设备实施的不同类型的功能的一个示例。作为替代,图6的流程图可以被视为描绘根据一个或多个实施例的在计算设备中实施的方法的元素的示例。
在项目304处,计算设备从第一图像集生成体积密度函数(例如,图3A的体积密度函数214)。第一图像集可以是从存储器接收的输入图像的集合(例如,图3A和图3B的输入图像202)。可以根据图像捕捉过程(例如,图1的图像捕捉过程103)生成第一图像集。第一图像集可以对应于对象的不同视角。例如,输入图像集中的每个图像表示对象的不同视图。体积密度函数可以确定对应于输入相机姿态的一组体积密度值。在这方面,体积密度函数是在第一图像集中表示的对象的重构。输出可以是基于输入相机姿态(例如,具有特定位置和方向的观察窗口)的一组体积密度值(例如,不透明度)。
计算***可以使用神经网络模型来生成体积密度函数。计算***可以包括下面关于图7讨论的计算设备,或者包括下面关于图7讨论的计算设备的至少一些组件。例如,神经网络模型可以包括神经辐射场(NeRF)模型。可以通过识别第一图像集的多个相机姿态并从相机姿态生成体积密度函数来生成神经网络模型。举例来说,图像配准模块(例如,图3A的图像配准模块205)可以被用来识别第一图像集中的每个图像的相机姿态。第一图像集可以具有至少一个无纹理区域。这可能导致相机姿态具有相对较低的准确度。
在项目307,计算设备从体积密度函数和预定义的颜色函数(例如,图3A的预定义的颜色函数223)生成第二图像集(例如,图3A的纹理化图像220)。渲染器可以用于将各种相机姿态输入到体积密度函数中以生成第二图像集。另外,预定义的颜色函数可以在生成第二图像集时应用伪随机纹理。预定义的颜色函数可以生成纹理化输出的颜色图案。因此,如果体积密度函数输出特定颜色,则预定义的颜色函数可以使用预定义的颜色覆盖输出颜色,以将纹理引入第二图像集,同时保留对象的表面几何形状。
接下来,计算设备将第一图像集与第二图像集混合以生成第三图像集(例如,具有临时纹理224的图像)。第三图像集可以保留第一图像集的原始纹理化区域,同时用生成的临时纹理替换第一图像集的无纹理区域。根据实施例,关于项目310和313描述了第一图像集和第二图像集的混合。
在项目310处,计算设备识别第一图像集的无纹理区域。这可以通过对第一图像集应用角点检测操作以确定区域是否是无纹理区域来完成。举例来说,可以通过在逐像素或逐区基础上对第一图像集应用角点检测操作来识别无纹理区。计算设备可以使用图像识别或神经网络来执行角点检测以识别由角点限定的区域。角是两个边缘的交点。如果无纹理区域包括阈值像素值方差内的像素,那么区域可以被视为无纹理区域。在这方面,与角或边缘相关联的像素或区域可以具有高像素值方差,而在很少或没有角/边缘内的像素或区域可以具有低像素值方差。
在一些实施例中,可以为第一图像集中的每个像素设置混合权重,其中混合权重指示像素是在无纹理区域中还是无纹理区域的一部分。混合权重可以对应于特定像素位置处的纹理程度。因此,计算设备可以分配指示像素是否是第一图像集的无纹理区域的至少一部分的混合权重。混合权重可以被格式化为位图掩码,使得混合权重在逐像素的基础上(例如,针对每个像素)被设置。
在项目313处,计算设备通过响应于识别无纹理区域来将第一图像集与第二图像集混合以生成第三图像集。例如,在除了无纹理区域之外的所有区域中,第三图像集类似于第一图像集。混合操作可以使用混合权重来指定无纹理区域的位置,如图4的示例中所示。因此,第三图像集采用趋向第一图像集加权的混合像素值(在相对于第一图像集存在纹理的区域中)或采用趋向第二图像集加权的混合像素值(在相对于第一图像集不存在纹理的区域中)。
在项目316处,计算设备从第三图像集生成3D表面模型(例如,图3B的3D表面模型253)。第三图像集被生成为不具有无纹理区域,因为它是第一图像集和第二图像集的混合。可以通过识别第三图像集的多个相机姿态来生成3D表面模型。并且图像配准过程可以确定相机姿态。因为第三图像集没有无纹理区域,所以其可以产生更准确的相机姿态。接下来,3D表面模型生成可能涉及使用多个相机姿态来识别第三图像集内的多个3D点。这可以通过执行沿着(如在特定视图中表示的)对象表面的点与对应的相机姿态的坐标之间的三角测量来完成。接下来,根据3D点重构对象的表面。这可能涉及生成近似物体的表面的网格。3D表面模型可以被格式化为包括没有任何纹理信息的表面几何形状。
在项目319处,计算设备从第一图像集生成3D表面模型的纹理图(例如,图3B的纹理图259)。通过直接使用第一图像集,可以将原始的无纹理区域映射到3D表面模型上。
在项目322处,计算设备渲染3D表面模型和纹理图以供显示。例如,3D表面模型和纹理图一起形成由第一图像集表示的对象的3D模型。计算设备可以将该3D模型渲染为对象的单个视图,或者渲染为多视图图像,该多视图图像包括对象在变化的视角下同时渲染的视图。因此,多视图图像可以至少提供从3D模型生成的对象的立体视图。
上面讨论的图6的流程图可以例示生成具有体现为指令集的功能的3D模型的***或方法。如果体现在软件中,则每个框可以表示包括用于实施指定的逻辑功能的指令的代码的模块、段或部分。指令可以以包括以编程语言编写的人类可读语句的源代码、从源代码编译的目标代码或包括可由合适的执行***(诸如处理器、计算设备)识别的数字指令的机器代码的形式体现。可以从源代码等转换机器代码。如果体现在硬件中,则每个块可以表示用于实施指定的逻辑功能的电路或多个互连电路。
尽管图6的流程图示出了特定的执行顺序,但是应当理解,执行顺序可以与所描绘的顺序不同。例如,两个或更多个框的执行顺序可以相对于所示的顺序被扰乱。此外,所示的两个或更多个框可以同时或部分同时执行。此外,在一些实施例中,可以跳过或省略一个或多个框,或者可以同时执行一个或多个框。
图7是描绘根据与本文描述的原理一致的实施例的生成并渲染3D模型以供显示的计算设备的示例图示的示意性框图。计算设备1000可以包括为计算设备1000的用户执行各种计算操作的组件的***。计算设备1000是计算***的示例。例如,计算设备100可以表示3D模型生成***的组件。计算设备1000可以是膝上型计算机、平板计算机、智能电话、触摸屏***、智能显示***、其他客户端设备、服务器或其他计算设备。计算设备1000可以包括各种组件,例如处理器1003、存储器1006、输入/输出(I/O)组件1009、显示器1012和潜在的其他组件。这些组件可以耦合到总线1015,总线1015用作本地接口以允许计算设备1000的组件彼此通信。虽然计算设备1000的组件被示出为包含在计算设备1000内,但是应当理解,至少一些组件可以通过外部连接耦合到计算设备1000。例如,组件可以经由外部端口、插座、插头或连接器从外部***到计算设备1000中或以其他方式与计算设备1000连接。
处理器1003可以包括中央处理单元(CPU)、图形处理单元(GPU)、执行计算处理操作的任何其他集成电路或其任何组合。处理器1003可以包括一个或多个处理核。处理器1003包括执行指令的电路。指令包括例如计算机代码、程序、逻辑或由(一个或多个)处理器1003接收和执行以执行体现在指令中的计算功能的其他机器可读指令。处理器1003可以执行指令以对数据进行操作。例如,处理器1003可以接收输入数据(例如,图像),根据指令集处理输入数据,并生成输出数据(例如,经处理的图像)。作为另一示例,处理器1003可以接收指令并生成用于后续执行的新指令。处理器1003可以包括用于实施图形管线以渲染由应用生成的图像或从3D模型导出的图像的硬件。例如,处理器1003可以包括一个或多个GPU核、向量处理器、缩放器进程或硬件加速器。
存储器1006可以包括一个或多个存储器组件。存储器1006在本文中被定义为包括易失性和非易失性存储器中的任一个或两者。易失性存储器组件是在断电时不保留信息的那些组件。易失性存储器可以包括例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、磁随机存取存储器(MRAM)或其他易失性存储器结构。可以使用易失性存储器来实施***存储器(例如,主存储器、高速缓存等)。***存储器是指可以临时存储用于快速读取和写入访问以辅助处理器1003的数据或指令的快速存储器。图像可以被存储或加载在存储器中以供后续访问。
非易失性存储器组件是在断电时保留信息的那些组件。非易失性存储器包括只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱动器、经由存储卡读取器访问的存储卡、经由相关联的软盘驱动器访问的软盘、经由光盘驱动器访问的光盘、经由适当的磁带驱动器访问的磁带。ROM可以包括例如可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或其他类似的存储器设备。存储存储器可以使用非易失性存储器来实施,以提供数据和指令的长期保留。
存储器1006可以指用于存储指令以及数据的易失性和非易失性存储器的组合。例如,数据和指令可以存储在非易失性存储器中并加载到易失性存储器中以供处理器1003处理。指令的执行可以包括例如编译程序、源代码或源代码,所述编译程序被翻译成可以从非易失性存储器加载到易失性存储器中然后由处理器1003运行的格式的机器代码,所述源代码被转换成合适的格式,诸如能够被加载到易失性存储器中以供处理器1003执行的目标代码,所述源代码由另一可执行程序解释以在易失性存储器中生成指令并由处理器1003执行。指令可以被存储或加载在存储器1006的任何部分或组件中,包括例如RAM、ROM、***存储器、存储装置或其任何组合。
虽然存储器1006被示出为与计算设备1000的其他组件分离,但是应当理解,存储器1006可以至少部分地嵌入或以其他方式集成到一个或多个组件中。例如,处理器1003可以包括板载存储器寄存器或高速缓存以执行处理操作。
I/O组件1009包括例如触摸屏、扬声器、麦克风、按钮、开关、拨号盘、相机、传感器、加速度计或接收用户输入或生成指向用户的输出的其他组件。(多个)I/O组件1009可以接收用户输入并将其转换成数据以存储在存储器1006中或由(多个)处理器1003处理。I/O组件1009可以接收由存储器1006或处理器1003输出的数据,并将它们转换成用户感知的格式(例如,声音、触觉响应、视觉信息等)。
特定类型的I/O组件1009是显示器1012。显示器1012可以包括多视图显示器、与2D显示器组合的多视图显示器或呈现图像的任何其他显示器。用作I/O组件1009的电容式触摸屏层可以在显示器内分层,以允许用户在同时感知视觉输出时提供输入。处理器1003可以生成被格式化为用于在显示器1012上呈现的图像的数据。处理器1003可以执行指令以在显示器上为用户呈现图像。
总线1015促进(多个)处理器1003、存储器1006、(多个)I/O组件1009、显示器1012和计算设备1000的任何其他组件之间的指令和数据的通信。总线1015可以包括地址转换器、地址解码器、结构、导电迹线、导线、端口、插头、插座和其他连接器,以允许数据和指令的通信。
存储器1006内的指令可以以实施软件栈的至少一部分的方式以各种形式体现。例如,指令可以体现为操作***1031、(多个)应用1034、设备驱动器(例如,显示器驱动器1037)、固件(例如,显示固件1040)或其他软件组件。操作***1031是支持计算设备1000的基本功能的软件平台,所述基本功能,诸如调度任务、控制I/O组件1009、提供对硬件资源的访问、管理功率以及支持应用1034。
应用1034在操作***1031上执行,并且可以经由操作***1031获得对计算设备1000的硬件资源的访问。在这方面,应用1034的执行至少部分地由操作***1031控制。应用1034可以是向用户提供高级功能、服务和其他功能的用户级软件程序。在一些实施例中,应用1034可以是用户在计算设备1000上可下载或以其他方式可访问的专用“app”。用户可以经由由操作***1031提供的用户界面启动应用1034。应用1034可以由开发者开发并且以各种源代码格式定义。应用1034可以使用多种编程或脚本语言来开发,例如C、C++、C#、Objective C、Swift、/>Perl、PHP、Visual/>Ruby、Go或其他编程语言。应用1034可以由编译器编译成目标代码或由解释器解释以供处理器1003执行。
设备驱动器(诸如例如,显示器驱动器1037)包括允许操作***1031与各种I/O组件1009通信的指令。每个I/O组件1009可以具有其自己的设备驱动器。可以安装设备驱动器,使得它们存储在存储装置中并加载到***存储器中。例如,在安装时,显示器驱动器1037将从操作***1031接收的高级显示指令转换为由显示器1012实施的较低级指令以显示图像。
固件(诸如例如,显示器固件1040)可以包括允许I/O组件1009或显示器1012执行低级操作的机器代码或汇编代码。固件可以将特定组件的电信号转换成更高级的指令或数据。例如,显示器固件1040可以通过调整电压或电流信号来控制显示器1012如何以低电平激活各个像素。固件可以被存储在非易失性存储器中并且直接从非易失性存储器执行。例如,显示固件1040可以体现在耦合到显示器1012的ROM芯片中,使得ROM芯片与计算设备1000的其他存储装置和***存储器分离。显示器1012可以包括用于执行显示器固件1040的处理电路。
操作***1031、(多个)应用1034、驱动器(例如,显示器驱动器1037)、固件(例如,显示固件1040)和潜在的其它指令集可以各自包括可由(多个)处理器1003或计算设备1000的其它处理电路执行以执行上面讨论的功能和操作的指令。尽管本文描述的指令可以体现在由如上所述的处理器1003执行的软件或代码中,但是作为替代,指令也可以体现在专用硬件或软件和专用硬件的组合中。例如,由上面讨论的指令执行的功能和操作可以被实施为采用多种技术中的任何一种或其组合的电路或状态机。这些技术可以包括但不限于具有用于在应用一个或多个数据信号时实施各种逻辑功能的逻辑门的离散逻辑电路、具有适当逻辑门的专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他组件等。
在一些实施例中,执行上面讨论的功能和操作的指令可以体现在非暂时性计算机可读存储介质中。例如,实施例涉及存储可执行指令的非暂时性计算机可读存储介质,所述可执行指令在由计算***(例如,计算设备1000)的处理器(例如,处理器1003)执行时使处理器执行上面讨论的各种功能,包括从输入图像集生成3D模型的操作。非暂时性计算机可读存储介质可以是或可以不是计算设备1000的一部分。指令可以包括例如可以从计算机可读介质获取并由处理电路(例如,处理器1003)执行的语句、代码或声明。已经在本文中定义了,“非暂时性计算机可读存储介质”被定义为可以包含、存储或维护本文描述的指令的任何介质,以供指令执行***(诸如例如,计算设备1000)使用或与指令执行***结合使用,并且还排除包括例如载波的暂时性介质。
非暂时性计算机可读介质可以包括许多物理介质中的任何一种,例如磁、光或半导体介质。合适的非暂时性计算机可读介质的更具体示例可以包括但不限于磁带、磁性软盘、磁性硬盘驱动器、存储卡、固态驱动器、USB闪存驱动器或光盘。此外,非暂时性计算机可读介质可以是随机存取存储器(RAM),包括例如静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)或磁随机存取存储器(MRAM)。另外,该非瞬态计算机可读介质可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或其他类型的存储器设备。
计算设备1000可以执行上述任何操作或实现上述功能。例如,上面讨论的流程图和过程流可以由执行指令和处理数据的计算设备1000执行。虽然计算设备1000被示出为单个设备,但是实施例不限于此。在一些实施例中,计算设备1000可以以分布式方式卸载指令的处理,使得多个计算设备1000一起操作以执行可以存储或加载在计算组件的分布式布置中的指令。例如,可以在结合计算设备1000操作的基于云的***中存储、加载或执行至少一些指令或数据。
因此,已经描述了从输入图像集生成3D模型的示例和实施例。这可以通过将由颜色函数生成的伪随机纹理应用于对象的体积密度模型来完成。这生成对象的纹理化版本(导致没有无纹理区域),使得对象保持其原始体积密度。从纹理化版本(或纹理化版本的混合版本)生成3D表面模型,同时从输入图像集生成纹理图。因此,3D模型具有与由输入图像集表示的对象相同的纹理,而其表面几何形状是从纹理化版本生成的。应当理解,上述示例仅仅是表示本文描述的原理的许多具体示例中的一些示例的说明。显然,本领域技术人员可以在不脱离由所附权利要求限定的范围的情况下容易地设计出许多其他布置。
Claims (20)
1.一种提供三维(3D)模型的计算机实施的方法,所述方法包括:
从第一图像集生成体积密度函数,所述第一图像集对应于对象的不同视角;
根据所述体积密度函数和预定义的颜色函数生成第二图像集;
将所述第一图像集与所述第二图像集混合以生成第三图像集;
从所述第三图像集生成3D表面模型;以及
从所述第一图像集生成所述3D表面模型的纹理图,
其中,所述3D表面模型和所述纹理图被配置为在显示器上渲染。
2.根据权利要求1所述的方法,其中,所述体积密度函数生成对应于输入相机姿态的一组体积密度值。
3.根据权利要求2所述的方法,其中,所述体积密度函数是包括神经辐射场模型的神经网络模型。
4.根据权利要求1所述的方法,其中,混合包括:
分配混合权重,所述混合权重指示像素是否是所述第一图像集的无纹理区域的一部分;以及
根据所述混合权重将所述第一图像集与所述第二图像混合。
5.根据权利要求4所述的方法,其中所述无纹理区域包括阈值像素值方差内的像素。
6.根据权利要求1所述的方法,还包括:
识别所述第一图像集的多个相机姿态;以及
从所述相机姿态生成所述体积密度函数。
7.根据权利要求1所述的方法,其中,生成所述第三图像集的所述3D表面模型包括:
识别所述第三图像集的多个相机姿态;
使用所述多个相机姿态识别所述第三图像集内的多个3D点;以及
根据所述3D点重构所述对象的表面。
8.根据权利要求1所述的方法,其中,渲染所述3D表面模型和所述纹理图以供显示包括同时将所述对象的一组视图渲染为多视图图像。
9.一种三维(3D)模型生成***,包括:
处理器;以及
存储器,所述存储器存储多个指令,所述多个指令在被执行时使所述处理器:
从第一图像集生成体积密度模型,所述第一图像集对应于对象的不同视角;
从体积密度模型生成第二图像集,其中应用伪随机纹理来生成所述第二图像集;
将所述第一图像集与所述第二图像集混合以生成第三图像集;
从所述第三图像集生成3D表面模型;以及
从所述第一图像集生成所述3D表面模型的纹理图,
其中,计算***被配置为渲染所述3D表面模型和纹理图以供显示。
10.根据权利要求9所述的***,其中,所述体积密度模型包括被配置为确定对应于输入相机姿态的一组体积密度值的函数。
11.根据权利要求9所述的***,其中,所述体积密度模型包括神经辐射场模型。
12.根据权利要求9所述的***,其中,存储所述多个指令的所述存储器在所述多个指令被执行时还使所述处理器:
通过对所述第一图像集应用角点检测操作以确定区域是否为无纹理区域来识别所述第一图像集的无纹理区域;以及
通过响应于识别所述无纹理区域,将所述第一图像集与所述第二图像集混合以生成第三图像集。
13.根据权利要求12所述的***,其中所述无纹理区域包括阈值像素值方差内的像素。
14.根据权利要求9所述的***,其中,存储所述多个指令的所述存储器在所述多个指令被执行时还使所述处理器:
识别所述第一图像集的多个相机姿态;以及
根据所述相机姿态从所述第一图像集生成所述体积密度模型。
15.根据权利要求9所述的***,其中,存储所述多个指令的所述存储器在所述多个指令被执行时还使所述处理器:
识别所述第三图像集的多个相机姿态;
使用所述多个相机姿态识别所述第三图像集内的多个3D点;以及
根据所述3D点重构所述对象的表面以生成所述3D表面模型。
16.根据权利要求9所述的***,其中,所述3D表面模型和所述纹理图被配置为通过同时将所述对象的一组视图渲染为多视图图像来渲染以供显示。
17.一种存储可执行指令的非暂时性计算机可读存储介质,所述可执行指令在由计算***的处理器执行时执行操作以生成第一图像集的三维(3D)模型,所述操作包括:
从所述第一图像集生成神经辐射场(NeRF)模型,所述第一图像集对应于对象的不同视角;
从所述NeRF模型和预定义的颜色函数生成第二图像集;
将所述第一图像集与所述第二图像集混合以生成第三图像集;
从所述第三图像集生成3D表面模型;以及
从所述第一图像集生成所述3D表面模型的纹理图,
其中,所述计算***被配置为渲染所述3D表面模型和所述纹理图以供显示。
18.根据权利要求17所述的非暂时性计算机可读存储介质,其中,所述操作还包括:
分配与所述第一图像集的无纹理表面的区域相对应的混合权重;以及
根据所述混合权重将所述第一图像集与所述第二图像集混合以生成第三图像集。
19.根据权利要求18所述的非暂时性计算机可读存储介质,其中所述无纹理表面的区域包括阈值像素值方差内的像素。
20.根据权利要求17所述的非暂时性计算机可读存储介质,其中所述3D表面模型和所述纹理图被配置为通过同时将所述对象的一组视图渲染为多视图图像来渲染以供显示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/020165 WO2022182369A1 (en) | 2021-02-28 | 2021-02-28 | Method and system providing temporary texture application to enhance 3d modeling |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116917946A true CN116917946A (zh) | 2023-10-20 |
Family
ID=83049305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180094702.9A Pending CN116917946A (zh) | 2021-02-28 | 2021-02-28 | 提供临时纹理应用以增强3d建模的方法和*** |
Country Status (8)
Country | Link |
---|---|
US (1) | US20230394740A1 (zh) |
EP (1) | EP4298606A1 (zh) |
JP (1) | JP2024508457A (zh) |
KR (1) | KR20230135660A (zh) |
CN (1) | CN116917946A (zh) |
CA (1) | CA3210872A1 (zh) |
TW (1) | TWI810818B (zh) |
WO (1) | WO2022182369A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230154101A1 (en) * | 2021-11-16 | 2023-05-18 | Disney Enterprises, Inc. | Techniques for multi-view neural object modeling |
KR20240054780A (ko) * | 2022-10-19 | 2024-04-26 | 네이버랩스 주식회사 | 객체 포즈 보정 방법 및 시스템 |
WO2024130145A1 (en) * | 2022-12-15 | 2024-06-20 | Schlumberger Technology Corporation | Unlocking lightweight fast 3d visualization with neural radiance representations |
TWI834493B (zh) * | 2023-02-08 | 2024-03-01 | 國立成功大學 | 基於多組編碼圖案的三維重建系統及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8698799B2 (en) * | 2009-01-20 | 2014-04-15 | Adobe Systems Incorporated | Method and apparatus for rendering graphics using soft occlusion |
TW201118791A (en) * | 2009-11-27 | 2011-06-01 | Inst Information Industry | System and method for obtaining camera parameters from a plurality of images, and computer program products thereof |
KR101828710B1 (ko) * | 2016-10-14 | 2018-03-23 | 중앙대학교 산학협력단 | 객체 가려짐 검출 장치 및 그 방법 |
US10607319B2 (en) * | 2017-04-06 | 2020-03-31 | Pixar | Denoising monte carlo renderings using progressive neural networks |
WO2019050038A1 (ja) * | 2017-09-11 | 2019-03-14 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 画像生成方法および画像生成装置 |
US10489961B2 (en) * | 2018-02-12 | 2019-11-26 | Wayfair Llc | Systems and methods for generating textured three-dimensional models |
-
2021
- 2021-02-28 JP JP2023551970A patent/JP2024508457A/ja active Pending
- 2021-02-28 WO PCT/US2021/020165 patent/WO2022182369A1/en active Application Filing
- 2021-02-28 EP EP21928309.0A patent/EP4298606A1/en active Pending
- 2021-02-28 KR KR1020237029161A patent/KR20230135660A/ko unknown
- 2021-02-28 CA CA3210872A patent/CA3210872A1/en active Pending
- 2021-02-28 CN CN202180094702.9A patent/CN116917946A/zh active Pending
-
2022
- 2022-02-16 TW TW111105580A patent/TWI810818B/zh active
-
2023
- 2023-08-21 US US18/236,338 patent/US20230394740A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230394740A1 (en) | 2023-12-07 |
KR20230135660A (ko) | 2023-09-25 |
TWI810818B (zh) | 2023-08-01 |
JP2024508457A (ja) | 2024-02-27 |
TW202247106A (zh) | 2022-12-01 |
WO2022182369A1 (en) | 2022-09-01 |
CA3210872A1 (en) | 2022-09-01 |
EP4298606A1 (en) | 2024-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI810818B (zh) | 提供三維模型的電腦實施方法與系統及其相關之儲存媒體 | |
CN111968215B (zh) | 一种体积光渲染方法、装置、电子设备及存储介质 | |
CN105374065B (zh) | 用于在渲染图像中使用的可重新照明纹理 | |
CN111986307A (zh) | 使用光度网格表示的3d对象重建 | |
US8289318B1 (en) | Determining three-dimensional shape characteristics in a two-dimensional image | |
CN108230435B (zh) | 采用立方图纹理的图形处理 | |
CN111968216A (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
AU2019226134B2 (en) | Environment map hole-filling | |
US11276150B2 (en) | Environment map generation and hole filling | |
CN110428504B (zh) | 文本图像合成方法、装置、计算机设备和存储介质 | |
US20130141451A1 (en) | Circular scratch shader | |
Boom et al. | Interactive light source position estimation for augmented reality with an RGB‐D camera | |
CN114375464A (zh) | 使用边界体积表示对虚拟空间中的动态单元进行光线追踪 | |
CN117557714A (zh) | 三维重建方法、电子设备及可读存储介质 | |
Weber et al. | Editable indoor lighting estimation | |
KR20230013099A (ko) | 실시간 깊이 맵을 사용한 지오메트리 인식 증강 현실 효과 | |
EP4040397A1 (en) | Method and computer program product for producing a 3d representation of an object | |
KR20230149093A (ko) | 영상 처리 방법, 영상 처리를 위한 트레이닝 방법, 및 영상 처리 장치 | |
JP5865092B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
EP4258221A2 (en) | Image processing apparatus, image processing method, and program | |
CN117557711B (zh) | 可视域的确定方法、装置、计算机设备、存储介质 | |
US20240193864A1 (en) | Method for 3d visualization of sensor data | |
Andrade et al. | An unstructured lumigraph based approach to the SVBRDF estimation problem | |
Gera | Casual Scene Capture and Editing for AR/VR Applications | |
CN117795952A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40101564 Country of ref document: HK |