首页> 中国专利> 从中间视图生成有效画布视图

从中间视图生成有效画布视图

摘要

一种画布生成系统,基于描绘场景的一组原相机视图生成场景的画布视图,来例如重新创建虚拟现实场景。可基于从一组原相机视图生成的一组合成视图生成画布视图。例如,可通过基于多个原相机视图上的光流来移位并且混合相关的原相机视图而生成合成视图。可使用分别优化相机视图中的每个像素的光流矢量并且将光流的变化传播至相邻的光流矢量的迭代方法生成光流。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-18

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04N 5/247 专利号:ZL2017800267103 变更事项:专利权人 变更前:脸谱公司 变更后:元平台公司 变更事项:地址 变更前:美国加利福尼亚 变更后:美国加利福尼亚

    专利权人的姓名或者名称、地址的变更

  • 2020-03-03

    授权

    授权

  • 2019-01-15

    实质审查的生效 IPC(主分类):H04N5/247 申请日:20170327

    实质审查的生效

  • 2018-12-21

    公开

    公开

说明书

背景技术

本公开整体涉及虚拟现实耳机的画布视图的生成,并且更具体地,涉及来自通过相机捕获的图像的画布视图生成。画布视图代表了重新创建虚拟现实场景的全景宽角度视图,并且能与其他画布视图配对而给出场景的3D立体效果。关于画布视图生成的现有技术操作缓慢,例如,要求来自用户的手动缝合或其他输入,并且当处理诸如相机视图之间的不同亮度或色彩等源相机视图的差异时,现有技术会遇到问题。

发明内容

本发明的实施方式能基于描绘例如通过图像捕获系统中的相机捕获的场景和描绘通过多个相机捕获的场景的一组原相机视图或图像来生成场景的画布视图。基于合成的位置将画布视图中的每个区域与合成视图的区域相关联的第一映射和将相机视图的区域与合成视图的区域相关联的第二映射能生成画布视图。能够对生成的映射进行组合,以生成将画布视图中的每个区域与该组相机视图中的一个或多个相机视图的区域相关联的组合映射,然后,对相机视图应用组合映射,以生成画布视图。

例如,基于代表共享一个或多个共同对象的场景的图像的第一相机视图和第二相机视图能生成合成视图。使用第一相机视图与第二相机视图之间的光流关联像素能将第一相机视图与第二相机视图关联起来。基于光流,第一相机视图与第二相机视图能“移位”至各自接近所希望的合成视图。然后,一起混合或均化合成视图的两个近似值(即,像素色彩值),以生成合成视图。

在合成视图的生成过程中,能使用关联多个相机视图上的对应点的光流。例如,光流能关联表示为一组光流矢量(各自关联两个或多个对应的像素)的相机视图之间的像素。例如,基于分别优化相机视图中的每个像素的光流矢量的迭代方法能生成光流。例如,通过针对每个像素生成一组光流提议、基于改善光流的优化的该组光流提议中的一光流提议分析每个光流提议并且更新光流。在一些实现方式中,能够将光流矢量的变化传播至相邻的光流矢量。

具体地,面向一种方法、系统、存储介质、以及计算机程序产品的所附权利要求书中公开了根据本发明的实施方式,其中,也能在另一权利要求类别(例如,系统)中要求保护在一个权利要求类别(例如,方法)中提及的任意特征。仅出于形式原因选择所附权利要求中的从属性或向后引用。然而,也能够要求保护从专门向后引用任意之前权利要求(具体地,多个从权)而产生的任意主题,因此,无论所附权利要求中选择的从属性如何,能够公开并且要求保护权利要求与其特征的任意组合。能够要求保护的主题不仅包括所附权利要求中阐述的特征的组合,而且还包括权利要求中的特征的任意其他组合,其中,权利要求中提及的各个特征能与权利要求中的任意其他特征或其他特征的组合进行组合。进一步地,能够在单独权利要求中要求保护和/或在与此处描述或描写的任意实施方式或特征或者与所附权利要求的任意特征的任意组合中要求保护此处描述或描写的任意实施方式和特征。

在根据本发明的实施方式中,一种方法,可以包括:

在画布视图生成系统处接收描绘通过多个相机捕获的场景的、与捕获相机视图时的相机视图位置相关联的一组相机视图;

针对场景的画布视图识别描述一定角度范围的场景的一组画布视图区域,该组区域中的每个区域与角度范围内的一角度相关联;

对于该组区域中的每个画布视图区域:

基于角度确定区域的合成视图位置;

生成将画布视图区域与和合成视图位置相关联的合成视图的合成视图区域相关联的第一映射;

生成将该组相机视图中的多个相机视图的区域与合成视图区域相关联的第二映射;

将第一映射与该组第二映射组合,以生成将画布视图的画布视图区域与该组相机视图中的一个或多个相机视图的区域相关联的组合映射;并且

应用组合映射,以生成画布视图区域的画布视图。

可以基于与该相机视图的组中的点相关联的光流矢量场生成第二映射。

在根据本发明的实施方式中,一种方法,可以包括:基于合成视图位置和该组相机视图计算一组光流矢量场。

画布视图可以是场景的360度全景或球形全景图像。

可以以立方体贴图、等距长方、或圆柱格式输出画布视图。

在根据本发明的实施方式中,一种方法,可以包括:确定该组区域中的每个画布视图区域的画布视点,并且其中,一区域的合成视图位置基于该区域的画布视点。

可以基于从一区域的画布视点至场景中的零视差距离的视线来确定该区域的合成视图位置。

每个画布视图区域可以近似画布视图区域的画布视点处的光信息。

该组相机视图中的每个相机视图可以与该组相机视图中的至少另一个相机视图重叠。

在根据本发明的实施方式中,一种方法,可以包括:将画布视图发送至客户端虚拟现实设备进行显示。

每个画布视图区域可以是一垂直列的像素。

在根据本发明的实施方式中,一种系统,可以包括:

输入模块,被配置为接收描绘通过多个相机捕获的场景的、与捕获相机视图时的相机视图位置相关联的一组相机视图;

光信息近似模块,被配置为:

针对场景的画布视图识别描绘一定角度范围的场景的一组画布视图区域,该组区域中的每个区域与角度范围内的一角度相关联;并且

对于该组区域中的每个画布视图区域:

基于角度确定区域的合成视图位置;

生成将画布视图区域与和合成视图位置相关联的合成视图的合成视图区域相关联的第一映射;

生成将该组相机视图中的多个相机视图的区域与合成视图区域相关联的第二映射;

将第一映射与该组第二映射组合,以生成将画布视图的画布视图区域与该组相机视图中的一个或多个相机视图区域相关联的组合映射;并且

应用组合映射,以生成画布视图区域的画布视图。

可以基于与该相机视图的组中的点相关联的光流矢量场生成第二映射。

在根据本发明的实施方式中,一种系统,可以包括:基于合成视图位置和该组相机视图计算一组光流矢量场。

画布视图可以是场景的360度全景或球形全景图像。

光信息近似模块可以被配置为:确定该组区域中的每个画布视图区域的画布视点,并且其中,一区域的合成视图位置基于该区域的画布视点。

可以基于从一区域的画布视点至场景中的零视差距离的视线来确定该区域的合成视图位置。

每个画布视图区域可以近似于画布视图区域的画布视点处的光信息。

该组相机视图中的每个相机视图可以与该组相机视图中的至少另一个相机视图重叠。

在根据本发明的实施方式中,一种系统,可以包括:将画布视图发送至客户端虚拟现实设备进行显示。

在根据本发明的实施方式中,一个或多个计算机可读非易失性存储介质可以涵盖被运行时可操作为执行根据本发明或任意上述所述实施方式的方法的软件。

在根据本发明的实施方式中,一种系统,可以包括:一个或多个处理器;和至少一个存储器,耦合至处理器并且包括通过处理器运行的指令,当运行指令时,处理器可操作为执行根据本发明或任意上述所述实施方式的方法。

在根据本发明的实施方式中,一种计算机程序产品,优选地包括计算机可读非易失性存储介质,当在数据处理系统上运行时,可以操作为执行根据本发明或任意上述所述实施方式的方法。

附图说明

图1是根据本发明的实施方式的画布生成系统操作的系统环境的框图。

图2是根据本发明的实施方式的画布生成系统的框图。

图3是示出根据一些实施方式的示例性图像捕获系统的构造的线图。

图4是示出根据一些实施方式的示例性画布生成系统中的合成相机的使用的线图。

图5a是示出根据一些实施方式的基于左相机视图和右相机视图的示例性合成视图的生成的线图。

图5b是示出根据一些实施方式的示例性相机视图和示例性合成视图的线图。

图6是示出根据一些实施方式的从示例性相机视图生成示例性合成视图的细节实施例的线图。

图7是示出根据实施方式的用于从输入的相机视图生成合成视图的过程的流程图。

图8是示出根据一些实施方式的示例性相机视图之间的光流矢量的线图。

图9是示出根据一些实施方式的用于计算两个相机视图之间的光流的示例性过程的流程图。

图10是示出根据一些实施方式的多个对象和示例性图像捕获系统的线图。

图11是示出根据一些实施方式的示例性画布视图的线图。

图12是示出根据实施方式的改变对象的视图的瞳孔间距离的效果的线图。

图13是示出根据一个实施方式的用于基于相机视图计算画布视图的示例性过程的线图。

图14是示出根据一个实施方式的用于基于相机视图计算画布视图的第二示例性过程的线图。

图15是示出根据一个实施方式的用于基于相机视图计算画布视图的过程的流程图。

图仅出于示出性之目的描写了本发明的各个实施方式。本领域技术人员应当从下列讨论中认识到,在不背离此处描述的本发明的原理的情况下,可以采用此处示出的结构和方法的替代实施方式。

具体实施方式

系统架构

图1是根据本发明的实施方式的画布生成系统操作的系统环境的框图。图1所示的系统环境100包括图像捕获系统105、画布生成系统110、以及客户端虚拟现实(VR)设备115。在其他实施方式中,系统环境100可包括不同或附加的部件。

图像捕获系统105捕获通过场景的多个相机视图,其可由画布生成系统110处理并且能够经由客户端VR设备115呈现给用户。场景可代表图像捕获系统105捕获相机视图时的物理环境。后期通过画布生成系统105可以增强场景,以向场景中添加虚拟部件。例如,场景可以是公园,其中放置了物理图像捕获系统105来捕获公园的相机视图。相机视图是从位于图像捕获系统105中的相机的图像传感器捕获的场景的视图。

在一些实施方式中,图像捕获系统105包括许多相机,每个相机定位成捕获场景的不同相机视图。在其他实施方式中,图像捕获系统105是被配置为捕获场景的相机视图的一个相机。图像捕获系统105中的相机可以是静物或录影机,例如,运动型相机、可携式摄像机、移动电话相机、高速相机、或任意其他合适的图像捕获设备。图像捕获系统105中的相机能够全局同步而同时捕获图像并且还能够使用全域快门改善捕获快速移动对象的性能。在一些实施方式中,图像捕获系统105由可商购的部件和相机构造,但是,图像捕获系统105中能使用任意合适的专有或可商购的相机。

在一些配置中,从图像捕获系统105的特定的原点或相对于特定的原点捕获相机视图。例如,图像捕获系统105可包括以原点为中心的面向外侧的相机的环,从而捕获覆盖图像捕获系统105的原点周围的完整360度全景角度的相机视图。图像捕获系统105的替代实施方式可捕获代表原点周围的完整360度球体的、代表视图的局部全景或球体的、或代表原点周围的任意其他合适的视图子集的相机视图。相似地,能够同时、顺次、或按照任意其他合适的顺序捕获通过图像捕获系统105捕获的相机视图。例如,诸如在图像捕获系统105捕获场景的多个高清静止图像的情况下,图像捕获系统105能够通过使用多个相机同时捕获相机视图,可替代地,诸如在相机捕获视频的情况下,图像捕获系统105能从一个或多个相机顺次捕获图像。

在一些实现方式中,图像捕获系统105包括从场景内的已知位置同时捕获场景的视频的多个相机。在其他实施方式中,诸如在将图像捕获系统105安装至人、车辆、或其他移动对象上的实施方式中,图像捕获系统105在场景内不具有固定的位置。能够获知所捕获的相机视图相对于彼此或相对于图像捕获系统105的原点或场景的位置。图像捕获系统150可与画布生成系统110通信,例如,将捕获的相机视图传输至画布生成系统110。画布生成系统110接收从图像捕获系统105直接输入、经由诸如局域网或互联网等网络输入、或通过任意其他合适的方法输入的相机视图。

根据一些实施方式,画布生成系统110处理所接收的相机视图,以生成代表场景的画布视图。画布视图可以是描述场景的任意图像,因此,可以重新创建虚拟现实场景,例如,全景、球域全景、或合适的宽角度图像。例如,可通过诸如“8K”(例如,8192×8192像素)等清晰度的立方体贴图、等距长方、或圆柱格式输出画布视图。由此,画布视图可以代表通过客户端VR设备115观察的一定角度范围内的场景。当用户转动或旋转客户端VR设备115时,可以将不同角度的相机视图呈现给用户。画布生成系统110可以生成两个画布视图---用户的每个眼睛有一个画布视图,以向客户端VR设备115提供立体图像。

在一些实施方式中,通过组合场景的一组原相机视图而生成画布视图,以生成比相机视图中的任意一个视图捕获更多关于场景的信息的画布视图。原相机视图可以是从图像捕获系统105接收的相机视图。画布视图能够在客户端VR设备115上进行显示,以创建场景的虚拟现实呈现。在一些实施方式中,例如,基于场景中的单一静态位置(以下简称视点)生成画布视图。可替代地,可以基于一批或一组视点生成画布视图,例如,当用户移动其头部观察虚拟现实场景时,接近用户的眼睛的位置一批或一组视点。如下面更为全面讨论的,画布视图的视点可以根据画布视图的角度而移动,以代表每个眼睛的转动视点。

场景的画布视图可以代表复制在指定点(以下简称视点)处相交的光信息时所使用的局部光信息近似值。通常,场景的光信息的完整呈现描述了通过计算光信息的空间而行进的光线,然而,可通过采集关于在该点处相交的射线的色彩信息来近似与指定视点相关联的光信息。例如,可通过相机采集光线色彩信息,相机捕获关于与相机的图像传感器相交的光线的色彩信息。相机视图中的每个像素能够代表关于撞击在相机的图像传感器上的一个或多个光线的信息,从而捕获关于该光线的色彩信息。因此,所采集的色彩信息代表了通过相机生成的相机视图中的像素的像素强度信息。在一些实现方式中,可组合来自多个相机视图的信息,以形成可用于近似单一视点处的光信息的画布视图。相似地,可使用画布视图重新创建视点处的相关光信息,当用户在虚拟现实场景中转动其头部时,视点代表用户眼睛的可能位置。可通过客户端VR设备115传输所生成的画布视图而向用户进行显示、或通过客户端VR设备115存储所生成的画布视图供后期使用或用于其他合适的目的。

客户端VR设备115从画布生成系统110接收画布视图并且将画布视图显示给客户端VR设备115的用户。在一些实现方式中,客户端VR设备115通过在与定位在场景中的用户的每个眼睛对应的视点处重新创建场景的光信息而操作。然后,将每个局部光信息近似值单独显示给用户的对应眼睛,从而创建3D虚拟现实效果。在一些实现方式中,通过向客户端VR设备115的用户显示所生成的画布视图可生成局部光信息近似值。局部光信息近似值可以以零视差距离创建用户的视图的近似值。

在一些实施方式中,客户端VR设备115是头戴式VR系统。客户端VR设备115可将不同的画布视图显示给用户的每个眼睛,例如,向客户端VR设备的用户提供立体3D效果。在一些配置中,客户端VR设备115通过诸如显示响应用户动作的画布视图而向用户呈现交互式体验。此外,客户端VR设备115可诸如响应用户动作、基于指定的时间、或出于任意其他合适的原因从画布生成系统110请求指定的画布视图或部分画布视图。

图2是根据本发明的实施方式的画布生成系统的框图。在图2的实施方式中,画布生成系统110包括相机视图库210、画布视图库220、接口模块220、新视图生成模块240、光流计算模块250、以及光信息近似模块260。画布生成系统110基于从图像捕获系统105接收的一组原相机视图生成画布视图。

相机视图库210可包含相机视图,例如,从图像捕获系统105接收的一组原相机视图。相机视图可以存储为诸如JPEG、PNG、RAW、或TIFF等包含压缩或非压缩图像数据的任意合适格式。相似地,对于相机视图序列,相机视图可以存储为包含压缩或非压缩的图像数据的合适视频格式,例如,MPEG、AVI、或任意其他合适的格式。在一些实施方式中,相机视图包括来自图像捕获系统105中的相机的滤色器阵列(例如,Bayer滤色器)的原数据。存储的相机视图可包含关于所存储相机视图的每个像素的特定位置和像素强度信息。关于像素的像素强度信息可包含控制如何显示像素的亮度和色彩信息,例如,可以在关于像素的灰度级亮度信息或RGB通道色彩信息中捕获像素强度。在一些实施方式中,相机视图库210中包含的相机视图可以与额外的信息相关联,诸如捕获相机视图时的视点等,诸如捕获图像的相机及图像捕获系统105中的相机的位置和朝向等。相机视图库210内存储的相机视图还可以被关联成组,例如,从同一物理相机捕获的连续一组图像或从图像捕获系统105的多个相机同时捕获的一组图像。相似地,可以将通过画布生成系统110处理的相机视图存储在相机视图库210中。例如,可以将相机视图从原滤色器阵列数据处理成基于光栅RGB像素的图像,校正相机视图进行晕映,或处理相机视图而更改为添加或删除锐度/去卷积、色彩平衡或色调曲线、亮度或伽玛、像素马赛克、以及透镜失真效果。在一些实施方式中,可以基于分组中的其他相机视图通过画布生成系统110处理相机视图,例如,分组中的相机视图之间的相互色彩校正。在一些实施方式中,可以将相机视图从原Bayer滤色器数据转换成RGB图像,并且然后,使用相互色彩校正、反晕映、伽玛、锐化、以及去马赛克技术进行处理而生成最终经过校正的图像。

根据一些实施方式,画布视图库220包含通过画布生成系统110生成的画布视图。画布视图可存储为任意合适的图像或视频格式。在一些实施方式中,画布视图与存储在画布视图库220中的其他画布视图相关联或分成组,例如,同一场景的左眼画布视图和右眼画布视图可被关联在画布视图库220中。相似地,例如,从若干录影机视图生成的画布视图序列可被分组在画布视图库220中。

接口模块230与图像捕获系统105和客户端VR设备115通信。例如,接口模块230可从图像捕获系统105接收原相机视图并且将生成的画布视图传输至客户端VR设备115。在一些实施方式中,画布生成系统110还可以经由接口模块230从客户端VR设备115接收对指定画布视图的请求。

根据一些实施方式,新视图生成模块240基于已有相机视图生成合成视图。合成视图模拟了通过位于场景中的指定位置(以下简称合成相机位置)的理论或假设相机(以下简称合成相机)而捕获的相机视图。基于合成相机位置和相机视图从位于合成相机位置附近的相机可以生成合成视图,并且在一些实现方式中,一旦生成合成视图,则可以将合成视图存储在相机视图库210中。在一些配置中,新视图生成模块240基于相机视图与捕获相机视图的相机的位置之间的光流生成合成视图。下面将更为详细地讨论新视图生成模块240。

在一些实施方式中,光流计算模块250检测一个或多个相机视图中的对应像素并且基于所检测的对应像素生成光流。光流可以是通过第一相机视图中的每个像素的位移矢量将第一相机视图中的像素与第二相机视图中的对应像素相关联的矢量位移场或其他数据集。根据一些实施方式,光流是将一个相机视图中的像素与第二相机视图中的像素关联起来的方程式。在一些实现方式中,可以根据图像捕获系统105中的相机的数目和方位计算多个分组的相机视图的光流。例如,可以计算相机环结构中的每个相机视图至其相邻的相机的光流。对于每一对相机,可以计算从第一相机至第二相机并且从第二相机至第一相机的光流。在一些实施方式中,需要三个或更多个相机视图之间的光流,例如,在被配置为捕获球域全景的图像捕获系统105的情况下,水平面内的两个相机以及被提升或面向上部的顶部相机之间需要光流。下面将更为详细地讨论光流计算模块250。

在一些实施方式中,光信息近似模块260通过将多个相机视图组合成单一图像而生成画布视图。例如,基于通过图像捕获系统105捕获的相机视图、通过新视图生成模块240生成的合成视图、或合适相机视图的任意组合可生成画布视图。例如,通过近似于显示给客户端VR设备115的用户的光信息,通过光信息近似模块260生成的画布视图可以生成为适合于在客户端VR设备115上显示。下面将更为详细地讨论光信息近似模块260。

图3是示出根据一些实施方式的示例性图像捕获系统的线图。图3中的图像捕获系统包括原点305、环结构303、以及相机310-317。在该配置中,图像捕获系统105的中心在原点305上。相机310-317定位在中心位于原点305上的环结构303的周围。在一些实施方式中,相机310-317通过环结构303或另一相似的支撑结构被物理地支撑并且可以定位在已知直径的圆的已知位置上。相似地,根据图3中的实施方式,各个相机310-317可具有相对于原点305的已知位置和朝向。例如,基于附接至相机的透镜,各个相机310-317可具有限定的视场。在一些实施方式中,每个相机的视场的中心线与原点305对准,即,各个相机310-317从环结构303正向外部定位。在其他实施方式中,相机310-317的朝向可以不同。基于原点305周围的角度Φ可以描述环结构303周围的特定朝向或角度。在该实施方式中,相机310定位成Φ=0,并且其余相机311-317围绕环结构303以规定的间隔定位。

合成视图生成

在生成画布视图时或对于需要从图像捕获系统105不可获得的一组原相机视图中的相机视图的其他情形,可以使用例如通过新视图生成模块240来生成合成视图。与生成的合成视图相似,基于一组输入相机视图可以生成通过新视图生成模块240生成的合成视图。例如,可以使用从与所需合成相机位置相似的位置和朝向捕获的相机视图生成合成视图。在一些实施方式中,合成视图具有与生成合成视图时使用的相机视图相似的视场。这些合成视图允许视图被近似好像位于合成相机位置处的另一相机捕获合成视图。在其他实施方式中,合成视图是代表比输入相机视图中更小的视场的局部合成视图,例如,仅描述相机视图的视场的区域。在其他实现方式中,合成视图生成模块240输出将输入相机视图中的像素与局部或全部合成视图中的指定像素相关联的映射。生成的映射可以捕获合成视图的信息,而不实际计算合成视图中的全部像素的精确值。

图4是示出根据一些实施方式的示例性画布生成系统中的合成相机的使用的线图。简图400包括环结构303、原点305、左视点402和右视点404、对象405、瞳孔间距离410、左相机415和右相机420、合成相机425和430、以及视线440和445。

在一些实施方式中,例如,当使用画布视图显示立体3D时,画布生成系统110基于场景内的指定配对视点生成画布视图。例如,为了生成创建立体3D效果的一对画布视图,画布视图生成系统可以从通过与用户的两眼之间的距离(瞳孔间距离)相似的距离分离的配对视点生成左画布视图和右画布视图。瞳孔间距离可以是通过画布视图生成系统110设置的生成立体3D效果时所使用的两个视点之间的任意距离或位移。例如,瞳孔间距离410代表了近似于客户端VR设备115的用户的两眼之间的距离的左视点402与右视点404之间的示例性距离。在一些实施方式中,左视点402与右视点404的中心位于原点305上,但是,左视点402与右视点404可以位于场景内的任意合适位置处。相似地,在一些情况下,左视点402与右视点404可以代表两个静止的视点,但是,在其他实施方式中,左视点402与右视点404可代表一组配对视点中的两个视点,各自被瞳孔间距离410分离。画布视图各部分的左视点和右视点的具体位置可以是原点305周围的角度Φ的函数,以模拟用户的头部可围绕原点转动时的每个眼睛的视点的变化。换言之,每个眼睛的视点可以根据角度围绕原点旋转角度Φ。

在图4中,视线440和445代表了当用户的眼睛(通过瞳孔间距离410分离)濒于或旋转至面向聚焦的对象405时、通过瞳孔间距离410分离的假设用户的左眼与右眼的视角。例如,当用户观察对象405时,定位在视线440与445与环结构303相交的点处的相机可以使用选择的零视差距离近似用户的视角。在图4的配置中,左相机415与右相机420不定位在这些相交点处,因此,通过这些相机捕获的相机视图不可直接提供所需的信息。然而,通过画布生成系统110可以计算定位在视线440和445与环结构303的相交点处的合成相机425和430的视角,以在从左视点402和右视点404观察时捕获关于对象405的信息。在一些实施方式中,基于每个对象判断零视差距离,例如,根据对象的距离。在其他实施方式中,零视差距离是固定的,例如,被设置成恒定的距离或无穷大。从诸如左相机415和右相机420等邻近的相机生成各个合成相机425与430的各自视图。

图5a是示出根据一些实施方式的基于左相机视图和右相机视图生成示例性合成视图的线图。相似地,图5b是示出根据一些实施方式的示例性相机视图和示例性合成视图的线图。简图500包括左相机505、右相机510、合成相机515、光流移位(optical flowshift)520和525、左相机视图530和右相机视图535、以及合成视图540。

如之前提及的,在画布生成系统110的一些实现方式中,通过新视图生成模块240使用从位于合成相机位置的附近的位置捕获的输入相机视图而计算合成视图。例如,为了计算合成相机515的合成视图540,可以将来自左相机505的相机视图530与来自右相机510的相机视图535进行组合。通过将左相机视图530和右相机视图535中的像素移位至近似合成视图540中的位置可以实现生成合成视图。例如,可以使用来自将左相机视图530中的像素与右相机视图535中的像素相关联的光流的信息来判断像素的移位量。在一些实现方式中,光流是位移矢量阵列,例如,对于左相机视图530中的每个像素,光流可包含一个矢量。在图5的实施方式中,光流移位520和525示出了从左相机视图530和右相机视图535至合成视图540的移位。左相机视图530和右相机视图535中的每个像素的光流移位520和525的量可取决于合成相机515相对于左相机505和右相机510的位置。

来自左相机505的示例性左相机视图530示出了位于相机视图的相对侧的远处的山和人。相反,来自右相机510的右相机视图535示出了位于相机视图中的不同位置的人与山的相同元素。左相机视图530与右相机视图535之间的人与山的位置的差异是由于从左相机505和右相机510的不同位置捕获的相机视图的视角移位。尽管远处的山相对保持处于左相机视图530与右相机视图535之间的相同位置,然而,人经历了左相机视图530与右相机视图535之间的大更多的位置移位。由于合成相机515以相似的方位定位在左相机505与右相机510之间,合成视图540中的对象应处于相对于左相机视图530和右相机视图535的中间位置。例如,在合成视图540中,人相对于左相机视图530和右相机视图535已经移动了中间的量。

图6是示出根据一些实施方式的从示例性相机视图生成示例性合成视图的细节实施例的线图。简图600示出了新视图生成模块240通过若干阶段的处理生成示例性相机视图、以从左相机视图610和右相机视图615生成合成视图630。简图600包括左相机视图610和右相机视图615以及移位的左相机视图620和右相机视图625、以及合成视图630。

通过图6中的各个相机视图捕获的场景包括三个主要对象:山、人、以及球。在该实施方式中,将山视为场景中的背景对象并且山位于捕获输入相机视图的相机的位置的远处,然而,人和球是前景对象并且更靠近于捕获左相机视图610和右相机视图615的相机。因此,前景对象相对于背景对象具有左相机视图610与右相机视图615之间的更大位移。左相机视图610与右相机视图615是可在计算合成视图630时使用的输入相机视图。在该实施方式中,为了生成合成视图630,首先,基于光流将左相机视图610移位至所需合成视图的位置。光流中的每个矢量可指示左相机视图610与右相机视图615中的对应像素之间的位移。在光流移位中,左相机视图610中的像素基于光流移位并且与合成相机的相对位置成比例。左相机视图610中的每个像素可以在相对于像素的对应光流矢量的部分的方向上移位,以确定合成视图中的像素的位置。例如,如果合成相机定位在左相机与右相机之间的中间,则左相机视图610中的每个像素可以移位与光流中的该像素对应的矢量的值的一半。相似地,如果合成相机位于从左相机至右相机的10%远,则左相机中的每个像素可以移位光流中的对应矢量的10%。相同的移位处理可以应用于右相机视图615,以获得经过移位的右相机视图625。

经过移位的左相机视图620与右相机视图625各自代表使用光流移位时、使用来自左相机视图610和右相机视图615的位置信息的合成视图630的近似值。因为不同的相机视图与相机之间的像素强度信息可能不一致,所以即使相机的配置相同,使用来自左相机视图610和右相机视图615的像素强度信息也可以生成合成视图630。在一些实施方式中,经过移位的左相机视图620和右相机视图625包含来自一个原相机视图的像素强度信息。例如,经过移位的左相机视图620整合了来自左相机视图610和右相机视图615的位置信息(基于光流移位的形式)。然而,由于经过移位的左相机视图620中的全部像素强度值继承左相机视图610中的对应像素,因此即使像素的位置发生移位,经过移位的左相机视图620也仅整合了来自左相机视图610的像素强度信息。

例如,由于捕获相机视图的相机之间的曝光或其他设置不同而引起两个相机视图中的对应点之间的像素强度信息不同。在图6的实施例中,相比于右相机视图615,左相机视图610中的球是一不同的阴影,并且这些差异仍存在于经过移位的左相机视图620与右相机视图625中。在图6的实施方式中,混合经过移位的左相机视图620与经过移位的右相机视图625,以生成合成视图630。混合相机视图可以包括均化或通过其他方式组合各个经过移位的左相机视图与右相机视图中的对应像素,例如,均化每个相机视图中的两个对应像素的像素强度信息。基于合成相机的位置可以成比例地混合经过移位的左相机视图620与右相机视图625,以生成合成视图630。在图6的实施例中,合成视图630中的球是作为从经过移位的左相机视图620与经过移位的右相机视图625的对应像素成比例地混合的球的每个像素的结果的中间阴影。

在其他实施方式中,可以基于仅来自一个相机视图的像素强度信息来生成合成视图630,例如,仅使用来自最靠近于合成相机位置时被捕获的相机视图的像素强度信息生成合成视图。然而,如果仅使用来自最靠近的相机的像素强度信息,当与接近其他相机视图的合成视图相比较时,观察接近一个相机视图的合成视图时则存在明显的移位或差异。

在一个实施例中,使用经过移位的左相机视图像素值L与经过移位的右相机像素值R基于合成相机从左相机至右相机的比例距离t(其中,t=1代表左相机的位置并且t=0代表右相机的位置)确定像素值P,其中,每个经过移位的相机像素值反映了使用比例距离t的比例光流之后的像素值:

P=t×L+(1-t)×R

方程式1

然而,在一些情况下,经过移位的左相机视图像素值的差异量很大。由于像素大小的潜在不同,可以包括附加项来确定是否促成左像素色彩值或右像素色彩值。附加项可以是具有参数N(a,b,x,y)的标准化函数N,其中,a和b是像素色彩值并且x和y是标准化权重。在一个实施方式中,标准化函数N的权重参数如下:

方程式2

在一个实施方式中,标准化函数N的参数为:

a=经过移位的左相机L的像素值

b=经过移位的右相机R的像素值

x=比例距离t+左相机的光流的幅值Ml

y=(1-比例距离t)+右相机的光流的幅值Mr

为了确定标准化函数N的权重的部分,可以使用左相机像素值与右相机像素值之间的像素大小δ的相似性以加权N的应用,其中,等于1时的像素大小δ代表相同的像素值并且等于0时的像素大小δ代表像素值完全不同。由此,在一个实施例中,使用比例距离t的像素值为:

P=δ(t×L+(1-t)×R)+(1-δ)N

方程式3

当对标准化函数应用上述参数时,方程式4给出了像素值:

方程式4

当像素值相似时,通过调整光流的幅值,确定像素值的该函数有助于组合像素值,并且当像素值不同时,该函数对相机视图的距离进行加权。当像素值不同时,除相机视图的比例距离之外,标准化项允许使用每个移位像素的光流的幅值在左像素和右像素之间进行选择。

图7是示出根据实施方式的用于从输入相机视图生成合成视图的过程的流程图。例如,当新视图生成模块240接收左相机视图和右相机视图以及合成相机的位置时,处理700开始。然后,诸如,通过光流计算模块230计算所接收的左相机视图与右相机视图之间的光流710。使用该光流,基于合成相机的位置可以移位各个所接收的相机视图715。然后,混合经过移位的左相机视图和右相机视图,以合并像素强度信息并且基于输入的相机视图生成最终的合成视图720。例如,通过上面指示的方程式1或4混合各个移位相机的像素强度可以执行该混合。

光流计算

在一些实施方式中,通过光流计算模块250生成诸如生成上面讨论的合成视图所使用的光流等光流。如之前提及的,光流关联多个相机视图上的对应点或像素。两个相机视图之间的光流可以是矢量场,其中,每个矢量(以下简称光流矢量)代表了从第一相机视图中的一个像素至另一相机视图中的对应像素的位移或诸如等距长方或方位角投影等从第一相机视图中的一个像素至另一相机视图的投影。在其他实施方式中,光流是函数或其他类型的平移,并且与点相关联的光流矢量代表了点与评估光流函数或映射时的其对应点之间的位移。可以计算具有对应像素的任意两个相机视图之间的光流,并且在一些实现方式中,可以计算任意多个相机视图之间的光流。例如,可以计算水平面内的两个相机视图与第三相机视图之间的光流,例如,鱼眼相机朝向向上。光流可以基于给出偏移量(u,v)的函数或映射将第一图像中的像素(x,y)与第二图像中的像素关联起来。例如,可以基于代表了从第一图像中的给定像素至第二图像中的对应像素的x轴或y轴位移的函数或映射u(x,y)以及v(x,y)确定第二图像中的对应像素。在一些实现方式中,与第一图像中的像素(x,y)对应的像素可以是第二图像中的像素(x+u(x,y),y+v(x,y))。

在一些实施方式中,光流是方向性的,具有将像素映射至次相机视图中的对应像素的主相机视图。例如,主相机视图中的每个像素可以被分配存储主相机视图中的该像素与次相机视图中的对应像素之间的位移的位移矢量。在其他实现方式中,光流是对称分配的,例如,指向其他相机视图中的对应像素的两个相机视图位移矢量中的像素。通过组合两个或更多个方向性光流,例如,计算一组相机视图中的每个相机视图的方向性光流,也可以创建对称光流。在一些情况下,一个相机视图中的点将不具有一个或多个其他相机视图中的对应点。例如,对象可能被一个相机视图中的另一对象挡住,但在同一场景的另一相机视图中不被挡住并且完全可见。在一些实施方式中,还将光流矢量分配给在其他相机视图中无对应像素的像素。例如,可以基于相邻像素的被分配的光流矢量、基于平均或中间光流矢量、或基于任意其他合适的方法为在其他相机视图中无对应像素的像素分配光流矢量。

图8是示出根据一些实施方式的示例性相机视图之间的光流矢量的线图。简图800包括左相机视图805和右相机视图810、光流815、左相机视图805中的点820-823、右相机视图810中的点830-833、组合相机视图840、以及光流矢量845。

在图8的实施方式中,左相机视图805与右相机视图810描绘了若干共享对象,在这种情况下,为从两个不同位置捕获的山和人。因为左相机视图805与右相机视图810共享共同的对象,所以存在与也代表共同对象的右相机视图810中的像素对应的、代表左相机视图805中的共同对象的像素。例如,与和对应点830-833相关联的右相机视图中的像素对应,各个点820-823可与左相机视图805中的像素相关联。例如,左相机视图805中的点822与右相机视图810中的对应点832可以代表描绘人的头部的顶部的左相机视图805和右相机视图810中的对应像素。在一些实施方式中,诸如光流815等光流捕获与点822和832相关联的像素之间的对应性。

为示例目的,组合相机视图840显示覆盖在左相机视图805上的右相机视图810。在组合相机视图840中,显而易见,对于两个相机视图的全部共同对象,左相机视图805与右相机视图810之间的位置移位不一致。例如,与相同相机视图之间的人的位置位移相比较,左相机视图805与右相机视图810之间的山的位置位移具有较小的幅值。例如,由于到相机视图的对象之间的相机的距离不同,视角效果可以引起对象之间的移位量的不同。在图8的实施例中,山比人距离左相机和右相机更远,导致左相机视图805与右相机视图810之间的人的位置位移比山的位置位移更大。光流矢量845是可包括在左相机视图805与右相机视图810之间的光流中的矢量的实施例。光流矢量845通过显示其间的位移示出了左相机视图805中的点822与右相机视图中的点832之间的对应性。

可以通过各种方法实现光流的计算。例如,通过建立变量优化问题来确定两个图像之间的光流,开始光流的计算。优化问题包括许多项,诸如,与另一图像中的对应像素或梯度相比较,测量像素的强度或像素的梯度的强度的数据项,例如,测量光流场的平滑性的正则项、或任意其他合适的项。例如,将第一图像中的像素(x,y)与第二图像中的像素(x+u(x,y),y+v(x,y))关联起来的变量优化方程式可以表示为如下:

方程式5

上面示例性变量优化方程式(方程式5)包括测量第一图像中的像素与第二图像中的其对应像素之间的像素强度I或色彩之差的绝对值的数据项

数据项(例如,变量优化方程式)进一步包括测量两个图像的梯度之差的梯度一致

项。最后,该方程式包括正则项R(u,v)。变量优化方程式的最小值表示关于变量优化问题的指定参数而优化了光流。在其他实施方式中,变量优化问题包括例如下面方程式6中显示的附加项。

方程式6

其中,G和Gd是高斯核函数,α0和α1是阿尔法通道,ε是两个对应点之间的像素强度值的误差,并且W是S形曲线。

方程式6示出了变量优化问题的第二实施例。方程式6包括比较第一图像中的像素与第二图像中的像素的梯度的混合版本(G*)的数据项比较当前光流与之前光流的时域正则项lp平滑项考虑中间像素强度值的绝对值差的中值滤波项λm(∑i,j∈N(x,y)|u(x,y)-u(i,j)|+|v(x,y)-v(i,j)|)、以及测量基于像素强度值的误差混合的像素强度值之差的加权扩散项下面将更为详细地讨论时域正则项、中值滤波项、以及加权扩散项。

然后,可以求该变量优化问题的解而确定光流。在一些实施方式中,通过最小化使用数据项和正则项构造的优化方程式来近似变量优化问题。例如,首先,可以将优化方程式变换成使用迭代欧拉-拉格朗日方法的偏微分方程式的非线性系。然后,可以使用其他迭代方法线性化并且求解非线性系。例如,可以采用高斯塞德尔、雅克比、或逐次超松弛迭代(SOR)方法求解近似变量优化问题的方程式的线性系。在一些实现方式中,可以使用诸如ORB、AKAZE、或BRISK等关键点匹配算法单独匹配相机视图内的关键点或像素,以生成与关键点对应的像素之间的准确匹配。与之前计算的关键点匹配相似,光流计算模块250可使用所计算的关键点匹配影响变量优化问题朝向关键点的包括光流矢量的解。例如,在求解变量优化问题的迭代之间,例如使用抛雪球算法,光流可被影响为朝向关键点匹配。

可替代地,在不将优化问题变换成方程式的线性系的情况下,可通过使用迭代方法求解变量优化问题。为了求解生成光流场的变量优化问题,可以对代表一个或多个相机视图中的每个像素的光流的初始化矢量场应用迭代方法。可以使用各种方法初始化矢量场,例如,可以随机初始化每个光流矢量,整个矢量场可以被初始化成统一的值,或可以使用任意其他合适的方法。在一个实施方式中,对更低或更高清晰度图像的图像“金字塔”迭代地执行光流。首先,针对低清晰度下行采样版本的图像计算光流。然后,放大该产生的初始光流,包括成比例地调整每个光流矢量的大小,并且使用产生的初始光流初始化更高清晰度版本的图像的光流。可以使用各个之前的光流初始化日益增多的更高清晰度版本的图像的光流,直至计算完整清晰度的光流。从概念上而言,由于下行采样版本的图像中的每个像素可以代表原图像中的区域,这与计算图像的逐步更小区域的光流相似。

在迭代处理中,可以按像素或按区域优化光流。在确定光流的迭代处理的一个实现方式中,分别分析相机视图中的每个像素或区域的光流矢量,以迭代地确定一个或多个其他相机视图中的多个最佳对应像素。然而,在分别分析小区域或各个像素的实现方式中,诸如一个或多个相机视图中的噪音、尘埃、或其他缺陷等图像质量变化会阻碍将像素与其正确的对应像素相关联的迭代处理的能力。例如,特定像素的最佳对应像素可能被噪音模糊,导致选择较不最佳的对应像素。为了解决该问题,在一些实施方式中,在应用计算光流的迭代方法之前,对输入的相机视图应用中值滤波、模糊、去噪、或其他合适的图像处理技术。在完成迭代处理之后,可以在计算合成视图或画布视图时使用产生的优化光流。

图9是示出根据一些实施方式的用于计算两个相机视图之间的光流的示例性处理的流程图。处理900概括了用于生成左相机视图与右相机视图之间的光流的示例性迭代方法。在其他实施方式中,可以使用相似的技术生成多个或不同的相机视图之间的光流,诸如三个相机视图之间的光流或任意朝向的多个相机视图之间的光流等,例如,顶部相机视图与底部相机视图。

当光流计算模块250接收一组相机视图时,处理900开始。例如,光流计算模块250可接收主相机视图和次相机视图或左相机视图和右相机视图。在一些实施方式中,例如,通过去噪、中值滤波、或模糊处理所接收的相机视图,以减少诸如一个或多个相机视图中的噪音等相机视图之间的对应像素之间的潜在图像质量差。通过初始化该组相机视图的光流915,处理900继续。例如,光流可以初始化成随机光流、零幅值光流、或任意其他合适的光流。例如,在使用金字塔类型的初始化的实现方式中,光流可以初始化成使用更低清晰度版本的相机视图计算时的放大版本的光流。然后,在处理900中,可以使用迭代方法优化初始化光流。

为了开始每次迭代,选择相机视图中的像素920,例如,左相机视图中的左上方像素。在一些实现方式中,以基于迭代的模式选择像素,并且在移至下一像素之前,更新与每个像素对应的光流矢量。例如,在第一次迭代时,像素可以被选择为从左上角像素开始并且继续进行至右下角像素。在一些实施方式中,后续迭代按照不同的顺序选择像素。例如,第二次迭代可以从右下角像素开始并且继续进行至左上角像素。根据其他实现方式,可以随机选择、从中心像素开始、或通过任意其他合适的模式选择像素。下面表1-3示出了用于选择像素序列的遍历图像中的像素的若干示例性模式。

接着,对于所选择的像素,生成一个或多个流矢量提议925。流矢量提议是与该像素相关联的候选光流矢量并且可以通过任意多个合适的技术而生成。例如,可以随机生成或基于针对变量优化问题的各项的子集而计算的梯度下降生成流矢量提议。通过当前流矢量的随机扰动也可以生成流矢量提议,或从与邻近或附近像素对应的流矢量拷贝流矢量提议。在一个实施方式中,针对所选择的像素生成四个流矢量提议:随机流矢量、通过梯度下降生成流矢量、拷贝被分配至所选择的像素的上方相邻像素的流矢量、以及拷贝被分配至所选择像素的左侧相邻像素的流矢量。然后,分析每个流矢量提议930,以在与其他提议和当前光流矢量相比较时确定该矢量提议是否改善了光流的优化。例如,通过比较变量优化问题的输出并且确定其是否已经下降而因此被带至接近最小值可以确定得到改善。在一些实施方式中,当输入变量优化问题时,可以模糊每个图像的强度梯度。因此,接受改善优化的提议并且提议变成与所选择像素相关联的新光流矢量。然后,处理900进行至序列中的下一像素,并且当更新光流中的全部流矢量时935,可以对更新的光流应用中值滤波或扩散滤波(例如,高斯模糊滤波)937,以减轻光流场的外围层效应。中值滤波和扩散滤波可以通过移除光流场中不与附近像素的光流矢量对准的外围层而改善光流场的一致性或平滑性。在一些实现方式中,扩散滤波可以基于该像素与其对应像素之间的像素强度值的误差对每个像素的每个光流矢量应用诸如高斯模糊或其他类型的模糊等加权扩散。例如,可以基于像素强度值的误差混合完全模糊的光流与预模糊的光流。相比于对应像素中像素强度值具有更小误差的像素,对于像素强度值具有更大误差的像素,光流矢量可以对模糊光流加权更重。在一些实施方式中,例如,使用方程式6的变量优化方程式的实施方式,可以整合中值滤波和加权扩散作为变量优化问题中的各项。然后,处理900移至迭代处理的下一次完整迭代。此时,在全部迭代完成之后940并且如果光流不是全清晰度光流942,例如,如果使用光流的金字塔类型的初始化,处理则返回至光流初始化915,以通过使用当前光流初始化的光流基于更高清晰度的相机视图继续迭代。否则,在全部迭代完成之后940,输出优化的光流945。

在光流计算的一个变形中,可以模糊像素的强度值来软化图像之间的硬边缘。此外,在迭代处理中,也可以模糊图像强度梯度自身。通过执行该模糊,对于不同图像上出现在不同地方的噪音和尖锐边缘,光流分析可以更健全。

在另一变形中,光流最初整合了从相机至另一相机的前一帧的光流。例如,在一些情况下,相机可以捕获包括在相机之间同步的一系列帧的视频。在当前帧的光流中可以使用前一帧的光流。当前帧可以使用前一帧的光流作为第一次迭代的初始解、或可以找出当前帧的解,并且将当前帧的解与前一帧的光流进行组合来确定当前帧光流。这允许一个以上的图像上的光流的时域正则化。在一些实现方式中,时域正则项可包括在变量优化方程式中。

画布视图生成

根据一些实施方式,光信息近似模块260基于通过新视图生成模块240生成的合成视图和通过光流计算模块250生成的光流而生成画布视图。例如,光信息近似模块260可以组装从具体生成的合成视图截取的区域的画布视图。在一些实施方式中,光信息近似模块260从新视图生成模块240请求生成画布视图时所需的合成视图。相似地,光信息近似模块260可以从光流计算模块250请求任意所需的光流。可替代地,在生成合成视图处理中,通过新视图生成模块240可以自动计算或请求光流。

如之前提及的,为了近似特定视点或一组视点处的光信息而生成画布视图。通过将画布视图分割成计算画布视图时的一组区域或像素而开始生成画布视图。在一些实施方式中,按像素执行光信息近似值,其中,画布视图中的每个像素与光信息近似值中的光线相关联。相似地,画布视图的每个区域可以与例如确定与画布视图的该区域相关的光信息时使用的视点相关联。例如,可基于来自该像素指定的合成相机位置的合成视图可以计算每个像素。在其他实施方式中,可基于比单个像素更大的画布视图的区域计算近似于视点处的光信息的画布视图。例如,在使用单平面相机的配置中,诸如在向外朝向的单环结构相机情况下,光信息近似值基于画布视图中的一个像素宽列的像素。可以针对生成画布视图时使用的各个画布视图区域及相关的光信息计算合成视图。在一些实现方式中,使用比单个像素或单列像素更大的区域减少画布视图生成系统110的运算负荷。例如,因为每个区域要求计算对该区域具有唯一性的合成视图,所以使用更少的区域可以要求计算的合成视图更少。例如,画布视图的区域可以是正方形区域、比1个像素更宽的列区域、或画布视图中的像素的任意其他合适子集。当计算全部所需的合成视图时,可以提取并且组合每个合成视图的指定区域,以形成近似于视点处的光信息的画布视图。

图10是示出根据一些实施方式的多个对象与示例性图像捕获系统的线图。简图1000包括原点305、左视点402和右视点404、瞳孔间距离410、相机310-317、合成相机425和430、视线440和445、与角度1020相关联的对象1005、与角度1025相关联的另一对象1010。在一些实施方式中,对象1005和1025是位于场景中的物理对象,但是,对象1005和1025也可以位于场景内的零视差距离处或场景内的任意其他点。

简图1000代表了图像捕获系统105捕获包括多个对象1005和1025的场景的示例性场景。为了在客户端VR设备115上重新创建该场景,画布视图生成系统110可以生成旨在用于显示给用户的左眼和右眼的画布视图。每个画布视图可以近似于与客户端VR设备115的用户的左眼和右眼对应的两组视点处的光信息。左视点402和右视点404可以代表计算画布视图时的左组视点与右组视点的示例性视点。在该实施方式中,通过瞳孔间距离410分离左视点402与右视点404。为了近似诸如左视点402或右视点404等视点处的光信息,光信息近似模块260可以组装捕获该视点处的相关光信息的相机视图和合成视图中的指定区域的画布视图。

在图10的实施方式中,各个相机310-317具有限定的视场并且无任何相机被配置为完全捕获场景的全部光信息,例如,相机310-317中的任一个不能从对象1005和对象1010这两者捕获光信息。可以生成诸如来自合成相机425和430的合成视图等合成视图,以捕获通过相机310-317不可直接捕获的特定多条光信息。然而,出于该目的生成的各个合成视图不可捕获生成近似于视点处的光信息的画布视图所需的全部光信息。

在一些实施方式中,各个相机310-317或合成视图425和430可以捕获生成适当的画布视图时所需的光信息的子集。例如,对象1005可以与光信息的指定点相关联。在该实施方式中,合成相机425生成包含光信息的合成视图,例如,从与合成相机425和左视点402都相交的对象1005的视线440标记的、关于从对象1005行进至左视点402的光线的信息。通过合成相机430同样可以捕获关于从对象1005行进至右视点404的光线的信息,因为其与视线445相交。例如,使用三角学方法可以计算包含关于相关光线的光信息的合成视图内的精确像素或区域的位置。在一些实施方式中,基于合成视图的视场和清晰度、视线440相对于合成相机425和左视点402的角度、以及合成相机425和左视点402的相对位置计算捕获关于对象1005与左视点402之间的光线的信息的合成相机425中的合成视图中的像素。

图11是示出根据一些实施方式的示例性画布视图的线图。例如,图11中的画布视图1100可以代表基于通过图10所示的相机310-317捕获的一组原相机视图而生成的示例性画布视图。画布视图1100是接近视点处的光信息的示例性画布视图,具体地,画布视图1100包括各自与角度1020和1025相关联的两个对象1005和1010。

例如,与画布视图1100中的Φ1020和Φ1025相关联的区域可以近似关于图10的场景中的对象1005和1010的光信息。基于来自适当合成相机的合成视图的光信息可以生成画布视图1100的各个关联区域。例如,从合成相机425的指定区域可以生成与Φ1020相关联的区域。

图12是示出根据实施方式的改变对象的视角的瞳孔间距离的效果的线图。简图1200包括原点305、第一视点1202、第二视点1204、第一瞳孔间距离1205和第二瞳孔间距离1210、对象1215、第一合成相机1220和第二合成相机1225、第一合成视图1230和第二合成视图1235、以及合成视图内的第一选择区域1240和第二选择区域1245。

在一些实施方式中,瞳孔间距离决定生成画布视图时的视点的位置。例如,第一瞳孔间距离1205和第二瞳孔间距离1210可以是通知画布视图生成时的视点的位置所使用的两个瞳孔间距离。第一视点1202可与第一瞳孔间距离1205相关联,并且相似地,第二视点1204可与第二瞳孔间距离1210相关联。相似地,不同的视点可要求不同的光信息以近似于视点处的光信息并且因此需要计算不同的合成视图。

可以基于若干种因素计算诸如第一合成相机1220和第二合成相机1225的位置等合成相机位置。例如,当第一合成相机定位成拦截从对象1215行进至第一视点1202的光线并且朝向为捕获相关光信息时,第一合成相机1220可以捕获关于从第一视点1202观察时的对象1215的光信息。相似地,第二合成相机1225定位成从第二视点1204捕获关于对象1215的光信息。由于第一视点1202和第二视点1204的位置不同,例如,基于选择的瞳孔间距离的不同,第一合成相机1220和第二合成相机1225根据视点位置从不同的位置捕获对象1215的光信息。

此外,存在捕获关于画布视图的指定视点的相关光信息的多个可能的合成相机位置和朝向,例如,沿着待捕获的一个或多个光线的各个合成相机位置。此外,可以基于诸如合成视图的计算难易度等因素、与其他合成相机位置或图像捕获系统105中的相机位置的一致性、或基于任意其他合适的原因选择第一合成相机1220的位置和朝向。例如,每个合成相机具有从环结构303上选择的直接向外定位、以维持与安装在图像捕获系统105上的实际相机的一致性的位置。相似地,基于计算的难易度可以选择合成相机位置,例如,选择最靠近于附近的现有相机视图的合成相机位置。

一旦确定合成相机位置,则可基于各种因素计算合成视图内的哪些像素或区域包含相关的光信息。关于合成视图的所需光信息的角度、相机视图的视场和透镜失真、以及捕获相机视图时的相机的位置都会影响合成视图内的哪些区域包含关于当前视点的相关光信息。例如,对象1215的位置、第一视点1202、以及第一合成相机1220的方位可以导致选择包含所需光信息的第一合成相机视图1230的第一区域1240。在该实施例中,当所需光信息的角度接近于第一合成相机视图1220的视场的右边缘时,第一合成区域1240的位置接近于第一合成相机视图1230的右边缘。相似地,对象1215相对于第二视点1204的位置及第二合成相机1225的方位还确定了第二合成相机视图1235中的哪些区域包含所需光信息。在简图1200的实施例中,第二合成相机视图1235内的第二选择区域1245包含所需光信息。

在一些实施方式中,应用三角法计算来确定合成视图内的指定区域的位置。

图13是示出根据一个实施方式的用于基于相机视图计算画布视图的示例性处理的线图。简图1300包括原相机视图1305、合成视图1310、画布视图1315、画布视图的区域1316、合成视图映射1320、以及画布视图计算1325。

在图13的实施方式中,原相机视图1305可以是通过图像捕获系统105捕获的、画布视图生成系统110计算画布视图时使用的一组相机视图。例如,原相机视图1305可包括与视场重叠的相机视图,允许将该组原相机视图1305混合到画布视图中。为了计算画布视图的区域1316,可以使用合成视图计算1320从原相机视图1305计算捕获关于画布视图的区域1316的光信息的对应合成视图1310。在一些实施方式中,基于原相机视图1305和光流通过新视图生成模块240执行合成视图计算1310。一旦计算了所需合成相机的合成视图1310,可以使用画布视图计算1325计算画布视图的区域1316。如上所述,可以通过三角法基于合成相机的相对位置和画布视图1315的关联视点计算合成视图1310内包含关于画布视图的区域1316的光信息的区域的位置。

在一些实施方式中,对画布视图1315的每个区域顺次重复图13中的处理,直至计算全部的区域。然而,在其他实现方式中,可以使用其他计算处理生成画布视图,例如,可以计算固定的一组合成视图或在组装画布视图1315之前即时确定并且计算所需的合成视图。有效地,图13中的处理涉及更改原相机视图1405的像素强度信息的两个步骤或两次映射,首先,将来自原视图1305的像素映射至一组合成视图1310,并且然后,将来自该组合成视图1310的像素映射至画布视图1315。映射是基于另一视图中的指定像素在一个视图中生成像素的像素级操作。图13中的处理是有效的,但是,会导致画布视图1315中不使用的合成视图1310的许多额外区域的计算,例如,计算并未整合到最终画布视图中的合成视图中的像素。当在计算合成视图内的哪些区域包含相关的光信息之前生成完整的合成视图1310时,该方法会导致画布视图1315的计算产生额外的处理费用。

图14是示出根据一个实施方式的用于基于相机视图计算画布视图的第二示例性处理的线图。简图1400包括原相机视图1405、选择像素1406、合成视图1410、画布视图1415、合成视图的区域1411、画布视图的区域1416、合成视图映射1425、画布视图映射1430、再映射处理1435、以及组合映射1440。与图13中的处理相比较,通过减少对相机视图中的像素执行的计算步骤次数并且通过减少最终不被整合到画布视图1410中的不必要的像素的计算,图14中的处理降低了计算画布视图1410时所需的处理能力。

在图14的实现方式中,为了计算画布视图的区域1415,对原相机视图1405应用组合映射1440,从而从原相机视图1405的相关像素直接生成画布视图的区域1315。在一些实施方式中,组合映射1440是将画布视图1415中的每个像素或区域映射至原相机视图1405中的一个或多个像素或区域的矢量场,例如,以选择的像素1406为代表。在一些实现方式中,可以将原相机视图1405中的多个像素映射至画布视图中的单一像素,例如,画布视图1415中的像素可以与原相机视图1405的第一相机视图中的像素的75%和原相机视图的第二相机视图中的另一像素的25%的混合相关联。组合映射1440可允许单次映射处理中从原相机视图1405内的选择像素1406的像素强度值计算画布视图1415的像素强度值。

在一些实现方式中,基于画布视图映射1430和合成视图映射1425生成组合映射1440。画布视图映射1430是将画布视图的区域1416与合成视图的对应区域1411相关联的映射,并且合成视图映射1425可以是将原相机视图1405中的像素与合成视图中的区域1411相关联的映射。可以通过与图12中的合成视图计算1320和画布视图计算1325相似的技术生成合成视图映射1425和画布视图映射1430。在一些实施方式中,合成视图的区域是一垂直列的像素,但是,合成视图的区域也可以是像素的高度的函数,从而创建经过移位的列的像素。

如之前描述的,可以基于原相机视图1405及原相机视图之间计算的光流计算合成视图1410。可以使用相似的技术生成合成视图映射1425。如上所述,可以通过新视图生成模块240生成关于合成视图1410或合成视图的区域1411的合成视图映射1425。在一些实现方式中,在不计算合成视图1410的任意像素强度值的情况下,出现合成视图映射1425。相似地,可以使用合成视图的位置及三角法生成画布视图映射1430,以确定与画布视图的区域相关联的合成视图的正确区域1411。

在计算关于画布视图的区域1416的画布视图映射1430和合成视图映射1425之后,可以使用再映射处理1430生成关于画布视图1416的区域的组合映射1440。然后,对画布视图1415中的各个其他区域重复再映射处理1435,以生成包含关于画布视图1415的各个区域的映射信息的组合映射1440。在一些实施方式中,由于各个映射是关联像素位置、但不传递或计算这些位置的像素强度值的矢量场,合成视图映射1425与画布视图映射1430不涉及计算画布视图1415或合成视图1410的任意像素强度值。

在再映射处理之后,则对原相机视图1405应用组合映射1440,以基于原相机视图1405中的选择像素1406生成关于画布视图1415的像素强度信息。在一些实现方式中,从原相机视图1405中的选择像素1406的像素强度值直接计算画布视图1415的像素强度值,而不在中间计算合成视图1410的像素强度值。

图15是示出根据一个实施方式的用于基于相机视图计算画布视图的处理的流程图。当光信息近似系统260接收生成画布视图的相机图像时1505,处理1500开始。然后,光流计算模块250可计算该组接收的相机视图中的邻近相机视图之间的光流1515。例如,光流计算模块250可基于诸如与图9有关描述的处理900等迭代处理计算光流。然后,光信息近似模块260可确定需要哪些合成视图生成画布视图1515,并且然后,进一步计算所需合成视图内的哪些指定像素或区域捕获了相关的光信息1520。然后,例如,可通过新视图生成模块260计算所需像素与接收的相机视图之间的映射1525。然后,基于之前计算的映射,光信息近似模块260可生成接收的相机视图与画布视图之间的组合映射1530。最后,通过光信息近似模块260生成画布视图1535。

结论

出于示出之目的展开了本发明的实施方式的上述描述;其并不旨在穷尽或将本发明局限于所公开的精确形式。相关领域技术人员应当认识到,根据上述公开内容,许多改造和变形是可能的。

本描述的一些部分就信息的操作的算法和符号呈现方面描述了本发明的实施方式。数据处理领域技术人员通常使用这些算法描述和呈现将其有效工作的实质传递给本领域技术人员。尽管从功能、运算、或逻辑方面描述,然而,应当理解的是,通过计算机程序或等效电路、微码等实现这些操作。进一步地,还证明了有时便于将这些操作的布置称之为模块、而不损失一般性。所描述的操作及其相关联的模块可以涵盖软件、固件、硬件、或其任意组合。

利用一个或多个硬件或软件模块单独或结合其他设备执行或实现此处描述的任意步骤、操作、或处理。在一个实施方式中,利用包括杆计算机程序代码的计算机可读介质的计算机程序产品实现软件模块,通过计算机处理器运行软件模块,以执行所描述的任意或全部步骤、操作、或处理。

本发明的实施方式还可以涉及用于执行此处的操作的装置。该装置可以被特别地构造用于所需目的,和/或其可以包括通过存储在计算机中的计算机程序而选择性激活或重新配置的通用计算设备。该计算机程序可以存储在耦合至计算机系统总线的非易失性、易失性计算机可读存储介质、或适合用于存储电子指令的任意类型的媒介中,进一步地,本说明书中所提及的任意计算系统可以包括单个处理器或可以是采用多个处理器设计来增加运算能力的架构。

本发明的实施方式还可以涉及通过此处描述的运算处理生产的产品。该产品可以包括从运算处理产生的信息,其中,信息存储在非易失性、易失性计算机可读存储介质中并且可以包括此处描述的计算机程序产品或其他数据组合的任意实施方式。

最后,本说明书中使用的语言主要选择用于易读性和指导性目的,并且不可选择为描绘或限制发明主题。因此,其不旨在通过该细节描述限制本发明的范围,而是通过基于其应用的问题的任意权利要求限制本发明的范围。相应地,本发明的实施方式的公开内容旨在为示出、而非限制下列权利要求中阐述的本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号