用于立体视觉图像捕获的多层相机装置的制作方法

文档序号:14444076阅读:243来源:国知局
用于立体视觉图像捕获的多层相机装置的制作方法

本申请要求于2016年8月17日提交的题为“Multi-Tier Camera Rig for Stereoscopic Image Capture(用于立体视觉图像捕获的多层相机装置)”的美国临时申请No.62/376,140的优先权和权益,其通过引用整体并入本文。

技术领域

本说明书大体上涉及相机装置。具体的,本说明书涉及从捕获的图像生成用于在虚拟现实(VR)和/或增强现实(AR)环境中显示的立体视觉全景。



背景技术:

全景摄影技术可用于图像和视频以提供场景的宽视图。通常,可以使用全景摄影技术和成像技术从使用传统相机拍摄的多个邻接照片获得全景图像。照片可以对准安置在一起以获得全景图像。



技术实现要素:

一个或多个计算机、相机装置、和容纳在该相机装置上的图像捕获设备的系统可以被配置为依靠将在运行中导致系统执行特定操作或动作的软件、固件、硬件、或它们的组合安装在系统上来执行该动作。

在一个一般方面中,一种相机装置包括:第一层图像传感器,所述第一层图像传感器包括第一多个图像传感器,所述第一多个图像传感器以圆形形状来布设并且被定向以使得所述第一多个图像传感器中的每一个的视场具有垂直于所述圆形形状的切线的轴;以及第二层图像传感器,所述第二层图像传感器包括第二多个图像传感器,所述第二多个图像传感器被定向以使得所述第二多个图像传感器中的每一个的视场具有不平行于所述第一多个图像传感器中的每一个的视场的轴,所述圆形形状具有特定半径,使得所述第一多个图像传感器中的至少三个毗连的图像传感器中的每一个的视场重叠。

在另一个一般方面中,一种相机装置包括:第一层图像传感器,所述第一层图像传感器包括布置在第一平面内的第一多个图像传感器,所述第一多个图像传感器被配置以使得所述第一多个图像传感器中的至少三个毗连图像传感器中的每一个的视场重叠;以及第二层图像传感器,所述第二层图像传感器包括布置在第二平面内的第二多个图像传感器,所述第二多个图像传感器均具有与所述第一多个图像传感器中的每一个的横纵比取向不同的横纵比取向,所述第一多个图像传感器限定了圆形形状,所述圆形形状具有特定半径,使得所述第一多个图像传感器中的至少三个毗连的图像传感器中的每一个的视场重叠。

在再另一个一般方面中,一种相机装置包括:相机壳体,包括:下圆周,以及上多面盖,所述下圆周布置在所述多面盖下方;第一多个图像传感器,其以圆形形状来布设并且沿着所述相机壳体的所述下圆周布置,使得所述第一多个图像传感器中的每一个具有正交于所述下圆周的向外投影;以及第二多个图像传感器,其均布置在所述上多面盖的面上,使得所述第二多个图像传感器中的每一个具有不平行于所述下圆周的法线的向外投影,所述第一多个图像传感器的所述圆形形状具有这样的半径以使得所述第一多个图像传感器中的至少三个毗连的图像传感器中的每一个的视场重叠。

此外,在其他一般方面中,一种相机装置包括具有第一多个图像传感器的第一层图像传感器。第一多个图像传感器可以以圆形形状来布设并且被定向以使得它们的视场轴垂直于它们以其来布设的圆形形状的切线。相机装置还包括包含第二多个图像传感器的第二层。第二多个图像传感器可以被定向以使得它们的视场轴不平行于第一多个图像传感器的视场轴。第二层可以位于相机装置的第一层之上。

实施方式可以单独地或与一个或多个其它特征组合地包括一个或多个以下特征。例如,在任何或所有上述实施方式中,容纳第一多个图像传感器的圆形相机装置壳体的半径,被如此限定以使得第一多个图像传感器中的第一图像传感器的第一视场与第一多个图像传感器中的第二图像传感器的第二视场及第一个多个图像传感器中的第三图像传感器的第三视场相交。在上述实施方式中的任何一个或全部中,第一多个图像传感器中的第一图像传感器、第一个多个图像传感器中的第二图像传感器、和第一个多个图像传感器中的第三图像传感器布置(be disposed)在平面内。

在另一方面中,一种相机装置包括相机壳体。相机壳体包括下圆周和上多面盖。下圆周位于多面盖下方。相机装置还可以包括第一多个相机,其以圆形形状来布设并沿着相机壳体的下圆周布置以使得第一多个相机中的每一个具有正交于下圆周的向外投影的。相机装置还可以包括第二多个相机。第二多个相机均可以布置在上多面盖的相应面上,使得第二多个相机中的每一个具有不平行于下圆周的法线的向外投影。

在另一方面中,一种方法包括为多层相机装置的第一层限定第一图像集合,从第一多个相机获得图像的第一集合,所述第一多个相机以圆形形状来布设以使得第一多个相机中的每一个具有正交于圆形形状的向外投影。该方法还可以包括计算第一图像集合中的第一光流并且基于第一光流来将第一图像集合拼接在一起以创建第一拼接图像。该方法还包括为多层相机装置的第二层限定第二图像集合。第二图像集合可以从第二多个相机获得,所述第二多个相机被布设以使得多个相机中的每一个具有不平行于第一多个相机的圆形的法线的向外投影。该方法还可以包括计算图像的第二集合中的第二光流,并且基于第二光流来将第二图像集合拼接在一起以创建第二拼接图像。该方法通过将第一拼接图像和第二拼接图像拼接在一起而生成全向立体全景图像。

该方面的其它实施例包括记录在一个或多个计算机存储设备上的对应的计算机系统、装置、和计算机程序,每个计算机系统、装置、和计算机程序被配置为执行该方法的动作。

在附图和下面的描述中阐述了一个或多个实施方式的细节。其它特征根据描述和附图以及权利要求书将变得显而易见。

附图说明

图1是用于在3D虚拟现实(VR)环境中捕获和渲染立体视觉全景的示例系统的框图。

图2是描绘被配置为捕获用于生成立体视觉全景的场景的图像的示例相机装置的图。

图3是描绘被配置为捕获用于生成立体视觉全景的场景的图像的另一示例相机装置的图。

图4A至图4D是描绘多层相机装置和关联组件的示例的图。

图5是示出多层相机装置的相机壳体的下圆周中的相机的视场轴的图。

图6是示出多层相机装置的相机壳体的上多面盖中的相机的视场轴的图。

图7是图示示例VR设备的图。

图8是图示作为相机视场的函数的相机和邻居的数目的示例曲线图。

图9是图示出作为相机视场的函数的内插视场的示例曲线图。

图10是图示出对相机装置的配置的选择的示例曲线图。

图11是图示出可以用于根据预定的装置直径来确定相机的最小数目的示例关系的曲线图。

图12A-B是在图像捕获期间可能发生的失真的线图示例。

图13A-B描绘在收集全景图像期间捕获的光线的示例。

图14A-B图示出如图13A-B所示的近似平面透视投影的使用。

图15A-C图示出应用于图像平面的近似平面透视投影的示例。

图16A-B图示出引入垂直视差的示例。

图17A-B描绘可以用于图示出3D全景中的点的坐标系的示例点。

图18表示图17A-图17B所描绘的点的投影图。

图19图示出使用本公开中描述的全景成像技术在全方向立体图像中捕获的光线。

图20是图示出由3D空间中的点致使的最大垂直视差的曲线图。

图21是图解产生立体全景图像的过程的一个实施例的流程图。

图22是图解捕获立体全景图像的过程的一个实施例的流程图。

图23是图解在头戴式显示器中渲染全景图像的过程的一个实施例的流程图。

图24是图解确定图像边界的过程的一个实施例的流程图。

图25是图解生成视频内容的过程的一个实施例的流程图。

图26示出可以用于实现这里描述的技术的计算机设备和移动计算机设备的示例。

各个附图中的相似附图标记指示相似的元素。

具体实施方式

例如,创建全景图像通常包括:使用相机装置中的单个相机或多个相机捕获周围三维(3D)场景的图像或视频。当使用容纳若干相机的相机装置时,可以将每个相机同步并配置为在特定时间点捕获图像。例如,每个相机所捕获的第一帧可以在与第二相机、第三相机、和第四相机捕获对应的第一帧大致相同的时间被捕获。图像捕获可以以同时的方式继续,直到捕获到场景中的某些或全部。虽然许多实施方式是就相机而言来描述的,但是可以就图像传感器或就相机壳体(其可以包括图像传感器)而言来描述实施方式。

容纳多个相机的相机装置可以被配置成捕获场景的特定角度。例如,容纳在相机装置上的相机可以以特定角度定向,并且从该角度捕获的所有(或至少一部分)内容可以被处理来生成特定场景的全景。

在一些实施方式中,每个相机可以以不同的角度定向以捕获场景的不同角度。在捕获场景的仅一部分或场景的一些或全部包含失真的事件下,可以执行多个处理来内插或配置来自全景的任何丢失、损坏、或失真的内容。

以下公开内容描述了用于在3D虚拟现实(VR)环境中的头戴式显示器(HMD)设备中显示这样的内容的目的来捕获、处理、校正、和渲染3D全景内容的多个装置和方法。对虚拟现实的引用也可以包括或可以是增强现实。在一些实施方式中,相机装置可以包括多层相机以减少或消除场景的缺失部分并减少内插。例如,在一些实施方式中,相机装置可以包括下层级的16个相机和上层级的6个相机。在一些实施方式中,下层级(或层)相机与上层级(或层)相机的比率大于2:1但小于3:1(例如2.67:1)。相机可以以不同的角度被定向,使得每个相机捕获可被处理以生成特定场景的全景的不同内容。相机的比率对于捕获具有适当的深度、焦点等的360°视频,同时减少或最小化相机的数目和图像处理量也是重要的。

图1是用于在3D虚拟现实(VR)环境中捕获和渲染立体视觉全景的示例系统100的框图。在示例系统100中,相机装置102可以捕获、本地存储(例如,永久或可移动存储)、和/或通过网络104提供图像,或者替选地,可以将图像直接提供给图像处理系统106以供分析和处理。在系统100的一些实施方式中,移动设备108可以充当相机装置102以在网络104各处提供图像。例如,一旦图像被捕获,图像处理系统106就可以对图像执行多个计算和处理,并且通过网络104将处理的图像提供给头戴式显示器(HMD)设备110以供渲染。在一些实施方式中,图像处理系统106可以包括在相机装置102和/或HMD设备110中。在一些实施方式中,图像处理系统106还可以将处理的图像提供给移动设备108和/或计算设备112以用于渲染、存储、或进一步处理。

HMD设备110可以表示能够显示虚拟现实内容的虚拟现实头戴装置(headset)、眼镜、目镜、或其它可穿戴设备。在操作中,HMD设备110可以执行VR应用(未示出),其可以向用户回放接收到的和/或处理的图像。在一些实施方式中,VR应用可以由图1所示的设备106、108、或112中的一个或多个来托管。在一个示例中,HMD设备110可以提供由相机装置102捕获的场景的视频回放。在另一示例中,HMD设备110可以提供拼接成单个全景场景的静止图像的回放。

相机装置102可以被配置来用作相机(也可以称为捕获设备)和/或处理设备以收集用于在VR环境中渲染内容的图像数据。虽然相机装置102在本文中被示出为与特定功能一起描述的框图,但是相机装置102可以采取图2至图6中所示的任何实施方式的形式,并且另外可以具有在本公开各处针对相机装置描述的功能。例如,为了简化描述系统100的功能,图1示出了不具有布置在相机装置102周围以捕获图像的相机的相机装置102。相机装置102的其它实施方式可以包括布设成多层的任何数目的相机,其可以围绕诸如装置102的圆形相机装置的圆周布置。

如图1所示,相机装置102包括多个相机139和通信系统132。相机139可以包括单个静止相机或单个相机装置。在一些实施方式中,在根据一些实施例的一个或多个层中,相机139可以包括沿着装置102的外周部(例如,环)并排布置(例如,装配)的多个静止相机或多个视频相机装置。相机139可以是视频相机、图像传感器、立体相机、红外相机、和/或移动设备。通信系统132可以用于上传和下载图像、指令、和/或其它相机相关内容。通信可以是有线或无线的,并且可以通过专用网络或公用网络进行对接。

相机装置102可以被配置为用作固定式装置或转动式装置。装置上的每个相机可以偏离装置的旋转中心来布置(例如,放置)。相机装置102可以被配置为绕360度旋转以扫掠和捕获例如场景的360度视图的全部或一部分。在一些实施方式中,装置102可以被配置为在静止位置操作,并且在这样的配置中,可以向该装置添加附加的相机装置以捕获场景的额外的向外视角。

在一些实施方式中,相机装置102包括以侧对侧或背对背方式布置的多个数字视频相机(例如,如图3所示),使得它们的镜头均指向径向向外的方向,以观看周围场景或环境的不同部分。在一些实施方式中,多个数字视频相机装置以具有与圆形相机装置102相切的观看方向的切向配置来布置。例如,相机装置102可以包括多个数字视频相机装置,其被布置以使得它们的镜头均指向径向向外的方向,同时与装置的基部相切来布设。数字视频相机可以指向来捕获不同方向的内容,以查看周围场景的不同角度部分。

在一些实施方式中,相机装置102可以包括多层数字视频相机装置。例如,相机装置可以包括下层,其中数字视频相机以侧对侧或背靠背的方式布置,并且还包括具有相对于下层相机布置在相机上方的附加相机的上层。在一些实施方式中,上层相机在不同于下层相机的平面上从相机装置102向外指向。例如,上层相机可以布置在与下层相机垂直或接近与下层相机垂直的平面上,并且每个相机可以从下层的中心向外指向。在一些实施方式中,上层中的相机装置的数目可以不同于下层上的相机的数目。

在一些实施方式中,来自下层上的相机装置的图像可以在相机装置102上以相邻对进行处理。在这样的配置中,每个相邻相机集合中的每个第一相机装置与相机装置基部的圆形路径相切布置(例如,放置),并对准(例如,以相机镜头指向)向左方向。每个相邻相机集合中的每个第二相机装置与相机装置基部的圆形路径相切布置(例如,放置),并对准(例如,以相机镜头指向)指向向右方向。上层相机也可以相对于彼此类似地布置。在一些实施方式中,相邻的相机是相同层级或层上的(例如,毗连的)邻居。

在相机装置102上使用的相机的示例设置可以包括每秒约60帧的逐行扫描模式(即,每个光栅线被采样以产生视频的每个帧而不是如如大多数视频相机的标准录制模式的隔行的模式)。此外,每个相机可以配置有完全相同(或类似的)设置。将每个相机配置为完全相同(或类似)设置可以提供捕获图像的优势,该图像在捕获后可以以期望的方式拼接在一起。示例布置可以包括将一个或多个相机设置为相同的缩放、对焦、曝光、和快门速度,以及在将防抖功能设为相关或关闭的情况下将相机设置为开白平衡。

在一些实施方式中,相机装置102可以在用于捕获一个或多个图像或视频之前进行校准。例如,相机装置102上的每个相机可以被校准和/或配置成拍摄全景视频。例如,所述设置可以包括将装置配置为以具有宽视场并且沿顺时针或逆时针方向绕360度范围以特定转速操作。在一些实施方式中,例如,装置102上的相机可以被配置为围绕场景的捕获路径的360度范围下每度捕获一帧。在一些实施方式中,例如,装置102上的相机可以被配置为围绕场景的捕获路径的360度(或更少)下范围每度捕获多帧。在一些实施方式中,例如,装置102上的相机可以被配置为捕获围绕场景的捕获路径的范围的多个帧而不必每度捕获特定度量的帧。

在一些实施方式中,相机可以被配置(例如设定)为同步地工作以在特定时间点从相机装置上的相机捕获视频。在一些实施方式中,相机可被配置为同步地工作以在一个时间段内从一个或多个相机捕获特定视频部分。校准相机装置的另一个示例可以包括配置如何存储传入图像。例如,传入图像可以作为单独的帧或视频存储(例如.avi文件、.mpg文件),并且这样存储的图像可以上传到互联网、另一个服务器或设备,或者与相机装置102上的每个相机一起本地存储。在一些实施方式中,传入图像可以被存储为编码视频。

图像处理系统106包括内插模块114、捕获校正模块116、和拼接模块118。例如,内插模块116表示可用于以下的算法:对数字图像和视频的部分进行采样并确定很可能在从相机装置102捕获的毗连图像之间发生的内插图像数目。在一些实施方式中,内插模块114可以被配置为确定毗连图像之间的内插图像片段、图像部分、和/或垂直或水平图像条。在一些实施方式中,内插模块114可以被配置为确定毗连图像中的相关像素之间的流场(和/或流向量)。流场可用于补偿图像已经历的变换以及用于处理已经历变换的图像。例如,可以使用流场来补偿所获得图像的特定像素网格的变换。在一些实施方式中,内插模块114可以通过对周围图像的内插来生成并非所捕获图像的一部分的一个或多个图像,并且可以将所生成的图像交织到所捕获的图像中以生成场景的附加虚拟现实内容。

捕获校正模块116可以被配置为通过补偿非理想捕获设置来校正捕获的图像。示例捕获设置作为非限制性示例可以包括圆形相机轨迹、平行主(相机)轴、垂直于相机轨迹的观看方向、与相机装置轨迹相切的观看方向、和/或其它捕获条件。在一些实施方式中,捕获校正模块116可以被配置为补偿在图像捕获期间的非圆形相机轨迹以及/或在图像捕获期间的非平行主轴中的一个或两个。

捕获校正模块116可以被配置为调整特定图像集合以补偿使用多个相机捕获的内容,其中相机间隔大于约30度。例如,如果相机之间的距离为40度,则通过从附加相机收集内容或通过内插丢失的内容,捕获校正模块116可以解决基于过少相机覆盖的特定场景中的任何丢失的内容。

在一些实施方式中,捕获校正模块116还可以被配置为调整图像集合以补偿由于相机姿态误差等引起的相机未对准。例如,如果在图像捕获期间发生相机姿态误差(例如由于相机的取向和位置引起的误差),则模块116可以混合来自若干图像帧的两个或更多列的像素,以移除包括由于曝光不良(或从图像帧到图像帧变化的曝光)和/或由于一个或多个相机的未对准而导致的伪像。拼接模块118可以被配置为基于限定的、获得的、和/或内插的图像来生成3D立体视觉图像。拼接模块118可被配置为从多个图像部分混合/拼接像素和/或图像条。拼接可以基于例如由内插模块114确定的流场。例如,拼接模块118可以(从内插模块114)接收并非图像集合的一部分的内插图像帧,并将图像帧交织到图像集合中。交织可以包括:模块118至少部分地基于由内插模块114生成的光流来将图像帧和图像集合拼接在一起。

经拼接组合可以用于生成用于在VR头戴式显示器中显示的全向立体(例如,全方向的立体)全景。图像帧可以基于从布置在特定装置上的多个相邻的相机对收集的所捕获视频流。这样的装置可以包括在该装置的第一层或层级中的约12至约16个相机,以及该装置的第二层或层级中的4至8个相机,其中第二层位于第一层之上。在一些实施方式中,可以在装置的每个层中包括奇数数目的相机。在一些实施方式中,装置包括多于一个或两个相邻相机的集合。在一些实施方式中,装置可以包括可以并排装配在装置上的多个相邻相机的集合。在一些实施方式中,拼接模块118可以使用与至少一个相邻对相关联的姿态信息来在执行交织之前对图像集合的一部分进行预先拼接。以下结合例如图3更明确地示出和描述相机装置上的相邻对。

在一些实施方式中,使用光学流技术将图像拼接在一起可以包括将所捕获的视频内容拼接在一起。这样的光流技术可以用于在先前使用相机对和/或单个相机捕获的特定视频内容之间生成中间视频内容。这种技术可以用作模拟在圆形固定相机装置上的一系列相机捕获图像的方式。模拟的相机可以类似于以下方法来捕获内容:将单个相机以圆形形状(例如,圆形、大致圆形、圆形图案)四处扫掠以捕获360度的图像,但是在上述技术中,实际放在装置上放置了较少的相机并且该装置可以是静止的。模拟一系列相机的能力还提供了能够捕获视频中的每帧内容的优点(例如,以每度捕获一个图像的捕获间隔的360个图像)。

通过使用图像稠密集合(例如,每度一个图像的360个图像),所生成的中间视频内容可以使用光流被拼接到实际捕获的视频内容,实际上,相机装置捕获少于360个图像。例如,如果圆形相机装置包括8对相机(即16个相机)或16个非配对相机,则所捕获的图像计数可以低至16个图像。光流技术可被用于模拟16个图像之间的内容,以提供360度的视频内容。

在一些实施方式中,使用光流技术可以提高内插效率。例如,替代内插360个图像,可以在每个连续的相机对(例如,[1-2]、[2-3]、[3-4])之间计算光流。给定所捕获的16个图像和光流,内插模块114和/或捕获校正模块116可以计算任何中间视图中的任何像素,而不必在16个图像之一中内插整个图像。

在一些实施方式中,拼接模块118可以被配置成拼接从具有多层相机的装置采集的图像,其中该多个层定位在彼此的上方或下方。拼接模块118可以处理从每层相机捕获的视频内容以针对每个层创建拼接图像,并且然后可以将与每个层相关联的拼接图像拼接在一起以产生360度图像。例如,相机装置可以包括在下层中的16个相机,以及在上层中的6个相机,其中该装置上上层位于下层上方。在这样的示例中,拼接模块118可以将来自下层上的16个相机的图像拼接在一起,以生成与下层相关联的拼接图像(例如,下层拼接图像)。拼接模块118还可以将来自上层上的6个相机的图像拼接在一起,以生成与上层相关联的拼接图像(例如,上层拼接图像)。为了生成360度图像,拼接模块然后可以将下层拼接图像与上层拼接图像拼接在一起。在一些实施方式中,相邻的相机是相同层级或层上的(例如,毗连的)邻居。

图像处理系统106还包括投影模块120和图像校正模块122。投影模块120可以被配置为通过将图像投影到平面透视平面中来生成3D立体视觉图像。例如,投影模块120可以获得特定图像集合的投影,并且可以通过将所述图像中的一些图像从平面透视投影转换为球面(即等矩形(equirectangular))透视投影来配置图像集合的一部分的重投影。该转换包括投影建模技术。

投影建模可以包括限定投影中心和投影平面。在本公开中描述的示例中,投影中心可以表示预定义xyz坐标系的原点(0,0,0)处的光学中心。投影平面可以放置在该投影中心的前方,其中相机面向以沿着xyz坐标系的z轴捕获图像。通常,可以使用从坐标(x,y,z)到投影中心的特定图像光线(image ray)的平面透视平面的交点来计算投影。例如,可以通过使用矩阵计算来操纵坐标系来进行投影的转换。

用于立体视觉全景的投影建模可以包括使用不具有单个投影中心的多视角图像。多视角通常示出为圆形形状(例如球形)(参见图13B)。当渲染内容时,在从一个坐标系转换到另一个坐标系时,本文描述的系统可以使用球体作为近似。

通常,球形(即等矩形)投影提供相等地围绕投影中心的具有球体中心的球形形状的平面。透视投影提供了在平面(例如2D面)透视平面上提供3D对象的图像以近似用户的实际视觉感知的视图。通常,可以在平面图像平面(例如,计算机监视器、移动设备LCD屏幕)上渲染图像,因此投影以平面透视的方式示出以提供未失真的视图。然而,平面投影可能不允许360度视场,因此捕获的图像(例如,视频)可以以等矩形(即球面)透视的方式存储,并且可以在渲染时被重新投影到平面透视。

在特定的重投影完成之后,投影模块120可以传输用于在HMD中渲染的图像的经重投影部分。例如,投影模块120可以将重投影部分提供给HMD 110中的左眼显示器和将重投影部分提供给HMD 110中的右眼显示器。在一些实施方式中,投影模块120可被配置为通过执行上述重投影来计算和减小垂直视差。

图像校正模块122可以被配置为通过补偿失真来生成3D立体视觉图像,包括但不限于透视失真。在一些实施方式中,图像校正模块122可以确定维持3D立体的光流的特定距离,并且可以对图像进行分割,以仅示出维持这样的流的场景的部分。例如,图像校正模块122可以确定3D立体图像的光流维持在从距圆形相机装置102的外边缘约一径向米到例如距离相机装置的外边缘约5个径向米之间。因此,图像校正模块122可以确保在一米和五米之间的样本被选择用于在HMD 110中在没有失真的投影中渲染,同时还为HMD 110的用户提供具有适当视差的适当3D立体效果。

在一些实施方式中,图像校正模块122可以通过调整特定图像来估计光流。例如,该调整可以包括:矫正图像中的一部分,确定与图像中的该部分相关联的估计相机姿态,以及确定该部分中的图像之间的流。在一个非限制性示例中,图像校正模块122可以补偿正在计算其中的流的两个特定图像之间的旋转差异。该校正可用于移除由旋转差(即旋转流)引起的流分量。这样的校正导致由平移(例如,视差流)引起的流动,这可以降低流估计计算的复杂性,同时使所得到的图像准确而鲁棒。在一些实施方式中,可以在渲染之前对图像执行除了图像校正之外的处理。例如,可以在执行渲染之前对图像执行拼接、混合、或附加的校正处理。

在一些实施方式中,图像校正模块122可以校正以并非基于平面透视投影的相机几何结构(camera geometry)捕获的图像内容致使的投影失真。例如,可以通过从多个不同视角插入图像并且通过调节来源于公共原点的与图像相关联的观看光线来对图像应用校正。内插图像可以被交织到捕获的图像中,来以对于人眼为舒适水平的旋转视差来产生在人眼看起来准确的虚拟内容。

在示例系统100中,设备106、108和112可以是膝上型计算机、台式计算机、移动计算设备、或游戏控制台。在一些实施方式中,设备106、108和112可以是可以被布置(例如,放置/定位)在HMD设备110内的移动计算设备。该移动计算设备可以包括显示设备,其可以被用作例如HMD设备110的屏幕。设备106、108和112可以包括用于执行VR应用的硬件和/或软件。另外,当设备106、108和112被放置在相对于HMD设备110的前方或保持在位置范围内时,这些设备可以包括能够辨识、监视、和跟踪HMD设备110的3D移动的硬件和/或软件。在一些实施方式中,设备106、108和112可以通过网络104向HMD设备110提供附加内容。在一些实施方式中,设备102、106、108、110和112可以配对或通过网络104连接来连接到彼此中的一个或多个/与其对接。该连接可以是有线或无线的。网络104可以是公用通信网络或专用通信网络。

系统100可以包括电子存储。该电子存储可以包括在任何设备中(例如,相机装置102、图像处理系统106、HMD设备110、和/或诸如此类)。电子存储可以包括电子地存储信息的非暂时性存储介质。该电子存储可以被配置为存储捕获的图像、获得的图像、预处理的图像、后处理的图像等。利用任何公开的相机装置捕获的图像可以被处理并存储为一个或多个视频流或存储为各个帧。在一些实施方式中,存储可以在捕获期间发生,并且渲染可以直接发生在捕获部分之后,以使得比捕获和处理不是并发更早地更快访问全景立体内容。

图2是描绘被配置为捕获用于生成立体视觉全景的场景的图像的示例相机装置200的图。相机装置200包括附连到环状支撑基部(未示出)的第一相机202A和第二相机202B。如图所示,相机202A和202B面向直接向外(朝向要捕获的图像/场景)并平行于装置200的旋转中心或轴(A1)而以环形位置来布置。在一些实施方式中,图2的图可以对应于多层相机装置的一层。

在所描绘的示例中,相机202A和202B相隔一定距离(B1)被布置(例如放置)在安装板208上。在一些实施方式中,相机装置200上的每个相机之间的距离(B1)可以表示平均人类瞳距(IPD)。以相隔IPD距离来放置相机可以近似人眼在其旋转(左或右,如箭头204所示),以扫描由箭头204指示的捕获路径周围的场景时会如何查看图像。示例平均人类IPD度量可以约为5厘米至约6.5厘米。在一些实施方式中,相隔标准IPD距离来布置的每个相机可以是立体相机对的一部分。

在一些实施方式中,相机装置200可被配置为近似标准人类头部的直径。例如,相机装置200可以设计成具有约8厘米至约10厘米的直径206。可以为装置200选择该直径206以近似人类头部会如何相对于旋转中心A1旋转并且用人眼观看场景图像。其它度量是可能的,并且如果例如要使用更大的直径,则装置200或系统100可以调整捕获技术和所得到的图像。

在一个非限制性示例中,相机装置200可以具有约8厘米至约10厘米的直径206,并且可以容纳相隔约6厘米的IPD距离来放置的相机。下面将描述多个装置布设。本公开中描述的每个布设可以配置有上述或其它直径和相机之间的距离。

如图2所示,两个相机202A、202B可以被配置成具有宽视场。例如,相机可以捕获约150度至约180度的视场。相机202A、202B可以具有用于捕获更宽视野的鱼眼镜头。在一些实施方式中,相机202A、202B用作立体对。

在操作中,装置200可以围绕旋转中心A1旋转360度以捕获全景场景。替选地,该装置可以维持静止,并且可以向相机装置200添加附加的相机装置以捕获360度场景的附加部分(例如,如图3和图4A所示)。

图3是描绘被配置为捕获用于生成立体视觉全景的场景的图像的另一示例相机装置300的图。相机装置300包括附连到环状支撑基部(未示出)的多个相机302A-302H。第一相机302A被示出为实线,并且附加的相机302B-302H用虚线示出,以表示指示是可选的。与相机装置200中所示的平行安装的相机(见相机202A和202B)对比,相机302A-302H与圆形相机装置300的外圆周相切来布置。如图3所示,相机302A具有相邻相机302B和相邻相机302H。

在所描绘的示例中,与装置200中的相机类似,相机202A和202B相隔特定距离(B1)来布置。在该示例中,相机302A和302B可用作相邻对以捕获分别向左和向右方向远离中央相机镜头的角度,如下面详细描述的。

在一个示例中,相机装置300是包括可旋转或固定基部(未示出)和安装板306(其也可以称为支撑件)的圆形装置,并且相邻的相机对包括:第一相机302A,其被放置在安装板306上,并且被配置为指向与安装板306的边缘相切并且被布设成指向向左方向的观看方向,以及第二相机302B,以与第一相机并排的方式放置在安装板306上并且放置在与第一相机302A相距瞳距(或不同距离(例如,小于IPD距离))处,第二相机302B被布设成指向与安装板306的边缘相切并且被布设成指向向右的方向的观看方向。类似地,相邻对可以由相机302C和302D产生,另一对可以由相机302E和302F产生,并且又一对可以由相机302G和302H产生。在一些实施方式中,每个相机(例如,302A)可以与不与其自身毗连但与其邻居毗连的相机配对,使得该装置上的每个相机可以与装置上的另一相机配对。在一些实施方式中,每个相机装置可以与其直接邻居(在任一侧)配对。

在一些实施方式中,一个或多个立体图像可以由内插模块114生成。例如,除了在相机装置300上示出的立体相机之外,可以生成附加的立体相机作为合成立体图像相机。具体的,分析来自捕获图像的光线(例如,光线跟踪)可以产生3D场景的模拟帧。该分析可以包括:从视点反向追踪通过特定图像或图像帧并进入场景的光线。如果特定的光线照到场景中的对象,则它通过的每个图像像素可以用一定颜色来绘制以匹配该对象。如果该光线没有照到该对象,则可以利用与场景中的背景或其它特征匹配的颜色来绘制该图像像素。使用视点和光线跟踪,内插模块114可以生成看起来来自模拟立体相机的附加场景内容。该附加内容可以包括图像效果、缺失图像内容、背景内容、视场外部的内容。

如图3所示,相机302A-302H与相机装置300的外圆周相切布置(例如,被放置),并且因此可以捕获场景的达180度的视野。即,由于相机以切向方式放置,所以可以在该装置上的每个相机中捕获完全不被遮挡的180度视场。

在一些实施方式中,相机装置300包括相邻相机。例如,装置300可以包括相邻相机302A和302B。相机302A可以被配置有在与安装板304的边缘相切的观看方向上指向的关联的镜头并被布设成指向向左的方向。类似地,相机302B可以以并排的方式布置在安装板304上,并且被放置在距离相机302A近似人类瞳距处,并且被布设成指向与安装板304的边缘相切的观看方向并且被布设成指向向右的方向。

在一些实施方式中,相机302A-H上(或相机装置300上)的特定传感器可以布置成与相机302A-H(或装置300)的外圆周相切,而不是使实际相机302A-H切向布置。以这种方式,相机302A-H可以根据用户偏好进行放置,并且传感器可以基于装置300的位置、扫掠速度,或基于相机配置和设置来检测哪个相机或相机302A-H可以捕获图像。

在一些实施方式中,邻居可以包括以背对背或并排方式布设的相机302A和相机302E。这种布设也可以用于收集由相应的相机镜头和安装板304形成的方位角308的左右的视角。在一些实施方式中,相机被布设成与分别由相机镜头和安装板304形成的方位角308的左右的倾斜角。

在一些实施方式中,放置在相机装置300上的相机可以在图像内插期间与任何其它相邻相机配对,并且在向外面向的方向上简单地围绕圆形装置对准。在一些实施方式中,装置300包括单个相机(例如,相机302A)。在只有相机302A安装到装置300的事件下,可以通过将相机装置300顺时针旋转完全360度来捕获立体全景图像。

在一些实施方式中,图3的图可以对应于多层相机装置的一层。例如,在这样的实施方式中,多层相机装置的一层可以包括附连到多层相机装置的环状支撑结构的相机302A-302H。

图4A至图4D是图示根据实施方式的、相机装置400(也可以称为多层相机装置)的各个视图(分别为透视图、侧视图、俯视图、和底视图)的图。如图所示,相机装置400包括具有下圆周430和上多面盖440的相机壳体420。下圆周430可以包括相机405A至405C和405M。虽然下圆周430的这种实施方式包括多于四个的相机,但为了简单起见,只对四个相机进行了标记。在该实施方式中,相机(其也可以被称为捕获设备或图像传感器)可以统称为相机405。上多面盖440可以包括相机415A至415B和415M。虽然上多面盖的这种实施方式包括多于三个的相机,但是为了简单起见,仅对三个相机进行了标记。在这种实施方式中,相机(其也可以被称为捕获设备或图像传感器)可以统称为相机415。

相机415(例如,415A等)被包括在第一层相机(或图像传感器)中,并且相机405(例如,405A等)被包括在第二层相机(或图像传感器)中。第一层相机装置可以称为相机的主层。如图4B所示,第一层相机中的每个图像传感器的视场(或中心)布置在平面PQ1内或与平面PQ1相交,并且第二层相机中的每个图像传感器的视场(或中心)布置在平面PQ2内或与平面PQ2相交。平面PQ1平行于平面PQ2。

在该实施方式中,相机装置400包括十六个相机装置415的第一层和六个相机405的第二层。在一些实施方式中,下层级(或层)相机与上层级(或层)相机的比率为大于2:1但小于3:1(例如2.67:1)。

如图所示,在该实施方式中,相机装置400仅包括两层相机。相机装置400不包括第三层相机,并且因此仅在两个平面上具有相机。在这种实施方式中,在相机装置400中的第一层相机下面不存在类似于第二层相机的对应层级相机。可以排除较低层级(或层)的相机以减少图像处理、重量、费用等等,而不牺牲图像利用。

尽管未示出,但是在一些实施方式中,相机装置可以包括三层相机。在这样的实施方式中,第三层相机装置可以具有与第二层相机相同的数目(例如,六个相机)或不同数目(例如,更少、更多)的相机。第一层相机(例如,十六个)可以布置在第二和第三层相机之间。

与本文所述的其它实施方式类似,相机400的下周部430的相机405向外面向(例如,远离相机装置400的中心面向)。在这种实施方式中,每个相机405被定向成使得相机405的镜头系统的视场以其为中心的轴垂直于圆形形状(例如,圆、基本上为圆)的切线,该圆形形状由相机壳体420的下圆周430并且进而由相机405限定的圆形形状限定。这样的示例至少在具有与相机405相关联的轴510和切线520的图5中示出。

在该实施方式中,每个相机被配置为使得轴510(图5所示)可以延伸通过相机装置400的一侧上的一个镜头系统(例如,一个镜头或捕获传感器的中心),通过相机装置400的中心530,以及通过相机装置400的另一侧的另一镜头系统。相机405(或图像传感器)围绕相机壳体420的下圆周430以圆形形状布设,使得每个相机405具有可以与下圆周430正交并且进而与由相机装置400限定的圆形形状正交的向外投影(或投影中心)。换言之,相机405可以具有远离相机装置400的内部面向的投影。

在一些实施方式中,每个相机405的镜头系统偏离每个相机405的主体的中心。这导致每个相机相对于其它相机405偏移一定角度来被布置在相机壳体420内以使得每个相机的视场相对于相机装置400可以垂直定向(例如,垂直于由下周部420限定的圆形的切线)。

虽然未示出,但是在一些实施方式中,奇数数目的相机可被包括在相机壳体中作为下圆周420的一部分。在这样的实施方式中,在没有通过多个相机镜头系统和相机装置的中心来步骤的轴的情况下,相机的镜头系统可以具有以垂直于相机装置的切线的轴(或由相机装置限定的圆形)为中心的视场。

在一些实施方式中,可以基于一个或多个相机405的光学属性(optics)(例如,视场,像素分辨率)来限定下圆周430的最小或最大几何结构。例如,下圆周430的最小直径和/或最大直径可以基于至少一个相机405的视场来限定。在一些实施方式中,相对大(或宽)的视场可以导致相对小的下圆周430。如图4A至图4D所示,例如,相机405中的每一个布设成纵向模式(例如,4:3横纵比模式),使得由相机405捕获的图像的水平尺寸小于由相机405捕获的图像的垂直尺寸。在一些实施方式中,相机405中的每一个可以以任何横纵比取向(例如,16:9或9:16横纵比,3:4横纵比)布置。

在一些实施方式中,下周部430的直径(或半径(RA)(图4C所示))被限定为使得至少三个毗连的相机装置405的视场重叠(例如,相交,相交于在空间中的至少点、面积、和/或体积上)。相机405内的传感器布置在平面内(其基本平行于穿过下周部430的平面)。在一些实施方式中,至少两个相邻相机405的整个视场(例如或基本上整个视场)可以与相机405中的第三相机(与两个毗连的相机405中的至少一个相毗连)的视场重叠。在一些实施方式中,三个毗连相机405的任何集合的视场可以重叠,使得围绕下周部430的任何点(例如,通过相机405的传感器的平面内的任何点)可以被至少三个相机405捕获。三个毗连相机405的重叠对于能够以适当的深度、焦点等捕获360°视频可以是重要的。

在一些实施方式中,相机装置400的上多面盖430的相机415向外面向(例如,远离相机装置400的中心)。根据一些实施方式,相机415中的每一个被定向成使得相机415的镜头系统的视场所沿的轴与相机405的镜头系统的视场的轴不平行。例如,如图6所示,对于在相机壳体420上的相机405正上方布置的那些相机415(例如,相机415A和相机405A),相机415的视场610的轴与相机405的视场510的轴形成锐角。此外,对于在相机壳体420的相对侧上的相机405上方布置的那些相机415(例如,相机415A和相机405B),相机415的视场610的轴与相机405的视场510的轴形成钝角。

在一些实施方式中,每个相机被配置为使得轴610(图6所示)可延伸穿过相机装置400一侧上的一个镜头系统(例如,一个镜头或捕获传感器的中心),通过下圆周的中心630。相机415(或图像传感器)围绕相机壳体420的上多面盖440以圆形形状布设,使得每个相机415具有不平行于下周部430的法线的外部投影(或投影中心)。

在一些实施方式中,相机415布置在上多面盖440的相应面445上。例如,如图4A-4D所示,相机415A布置在面445A上,相机415B布置在面445B上,并且相机415M布置在面445M上。上多面盖440的面445可以以与下圆周430的平面的角度不同的角度在平面上定向。在一些实施方式中,虽然下圆周430的相机405可以从相机壳体420的中心直接向外面向,但是面445可以将相机415从相机壳体420的中心向上和向外引导,如图4A-4D所示。换言之,相机415可以具有从相机装置400的内部部分远离且向上面向的投影。尽管未示出,但是在一些实施方式中,奇数数目的相机装置415可以被包括在相机壳体420中,作为上多面盖440的一部分。

在一些实施方式中,可以基于一个或多个相机415的光学属性(例如,视场、像素分辨率)来限定上多面盖440的最小或最大几何结构。例如,可以基于至少一个相机415的视场来限定上多面盖440的最小直径和/或最大直径。在一些实施方式中,相机415中的至少一个(例如,至少一个相机415的传感器)的相对大(或宽)的视场可以导致相对小的上多面盖440。如图4A至4D所示,例如,相机415中的每一个被布设成横向模式(例如,3:4横纵比模式),使得由相机415捕获的图像的水平尺寸大于由相机415捕获的图像的垂直尺寸。在一些实施方式中,相机415中的每一个可以以任何横纵比或取向(例如,16:9或9:16横纵比,4:3横纵比)布设。

在一些实施方式中,限定上多面盖440的直径(或半径),使得至少三个毗连相机415的视场重叠。在一些实施方式中,至少两个毗连相机415的整个视场(例如,或基本上整个视场)可以与相机415中的第三相机(与两个毗连的相机415中的至少一个相毗连)的视场重叠。在一些实施方式中,三个毗连的相机415的任何集合的视场可以重叠,使得围绕上多面盖440的任何点(例如,穿过相机415的传感器的平面内的任何点)可以被至少三个相机415捕获。

根据一些实施方式,面445可以是成角度的,使得相机415捕获相机405的视场外的图像。例如,由于相机405可以沿相机壳体420的下圆周430布置,使得第一多个相机中的每一个具有正交于下圆周430的向外的投影,相机405可能无法捕获在相机壳体420正上方的图像。因此,面445可以成角度,使得相机415捕获在相机壳体420正上方的图像。

根据一些实施例,相机装置400可以包括杆壳体450。杆壳体450可以包括一个多个气流室,其已被配置成从相机405和415朝着相机装置400的底部将热量引走。根据一些实施方式,风扇460可以位于杆壳体的底部以促进空气流过相机装置400并从相机壳体420移除热量。

在一些实施方式中,相机装置400可以包括用于记录与相机405和相机410捕获的图像(和视频)相关联的音频的麦克风(未示出)。在一些实施方式中,相机装置400可以包括麦克风安装座,外部麦克风可以附接至其并连接到相机装置400。

在一些实施方式中,相机装置400可以包括用于安装到诸如三脚架的另一设备的机构,并且安装机构可以附接到杆壳体450。在一些实施方式中,可以布置一个或多个开口(例如,布置在相机装置400的底侧),使得相机装置400可以安装到三脚架。在一些实施方式中,用于将相机装置400安装到诸如三脚架的另一设备的耦接机构可以布置在与麦克风安装座的位置相对的一侧。在一些实施方式中,用于将相机装置400安装到另一设备的耦接机构可以在与麦克风安装座的位置相同的一侧。

在一些实施方式中,相机装置400可以可移除地耦接到诸如载具(例如,诸如四轴飞行器的空中载具)的另一设备。在一些实施方式中,相机装置400可以由足够轻的材料制成,使得相机装置400和关联的相机405、415可以使用诸如四轴飞行器的载具来移动。

在一些实施方式中,本公开中描述的相机装置可以包括安装在圆形壳体上的任何数目的相机。在一些实施方式中,相机可以与从圆形装置的中心向外的四个方向中的每一个上的相邻相机装置等距安装。在该示例中,例如,配置为立体视觉邻居的相机可以沿着圆周向外瞄准,并且以零度、九十度、一百八十度、和二百七十度的方式布置,使得每个立体视觉邻居捕获360度视场的单独象限。通常,相机的可选择视场确定立体视觉邻居的相机视野的重叠量以及相机之间和毗连象限之间的任何盲点的大小。一个示例相机装置可以采用被配置为捕获大约120度至大约180度的场的一个或多个立体视觉相机邻居。

在一些实施方式中,在本公开中描述的多层相机装置的相机壳体可以配置有约5厘米至约8厘米的直径(例如,图2中的直径206)以模拟人类瞳距来捕获例如如果用户将她的头或身体以四分之一圆形形状、半圆形形状、全圆形形状、或圆形形状的其它部分转动而将看到的内容。在一些实施方式中,直径可以指代穿过该装置或相机壳体从相机镜头到相机镜头的距离。在一些实施方式中,直径可以指代穿过该装置从一个相机传感器到另一个相机传感器的距离。

在一些实施方式中,相机装置从约8厘米至约25厘米放大,以例如容纳附加的相机固定件。在一些实施方式中,在较小直径的装置上可以使用较少的相机。在这样的示例中,本公开中描述的系统可以探知或演绎出该装置上的相机之间的视图,并对这样的视图与实际捕获的视图进行交织。

在一些实施方式中,例如,本公开中描述的相机装置可用于通过使用具有旋转镜头的相机或旋转相机在单次曝光中捕获整个全景来捕获全景图像。上述相机和相机装置可以与本公开中描述的方法一起使用。具体的,可以使用本文所述的任何其它相机装置来执行关于一个相机装置描述的方法。在一些实施方式中,相机装置和后续捕获的内容可以与其它内容组合,所述其他内容诸如虚拟内容、渲染的计算机图形(CG)内容、和/或其它获得或生成的图像。

通常,使用相机装置400上的至少三个相机(例如,405A、405B、405C)捕获的图像可以用于计算特定场景的深度度量。深度度量可用于将场景(或来自场景的图像)的部分转换为3D立体视觉内容。例如,内插模块114可以使用深度度量来产生可以拼接成360度立体视频图像的3D立体内容。

在一些实施方式中,相机装置400能够捕获例如图19中示出的全方向立体(ODS)投影所需的全部光线,同时使图像质量最大化并且使图像失真最小化。

沿具有大于ODS视野圆的半径r(未示出)的半径R的圆形形状的(每层的)相机。经过相机的ODS光线将以与该相机所在的圆的法线成角度sin-1(r/R)来按照这种方式进行。两个不同的相机布局是可能的:切向布局(未示出),和径向布局,例如如图4A至4D中相机装置400的每个层所示。

切向布局将相机中的一半专用于捕获左图像的光线并且将另一半专用于捕获右图像的光线,并且使每个相机对准以使得经过该相机的ODS光线沿该相机光轴来按照这种方式进行。另一方面,相机装置400的径向布局使用全部相机来收集左图像和右图像二者的光线并且因此每个相机直接向外面向。

在一些实施方式中,相机装置400的径向设计的优点在于:图像内插发生在毗连相机之间,而对于切向设计,图像内插必须发啊生在每隔一个相机之间,这使视图内插问题的基线加倍并且使其更加有挑战。在一些实施方式中,径向设计的相机装置400的每个相机必须捕获左图像和右图像的光线,每个相机所需的水平视场增加了2sin-1(r/R)。实践中,这意味着相机装置400的径向设计对于较大的装置半径更好并且切向设计对于较小的半径更好。

例如,相机装置400中所包括的相机可以是大于3cm宽并且因此可以限制可以将相机装置400做得多小。因此,在一些实施方式中,径向设计可以更适合并且进一步的讨论是基于该布局的。在一些实施方式中,可以用3个参数来描述相机装置400几何结构(参见图4C)。该装置的半径R、相机的水平视场γ、以及相机的数目n。本文描述的相机装置400至少实现了以下指出的考虑:

-使装置半径R最小化,由此降低了垂直失真。

-使毗连相机之间的距离最小化,由此降低了视图内插的基线。

-对于每个相机具有足够的水平视场,使得可以拼接距离该装置至少一定距离d的内容。

-使每个相机的垂直视场最大化,这导致输出视频的大的垂直视场。

-使总体图像质量最大化,这一般需要使用大相机。

相机装置400的环(或层)中的毗连相机之间,视图可以在两个相机之间所成的直线上合成并且这些合成的视图可以仅包括由相机二者观察的点。图4C示出了为了允许对距离相机装置400中心至少d的距离的所有点进行拼接而将由一个相机观察的量。

给定包含n个相机的半径为R的环,每个相机的最小所需水平视场可以导出如下:

b2=d2+R2-2dR cosβ (2)

在一些实施方式中,由相机装置(例如,相机装置400)的每一层产生的全景图像可以具有处于期望最小拼接距离(例如,大约0.5m)处的至少10度的重叠。更多细节在以下中公开:Anderson et al.,“Jump:Virtual Reality Video(跳跃:虚拟现实视频)”,ACM Transactions on Graphics(TOG),Proceedings of ACM SIGGRAPH Asia 2016,Vol.35,Issue 6,Art.No.198,November 2016,其全部内容通过引用并入本文。

图7是图示示例VR设备(VR头戴装置)702的图。用户可以通过类似于放置护目镜、太阳镜等来将头戴装置702放置在她的眼睛上而戴上VR头戴装置702,。在一些实施方式中,参考图1,VR头戴装置702可以使用一个或多个高速有线和/或无线通信协议(例如,Wi-Fi、蓝牙、蓝牙LE、USB等)或通过使用HDMI接口与计算设备106、108或112的多个监视器对接/连接。该连接可以将虚拟内容提供给VR头戴装置702,以便在在VR头戴装置702中包括的屏幕(未示出)上向用户显示。在一些实施方式中,VR头戴装置702可以是启用投射的设备。在这些实施方式中,用户可以选择向VR头戴装置702提供或投射(投影)内容。

此外,VR头戴装置702可以使用一个或多个高速有线和/或无线通信接口和协议(例如,Wi-Fi、蓝牙、蓝牙LE、通用串行总线(USB)等)与计算设备104对接/连接。计算设备(图1)可以辨识向VR头戴装置702的接口,并且作为响应,可以执行VR应用,其使用户和计算设备处于在包括虚拟内容的计算机生成的3D环境(VR空间)中。

在一些实施方式中,VR头戴装置702可以包括可以执行VR应用的可移动计算设备。可移动计算设备可以类似于计算设备108或112。可移动计算设备可以包含在VR头戴装置(例如,VR头戴装置702)的外壳或框架内,该VR头戴装置然后可由VR头戴装置702的用户戴上。在这些实施方式中,可移动计算设备可以提供用户在与计算机生成的3D环境(VR空间)交互时观看的显示器或屏幕。如上所述,移动计算设备104可以使用有线或无线接口协议连接到VR头戴装置702。移动计算设备104可以是VR空间中的控制器,可以作为VR空间中的对象出现,可以向VR空间提供输入,并且可以从VR空间接收反馈/输出。

在一些实施方式中,移动计算设备108可以执行VR应用,并且可以向VR头戴装置702提供数据以供创建VR空间。在一些实施方式中,在在VR头戴装置702中包括的屏幕上向用户显示的VR空间的内容也可以显示在在移动计算设备108中包括的显示设备上。这允许其他人看到用户可能在VR空间中进行交互的内容。

VR头戴装置702可以提供指示移动计算设备108的位置和取向的信息和数据。VR应用可以接收并使用位置和取向数据来作为VR空间内的用户交互的指示。

图8是图示作为多层相机装置的一层的相机视场的函数的相机(和邻居)数目的示例曲线图800。曲线图800表示可以用于确定对于用于生成立体视觉全景的预定义视场可以排列在多层相机装置的一层上的相机数目的示例曲线图。曲线图800可以用于计算相机设置和相机安置,以确保特定的立体全景结果。一个示例设置可以包括选择多个相机以附连到特定的相机装置。另一设置可以包括确定在捕获、预处理或后处理步骤期间将使用的算法。例如,对于光流内插技术,拼接完整的360度全景可以指示每个光学光线方向应该被至少两个相机看到。这可能会限制为了覆盖整个360度要使用的相机的最少数目,其是相机视场theta[θ]的函数。光流内插技术可以由相机邻居(或对)或各个相机执行和配置。

如图8所示,描绘图示函数802的曲线图。函数802表示作为相机视场[θ]806的函数的相机的数目[n]804。在该示例中,大约95度的相机视场由线808示出。线808和函数802的交点810示出了使用均具有95度视场的十六(16)个相机将提供期望的全景结果。在这样的示例中,可以通过对每个相邻相机集合的相邻相机进行交织来配置相机装置,以使用在该装置上放置相邻相机时可能出现的任何空间。

除了对相邻相机进行交织之外,光流要求可以规定系统100计算相同类型的相机之间的光流。即,可以针对第一相机计算光流,并且然后针对第二相机计算光流,而不是同时计算二者。通常,像素处的流可以被计算为取向(例如,方向和角度)和幅值(例如,速度)。

图9是图示作为相机视场[θ]904的函数的内插视场[θ1]902的示例曲线图900。曲线图900可以用于确定相机的视场的哪个部分与其左邻居或右邻居共享。这里,在大约95度的相机视场(由线906示出)处,内插视场被示为大约48度,如交点908所示。

给定两个连续的相机通常不捕获完全相同的视场的图像,则内插相机的视场将由相机邻居的视场的交点表示。内插视场[θ1]可以是相机视场[θ]和相机邻居之间角度的函数。如果对于给定的相机视场选择了最小数目的相机(使用图8所示的方法),则可以将[θ1]作为[θ]的函数进行计算,如图9所示。

图10是图示相机装置的配置的选择的示例曲线图1000。具体的,曲线图1000可以用于确定特定相机装置可以设计成多大。曲线图1000描绘了作为装置直径[D以厘米计]的函数的拼接比[d/D]1002的曲线图。为了产生舒适的虚拟现实全景观看体验,在本公开的示例中选择全向立体拼接直径[d]为约5厘米至约6.5厘米,这是典型人类IPD。在一些实施方式中,可以使用与拼接直径[d]大致相同的捕获直径[D]来执行全向立体拼接。即,例如,保持约“1”的拼接比可以在全向立体图像的后处理中提供更容易的拼接。这种特定的配置可以使失真最小化,因为用于拼接的光学光线与实际的相机捕获的光线相同。当所选的相机数目高时(例如,每装置12-18个相机),获得“1”的拼接比可以是困难的。

为了减轻装置上太多相机的问题,该装置大小可以被设计成具有更大的大小以包容附加的相机并且允许拼接比维持相同(或基本相同)。为了确保拼接算法在捕获期间对靠近镜头中心的图像中的内容进行采样,可以固定拼接比以确定相机相对于装置的角度[α]。例如,图10示出了在镜头中心附近的采样提高了图像质量并使几何失真最小化。具体的,较小的角度[α]可以帮助避免装置遮挡(例如,装置本身的相机成像组件)。

如图10所示,在1006处,0.75的拼接比[d/D]对应于约6.5厘米(即典型的人类IPD)的装置直径。将拼接比[d/D]降低到约0.45允许装置直径增加到约15厘米(在1008处示出),这可以允许将附加的相机添加到该装置中。相机相对于相机装置的角度可以基于选择的拼接比来进行调整。例如,将相机角度调整到约30度指示装置直径可以大至约12.5厘米。类似地,例如,将相机装置角度调整到约25度指示装置直径可以大到15厘米,并且在为用户渲染时仍维持适当的视差和视觉效果。

通常,给定装置直径[D],可以计算最佳相机角度[α]。从[α]可以计算最大视场[Θu]。最大视场[Θu]通常对应于装置不会部分遮挡相机的视场。最大视场可以限制相机装置可以容下多少相机装置,并且仍然提供不被遮挡的视图。

图11是图示可以用于根据预定义的装置直径来确定多层相机装置的一层的相机的最小数目的示例关系的曲线图1100。这里,示出了对于给定的装置直径[D]1104层中的最小相机数目[nmin]1102。装置直径[D]1104限制了最大不遮挡视场,其功能是限制相机的最小数目。如图所示,在1106处,对于约10厘米的装置直径,在相机装置的一层中可以使用最小十六(16)个相机以提供未遮挡的视图。修改装置直径可以允许增加或减少该装置上放置的相机数目。在一个示例中,关于约8至约25厘米的装置大小,该装置可以包容约12至约16个相机。

由于其它方法可用于调整视场和图像捕获设置,所以这些计算可以与这些其它方法组合以进一步精化相机装置尺寸。例如,可以使用光流算法来改变(例如,减少)通常用于拼接全向立体全景的相机的数目。在一些实施方式中,例如,本公开中描绘的或从本公开中描述的系统和方法生成的曲线图可以组合使用以生成用于在HMD设备中渲染的虚拟内容。

图12A-B表示在图像捕获期间能够发生的失真的线图(line drawing)示例。具体的,这里示出的失真对应于在捕获立体全景时发生的效果。一般而言,当捕获场景的相机靠近来捕获该场景时,失真可能更严重。图12A表示距离相机中心向外一米布置的两米乘两米的场景中的平面。图12B是与图12A相同的平面,但是该图中的平面距离相机向外25厘米。两个图都使用6.5厘米捕获直径。图12A示出了在1202处的中心附近的轻微拉伸,图12B示出了更扩张的中心1204。可以采用许多技术来校正这种失真。以下段落描述了使用捕获图像内容来分析投影(例如,球面和平面投影)以校正失真的近似方法和系统(例如,相机装置/捕获装置)。

图13A-B描绘了通过位于多层相机装置的一层上的相机收集全景图像期间捕获的光线的示例。图13A示出了:给定捕获的图像集合,可以在捕获路径1302上的任何地方为左眼和右眼二者生成透视图像。这里,用光线1304a示出左眼的光线,并且在1306a处示出了用于右眼的光线。在一些实施方式中,由于相机设置、故障、或仅仅对于场景的装置设置不足,可能没有捕获每个所描绘的光线。因此,光线1304a和1306a中的一些可被近似(例如,基于其它光线进行内插)。例如,如果场景是无限远的,则场景中的一个可测量特征包括从原点到目的地的光线方向。

在一些实施方式中,光线原点可能不是可收集的。因此,本公开中的系统可以近似左眼和/或右眼以确定光线的原点位置。图13B示出了用于右眼的近似光线方向1306b至1306f。在该示例中,替代源自相同点的光线,每个光线源自圆形形状1302上的不同点。光线1306b至1306f被示出为与捕获圆形形状1302成相切角度,并且布置在捕获圆形形状1302的圆周周围的特定区域处。另外,与相机装置相关联的两个不同图像传感器-图像传感器13-1和图像传感器13-2(与相机相关联或包括在相机中)的位置在相机装置圆形形状1303上示出。如图13B所示,相机装置圆形形状1303大于捕获圆形形状1302。

可以以这种方式使用从圆形形状向外的不同方向近似多个光线(以及与每个光线相关联的图像的颜色和强度)。以这种方式,可以为左眼和右眼视图二者提供包括许多图像的整个360度全景视图。这种技术可以导致解决中距离对象的失真,但是在某些实例下,当对附近的对象进行成像时仍然会发生变形。为了简单起见,未描绘近似的左眼光线方向。在该示例实施方式中,仅图示了少量光线1306b至1306f。然而,可以限定数千个这样的光线(和与那些光线相关联的图像)。因此,可以限定与每个光线相关联的许多新图像(例如,内插)。

如图13B所示,光线1306b投影在图像传感器13-1和图像传感器13-2之间,图像传感器13-1和图像传感器13-2可以布置在多层相机装置的一层上。图像传感器13-1与图像传感器13-2相邻。光线可以距离图像传感器13-1(例如,图像传感器13-1的投影中心)距离G1和距离图像传感器13-2(例如,图像传感器13-2的投影中心)距离G2。距离G1和G2可以基于光线1306b与相机装置圆形形状1303相交的位置。距离G1可以不同于(例如,大于、小于)距离G2。

为了定义与光线1306b相关联的图像(例如,内插图像、新图像),由图像传感器13-1捕获的第一图像(未示出)(例如,拼接在一起)与由图像传感器13-2捕获的第二图像组合。在一些实施方式中,光流技术可以用于组合第一图像和第二图像。例如,可以识别来自与来自第二图像的像素相对应的第一图像的像素。

为了限定与例如光线1306b相关联的图像,对应的像素基于距离G1和G2而偏移。可以假设图像传感器13-1、13-2的分辨率、横纵比、高度等对于限定光线1306b的图像(例如,新图像)的目的是相同的。在一些实施方式中,分辨率、横纵比、高度等可以是不同的。然而,在这样的实施方式中,需要修改内插以适应这些差异。

作为一个具体示例,与第一图像中的对象相关联的第一像素可以被识别为与第二图像中的对象相关联的第二像素相对应。因为从图像传感器13-1(其位于相机装置圆形形状1303周围的第一位置)的视角捕获第一图像,并且从图像传感器13-2(其位于相机装置圆形形状1303周围的第二位置)的角度捕获第二图像,与第二图像中的位置(XY坐标位置)相比,该对象将在第一图像内的位置(例如,XY坐标位置)上移位。类似地,与该对象相关联的第一像素将相对于也与该对象相关联的第二像素在位置(例如,X-Y坐标位置)上移位。为了产生与光线1306b相关联的新图像,可以基于距离G1和G2的比来限定与第一像素和第二像素(和对象)相对应的新像素。具体地,新像素可以被限定在这样的位置处:其从基于距离G1(并且以基于第一像素的位置与第二像素的位置之间的距离的因子来扩缩)的第一像素和基于距离G2(并且以基于第一像素的位置与第二像素的位置之间的距离的因子来扩缩)的第二像素在位置上偏移。

根据上述实施方式,可以为和与第一图像和第二图像一致的光线1306b相关联的新图像限定视差。具体而言,相对靠近相机装置的对象可以比相对远离相机装置的对象移动更大的量。可以基于光线1306b的距离G1和G2,在像素的偏移(例如,从第一像素和第二像素)之间维持该视差。

对捕获圆形形状1302周围的所有光线(例如,光线1306b至1306f)可以重复该过程。与捕获圆形形状1302周围的每个光线相关联的新图像可以基于相机装置圆形形状1303周围的每个光线和图像传感器(例如,相邻的图像传感器、图像传感器13-1、13-2)之间的距离来限定。

如图13B所示,相机装置圆形形状1303的直径大于捕获圆形形状1302的直径。在一些实施方式中,相机装置圆形形状1303的直径可以是大于捕获圆形形状1302的直径的1.5至8倍之间。作为一个具体示例,捕获圆形形状的直径可以是6厘米,并且相机装置圆形形状1303的直径(例如,图4A所示的相机安装环412)可以是30厘米。

图14A-B图示了近似平面透视投影的使用,如图13A-B所图示。图14A示出了在近似平面透视光线和投影之前具有失真线条的全景场景。如图所示,窗帘杆1402a、窗框1404a、和门1406a被描绘为具有弯曲特征的对象,但实际上它们是直线特征对象。直线特征对象包括没有弯曲表面的对象(例如平坦的索引卡、方形盒、矩形窗框等)。在该示例中,对象1402a、1404a、和1406a被示出为弯曲的,因为它们已经在图像中失真。图14B示出了在90度水平视场下近似平面透视投影的校正图像。这里,窗帘杆1402a、窗框1404a、和门1406a分别被示出为校正的直的对象1402a、1404b、和1404c。

图15A-C图示了应用于图像平面的近似平面透视投影的示例。图15A示出了使用本公开中描述的技术从全景拍摄的平面透视投影。所描绘的平面视图1500可以表示图14B中图像中所示的平面的覆盖。具体的,图15A表示校正的图14A,其中曲线投影成直线。这里,全景的平面1500以一米的距离示出(具有90度的水平视场)。线1502、1504、1506、和1508是直的,而在之前(对应于图14A),相同的中心线是弯曲和失真的。

基于所选择的投影方案可以发生其它失真。例如,图15B、图15C表示使用本公开中的技术从全景拍摄的平面透视投影生成的平面(1510和1520)。以25厘米的距离(90度水平视场)来捕获全景。图15B示出了左眼捕获1510,并且图15C示出了右眼捕获1520。这里,平面(1512、1522)的底部没有投影至直线并且引入垂直视差。当使用平面透视投影时,会发生这种特定变形。

图16A-B图示了引入垂直视差的示例。图16A描绘了根据典型的全向立体全景技术捕获的直线1602a。在所描绘的示例中,每个光线1604a-1618a源自圆形形状1622上的不同点。

图16B描绘了使用透视近似技术观看时的相同直线。如图所示,示出直线1602a变形为1602b。光线1604b-1618b源自于圆形形状1622上的单个点。该变形可以具有使线1602b的左半部朝向观看者并将线的右半部分推离观看者的效果。对于左眼,可以发生相反的情况,即,线的左半部分看起来更远离而该线的右半部分看起来更近。变形的线在两个渐近线之间弯曲,其间隔等于全景渲染圆形选择1622的直径1624的距离。由于变形示为与全景捕获半径相同的大小,所以它可能仅对于附近对象是显著的。这种变形形式可以导致用户观看图像的垂直视差,当对失真的图像执行拼接处理时这可能致使融合困难。

图17A-B描绘了可用于图示3D全景中的点的坐标系的示例点。图17A-B描绘了通过本公开中描述的全景技术成像的点(O,Y,Z)1702。该点在左右全景中的投影可以由(-θ,φ)和(θ,φ)表示,如以下等式(1)和(2)分别示出,其中:

并且其中r1704是全景捕获的半径。

图17A描绘了点(O,Y,Z)1702的全景成像的俯视图。图17B描绘了点(O,Y,Z)1702的全景成像的侧视图。所示的点投影到左全景中的(-θ,φ)并投射到右全景中的(θ,φ)。这些特定视图被捕获并且没有投射到另一个平面中。

图18表示图17A-17B所描绘的点的投影视图。这里,点1702的透视视点被取向为在围绕y轴的角度[α]的旋转的情况下水平地看,如由1802在图18中所示。由于该透视投影仅考虑光线方向,有可能通过将看到全景投影1802中的点1702的光线变换为透视相机的参考系来找出点1702投影所沿的光线。例如,点1702沿着下表1所示的以下光线投影:

表1

执行透视分割,可以确定点投影,如下表2中的等式所示:

表2

可以看出,如果(对应于无限远的原始3D点1702),则点1702将通常在两个透视图像中投影到相同的y坐标,并且因此将不存在垂直视差。然而,随着θ变得远离(随着该点移动得更靠近相机),对于左眼和右眼,投影的y坐标将不同(除了与看向点1702的透视视野相对应的α=0的情况)。

在一些实施方式中,可以通过以特定方式捕获图像和场景来避免失真。例如,将近场内的场景捕获到相机(即距离不到一米)可能致使失真元素出现。因此,从一米向外捕获场景或图像是使失真最小化的一种方式。

在一些实施方式中,可以使用深度信息来校正失真。例如,给定场景的准确深度信息,有可能校正失真。即,由于失真可以取决于当前的观看方向,所以在渲染之前可能不可能对全景图像应用单个失真。相反,深度信息可以与全景一起传递,并在渲染时使用。

图19图示出了使用本公开中描述的全景成像技术在全方向立体图像中捕获的光线。在该示例中,围绕圆形形状1900指向顺时针方向的光线1902、1904、1906对应于左眼的光线。类似地,围绕圆形1900指向逆时针方向的光线1908、1910、1912对应于右眼的光线。每个逆时针光线在圆形形状的相对侧上可以具有在相同方向上看的对应的顺时针光线。这可以为单个图像中表示的每个方向提供左/右观看光线。

捕获本实用新型中所描述的全景的光线集合可以包括:在圆形形状1900周围移动相机(未示出),从而使该相机与圆形形状1900相切来对准(例如,将相机镜头向外面向场景并且与圆形形状1900相切来指向)。对于左眼,相机可以指向右侧(例如,光线1904被捕获到中心线1914a的右侧)。类似地,对于右眼,相机可以指向左侧(例如,光线1910被捕获到中心线1914a的左侧)。对于在圆形形状1900的另一侧上并且低于中心线1914b的相机,可以使用中心线1914b来限定类似的左区域和右区域。产生全方向立体图像可用于真实相机捕获或先前渲染的计算机图形(CG)内容。视图内插可以与捕获的相机内容和渲染的CG内容一起使用,以模拟捕获例如圆形形状1900上的真实相机之间的点。

拼接图像集合可以包括使用球面/等角投影以用于存储全景图像。一般而言,在这种方法中存在两个图像,每个眼睛一个图像。等角图像中的每个像素对应于球面上的方向。例如,x坐标可以对应于经度并且y坐标可以对应于纬度。对于单-全方向图像,像素的观看光线的原点可以是相同的点。然而,对于立体图像,每个观看光线也可以源自圆形形状1900上的不同点。然后,通过分析捕获的图像中的每个像素,根据投影模型生成理想观看光线,并对来自其观看光线与理想光线最匹配的捕获或内插的图像的像素进行采样,可以从捕获的图像拼接全景图像。接下来,可以将光线值混合在一起以生成全景像素值。

在一些实施方式中,可以使用基于光流的视图内插来在圆形形状1900上产生每度至少一个图像。在一些实施方式中,全景图像的整个列可以一次被填充,因为可以确定:如果该列中的一个像素将从给定图像中采样,则该列中的像素将从相同图像中采样。

与本公开的捕获和渲染方面一起使用的全景格式可以确保:由左眼和右眼观看的对象的图像坐标仅仅相差水平偏移。这种水平偏移称为视差。这适用于等矩形投影,并且在这个投影中,对象可以看起来十分失真。

这种失真的幅值可以取决于到相机的距离和观看方向。该失真可以包括:线弯曲失真,不同的左眼和右眼失真,并且在一些实施方式中,视差可能不再看起来为水平。一般而言,1-2度(在球面图像平面上)的垂直视差可以被人类用户舒适地容忍。此外,对于外围眼线(peripheral eye line)中的对象可以忽略失真。这对应于距离中心观看方向约30度。基于这些发现,可以构造限制,其限定对象不应进入的相机附近的区域以避免不舒服的变形。

图20是图示由3D空间中的点致使的最大垂直视差的曲线图2000。具体的,曲线图2000描绘了给定由3D空间中的点投影至距图像的中心30度由所述点致使的以度计的最大垂直视差。曲线图2000绘制了距离相机中心的垂直位置(以米计)对照距离相机的水平位置(以米计)。在该图中,相机位于原点[0,0]。当曲线图远离该原点移动时,失真的严重程度变得更小。例如,在曲线图上从约零到一2002,以及从零到负一2004(垂直),失真是最差的。这对应于相机(放置在原点)正上方和正下方的图像。随着场景向外移动,失真减轻,并且当相机在点2006和2008处对场景成像时,只遇到了一半程度的垂直视差。

如果超过30度外围的失真可以忽略,则观看方向在极点30度以内的所有像素都可以被移除。如果允许外围阈值为15度,则可以移除15度的像素。例如,移除的像素可以被设置为颜色块(例如,黑色、白色、品红色等)或静态图像(例如,徽标、已知边界、纹理化层等)和移除的像素的新的表示可以被插入到全景中以替代移除的像素。在一些实施方式中,移除的像素可以被模糊,并且移除的像素的模糊表示可以被插入到全景中以替代移除的像素。

图21是图解用于产生立体全景图像的过程2100的一个实施例的流程图。如图21所示,在框2102处,系统100可以基于捕获的图像来限定图像集合。图像可以包括预处理图像、后处理图像、虚拟内容、视频、图像帧、图像帧的部分、像素等。

限定的图像可以由用户访问,例如利用头戴式显示器(HMD)来访问内容(例如,VR内容)。系统100可以确定用户所执行的特定动作。例如,在某一点处,如框2104处,系统100可以接收与VR HMD的用户相关联的观看方向。类似地,如果用户改变其观看方向,则在框2106处系统可以接收用户观看方向的改变的指示。

响应于接收到观看方向上的这样的变化的指示,系统100可以配置图像集合的一部分的重投影,如框2108所示。重投影可以至少部分基于改变的观看方向和与捕获的图像相关联的视场。该视场可以是从一到180度,并且可以将场景的图像的小块(sliver)考虑进场景的全景图像。配置的重投影可以用于将图像集合的一部分从球面透视投影转换为平面投影。在一些实施方式中,重投影可以包括从围绕从球面透视投影到平面透视投影的弯曲路径来布设的多个视点重新投射(recast)与图像集合相关联的观看光线的一部分。

重投影可以包括将球面场景的表面的一部分映射到平面场景的任何或全部步骤。这些步骤可以包括:修正失真的场景内容、在接缝处或接近接缝处混合(例如,拼接)场景内容、色调映射、和/或扩缩。

在完成重投影后,系统100可以基于该重投影来渲染更新的视图,如框2110所示。更新的视图可以被配置为校正失真并向用户提供立体视差。在框2112处,系统100可以提供包括与改变的观看方向相对应的立体全景场景的更新视图。例如,系统100可以提供更新的视图以校正原始视图(在重投影之前)的失真,并且可以在VR头戴式显示器的显示器中提供立体视差效果。

图22是图解用于使用多层相机装置装置来捕获全方位全景图像的过程2200的一个实施例的流程图。在框2202处,系统100可以基于从第一层中的至少一个相邻相机集合收集的捕获的视频流来为多相机装置的第一层限定图像集合。在一些实施例中,第一层可以是多层相机装置的下层,并且第一层中的相机可以布置以圆形形状来布设,使得第一多个相机中的每一个具有正交于该圆形形状的向外投影。例如,系统100可以使用相邻相机(例如,如图2所示)或多个相邻相机集合(例如,如图3和图5所示)。在一些实施方式中,系统100可以使用从以圆形形状来布设的大约12到大约16个相机收集的捕获的视频流来限定图像集合,使得它们具有正交于该圆形形状的向外投影。在一些实施方式中,系统100可以使用部分或全部渲染的计算机图形(CG)内容来限定图像集合。

在框2204处,系统100可以计算第一图像集合的第一光流。例如,计算第一图像集合中的光流可以包括:分析与图像集合相关联的像素列的一部分的图像强度场,并对像素列的该部分执行光流技术,如上面详细描述的。

在一些实施方式中,第一光流可以用于内插并非图像集合的一部分的图像帧,并且如上面详细描述的。然后,系统100可以至少部分地基于第一光流来将图像帧和第一图像集合拼接在一起(在步骤2206处)。

在框2208处,系统100可以基于从第二层中的至少一个相邻相机集合收集的捕获的视频流来为多相机装置的第二层限定图像集合。在一些实施例中,第二层可以是多层相机装置的上层,并且第二层中的相机可以布设以使得多个相机中的每一个具有不平行于第一多个相机的圆形形状的法线的向外投影。例如,系统100可以使用多层相机装置的第二层的上多面盖(例如,如图4A和图6所示)或多个相邻相机集合的相邻相机。在一些实施方式中,系统100可以使用从约4到约8个相机收集的捕获的视频流来限定图像集合。在一些实施方式中,系统100可以使用部分或全部渲染的计算机图形(CG)内容来限定图像集合。

在框2210处,系统100可以计算第二图像集合的第二光流。例如,计算第二图像集合中的光流可以包括:分析与图像集合相关联的像素列的一部分的图像强度场,并对像素列的该部分执行光流技术,如上面详细描述的。

在一些实施方式中,第一光流可以用于内插并非图像集合的一部分的图像帧,并且如上面详细描述的。系统100可以至少部分地基于第二光流来将图像帧和第二图像集合拼接在一起(在步骤2212处)。

在框2214处,系统100可以通过将与多层相机的第一层相关联的第一拼接图像和与多层相机的第二层相关联的第二拼接图像拼接在一起来生成全向立体。在一些实施方式中,全向立体全景用于显示在VR头戴式显示器中。在一些实施方式中,系统100可以使用与至少一个立体邻居集合相关联的姿态信息来执行图像拼接,以例如在执行交织之前预先拼接图像集合的一部分。

图23是图解在头戴式显示器中渲染全景图像的过程2300的一个实施例的流程图。如图23所示,在框2302处,系统100可以接收图像集合。所述图像可以描绘来自多层相机装置的捕获的内容。在框2304处,系统100可以选择所述图像中的图像帧中的部分。所述图像帧可以包括利用多层相机装置捕获的内容。系统100可以使用捕获的内容的任何部分。例如,系统100可以选择包括由该装置从距离相机装置基部的外边缘大约一径向米到距离相机装置基部的外边缘大约五径向米的距离捕获的内容的图像帧中的一部分。在一些实施方式中,该选择可以基于用户可以在多远感知3D内容。这里,距离相机装置一米到距离相机约五米的距离可以表示用户可以观看3D内容的“区域”。比这更短,则3D视图可能会失真,并且比这更长,则用户可能无法探知3D形状。即,场境从远处可以仅看起来是2D。

在框2306处,图像帧中的所选部分可被拼接在一起以生成立体视觉全景视图。在该示例中,该拼接可以至少部分地基于将所选择的部分与所选部分中的至少一个其它图像帧匹配。在框2308处,可以在诸如HMD设备的显示器中提供全景视图。在一些实施方式中,可以使用至少部分地基于相机装置的直径所选择的拼接比来执行拼接。在一些实施方式中,该拼接包括以下多个步骤:将第一图像帧中的第一像素列与第二图像帧中的第二像素列匹配,并且将第二像素列匹配到第三图像帧中的第三像素列以形成衔接的场景部分。在一些实施方式中,可以以这种方式匹配和组合许多像素列来以形成帧,并且这些帧可以被组合以形成图像。此外,可以组合这些图像以形成场景。根据一些实施方式,系统100可以为多相机装置的每个层执行框2306和2308以创建与相机装置的每个层相关联的拼接图像,并且系统100可以将拼接的图像拼接在一起以生成全景视图。

在一些实施方式中,方法2300可以包括内插步骤,其使用系统100来内插并非图像帧中的部分的一部分的附加图像帧。例如,可以执行这样的内插以确保在由相距较远的相机捕获的图像之间发生流。一旦执行附加图像内容的内插,系统100就可以将附加图像帧交织到图像帧中的所述部分中,以生成视图的虚拟内容。该虚拟内容可以被拼接在一起作为与附加图像帧交织的图像帧中的部分。例如,该结果可以作为更新视图来提供给HMD。该更新视图可以至少部分地基于图像帧中的所述部分和附加图像帧。

图24是图解用于确定多层相机装置的一层的图像边界的过程2400的一个实施例的流程图。在框2402处,系统100可以基于从多层相机装置的一层中的至少一个相邻相机集合收集的捕获的视频流来限定图像集合。例如,系统100可以使用一个相邻相机集合(如图2所示)或多个相邻相机集合(如图3和图4A所示)。在一些实施方式中,系统100可以使用从约12至约16个相机收集的捕获的视频流来限定图像集合。在一些实施方式中,系统100可以使用部分或全部渲染的计算机图形(CG)内容来限定图像集合。在一些实施方式中,与图像集合相对应的视频流包括编码的视频内容。在一些实施方式中,与图像集合相对应的视频流可以包括配置有利用一百八十度视场的至少一个相邻相机集合来获取的内容。

在框2404处,通过将与来自以圆形形状的路径的一部分来布设的多个视点的图像集合的部分相关联的观看光线重投射到一个视点,系统100可以将与多层相机装置的一层相关联的图像集合的一部分从透视图像平面投影到球面图像平面。例如,图像集合可以由多相机装置的一层捕获,该多相机装置中图像传感器以环形形状来布设在相机装置的圆形相机壳体上,其可以托管多个相机(例如,如图4A所示)。每个相机可以与视点相关联,并且这些视点从相机装置向外指向场景处。具体的,替代源于单个点,观看光线源于该装置上的每个相机。系统100可以将来自路径上的各个视点的光线重投射到单个视点中。例如,系统100可以分析由相机捕获的场景的每个视点,并且可以计算相似和差异以便确定表示来自单个内插视点的场景的场景(或场景集合)。

在框2406处,系统100可以确定与单个视点相对应的外围边界,并且通过移除该外围边界外的像素来生成更新的图像。该外围边界可以描画来自失真的图像内容的清晰简明的图像内容。例如,外围边界可以根据具有失真的像素来描绘没有失真的像素。在一些实施方式中,外围边界可以关于用户的典型外围视野区域以外的视野。移除这样的像素可以确保不会不必要地向用户呈现失真的图像内容。移除该像素可以包括用彩色块、静态图像、或模糊的像素表示来替换该像素,如上面详细讨论的。在一些实施方式中,外围边界被限定为与所捕获的图像相关联的一个或多个相机的大约150度的视场。在一些实施方式中,外围边界被限定为与所捕获的图像相关联的一个或多个相机的大约120度的视场。在一些实施方式中,外围边界是和与捕获的图像相关联的相机的观看平面上方约30度相对应的球面形状的一部分,并且移除像素包括涂黑(black out)或移除球面场景的顶部。在一些实施方式中,外围边界是和与捕获的图像相关联的相机的观看平面下方约30度相对应的球面形状的一部分,并且移除像素包括涂黑或移除球面场景的顶部。在框2408处,系统100可以提供更新的图像以供在外围边界的范围内显示。

在一些实施方式中,方法2400还可以包括:将来自多层相机装置的一层的图像集合中的至少两个帧拼接在一起。该拼接可以包括以下步骤:从帧中采样像素列,并且在至少两个采样的像素列之间插入未在所述帧中捕获的附加的像素列。此外,该拼接可以包括将采样的列和附加列混合在一起以生成像素值的步骤。在一些实施方式中,可以使用至少部分地基于用于获取捕获图像的圆形相机装置的直径来选择的拼接比来执行混合。该拼接还可以包括以下步骤:通过将像素值配置成例如可以提供用于在HMD中显示的左场景和右场景来生成三维立体视觉全景。

图25是图解用于生成视频内容的过程2500的一个实施例的流程图。在框2502处,系统100可以基于从至少一个相邻相机集合收集的捕获的视频流来限定图像集合。例如,系统100可以使用立体对(如图2所示)或多个相邻相机集合(例如,如图3和图4A所示)。在一些实施方式中,系统100可以使用从多层相机装置的一层中的约12至约16个相机以及多层相机装置的第二层中的4至8个相机收集的捕获的视频流来限定图像集合。在一些实施方式中,系统100可以使用部分或全部渲染的计算机图形(CG)内容来限定图像集合。

在框2504处,系统100可以将图像集合拼接成等矩形视频流。例如,该拼接可以包括:将与向左的相机捕获角度相关联的图像和与向右的相机捕获角度相关联的图像组合。

在框2506处,系统可以通过将视频流从第一视图和第二视图的等矩形投影到透视来渲染用于回放的视频流。第一视图可以对应于头戴显示器的左眼视图,并且第二视图可以对应于头戴式显示器的右眼视图。

在框2508处,系统可以确定其中失真高于预定阈值的边界。预定义的阈值可以提供视差水平、失配水平(level of mismatch)、和/或在特定图像集合内可允许的误差水平。例如,当将视频流从一个平面或视图投影到另一个平面或视图时,失真可以至少部分地基于投影配置。

在框2510处,如上文详细讨论的,系统可以通过移除图像集合中处于边界处或超出边界的图像内容来生成更新的视频流。在更新该视频流时,例如可以向HMD的用户提供更新的流以供显示。通常,贯穿本公开描述的系统和方法可用于捕获图像,从捕获的图像中移除失真,并且渲染图像以便向HMD设备的用户提供3D立体视觉视图。

图26示出了可以与这里描述的技术一起使用的通用计算机设备2600和通用移动计算机设备2650的示例。计算设备2600旨在表示各种形式的数字计算机,诸如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型主机、和其它合适的计算机。计算设备2650旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话、和其它类似的计算设备。这里所示的组件、它们的连接和关系、以及它们的功能仅仅是示例性的,并且不意味着限制本文中描述和/或要求保护的实用新型的实施方式。

计算设备2600包括处理器2602、存储器2604、存储设备2606、连接到存储器2604和高速扩展端口2610的高速接口2608、以及连接到低速总线2614和存储设备2606的低速接口2612。组件2602、2604、2606、2608、2610、和2612中的每一个使用各种总线互连,并且可以安装在公共主板上或适当情况下以其它方式安装。处理器2602可以处理用于在计算设备2600内执行的指令,包括存储在存储器2604中或存储设备2606上的指令,以在外部输入/输出设备上显示GUI的图形信息,所述外部输入/输出设备诸如耦接到高速接口2608的显示器2616。在其它实施方式中,适当情况下多个处理器和/或多个总线可以连同多个存储器和多个类型的存储器一起使用。此外,可以连接多个计算设备2600,其中每个设备提供必要操作的一部分(例如,作为服务器库、刀片服务器的群组、或多处理器系统)。

存储器2604在计算设备2600内存储信息。在一个实施方式中,存储器2604是一个或多个易失性存储器单元。在另一实施方式中,存储器2604是一个或多个非易失性存储器单元。存储器2604还可以是另一种形式的计算机可读介质,诸如磁盘或光盘。

存储设备2606能够为计算设备2600提供大容量存储。在一个实施方式中,存储设备2606可以是或包含:计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其它类似的固态存储设备,或包括存储区域网络中的设备或其它配置的设备阵列。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,该指令在被执行时执行一个或多个方法,例如上述的方法。信息载体是计算机或机器可读介质,诸如存储器2604、存储设备2606、或处理器2602上的存储器。

高速控制器2608管理计算设备2600的带宽密集型操作,而低速控制器2612管理较低带宽密集型操作。功能的这样的分配仅是示例性的。在一个实施方式中,高速控制器2608耦接到存储器2604、显示器2616(例如,通过图形处理器或加速器)以及可接受各种扩展卡(未示出)的高速扩展端口2610。在实施方式中,低速控制器2612耦接到存储设备2606和低速扩展端口2614。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以耦接到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪、或例如通过网络适配器耦接到诸如交换机或路由器的联网设备。

计算设备2600可以以多种不同的形式来实现,如图所示。例如,它可以被实现为标准服务器2620,或者在这样的服务器的群组中多次实现。它也可以被实现为机架式服务器系统2624的一部分。此外,它可以在诸如膝上型计算机2622的个人计算机中实现。替选地,来自计算设备2600的组件可以与诸如设备2650的移动设备中的其它组件(未示出)组合。这些设备中的每一个可以包含计算设备2600、2650中的一个或多个,并且整个系统可以由彼此通信的多个计算设备2600、2605组成。

计算设备2650包括处理器2652、存储器2664,诸如显示器2654、通信接口2666、和收发器2668的输入/输出设备以及其它组件。设备2650还可以设置有诸如微驱动器或其它设备的存储设备,以提供额外的存储。组件2650、2652、2664、2654、2666、和2668中的每一个使用各种总线互连,并且若干组件可以安装在公共主板上或适当情况下以其它方式安装。

处理器2652可以执行计算设备2650内的指令,包括存储在存储器2664中的指令。处理器可以被实现为包括单独的和多个模拟和数字处理器的芯片的芯片组。例如,处理器可以提供对设备2650的其它组件的协调——诸如对用户接口、由设备2650运行的应用、以及由设备2650进行的无线通信的控制。

处理器2652可以通过耦接到显示器2654的控制接口2658和显示接口2656与用户通信。显示器2654可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其它适当的显示技术。显示接口2656可以包括用于驱动显示器2654向用户呈现图形和其它信息的适当电路。控制接口2658可以接收来自用户的命令并将其转换以供提交给处理器2652。此外,可以提供外部接口2662与处理器2652进行通信,以实现设备2650与其它设备的近区域通信。外部接口2662可以提供例如在一些实施方式中的有线通信,或者在其它实施方式中的无线通信,并且还可以使用多个接口。

存储器2664存储在计算设备2650内的信息。存储器2664可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元中的一个或多个。扩展存储器2674还可以通过扩展接口2672来被提供和连接到设备2650,扩展接口2672可以包括例如SIMM(单列直插存储器模块)卡接口。这样的扩展存储器2674可以为设备2650提供额外的存储空间,或者还可以存储设备2650的应用或其它信息。具体而言,扩展存储器2674可以包括执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器2674可以被提供为设备2650的安全模块,并且可以用允许安全使用设备2650的指令来编程。此外,可以经由SIMM卡连同附加信息来提供安全应用,诸如以不可非法侵入的方式将识别信息放置在SIMM卡上。

存储器可以包括例如闪存和/或NVRAM存储器,如下所述。在一个实施方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,其在被执行时,执行一个或多个方法——诸如上述的那些方法。信息载体是可以例如通过收发器2668或外部接口2662接收的计算机或机器可读介质,诸如存储器2664、扩展存储器2674、或处理器2652上的存储器。

设备2650可以通过通信接口2666进行无线通信,通信接口2666可以在必要时包括数字信号处理电路。通信接口2666可以提供诸如GSM语音呼叫、SMS、EMS或MMS消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000、或GPRS等各种模式或协议的通信。这样的通信可以例如通过射频收发器2668发生。另外,可能诸如使用蓝牙、Wi-Fi、或其它这样的收发器(未示出)发生短距离通信。此外,GPS(全球定位系统)接收器模块2670可以向设备2650提供额外的导航和位置相关的无线数据,其适当情况下可以由在设备2650上运行的应用使用。

设备2650还可以使用音频编解码器2660可听地通信,音频编解码器2660可以从用户接收说出的信息并将其转换为可用的数字信息。音频编解码器2660同样可以诸如通过例如在设备2650的送受话器中的扬声器为用户产生可听见的声音。这样的声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等等),并且还可以包括由在设备2650上操作的应用生成的声音。

计算设备2650可以以多种不同的形式来实现,如图所示。例如,它可以被实现为蜂窝电话2680。它也可以被实现为智能电话2682、个人数字助理、或其它类似的移动设备的一部分。

这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件、和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括可以是至少一个可编程处理器、至少一个输入设备、和至少一个输出设备,所述可编程处理器可以是专用或通用的处理器,其被耦接以从存储系统接收数据和指令并向存储系统传输数据以及指令。

这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级程序和/或面向对象编程语言和/或汇编/机器语言实现。如本文所使用的,术语“机器可读介质”、“计算机可读介质”指代任何计算机程序产品、装置和/或设备(例如,磁盘,光盘,存储器,可编程逻辑器件(PLD)),其用于向可编程处理器提供机器指令和/或数据,其包括接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指代向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,这里描述的系统和技术可以在计算机上实现,所述计算机具有:用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)。其它类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈、或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音、或触觉输入。

这里描述的系统和技术可以实现在计算系统中,该计算机系统包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过其与这里描述的系统和技术的实现进行交互)或者这样的后端、中间件或前端组件的任何组合的。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、和互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系借助于在相应的计算机上运行并且彼此之间具有客户端-服务器关系的的计算机程序而产生。

已经描述了许多实施例。然而,应当理解,在不脱离本说明书的精神和范围的情况下,可以进行各种修改。例如,所附的每个权利要求和上述的这样的权利要求的示例可以以任何组合来组合以产生另外的示例实施例。

在以下的示例中描述进一步的实施方式。

示例1:一种相机装置,包括:第一层图像传感器,所述第一层图像传感器包括第一多个图像传感器的,所述第一多个图像传感器以圆形形状来布设并且被定向以使得所述第一多个图像传感器中的每一个的视场具有垂直于所述圆形形状的切线的轴;以及第二层图像传感器,所述第二层图像传感器包括第二多个图像传感器,所述第二多个图像传感器被定向以使得所述第二多个图像传感器中的每一个的视场具有不平行于所述第一多个图像传感器中的每一个的视场的轴

示例2:根据示例1所述的相机装置,其中,所述第一多个图像传感器中的每一个的视场被布置在第一平面内,所述第二多个图像传感器中的每一个的视场被布置在第二平面内。

示例3:根据示例1或2所述的相机装置,其中,所述第一多个图像传感器被布置在第一平面内,并且所述第二多个图像传感器被布置在平行于所述第一平面的第二平面内。

示例4:根据示例1至3所述的相机装置,其中,所述第一多个图像传感器被包括在所述第一层中,使得所述第一多个图像传感器中的第一图像传感器的第一视场与所述第一多个图像传感器中的第二图像传感器的第二视场及所述第一多个图像传感器中的第三图像传感器的第三视场相交。

示例5:根据示例1至4所述的相机装置,其中所述相机装置具有壳体,所述壳体限定了圆形相机装置壳体的这样的半径以使得所述第一多个图像传感器中的至少三个毗连的图像传感器中的每一个的视场重叠。

示例6:根据示例5所述的相机装置,所述三个毗连的图像传感器与平面相交。

示例7:根据示例1至6所述的相机装置,进一步包括:杆壳体,布置在所述第二层图像传感器和所述杆壳体之间的所述第一层图像传感器。

示例8:根据示例1至7所述的相机装置,其中,所述第二层图像传感器包括六个图像传感器,并且所述第一层图像传感器包括十六个图像传感器。

示例9:根据示例1至8所述的相机装置,所述第一多个图像传感器中的每一个的视场与所述第二多个图像传感器中的每一个的视场正交。

示例10:根据示例1至9所述的相机装置,其中,所述第一多个图像传感器中的每一个的视场的横纵比处于纵向模式,所述第二多个图像传感器中的每一个的视场的横纵比处于横向模式。

示例11:一种相机装置,包括:第一层图像传感器,所述第一层图像传感器包括布置在第一平面内的第一多个图像传感器,所述第一多个图像传感器被配置以使得所述第一多个图像传感器中的至少三个毗连的图像传感器中的每一个的视场重叠;以及第二层图像传感器,所述第二层图像传感器包括布置在第二平面内的第二多个图像传感器的,所述第二多个图像传感器均具有与所述第一多个图像传感器中的每一个的横纵比取向不同的横纵比取向。

示例12:根据示例11所述的相机装置,其中,所述第一平面平行于所述第二平面。

示例13:根据示例11或12所述的相机装置,进一步包括:杆壳体,布置在所述第二层图像传感器和所述杆壳体之间的所述第一层图像传感器。

示例14:根据示例1至10或11至13所述的相机装置,其中,所述第一层图像传感器中的图像传感器与所述第二层图像传感器中的图像传感器的比率在2:1和3:1之间。

示例15:根据示例1至10或11至14所述的相机装置,使用光流内插来拼接使用所述第一层图像传感器和所述第二层图像传感器捕获的图像。

示例16:一种相机装置,包括:相机壳体,包括:下圆周,以及上多面盖,所述下圆周布置在所述多面盖下方;第一多个图像传感器,其以圆形形状来布设并且沿着所述相机壳体的所述下圆周布置,使得所述第一多个图像传感器中的每一个具有正交于所述下圆周的向外投影;以及第二多个图像传感器,其均布置在所述上多面盖的面上,使得所述第二多个图像传感器中的每一个具有不平行于所述下圆周的法线的向外投影。

示例17:根据示例16所述的相机装置,其中,所述下圆周限定了这样的半径以使得所述第一多个图像传感器中的至少三个毗连的图像传感器的视场相交。

示例17:根据示例16或17所述的相机装置,其中,所述第一多个图像传感器中的图像传感器与所述第二多个图像传感器中的图像传感器的比率在2:1和3:1之间。

此外,附图中描绘的逻辑流程不需要所示的特定顺序或连续顺序来实现期望的结果。此外,可以从所描述的流程中提供其它步骤或者可以消除步骤,并且可以将其它组件添加到所描述的系统中或从所描述的系统中移除其它组件。因此,其它实施例在所附权利要求书的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1