一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于渲染图像的三维建模体积的制作方法

2021-11-18 03:51:00 来源:中国专利 TAG:

用于渲染图像的三维建模体积
1.相关申请的交叉引用
2.本技术要求2019年4月9日提交的美国申请第16/379,615号的优先权,出于所有目的,该申请的内容通过引用整体结合于此。
技术领域
3.本公开一般涉及人工现实系统,且尤其涉及构建对象的三维建模体积。
4.背景
5.本发明的实施例可以包括人工现实系统或结合人工现实系统来被实现。人工现实是一种在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(vr)、增强现实(ar)、混合现实(mixed reality,mr)、混杂现实(hybrid reality)或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,并且它们中的任何一个都可以在单个通道或多个通道中呈现(例如向观看者产生三维效果的立体视频)。另外,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合例如用于在人工现实中创建内容和/或在人工现实中被使用(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(hmd)、独立的hmd、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
6.特定实施例的概述
7.因此,本发明涉及根据所附权利要求的方法和系统。在特定实施例中,一个或更多个计算设备可以通过用机器学习框架处理处于一种状态下的目标对象的多个图片来构建用于目标对象的三维(3d)建模的3d建模体积。传统上,因为非结构化对象(包括头发、烟雾、火、云等)难以参数化、具有复杂的体积结构并且具有可变的变形能力,所以认为重建这些非结构化对象是困难的。此外,3d建模通常将对象表示为沿着其表面的小平面对象的集合,但是这种表示对于高度弯曲的表面和复杂的形状表现不佳。一个或更多个计算设备可以基于3d建模体积重建对象的图像,以克服这些限制。优选的第一计算设备可以访问处于第一状态下的对象的第一多个图片。第一多个图片可以分别从第一多个视点拍摄。在特定实施例中,优选的第一计算设备可以通过使用机器学习框架处理第一多个图片来构建用于对象的3d建模的建模体积。建模体积可以与多个颜色和不透明度(opacity)信息相关联,这些信息可以与建模体积中的多个区域相关联。在特定实施例中,机器学习框架包括编码器和解码器。编码器可以基于输入的图片的信息来构建编码向量。解码器可以通过解码编码向量来产生建模体积。在特定实施例中,编码器可以是卷积神经网络。在特定实施例中,解码器可以是卷积解码器。在特定实施例中,解码器可以是线性基解码器(linear basis decoder)。在特定实施例中,一个或更多个计算设备可以修改处于一种状态下的对象的编码向量,以生成用于对处于另一种状态下的对象进行建模的建模体积。在特定实施例中,一
个或更多个计算设备可以线性地插值处于第一状态下的对象的第一编码向量和处于第二状态下的对象的第二编码向量,以生成用于对处于第三状态下的对象进行建模的建模体积。第三状态可以在第一状态和第二状态之间。在特定实施例中,优选的第二计算设备可以使用建模体积从虚拟视点渲染对象的二维(2d)图像。优选的第二计算设备可以不同于优选的第一计算设备。优选的第二计算设备可以基于与建模体积相关联的多个颜色和不透明度信息来渲染图像的每个像素。优选的第二计算设备可以从虚拟视点投射虚拟射线穿过建模体积。虚拟射线可以与图像中的像素相交。优选的第二计算设备可以确定建模体积中的多个区域中与虚拟射线相交的一个或更多个区域。优选的第二计算设备可以基于与多个区域中的和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息的累积来确定像素的颜色和不透明度。在特定实施例中,当优选的第二计算设备累积与和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息时,优选的第二计算设备可以累积与一个或更多个区域相关联的不透明度加权颜色,直到与一个或更多个区域相关联的累积不透明度达到阈值。优选的第三计算设备可以训练机器学习框架。优选的第三计算设备可以不同于优选的第一计算设备。优选的第三计算设备可以不同于优选的第二计算设备。优选的第三计算设备可以通过重复迭代来训练机器学习框架,直到满足预定条件。优选的第三计算设备可以访问对象的第二多个图片。第二多个图片可以分别从第二多个视点拍摄。优选的第三计算设备可以通过使用机器学习框架处理第二多个图片的子集来构建用于对象的三维建模的第二建模体积。第一多个视点可以是第二多个视点的子集。第二多个图片的子集可以从第一多个视点拍摄。优选的第三计算设备可以从对应于第二多个视点的多个虚拟视点渲染对象的多个二维图像。优选的第三计算设备可以基于多个二维图像和第二多个图片之间的比较来更新机器学习框架。为了基于多个二维图像和第二多个图片之间的比较来更新机器学习框架,优选的第三计算设备可以基于在从虚拟视点渲染的多个二维图像中的每一个与第二多个图片中的从对应视点拍摄的图片之间的比较来计算预定损失函数。优选的第三计算设备可以通过基于计算的损失函数执行反向传播来调整机器学习框架的参数。从第二多个视点拍摄的对象的一组或更多组图片可以用于训练。一组或更多组图片中的每一组都可以用作每次迭代的输入。一组或更多组中的每一组可以对应于一个时间实例。第二多个视点中的每一个的背景在时间实例上可以是静态的。在特定实施例中,建模体积中的区域可以由包括该区域的颜色和不透明度的信息的体素(voxel)来表示。区域的颜色可以由rgb颜色代码表示。区域的不透明度可以用0到1之间的标量值来表示。在特定实施例中,建模体积可以由三维翘曲(warp)体积和三维信息体积表示。翘曲体积中的每个区域可以指向信息体积中的一个区域。信息体积中的每个区域都与颜色和不透明度的信息相关联。建模体积中的第一区域的颜色和不透明度的信息可以从信息体积中的由翘曲体积中的第三区域指向的第二区域访问。翘曲体积中的第三区域可以对应于建模体积中的第一区域。
8.在特定实施例中,一个或更多个计算设备可以访问对象的第一多个图片。第一多个图片可以分别从第一多个视点拍摄。一个或更多个计算设备可以通过使用机器学习框架处理第一多个图片来构建用于对象的三维建模的建模体积。建模体积可以与多个颜色和不透明度信息相关联,这些信息与建模体积中的多个区域相关联。一个或更多个计算设备可以使用建模体积从虚拟视点渲染对象的二维图像。一个或更多个计算设备可以通过基于构建的建模体积确定像素的颜色和不透明度来渲染图像的每个像素。一个或更多个计算设备
可以首先从虚拟视点并通过建模体积投射虚拟射线。一个或更多个计算设备可以确定建模体积中的多个区域中的与虚拟射线相交的一个或更多个。一个或更多个计算设备可以基于与多个区域中的和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息的累积来确定像素的颜色和不透明度。
9.本发明还涉及根据所附权利要求的计算机可读非暂时性存储介质。在特定实施例中,一个或更多个计算机可读非暂时性存储介质可以体现软件,该软件在被执行时可操作来执行根据任何上面提到的实施例(或这些实施例内)的方法。在特定实施例中,一种系统可以包括:一个或更多个处理器;以及耦合到处理器并包括处理器可执行的指令的至少一个存储器,处理器当执行指令时可操作来执行根据任何上面提到的实施例(或这些实施例内)的方法。在特定实施例中,一种计算机程序产品,优选地包括计算机可读非暂时性存储介质,当在数据处理系统上被执行时,该计算机程序产品可以可操作来执行根据上述任何实施例的或在上述任何实施例内的方法。
10.本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括本文公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些,或不包括这些部件、元件、特征、功能、操作或步骤。根据本发明的实施例在所附权利要求中具体公开,涉及方法、存储介质、和系统,其中在一个权利要求类别(例如方法)中提到的任何特征,也可以在另一个权利要求类别(例如存储介质、系统和计算机程序产品)中要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何先前权利要求的有意往回引用(特别是多个从属关系)而产生的任何主题,从而权利要求及其特征的任何组合被公开了并且可以被要求保护,而不管所附权利要求中选择的从属关系如何。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
11.附图简述
12.图1示出了示例多视图捕获系统。
13.图2示出了基于3d建模体积的对象的示例渲染。
14.图3示出了具有编码器和解码器的示例机器学习框架。
15.图4示出了机器学习框架的示例卷积编码器,用于基于对象的多个图像构建建模体积。
16.图5a

5b示出了机器学习框架的示例解码器,用于基于对象的多个图像来构建建模体积。
17.图6示出了通过插值编码向量的目标对象的示例动画。
18.图7示出了用于构建对象的三维建模体积以渲染对象的二维图像的示例方法。
19.图8示出了示例人工神经网络。
20.图9示出了示例计算机系统。
21.示例实施例的描述
22.在特定实施例中,计算设备可以通过用机器学习框架处理处于一种状态的目标对
象的多个图片来构建用于目标对象的三维(3d)建模的3d建模体积。传统上,因为非结构化对象(包括头发、烟雾、火、云等)难以参数化、具有复杂的体积结构并且具有可变的变形能力,所以认为重建这些非结构化对象是困难的。此外,3d建模通常将对象表示为沿着其表面的小平面对象的集合,但是这种表示对于高度弯曲的表面和复杂的形状表现不佳。计算设备可以基于3d建模体积重建对象的图像,以克服这些限制。第一计算设备可以访问在第一状态下的对象的第一多个图片。第一多个图片可以分别从第一多个视点拍摄。在特定实施例中,第一计算设备可以通过使用机器学习框架处理第一多个图片来构建用于对象的3d建模的建模体积。建模体积可以与多个颜色和不透明度信息相关联,这些信息可以与建模体积中的多个区域相关联。在特定实施例中,机器学习框架包括编码器和解码器。编码器可以基于输入的图片的信息来构建编码向量。解码器可以通过解码编码向量来产生建模体积。在特定实施例中,编码器可以是卷积神经网络。在特定实施例中,解码器可以是卷积解码器。在特定实施例中,解码器可以是线性基解码器。在特定实施例中,计算设备可以修改处于一种状态的对象的编码向量,以生成用于对处于另一种状态的对象进行建模的建模体积。在特定实施例中,计算设备可以线性插值处于第一状态的对象的第一编码向量和处于第二状态的对象的第二编码向量,以生成用于对处于第三状态的对象进行建模的建模体积。第三状态可以在第一状态和第二状态之间。在特定实施例中,第二计算设备可以使用建模体积从虚拟视点渲染对象的二维(2d)图像。第二计算设备可以不同于第一计算设备。第二计算设备可以基于与建模体积相关联的多个颜色和不透明度信息来渲染图像的每个像素。第二计算设备可以从虚拟视点投射虚拟射线穿过建模体积。虚拟射线可以与图像中的像素相交。第二计算设备可以确定建模体积中的多个区域中的与虚拟射线相交的一个或更多个区域。第二计算设备可以基于与多个区域中的和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息的累积来确定像素的颜色和不透明度。在特定实施例中,当第二计算设备累积与和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息时,第二计算设备可以累积与一个或更多个区域相关联的不透明度加权颜色,直到与一个或更多个区域相关联的累积不透明度达到阈值。第三计算设备可以训练机器学习框架。第三计算设备可以不同于第一计算设备。第三计算设备可以不同于第二计算设备。第三计算设备可以通过重复迭代来训练机器学习框架,直到满足预定条件。第三计算设备可以访问对象的第二多个图片。第二多个图片可以分别从第二多个视点拍摄。第三计算设备可以通过使用机器学习框架处理第二多个图片的子集来构建用于对象的三维建模的第二建模体积。第一多个视点可以是第二多个视点的子集。第二多个图片的子集可以从第一多个视点拍摄。第三计算设备可以从对应于第二多个视点的多个虚拟视点渲染对象的多个二维图像。第三计算设备可以基于多个二维图像和第二多个图片之间的比较来更新机器学习框架。为了基于多个二维图像和第二多个图片之间的比较来更新机器学习框架,第三计算设备可以基于在从虚拟视点渲染的多个二维图像中的每一个与第二多个图片中的从对应视点拍摄的图片之间的比较来计算预定损失函数。第三计算设备可以通过基于计算的损失函数执行反向传播来调整机器学习框架的参数。从第二多个视点拍摄的对象的一组或更多组图片可以用于训练。一组或更多组图片中的每一组都可以用作每次迭代的输入。一组或更多组中的每一组可以对应于一个时间实例。第二多个视点中的每一个的背景在时间实例上可以是静态的。在特定实施例中,建模体积中的区域可以由包括该区域的颜色和不透明度信息的体素
来表示。区域的颜色可以由rgb颜色代码表示。区域的不透明度可以用0到1之间的标量值来表示。在特定实施例中,建模体积可以由三维翘曲体积和三维信息体积表示。翘曲体积中的每个区域可以指向信息体积中的一个区域。信息体积中的每个区域都与颜色和不透明度的信息相关联。建模体积中的第一区域的颜色和不透明度的信息可以从信息体积中的由翘曲体积中的第三区域指向的第二区域访问。翘曲体积中的第三区域可以对应于建模体积中的第一区域。尽管本公开描述了以特定方式基于对象的多个图片构建3d建模体积,但是本公开设想以任何合适的方式基于对象的多个图片构建3d建模体积。
23.在特定实施例中,第一计算设备可以访问第一状态下的对象的第一多个图片。第一多个图片可以分别从第一多个视点拍摄。图1示出了示例多视图捕获系统。作为示例而非限制,如图1所示,多视图捕获系统100可以包括围绕对象点(object spot)的多个摄像机,多个摄像机中的每一个可以放置在预定的视点。当目标对象101位于对象点时,多个摄像机可以同时拍摄图片。图片103a

103e中的每一个可以从相应的视点捕获处于一种状态下的目标对象101。由于图片103a、103b、103c、103d和103e是同时拍摄的,因此在这些图片中捕获的目标对象101可以具有一致的姿势。此外,目标对象101周围的环境(包括光)可以在图片103a

103e中保持一致。在特定实施例中,如果目标对象101没有移动并且环境保持一致,则可以在不同时间从多个视点拍摄多个图片。尽管本公开描述了以特定方式访问处于一种状态下的对象的多个图片,但是本公开设想以任何合适的方式访问处于一种状态下的对象的多个图片。
24.在特定实施例中,第一计算设备可以通过使用机器学习框架处理第一多个图片来构建用于对象的三维(3d)建模的建模体积。建模体积可以与多个颜色和不透明度信息相关联,这些信息可以与建模体积中的多个区域相关联。作为示例而非限制,继续先前的示例,计算设备可以从多视图捕获系统100访问目标对象101的多个图片103a

103e。计算设备可以选择多个图片的子集。多个图片的所选子集可以从预定视点拍摄。尽管提供多个图片103a

103e中的全部图片作为机器学习框架的输入可以导致以更高的精度产生目标对象的建模体积建模,但是更多数量的图片可能需要更多的计算资源。因此,机器学习框架可以被配置成获取从预定视点拍摄的特定数量的图片。计算设备可以通过使用机器学习框架处理多个图片103a

103e的选定子集来构建目标对象101的建模体积。尽管本公开描述了以特定方式构建对象的建模体积,但是本公开设想以任何合适的方式构建对象的建模体积。
25.在特定实施例中,第二计算设备可以使用建模体积从虚拟视点渲染对象的二维(2d)图像。第二计算设备可以不同于第一计算设备。第二计算设备可以基于与建模体积相关联的多个颜色和不透明度信息来渲染图像的每个像素。第二计算设备可以从虚拟视点投射虚拟射线穿过建模体积。虚拟射线可以与图像中的像素相交。第二计算设备可以确定建模体积中的多个区域中的与虚拟射线相交的一个或更多个区域。第二计算设备可以基于与多个区域中的和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息的累积来确定像素的颜色和不透明度。在特定实施例中,当第二计算设备累积与和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息时,第二计算设备可以累积与一个或更多个区域相关联的不透明度加权颜色,直到与一个或更多个区域相关联的累积不透明度达到阈值。图2示出了基于3d建模体积的对象的示例渲染。作为示例而非限制,如图2所示,计算设备可以确定虚拟视点210,目标对象的3d图像将从该虚拟视点210渲染。计算设备可以
确定渲染图像220所位于的在虚拟视点210和目标对象的建模体积205之间的平面。对于渲染图像220中的像素221a、221b、221c中的每一个,计算设备投射与像素相交并穿过建模体积205的虚拟射线。尽管为了简洁起见,图2仅示出了三个像素221a、221b和221c以及三条虚拟射线231a、231b和231c,但是计算设备可以为渲染图像220中的每个像素投射虚拟射线。对于像素221a及其对应的虚拟射线231a,计算设备可以确定建模体积205中与虚拟射线231a相交的一个或更多个区域。所确定的一个或更多个区域中的每一个可以与颜色和不透明度信息相关联。通过累积对应于所确定的一个或更多个区域的一个或更多个不透明度加权的颜色直到与所确定的一个或更多个区域相关联的累积不透明度达到阈值,计算设备可以确定像素221a的颜色和不透明度。尽管本公开描述了以特定方式使用对象的建模体积从虚拟视点渲染对象的2d图像,但是本公开设想以任何合适的方式使用对象的建模体积从虚拟视点渲染对象的2d图像。
26.在特定实施例中,机器学习框架包括编码器和解码器。编码器可以基于输入的图片的信息来构建编码向量。解码器可以通过解码编码向量来产生建模体积。编码器

解码器架构可允许条件解码,其中仅目标对象的状态的一部分可被修改(即,语音期间的表达、依赖于视角的(view

dependent)外观效果等)。只要调节变量的成对样本在训练期间可用,编码器

解码器架构就可以支持条件解码,而不需要解码器侧的专门处理。图3示出了具有编码器和解码器的示例机器学习框架。作为示例而非限制,如图3所示,基于对象的图像301a、301b、301c构建建模体积305的机器学习框架300可以包括编码器310和解码器320。图3所示的编码器310获取对象的三个图像301a、301b和301c作为输入。编码器310可以处理输入图像301a、301b和301c的数据,以生成编码向量303。机器学习框架300的解码器320可以将编码向量303作为输入,并通过解码编码向量303来构建建模体积305。尽管本公开描述了用于基于对象的多个图像生成建模体积的特定机器学习框架,但是本公开设想了用于基于对象的多个图像生成建模体积的任何合适的机器学习框架。
27.在特定实施例中,编码器可以是卷积神经网络。图4示出了机器学习框架的示例卷积编码器。作为示例而非限制,如图4所示,编码器310可以将k个图像作为输入。为了简洁起见,图4仅示出了两个输入图像301a和301b。图4所示示例中的输入图像的分辨率为334
×
512。由于图像中的每个像素由rgb代码表示,因此该像素由三个通道表示。在步骤412,编码器310可以通过由卷积神经网络处理每个输入图像301a、301b来产生3
×4×
256矩阵403a、403b。在步骤414,编码器310可以将每个产生的矩阵403a或403b整形为3072维的向量405a、405b。在步骤416,编码器310可以将向量405a、405b级联成单个向量407。级联向量407的大小可以取决于输入图像的数量。在步骤418,编码器310可以通过经由全连接层430处理级联向量407来生成256维的编码向量303。尽管本公开描述了通过以特定方式编码对象的多个图像来生成编码向量,但是本公开设想通过以任何合适的方式编码对象的多个图像来生成编码向量。
28.在特定实施例中,建模体积中的区域可以由包括该区域的颜色和不透明度信息的体素来表示。区域的颜色可以由rgb颜色代码表示。区域的不透明度可以由0到1之间的标量值来表示,其中0可以表示该区域是完全透明的,而1可以表示该区域是完全不透明的。尽管本公开描述了以特定方式表示建模体积中的区域,但是本公开设想以任何合适的方式表示建模体积中的区域。
29.图5a

5b示出了机器学习框架的示例解码器,用于基于对象的多个图像构建建模体积。产生的建模体积可以是体素体积,其中每个体素可以表示建模体积的相应区域的颜色和不透明度。在特定实施例中,解码器可以是卷积解码器。图5a示出了示例卷积解码器。作为示例而非限制,继续先前的示例,并且如图5a所示,机器学习框架的解码器320可以将256维编码向量303作为输入。在步骤532,解码器320可以通过全连接层520执行编码向量303到1024维向量503的非线性投影。在步骤534,解码器320可以将向量503整形为具有1024个通道的立方体505。立方体的维度可以是1
×1×
1。在步骤536a,解码器320可以通过由去卷积(de

convolutional)神经网络处理立方体505来生成具有8个通道的64
×
64
×
64张量(tensor)507。在步骤536b,解码器320可以通过由去卷积神经网络处理64
×
64
×
64张量507来生成具有4个通道的128
×
128
×
128体积509。体积509的每个通道可以表示对应体素的颜色代码或不透明度。虽然步骤536a和536b在图5a中单独示出,但是步骤536a和536b可以组合成单个步骤。图5a中示出的数据对象的维度大小是示例。维度大小可以是可配置的。尽管本公开描述了特定的卷积解码器,但是本公开设想了任何合适的卷积解码器。
30.在特定实施例中,解码器可以是线性基解码器。图5b示出了示例线性基解码器。作为示例而非限制,继续先前的示例并如图5b所示,解码器320可以将编码向量303作为输入。编码向量303可以是256维的。在步骤542,解码器320可以通过经由第一完全连接层540处理编码向量303来生成128维向量513。在步骤552,解码器320可以通过经由第二完全连接层550处理128维向量513来生成4维向量515。在步骤562,解码器320可以通过由第三完全连接层560处理4维向量515来生成8388608维向量517。在步骤572,解码器320可以通过对8388608维向量517进行整形来生成具有4个通道的128
×
128
×
128体积。体积519的每个通道可以表示对应体素的颜色代码或不透明度。图5b中示出的数据对象的维度大小是示例。维度大小是可配置的。尽管本公开描述了特定的线性基解码器,但是本公开设想了任何合适的线性基解码器。
31.在特定实施例中,第三计算设备可以通过监督回归算法来训练机器学习框架。第三计算设备可以不同于第一计算设备。第三计算设备可以不同于第二计算设备。第三计算设备可以通过重复迭代来训练机器学习框架,直到满足预定条件。用于迭代的机器学习框架的训练输入可以是处于一种状态下的目标对象的第二多个图片。第三计算设备可以访问对象的第二多个图片。第二多个图片可以分别从第二多个视点拍摄。第三计算设备可以通过使用机器学习框架处理第二多个图片的子集来构建用于对象的三维建模的第二建模体积。第一多个视点可以是第二多个视点的子集。第二多个图片的子集可以从第一多个视点拍摄。对于第二多个图片中的每一个,第三计算设备可以从相应的虚拟视点渲染图像。第三计算设备可以基于第二多个图片和它们对应的渲染图像之间的比较来更新机器学习框架。为了基于比较来更新机器学习框架,第三计算设备可以基于在从虚拟视点渲染的每个图像与第二多个图片中的从对应视点拍摄的图片之间的比较来计算预定损失函数。第三计算设备可以通过基于计算的损失函数执行反向传播来调整机器学习框架的参数。尽管本公开描述了以特定方式训练机器学习框架,但是本公开设想以任何合适的方式训练机器学习框架。
32.从第二多个视点拍摄的对象的一组或更多组图片可用于训练。一组或更多组图片中的每一组都可以用作每次迭代的输入。一组或更多组中的每一组可以对应于一个时间实
例。第二多个视点中的每一个视点的背景在时间实例上可以是静态的。作为示例而非限制,多视图捕获系统100可以在每个部署的摄像机处拍摄视频流。可以提供时间实例的多个图片作为机器学习框架的训练的迭代的输入。在拍摄视频流之前,每个摄像机拍摄一张没有处于合适位置的目标对象的背景的参考图片。机器学习框架可以基于参考图片忽略来自每个输入图片的背景的颜色和不透明度的信息。尽管本公开描述了以特定方式将视频流作为训练输入提供给机器学习框架,但是本公开设想以任何合适的方式将视频流作为训练输入提供给机器学习框架。
33.在特定实施例中,计算设备可以修改处于一种状态的对象的编码向量,以生成用于对处于另一种状态的对象进行建模的建模体积。在特定实施例中,计算设备可以线性插值处于第一状态的对象的第一编码向量和处于第二状态的对象的第二编码向量,以生成用于对处于第三状态的对象进行建模的建模体积。第三状态可以在第一状态和第二状态之间。图6示出了通过插值编码向量进行的目标对象的示例动画。作为示例而非限制,如图6所示,计算设备可以生成处于第一状态的人的第一编码向量和第一建模体积。在第一状态下,人闭着他的嘴。在(a)处示出了处于第一状态的人的渲染图像。计算设备可以生成处于第二状态的人的第二编码向量和第二建模体积。在第二状态,人完全张开他的嘴。在(e)处示出了处于第二状态的人的渲染图像。计算设备可以通过线性插值第一编码向量和第二编码向量来生成第三、第四和第五编码向量。可以对第一编码向量和第二编码向量使用不同系数来生成第三、第四和第五编码向量。计算设备可以通过分别向解码器提供第三、第四和第五编码向量来生成第三、第四和第五建模体积。来自第三建模体积的渲染图像显示在(b)处,其中人张开嘴大约四分之一。来自第四建模体积的渲染图像显示在(c)处,其中人张开嘴大约一半。来自第五建模体积的渲染图像显示在(d)处,其中人张开嘴大约四分之三。尽管本公开描述了通过以特定方式线性插值编码向量来动画化对象,但是本公开设想通过以任何合适的方式线性插值编码向量来动画化对象。
34.在特定实施例中,建模体积可以由三维翘曲体积和三维信息体积表示。建模体积的体素表示在存储空间方面可能是昂贵的,尤其是当表示包括大量空白空间的场景时。利用翘曲体积和信息体积可以允许我们以有效的方式利用存储器资源,以及更自然地建模对象的运动。翘曲体积中的每个区域可以指向信息体积中的一个区域。信息体积中的每个区域都与颜色和不透明度的信息相关联。建模体积中的第一区域的颜色和不透明度的信息可以从信息体积中的第二区域访问,该第二区域由翘曲体积中的第三区域指向。翘曲体积中的第三区域可以对应于建模体积中的第一区域。尽管本公开描述了以特定方式用翘曲体积和信息体积来表示模型体积,但是本公开设想以任何合适的方式用翘曲体积和信息体积来表示模型体积。
35.图7示出了用于构建对象的三维建模体积以渲染对象的二维图像的示例方法700。该方法可以在步骤710开始,其中计算设备可以访问对象的第一多个图片。第一多个图片可以分别从第一多个视点拍摄。在步骤720,计算设备可以通过使用机器学习框架处理第一多个图片来构建用于对象的三维建模的建模体积。建模体积可以与多个颜色和不透明度信息相关联,这些信息与建模体积中的多个区域相关联。在步骤730,计算设备可以使用建模体积从虚拟视点渲染对象的二维图像。计算设备可以通过基于构建的建模体积确定像素的颜色和不透明度来渲染图像的每个像素。计算设备可以首先从虚拟视点并通过建模体积投射
虚拟射线。计算设备可以确定建模体积中的多个区域中的与虚拟射线相交的一个或更多个区域。计算设备可以基于与多个区域中的和虚拟射线相交的一个或更多个区域相关联的颜色和不透明度信息的累积来确定像素的颜色和不透明度。在适当的情况下,特定实施例可以重复图7的方法的一个或更多个步骤。尽管本公开描述并示出了以特定顺序发生的图7的方法的特定步骤,但是本公开设想了以任何合适的顺序发生的图7的方法的任何合适的步骤。此外,尽管本公开描述并示出了用于构建对象的三维建模体积以渲染对象的二维图像的示例方法,包括图7的方法的特定步骤,但是本公开设想了用于构建对象的三维建模体积以渲染对象的二维图像的任何合适的方法,包括任何合适的步骤,在适当的情况下,该步骤可以包括图7的方法的所有、一些步骤或没有这些步骤。此外,尽管本公开描述并示出了执行图7的方法的特定步骤的特定部件、设备或系统,但是本公开设想了执行图7的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。
36.人工神经网络
37.图8示出了示例人工神经网络(“ann”)800。在特定实施例中,ann可以指包括一个或更多个节点的计算模型。示例ann 800可以包括输入层810、隐藏层820、830、840和输出层850。ann 800的每个层可以包括一个或更多个节点,例如节点805或节点815。在特定实施例中,ann的每个节点可以关连到ann的另一个节点。作为示例而不是作为限制,输入层810的每个节点可以关连到隐藏层820的一个或更多个节点。在特定实施例中,一个或更多个节点可以是偏置节点(例如,层中不关连到前一层中的任何节点并且不从其接收输入的节点)。在特定实施例中,每层中的每个节点可以关连到前一层或后一层的一个或更多个节点。尽管图8描绘了具有特定层数、特定节点数和节点间特定关连的特定ann,但是本公开设想了具有任何合适层数、任何合适节点数和节点间任何合适关连的任何合适的ann。作为示例而不是作为限制,尽管图8描绘了输入层810的每个节点和隐藏层820的每个节点之间的关连,但是输入层810的一个或更多个节点可以不关连到隐藏层820的一个或更多个节点。
38.在特定实施例中,ann可以是前馈ann(例如,没有循环或回路的ann,其中节点之间的通信从输入层开始在一个方向上流动,并前进到连续层)。作为示例而不是作为限制,隐藏层820的每个节点的输入可以包括输入层810的一个或更多个节点的输出。作为另一个示例而不是作为限制,输出层850的每个节点的输入可以包括隐藏层840的一个或更多个节点的输出。在特定实施例中,ann可以是深度神经网络(例如,包括至少两个隐藏层的神经网络)。在特定实施例中,ann可以是深度残差网络。深度残差网络可以是前馈ann,其包括组织成残差块的隐藏层。第一残差块之后的每个残差块的输入可以是前一个残差块的输出和前一个残差块的输入的函数。作为示例而不是作为限制,到残差块n的输入可以是f(x) x,其中f(x)可以是残差块n

1的输出,x可以是到残差块n

1的输入。尽管本公开描述了特定的ann,但是本公开设想了任何合适的ann。
39.在特定实施例中,激活函数可以对应于ann的每个节点。节点的激活函数可以针对给定输入定义节点的输出。在特定实施例中,节点的输入可以包括输入集合。作为示例而不是作为限制,激活函数可以是恒等函数、二进制阶跃函数、逻辑函数或任何其他合适的函数。作为另一个示例而不是作为限制,节点k的激活函数可以是sigmoid函数双曲线正切函数整流器f
k
(s
k
)=max(0,s
k
)或任
何其他合适的函数f
k
(s
k
),其中s
k
可以是节点k的有效输入。在特定实施例中,对应于节点的激活函数的输入可以被加权。每个节点可以使用基于加权输入的对应激活函数来生成输出。在特定实施例中,节点之间的每个关连可以与权重相关联。作为示例而不是作为限制,节点805和节点815之间的关连825可以具有0.4的加权系数,这可以指示节点805的输出乘以0.4被用作节点815的输入。作为另一个示例而不是作为限制,节点k的输出y
k
可以是y
k
=f
k
(s
k
),其中f
k
可以是对应于节点k的激活函数,s
k
=∑
j
(w
jk
x
j
)可以是节点k的有效输入,k
j
可以是关连到节点k的节点j的输出,并且w
jk
可以是节点j和节点k之间的加权系数。在特定实施例中,输入层的节点的输入可以基于表示对象的向量。尽管本公开描述了节点的特定输入和输出,但是本公开考虑了节点的任何合适的输入和输出。此外,尽管本公开可以描述节点之间的特定关连和权重,但是本公开考虑了节点之间的任何合适的关连和权重。
40.在特定实施例中,可以使用训练数据来训练ann。作为示例而不是作为限制,训练数据可以包括ann 800的输入和预期输出。作为另一个示例而不是作为限制,训练数据可以包括向量,每个向量表示训练对象和每个训练对象的预期标签。在特定实施例中,训练ann可以包括通过优化目标函数来修改与ann的节点之间的关连相关联的权重。作为示例而不是作为限制,可以使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降)来反向传播作为表示训练对象的每个向量之间的距离测量的平方和误差(例如,使用最小化平方和误差的成本函数)。在特定实施例中,可以使用丢弃技术来训练ann。作为示例而不是作为限制,在训练时可以暂时忽略一个或更多个节点(例如,不接收输入并且不生成输出)。对于每个训练对象,ann的一个或更多个节点都可以有被忽略的一定概率。针对特定训练对象忽略的节点可以不同于针对其他训练对象忽略的节点(例如,可以逐个对象地临时忽略节点)。尽管本公开描述了以特定方式训练ann,但是本公开设想了以任何合适的方式训练ann。
41.系统和方法
42.图9示出了示例计算机系统900。在特定实施例中,一个或更多个计算机系统900执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统900提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统900上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统900的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系统。
43.本公开设想了任何合适数量的计算机系统900。本公开设想了采取任何合适的物理形式的计算机系统900。作为示例而不是作为限制,计算机系统900可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(诸如例如,模块上计算机(com)或模块上系统(som))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(pda)、服务器、平板计算机系统、或者这些中的两个或更多个的组合。在适当的情况下,计算机系统900可以包括一个或更多个计算机系统900;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统900可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统900
可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统900可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
44.在特定实施例中,计算机系统900包括处理器902、存储器904、存储装置906、输入/输出(i/o)接口908、通信接口910和总线912。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
45.在特定实施例中,处理器902包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器902可以从内部寄存器、内部高速缓存、存储器904或存储装置906中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器904或存储装置906。在特定实施例中,处理器902可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器902包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器902可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(tlb)。在指令高速缓存中的指令可以是在存储器904或存储装置906中的指令的副本,并且指令高速缓存可以加速处理器902对那些指令的检索。在数据高速缓存中的数据可以是:在存储器904或存储装置906中的数据的副本,用于使在处理器902处执行的指令进行操作;在处理器902处执行的先前指令的结果,用于由在处理器902处执行的后续指令访问或者用于写到存储器904或存储装置906;或其他合适的数据。数据高速缓存可以加速由处理器902进行的读或写操作。tlb可以加速关于处理器902的虚拟地址转译。在特定实施例中,处理器902可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器902包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器902可以包括一个或更多个算术逻辑单元(alu);是多核处理器;或者包括一个或更多个处理器902。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
46.在特定实施例中,存储器904包括用于存储用于使处理器902执行的指令或用于使处理器902操作的数据的主存储器。作为示例而不是作为限制,计算机系统900可以将指令从存储装置906或另一个源(诸如例如,另一个计算机系统900)加载到存储器904。处理器902然后可以将指令从存储器904加载到内部寄存器或内部高速缓存。为了执行指令,处理器902可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器902可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器902然后可以将这些结果中的一个或更多个写到存储器904。在特定实施例中,处理器902仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器904(而不是存储装置906或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器904(而不是存储装置906或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器902耦合到存储器904。如下所述,总线912可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(mmu)驻留在处理器902和存储器904之间,并且便于由处理器902请求的对存储器904的访问。在特定实施例中,存储器904包括随机存取存储器(ram)。在适当的
情况下,该ram可以是易失性存储器。在适当的情况下,该ram可以是动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可以是单端口ram或多端口ram。本公开设想了任何合适的ram。在适当的情况下,存储器904可以包括一个或更多个存储器904。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
47.在特定实施例中,存储装置906包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置906可以包括硬盘驱动器(hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(usb)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置906可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置906可以在计算机系统900的内部或外部。在特定实施例中,存储装置906是非易失性固态存储器。在特定实施例中,存储装置906包括只读存储器(rom)。在适当的情况下,该rom可以是掩模编程rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可变rom(earom)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置906。在适当的情况下,存储装置906可以包括便于在处理器902和存储装置906之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置906可以包括一个或更多个存储装置906。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
48.在特定实施例中,i/o接口908包括提供用于在计算机系统900和一个或更多个i/o设备之间的通信的一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统900可以包括这些i/o设备中的一个或更多个。这些i/o设备中的一个或更多个可以实现在人和计算机系统900之间的通信。作为示例而不是作为限制,i/o设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的i/o设备、或这些中的两个或更多个的组合。i/o设备可以包括一个或更多个传感器。本公开设想了任何合适的i/o设备以及用于它们的任何合适的i/o接口908。在适当的情况下,i/o接口908可以包括使处理器902能够驱动这些i/o设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,i/o接口908可以包括一个或更多个i/o接口908。尽管本公开描述并示出了特定的i/o接口,但是本公开设想了任何合适的i/o接口。
49.在特定实施例中,通信接口910包括提供用于在计算机系统900和一个或更多个其他计算机系统900或一个或更多个网络之间的通信(例如,基于包(packet

based)的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口910可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(nic)或网络适配器,或用于与无线网络(例如wi

fi网络)进行通信的无线nic(wnic)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口910。作为示例而不是作为限制,计算机系统900可以与自组织网络、个域网(pan)、局域网(lan)、广域网(wan)、城域网(man)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统900可以与无线pan(wpan)(例如,蓝牙wpan)、wi

fi网络、wi

max网络、蜂窝电话网络(例如,全球移动通信系统(gsm)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统900可以包括用于这些网络中的任一个的任何合适的通信接口
910。在适当的情况下,通信接口910可以包括一个或更多个通信接口910。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
50.在特定实施例中,总线912包括将计算机系统900的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线912可以包括加速图形端口(agp)或其他图形总线、扩展工业标准体系结构(eisa)总线、前端总线(fsb)、hypertransport(ht)互连、工业标准体系结构(isa)总线、infiniband互连、低引脚数(lpc)总线、存储器总线,微通道体系结构(mca)总线、外围部件互连(pci)总线、pci

express(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线912可以包括一个或更多个总线912。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
51.在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字(secure digital)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
52.其它
53.本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a或b”意指“a、b或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a和b”意指“a和b,联合地或各自地”。
54.本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何组件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的组件的引用包括该装置、系统、组件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或组件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献