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

说话头的小样本合成的制作方法

2022-06-16 07:06:39 来源:中国专利 TAG:

说话头的小样本合成
1.相关申请的交叉引用
2.本技术要求于2020年10月8日提交的名为“说话头的小样本合成(few-shot synthesis of talking heads)”的美国临时专利申请no.63/198,287的优先权,通过引用将其全部公开内容合并本文。
技术领域
3.本说明书一般涉及用于合成内容以供呈现的方法、装置和算法。


背景技术:

4.深度逆渲染一般包括对于具有空间变化外观的潜在嵌入空间中的外观参数进行优化。深度逆渲染可以包括使用神经网络来模拟对象的外观。可以使用这种神经网络来学习潜在嵌入空间。潜在空间可以表示从中获得低维对象表示的空间。嵌入这种空间表示其中将低维数据映射到原始较高维图像空间的方式。


技术实现要素:

5.通过在系统上安装软件、固件、硬件或它们的组合,可将一个或多个计算机的系统配置为进行特定操作或动作,所述软件、固件、硬件或它们的组合在操作中单独或共同导致系统进行所述动作。通过包括在由数据处理设备执行时使得所述设备进行所述动作的指令,可以将一个或多个计算机程序配置为进行特定操作或动作。
6.在一个一般方面,描述了利用具有至少一个处理装置的图像处理系统来进行以下操作的系统和方法,所述操作包括:接收用户的多个输入图像,基于从多个输入图像提取的第一组特征和从多个输入图像提取的第二组特征来生成三维网格代理。三维网格代理可以包括面部网格代理和平面代理。所述方法还可包括基于三维网格代理和多个输入图像来生成神经纹理。可选地,所述方法包括至少部分地基于三维网格代理和神经纹理来生成用户的表示。所述方法还可以包括从三维网格代理中对神经纹理的至少一部分进行采样。响应于向神经渲染器提供被采样的至少一部分,所述方法可以包括从神经渲染器接收图像处理系统先前未捕捉(例如,未见)的用户的合成图像。
7.这些和其他方面可以单独或组合包括以下一个或多个方面。根据一些方面,本文要求保护的方法、系统和计算机可读介质可以包括以下特征(或其任何组合)中的一个或多个(例如,全部)。
8.在一些实施方式中,提取的所述第一组特征包括表示用户面部的特征,并且提取的所述第二组特征包括表示用户头发和一部分躯干的特征。在一些实施方式中,神经纹理是使用多个输入图像生成的学习神经纹理,其中多个输入图像包括用户的少于四个捕捉图像帧。
9.在一些实施方式中,生成所述神经纹理包括:为每个输入图像生成潜在表示;将为每个输入图像生成的表示聚合到向量中;将所述向量提供给纹理生成器网络;以及从所述
纹理生成器网络接收表示所述用户的神经纹理。在一些实施方式中,生成神经纹理包括:基于与输入图像相关联的深度图像和uv映射,将提取的第一组特征和第二组特征投影到几何感知特征空间中,其中投影包括生成一组图像,所述一组图像具有多个输入图像的匹配分辨率。生成神经纹理还包括:将一组图像扭曲到uv空间中,从而为每个输入图像生成纹理;为每个纹理生成纹理空间中每个点的得分映射,该得分映射指示相对应的输入图像中的可见性度量;对每个得分映射应用soft-max操作,从而为每个输入图像生成注意力权重;以及根据注意力权重确定加权平均值,根据加权平均值聚合纹理。
10.在一些实施方式中,生成的用户的表示代表神经纹理中表示的每个表面点的外观,并且其中,所述方法还包括存储每个表面点的外观描述符,以表示关于用户的外观的高频细节。在一些实施方式中,生成合成图像以通过用于视频会议的经过校正的视角来描绘用户,所述经过校正的视角模拟注视与提供视频会议的系统相关联的相机装置的用户的视图。
11.所述技术的实施方式可以包括计算机可访问介质上的硬件、方法或过程或计算机软件。在以下的说明书和附图中给出一个或多个实施方式的细节。根据说明书和附图以及权利要求,其他特征将显而易见。
附图说明
12.图1是示出根据本公开所述实施方式,用于在显示装置上显示合成内容的示例性3d内容系统的框图。
13.图2是根据本公开所述实施方式,用于合成内容以供在显示器上渲染的示例性系统的框图。
14.图3a和图3b示出根据本公开所述实施方式,通过组合面部网格代理和平面代理生成的增强网格代理的示例。
15.图4是根据本公开所述实施方式,用于生成合成内容以供在显示器上渲染的示例性架构的框图。
16.图5是根据本公开所述实施方式,用于根据聚合的潜在纹理技术生成神经纹理的示例性架构的框图。
17.图6是根据本公开所述实施方式,使用逆渲染技术生成神经纹理的示例性架构的框图。
18.图7是示出根据本公开所述实施方式,使用基于3d代理几何模型的神经纹理生成合成内容的过程的一个示例的流程图。
19.图8示出可与本文所述技术一起使用的计算机装置和移动计算机装置的示例。
20.不同附图中相同的附图标记表示相同的元件。
具体实施方式
21.一般而言,本文描述与对图像内容的新颖(例如未见的)视图进行模拟相关的示例。例如,本文档包括关于使用相对较少的输入图像对说话头(例如用户的头部和/或躯干)的新颖视图进行模拟的示例。说话头通常可包括具有头部、颈部和/或躯干的一个或多个部分的视图。如本文所使用的,新颖(例如未见的)视图可以包括已经基于相机捕捉的图像内
容和/或视频内容的一个或多个帧被解释(例如,合成、内插、模拟等)的图像内容和/或视频内容。对相机捕捉的图像内容和/或视频内容的解释可以与本文所述技术结合使用,以创建捕捉的图像内容和/或视频内容的未见版本和视图(例如,姿势、表情、角度等)。
22.在用户的高质量三维(3d)视图不可得时,进行小样本(few-shot)新颖视图合成来生成用户头部和/或身体(例如躯干)的视图可能具有挑战性。本文所述系统和技术可以提供一种使用少量图像作为输入来生成新颖躯干视图的高质量图像内容(例如图像和/或视频)的方式。在一些实施方式中,可以将少量图像与一个或多个3d代理平面以及一个或多个神经纹理结合使用以模拟3d特征,从而能够在二维(2d)或3d显示器的屏幕上准确渲染3d头部和/或躯干的未见视图。在一些实施方式中,神经纹理基于聚合潜在纹理技术。在一些实施方式中,神经纹理基于逆渲染技术。如本文所使用的,术语“小样本”表示小样本机器学习技术的使用,其中进行机器学习以从少量示例来理解新概念。
23.在一些实施方式中,为了合成由神经纹理表示的用户的语音和/或表情的视频序列,可以将本文所述的神经纹理用于生成未见视图。例如,可以将神经纹理用于基于一个或多个图像(例如(多个)帧、视频等)来生成逼真的头部(和/或躯干)图像。在一些实施方式中,可以使用延迟神经渲染技术(例如深度神经网络)来生成神经纹理,该技术可以通过将图形与学习组件相结合来合成图像。
24.如本文所使用的,神经纹理表示被训练为图像捕捉过程的一部分的一个或多个学习特征映射。例如,在捕捉对象时,通过将对象的特征映射到对象的3d代理几何来生成特征映射,可以生成神经纹理。在一些实施方式中,可以基于与对象的视图和捕捉姿势相关联的潜在代码来生成对象的神经纹理。在一些实施方式中,将神经纹理存储在3d网格顶部的一个或多个2d映射中。例如,这种神经纹理可以包括在场景捕捉期间学习的一组优化的特征映射。在一些实施方式中,例如,神经纹理可以对被捕捉对象的表面外观的高级描述进行编码,所述高级描述可以通过延迟神经渲染器来解释。
25.在一些实施方式中,例如,本文所述技术可用于合成图像,该图像对于在多路2d或3d视频会议中使用的2d或3d显示器的屏幕上的显示而言是表现准确和逼真的图像。例如,本文所述技术和模型可用于生成和显示躯干和面部的准确和逼真的视图(例如,图像内容、视频内容)。视图包括传统上难以通过3d方式描绘的未见视图。传统系统通常不合成躯干部分的新颖视图。例如,头发、颈部和肩部可能缺乏明确定义的结构,因此在传统系统中可能无法由代理几何来表示。本文所述系统和方法提供了对面部区域以及面部区域之外的区域进行模拟的优点,以确保神经纹理对防止降低代理几何的质量具有鲁棒性。特别地,本文所述系统和方法用单个平面来增强面部网格,作为面部区域之外的头部区域的粗略几何代理。
26.在一些实施方式中,本文所述技术可用于电影、视频、短片、游戏内容或包括可受益于本文所述小样本重建技术的用户躯干或面部的其他格式的娱乐目的。例如,本文所述小样本重建技术可用于为在图像和/或视频内容中渲染的移动角色生成躯干、面部和头发内容。
27.在一些实施方式中,本文所述技术可由虚拟助理装置或其他智能代理人使用,这些虚拟助理装置或其他智能代理人可以进行图像处理,以使用本文所述小样本重建技术识别对象、重新创建对象和/或根据这些对象生成合成图像。
28.在一些实施方式中,本文所述技术使用深度逆渲染方法来进行用户的小样本新颖视图合成。所述技术可以在源图像中保留用户的视觉身份。例如,所述技术可以利用包括3d网格代理和(例如,学习)神经纹理的用户的表示。例如,网格代理可以是或包括多边形(例如三角形)网格。特别地,本文所述技术接收包括具有任何姿势和表情的用户的一个或多个帧的输入图像。所接收的输入图像被用于计算用户的每个帧的潜在表示,其中在特定纹理空间上使用逆渲染对每个帧进行采样。可以使用注意力机制在纹理空间中进一步聚合潜在表示,该注意力机制学习融合来自输入视图的信息,以生成与传统的图像生成系统相比得到改善和更加完整的纹理。然后,本文所述技术可通过使用面部网格算法对纹理进行采样来生成新颖和未见的视图/图像帧,所述面部网格算法可以使用神经渲染器来重新处理。本文所述技术提供了以下优点:在实现准确的用户躯干重建的同时,保留用户识别视觉特征。
29.传统的系统可以通过对输入进行编码并聚合到单个潜在向量中来进行小样本视图合成。这种潜在向量将对象的形状、身份和外观组合成单个向量。因为每个表面点的外观通常被压缩成这种潜在向量,所以可能无法表示和重建特别的视觉身份特定信息以及高频图像细节,因为信息被过度聚合并且无法从单个潜在向量中分离和解析出来。本文所述系统和方法将对象(例如,头部、躯干、用户等)的表示分解(factor)为3d网格代理和学习神经纹理。此外,系统和方法使用神经纹理来表示每个表面点的对象外观。使用神经纹理来存储每个表面点的外观描述符提供了一种表示高频图像细节和更多身份敏感信息量的方法。
30.此外,本文所述系统和方法利用面部网格算法来定义用户面部的几何表示,并结合粗略几何代理来表示用户的头部和/或躯干结构的其余部分。在一些实施方式中,粗略几何代理包括至少一个平面来表示头发、一个或多个肩部、颈部等。
31.图1是示出根据本公开所述实施方式,用于在立体显示装置中显示内容的示例性3d内容系统100的框图。例如,3d内容系统100可以由多个用户使用来进行3d视频会议通信(例如,远程呈现会话)。一般而言,图1的系统可用于在2d或3d视频会议期间捕捉用户的视频和/或图像,并且使用本文所述系统和技术对用户面部和/或躯干部分的形状和外观进行模拟,从而对描绘视频会议会话中的用户面部和/或躯干部分的准确图像进行渲染。
32.系统100可以受益于本文所述技术的使用,因为这种技术例如可以在视频会议内生成并显示姿势、表情和用户图像部分,其准确地表示视频会议中的用户,但是可能是实际捕捉的图像帧的计算得到的潜在表示。计算得到的潜在表示可以与本文所述技术一起使用,以生成用户的例如可经由系统100以2d和/或3d方式向另一个用户显示的准确纹理和影像。
33.如图1所示,第一用户102和第二用户104正在使用3d内容系统100。例如,用户102和104正在使用3d内容系统100来参与3d远程呈现会话。在这种示例中,3d内容系统100可以允许每个用户102和104看到对方的高度逼真和视觉上一致的表示,从而帮助用户以类似于彼此的物理存在的方式进行交互。
34.每个用户102、104可具有对应的3d系统。在此,用户102具有3d系统106,而用户104具有3d系统108。3d系统106、108可以提供与3d内容相关的功能,包括但不限于捕捉用于3d显示的图像、处理和呈现图像信息、以及处理和呈现音频信息。3d系统106和/或3d系统108可以构成被集成为一个单元的传感装置的集合。3d系统106和/或3d系统108可以包括参照图2至图6以及图8所述的一部分或全部组件。
35.3d内容系统100可以包括一个或多个2d或3d显示器。在此,为3d系统106提供3d显示器110,并且为3d系统108提供3d显示器112。3d显示器110、112可以使用多种类型3d显示技术中的任一种来为各个观看者(在此,例如是用户102或用户104)提供自动立体视图。在一些实施方式中,3d显示器110、112可以是独立单元(例如,自支撑或悬挂在墙上)。在一些实施方式中,3d显示器110、112可以包括或可以访问可穿戴技术(例如,控制器、头戴式显示器等)。在一些实施方式中,显示器110、112可以是2d显示器。
36.一般而言,显示器(诸如显示器110、112)可以在不使用头戴式显示器(hmd)装置的情况下提供近似现实世界中物理对象的3d光学特性的影像。一般而言,本文所述显示器包括平板显示器、双凸透镜(例如微透镜阵列)和/或视差屏障,以将图像重定向到与显示器相关联的多个不同观看区域。
37.在一些实施方式中,显示器110、112可以包括高分辨率和无须眼镜的双凸透镜3d显示器。例如,显示器110、112可以包括微透镜阵列(未示出),微透镜阵列包括具有耦合(例如,接合)到显示器的微透镜的玻璃间隔物的多个透镜(例如微透镜)。可以将微透镜设计为使得:从选择的观看位置,显示器用户的左眼可以观看第一组像素,而用户的右眼可以观看第二组像素(例如,其中第二组像素与第一组像素互不包含)。
38.在一些示例性显示器中,可以有这样的单个位置:其提供由这种显示器提供的图像内容(例如,用户、对象等)的3d视图。用户可以坐在所述单个位置来体验适当的视差、最小的失真和逼真的3d图像。如果用户移动到不同的物理位置(或改变头部位置或眼睛注视位置),图像内容(例如,用户、用户佩戴的对象和/或其他对象)可能开始显得不太现实、2d、和/或失真。本文所述系统和技术可以重新配置从显示器投影的图像内容,以确保用户可以四处走动,但仍然实时地体验适当的视差、低失真率和逼真的3d图像。因此,本文所述系统和技术提供以下优点:保持和提供用于向用户显示的3d图像内容和对象,而不管用户正在观看3d显示器时发生的任何用户移动。
39.如图1所示,可以将3d内容系统100连接到一个或多个网络。在此,将网络114连接到3d系统106和3d系统108。网络114可以是公共可用网络(例如因特网)或专用网络,仅仅作为两个示例。网络114可以是有线的、无线的、或者是两者的组合。网络114可以包括或利用一个或多个其他装置或系统,包括但不限于一个或多个服务器(未示出)。
40.3d系统106、108可以包括与3d信息的捕捉、处理、传输或接收和/或3d内容的呈现有关的多个组件。3d系统106、108可以包括一个或多个相机,用于捕捉要包括在3d呈现中的图像的图像内容。在此,3d系统106包括相机116和118。例如,可以将相机116和/或相机118基本上设置在3d系统106的壳体内,使得各个相机116和/或118的物镜或镜头通过壳体中的一个或多个开口来捕捉图像内容。在一些实施方式中,相机116和/或118可以与壳体分离,诸如以独立装置的形式(例如,具有与3d系统106的有线和/或无线连接)。可以将相机116和118定位和/或定向从而捕捉用户(例如用户102)的足够具有代表性的视图。虽然相机116和118通常不会遮挡用户102的3d显示器110的视图,但是可以任意选择相机116和118的放置。例如,可以将相机116、118中的一个放置在用户102面部上方某处,并且将另一个放置在面部下方某处。例如,可以将相机116、118中的一个放置在用户102面部右侧某处,并且将另一个放置在面部左侧某处。例如,3d系统108可通过类似的方式包括相机120和122。也可以有附加相机。例如,可以将第三相机放置在显示器110附近或后面。
41.在一些实施方式中,3d系统106、108可以包括一个或多个深度传感器以捕捉要在3d呈现中使用的深度数据。可以将这种深度传感器视为3d内容系统100中的深度捕捉组件的一部分,以用于表征3d系统106和/或108所捕捉的场景,从而在3d显示器上正确地表示场景。此外,系统可以跟踪观看者头部的位置和定向,使得能够通过与观看者当前视角相对应的外观来渲染3d呈现。在此,3d系统106包括深度传感器124。通过类似的方式,3d系统108可包括深度传感器126。可以将多种类型的深度感测或深度捕捉的任一种用于生成深度数据。
42.在一些实施方式中,进行辅助立体深度捕捉。例如,可以使用光点来照亮场景,并且可以在两个相应的相机之间进行立体匹配。可以使用选定波长或波长范围的波来完成这种照明。例如,可以使用红外光(ir)。例如,在一些实施方式中,当在2d装置上生成视图时,可以不使用深度传感器。深度数据可以包括或基于与反映深度传感器(例如深度传感器124)与场景中的对象之间的距离的场景有关的任何信息。对于与场景中的对象相对应的图像中的内容,深度数据反映到所述对象的距离(或深度)。例如,(多个)相机与深度传感器之间的空间关系可以是已知的,并且可用于将来自(多个)相机的图像与来自深度传感器的信号相关联,以生成图像的深度数据。
43.可以处理由3d内容系统100捕捉的图像并在之后将其显示为3d呈现。如图1的示例所示,面部104'、躯干和头发104”的3d图像被呈现在3d显示器110上。这样,用户102可以将3d图像104'、躯干和头发104”感知为用户104的3d表示,用户104可以远离用户102。3d图像102'、躯干和头发102”被呈现在3d显示器112上。这样,用户104可以将3d图像102'感知为用户102的3d表示。
44.3d内容系统100可以允许参与者(例如用户102、104)参与相互之间和/或与其他人的音频通信。在一些实施方式中,3d系统106包括扬声器和麦克风(未示出)。例如,3d系统108可以类似地包括扬声器和麦克风。这样,3d内容系统100可以允许用户102和104参与相互之间和/或与其他人的3d远程呈现会话。一般而言,本文所述系统和技术可与系统100一起运行以生成图像内容和/或视频内容用于在系统100的用户之间显示。
45.生成要在远程呈现系统100上显示的图像内容可以包括使用任意数量的神经纹理134以及一个或多个代理几何,代理几何可以是网格代理几何136。如本文所使用的,网格代理几何表示被映射到特定网格几何的两个或更多个视图相关纹理。例如,网格代理几何136可以表示多个组合代理几何,诸如面部代理几何与平面代理几何的组合。在操作中,系统100可以访问和/或以其他方式利用系统200从输入图像中提取特征,使用这些特征和一个或多个代理几何来生成一个或多个神经纹理134,并且基于神经纹理134和网格代理几何136来合成一个或多个新颖视图。
46.图2是根据本公开所述实施方式,用于合成内容以供渲染的示例性系统200的框图。系统200可用作或包括在本文所述的一种或多种实施方式中,和/或可用于进行本文所述图像内容的合成、处理、模拟或呈现的一个或多个示例的(多个)操作。可以根据本文所述一个或多个示例来实现整个系统200和/或其各个组件中的一个或多个。
47.系统200可包括一个或多个3d系统202。在所示的示例中,示出3d系统202a、202b到202n,其中索引n指示任意数字。3d系统202可以提供视觉和音频信息的捕捉用于2d或3d呈现,并转发2d或3d信息用于处理。这种信息可包括场景的图像、关于场景的深度数据和来自场景的音频。例如,2d/3d系统202可用作系统106和2d/3d显示器110(图1)或包括在其中。
painter)220、神经纹理生成器222、图像扭曲引擎224和特征提取器226。可以将纹理处理器/聚合器218配置为使用小样本嵌入器网络来生成神经纹理,诸如神经网络244的嵌入器网络245。除了图像潜在表示(例如,图像潜在向量230)之外,还可将嵌入器网络用于生成每图像纹理潜在向量228。然后,可以通过纹理处理器聚合器218来聚合k样本纹理潜在。然后,可以将聚合的纹理潜在提供给纹理生成器网络(例如生成器网络247),以获得目标主体(例如用户图像)的神经纹理134。(多个)纹理潜在向量228和(多个)图像潜在向量230以虚线形式示出,以指示每个元素在系统200中可以是可选的,例如,如果纹理生成器216使用不包括聚合潜在的方法来生成神经纹理。
59.在一些实施方式中,系统200可以构建特定内容(例如,对象、特征、图像帧等)的潜在空间,并且可以将这种内容的潜在空间馈送到神经网络244,然后神经网络244例如可以生成每个特定内容类型的纹理映射240。在一些实施方式中,系统200可以从训练数据中减少平面代理的实例的数量,以执行小样本重建,同时使用特定对象的剩余代理来训练神经网络的类别等级模型。例如,剩余代理可以表示发型图像,其可用于训练神经网络244的头发类别。这种类别可以用于模拟特定用户图像上的头发的新视图。
60.例如,在一些实施方式中,纹理处理器/聚合器218可以不使用聚合的纹理潜在,但是可以采用使用uv映射232和网格代理几何136的逆渲染来生成神经纹理。uv映射232可以表示包括在特定网格代理中的可见内容。可见内容可以用于根据纹理坐标来生成一个或多个uv映射232。例如,可以将uv映射232提供给特征提取器226以调节特定图像集合中的特征的提取(提取到特征映射238中)。uv映射232可以使得系统200能够允许神经网络244获得关于特定图像和/或图像中表示的特征的相关数据。
61.在一些实施方式中,纹理处理器/聚合器218可以生成考虑特定用户特征的用户表示(例如,存储在纹理潜在向量228和/或图像潜在向量230中的潜在表示)。例如,聚合器218可以获得输入图像(例如,在任何姿势和表情下人员的多个帧)并且可以计算每个输入帧的潜在表示(例如,纹理潜在向量228)。通过使用纹理空间上的逆渲染,可以使用生成的用户表示(例如,纹理潜在向量228和/或图像潜在向量230)对图像进行采样。可以使用注意力机制在纹理空间中进一步聚合潜在表示,该注意力机制学习融合来自输入视图的信息以创建得到改善和更加完整的纹理134。为了生成新颖框架(例如,合成视图250),使用潜在表示(例如,用户的生成表示)从网格代理几何形状136中对神经纹理134进行采样,并且使用神经渲染器248对神经纹理134进行重新处理。
62.系统200包括或可以访问至少一个神经网络244。如图所示,神经网络244至少包括嵌入器网络245和生成器网络247。嵌入器网络245包括一个或多个卷积层和下采样层。生成器网络247包括一个或多个卷积层和上采样层。
63.纹理描画器220可以基于围绕特定缺失内容部分的像素的局部邻域生成可能从特定纹理缺失的内容。在一些实施方式中,纹理描画器220可以基于纹理的大部分是围绕垂直轴对称的而工作,并且因此,可以根据纹理的另一半的对应值来近似估计纹理的一半的缺失部分。系统200可以将聚合的神经纹理与神经纹理的水平翻转版本级联在一起。可以将神经纹理的级联版本提供给纹理描画器220以生成最终的对称神经纹理。
64.神经纹理生成器222可以生成神经纹理134。神经纹理134表示作为图像捕捉过程的一部分来训练的学习特征映射238。例如,当对象被捕捉时,可以使用特征映射238和对象
的一个或多个3d代理几何136来生成神经纹理。在操作中,系统200可以生成并存储特定对象(或场景)的神经纹理134,作为所述对象的一个或多个3d代理几何136顶部的映射。例如,可以基于与所识别的类别的每个实例相关联的潜在代码以及与姿势相关联的视图来生成神经纹理。
65.可见性得分236可以表示捕捉对象的特定像素或特征的可见性。每个可见性得分236可以表示每个神经纹理的单个标量值,其指示图像的哪些部分(例如,像素、特征等)在输入图像的特定视图中是可见的。例如,如果用户面部的最左侧在用户的输入图像中是不可见的,则表示用户面部最左侧的像素的可见性得分236可以被加权为低,而在输入图像中可以很好地观看和/或捕捉的其他面积可以被加权为高。
66.图像扭曲引擎224将图像从输入图像空间(例如,特征空间)扭曲到纹理空间。例如,将特定输入图像扭曲到uv空间以生成神经纹理(在纹理空间中)。
67.特征提取器226是分析图像以生成每个像素的特征的u-net神经网络。特征提取器220可以使用这种特征来生成特征映射238和纹理映射240。
68.采样器246可以表示为了任何新颖视图从特定网格代理几何采样的2d采样器。然后,将采样的纹理提供给神经渲染器248。
69.神经渲染器248可以生成例如利用神经网络244来渲染的对象(例如用户)和/或场景的中间表示。可以将神经纹理134用于连同u-net(诸如与神经渲染器248一起操作的神经网络244)联合学习纹理映射(例如,纹理映射240)上的特征。例如,利用对象专用卷积网络,神经渲染器248可以通过模拟真实外观(例如,基准真相)与漫反射重投影之间的差异来合并视图相关效果。这种效果可能难以基于场景知识进行预测,因此,可以将基于gan的损失函数用于渲染逼真的输出。
70.在操作中,服务器214可以获得或接收输入图像242。纹理生成器216可以使用一个或多个神经网络244来处理输入图像242。服务器214可以使用纹理生成器216、采样器246和神经渲染器248以生成合成视图250。
71.根据以下等式[1],可以使用重建损失(l
cnt
)、身份保留损失(l
id
)和对立损失(l
adv
)的混合来端到端地训练系统200和系统200内的神经网络244:
[0072][0073]
根据以下等式[2],基于预训练的vgg16网络以及预训练的人脸算法网格网络,使用l1损失和感知损失的混合将基准真相目标图像i
t
和预测之间的重建误差计算如下:
[0074]
l
cnt
=λ
l1
l1 λ
vgg
l
vgg
λ
fn
l
fn
ꢀꢀꢀ
[2]
[0075]
系统200可以进行主体微调。例如,在测试时,可将小样本重建应用于未见的测试主体。在一些实施方式中,小样本的数量不需要固定并且可以在不同的测试主体之间变化。给定目标对象的一组小样本帧,系统200可以进行神经网络244或系统200内的其他网络的简单微调以拟合目标主体。可以将微调应用于系统200的任何模块子集。例如,可以将微调应用于纹理生成器216(表示为g
tex
)、神经渲染器248(表示为r)和鉴别器d(未示出)。此外,系统可以通过直接优化特定目标主体的潜在表示来微调网络权重。例如,系统200可以将预测的神经纹理视为自由变量,并且可以与神经渲染器248联合优化神经网络以更好地拟合目标主体。优化神经纹理可以提供比优化潜在向量表示更具可解释性的优点,因为将神经
纹理可视化可以描绘在微调阶段添加的高频细节。
[0076]
这里将上述示例性组件描述为在服务器214中实现,服务器214可以通过网络260(可以与图1中的网络114相似或相同)与一个或多个3d系统202通信。在一些实施方式中,纹理生成器216和/或其组件可以替代性或附加性地在一部分或全部3d系统202中实现。例如,可以通过发起3d信息的系统在将3d信息转发到一个或多个接收系统之前进行上述模拟和/或处理。作为另一个示例,发起系统可以将图像、模拟数据、深度数据和/或对应信息转发到一个或多个接收系统,接收系统可以进行上述处理。可以使用这些方法的组合。
[0077]
系统200是包括相机(例如相机204)、深度传感器(例如深度传感器206)和3d内容生成器(例如纹理生成器216)的系统的示例,3d内容生成器使处理器执行存储在存储器中的指令。这种指令可以使处理器使用3d信息中包括的深度数据(例如,通过深度处理组件)来识别3d信息中包括的场景的图像中的图像内容。处理器可以通过对神经纹理134进行采样来生成经修改的3d信息,例如,可以将神经纹理134提供给纹理生成器216以正确地描绘合成视图250。
[0078]
如本文所述,至少部分地基于增强面部网格,通过对于与访问显示器(例如,显示器212)的用户相关联的双眼的适当视差和观看配置,合成视图250表示特定对象(例如,用户图像412、512、610)的3d立体图像。例如,每次用户在观看显示器时移动头部位置的时候使用系统200,可以基于来自神经网络244的输出来确定合成视图250的至少一部分。在一些实施方式中,合成视图250表示用户的面部以及在捕捉用户面部的视图内围绕用户面部的用户的其他特征。
[0079]
在一些实施方式中,系统202和214的处理器(未示出)可以包括(或与之通信)图形处理单元(gpu)。在操作中,处理器可以包括或者可以访问存储器、存储和其他处理器(例如,cpu)。为了帮助图形和图像生成,处理器可以与gpu通信以在显示装置(例如,显示装置212)上显示图像。cpu和gpu可以通过高速总线连接,诸如pci、agp或pci-express。gpu可以通过另一个高速接口(例如hdmi、dvi或display port)连接到显示器。通常,gpu可以通过像素形式来渲染图像内容。显示装置212可以从gpu接收图像内容并且可在显示器屏幕上显示图像内容。
[0080]
图3a是根据本公开所述实施方式,通过将增强面部网格代理和平面代理组合作为粗略几何代理而生成的增强网格代理300的示例的框图。增强网格代理300可用于合成用户的图像和/或视频内容,包括但不限于与用户相关联的面部特征、头发特征和/或躯干特征。
[0081]
可以通过组合两个或更多个代理几何表示来生成增强网格代理300。例如,可以通过将使用3d增强面部网格代理302确定的用户面部的表示与平面代理304组合来生成增强网格代理300,在该示例中,平面代理304表示用户头发和/或用户躯干的一部分(例如,不包括在面部网格代理302中的用户头部/躯干部分的其余部分)。例如,可以将面部网格算法与单个平面几何代理相结合以生成用户头部和躯干图像的准确合成。例如,如图1所示,可以将面部网格代理302和平面代理304表示为网格代理几何136。
[0082]
面部网格代理302可以表示与输入图像中的可见内容相对应的纹理坐标。例如,可见内容可以包括代理302的面部部分,但是不一定包括代理302的面部部分周围的背景。可见内容可用于根据纹理坐标生成uv映射(例如,uv映射232)。例如,可以将uv映射232提供给特征提取器226以调节特定图像集合中的特征的提取。uv映射232可以使得系统200能够允
许神经网络244获得关于特定图像和/或图像中表示的特征的相关数据。
[0083]
可以使用卷积神经网络来生成面部网格,在给定图像的情况下,卷积神经网络输出一系列系数,这些系数表示一组指定顶点的3d位置,指定顶点预定义的拓扑结构表示面部。所述3d位置使得它们与输入图像的空间坐标对齐,而深度维度可以是任意的或采用公制单位。
[0084]
将平面代理304描绘为放置成包括用户面部(例如,在垂直于该平面的视图中)和周围面积(例如,头发、躯干等)的平面。平面代理304表示模拟用户头部的平面布告板。本文所述系统和技术可以利用其他对象和表示这些内容的平面代理形状以生成和渲染3d内容。例如,其他代理可包括但不限于盒体、圆柱体、球体、三角形等。
[0085]
平面代理可以表示纹理映射对象(或对象的一部分),其可以被用作复杂几何的替代。因为操纵和渲染几何代理比操纵和渲染对应的详细几何在计算上更少,所以平面代理表示可以提供用于重建视图的更简单的形状。平面代理表示可以被用于生成这种视图。当尝试操纵、重建和/或渲染具有高度复杂外观的对象(例如眼镜、汽车、云、树和草,仅仅作为一些示例)时,使用平面代理可以提供低计算成本的优点。类似地,由于强大的图形处理单元的可用性,通过使用3d代理几何生成映射来替代较低细节等级的几何,实时游戏引擎可以使用这些具有可以随距离进出交换的多个细节等级的代理(例如,几何表示)。
[0086]
在操作中,系统200可以例如通过使用提取的阿尔法掩码来计算头部部分的边框(例如,粗略可见外壳)来生成平面代理304。一般而言,对于头部部分中的任意数量的像素,阿尔法掩码表示特定像素颜色在重叠时如何与其他像素合并。然后,系统200可以指定用户头部图像中的感兴趣区域。例如,可以使用头部坐标来指定感兴趣区域。然后,系统200可以提取从对应的正交投影观察时与表面在概率上匹配的平面。
[0087]
一般而言,系统200可以为任意数量的图像生成平面代理,其可以用作输入到神经网络(例如,神经网络244)的训练数据。例如,神经网络可以确定如何正确显示相机捕捉的特定对象(例如,头部部分、面部部分等)。在一些实施方式中,例如,系统200可以通过组装包括头部部分的图像数据集并且使用检测到的姿势从基于姿势的视角模拟头部部分,来生成特定头部部分的视图。
[0088]
增强网格代理300可以用于确保面部以及与用户头部相关联的其他头部特征的准确表示和再现性。例如,为了在合成图像中包括面部面积之外的区域,可以使用增强网格代理300来生成对防止降低合成图像的质量具有鲁棒性的神经纹理。可以通过将表示3d变换的数据和表示图像透视的数据以及学习渲染技术进行组合来生成这种神经纹理,以合成新的图像内容。
[0089]
图3b示出了根据本公开所述实施方式,用于生成增强网格代理的示例性输入。例如,可以获得输入图像320。例如,输入图像320可以表示目标主体(例如,用户)。输入图像可以用于生成多个纹理映射。纹理映射可以表示用户的2d和3d图像。纹理映射使用2d图像表示,从而在uv空间中生成3d模型,其中“u”和“v”表示2d纹理轴。纹理映射可以由系统200使用,例如,将函数映射到3d表面上。函数域可以是1d、2d或3d,并且可以表示为数学函数(例如,阵列)。可通过可以映射到对象空间(例如,x、y和z坐标空间)的uv空间来定义纹理空间。系统200还可以使用纹理映射来预测新的纹理坐标。
[0090]
例如,系统200可以生成面部网格纹理映射322,网格纹理映射322可以用于生成面
部网格代理302。类似地,系统200可以生成头部代理u纹理映射324,头部代理u纹理映射324可以用于生成平面代理304。系统200生成的纹理映射可以用于生成神经纹理。例如,系统200可以使用面部网格代理302和面部网格纹理映射322来生成表示用户320的面部的神经纹理326。类似地,系统200可以使用平面代理304和头部代理纹理映射324来生成表示用户320的头部的其余部分(例如,头发、躯干等)的神经纹理328。因此,系统200可以通过将面部网格纹理326与头部代理纹理328组合来生成用户的学习神经纹理。一般而言,在学习神经纹理中表示每个表面点的外观。存储每个表面点的外观描述符提供了表示高频细节和准确的身份敏感信息的优点。
[0091]
图4是根据本公开所述实施方式,用于生成合成内容以供渲染的示例性架构400的框图。架构400包括多个输入图像402(例如,输入小样本),其可以少至三个输入图像。架构400还包括神经纹理生成器404以生成神经纹理406。架构400还包括2d采样模块408、神经渲染器410,其可以与神经纹理生成器结合使用以生成输入图像402中所示的用户的合成视图412。例如,神经渲染器410是包括和/或使用神经网络的渲染器。
[0092]
在操作中,给定目标对象(例如,用户)的小样本图像(例如,输入图像402),系统200可以在输入图像402中进行用户的新颖视图合成。例如,系统200可以使用神经纹理生成器404来处理输入图像402,并且将处理后的图像聚合以构建增强网格代理300和目标对象(例如,输入图像402的用户)的学习神经纹理406。然后,系统200可以从代理几何中对学习神经纹理406进行采样,并将采样点(例如,由采样模块408进行)输入到神经渲染器网络(例如,神经渲染器410),然后神经渲染器网络可以在输入图像402中合成用户的目标视图。
[0093]
系统200可以使用第一架构500来实现架构400,第一架构500包括编码器-解码器架构以生成输入图像402中的目标对象的神经纹理406。或者,系统200可以使用第二架构600来实现架构400,第二架构600使用逆渲染技术以生成输入图像402中的目标对象的神经纹理406。
[0094]
图5是根据本公开所述实施方式,用于使用聚合潜在纹理技术生成神经纹理的示例性架构500的框图。例如,可以使用神经纹理生成器222从神经网络244学习神经纹理(例如,神经纹理510)。可以调节系统200的纹理生成器216,例如使用图5的组件生成的采样神经纹理来实现架构400。纹理生成器216可以表示图像合成网络,图像合成网络可以在采样神经纹理(例如,神经纹理510)上进行调节,而不是在传统系统上进行调节,传统系统对图像内的稀疏2d地标进行采样。
[0095]
为了生成采样神经纹理,系统200可以获得输入图像502(在此描述为图像{i1,i2…
ik})。输入图像502可以包括相机装置捕捉的用户的多个视图(例如,姿势)。可以将输入视图提供给嵌入器网络,诸如嵌入器网络245。嵌入器网络245可以表示将输入图像502(例如,面部、躯干或用户部分的任何组合)映射到嵌入向量506(在此描述为{z1,z2…
zk})的网络,嵌入向量506通常存储与姿势无关的信息。在一些实施方式中,系统200可以向嵌入器网络245提供空间输入504。例如,可以将空间输入504表示为图3a的代理几何(例如,3d增强面部网格代理302和平面代理304)。3d增强面部网格代理302的代理几何与平面代理304组合以创建空间输入504。
[0096]
例如,可以使用聚合器218来聚合嵌入向量506。对向量506进行聚合的结果可以是聚合向量508(此处显示为z)。可以将聚合向量508提供给纹理生成器网络247。例如,纹理生
成器网络247表示可以映射聚合嵌入向量以生成神经纹理510的网络。输出的神经纹理510可以与架构400(使用系统200的组件)一起使用以生成新颖的合成视图512。
[0097]
在操作中,可以通过配置(小样本)嵌入器网络245(e)生成每图像纹理潜在向量来生成神经纹理510。对于i∈{1

k},系统200可将图像潜在表示为k样本纹理然后,使用平均等式来聚合k样本纹理潜在(示出为向量506),如以下等式[3]所示:
[0098][0099]
其中,聚合纹理潜在(示出为向量508)然后被提供给(纹理)生成器网络247(例如,g
tex
),该生成器网络247输出目标对象t=g
texztex
的神经纹理510(例如,t)。
[0100]
图6是根据本公开所述实施方式,使用逆渲染技术来生成神经纹理(例如,神经纹理602)的示例性架构600的框图。逆渲染技术可以包括任意数量的子处理模块。在以下示例中,至少使用三个子处理模块。第一子处理模块可以包括特征提取器网络226。第二子处理模块可以包括图像扭曲引擎224。第三子处理模块可以包括纹理处理器/聚合器218。
[0101]
给定主体(例如,用户)的小样本图像,系统200可以进行逆渲染技术,为用户构建对应的神经纹理。本文所述的逆渲染技术可以包括相对于用户的图像(例如,用户的头部、颈部、头发、躯干等)来进行场景的物理属性(例如,反射、几何、照明等)的估计。在架构600的示例性操作中,特征提取器网络f(.;φ)226可以接收输入图像(例如,红绿蓝(rgb)帧),其在此示出为通过相应的深度图像和uv映射进行增强的图像603(即,i1,i2...ik)。
[0102]
特征提取器网络226可以将k样本输入中的每一个输入投影到与输入图像x1…k具有相同分辨率的几何感知特征空间,其中:
[0103][0104]
接下来,投影图像被扭曲到uv空间以生成每个输入图像的神经纹理yi∈d(例如,纹理134)。纹理处理器网络p(.;ω)对每个神经纹理yi(例如,纹理134)进行后处理并且还输出额外的得分映射si,其中,在纹理空间中每个点处的得分指示它在对应输入图像中的可见性(例如,可见性得分236),如以下等式[5]所示:
[0105][0106]
例如,特征提取器226可以生成一个或多个特征映射238,表示为多个特征映射238(如图6所示)。特征映射238表示特征空间中输入图像的特征。例如,对于每个输入图像603,可以使用提取的图像特征来生成特征映射238。
[0107]
例如,可以使用图像扭曲引擎224来扭曲每个特征映射238以生成多个纹理映射240。例如,如果将三个输入图像提供给系统200,则特征提取器226可以提取三个特征映射,每个特征映射分别用于每个输入图像603。图像扭曲引擎224可以将三个特征映射238中的每一个扭曲成纹理映射240,从而产生三个纹理映射,如图6所示。
[0108]
接下来,使用纹理处理器/聚合器218的神经纹理生成器222可以对k个可见性得分236(例如,映射)应用soft-max,以获得每点注意力权重映射608{a1…ak
}。基于预测的注意力权重将k个神经纹理聚合为加权平均值,以通过注意力权重和可见性得分来表示聚合的k个神经纹理,它们在纹理空间中被聚合,如以下等式[6]所示:
[0109][0110]
聚合的纹理可以包含在任何输入视图中都不可见的缺失部分。纹理的缺失部分可以基于其确定的局部邻域进行描画。或者,可以通过假设纹理的大部分围绕垂直轴对称并且假设可从另一半的对应值近似估计出一半的缺失部分,来描画纹理的缺失部分。因此,纹理描画器220可以将聚合神经纹理与聚合神经纹理的水平翻转版本(例如,90度旋转)级联在一起。可将纹理的级联版本提供给纹理描画器网络g(.;ψ)(例如,纹理描画器220),纹理描画器网络可以输出最终神经纹理602。以下等式[7]表示纹理的级联版本:
[0111][0112]
其中,|表示通道式级联,hor_flip表示围绕垂直轴的水平翻转(例如,90度旋转)。
[0113]
神经纹理602表示在神经网络上训练的学习特征映射。在该示例中,神经纹理包括一个或多个覆盖在2d或3d网格代理上的映射。神经纹理602的部分604表示使用面部网格代理(例如,302)生成的纹理,而部分606表示使用平面代理(例如,304)捕捉头发和/或躯干部分而生成的纹理。部分604中的三个图像可以表示具有输入图像603的第一组特征点的三rgb彩色图像的九通道纹理。部分606中的三个图像可以表示具有输入图像603的第二和不同组特征点的三rgb彩色图像的九通道纹理。此外,可见性得分236(例如,映射)可以用作由神经纹理602表示的纹理的另一个信息通道。
[0114]
在完成生成预测神经纹理t(例如,神经纹理602)之后,系统200可以使用采样器246从网格代理几何(诸如图3a所示的增强网格代理几何300)中对神经纹理602进行采样。在此,增强网格代理几何300包括使用面部网格代理几何302和平面代理几何304。可以采样增强网格代理几何300用于任何新颖视图。可以将所得的采样纹理提供给可以合成视图610的神经渲染器248(例如,神经渲染器网络r(.;θ)),如以下等式[8]所示:
[0115]
其中
[0116]
神经渲染器网络r248可以使用神经纹理602的低维每点描述符来恢复用户的目标几何和外观。
[0117]
图7是根据本公开所述实施方式,示出基于3d代理几何模型使用神经纹理来生成合成内容的过程700的一个示例的流程图。简而言之,例如,过程800可以提供使用具有网格算法的3d代理几何来生成用户未见的2d和3d图像的小样本新颖视图的示例。
[0118]
过程700可以利用具有至少一个处理装置和存储指令的存储器的图像处理系统,这些指令在被执行时使处理装置进行权利要求所述的多个操作和计算机实现的步骤。一般而言,可以将系统100、200和/或架构400、500和/或600用于过程700的描述和执行。在一些实施方式中,每个系统100、200和架构400、500和/或600可以表示单个系统。
[0119]
一般而言,过程700利用本文所述系统和算法来获得或检索目标主体的小样本图像并且进行新颖视图合成。例如,过程700可以包括处理和聚合小样本输入,从而构建具有目标主体的学习神经纹理的3d网格代理。为了合成新颖视图,可以从代理几何中对学习纹理进行采样,并且传递给合成目标视图的神经渲染器网络。在一些实施方式中,可以采用编码器-解码器架构来为目标主体生成神经纹理。在一些实施方式中,可以使用逆渲染技术来生成神经纹理。
[0120]
在框702处,过程700包括接收表示用户的多个输入图像(例如,输入样本402)。例
如,服务器216可以实时地或者从先前的视频会议活动和/或其他图像捕捉活动中接收、获得和/或捕捉用户104的图像。输入图像可包括用户面部、特征、头发、颈部或其他躯干部分等。一般而言,这种输入图像可以是在过程700中使用的少于四个图像的小样本图像。在一些实施方式中,将三个输入图像用于执行过程700的步骤。在一些实施方式中,可将单个图像用于执行过程700的步骤。
[0121]
在框704处,过程700包括基于从多个输入图像242提取的第一组特征(例如,存储在特征映射238中)生成3d网格代理(例如,增强网格代理300)。例如,纹理生成器216可以使用表示用户面部的第一组特征来生成特征映射238。第一组特征可包括面部网格的部分,诸如面部网格代理302。可以进一步基于从多个输入图像242提取的第二组特征(例如,存储在特征映射238中)来生成3d网格代理300。第二组特征可以包括表示用户的头发和/或躯干的一部分的特征。可以从平面代理(诸如平面代理304)检索第二组特征。
[0122]
在框706处,过程700包括基于3d网格代理和多个输入图像来生成神经纹理(例如,神经纹理406)。例如,神经纹理生成器(诸如生成器404或神经纹理生成器222)可以使用面部网格代理302(在映射322中示出)与平面代理304(在映射324中示出)的组合来生成用户的3d网格代理406。3d网格代理406可以包括表示面部网格纹理326的部分326以及表示头部代理纹理328的部分(即,平面代理)。
[0123]
在框708处,过程700包括生成用户的表示。用户的表示可以至少部分地基于3d网格代理和神经纹理。例如,纹理处理器聚合器218可以生成网格代理几何,而神经纹理生成器222可以生成神经纹理。因此,系统200可以生成表示用户面部的第一组特征和表示用户的头发和躯干部分的第二组提取特征,这两者都可以基于网格代理和学习神经纹理。一般而言,用户的表示代表神经纹理134中表示的每个表面点的外观。这种外观在神经纹理的某些地方是可见的,而在神经纹理的其他地方是不可见的。因此,可以在采样或以其他方式访问神经纹理时使用可见性得分236。在一些实施方式中,系统200可以存储每个表面点的外观描述符以表示关于用户外观的高频细节,或用户外观的视图相关效果,如皮肤上的镜面高光。
[0124]
在框710处,过程700包括从3d网格代理300采样神经纹理的至少一部分。例如,采样器246可以进行神经纹理的2d采样。也就是说,采样器246可以从代理几何(表示为组合3d网格代理300)中采样神经纹理406。在一些实施方式中,从用于任何新颖视图的网格代理中采样预测神经纹理。在一些实施方式中,采样器246表示可以使用uv映射232从神经纹理采样的2d采样器。在一些实施方式中,神经纹理406是从多个输入图像402生成和采样的学习神经纹理,输入图像402可以包括少于四个捕捉的用户图像帧。
[0125]
在框712处,过程700包括将至少一个采样部分提供给神经渲染器,诸如神经渲染器248。作为响应,系统200可以从神经渲染器248接收图像处理系统先前未见的用户的合成图像(例如,合成视图250、合成视图412等)。例如,合成图像可以包括图像处理系统尚未记录的视图(例如,以一定角度观看用户,和/或用户保持头部和/或沿一定方向观看)。例如,可以触发合成视图250,用于在装置110或112上渲染。
[0126]
在一些实施方式中,生成合成图像以针对视频会议描绘具有校正视角(即,相对于远程用户的眼睛注视方向)的用户。因此,经过校正的视角可以使得在视频会议中看着对方的两个用户看起来好像相互保持直接的目光接触。例如,用户的合成视图可以是用户在输
入图像中的相似姿势,但是具有校正的视角,从而模拟用户注视与提供视频会议的系统相关联的相机装置的视图。这种校正可以为视频会议系统的两个用户提供存在感,因为系统200可以提供访问视频会议系统的两个用户之间目光接触的外观。
[0127]
在一些实施方式中,生成神经纹理包括聚合潜在的用户,如图5中所示和所述。例如,纹理处理器/聚合器218可以为每个输入图像242、502(例如,图像帧)生成潜在表示。可以使用平均技术将针对每个输入图像生成的潜在表示(例如,k样本纹理潜在)聚合成向量508。例如,可将向量508提供给纹理生成器网络247。可以从纹理生成器网络247接收表示用户的神经纹理510。神经纹理510可以用于生成合成视图512。
[0128]
在一些实施方式中,生成神经纹理包括使用逆渲染算法,如图6中所示和所述。例如,可以将输入图像提供给特征提取器网络226,特征提取器网络226至少可提取第一组和第二组特征,从而通过对应的深度图像和uv映射232来增强图像603。然后,系统200可以基于深度图像(由深度传感器206捕捉)以及与输入图像603相关联的uv映射232,将提取的第一组特征和第二组特征投影到几何感知特征空间中。投影可包括生成具有多个输入图像603的匹配分辨率的一组图像。例如,系统200可以将每个k样本输入投影到与输入图像603具有相同分辨率的几何感知特征提取器。例如,系统200可以将该组图像扭曲到uv空间以生成每个输入图像603的纹理,如k个神经纹理134所示(图6)。
[0129]
接下来,纹理处理器和聚合器218可以为每个纹理生成用于纹理空间中的每个点的得分映射(例如,可见性得分236),其指示对应输入图像中的可见性度量。在一些实施方式中,通过处理每个图像的神经纹理来生成可见性得分236(例如,得分映射)。在纹理空间中每个点处的可见性得分236指示它在对应输入图像中的可见性。
[0130]
系统200可以对每个得分映射(例如,可见性得分236)应用soft-max操作以生成每个输入图像的注意力权重。然后,可根据注意力权重来确定加权平均值,根据加权平均值来聚合纹理。在一些实施方式中,可以通过纹理描画器220执行附加步骤以生成在任何输入图像603中都是不可见的缺失部分。上文参照图2描述了纹理描画器220执行的细节。
[0131]
图8示出可通过所述技术来使用的计算机装置800和移动计算机装置850的示例。计算装置800可包括处理器802、存储器804、存储装置806、连接到存储器804和多个高速扩展端口810的高速接口808、连接到低速总线814和存储装置806的低速接口812。组件802、804、806、808、810和812使用各种总线互连,并且可以安装在公共主板上或者视情况通过其他方式安装。处理器802可以处理用于在计算装置800中执行的指令,包括存储在存储器804中或存储装置806上的指令,以在外部输入/输出装置(诸如耦合到高速接口808的显示器816)上显示用于gui的图形信息。在一些实施方式中,可以连同多个存储器和多种类型的存储器一起视情况使用多个处理器和/或多个总线。此外,可以连接多个计算装置800,每个装置提供必要操作的一部分(例如,作为服务器库、刀片服务器群组、或多处理器系统)。
[0132]
存储器804将信息存储在计算装置800中。在一个实施例中,存储器804是易失性存储器单元或多个易失性存储器单元。在另一个实施例中,存储器804是非易失性存储单元或多个非易失性存储单元单元。存储器804也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
[0133]
存储装置806能够为计算装置800提供大容量存储。在一个实施例中,存储装置806可以是计算机可读介质或者可以包含计算机可读介质,诸如软盘装置、硬盘装置、光盘装置
或磁带装置、闪存或其他类似的固态存储装置、或装置的阵列,包括存储区域网络或其他配置中的装置。计算机程序产品可以通过有形地体现在信息载体中。计算机程序产品也可以包含在被执行时进行一个或多个方法(诸如本文所述的方法)的指令。信息载体可以是计算机可读介质或机器可读介质,诸如存储器804、存储装置806、或处理器802上的存储器。
[0134]
高速控制器808管理计算装置800的带宽密集型操作,而低速控制器812管理较低带宽密集型操作。这种功能分配仅仅是示例性的。在一个实施例中,高速控制器808耦合到存储器804、显示器816(例如通过图形处理器或加速器),并且连接到高速扩展端口810,高速扩展端口810可以容纳各种扩展卡(未示出)。低速控制器812可以耦合到存储装置806和低速扩展端口814。可以包括各种通信端口(例如usb、蓝牙、以太网、无线以太网)的低速扩展端口例如可以通过网络适配器耦合到一个或多个输入/输出装置,诸如键盘、定点装置、扫描仪、或联网装置(例如交换机或路由器)。
[0135]
如附图所示,计算装置800可以通过多种不同的形式来实现。例如,可以将其实现为标准服务器820,或者在这种服务器的群组中多次实现。此外,它可以被实现为机架服务器系统824的一部分。此外,它可以在个人计算机(诸如膝上型计算机822)中实现。或者,来自计算装置800的组件可以与移动装置中的其他组件(未示出)组合,诸如装置850。这些装置的每一个都可以包含一个或多个计算装置800、850,并且整个系统可以由相互通信的多个计算装置800、850组成。
[0136]
除其他组件之外,计算装置850包括处理器852、存储器864、输入/输出装置(例如显示器854)、通信接口866和收发器868。装置850还可以设置有存储装置,诸如微型驱动器或其他装置,以提供额外的存储。组件850、852、864、854、866和868中的每一个使用各种总线互连,并且可以视情况将若干组件安装在公共主板上或以其他方式安装。
[0137]
处理器852可以执行计算装置850中的指令,包括存储在存储器864中的指令。处理器可以被实现为芯片的芯片组,其包括分离的多个模拟和数字处理器。处理器例如可以提供装置850的其他组件的合作,诸如用户界面的控制、通过装置850运行的应用、以及通过装置850的无线通信。
[0138]
处理器852可以通过耦合到显示器854的控制接口858和显示器接口856与用户通信。显示器854例如可以是tftlcd(薄膜晶体管液晶显示器)显示器或oled(有机发光二极管)显示器或其他适当的显示技术。显示器接口856可以包括用于驱动显示器854以向用户呈现图形和其他信息的适当电路。控制接口858可以接收来自用户的命令并转换它们以提交给处理器852。此外,外部接口862可以提供与处理器852的通信,从而实现装置850与其他装置的近场通信。例如,在一些实施例中,外部接口862可以提供有线通信或无线通信,并且可以使用多个接口。
[0139]
存储器864将信息存储在计算装置850中。可以将存储器864实现为计算机可读介质或多个计算机可读介质、易失性存储器单元或多个易失性存储器单元、或者非易失性存储器单元或多个非易失性存储器单元中的一个或多个。此外,可以提供扩展存储器884并通过扩展接口882连接到装置850,扩展接口882例如可以包括simm(单列直插式存储器模块)卡接口。这种扩展存储器884可以为装置850提供额外的存储空间,也可以存储用于装置850的应用程序或其他信息。具体而言,扩展存储器884可包括执行或补充上述处理的指令,也可包括安全信息。因此,例如,扩展存储器884可以是用于装置850的安全模块,并且可以通
过允许安全使用装置850的指令来编程。此外,可以连同附加信息一起经由simm卡提供安全应用,诸如以不可黑的方式将识别信息置入simm卡。
[0140]
存储器例如可以包括闪存和/或nvram存储器,如下所述。在一个实施例中,计算机程序产品可以有形地体现在信息载体中。计算机程序产品包含在被执行时进行一个或多个方法(诸如上述方法)的指令。信息载体可以是计算机可读介质或机器可读介质,诸如存储器864、扩展存储器884、或处理器852上的存储器,例如可通过收发器868或外部接口862来接收。
[0141]
装置850可以通过通信接口866进行无线通信,通信接口866在必要时可包括数字信号处理电路。通信接口866可以提供各种模式或协议下的通信,诸如gsm语音呼叫、sms、ems或mms消息、cdma、tdma、pdc、wcdma、cdma2000或gprs等等。这种通信例如可通过射频收发器868来进行。此外,诸如使用蓝牙、wifi或其他这种收发器(未示出)可以进行短距通信。此外,gps(全球定位系统)接收器模块880可以向装置850提供附加的与导航以及位置相关的无线数据,可以视情况通过在装置850上运行的应用程序来使用它。
[0142]
装置850还可以使用音频编解码器860以听觉方式通信,音频编解码器860可以从用户接收口头信息并将其转换为可用的数字信息。同样,音频编解码器860例如可通过扬声器为用户生成听得见的声音,例如在装置850的耳机中。这种声音可以包括来自语音电话呼叫的声音,可包括记录的声音(例如语音消息、音乐文件等等),还可以包括通过在装置850上操作的应用程序生成的声音。
[0143]
如附图所示,可通过多种不同形式来实现计算装置850。例如,可以将其实现为蜂窝电话880。也可将其实现为智能电话882、个人数字助理、或其他类似移动装置的一部分。
[0144]
可以在数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现本文所述系统和技术的各种实施方式。这些不同的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,可编程系统包括至少一个可编程处理器,可编程处理器可以是专用或通用的,耦合为从存储系统、至少一个输入装置以及至少一个输出装置接收数据和指令,并且将数据和指令传输到存储系统、至少一个输入装置以及至少一个输出装置。
[0145]
这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以在高级程序和/或面向对象的编程语言和/或在汇编/机器语言中实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、设备和/或装置(例如磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
[0146]
为了提供与用户的交互,可以在具有用于向用户显示信息的显示器装置(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可以由其向计算机提供输入的键盘和定点装置(例如鼠标或轨迹球)的计算机上实现本文所述系统和技术。也可以使用其他类型的装置提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈(例如视觉反馈、听觉反馈或触觉反馈);并且可以按照任何形式接收来自用户的输入,包括声音、语音或触觉输入。
[0147]
可以在包括后端组件(例如作为数据服务器)、或包括中间件组件(例如应用服务
器)、或包括前端组件(例如具有图形用户界面或web浏览器的客户端计算机,用户可以由其与本文所述系统和技术的实施例交互)、或者这些后端组件、中间件组件、或前端组件的任何组合的计算系统中实现本文所述系统和技术。系统的组件可以通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的示例包括局域网(lan)、广域网(wan)和因特网。
[0148]
计算系统可以包括客户端和服务器。客户端和服务器通常相互远离并且通过通信网络进行交互。客户端与服务器之间的关系是通过在各个计算机上运行并且相互具有客户端-服务器关系的计算机程序产生的。
[0149]
在一些实施例中,图8所示的计算装置可以包括与虚拟现实耳机(vr耳机/hmd装置890)对接的传感器。例如,计算装置850或图8所示的其他计算装置上包括的一个或多个传感器可以向vr耳机890提供输入或者一般而言,向vr空间提供输入。传感器可以包括但不限于触摸屏、加速度计、陀螺仪、压力传感器、生物特征传感器、温度传感器、湿度传感器和环境光传感器。计算装置850可以使用传感器来确定计算装置在vr空间中的绝对位置和/或检测到的旋转,然后将其用作vr空间的输入。例如,可以将计算装置850作为虚拟对象合并到vr空间中,诸如控制器、激光指示器、键盘、武器等。当被合并到vr空间时,由用户定位计算装置/虚拟对象可以允许用户定位计算装置以在vr空间中以某些方式观看虚拟对象。
[0150]
在一些实施例中,可以将计算装置850上所包括或者所连接的一个或多个输入装置用作vr空间的输入。输入装置可以包括但不限于触摸屏、键盘、一个或多个按钮、触控板、触摸板、定点装置、鼠标、轨迹球、操纵杆、相机、麦克风、耳机或具有输入功能的耳塞、游戏控制器或其他可连接的输入装置。在将计算装置合并到vr空间时,与计算装置850上所包括的输入装置交互的用户可以使得在vr空间中发生特定动作。
[0151]
在一些实施例中,计算装置850上所包括的一个或多个输出装置可以向vr空间中的vr耳机890的用户提供输出和/或反馈。输出和反馈可以是视觉、触觉或音频。输出和/或反馈可以包括但不限于渲染vr空间或虚拟环境、振动、打开和关闭或闪烁和/或闪动一个或多个灯或闪光灯、发出警报、播放铃声、播放歌曲和播放音频文件。输出装置可以包括但不限于振动电机、振动线圈、压电装置、静电装置、发光二极管(led)、闪光灯和扬声器。
[0152]
在一些实施例中,可以将计算装置850放置在vr耳机890内以创建vr系统。vr耳机890可以包括一个或多个定位元件,其允许将计算装置850(诸如智能电话882)放置在vr耳机890内的适当位置。在这种实施例中,智能电话882的显示器可以呈现表示vr空间或虚拟环境的立体图像。
[0153]
在一些实施例中,计算装置850在计算机生成的3d环境中可以表现为另一个对象。可以将用户与计算装置850的交互(例如,旋转、摇动、对触摸屏的触摸、手指滑过触摸屏)解释为与vr空间中的对象的交互。仅仅作为一个示例,计算装置可以是激光指示器。在这种示例中,计算装置850在计算机生成的3d环境中表现为虚拟激光指示器。当用户操纵计算装置850时,vr空间中的用户看到激光指示器的移动。用户从与计算装置850在计算装置850或vr耳机890上的vr环境中的交互中接收反馈。
[0154]
在一些实施例中,计算装置850可以包括触摸屏。例如,用户可以通过特定方式与触摸屏交互,所述方式可以模仿触摸屏上发生的事情和vr空间中发生的事情。例如,用户可以用捏合式动作来缩放触摸屏上显示的内容。触摸屏上的这种捏合式动作会导致vr空间中
提供的信息被放大。在另一个示例中,计算装置在计算机生成的3d环境中可以被呈现为虚拟书本。在vr空间中,可以在vr空间中显示书本的页面,并且可将用户的手指滑过触摸屏解释为翻动/翻转虚拟书本的页面。随着每个页面的翻动/翻转,除了看到页面内容改变之外,还可以向用户提供音频反馈,诸如在书本中翻页的声音。
[0155]
在一些实施例中,可以在计算机生成的3d环境中渲染除计算装置之外的一个或多个输入装置(例如鼠标、键盘)。可以将所渲染的输入装置(例如,所呈现的鼠标、所呈现的键盘)用于在vr空间中渲染以控制vr空间中的对象。
[0156]
计算装置800目的是表示各种形式的数字计算机,诸如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。计算装置850目的是表示各种形式的移动装置,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算装置。本文所示组件、它们的连接和关系以及它们的功能仅仅是作为示例,而不是要限制所公开的实施例。
[0157]
此外,附图所示逻辑流程并不要求所示的特定顺序或连续顺序来实现期望的结果。此外,可以向所示流程提供其他步骤,也可以从所示流程消除其他步骤,并且可以向所述系统添加其他组件,也可以从所述系统删除其他组件。因此,其他实施例落入所附权利要求的范围。
再多了解一些

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

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

相关文献