一种用于在虚拟环境中进行视频通信的基于头部跟踪技术的媒介选择的制作方法

未命名 10-25 阅读:88 评论:0


1.本公开总体上涉及计算机系统,更具体而言本公开涉及一种采用头部跟踪技术的媒介选择,用于在虚拟环境中进行视频通信。


背景技术:

2.前几年疫情流行,这样的环境实际上为技术升级创造了条件。得益于这些技术的应用,特殊时期的人们通过网络举行会谈、学习知识、购物、开展远程协作和互动交流。市面上的产品种类繁多,从网络聊天到视频电话,诸如skype
tm
和zoom
tm
,又或是以2d虚拟化身为代表应用于团队远程协作,类似pragli
tm
公司的虚拟办公场景软件。
3.考虑到可穿戴式沉浸体验技术(如增强现实和虚拟现实)当前的发展状态及其较低的技术占有率,就不难理解为什么大部分的方案里包括了一个二维平面的用户操作界面,大多数的人机交互都发生在这里。一个不那么复杂的选项包括在平板屏幕上进行这样的交互操作,例如在计算机或移动设备显示器,用户的虚拟化身被融入到虚拟环境中并在显示器中展现。在一些情况下,虚拟化身可以为用户提供第一人称视角,用户可以查看场景和其他用户的虚拟化身,从而增加交互的真实性。用户选择何种类型的媒介选择常常取决于用户看到的视图,这往往通过移动鼠标、键盘控制或控制器加以调整。然而,现实中此类媒介选择及其使用体验仍然不能令人满意。例如,在现实生活的会议中,人们一边通过电脑工作,一边还自由地四处张望,而这类体验在一般的视频会议平台上是无法实现的。
4.人们需要一种技术解决方案,能在远程交互时为用户提供真实感受和作为参与者的存在感,无需购买昂贵的装备(如头戴式显示器),也无需搭建新的昂贵设施,仅使用现有的计算机和摄像机即可。这些方法应所述能够实现替代性的媒介选择机制,与具有的现实环境和用户体验相匹配。


技术实现要素:

5.发明内容简明扼要地介绍了一系列概念,并在下文中进一步加以详述。所述发明内容不用于明确要求保护的主题的关键特征,也不用作确定要求保护的主题的辅助手段。
6.在本公开的一个方面,提供了一种采用头部跟踪技术的媒介选择,通过电脑系统操作,用于在虚拟环境中进行视频通信的方法。所述方法包括构建一个可供多客户端设备访问的3d虚拟环境,在这个3d虚拟环境中,每台客户端设备都有一个对应的用户图像,而每一个用户图像都配备对应的虚拟摄像机,通过客户端设备显示出所述设备用户可见的3d虚拟环境视角,在这个3d虚拟环境中,两个用户之间能进行音频和视频交互,实现视频通信功能;接收由第一客户端设备发出的元数据,它包括6个自由度的头部跟踪信息,通过采集第一用户设备视频中的人脸关键点数据生成。其中第一人称视角下的虚拟摄像机可提供所述视角下的3d虚拟环境视图;识别第二虚拟摄像机视域内的图像元素,其中包括向第二客户端设备展现的3d虚拟环境,识别的图像元素还包括第一用户图像:以及,将第一客户端设备
的头部跟踪元数据和已识别的图像元素一并发送给第二客户端设备。
7.在一个实施例中,本方法进一步包括通过第二客户端设备,结合跟踪头部跟踪元数据,以调整已识别的第一用户的头部图像移动视图;渲染并展现第二虚拟摄像机调整后的视图,视图中包括第一用户的用户图像和对应的图像元素。
8.在一个实施例中,本方法进一步包括将第一虚拟摄像机的视角视图与人脸关键点数据相关联,从6个自由度来跟踪第一用户人脸关键点的移动轨迹,并根据所得数据来调整第一虚拟摄像机的位置和朝向。所述方法进一步包括,通过调整虚拟摄像机的位置,以动态地选择虚拟环境中的元素,并将所述元素展现给对应的客户端设备。
9.在进一步的实施例中,通过跟踪人脸关键点移动轨迹数据来调整虚拟摄像机的位置和朝向,通过对一个或多个自由度设定阈值,以限制虚拟摄像机位置和朝向的调整。在更进一步的实施例中,本方法包括仅在头部的各个自由度的移动量达到阈值之后,虚拟摄像机的位置才会进行对应的变化。在另一个实施例中,虚拟摄像机与头部各个自由度的移动相互关联,当头部移动量超过阈值后,虚拟摄像机便停止移动。在另一个实施例中,针对一个或多个自由度设定乘数值,使虚拟摄像机对应各个头部移动的移动量增加。在另一个实施例中,反向设定了虚拟摄像机对应人脸关键点移动跟踪的位置和朝向。
10.在进一步的实施例中,3d虚拟环境中包含了用户图像及其对应虚拟摄像机的方位信息,其中,虚拟摄像机的位置和朝向是根据人脸关键点的水平或横向移动来控制的,使得虚拟摄像机可沿预定几何路径移动。在进一步的实施例中,所述方法包括将虚拟摄像机的一个或多个运动轴与一个或多个头部运动相关联。
11.在一个实施例中,所述方法包括通过彩色摄像机捕获彩色视图,生成用户虚拟图像;并将生成的用户图像融入到3d虚拟环境的3d坐标中。
12.本公开的另一方面包括,通过采用头部跟踪技术的媒介选择进行视频通信,这样的系统至少包括一套配备存储器和处理器的电脑,以构建供多个客户端设备访问的3d虚拟环境,每台客户端设备都有一个对应的用户图像,而每一个用户图像都配备对应的虚拟摄像机,通过客户端设备显示出所述设备用户可见的3d虚拟环境视角;一个通过计算机存储器以实现数据交互的管理模块,经配置可接收由第一客户端设备发出的元数据,它包括6个自由度的头部跟踪信息,所述数据与通过采集第一用户设备视频中移动的人脸关键点数据相互响应。其中,第一人称视角下的虚拟摄像机可提供所述视角下的3d虚拟环境视图;一个通过计算机存储器以实现机器视觉功能的模块,经配置后进一步用于识别第二虚拟摄像机视域内的图像元素,第二虚拟摄像机向至少一个第二客户端设备的用户展现3d虚拟环境的视图,其中识别的图像元素还包含第一用户图像;将第一客户端设备的头部跟踪元数据和已识别的图像元素一并发送给第二客户端设备。所述系统能够在3d虚拟环境的用户之间交换视频和音频数据,从而在所述3d虚拟环境中进行视频通信。
13.在一些实施例中,配置第二客户端设备以接收头部跟踪元数据,以调整已识别的第一用户的头部图像移动视图;渲染并展现第二虚拟摄像机调整后的视图,其中包括第一用户的用户图像和对应的图像元素。
14.在一些实施例中,对第一用户或各个用户的彩色视图进行识别,并获取用户的人脸关键点及其坐标信息,采集的数据通过对应的彩色摄像机发送。
15.在一些实施例中,配置机器视觉模块,使每个用户图像对应的第一虚拟摄像机的
视图与人脸关键点的坐标数据相关联;从6个自由度跟踪第一用户人脸关键点的移动;根据人脸关键点的移动数据调整第一虚拟摄像机的位置和朝向。进一步配置机器视觉模块,并根据虚拟摄像机调整后的位置信息,动态地选择虚拟环境中的元素;将虚拟环境中选择的元素发送给对应的客户端设备。在更进一步的实施例中,机器视觉模块针对一个或多个自由度设定阈值,以限制虚拟摄像机位置和朝向的调整。在更进一步的实施例中,仅在头部的各个自由度的移动量达到阈值之后,虚拟摄像机的位置才会进行对应的变化。在另一个实施例中,虚拟摄像机与头部各个自由度的移动相互关联,当头部移动量超过阈值后,虚拟摄像机便停止移动。在所述方法的另一个实施例中,针对一个或多个自由度设定乘数值,使虚拟摄像机对应各个头部移动的移动量增加。在另一个实施例中,反向设定了虚拟摄像机对应人脸关键点移动跟踪的位置和朝向。在更进一步的实施例中,3d虚拟环境中包含了用户图像及其对应虚拟摄像机的方位信息,其中,虚拟摄像机的位置和朝向是根据人脸关键点的水平或横向移动来控制的,使得虚拟摄像机可沿排列在几何体的预定路径移动。
16.在一个实施例中,数据管理系统通过混合系统架构运行。所述混合系统架构包括:包含web或应用程序服务器的客户端-服务器端,其中web或应用程序服务器通过安全通信协议接收来自客户端的请求,并通过请求微服务或对应于来自数据库的请求的数据来处理客户端请求;所述架构还包括p2p通信协议的对等计算(p2p)端,所述协议实现了客户端设备之间的实时通信,同时还包括一个渲染引擎,能够让客户端设备在3d虚拟环境中实时会话时完成3d实时渲染效果。
17.本公开的另一方面包括,将指令存储在一个非暂时性计算机可读介质内,使得至少一台配备处理器和存储器的服务器执行本文所述方法。
18.上述发明内容不包括本公开中的所有详细列表。考虑到本专利公开包括了全部的系统和方法,这些系统和方法可以参照上面发明内容的所有适当内容以及在下文详细说明中公开的内容进行实践,特别是那些在应用领域中指出的系统和方法。这些方法具有的特别优势没有在上述发明内容中特别列举。本发明的其他特征和优势详见附图以及下面的详细说明。
附图说明
19.可以通过以下说明和附图更好地理解本公开内容中的具体特征、优势和其他方面的内容,其中:
20.图1描述了一个系统示意图,根据一个实施例,所述系统可在虚拟环境中,采用头部跟踪技术的媒介选择来实现视频通信。
21.图2a-2b描述描述了一种方法运作流程,根据一个实施例,这种方法在虚拟环境中,通过基于头部跟踪技术的媒介选择实现了视频通信功能,说明了图1中系统内各元素之间的互动。
22.图3描述了用于系统运行的混合系统架构示意图,根据一个实施例,所述系统能够在虚拟环境中,使具备头部跟踪技术的媒介选择实现视频通信功能。
23.图4a-4e描述了一个虚拟环境的示意图,根据一个实施例,所述虚拟环境采用了本公开内容中基于头部跟踪技术的媒介选择。
24.图5a-5c描述了一个虚拟环境的示意图,根据一个实施例,所述虚拟环境采用了本
公开中基于头部跟踪技术的媒介选择,重点是头部移动和对应的虚拟摄像机在z轴的调整,实现了视图放大和缩小的功能。
25.图6a-6c描述了一种方法的结构示意图,根据一个实施例,这种方法在虚拟环境中,通过基于头部跟踪技术的媒介选择实现了视频通信功能。
具体实施方式
26.在下面的描述中,参考了以实例说明的方式示出各种实施例的附图。此外,各种实施例将在下文中通过参考一些示例来描述。以上实施例说明在不偏离要求保护的主题范围的情况下,实施例可能存在设计和结构上的变化。
27.本公开的系统和方法提供了改进的媒介选择,并展示了所述媒介选择在虚拟环境中实现的视频通信。更确切地说,本公开的系统和方法能够提供基于头部跟踪技术的媒介选择。目前公开内容中的虚拟环境能够实现类似现实生活中多用户实时协作和互动的场景,可用于远程会议、远程办公、远程教育以及其他场合。所述虚拟环境可以是一个包括场景排布和视觉外观的3d虚拟环境,用户可以根据他们的喜好或需要来自行定制。用户通过用户图像访问并融入到虚拟环境中,所述用户形象与3d虚拟环境相结合。
28.在虚拟环境中,头部跟踪技术通过媒介选择和展示功能得以实现,所述技术跟踪用户的人脸关键点,将这些人脸关键点数据与来自虚拟摄像机的视图相关联,从用户图像的视角展示关联后的视图。因此,根据用户头部移动轨迹调整虚拟摄像机后,展现给用户的媒介选择也对应地调整。通过头部跟踪算法来跟踪用户头部移动产生的元数据,所述元数据也被系统用以更新用户图像在其他用户视角中的视图,观感真实,用户体验也得到提升。
29.比如,用户的3d虚拟图像可以是用户上传自己编辑过/去除背景的照片或由第三方提供的照片,也可以是用户实时3d虚拟卡通图像,或去除以及没有去除背景的视频。在一些实施例中,用户图像的类型可以根据用户需求,从一种类型转变到另一种类型。还可以在用户图像上补充额外的特征,如用户状态,提供关于当前可用性或与其他用户相关数据进一步的细节信息。在一些实施例中,实现了虚拟环境中用户之间的对话和协作以及与虚拟环境中用户和物体之间的互动。
30.在虚拟环境中,实现虚拟存在以及用户之间的真实互动和协作,可以提高远程应用的真实性。本公开的系统和方法进一步使用户能够通过客户端设备(如移动设备或计算机)访问各种虚拟环境,而无需添置昂贵的沉浸式设备(如扩展现实头戴式显示器或昂贵的新型系统设施)。
31.在本公开的一些实施例中,通过自定义功能调整虚拟摄像机,提供多个选项,可实现各种效果,进一步扩大了虚拟环境中的体验范围。通过自定义调整,使虚拟摄像机的轴与用户特定的头部几何状移动轨迹相关联。在一个示例中,头部的前后移动可以与虚拟摄像机的z轴相关联,产生对应的放大和缩小效果。在另一个示例中,用户头部横向移动,使其用户图像和对应的虚拟摄像机在虚拟摄像机路径上移动,同时,用户通过头部沿所述路径的几何形状在虚拟环境中移动,仍有能力双手打字或做事。在另一个示例中,虚拟摄像机的调整能够应用反转值,使头部移动导致虚拟摄像机的移动朝向反转。在另一个示例中,通过和终止阈值调整虚拟摄像机,它们控制摄像机的移动轨迹端点。在另一个示例中,通过对每个轴或每个自由度采用不同的倍增器来调整虚拟摄像机,以实现不同类型的效果。因此,以自
定义的方式对虚拟摄像机进行调整,可以很好地满足会议中人机工程学的需要,使用户能够利用更多的身体部位(头和手),同时实现各种虚拟摄像机移动的效果。
32.本公开的客户端设备或对等设备包括,电脑、耳机、手机、眼镜、透明屏幕、平板电脑和通常带有内置摄像机的输入设备,或可连接到摄像机并从所述摄像机接收数据的输入设备。
33.本公开的系统和方法中采用了多个系统体系结构,从而能够直接在对等设备之间或通过使用服务器来交换数据。下面描述的混合系统构架就是其中一种。
34.图1描述了一个系统示意图,根据一个实施例,所述系统100可在虚拟环境中,采用头部跟踪技术的媒介选择来实现视频通信。在一些实施例中,服务器从用户的视角选择要传递给用户设备的媒介选择,以便在设备上进行展示,有效地根据用户头部移动数据更新了用户的视角。
35.在图1所示的示例中,本公开的系统100包括一台或多台云服务器102,所述服务器包括至少一个处理器104和存储器106存储数据和指令,且构建至少一个虚拟环境108。一台或多台云服务器102配置为在至少一个虚拟环境108的3d坐标位置融入从彩色摄像机116获得的客户端设备114的用户112实时数据反馈产生的用户图像110,在至少一个虚拟环境108中更新用户图像110,并在虚拟环境108中实现实时多用户远程协作、通信和互动。在所描述的实施例中,将用户图像融入虚拟环境108以图像方式组合用户图像110,用户图像110出现在虚拟环境108中(例如,在指定的3d坐标位置)。每个用户图像110包括一个虚拟摄像机,所述摄像机从用户图像110的视角观看虚拟环境108,并通过对应的客户端设备114显示。一个或多个客户端设备114通过网络118通信连接到一个或多个云服务器102和至少一台摄像机116。更新的虚拟环境通过直接的p2p通信方式或通过一个或多个云服务器102间接地传输到客户端设备。
36.在图1中,两个用户112(例如,分别为用户a和b)正在访问虚拟环境108,并且通过他们对应的用户图像110(例如,分别为用户图像a和b)访问对应的客户端设备114(分别为客户端设备a和b)与其中的元素相互之间进行交流。虽然在图1中只描述了两个用户112、客户端设备114和用户图像110,但系统100可以使两个以上的用户112通过其对应客户端设备114的图像110进行彼此互动,下文将对此更详细地描述。
37.图1中还包括一个数据交换管理模块120和一个机器视觉模块122。在本公开中,模块指的是由系统100提供的功能的一个逻辑子集,所述功能使虚拟环境中的视频通信能够通过基于头部跟踪技术的媒介选择来实现,以存储在存储器106中的计算机程序形式实现,可由至少一个处理器104执行,或者包括根据需要对应的硬件元素(例如计算机电路、传感器等)以实现此类功能。系统100并不局限于当前模块,可能在不偏离本公开范围的情况下,列入其他模块。
38.从虚拟环境108中生成多个多媒体流数据,包括摄像机获得的多媒体流116,从一个或多个用户112中获取实时数据,从虚拟环境108中获取图像元素。因此,数据交换管理模块120管理3d虚拟环境108用户之间的媒体流交换,包括视频和音频数据的交换,以便能够在3d虚拟环境108中进行视频通信以及每个用户的头部跟踪元数据,下文将对此进行更详细的说明。这样的数据交换发生在通过网络118连接到服务器102的客户端设备114之间。在一些实施例中,数据交换管理模块配置为执行多种操作,包括分析和处理来自客户端设备
114的多媒体流数据,包括来自3d虚拟环境108的图像元素,以及调整多媒体流数据。在一个实施例中,包括根据从多个客户端设备114接收的传入数据评估和优化出站多媒体流的转发。出站多媒体流根据传入数据,例如用户优先数据和空间朝向数据,包括描述对应用户图像110和至少一个3d虚拟环境108内传入多媒体流的来源之间的空间关系的头部跟踪元数据,对单个客户端设备114进行了调整。在一个实施例中,传入数据与一个或多个用户图像与至少一个3d虚拟环境108的至少一个元素之间的空间关系相关联。
39.机器视觉模块122配置为对从数据交换管理模块120接收到的数据执行机器视觉操作。在图1的示例中,机器视觉模块122通过数据交换管理模块120从彩色摄像机a获取用户a的彩色图像帧;从彩色图像帧识别人脸关键点及其位置坐标;将用户图像a对应虚拟摄像机的视图与识别的人脸关键点的坐标关联;基于用户a头部移动跟踪人脸关键点的移动;根据跟踪的人脸关键点的移动调整虚拟摄像机的位置和朝向;基于虚拟摄像机的调整位置动态选择虚拟环境108的元素(例如,用户图像b和/或用户图像a的视域内的其他图像元素);并经由客户端设备a将选择的虚拟环境108元素展现给用户a。因此,可实现用户a可以在现实生活中移动其头部,从而使与用户a相关联的虚拟摄像机对应地移动和调整,从而提供真实的用户体验。用户a的头部移动产生头部跟踪元数据,所述元数据通过数据交换管理模块120发送到在虚拟环境108中具有对应的用户图像110的其他用户112的其他客户端设备114。
40.在一些实施例中,数据交换管理模块120接收客户端设备a的头部跟踪元数据,所述元数据包括响应对人脸关键点的跟踪移动而生成的信息(例如,从6个自由度跟踪头部移动信息(即,3个位置信息和3个朝向信息))。头部跟踪元数据包括由机器视觉模块122识别的人脸关键点坐标。数据交换管理模块120然后将头部跟踪元数据发送给机器视觉模块122,机器视觉模块122识别视域中对应客户端设备b的视域内的图像元素,其中识别的图像元素包括用户图像a,并将识别的图像元素发送给数据交换管理模块120。在视域中识别用户图像有助于确定将根据头部跟踪元数据更新哪些用户图像。数据交换管理模块120然后通过网络118(例如,使用适当的视频和音频通道)发送给客户端设备b,所述数据包括用户图像a的头部跟踪元数据。然后,客户端设备b使用头部跟踪元数据来调整用户图像a头部移动,渲染后显示用户图像a和对应图像元素的视图。
41.可以采用头部跟踪来调整头部被跟踪的用户视图,而无需将所述元数据发送到其他客户端设备。例如,服务器通过更新这些视图中对应用户图像的定位或朝向,来反映被跟踪用户的头部移动,而不向其他客户端设备提供底层的头部跟踪元数据。然而,在以上描述的实施例中,向其他客户端设备发送元数据允许其他用户看到正确的面部或头部朝向,同时也允许其他客户端设备知道被跟踪用户的脸的实际3d位置,这可以告知被跟踪用户的注意力方位,而非简单地反映用户选择指向其虚拟摄像机的方位。
42.在一些实施例中,元数据被发送到服务器或者服务器系统中,中继传输到一个或多个其他客户端设备。服务器或服务器系统可以是选择性转发单元(sfu)或多点控制单元(mcu)。或者元数据通过点对点(p2p)协议直接发送到其他客户端设备。在一些实施例中,基于所述情况选择了向其他客户端设备提供元数据的方法,并且通过例如数据交换管理模块进行确定。这一确定可能取决于所涉及的用户数量:当用户人数少(例如,10人或以下)时,使用p2p;当用户人数多(例如,11到30之间)时,使用sfu;当用户人数更多(超过30)时,使用
mcu。在一些实施例中,基于确定的用户数量对应于在视域中可见的用户数量。确定如何将元数据发送到其他设备,或者是否完全将元数据发送到其他设备,也可以基于其他因素,如与其他用户图像的距离。例如,如果其他用户图像,在与正被跟踪头部移动的用户对应的用户图像的阈值距离之外,则与这些其他用户图像对应的客户端设备可能无法接收元数据更新,并且在确定给其他客户端设备提供元数据更新时可能不被纳入计算。
43.在一些情况下,通过使用p2p协议将元数据发送给其他客户端设备,同时也向服务器提供元数据,使用综合方法可能会有帮助。例如,可以在注重效率或减少延迟的情况下采用p2p,而如果可靠性更重要且带宽允许,则可以使用冗余方法,使用p2p方法,服务器还可接收并发送元数据到其他客户端设备。
44.虽然在图1中只显示了两个用户,但本公开中的3d虚拟环境108可以承载数十个至数百个用户图像。为了简便起见,将使用两个或多个用户来描述上面详细介绍的过程,例如,第一和第二个用户。在这些实施例中,数据交换管理模块120接收第一个用户图像110的头部跟踪元数据,包括从6个自由度跟踪人脸关键点移动而生成的移动信息;将头部跟踪元数据发送到机器视觉模块122,所述模块识别第二个用户图像110的视域内的图像元素,并将识别的图像元素发送到数据交换管理模块120。数据交换管理模块120使用适当的视频和音频通道通过网络118发送到第二个客户端设备114,数据中包括第一个用户图像110的头部跟踪元数据。然后,第二个客户端设备114使用头部跟踪元数据来调整第一个用户图像110的识别用户图像的头部移动,渲染并展示识别的第一个用户图像和对应图像元素的调整后的图像。
45.如以上示例所述,跟踪人脸关键点的移动,包括3个平移度和3个朝向度,使虚拟摄像机的位置和朝向在6个自由度中进行相应的调整。在进一步的实施例中,机器视觉模块122对一个或多个自由度设定阈值,以限制对虚拟摄像机位置和朝向的调整。
46.在一个实施例中,设定阈值,使得头部在每个自由度中的移动只有在达到阈值之后才引起虚拟摄像机对应的位置变化。例如,假设设定2度的阈值,如果用户a将头部向右移动1度,则可以不调整对应的用户图像a的虚拟摄像机,使用户a能够集中于会议而不移动3d虚拟环境108中的视角。同样地,在本示例中,不需要从用户b的视角对用户a的头部位置和朝向进行调整。
47.在另一实施例中,设定了阈值,使得在达到阈值后停止与头部在每个自由度中的移动相关联的虚拟摄像机的移动。例如,假设设定30度的阈值,如果用户a将其头部向右移动31度,那么对应的用户图像a的虚拟摄像机可能不被调整,因为来自用户a的视图可能已经超出了显示3d虚拟环境108的屏幕。同样,在本示例中,用户a头部从用户b角度的位置和朝向在超过右侧30度后不能再进行调整。
48.在一个实施例中,系统100设定了一个或多个自由度的乘数值,使得虚拟摄像机相对于头部的每个移动的移动量增加。例如,假设设定乘数6,如果用户a其头部向右移动5度,那么对应用户图像a的虚拟摄像机其头部向右移动30度。在一些实施例中,自由度的每个轴的乘数值不同。例如,乘数可以应用成使得它们在x轴中提供过多的输入和在y轴中提供过少的输入,允许在x轴上的轻微头部移动,使虚拟摄像机沿x轴的较长移动距离,以及在虚拟摄像机中沿y轴的较短移动距离。
49.在一些实施例中,系统100使虚拟摄像机相对于人脸关键点的跟踪移动的位置和
朝向进行反向调整。例如,如果用户a的头部向左旋转,则由用户图像a所体现的对应虚拟摄像机将会对应地向右移动。
50.在一些实施例中,3d虚拟环境108包括在一个排列几何体中的用户图像和其相应的虚拟摄像机的位置。例如,所述几何体可以是一个圆形或椭圆形的几何体。在这个实施方案中,每个用户112的虚拟摄像机的位置和朝向的调整是根据用户112的人脸关键点的水平移动或旋转来控制的,使得虚拟摄像机在几何体中排列的预定路径上移动。换句话说,当用户112向左或向右移动其的头部时,头部的水平移动与虚拟摄像机沿预定路径的水平移动相关联。因此,当用户112将其的头转向左边或右边时,虚拟摄像机的运动可以沿着几何体的路径连续旋转,直到用户将其的头部移回中央位置。这可以使用户112自由地使用其手来键入内容,点击虚拟世界中的元素或用户图像,或做任何类型的可以需要手的工作,同时虚拟摄像机在水平面上移动到所需的位置。在一些实施例中,客户端设备114可以是移动设备、个人电脑、游戏机、媒体中心和头戴式显示器等中的一个或多个。摄像机116可以是二维或三维摄像机、360度摄像机、网络摄像机、rgbd摄像机、cctv摄像机、专业摄像机、手机摄像机、景深摄像机(例如,激光雷达)或光场摄像机中的一个或多个。
51.在一些实施例中,虚拟环境108是指通过计算机辅助绘图(cad)方法通过任何合适的3d建模技术设计的虚拟结构(例如,虚拟模型)。在进一步的实施例中,虚拟环境108指从真实结构(例如,物理室)通过任何合适的扫描工具扫描的虚拟结构,所述扫描工具包括通过各种照片、视频、深度测量和/或同时位置和映射(slam)扫描输入的图像扫描管道,以生成虚拟环境108。例如,雷达成像,如合成孔径雷达、实孔径雷达、光探测和测距(激光雷达)、反孔径雷达、单脉冲雷达和其他类型的成像技术,可用于绘制和建模真实世界的结构,并将它们转化为虚拟环境108。在其他实施例中,虚拟环境108是以真实结构(例如,真实世界中的房间、建筑或设施)为模型的虚拟结构。
52.在一些实施例中,客户端设备114和至少一个云服务器102通过有线或无线网络进行连接。在一些实施例中,所述网络包括毫米波(mmw)或mmw和子6ghz通信系统的组合,例如第5代无线系统通信(5g)。在其他实施例中,所述系统通过无线局域网(wi-fi)进行连接。在其他实施例中,所述系统通过第四代无线系统通信(4g)进行通信连接,可以由4g通信系统支持,或者可能包括其他有线或无线通信系统。
53.在一些实施例中,用户图像表示的生成、更新、嵌人选定的虚拟环境108和与之结合这一过程,包括了对用户图像表示110进行处理和渲染,是由至少一个客户端设备114在接收用户112的实时数据馈送时执行的。一个或多个云服务器计算机102可以接收客户端渲染的用户图像110,将客户端渲染的用户图像110融入到虚拟环境108的三维坐标中,将融入的用户图像110与虚拟环境108相结合,然后继续将客户端渲染的用户图像110传送到接收客户端设备114。例如,如图1所示,客户端设备a可以从各自的摄像机116接收实时数据反馈,可以处理和渲染来自实时数据反馈114的数据,生成用户图像a,然后可以将客户端渲染的用户图像a传输到至少一个云服务器计算机102,所述计算机可以在将用户图像a传输给客户端设备b之前将用户图像a定位在虚拟环境108的三维坐标中。类似的过程适用于客户端设备b和来自用户b的用户图形代表b,因此两个用户图形代表a和b可以在虚拟环境a中相互查看并进行互动。
54.在一些实施例中,由一个或多个云服务器计算机102的至少一个处理器104在客户
端设备114发送用户112未处理的实时数据反馈114时,执行包括用户图像110的生成、更新和融入以及与虚拟环境108结合的处理和渲染。因此,一个或多个云服务器计算机102从客户端设备114接收用户112的未经处理的实时数据反馈114,然后从未经处理的实时数据反馈生成、处理和渲染用户图像110,所述图像110被定位在虚拟环境108的三维坐标内,然后将虚拟环境内的云渲染用户图像传输给其他客户端设备114。例如,如图1所示,客户端设备a可以从各自的摄像机116接收实时数据反馈114,然后可以将未经处理的用户实时数据反馈114传输到至少一个云服务器计算机102,所述计算机可以生成、处理和渲染用户图像a,并在将用户图像a传输到客户端设备b之前将其定位在虚拟环境108的三维坐标中。一个类似的过程适用于客户端设备b和来自用户b的用户图像,因此用户图像a和b都可以在虚拟环境a中相互查看并进行互动。
55.在一些实施例中,用户图像110是一个用户3d虚拟头像,所述头像由用户上传的或第三方来源(例如,来自社交媒体网站)的照片构成,或者是一个用户实时3d虚拟头像,其中包括用户112的实时视频流(已去除背景)、视频(已去除背景)或视频(未去除背景)。在进一步的实施例中,客户端设备114通过处理和分析用户112的实时摄像机发送114生成用户图像110,生成动画数据,这些动画数据通过对等(p2p)系统架构或混合系统架构发送到其他对等客户端设备114。接收对等客户端设备114使用动画数据在本地构建和更新用户图像。
56.用户3d虚拟图像可能包括由用户上传或第三方2d照片构建的用户虚拟副本。在一个实施例中,采用用户上传或第三方2d照片来源作为输入数据,经机器视觉技术处理后,再通过3d虚拟重建来创建用户的3d虚拟图像,生成去除背景的用户的3d网格或3d点云。在一个实施例中,用户3d虚拟图像可以具有静态的面部表情。在另一实施例中,用户3d虚拟图像包括通过摄像机输入更新的面部表情。在另一个实施例中,用户3d虚拟图像包括通过用户图像界面上的按钮来改变,例如允许用户3d虚拟图像微笑、皱眉、严肃等的按钮。在另一个实施例中,用户3d虚拟图像使用上述技术的组合来显示面部表情。在生成用户3d虚拟图像之后,通过例如处理来自用户的摄像机输入来连续更新用户3d虚拟图像的状态和/或面部表情。然而,如果摄像机没有打开,用户3d虚拟图像可能仍然对其他具有不可用状态和静态面部表情的用户可见。例如,用户目前可能正专注于一项任务,可能不想被打扰(例如,处于“请勿打扰”或“忙”状态),因此要关闭摄像机。可以使用用于创建用户3d虚拟图像的3d人脸模型重建(例如,3d人脸拟合和纹理融合)技术,从而能清晰识别生成的用户图像。
57.用户实时3d虚拟图像包括基于从摄像机获得的实时2d或3d实时视频流数据源和去除用户背景之后的用户的虚拟副本。在一个实施例中,通过生成去除背景的用户的3d网格或者3d点云,通过机器视觉技术,通过3d虚拟重建过程创建用户实时3d虚拟图像。例如,可以从摄像机(例如,网络摄像机)的2d视频生成用户实时3d虚拟图像,可以经处理生成全息3d网格或3d点云。在另一个示例中,用户实时3d虚拟图像可以从来自景深摄像机(例如,激光雷达或任何深度摄像机)的3d视频生成,这些深度摄像机可以被处理以创建全息3d网格。因此,用户实时3d虚拟图像以3d图像方式实时地显示用户图像。
58.去除背景的视频可能包括传输到客户端设备的视频流,去除了视频中的背景,只看到用户,然后利用接收客户端设备上的多边形结构显示。没有去除背景的视频可能包括传输到客户端设备的视频流,视频如实地反映出摄像机捕获的内容,其中用户画面及其背景均可见,然后利用接收客户端设备上的多边形结构显示。多边形结构可以是四边形结构
或更复杂的3d结构,用作支持视频的虚拟框架。
59.没有去除背景的视频可能包括传输到客户端设备的视频流,其中视频忠实地代表了摄像机的拍摄,这样用户和其背景是可见的,然后利用接收客户端设备上的多边形结构显示。多边形结构可以是四边形结构或更复杂的3d结构,用作支持视频的虚拟框架。
60.在一些实施例中,作为实时数据发送和/或用户上传或第三方来源的2d照片中的输入数据的数据包括2d或3d图像数据、3d几何形状、视频数据、媒体数据、音频数据、文本数据、触觉数据、时间数据、3d实体、3d动态对象、文本数据、时间数据、元数据、优先级数据、安全数据、位置数据、照明数据、景深数据和红外数据等。
61.在一些实施例中,通过图像分割和使用深度神经网络来实现用户实时3d虚拟头像所需的背景去除过程,通过客户端设备114或至少一台云服务器102的一个或多个处理器执行指令来实现。图像分割是一种将数字图像划分为多个对象的过程,这有助于定位对象和边界,这些对象和边界可以将从用户112的实时数据发送114中获得的前景(例如,用户实时3d虚拟头像)与背景分开。可用于本公开实施例的样本图像分割可能包括可用的watershed转换算法,例如来自opencv的算法。
62.本公开中,可能用于去除背景的适当图像分割过程使用计算机视觉等人工智能(ai)技术来实现这种背景去除,并且可能包括实例分割和/或语义分割。实例分割为一个或多个对象类的每个单独实例提供了一个不同的标签。在一些示例中,实例分割是通过mask r-cnn执行的,它检测图像中的对象,例如从用户实时数据发送114同时为每个实例生成一个高质量的分割掩码,此外还添加了一个分支,用于预测对象掩码与用于边界框识别的现有分支并行。然后提取为用户和背景创建的分段掩码,并且可以去除背景。语义分割使用深度学习或深度神经网络(dnn)技术,实现自动背景去除过程。语义分割将图像划分为语义上有意义的部分,方法是根据预定义的规则,给每个像素一个或多个类别的类标签,例如颜色、纹理和流畅度。在一些例子中,语义分割可以利用完全卷积网络(fcn)训练的端到端、像素到像素的语义分割,这在evan shelhamer、jonathan long和trevor darrell在ieee transactions on pattern analysis andmachine intelligence,vol.39,no.4(april 2017)的文件《完全卷积网络用于语义分割》中公开,所述文件通过引用并入本文。在上述背景去除过程之后,用户面部和身体边界内的点云可能会保留下来,客户端设备114的一个或多个处理器或至少一台云服务器102可能会对其进行处理,以生成用户的3d网格或3d点云,可用于构建用户实时3d虚拟头像。然后,用户的实时3d虚拟头像将从116摄像机的实时数据114中更新。
63.图2a描述了一个流程200a的示意图,这是一种在虚拟环境中为视频通信提供基于头部跟踪的媒介选择的方法,说明了图1中系统元素之间的交互。相同的数字将用于表示与图1相同的元素。
64.在流程200中,用户112通过其客户端设备114访问虚拟环境108。此外,摄像机116获得用户112的彩色图像帧202,由数据交换管理模块120接收并发送到机器视觉模块122。机器视觉模块122实现了机器视觉算法,能够对接收到的图像数据执行多项操作。机器视觉模块122通过ai技术从彩色图像帧框中识别人脸关键点的坐标,如图2所示为块204。人脸关键点的志识别可用作人脸检测任务配置的计算机视觉方法,如opencv人脸检测方法、seetaface人脸检测方法、youtu人脸检测方法、viola-jones方法、基于区域的卷积神经网
络(r-cnn)、单镜头检测器(ssd)、连续自适应均值偏移算法(camshiff算法)等。在一个实施例中,机器视觉模块122使用blazepose算法的一个经过训练的变体,以高效率执行人脸关键点识别,同时减少计算量。blazepose算法是一个检测模型,可以计算来自人类目标的多个骨架关键点的3d坐标。它包括两个机器学习模型,一个检测器和一个评估器。探测器从图像中切割目标,而评估器将检测目标的256x256分辨率图像作为输入并输出用于头部跟踪的人脸关键点。
65.人脸关键点识别检测眼睛、眉毛、嘴巴、鼻子和鼻孔等特征及其坐标。人脸检测算法需要在包含数十万张图像的大型数据集上进行训练。虽然提供了一些样本人脸检测方法和算法,但目前公开的并不限于其中任何一种,任何涉及人脸关键点识别的合适的人脸检测机制都可能被使用。
66.在第206块中,机器视觉模块122将与用户图像相对应的虚拟摄像机的视图与已识别的人脸关键点的坐标相关联。然后,在第208块中,机器视觉模块122根据用户112的头部移动,以6个自由度(即平移3度和定向3度)跟踪人脸关键点的移动。跟踪人脸关键点的移动生成头部跟踪元数据210。在块212中,机器视觉模块122根据人脸关键点的跟踪移动来调整虚拟摄像机的位置和朝向。这种移动可包括使用者头部在6个自由度中任一自由度的移动。这种调整可能需要在任何朝向上旋转虚拟摄像机,以便从虚拟环境108中用户图像的视角显示变化。
67.在块214中,调整后的虚拟摄像机位置和朝向被发送到数据交换管理模块120,所述模块根据用户图像的虚拟摄像机位置和朝向的调整,动态选择虚拟环境108的元素。只要关键的面部地标发生移动,机器视觉模块122就会持续跟踪这些移动,调整虚拟摄像机的位置和朝向,并将调整后的虚拟摄像机位置和朝向发送到块208、212和214的数据交换管理模块。然后,数据交换管理模块120通过客户端设备114的显示将数据发送到虚拟环境,以便用户112可以在虚拟环境108中从其对应用户图像的视野中查看调整后的视角。头部跟踪元数据210进入流程的第二部分,正如节点a所表示的那样。
68.图2b展示了一种用于虚拟环境中视频通信的基于头部跟踪的媒介选择的流程200b的示意图,并展示了图1中系统元素之间的交互。图2b包括与图2a类似的元素,包括用户a通过客户端设备a访问虚拟环境208,以及通过数据交换管理模块120向机器视觉模块122发送彩色图像帧202的摄像机a。图2b还包括第二个用户b,也通过客户端设备b访问虚拟环境208。
69.从节点a开始,按照图2a的解释,在跟踪块208人脸关键点的移动时,生成包括6个自由度头部跟踪信息的头部跟踪元数据210,包括人脸关键点的坐标。用户b的客户端设备b还通过数据交换管理模块120将对应的用户图像b(未显示)的虚拟摄像机透视图216发送到机器视觉模块122。在块218中,机器视觉模块122识别用户图像b的虚拟摄像机视野内的图像元素,包括用户a的用户图像a(未显示)。
70.然后,头部跟踪元数据210和包含用户图像a的已识别图像元素被发送到交换管理模块120,换管理模块120接收后,将它们发送到客户端设备b。客户端设备b渲染并展现虚拟摄像机调整后的视图,包括至少一个第一用户的已识别用户图像和对应的图像元素,如块220所示。渲染通过本地渲染完成,可以使用云渲染技术,也可以使用基于web的支持渲染,例如通过合适的基于web的渲染引擎。一个合适的基于web的渲染引擎的示例可能是webgl
渲染引擎。因此,修改后的演示包括用户a的用户图像a的修改头部位置和朝向,如在虚拟环境208中通过客户端设备b向用户b显示的那样,通过其他参与者在虚拟环境中对应的用户图像来显示他们的头部动作,从而改善了用户体验,增加了交互的真实感,并展示了用户的图像。
71.图3描述了混合系统架构300的示意图,可用于使本公开的系统和方法能够根据实施例在虚拟环境中提供动态负载平衡。
72.混合系统架构300是用于与其他客户端设备302进行交互的混合通信模型,包括客户端-服务器端304和p2p协议306。使用这种混合通信模式可以使用户之间通过p2p协议快速通信,在提供web服务的同时减少延迟时间,到每个会话占用的数据和资源,并支持用户之间,用户与虚拟环境中的内容之间进行多项交互。
73.客户端-服务器端采用安全通信协议308,通过网络实现客户端设备302和web/应用服务器310之间的安全端到端通信。样本合适的安全通信协议308包括,例如,数据报传输层安全(dtls),其本身是安全用户数据报协议(udp),安全实时传输协议(srtp)、超文本传输协议安全(https://)和websocket安全(wss://),它们彼此兼容,并可以提供全双身份验证的应用程序访问、保护隐私和传输过程中交换数据的完整性。合适的web/应用服务器310包括,例如,jetty web应用服务器,它们是java http web服务器和java servlet容器,使机器之间的通信和web应用服务得到合理部署。其他合适的web/应用服务器310可能包括janus web服务器,所述服务器实现webrtc协议以建立与浏览器的媒体通信,交换json消息和转发实时传输协议/实时传输控制协议(rtp/rtcp)和浏览器和服务器端应用之间的消息。
74.尽管web/应用服务器310在图3中被描述为单个元素,但本领域的技术人员可能认为,web服务器和应用服务器可以是单独的元素。例如,web服务器可以配置为通过安全通信协议308接收客户端请求,并将这些请求经过路由器传送到应用服务器。因此,web/应用服务器310可以使用安全通信协议308接收客户端请求并处理这些请求,其中包括请求一个或多个微服务器312(例如,基于java的微服务)或使用对应的数据库管理系统316从数据库314中进行数据查找。web/应用服务器310可以提供会话管理和许多其他服务,例如3d场景内容和应用逻辑以及会话的状态持久性(例如,用于持久存储共享文档、同步虚拟环境中的信息交互和变更,或持久虚拟环境的视觉状态的调整)。合适的数据库管理系统316可以是对象关系映射(orm)数据库管理系统,它可能适用于使用开源服务器和商业(例如,专有)服务进行数据管理,鉴于orm能够使面向对象编程语言在不兼容类型系统之间转换数据的数据库管理。在进一步的实施例中,分布式空间数据总线318可以进一步使用作为微服务和客户端设备之间的分布式消息和资源的分发平台。
75.p2p端306可以采用合适的p2p通信协议320,通过合适的应用程序编程接口(api)实现虚拟环境中的对等客户端设备302之间的实时通信,实现实时交互和同步,从而实现多用户协作环境。例如,通过p2p端306,一个或多个用户的贡献可以直接传输给其他用户,后者可以实时观察所执行的更改。适合的p2p通信协议320的一个例子可能是web实时通信(webrtc)通信协议,它是标准、协议和javascript api的集合,结合起来,可以在对等客户端设备302之间实现p2p音频、视频和数据共享。p2p端306中的客户端设备302可以使用一个或多个渲染引擎322对实时会话进行实时3d渲染。合适的渲染引擎322的一个示例可能是基
于webgl的3d引擎,webgl是一个javascript api,用于在任何兼容的web浏览器中渲染2d和3d图像,而无需使用插件,从而允许客户端设备302的一个或多个处理器(例如,一个或多个图像处理单元(gpu))加速使用物理和图像处理和效果。此外,p2p端306中的客户端设备302通过一个或多个合适的计算机视觉库324执行图像和视频处理以及机器学习计算机视觉技术。一个合适的计算机视觉库324的例子可以是opencv,它是一个为实时计算机视觉任务配置的编程函数库。
76.客户端设备通过可下载或web应用程序328提供的图像用户界面326访问混合系统架构300的客户端-服务器端304和p2p协议306。
77.图4a-4e描述了一个实施例,使用本公开中基于头部跟踪技术的媒介选择的虚拟环境400的示意图,所述虚拟环境是基于图1-2b的d17709093 e22-03应用作为文件说明的。
78.图4a示出用户402直视摄像机,显示相关的直视虚拟摄像机404。表示用户在虚拟环境中的实际视野,与用户在现实生活中的头部位置相对应。
79.图4b示出用户402在摄像机前向左旋转头部,以展示与之相关的左视虚拟摄像机406。在这种情况下,用户的虚拟摄像机被移到了左侧,因此过去位于左侧的元素现在移到了右侧,以匹配用户的头部移动。例如,图4a,墙上写着“room”的408标志被从图片上去除,因为它位于最左边。在402用户将头向左移动后,同样的标志可以被完全看到,就像左侧视角的虚拟摄像机406视图中现在包含了整个标志一样。
80.如图4c示出用户402在摄像机前向右旋转头部,以显示与之相关的右侧的虚拟摄像机410。在这种情况下,用户402的虚拟摄像机410被移到了右侧,因此过去位于左侧的元素现在移到了左侧,以匹配用户的头部移动。例如,图4a,墙上写着“room”的408标志被从图片上去除,因为它位于最左边。在402用户将头向右移动后,408标志的所有字母都看不见了,因为看起来右侧的虚拟摄像机406没有把这个标志包括在视野中。
81.图4d示出用户402在摄像机前面向上转动其头部,以展示相关的向上看的虚拟摄像机412。在这种情况下,用户402的虚拟摄像机412已经向上移动,使得过去位于虚拟摄像机的视域透视图底部的元件现在已经向下移动,以匹配用户的头部移动。例如,图4a中,当用户402直视摄像机时,桌子的中心414完全可见,在用户402向上移动后,几乎从图4d中完全消失。
82.图4e示出用户402在摄像机前向下旋转头部,以显示一个相关的向下看的虚拟摄像机416。在这种情况下,用户402的虚拟摄像机416被向下移动,因此过去位于虚拟摄像机视野底部的元素现在向上移动,以匹配用户的头部移动。例如,当用户402在图4d中抬头看向摄像机时,表格中央的414不可见,现在图像的底部可见。
83.图5a-5c描述了一个虚拟环境500的示意图,使用了图1-2b中描述的本公开中基于头部跟踪技术的媒介选择,重点关注头部移动和z轴上对应的虚拟摄像机调整,从而实现了放大和缩小功能。
84.图5a示出用户502直视摄像机,没有任何类型的变焦功能,显示了一个相关的虚拟摄像机504。所述虚拟摄像机表示用户在虚拟环境中的实际视野,与用户在现实生活中的头部位置相对应。
85.如图5b示出,用户502向摄像机靠近,以显示相关的放大虚拟摄像机506。在这种情况下,用户502的虚拟摄像机506放大了,因此与图5a的虚拟摄像机504相比,用户502的虚拟
摄像机506视野内的元素看起来更大。例如,参考图5a和5b,图5b中的椅子508看起来比图5a中的大。
86.如图5c示出,用户502离开摄像机,显示相关的缩小虚拟摄像机510。在这种情况下,用户502的虚拟摄像机510缩小了,因此与图5a的虚拟摄像机504相比,用户502的虚拟摄像机506视野内的元素看起来更小。例如,图5a和5c,图5c中的508椅子看起来比图5a中的小。
87.在图5a-5c的实施例中,z轴(向前和向后)的头部移动非字面上映射到实现如图1所示的当前发明的机器视觉模块122的摄像机116的变焦功能,以便跟踪的人脸关键点来控制虚拟摄像机在达到预期效果的同时移动的距离或距离。如本实施例中提到的,“非字面”是指输入的头部跟踪信息和摄像机的实际调整之间存在分离以达到期望的效果。在一个实施例中,通过应用小车缩放效果来实现非字面映射,这是通过缩放虚拟摄像机以调整视角,同时虚拟摄像机小车或移动、朝向或远离虚拟环境中的元素来实现的摄像机内效果。例如,在图5a-5c中,虚拟摄像机配置为保持桌子512的边缘为恒定的焦平面,这可能适合于虚拟摄像机必须保持相对恒定的虚拟会议中的人体工学场景。
88.参考图4a-5c描述的所有实施例,可以对每个自由度、乘数值和反向移动应用设定阈值,以实现所需的效果,旨在增加用户体验的真实感和虚拟环境中的交互,详见图1。
89.图6a-6c描述了600a-600c方法的结构图,使基于头部跟踪的媒介选择的各种实施例能够用于本公开虚拟环境中的视频通信。方法600a-600c通过参考图1描述的系统100等系统实现,所述系统可以在3d虚拟环境的用户之间交换视频和音频数据,从而在3d虚拟环境中实现视频通信。
90.图6a描述了600a方法的结构图,所述方法能够为虚拟环境中的视频通信提供基于头部跟踪的媒介选择。方法600a从步骤602开始,构建一个供多个客户端设备访问的3d虚拟环境,每个客户端设备在3d虚拟环境中具有对应的用户图像,每个用户图像具有对应的虚拟摄像机,包括通过显示向客户端设备的对应用户展现的3d虚拟环境视图。方法600a继续执行步骤604,接收第一个客户端设备的头部跟踪元数据,所述设备包括6个自由度的头部跟踪信息,这些信息是根据人脸关键点的跟踪移动生成的。随后,在步骤606中,方法600a通过在至少第二个客户端设备的虚拟摄像机的视域内识别图像元素,其中识别的图像元素包括第一个用户的用户图像。然后,方法600a在步骤608中结束,至少向第二个客户端设备发送第一个客户端设备的头部跟踪元数据,所述元数据对应于第一个用户的已识别用户图像和已识别的图像元素。
91.图6b根据一个实施例描述了一个方法600b的结构图,所述方法能够为虚拟环境中的视频通信提供基于头部跟踪的媒介选择。方法600b从步骤610开始,至少由第二个客户端设备使用第一个客户端设备的头部跟踪元数据,所述元数据对应于方法600a的步骤608中接收的第一个用户的已识别用户图像,以调整第一个用户的已识别用户图像的头部移动。方法600b在区块612中结束,方法是渲染和展现至少第二个客户端设备的虚拟摄像机的修改表示,包括第一个用户的已识别用户图像和对应的图像元素。
92.图6c根据一个实施例描述了一个方法600c的结构图,所述方法能够为虚拟环境中的视频通信提供基于头部跟踪的媒介选择。方法600c从步骤614开始,将每个用户图像对应的虚拟摄像机视图与人脸关键点的坐标相关联。人脸关键点坐标是从对应的彩色摄像机发
送的每个用户的彩色图像帧中获取并识别生成的。然后,在步骤616中,方法600c基于用户头部移动,在6个自由度中跟踪人脸关键点的移动。在步骤618中,方法600c继续根据人脸关键点的跟踪移动调整虚拟摄像机的位置和朝向,然后根据虚拟摄像机的调整位置动态选择虚拟环境的元素,如步骤620所示。最后,方法600c在步骤622中结束,将虚拟环境的选定元素展现给用户。
93.描述了存储在计算机可读介质中的指令,这些指令配置为使一台或多台计算机执行本文所描述的方法。本文所用术语“计算机可读介质”包括以任何能够存储信息的方法或技术实现的易失性、非易失性、可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。通常,本文中描述的计算设备的功能可以实现在硬件或软件指令中包含的计算逻辑中,这些指令可以用编程语言编写,例如c、c++、cobol、java
tm
、php、perl、python、ruby、html、css、javascript、vbscript、aspx、microsoft.net
tm
语言,例如c#和/或类似的语言。计算逻辑可以被编译成可执行程序或用解释的编程语言编写。通常,本文中描述的功能可以实现为逻辑模块,这些模块可以复制以提供更大的处理能力,与其他模块合并,或分成子模块。计算逻辑可以存储在任何类型的计算机可读介质(例如,存储器或存储介质等非暂时性介质)或计算机存储设备中,并存储在一个或多个通用或特殊用途处理器上并由其执行,从而创建一个配置为提供本文功能的特殊用途计算设备。
94.虽然一些实施例已在附图中加以说明和展示,以上这些实施例说明仅仅是对发明的说明,而不是对发明的限制,而且所述发明并不限于所展示和描述的具体结构,因为对于本文中所属领域的技术人员可能会进行其他调整。因此,所述描述应被视为说明性的,而不是限制性的。

技术特征:
1.一种由计算机系统实现的视频通信的方法,所述方法包括:构建一个供多个客户端设备访问的所述3d虚拟环境,每个客户端设备在所述3d虚拟环境中具有对应的用户图像,每个用户图像具有对应的虚拟摄像机,通过显示器向客户端设备的对应用户展现3d虚拟环境视图,通过计算机系统,处于3d虚拟环境中的用户之间可进行视频和音频数据的交互,实现在所述3d虚拟环境中的视频通信;接收第一客户端设备的头部跟踪元数据,所述第一客户端设备包括6个自由度头部跟踪信息,来自所述第一客户端设备的第一用户的人脸视频中获得的人脸关键点的跟踪移动,其中第一虚拟摄像机包括展现给所述第一用户3d虚拟环境的视图;识别第二虚拟摄像机的视域内的图像元素,包括展现给第二客户端设备的第二用户的3d虚拟环境视图,其中识别的所述图像元素包括第一用户的用户图像;以及向所述第二客户端设备发送所述第一客户端设备的头部跟踪元数据和已识别的所述图像元素。2.如权利要求1所述的方法,其特征在于,包括:通过所述第二客户端设备,使用所述头部跟踪元数据调整所述第一用户的用户图像的头部移动;以及渲染并展现经所述第二虚拟摄像机调整后的视图,所述视图包括所述第一用户的用户图像和对应的图像元素。3.如权利要求1所述的方法,其特征在于,包括:将所述第一虚拟摄像机的视图与所述人脸关键点的坐标相关联;根据所述第一用户的头部移动,从6个自由度跟踪所述人脸关键点的移动;以及根据所述人脸关键点的跟踪移动,调整所述第一虚拟摄像机的位置和朝向。4.如权利要求3所述的方法,其特征在于,其中,一个或多个自由度的阈值限制所述虚拟摄像机的位置和朝向的调整。5.如权利要求4所述的方法,其特征在于,其中,头部在每个自由度中的移动只有在达到阈值后,所述虚拟摄像机的位置才发生对应变化。6.如权利要求4所述的方法,其特征在于,其中,在每个自由度中,与头部移动相关联的虚拟摄像机的移动在达到阈值后停止。7.如权利要求3所述的方法,其特征在于,包括将乘数值应用于一个或多个自由度,导致所述虚拟摄像机相对于头部的每个移动的移动量增加。8.如权利要求3所述的方法,其特征在于,包括根据所述人脸关键点的移动,反向调整所述虚拟摄像机的位置和朝向。9.如权利要求3所述的方法,其特征在于,其中,所述3d虚拟环境包括所述用户图像的位置及其对应的所述虚拟摄像机,其中所述虚拟摄像机的位置和朝向的调整是基于所述人脸关键点的水平旋转或横向移动控制的,使得所述虚拟摄像机可沿排列在几何体的预定路径移动。10.如权利要求3所述的方法,其特征在于,包括将所述第一虚拟摄像机的一个或多个移动轴与一个或多个头部移动相关联。
11.一种用于视频通信的系统,包括:计算机系统中的至少一台计算机,配备存储器和至少一个处理器,用于构建供多个客户端设备访问的3d虚拟环境,每台计算机在3d虚拟环境中具有对应的用户图像,每个所述用户图像具有对应的虚拟摄像机,通过显示器向客户端设备展现3d虚拟环境的视图;一个数据交换管理模块,通过所述存储器执行命令,并配置为接收第一客户端设备的头部跟踪元数据,所述客户端设备包括从6个自由度获得的头部跟踪信息,响应从所述第一客户端设备的第一用户的人脸视频中获得的人脸关键点的跟踪移动,其中,第一虚拟摄像机包括展现给所述第一用户3d虚拟环境视图;以及一个机器视觉模块,在所述存储器中实现,并配置为识别第二虚拟摄像机的视域内的图像元素,所述第二虚拟摄像机包括至少一个来自第二客户端设备的3d虚拟环境的视图,其中所识别的所述图像元素包括所述第一用户的用户图像,其中所述机器视觉模块进一步配置为通过所述数据交换管理模块将第一客户端设备的所述头部跟踪元数据和已识别的图像元素发送到所述第二客户端设备,所述系统能够在处于3d虚拟环境的用户之间进行视频和音频数据的交互,从而在所述3d虚拟环境中实现视频通信。12.如权利要求11所述的系统,其特征在于,其中,所述第二客户端设备配置为接收所述头部跟踪元数据以调整第一用户的用户图像的头部移动;并渲染和展现经所述第二虚拟摄像机调整后的视图,所述视图包括所述第一用户的用户图像和对应的图像元素。13.如权利要求11所述的系统,其特征在于,其中,从所述第一用户的彩色图像帧中获得并识别人脸关键点及其坐标。14.如权利要求11所述的系统,其特征在于,其中,所述机器视觉模块配置为:将第一虚拟摄像机的视图与所述人脸关键点的坐标相关联;根据第一用户的头部移动,从6个自由度跟踪所述人脸关键点的移动;以及根据所述人脸关键点的移动,调整所述第一虚拟摄像机的位置和朝向。15.如权利要求14所述的系统,其特征在于,其中,所述机器视觉模块对一个或多个自由度设定阈值,以限制所述虚拟摄像机的位置和朝向的调整。16.如权利要求15所述的系统,其特征在于,其中,所述机器视觉模块设定阈值,使头部在每个自由度中的移动只有在达到阈值后,虚拟摄像机的位置才会发生对应变化。17.如权利要求15所述的系统,其特征在于,其中,所述机器视觉模块设定阈值,以便在每个自由度中与头部移动相关联的虚拟摄像机移动到阈值后停止。18.如权利要求14所述的系统,其特征在于,其中,所述机器视觉模块设定了一个或多个自由度的乘数值,使虚拟摄像机相对于头部每个移动的移动量增加。19.如权利要求14所述的系统,其特征在于,
3d虚拟环境包括用户图像的位置及其对应的虚拟摄像机,其中,所述虚拟摄像机的位置和朝向的调整基于所述人脸关键点的水平旋转进行控制,使得虚拟摄像机沿几何体的预定路径移动。20.一种非暂时性计算机可读介质,其特征在于,在其上存储指令,使至少一个包括处理器和存储器的服务器执行以下操作步骤,包括:构建供多个客户端设备访问的3d虚拟环境,每个有对应的用户图像在3d虚拟环境中有对应的虚拟摄像机和用户图像,每个用户图像具有对应的虚拟摄像机可显示对应客户端设备的用户,其中至少一个服务器能够在3d虚拟环境的用户之间进行视频和音频数据的交互,进而实现3d虚拟环境中的视频通信;接收第一客户端设备的头部跟踪元数据,包括响应于所述第一客户端设备的第一用户的人脸视频中获得的人脸关键点的跟踪移动而产生的头部跟踪信息;识别第二客户端设备的虚拟摄像机的视域内的图像元素,其中识别的图像元素包括第一用户的用户图像;以及向第二客户端设备发送第一客户端设备的头部跟踪元数据和已识别的图像元素。

技术总结
一种基于头部跟踪技术的媒介选择,由电脑系统实现视频通信的方法。所述方法包括构建一个供多个客户端设备访问的3D虚拟环境,每个用户在3D虚拟环境中具有对应的用户图像,每个用户图像配备对应的虚拟摄像机;接收第一客户端设备的头部跟踪元数据,包括跟踪人脸关键点的移动而生成的6个自由度的头部跟踪信息;识别第二客户端设备虚拟摄像机的视域内的图像元素,所识别的图像元素包括第一用户的用户图像;并向第二客户端设备发送跟踪头部移动所得的元数据和所识别的图像元素。的元数据和所识别的图像元素。


技术研发人员:凯瓦特
受保护的技术使用者:明日基金知识产权控股有限公司
技术研发日:2023.03.30
技术公布日:2023/10/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐