远程呈现设备操作方法与流程

文档序号:23068564发布日期:2020-11-25 17:56阅读:196来源:国知局
远程呈现设备操作方法与流程



背景技术:

视频会议技术已经变得越来越普遍。这些技术现在已在全球范围内用于各种各样的个人和企业通信。例如,在电话会议或其它视频会议期间,个人可以通过数码相机捕获并发送给参与者的图像和声音来进行“交互”和参加面对面的对话。为了提供更具吸引力的视频会议体验,已引入了一套称为“远程呈现(telepresence)”的技术,其目的是使位于不同地理位置的参与者感觉好像他们在同一位置。远程呈现对常规的视频会议方案提供了一定的增强,但是仍然存在大量的领域需要新的和改进的思想以提供更沉浸式(immersive)的视频会议体验。



技术实现要素:

在一个总体方面,本申请描述了一种操作远程呈现设备的方法。该方法包括:使用多个相机捕获本地主体的图像,以生成多个本地捕获图像;从远程设备接收远程主体视点(pov)数据;基于所述远程主体pov数据,从所述多个本地捕获图像中选择多个图块(tile);向所述远程设备发送本地图像数据,所述本地图像数据包括所述多个选择的图块。

在另一种实现中,一种操作远程呈现设备的方法,包括:使用多个相机捕获本地主体的图像,以生成多个本地捕获图像;处理所述多个本地捕获图像以生成本地主体视点(pov)数据;向远程设备发送本地主体视点(pov)数据;从所述远程设备接收远程图像数据,所述远程图像数据包括所述远程设备基于所述本地主体pov数据选择的多个第一图块;基于所述本地主体pov数据,从所述多个第一图块中选择多个第二图块;在显示器上,显示基于所述多个第二图块合成的所述远程主体的所述图像。

在另一种实现中,一种操作远程呈现设备的方法,包括:使用第一远程呈现设备的多个第一相机,捕获位于第一位置的第一主体的图像,以生成所述第一主体的多个第一捕获图像;使用第二远程呈现设备的多个第二相机,捕获位于第二位置的第二主体的图像,以生成所述第二主体的多个第二捕获图像;在所述第一远程呈现设备处,处理所述多个第一捕获图像,以生成第一主体视点(pov)数据;在所述第二远程呈现设备处,处理所述多个第二捕获图像,以生成第二主体pov数据;从所述第一远程呈现设备向所述第二远程呈现设备发送所述第一主体pov数据;从所述第二远程呈现设备向所述第一远程呈现设备发送所述第二主体pov数据;在所述第一远程呈现设备处,基于所述第二主体pov数据,从所述多个第一捕获图像中选择多个第一图块;从所述第一远程呈现设备向所述第二远程呈现设备发送第一图像数据,其中所述第一图像数据包括所述多个第一图块;从所述第二远程呈现设备向所述第一远程呈现设备发送第二图像数据,其中所述第二图像数据包括所述多个第二图块;在所述第一远程呈现设备处,基于所述第一主体pov数据,从所述多个第二图块中选择多个第三图块;在所述第一远程呈现设备的第一显示器上,显示基于所述多个第三图块合成的所述第二主体的图像。

在另一种实现中,一种方法包括以下步骤:使用多个相机捕获本地主体的图像以生成多个本地捕获图像;从远程设备接收远程主体视点(pov)数据;基于所述远程主体pov数据,从所述多个本地捕获图像中选择多个第一图块;向所述远程设备发送本地图像数据,所述本地图像数据包括所述多个选择的第一图块。

在另一种实现中,一种方法包括:使用多个相机捕获本地主体的图像以生成本地捕获图像;从所述本地捕获图像中选择多个图块;将所述多个选择的图块转换为本地主体图像数据,远程设备可使用所述本地主体图像数据以渲染(render)和显示所述本地主体的视觉表示,其中所述本地主体图像数据包括所述远程设备可用以维持远程设备用户和所述本地主体的所述3d视觉表示之间的眼睛注视(eyegazing)的本地主体视点(pov)数据。

提供本概括部分以便用简化的形式介绍将在以下的详细描述中进一步描述的概念选择。本概括部分并不是旨在标识本发明的关键特征或本质特征,也不是使用该概括部分来限制本发明的保护范围。此外,本发明并不限于解决本公开内容的任何部分中陈述的任何或所有缺点。

附图说明

附图仅以示例而非限制的方式描绘了根据本教导内容的一种或多种实施方式。在附图中,相同的附图标记指代相同或相似的元件。此外,应当理解,附图不一定按比例进行绘制。

图1描绘了用于示出位于地理位置不同的两个位置处的两个远程呈现设备的示例操作以及它们之间的通信的框图。

图2a示出了在同一地理位置面对面站立的两个人。

图2b示出了图2a的两个人,他们位于地理上不同的位置,并且使用图1的本地和远程呈现设备进行视频会议。

图3示出了示例性远程呈现设备的分解图。

图4a和图4b示出了图3中所示的远程呈现设备的示例性相机模块。

图5示出了图3中所示的远程呈现设备的示例性控制器。

图6示出了由图4中所示的远程呈现设备的相机阵列捕获的示例性帧图像。

图7a、图7b、图7c、图7d、图7e、图7f和图7g示出了用于确定本地主体的当前和未来视点(pov)数据的步骤。

图8示出了对位于不同高度的两个远程定位的远程呈现设备进行校准的例子。

图9描绘了用于示出了本地和远端的远程呈现设备的示例操作以及它们之间的通信的流程图。

图10描绘了用于示出可以在其上实现本公开内容的各方面的示例性计算机系统的框图。

具体实施方式

在下文描述中,为了对相关技术有一个透彻理解,通过示例的方式对众多特定细节进行了描述。但是,显而易见的是,可以在不使用这些细节的情况下实现本发明的教导内容。在其它实例中,为了避免不必要地对本教导的各个方面造成混淆,在没有细节的情况下,在相对较高的层级上描述了众所周知的方法、过程、组件和/或电路。

本说明书针对多个远程呈现设备的操作,该操作可以向位于不同地理位置的视频会议参与者提供足够的沉浸式体验。通过提供足够的沉浸式体验,参与者可以感受到与在同一位置面对面时相同程度的信任和同理心(empathy),这可以减少或消除旅行到同一位置进行面对面会议的需要。为了提供足够的沉浸式体验,可以操作远程呈现设备来显示远程参与者的图像,该图像保留了远程参与者的逼真的3d几何状态(geometry)、眼睛注视等等。在远程位置处提供的远程呈现设备可以向远程参与者提供相同的沉浸式远程呈现体验。

图1示出了用于示出两个远程呈现设备(例如,位于地理位置不同的本地远程呈现设备100a和远端的远程呈现设备100b(在下文中统称为远程呈现设备100))的示例性操作以及它们之间的通信的框图。在一些实现中,远程呈现设备100a、100b可以被构造为在外观上类似于窗口,因此在以下描述中称为远程窗口(telewindow)。但是,如通过下面的描述将容易显而易见的,远程呈现设备100a、100b的操作可以广泛地应用于各种图像处理和视频会议技术,并且不受本公开内容中所描述的任何特定情况、配置或协议的束缚或限制。

如以下将详细描述的,本地远程呈现设备100a可以包括多个相机,以从各种空间位置和视角捕获本地主体的大量图像。类似地,远端的远程呈现设备100b可以包括多个相机,以从各种空间位置和视角捕获远程主体4的大量图像。这些大量的图像可以用于捕获和传送这些主体的逼真图像、详细的面部表情、肢体语言、情绪等等,但是这将需要大量的处理能力以及显著更大的带宽来处理、发送和接收所有捕获的图像。即使有可能以合理的延迟发送和接收如此大量的数据,接收设备也将不知道如何在没有任何指令或指导的情况下处理所有接收到的图像。

为了解决这些问题,本地远程呈现设备100a可以处理捕获的图像以确定本地主体视点(pov)数据并向远端的远程呈现设备100b进行发送。本地主体pov数据可以包括本地主体的当前pov和估计的未来pov。远端的远程呈现设备100b可以使用接收到的本地主体pov数据,来从捕获的远程主体图像中选择部分或图块。可以对不必要发现的部分或图块进行过滤并丢弃。然后,远端的远程呈现设备100b可以将包括所选部分或图块的远程图像数据发送到本地远程呈现设备100a。在接收到远程图像数据时,本地远程呈现设备100a可以基于本地主体pov数据(例如,当前本地主体pov),选择远程图像数据中包括的部分或图块中的一些。本地远程窗口100a可以对来自远端的远程呈现设备100b的所选部分或图块进行处理以合成远程主体4的图像,该图像可以显示在本地远程呈现设备100a上。

远端的远程呈现设备100b可以以相同或相似的方式进行操作。例如,远端的远程呈现设备100b可以向本地远程呈现设备100a发送远程主体pov数据,本地远程呈现设备100a转而可以基于远程主体pov数据,从本地主体的捕获图像中选择部分或图块。可以基于远程主体pov数据,将来自本地远程呈现设备100a的所选部分或图块发送到远端的远程呈现设备100b。然后,远端的远程呈现设备100b可以基于远程主体pov数据,选择这些部分或图块中的一些,然后基于所选择的部分或图块来合成并显示本地主体的图像。通过使用大量的相机(例如,两百个光场相机)从不同的空间位置和视角捕获主体,远程呈现设备100a、100b可以显示保持了三维(3d)几何形状、眼睛注视等等的更真实的人的图像,并传送详细的面部表情、肢体语言、情绪等等。

图2a示出了本地主体或参与者2和远程主体或参与者4面对面地站在同一地理位置,并且远程呈现设备100放置在它们之间。假定不存在远程呈现设备100,则本地主体2感知的远程主体4的视觉图像是不断移动的主体,其三维(3d)几何形状根据例如本地主体2和远程主体2之间的距离、本地主体2的眼睛位置/高度、本地主体2的视场(fov)等等而变化。当使用相机(没有示出)捕获远程主体4的图像时,用于捕获远程主体4的最相似图像的、如本地主体2所看到的理想位置将是本地主体2的眼睛位置。但是,如上所述,由于相机镜头的固有的角分辨率或衍射限制,没有单个相机可以捕获将远程主体4保持为如本地主体2所看到的相同的3d几何形状和眼睛注视的、相同或相似的图像,而无论为了复制本地主体2的眼睛注视而如何放置该相机以及如何调整该相机的角度。另外,本地主体2的眼睛位置和眼睛注视方向不断变化,并且实际上不可能像人眼运动一样自由地移动相机。可以使用一副配备有相机的眼镜或vr耳机,来跟踪本地主体2的眼睛位置和眼睛注视方向,但是这要求本地主体2佩戴另外一台需要精确校准的设备以与远程呈现设备100一起正常工作。

图2b示出了位于两个地理上不同位置(例如,本地站点10和远程站点20)的本地主体2和远程主体4。位于本地站点10的本地主体2也称为本地参与者。位于远程站点20的远程主体4也称为远程参与者。两个远程呈现设备100(例如,本地远程呈现设备100a和远端的远程呈现设备100b)分别位于本地站点10和远程站点20。本地远程呈现设备100a和远端的远程呈现设备100b可以经由网络5通信地链接,网络5可以是有线网络、无线网络或者其组合。如将在后面的示例中更详细描述的,可以构造远程呈现设备100a和100b以使远程主体4的图像显示在本地远程呈现设备100a上。类似地,远端的远程呈现设备100b可以被构造为显示本地主体2的图像。由远程呈现设备100a、100b显示的图像可以分别例如保持远程主体4和本地主体2的3d几何形状、眼睛注视等等,使得本地主体2和远程主体4可以感到与彼此面对面在相同位置时相同或相似程度的信任和同理心。远程呈现设备100a、100b可以不需要本地主体2和远程主体4使用或佩戴任何其它设备(例如,一副眼镜、vr装置等等),这可能会改变本地主体2和远程主体4的外观和印象。

图3示出了图2b中所示的本地远程呈现设备100a的例子的分解图。可以以相同或相似的方式来构造远端的远程呈现设备100b。本地远程呈现设备100a可以包括例如显示器200、相机阵列300、控制器400、外壳500等等。显示器200可以是透明的、半透明的或部分不透明的,使得光线可以从中穿过。例如,显示器可以是有机发光二极管(oled)显示器或其它类型的发光二极管显示器。显示器200可以具有前后主表面,其可以是垂直平面的形式。显示器200的前主表面可以被构造为面对本地主体2(图2所示),并且向本地主体2显示视频图像。相机阵列300可以被布置为面对显示器200的后表面。从而使得由本地主体2和背景主体反射的光线穿过显示器200并被相机阵列300捕获。

相机阵列300可以包括面对显示器200以捕获穿过其中的光线的多个相机302。相机302可以包括捕获从场景发出的光场信息(其包括场景中光线的强度和方向)的光场相机。在一些例子中,一些或全部的光场相机302可以位于显示器200的后面,以从通过显示器200接收的光中捕获图像。通过将光场相机302放置在显示器200的后面,主体注视通常可以更朝向光场相机302,可以更容易地包含更多数量的光场相机302,可以将光场相机302布置成从更自然的角度捕获主体(例如,图2b中的本地主体2)的图像,并且对于本地远程呈现设备100a,可能不需要另外的非显示面向用户的表面(例如,边框)。光场相机302可以被定位成使得当操作本地远程呈现设备100a时,最左侧的相机302和最右侧的相机302可以跨越在大多数情况下至少足够大的水平距离,以捕获位于一个或多个光场相机302的视场(fov)附近并且在其内的本地主体2的视图。光场相机302的各种其它布置和数量也是有效的,例如但不限于沿着多条平行线或沿着垂直线的阵列。

光场相机302可以在它们之间均匀分布并具有预定距离。替代地,可以更密集地将光场相机302放置在某个区域以捕获更多的视觉信息。例如,预期捕获主要或较近的主体(例如,本地主体2)的相机阵列300的区域,可以设置有更多的光场相机302。预期捕获背景或向较远主体的相机阵列300的其余部分,可以设置较少的光场相机302。

除了光场相机302之外,相机阵列300可以包括多个深度相机304。深度相机304可以与光场相机302成比例地设置。例如,可以按照恒定比率(例如,1:1、3:1、8:1等)来提供光场相机302和深度相机304。深度相机304可以包括ir结构光扫描仪的阵列。每个ir结构光扫描仪通过显示器200将窄带的光投射到主体的3d形状的表面上,并产生该主体的照明线,该照明线可以共同地用于主体的表面形状的灰度几何重建并估计3d扫描仪与主体之间的距离。

如图3的例子中所示,一些或所有深度相机304都可以位于显示屏200的后面,以捕获通过显示器200的用于进行深度估计的光。通过将深度相机304放置在显示器200的后面,可以更容易地包括更多数量的深度相机304,并且对于深度相机304而言,可能不需要另外的非显示面向用户的表面。深度估计也可以称为“估计深度”、“距离估计”或“估计的距离”。如下面更详细地描述的,使用深度相机304获得的深度估计可以用于确定主体何时接近本地远程呈现设备100a,确定本地远程呈现设备100a和主体之间的距离,确定主体相对于相机阵列300的位置,和/或识别用于执行主体的图像分割的深度图像和相关深度图像数据中的不连续性。

如本领域中已知的,不会引起混叠伪影(aliasingartifact)的相机302之间的最大距离是物体距相机302的最小和最大深度(或距离)的函数。例如,当δ是像素的相机角分辨率时,d是相邻相机之间的距离,以及zmin和zmax是场景的z深度的界限:

对于垂直fov为90度、垂直分辨率为1080像素、zmin=400mm,zmax=1000mm和相机阵列大小为600mmx600mm的相机,相机302的空间间隔为1.9mm,总共需要大约96000个摄像头。但是,通过估计深度信息(例如,通过使用深度相机304),可以显著地减少相机302的数量。例如,如果向每个像素分配16个不同深度级别中的一个,则相机302之间的间隔可以增加到30mm的间隔,从而对于相同的600mmx600mm区域,相机302的总数实质上减少到大约400个相机。在zhouchenlin和heung-yeungshum于internationaljournalofcomputervision58.2(2004):121-138的“ageometricanalysisoflightfieldrendering”中描述了此类方法的例子。

控制器400可以包括逻辑子系统、数据保持子系统、显示控制器和通信子系统,并且可以通信地耦合到显示器200和相机阵列300。逻辑子系统可以包括例如一个或多个处理器,其中所述一个或多个处理器被配置为执行指令并根据这些指令与本地远程呈现设备100a的其它元件进行通信,以实现涉及本地远程呈现设备100a的本公开内容的各个方面。这些方面包括但不限于:配置和控制本地远程呈现设备100a的其它元件、输入和命令、与其它计算机系统通信和/或处理由相机阵列300捕获的图像。数据保持子系统可以包括一个或多个存储设备(例如但不限于到dram设备)和/或一个或多个存贮设备(例如但不限于闪存设备)。数据保持子系统可以包括其上存储有指令的一个或多个介质,这些指令可由逻辑子系统执行,从而使逻辑子系统实现涉及本地远程呈现设备100a的本公开内容的各个方面。可以将这些指令包括成固件、操作系统、设备驱动程序、应用程序或其它可执行程序的一部分。通信子系统可以被布置为允许本地远程呈现设备100a与其它计算机系统进行通信。可以经由例如有线或无线数据通信,来执行这样的通信。

外壳500可以被布置为机械地耦合到显示器200,并且包围本地远程呈现设备100a的内部组件(其包括相机阵列300和控制器400)。外壳260也可以称为“壳体”。当组装远程呈现设备100a时,相机阵列300和控制器400可以全部由单个外壳500封装,并且位于显示器200的后面。替代地,可以在多个设备上实现本地远程呈现设备100a的各种元件和特征。例如,控制器300的一部分可以由未由外壳500封闭的计算机系统来提供,相机302和深度相机304中的至少一些可以包括在一个或多个单独的设备中,而不是位于显示器200的后面,和/或深度相机304中的至少一些可以包括在一个或多个单独的设备中,而不是位于显示器200的后面。

相机阵列300可以被构造为任意数量的光场相机302和/或深度相机304。但是,当使用大量的光场相机302来构成相机阵列300时,它可能需要大量的数据总线来传输由光场相机302捕获的图像数据,并需要大量的数据处理能力来编码和处理经捕获的图像数据,这可能使本地远程呈现设备100a的设计和生产复杂化,并且可能在没有适当的冷却系统的情况下产生大量的热量。为了减轻这些问题,可以通过组装多个较小的图像捕获单元或模块,来构造相机阵列300。

图4a示出了相机模块310的例子,相机模块310可以包括一个或多个光场相机302。在一些实现中,相机模块310中的一些或所有可以仅包括一个或多个光场相机302、仅包括一个或多个深度相机304、或者一个或多个光场相机302和一个或多个深度相机304的组合。虽然图4a中所示的相机模块310包括以2x2阵列排列的四(4)个光场相机302,但相机模块310可以被构造为具有不同数量的以不同数量的行和列进行布置的光场相机302和/或深度相机304,并且在它们之间具有不同的距离。例如,可以通过在5×5阵列中布置二十五个(25)相机模块310来构造包括有以20×20阵列布置的四百(400)个光场相机302的相机阵列300,其中每个相机模块310具有十六(16)个以4×4阵列布置的光场相机302。

在一些实现中,可以对至少一些光场相机302进行倾斜以捕获主体的较宽区域(例如,本地主体2的头部和肩部的顶表面、头部的侧表面、手臂和腿等)。例如,如图4a中所示,可以将布置在显示阵列300的顶部和水平中心的光场相机向下倾斜,以捕获本地主体2的头部的顶表面和肩部。图6中的图像60a示出了由位于显示阵列300的顶部和水平中心的向下倾斜的光场相机302捕获的示例图像。光场相机302可以沿不同方向进行倾斜。例如,位于左侧和右侧的光场相机302可以朝着相机阵列300的中心进行倾斜,并且位于相机阵列300的拐角处的光场相机302可以朝着相机阵列300的中心斜向倾斜。光场相机302也可以根据其距相机阵列300中心的距离而以不同的程度进行倾斜。例如,从相机阵列300的中心到光场相机302的距离越大,光场相机302的倾斜角可能越大。

在一些实施方式中,可以利用观察相机(viewcamera)系统来实现多个光场相机302。在2009年2月24日发布的标题为“omni-directionalcamerawithcalibrationanduplookangleimprovements”的美国专利no.7,495,694中,显示并描述了示例性的观察相机系统。在观察相机系统中,图像传感器平整地安装在印刷电路板(pcb)上,相应的镜头安装在图像传感器上。不是将图像传感器和镜头一起倾斜,而是在观察相机系统中,将镜头水平移动,以使图像传感器和镜头的中心相互偏移,从而使图像传感器和镜头的光轴倾斜组合。通过控制水平移动方向和距离,可以按照期望的仰视角度来倾斜光轴,同时确保传感器完全地捕获图像。在观察相机系统中,不需要以倾斜角度将图像传感器固定在表面上方即可实现所需的倾斜角度。因此,可以以更简单的方式设计和制造相机阵列300,并且可以大大减少相机未对准。

在一些实施方式中,相机模块310可以包括一个或多个图像处理器305,如图4b中所示。图像处理器305可以处理由四(4)个光场相机302捕获的光场图像数据。在一些实施方式中,图像处理器305可以分析并比较所捕获的光场图像以构造光场图像数据。这样做,图像处理器305可以过滤出所捕获的光场图像数据中对于构造光场图像帧是多余的或不必要的至少一些。在其它实施方式中,每个光场相机302或一对或一组光场相机302可以设置有其自己的指定图像处理器(没有示出)。除图像处理器305之外,还可以设置指定的图像处理器以分担图像处理器305的处理负担。例如,指定的处理器可以过滤掉冗余或不必要的光场图像,并且图像处理器305可以构造并输出光场图像帧的流。各种相机阵列310可以配置有现场可编程门阵列(fpga)、片上系统(so)或其它集成解决方案。

在一些实施方式中,相机模块310可以经由一个或多个数据总线307与位于附近或远程的一个或多个其它相机模块进行通信。例如,位于相机阵列300的水平、垂直或对角线端部的两个相机模块310可以经由数据总线307彼此通信,以共享从不同的视角捕获的光场图像。然后,可以由图像处理器305处理这些共享的光场图像以创建主体的光场图像。

在一些实施方式中,光场相机302和/或图像处理器305可以与深度相机304(图3所示)进行通信。如上所述,深度相机304可以提供主体的深度估计。当可获得主体的深度估计时,光场相机302可以彼此定位得更远,并且仍然实现相同或相似级别的光场图像捕获精度。因此,深度相机304可以有助于减少构造相机阵列300所需的光场相机302的数量。图像处理器305还可以使用深度估计来滤除多余或不必要的光场图像像素、图块或帧数据。

图5描绘了用于示出示例性控制器400中包括的特征的示例性示意图,其中该示例性控制器400实现本文所描述的各种特征。控制器400可以包括以上针对图2b中所示的远程呈现设备100a、100b描述的任何特征。虽然在重点聚焦于生成一个当前的帧图像的情况下,来描述图5中示出的特征的各方面,但应当理解,这些特征将类似地应用于生成其它的帧图像(例如,用于远程呈现视频会议流的一系列帧图像)。

控制器400可以包括例如深度估计器410、pov跟踪器420、本地图块选择器430、通信子系统440和远程图块选择器450。深度估计器410可以生成并输出本地站点10上的主体(其包括本地主体2)的深度信息412。在一些实施方式中,深度估计器410可以连接到一个或多个深度相机304(图3中所示)以接收本地主体2的深度估计。pov跟踪器420和本地图块选择器430可以接收由相机阵列300捕获的本地捕获图像402。在一些实施方式中,本地捕获图像402可以包括每个光场相机302捕获的由对应的相机模块310输出的光场帧图像流。

图6示出了由每个光场相机302捕获的本地捕获图像402的例子。如上所述,本地捕获图像402可以包括由每个光场相机302捕获的连续光场帧图像流,其可以经由相机模块310以数字视频信号格式来输出。帧图像60a、60b、60c、60d、60e(同时地称为前一帧图像60)是通过分别位于相机阵列300的顶部和水平中心、水平和垂直中心、最左边和垂直中心、最右边和垂直中心、以及底部和水平中心的光场相机302在先前采样周期中捕获的光场图像帧的示例性视觉表示。帧图像62a、62b、62c、62d、62e(同时地称为当前光场帧图像62)分别表示由上述光场相机在当前采样周期中捕获的示例性光场图像帧。

图像帧60a、62a是由位于相机阵列300的顶部和水平中心的光场相机302生成的连续图像帧流的两个顺序图像帧。类似地,图像帧60b、62b是由位于相机阵列300的垂直和水平中心的光场相机302生成的连续图像帧流的两个连续图像帧。如图6中所示,图像帧60a示出了图像帧60b未示出的本地主体2的头部的顶表面、肩部、鞋子等。可以基于远程主体4的pov来选择或丢弃图像帧60a的这些唯一部分以在远端的远程呈现设备100b处合成本地主体2的图像,这将在下面详细讨论。

返回到图5,pov跟踪器420可以处理和分析本地捕获图像402以跟踪本地主体2的pov,以确定本地主体2的当前pov,并估计本地主体2的一个或多个未来pov。当前pov和估计的未来pov在图5中统称为本地主体pov数据422。

图7a、图7b、图7c、图7d、图7e、图7f和图7g描绘了用于跟踪当前pov并估计本地主体2的一个或多个未来pov的示例方法,该方法可以由pov跟踪器420执行。应当注意,为了清楚说明和讨论起见,夸大了图7a、7b、7c、7d、7e、7f和7g中所示的本地主体2的运动,并且其不一定反映预期的实际运动程度。在图7a中,在时间t1,pov跟踪器420可以确定本地主体2的第一pov点ct1在时间t1相对于本地远程呈现设备100a的位置。在所示出的例子中,从本地主体2的角度,按照相对于本地远程呈现设备100a的右下位置的三维笛卡尔坐标(xt1,yt1,zt1)描述了第一pov点ct1。在该例子中,x-y平面72平行于显示器200的前主表面。应当注意,可以采用各种其它坐标系以达到类似的效果。诸如第一pov点ct1之类的pov点可以是在本地主体2的眼睛(如图7a中所示)、本地主体2的左眼、本地主体2的右眼之间的点,或者与本地主体2的视点相对应的其它位置。

在图7b中,在时间t2,本地主体2从图7a中的时间t1的位置移动;例如,如箭头x所示地横向向左移动。对于时间t2,pov跟踪器420可以用对应的三维坐标(xt2,yt2,zt2)确定本地主体2的第二pov点ct2相对于本地远程呈现设备100a的位置,大部分如图7a中所示。

在图7c中,也对应于时间t2,本地远程呈现设备100a基于本地主体2的pov点随时间的运动,生成适合于估计或预测该本地主体2的pov点的未来位置的运动预测数据。在该例子中,运动预测数据包括本地主体2的第二pov点ct2(本地主体2的pov点的最新确定位置)和基于并反映从第一pov点ct1到第二pov点ct2的运动所计算的运动矢量vt2;例如,可以将运动矢量vt2计算为第一pov点ct1和第二pov点ct2之间的差。可以按照与针对第二pov点ct2所使用的相同的坐标轴来表示运动矢量vt2。虽然图7c所示的例子使用线性运动矢量vt2来用于运动预测数据,但在其它例子中,可以使用更复杂的运动预测模型,并生成相应的运动预测数据。本地远程呈现设备100a将所生成的运动预测数据发送给远端的远程呈现设备100b。

在图7d中,在时间t3处,远端的远程呈现设备100b已经从本地远程呈现设备100a接收到运动预测数据。在该例子中,将第二pov点ct2转换为远端的远程呈现设备100b使用的坐标系(例如,正交轴x'、y和z'),产生三维坐标(x't2,y't2,z't2)。在一些例子中,可以向坐标(xt2,yt2,zt2)的一个或多个分量应用偏移以生成坐标(x't2,y't2,z't2)。在一些例子中,可以向坐标(xt2,yt2,zt2)应用矩阵变换或其它变换以生成坐标(x't2,y't2,z't2)。

本地主体2的运动与本地远程呈现设备100a呈现给本地主体2的图像之间的延迟在大约30毫秒时变为可感知的,尽管其变成可感知的时间量可能因人而异。为了最小化该延迟,选择远端的远程呈现设备100在时间t3捕获的图像数据的一部分,以用于在与向本地主体2显示图像数据相对应的未来时间(例如,图7f所示的时间t9),渲染与本地主体2的pov位置相对应的光场图像。但是,对于将来的pov位置实际将在哪里而言,存在若干个不确定性来源。例如,由于多个未知的环境因数,从远端的远程呈现设备100b向本地远程呈现设备100a传输图像数据时的网络延迟可能会发生变化。另外,本地主体2的实际运动可能与在时间t2生成的运动预测数据不同;例如,虽然本地主体2可以沿着运动矢量vt2线性移动,但是该运动速度可以比预测的更快或更慢。

为了解决当本地远程呈现设备100a渲染图像数据时将发生的实际未来pov位置的不确定性,远端的远程呈现设备100b识别与各种可能的pov位置相对应的多个pov位置,并选择本地远程呈现设备100a在渲染与所述多个pov位置中的每一个相对应的图像时将使用的图像数据中的部分。图7e示出了远端的远程呈现设备100b基于从本地远程呈现设备100a接收到的运动预测数据,来识别五个pov位置的示例。基于第二pov点ct2和运动矢量vt2,在时间t7、t8、t9、t10、t11估计或预测本地主体2的未来pov位置,从而得出各个估计的pov点ect7、ect8、ect9、ect70、ect11。例如,时间t9可以对应于本地远程呈现设备100a将使用图像数据的预期时间,而时间t7和t8稍早于t9,时间t10和t11稍晚于时间t9。然后,可以使用这五个pov点来选择图像数据以传输到本地远程呈现设备100a。

此外,在时间t2生成的运动预测数据中可能存在不确定性或错误,和/或本地主体2可能做出与运动预测数据不一致的意外或不可预测的运动。为了更好地确保图像数据的所选定部分包括渲染与运动预测数据偏离的pov位置所需的图像数据,可以识别更广泛的未来pov位置范围,并使用其来选择用于向本地远程呈现设备100a进行传输的图像数据部分。在图7e中,示出了体积75,从其中选择多个代表性pov点,并且使用该体积来选择用于向本地远程呈现设备100a进行传输的图像数据部分。在图7e所示的例子中,体积75是从与时间t7到t11相对应的第二pov点ct2延伸的圆锥体的一部分,其随着时间的推移加宽以反映本地主体2的实际pov位置随时间的不确定性增加,并提供在一定程度的不确定性内更确定地包含pov位置的体积。这样,发送到本地远程呈现设备100a的图像数据的数量将可能增加,但是这还使得本地远程呈现设备100a的操作针对于本地用户2的意外移动来说更加健壮。

应当注意,虽然在以上示例中远端的远程呈现设备100b计算了将来的pov点和/或体积75,但是在一些实施方式中,这些计算可以替代地由本地远程呈现设备100a来执行。例如,由本地远程呈现设备100a生成的运动预测数据可以明确地指定远端的远程呈现设备100b用于选择图像数据的部分的pov点、pov点的范围和/或pov点的数量。但是,通过向远端的远程呈现设备100b提供更多的自由来识别未来的pov位置,它允许该选择更好地动态适应诸如以下的情形:本地远程呈现设备100a和远端的远程呈现设备100b之间观察到的网络延迟发生变化。

在图7f中,在时间t9处,并且基于针对时间t9确定的实际pov点ct9,本地远程呈现设备100a可以使用从远端的远程呈现设备100b接收的图像数据的一个子集进行渲染,并显示与pov点ct9对应的远程主体4的图像。虽然在较早的时间t3捕获了图像数据,但通过针对pov点ct9的视点来渲染光场,响应于本地主体2的运动的延迟明显减少。

图7g示出了基于针对时间t9确定的实际pov点ct9,在本地远程呈现设备100a渲染图像的另一种方法。这可能花费大量时间(例如,多个帧显示周期)来渲染与pov点ct9对应的图像,从而导致针对pov点ct9渲染的远程主体4的图像在稍后的时间(例如,在时间t10)显示。在时间t9和时间t10之间,本地主体2可能移动到与先前pov点ct9不同的pov点ct10。如果是这样,则针对先前pov点ct9渲染的图像可能不再准确地对应于pov点ct10,从而导致本地主体2可感知的延迟。当发生这种情形时,本地主体2可能会感觉到远程主体4的显示图像响应性和交互性较低。

为了进一步减少延迟,可以在时间t9使用运动预测数据(在图7g中示为矢量vt10)来确定时间t10的估计的未来pov点ct10。然后,相对于估计的未来pov点ct10而不是pov点ct9的视点,来渲染用于向本地主体2显示的图像。其中,估计的未来pov点ct10相当准确(其很可能在短时间范围内),显示在本地远程呈现设备100a上的远程主体4的图像变得对本地主体2的移动更加敏感。

参考图5,可以将本地主体pov数据(例如,本地主体2的先前的、当前的和所估计的未来的pov点)发送到通信子系统440。通信子系统440可以从远端的远程呈现设备100b接收远程主体pov数据。可以以与本地主体pov数据422相同或相似的方式,来生成远程主体pov数据442。

本地图块选择器430可以接收本地捕获图像402(从相机阵列300接收)、深度信息412(从深度估计器410接收)和远程pov数据442(从通信子系统440接收)。基于远程主体pov数据442和/或深度信息412,本地图块选择器430可以从不同的帧图像(例如,图6中所示的先前或当前帧图像60、62)中选择图块。图块是指帧图像的一个分割部分。帧图像可以包括以预定数量的行和列布置的多个图块。每个图块可以通过其在帧图像中的位置来识别。每个图块可以具有预定大小,例如,以4x4阵列布置的16个像素、以8x8阵列布置的64个像素等等。替代地,图块的尺寸和形状可以根据例如主体移动频率、所涉及的细节级别等等而变化。例如,可以使用较小的图块来选择频繁变化的详细或密集部分(例如,头发、眼睛、手等等)。可以使用较大的图块来选择静止或单调的部分(例如,墙壁、背景等等)。

基于远程主体pov数据442的先前的、当前的和所估计的未来的的远程主体pov中的至少一个,本地图块选择器430可以选择可能由远端的远程呈现设备100b使用来合成本地主体2的图像的那些图块。例如,图6示出了基于远程主体pov数据442,从帧图像60b中选择的多个图块66a、66b、66c。可以丢弃那些不太可能使用的图块。例如,当远程主体pov数据442指示远程主体4正在抬头时,远端的远程呈现设备100b可能不需要示出头的顶部、肩部和手的图块。因此,可以丢弃与这些不必要的部分相对应的那些图块(例如,图6所示的帧图像60a中的图块64a、64b、64c)。那些选择的图块可以作为本地图像数据432输出到通信子系统440,通信子系统440然后可以将本地图像数据432与其它本地数据(包括本地主体pov数据422)一起压缩和打包,并经由网络5发送给远端的远程呈现设备100b。

在一些实施方式中,本地图块选择器430还可以将深度信息412添加到所选择的图块。例如,本地选择器430可以从深度估计器410获得所选择的图块的每个像素的深度信息412,并将深度信息412添加到像素颜色信息(例如,rgb)。当将本地图像数据432发送到远端的远程呈现设备100b以合成本地主体2的图像时,所添加的深度信息可以花费更少的时间和资源消耗来处理所选择的图块。

在一些实施方式中,本地远程呈现设备100a可以被构造和操作以显示远程主体4的图像。例如,通信子系统440可以从远端的远程呈现设备100b接收、解包和解压缩数据。来自远端的远程呈现设备100b的图像可以包括远程图像数据444。类似于本地图像数据432,远程图像数据444可以包括远端的远程呈现设备100b从远程主体4的帧图像中选择的多个图块。远端的远程呈现设备100b可以基于本地远程呈现设备100a先前发送的本地主体pov数据22的先前的、当前的和所估计的未来的pov中的至少一个来选择这些图块。因此,远程图像数据444可以包括在本地远程呈现设备100a处构造远程主体4的图像所可能需要的图块。

通信子系统440可以向远程图块选择器450发送远程图像数据444。远程图块选择器450可以接收本地主体pov数据424,其可以包括本地主体2的先前的、当前的和所估计的未来的的pov。基于本地主体pov数据424,远程图块选择器450可以处理远程图像数据444,以选择合成远程主体4的图像所必需的图块。然后,远程图块选择器450可以将所选择的图块组合以合成远程主体4的一个或多个帧图像,然后可以将其发送到缓冲器460。然后,缓冲器460可以将帧图像作为视频信号462输出到显示器200。显示器200可以处理视频信号462以显示视频图像,该视频图像可以保持远程主体4的3d几何形状和眼睛注视(其也可以响应于本地主体2的移动)。远端的远程呈现设备100b还可以显示能够保持本地主体2的3d几何形状和眼睛注视的视频图像(其也可以响应于远程主体4的移动)。

控制器400还可以包括电话会议所需的其它组件,例如,声音编码器470、声音解码器480等等。声音编码器470可以连接至麦克风110,其中麦克风110可以位于例如外壳500的隐藏内表面,以捕获来自本地主体2的语音。声音编码器470可以对捕获的语音信号进行编码,并作为本地声音数据472发送给通信子系统440。然后,通信子系统440可以压缩并打包本地声音数据472,并通过网络发送给远端的远程呈现设备100b。用类似的方式,来自远端的远程呈现设备100b的数据包可以包括远程声音数据446,其可以由通信子系统440进行解包和解压缩并发送给声音解码器480。声音解码器480可以连接到扬声器120,扬声器120类似于麦克风110,位于外壳500的隐藏内表面上。声音解码器480可以对远程声音数据446进行解码,并将音频信号输出到扬声器120,以便在本地站点10处再现远程主体4的语音。

在一些实施方式中,远程设备100b可以是不能提供远程主体pov数据的非远程设备。例如,远程设备100b可以是虚拟现实(vr)或增强现实(ar)设备。为了与vr/ar机器一起工作,本地图块选择器430(图5中所示)可以从捕获的光场图像中选择多个图块,并将所选择的图块转换为vr/ar设备渲染和显示本地主体2的3d视觉表示(例如,3d化身)可以使用的本地主体图像数据。该本地主体图像数据可以包括本地主体pov数据,这可以实现在vr/ar设备上显示本地主体2的3d视觉表示,以保持远程vr/ar用户的眼睛注视。

图8示出了校准位于不同高度的本地远程呈现设备100a和远端的远程呈现设备100b的例子。在一些安装情况下,两个相同尺寸的远程呈现设备100a、100b可能基本垂直于地面,但距地面的高度h1、h2却不同,这可能导致本地主体2和远程主体4之间的显著的视线水平差异。假设光场相机302的投影中心(cop)非常靠近显示器200(例如,小于2mm),则可以通过简单的校准来忽略显示器200与cop之间的距离。例如,从本地站点10上的点v到远程站点20上的点p的射线r,穿过本地远程呈现设备100b的点y1和远端的远程呈现设备100b的点y2。在图8中,长度hv表示远程呈现设备100a的顶部与射线通过点y1之间的距离,而长度hp表示远程呈现设备100b的顶部与射线通过点y2之间的距离,其中长度hv、hp之间的差与高度h1、h2之间的差相同。因此,在安装校准过程中可以执行简单的线性移动来补偿远程呈现设备的高度变化。可以使用尺子等等,手动确定每个远程呈现设备的高度。替代地,可以使用声纳设备或其它测量设备来获得更精确的高度估计。

图9描绘了用于示出了本地远程呈现设备100a和远端的远程呈现设备100b的示例操作900以及它们之间的通信的流程图。在图9中仅示出了单个操作周期,但是可以在本地远程呈现设备100a和远端的远程呈现设备100b上同时重复相同或相似的周期,直到例如视频会议会话结束或通信中断为止。

本地远程呈现设备100a可以例如使用相机阵列300(图5中所示)来捕获本地主体2的图像(例如,光场图像)(步骤910a),以生成本地捕获图像402(图5中所示)。类似地,远端的远程呈现设备100b可以捕获远程主体4的图像(例如,光场图像)(步骤910b)以生成远程捕获图像。本地远程呈现设备100a和远端的远程呈现设备100b可以例如使用深度相机304(图5中所示),分别扫描本地主体2和远程主体4以获得本地主体2和远程主体4的深度信息(步骤920a、920b)。如上所述,深度信息可以允许使用较少数量的相机302。扫描步骤920a、920b可以是可选的,并且在操作900中不需要或不使用深度信息时可以不执行扫描步骤920a、920b。

在本地远程呈现设备100a处,本地捕获图像402可以由例如pov跟踪器420(图5中所示)处理以跟踪本地主体2的pov(步骤930a),并生成本地主体pov数据422(图5中所示),其可以包括当前本地主体pov和估计的未来本地主体pov,如上所述。可以将本地主体pov数据422发送给远端的远程呈现设备100b(步骤932a)。类似地,在远端的远程呈现设备100b处,可以对远程捕获图像进行处理以跟踪远程主体4的pov(步骤930b),并生成远程主体pov数据442(图5中所示)。可以将远程主体pov数据442发送给本地远程呈现设备100a(步骤932b)。

在本地远程呈现设备100a处,基于在步骤932b接收的远程主体pov数据442,本地捕获图像402可以由例如本地图块选择器430(图5中所示)处理,以选择在远端的远程呈现设备100b处合成本地主体2的图像所需要的本地图块(步骤940a)。然后,可以将包括选择的本地图块的本地图像数据432(图5中所示)发送给远端的远程呈现设备100b(步骤942a)。如上所述,本地图像数据432可以包括所选择的本地图块的深度信息。类似地,可以基于本地主体pov数据422(图5中所示)来处理远程捕获图像,以选择在本地远程呈现设备100a处合成远程主体4的图像所需要的远程图块(步骤940b)。然后,远端的远程呈现设备100b可以发送包括所选择的远程图块的远程图像数据444(图5中所示)(步骤942b)。远程图像数据444还可以包括所选择的远程图块的深度信息,如上所述。

在本地远程呈现设备100a处,远程图像数据444可以由例如远程图块选择器450(图5中所示)处理,以基于本地主体pov数据424(图5中所示)(例如,当前本地主体pov),从远端的远程呈现设备100b发送的远程图块中选择合成远程主体4的图像所需要的那些远程图块(步骤950a)。使用从步骤950a选择的远程图块,本地远程呈现设备100a可以构造远程主体4的图像,然后可以在例如显示器200(图5中所示)上显示该图像(步骤960a)。

类似于步骤950a、960a,远端的远程呈现设备100b可以基于远程主体pov数据,从本地远程呈现设备100a发送的本地图块中选择合成本地主体2的图像所需要的那些本地图块(步骤950b)。然后,远端的远程呈现设备100b可以对所选择的本地图块进行处理,以合成并显示本地主体2的图像(步骤960b)。

如上所述进行构造和操作的远程呈现设备100a、100b可以提供改善的沉浸式体验,并且本地主体2和远程主体4可以感受到与彼此面对面在相同位置时相同程度的信任和同情心。因此,远程呈现设备100a、100b可以减少或者甚至消除用于商业或个人目的的耗时且昂贵的旅行。

图10描绘了用于示出可以在其上实现本公开内容的各方面的示例计算机系统1100的框图。计算机系统1100包括总线1102或者用于传输信息的其它通信机制、以及与总线1102耦合的用于处理信息的处理器1104。计算机系统1100还包括耦合到总线1102的主存储器1106(例如,随机存取存储器(ram)或其它动态存储设备),用于存储信息和将由处理器1104执行的指令。主存储器1106还可以用于在由处理器1104执行的指令执行期间,存储临时变量或其它中间信息。计算机系统1100可以实现例如远程呈现设备100a和100b中的一个或多个或者其一部分。

计算机系统1100还可以包括只读存储器(rom)1108或耦合到总线1102的其它静态存储设备,以存储用于处理器1104的静态信息和指令。诸如闪存或其它非易失性存储器之类的存贮设备1110可以耦合到总线1102以存储信息和指令。

计算机系统1100可以经由总线1102耦合到显示器1112(例如,液晶显示器(lcd))以显示信息。一个或多个用户输入设备(例如,示例性用户输入设备1114)可以耦合到总线1102,并且可以被配置为接收各种用户输入(例如,用户命令选择),并将这些输入传送给处理器1104或主存储器1106。用户输入设备1114可以包括物理结构或虚拟实现或两者,以提供用户输入模式或选项,从而控制例如通过显示器1112或通过其它技术对用户可见的光标,并且这些模式或操作可以包括例如虚拟鼠标、轨迹球或光标方向键。

计算机系统1100可以包括处理器1104的相应资源,其中处理器1104以重叠或交错的方式执行相应的程序指令。可以将指令从诸如存贮设备1110之类的另一个机器可读介质读入主存储器1106中。在一些例子中,可以使用硬连线电路代替软件指令或者与软件指令结合。如本文所使用的术语“机器可读介质”指代参与提供数据的任何介质,其中该数据导致机器以特定的方式进行操作。这样的介质可以采取包括但不限于非易失性介质、易失性介质和传输介质的形式。非易失性介质可以包括例如光盘或磁盘,例如存贮设备1110。传输介质可以包括光学路径或者电或声信号传播路径,并且可以包括声波或光波(例如,在无线电波和红外数据通信期间生成的声波或光波),它们能够携带可通过物理机制检测到的输入到机器的指令。

计算机系统1100还可以包括耦合至总线1102的通信接口1118,以实现与连接至局域网1122的网络链路1120耦合的双向数据通信。网络链路1120可以通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路1120可以通过本地网络1122提供到主机1124的连接,或者提供到互联网服务提供商(isp)1126所操作的数据设备的连接,以通过互联网1128对服务器1130进行访问(例如,获得用于应用程序的代码)。

虽然已经描述了各种实施例,但是本说明书旨在是示例性的,而不是限制性的,并且应当理解,在实施例的范围内,可能有更多的实施例和实施方式。尽管在附图中示出了特征的许多可能组合并且在具体实施方式中进行了讨论,但是所公开特征的许多其它组合也是可能的。除非特别限制,否则任何实施例的任何特征可以与任何其它实施例中的任何其它特征或元素进行组合或替代。因此,应当理解,可以以任何适当的组合,一起实现本公开内容中示出和/或讨论的任何特征。因此,除了根据所附权利要求及其等同物之外,实施例不受限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。

虽然前面已经描述了被认为是最佳模式和/或其它示例的内容,但应当理解,可以在其中进行各种修改,并且可以以各种形式和示例来实现本文所公开的主题,并且本文的教导内容可以在许多应用中进行应用,本文仅描述了其中的一些。所附权利要求书旨在要求落入本教导的真实范围内的任何和所有应用、修改和变化。

除非另外说明,否则本说明书(包括所附的权利要求书)中列出的所有测量值、值、额定值、位置、幅度、大小和其它规范均为近似值,并不精确。它们旨在具有与它们所涉及的功能以及它们所涉及的领域中的习惯相一致的合理范围。

本保护范围仅受所附权利要求书的限制。当根据本说明书和随后的起诉历史进行解释时,该保护范围的意图是并且应当被解释为与权利要求中使用的语言的普通含义相一致,并且涵盖所有结构和功能上的等同物。尽管如此,所有权利要求书都不是旨在涵盖不满足专利法第101、102或103条要求的主题,也不应将其解释为如此。特此拒绝对此类主题的任何非预期的接受。

除以上所述之外,已声明或说明的任何内容均无意或应被解释为导致公众奉献任何组成部分、步骤、特征、对象、利益、优势或等效物,无论其是否在权利要求中陈述。

应当理解,本文中使用的术语和表达方式具有与这些术语和表达方式在其相应的查询和研究领域中所赋予的一般含义,除非本文另外阐述了特定含义。诸如第一和第二等等之类的关系术语可以仅用于区分一个实体或动作与另一个实体或动作,而不是必需要求或暗示这些实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”或其任何其它变体旨在覆盖排他性包含,使得包括一系列要素的过程、方法、物品或装置不仅仅包括那些要素,还包括可能未明确列出的其它元素、或者此类过程、方法、物品或装置所固有的其它元素。在没有其它限制的情况下,以“一个”或“某个”开头的元素并不排除在包含该元素的过程、方法、物品或装置中存在其它相同元素。

提供本发明的摘要以使读者能够快速地确定技术公开的性质。提交本文档时,应当理解为不会将其用于解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看出,为了简化本公开内容起见,在各个示例中将各个特征分组在一起。不应将本公开内容的方法解释为反映以下意图:本发明需要比每个权利要求中明确叙述的特征更多的特征。相反,如所附权利要求所反映的,发明主题在于少于单个公开示例的所有特征。因此,所附权利要求据此并入到详细描述中,每个权利要求独立地作为单独要求保护的主题。

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