向远程接收方传输实时视觉数据的制作方法

文档序号:20842543发布日期:2020-05-22 17:42阅读:343来源:国知局
向远程接收方传输实时视觉数据的制作方法

本发明一般涉及数字数据处理,尤其涉及用于管理向远程接收者显示的视觉数据的传输或流式传输的数字数据系统。



背景技术:

在二十世纪的后半叶,开始了被称为信息革命的现象。虽然信息革命是一种历史发展,其范围比任何一个事件或机器都更广,但是没有单个设备比数字电子计算机更能代表信息革命。计算机系统的发展无疑是一场革命。每年,计算机系统变得更快,存储更多数据,并向其用户提供更多应用。同时,计算资源的成本一直下降,使得几年前太昂贵而不能收集、存储和处理的信息对于经由计算机来处理在经济上是不可行的。信息处理的成本降低以滚雪球的效果推动生产率的提高,因为产品设计、制造工艺、资源调度、管理工作和许多其它任务变得更有效。

数字数据处理技术的应用是静止和运动视频形式的图像的捕获、存储、传输和其它处理。现在处理图像的各种应用是某种形式或另一种形式。对图像处理的需求如此之大,以至于标准的计算机系统现在配备有专用处理器和用于该目的其它硬件,并且大量的数字数据存储专用于存储静止和运动视频图像。

已经出现了实时传输视频数据以向远程接收方显示的各种应用。一个示例是电话会议应用,其中视频照相机通常被安装在指定房间的固定位置,并且照相机的视野内的空间的视频图像被发送到远程位置以显示给一个或多个会议参与者。早期的电话会议和类似的应用需要昂贵的硬件和软件,并且相应地在数量和使用上受到限制。随着照相机、处理器、传输带宽和相关资源的成本下降,涉及视频传输的应用的数量和可用性显著增加。

更近的应用类型与远程用户实时共享本地用户的视觉体验。例如,通过安装在可穿戴器具上,照相机在物理上适配于本地用户。当本地用户通过在结构周围移动、转动头部等改变他的视野时,照相机自动地跟随这些移动,使得照相机的视野接近本地用户的视野。由照相机捕获的视频被发送到远程用户,允许远程用户看到本地用户所看到的。例如,已经建议这样的应用可以用于远程诊断或修复设备,其中远程用户(专家)向本地用户(诸如房主)提供建议、分析和指导。

在进一步的示例中,快速增长的虚拟现实行业提供虚拟现实应用和虚拟现实实现硬件设备以用于娱乐或商业。硬件设备中有虚拟现实头戴式耳机,其可以包括集成的照相机、麦克风和显示器。显示器可以被投影在用户眼睛上方的透明屏幕上,从而允许用户透过屏幕观看并且同时看到投影在显示器上的图像。或者,可以以遮蔽用户视野的方式投影或显示所显示的图像,从而允许用户仅看到显示器所提供的内容。虚拟现实应用可以通过将本地用户看到的视频实时地发送给远程用户来允许远程用户沉浸在本地用户的体验中。这样的虚拟现实环境可以用于娱乐、或各种虚拟供应商上门服务(housecall)应用中的任何一个或其它方面。



技术实现要素:

一种远程视觉体验应用,其将由可移动照相机捕获的视频数据实时地发送到远程接收方,该远程视觉体验应用包括过滤器,当空间中的一个或多个先前标识的区域进入照相机的视野内时,该过滤器使这些区域变遮蔽。

在一个或多个实施例中,不一定是本发明的仅有实施例,远程视觉体验应用是共享视觉体验应用,其中照相机被安装到本地用户的可穿戴装置。当本地用户改变照相机的方向和/或位置时,应用自动标识不应向共享本地用户的视觉体验的远程接收方显示的区域,并使这些区域在传送到远程接收方的视频流中被遮挡。

在一个或多个实施例中,不一定是本发明的仅有实施例,远程视觉体验应用旨在用于用户的家中,并且过滤器保护家中的隐私区域或对象不被显示给第三方。

在一个或多个实施例中,不一定是本发明的仅有实施例,远程视觉体验应用进一步包括映射实用程序,用户通过该映射实用程序映射将在其中使用该应用的空间的各个区域,诸如家庭、企业或其他空间内或周围的空间,并且定义对该空间的不同区域的不同级别的远程访问。

在一个或多个实施例中,不一定是本发明的仅有实施例,用户定义空间的一个或多个默认远程访问属性,并且定义空间的一个或多个标识区域的默认的一个或多个例外。例外可以扩大或缩小远程用户观看在异常区域内的视频的能力。例如,用户可以指定对于至少一类远程观看者,除了一个或多个定义区域之外的整个空间将被遮蔽而不能观看。

空间可以在远程视觉体验应用执行之前通过向远程用户发送视频或者与向远程用户发送视频同时地被映射。可以通过在照相机、方向感测装置、位置感测装置和/或距离测量装置被激活的情况下走过空间的各个区域来执行映射。应用可以在步行通过期间使用传感器数据自动地生成空间的映射。对于多个区域中的每一个,用户可以通过语音命令、键输入、手势等来指定对应的隐私级别。

在示例性实施例中,远程视觉体验应用是虚拟供应商上门服务应用,其中家庭内的本地用户(例如,房主或租赁者)向远程用户提供视频并从远程用户获得帮助。应用的目的是使本地用户能够获得远程用户的服务,而不需要远程用户的实际存在。远程用户可以是从事提供服务业务的专家,或者可以是具有一些有限专业知识的朋友、家庭成员等。作为说明而非限制,所提供的服务可以涉及对家庭或内容物的修理或改进(例如,管道、电气、器具修理、木工等),或者可以涉及许多其它服务中的任何服务,诸如包括紧急服务、教育服务、园艺服务、兽医服务或其他宠物护理的医疗/护理服务、运动训练、烹饪服务等。在一个实施例中,本地用户佩戴安装照相机的器具,并且允许移动用户看到本地用户所看到的。远程用户可以指导本地用户执行某些操作、观看某些方向等,以便提供建议和帮助。在这样做时,本地用户可以在缺少如本文所公开的视频过滤机制的情况下向远程用户暴露与执行远程用户的所请求服务无关或不需要执行远程用户的所请求服务具有的隐私或敏感性质的信息。

在替代示例性实施例中,虚拟供应商上门服务不限于作为房主或家庭居住者的本地用户,而是可以用于向商业实体提供各种服务中的任何服务。这些服务可以包括由房主使用的一些相同类型的服务(管道、电气、园艺等),或者可以是通常仅由企业使用的其它服务,诸如过程监测或分析,雇员培训或认证,针对适用法律、劳务合同等的合规审计。

在另一示例性实施例中,远程视觉体验应用是可由共享视频信息的儿童或成人玩的游戏或其它娱乐,其中参与者可自由地漫步通过空间,并且在缺少如本文所公开的视频过滤机制的情况下,无意地捕捉和传送具有敏感或隐私性质的视频图像。

在一个替代实施例中,滤波装置还可以对发送给远程用户的视频信号的音频部分进行滤波。

通过根据预先指定的方向选择性地过滤空间的区域,当向远程观看者提供视频时,无意地或故意地引起的隐私或敏感信息公开的风险被实质上降低,从而增强用户隐私。此外,这样的隐私增强可以给予提供远程视频的各种虚拟现实或其它应用中的任何一个更广泛的接受和使用,从而提高提供和接收服务的效率、降低成本或简单地增强娱乐体验。

参照附图,可以最好地理解对于本发明的结构和操作的细节,其中相同的附图标记表示相同的部件,其中:

附图说明

图1示出了根据各种实施例的用于执行远程视觉体验应用的虚拟供应商上门服务环境。

图2是根据各种实施例的代表性通用计算机系统的主要硬件组件的高级框图,该通用计算机系统可用于执行若干功能元件中的任何一个的作用。

图3是根据各种实施例的支持远程视觉体验应用的本地计算机系统的存储器中的某些软件组件的概念图示。

图4是根据各种实施例的用于支持远程视觉体验应用的空间图数据结构的概念表示。

图5是根据各种实施例的用于支持远程视觉体验应用的简档数据结构的概念表示。

图6是在高层级示出根据各种实施例的由远程视觉体验应用执行的过程的流程图。

图7是更详细地示出根据各实施例的生成本地空间的空间图的过程的流程图,其中远程视觉体验在该本地空间内操作。

图8是更详细地说明根据各种实施例确定x-y-z参考坐标系和所述参考系中的多个参考点的坐标的过程的流程图。

图9是更详细地示出根据各种实施例的确定在照相机视野内的空间的限定区域的过程的流程图。

具体实施方式

远程视觉体验环境

参考附图,其中在贯穿若干视图中相同的标号表示相同的部分,图1是根据一个或多个实施例的示例性虚拟供应商上门服务环境的高层级图示,其中在一个或多个计算机系统上执行的应用程序支持远程视觉体验。参考图1,存在本地环境101,其中本地用户102可以在空间附近移动并感知该空间内的对象。在示例性实施例中,本地环境是用户家中的空间,尽管本地环境可以是一些其它空间,诸如商业场所内的空间。本地用户102将可移动视频照相机103引导到本地用户环境中的一个或多个关注对象120。在图1的示例中,关注对象包括水槽和相关管道组件,可以理解,关注对象可以包括本地环境中的各种对象。由照相机103生成的视频数据被传输到支持远程视觉体验应用的本地计算机系统105,在这个实例中,远程视觉体验应用是虚拟供应商上门服务应用,其进一步通过网络106将视频数据传输到远程计算机系统107。远程系统107包括显示器108,其将从照相机103获得的视频图像呈现给远程用户109。

在一个或多个实施例中,一个或多个参考标记112定位于局部环境内以使得应用程序能够确定照相机103的位置和/或取向。在一个或多个替代实施例中,使用不需要参考标记的替代手段来确定照相机103的位置和/或取向。

在一个或多个实施例中,视频照相机103是可穿戴装置104的一部分,其将照相机安装在接近穿戴者(即,本地用户)的视野或视线方向的取向上,并且经由无线通信链路与本地系统105通信。例如,视频照相机103可以是佩戴在头部上的头盔装置的一部分,并且其跟随佩戴者的头部移动以近似佩戴者的视线方向。这种装置可以包括用于检测视频照相机的位置和取向的传感器。这种装置可以是简单的照相机,其被安装为与佩戴者头部的取向一致。或者,它可以是覆盖佩戴者的眼睛的各种所谓的虚拟现实头戴式耳机中的任一种,并且其中用户自己的视野被由头戴式耳机显示给佩戴者的计算机生成数据完全或部分地遮蔽或修改。例如,这样的头戴式耳机可能完全遮蔽佩戴者的视线,使得佩戴者仅能看到由视频照相机生成的图像(并且因此远程用户和本地用户看到完全相同的图像),或者可以将计算机生成图像叠加在佩戴者透过透明屏幕看到的图像上,使得用户的视觉仅被部分阻挡。这样的头戴式耳机可以包括用于更准确地跟踪佩戴者的眼睛运动的传感器。

优选地,远程视觉体验应用在本地用户与远程用户之间提供某种层级的双向通信。例如,可以在本地用户102的头戴式耳机104中安装麦克风,并且另一个麦克风附接到远程系统107,使得本地用户102和远程用户109能够经由语音链路连接,使得每个用户能够听到另一个用户的语音并且对其进行响应。进一步可能的是,视频图像在被双向发送,使得本地用户可以在耦合到本地系统105的显示器110上看到来自远程用户的视频图像。例如,远程用户可以位于固定的视频照相机的前面以供本地用户观看。双向通信在这种应用中通常是有用的,以便本地用户可以从远程用户接收命令或建议并对其作出响应。特别地,这样的命令可以包括将用户的视野引导到指定事物的请求,从而允许远程用户看到本地用户的环境中的各种对象中的任何对象。

网络106可以是因特网,或者可以是一些其它网络或网络的组合。在一个或多个实施例中,耦合到网络106的服务器系统111支持远程视觉体验应用。服务器系统111例如可以维护网站,多个远程客户端通过该网站登录并且建立连接以便实时传输视频和其它数据,作为远程视觉体验应用的一部分。在一个或多个实施例中,本地系统105和远程系统108之间的视频信号和/或其它通信通过服务器系统111路由。在一个或多个其它实施例中,服务器系统充当用于验证各方的身份并建立一个或多个连接的代理,并且一旦建立,视频和/或其它数据就可以在本地系统与远程系统之间直接传输,而无需通过服务器。服务器系统111在此被表示和描述为执行各种功能的单个计算机系统,但是将理解,由服务器系统执行的动作可以替代地由多个计算机系统执行,并且在各种集群计算布置或云计算中的任何一种中是已知的。

尽管为了说明的目的,在此示出和描述了单个本地用户和单个远程用户,但是可以存在多个本地和/或多个远程用户,其可以共享相应的本地和远程系统,或者其可以使用不同的相应系统。另外,多个远程系统可以位于彼此远离的多个不同位置。

尽管在图1中示出了其中本地用户从远程用户获得对家庭修理的帮助的示例性虚拟供应商上门服务实施例,但是将理解,根据本发明的远程视觉体验应用不一定限于虚拟供应商上门服务实施例,并且可以包括各种备选实施例,其可以涉及由远程用户向本地用户提供其他服务,或者可以涉及游戏或其他娱乐,其中各种用户以对等关系操作并且彼此娱乐,或者可以涉及各种其它应用中的任何应用。

计算机系统硬件组件

图2是代表性通用计算机系统200的主要硬件组件的高层级框图。在一个或多个实施例中,本地计算机系统105、远程计算机系统107和服务器计算机系统111各自在物理上被实现为相应的一个或多个通用计算机系统,系统200是任何这样的通用计算机系统的表示。

计算机系统200包括一个或多个通用可编程处理器(cpu)201,其执行指令并处理来自主存储器202的数据。主存储器202优选地是易失性随机存取存储器,其包括使用各种存储器技术中的任一种的至少一个(通常是多个)半导体集成电路芯片模块,其中从存储装置或以其它方式加载数据以供(多个)cpu201处理。

一个或多个通信总线205提供用于在(多个)cpu201、主存储器202和各种接口单元211、212、213之间传送数据的数据通信路径,所述接口单元也可以被称为i/o处理器(iop)或i/o适配器(ioa)。接口单元支持与各种存储、i/o设备和/或网络的通信。例如,(多个)存储接口单元211支持一个或多个存储设备221-223的附接,所述存储设备提供对可以根据需要加载到存储器中的数据的非易失性存储。这样的存储设备可以包括公知的旋转磁性硬盘驱动器存储设备、固态设备(ssd)、可移除存储卡、光学存储、闪存等,并且还可以包括网络附接存储(nas)、经由存储区域网络(san)附接的设备、和/或被配置为对于主机表现为单个大型存储设备的盘驱动器阵列和/或其他存储设备。存储装置还可以包括可经由一个或多个网络访问的云存储设备。(多个)i/o设备接口单元212可以支持各种其它类型的i/o设备中的任何一种的附接,诸如用户终端、显示器、键盘或其他输入设备、打印机等等,应当理解,可以使用其它或附加类型的i/o设备。(多个)网络接口适配器213可以支持到一个或多个外部网络的连接,以便与一个或多个其它数字设备通信,并且特别地,支持到网络106的连接以便与图1中表示的设备通信。(多个)网络适配器213可以支持到单个网络的冗余连接,或者可以耦合到单独的网络,这些网络可以彼此通信或者可以不彼此通信。这样的外部网络优选地包括因特网,并且可以包括一个或多个中间网络,例如局域网,通过这些网络实现与因特网的通信。

应当理解,图2旨在以高层级描述通用计算机系统200的代表性主要组件,各个组件可以具有比图2中所表示的更大的复杂性,可以存在不同于图2中所示的组件或除其之外的组件,这些组件的数量、类型和配置可以改变,并且复杂的计算机系统通常将具有比图2中所表示的更多的组件。本文公开了这种附加复杂性或附加变化的若干特定示例,应当理解,这些示例仅作为示例,而不一定是仅有的这种变化。

尽管在图2中为了说明的目的仅示出了单个cpu201,但是如本领域所公知,计算机系统200可以包含多个cpu。尽管主存储器202在图2中被示为单个单片实体,但是如本领域所公知的,存储器202实际上可以是分布式的和/或分级的。例如,存储器可以存在于多层级高速缓存中,并且这些高速缓存可以进一步按功能划分,使得一个高速缓存保存指令,而另一个高速缓存保存由一个或多个处理器使用的非指令数据。存储器还可以是分布式的,并且与不同的cpu或cpu组相关联,如在各种所谓的非均匀存储器存取(numa)计算机体系结构中的任何一种中所公知的。尽管通信总线205在图2中被示为单个实体,但是实际上,各种系统组件之间的通信通常通过总线、接口等的复杂分层结构来实现,其中高速路径用于(多个)cpu201与存储器202之间的通信,而低速路径用于与i/o接口单元211-213的通信。总线205可以以各种形式中的任何形式来布置,诸如分层、星形或网状配置中的点对点链路、多个分层总线、并行和冗余路径等。例如,如在numa体系结构中已知的,通信路径是在节点的基础上布置的。总线可以使用例如工业标准pci总线或任何其它适当的总线技术。虽然示出了多个i/o接口单元,其将总线205与延伸到各种i/o设备的各种通信路径分离,但是可替换地,可以将一些或所有i/o设备直接连接到一个或多个系统总线。尽管图1将网络106表示为单个实体,但是在一个或多个实施例中,可以存在单独的网络或存储总线,用于与一个或多个共享存储服务器通信,并且这种通信可以由与通用网络适配器213分离的专用的一个或多个存储接口单元211驱动。

图2中描述的计算机系统200可以包括多个连接的终端,诸如可以是典型的多用户“大型机”计算机系统。在计算机系统200是在用户住宅中个人使用的本地计算机系统105的情况下,它通常是具有单个显示器110的独立单元,诸如台式或膝上型个人计算机。在计算机系统200是服务器计算机系统111的情况下,它可以仅包含有限数量的终端,或者甚至包含单个终端,例如以便由系统管理员等用作维护接口,或者在一些情况下根本没有终端,管理功能被远程执行。在计算机系统200是远程计算机系统107的情况下,其大小和配置可以取决于采用远程用户109的业务规模;例如,诸如个人水管工或零工的小型企业可以具有诸如台式机或膝上型计算机的独立的个人计算机,而较大的企业可以使用包括多个终端或计算机的更复杂的系统,所述多个终端或计算机可以经由局域网连接。应当理解,图2的图示旨在表示计算机系统的一般硬件能力,并且具体配置的许多变化是可能的。此外,尽管为了说明的目的,在此描述了如在单个计算机系统中实现的某些功能,但是这些功能中的一些或全部可以替代地使用彼此通信的计算机系统的分布式网络来实现,其中在不同的计算机系统上执行在此描述的不同功能或步骤。

尽管本地系统105、远程系统107和服务器系统111在图1-2中表示为完全独立的系统,但是这些实体中的任何一个或全部可以实现为一个或多个逻辑分区的计算机系统的相应逻辑分区。例如,cpu201中的任何一个实际上可以是分配给相应逻辑分区的较大逻辑分区计算机系统的处理资源容量的相应部分;并且存储器202实际上可以是分配给相应逻辑分区的较大逻辑分区计算机系统的存储器容量的相应部分。

虽然在高层级描述和示出了各种系统组件,但是应当理解,典型的计算机系统包含许多未示出的其他组件,这些组件对于理解本发明不是必需的。

远程视觉体验应用

图3是更详细地示出根据各种实施例的支持远程视觉体验应用并且具体地支持虚拟供应商上门服务应用的本地计算机系统105的存储器300中的某些软件组件的概念图示。如图3所示,代表性本地系统存储器包括操作系统内核301、远程视觉体验应用311的本地副本或代理、以及某些共享的远程视觉体验应用数据321。

操作系统内核301是提供各种低层级软件功能的可执行代码和状态数据,所述低层级软件功能诸如设备接口、存储器页面的管理、多任务的管理和分派、应用程序的公共服务等,如本领域所公知的。特别地,os内核301优选地包括一个或多个网络适配器驱动器302,用于处理经由(多个)网络接口213与包括网络106的一个或多个网络的通信。os内核进一步优选地包括一个或多个i/o设备驱动器,用于处理与视频照相机103、麦克风、位置/取向传感器、显示器或其他i/o设备的通信;这些在图3中表示为头戴式耳机驱动器303,应当理解,可以存在具有单个接口的单个集成头戴式耳机或具有单独接口的多个i/o设备。

远程视觉体验应用311包括用于执行支持远程视觉体验应用的各种功能的可执行代码。例如,远程视觉体验应用执行各种常规功能中的任何功能,诸如从照相机103或本地麦克风接收视频和/或音频数据、将视频/音频数据传送到服务器系统111和/或远程系统108、以及经由显示器110或其它i/o设备向用户显示/呈现从远程系统108接收的视频/音频数据。远程视觉体验应用311生成和/或引用各种远程视觉体验应用数据321。在一个或多个实施例中,远程视觉体验应用311还包括取向功能312、空间图生成器功能313、运行映射功能314和遮蔽功能315。

取向功能312从照相机103和/或一个或多个本地位置传感器接收数据,并且根据传感器数据确定照相机103的聚焦位置和方向。空间图生成器功能313生成本地三维(3d)空间的图,并且将空间图324存储在远程视觉体验应用数据321中。运行映射功能314在运行时确定空间图中的哪些特征当前在照相机的视野内,并将它们的位置映射到视频图像。遮蔽功能315使用预先指定的简档数据323来标识由空间图324映射的3d空间中的区域,该区域将被遮蔽以免于远程用户观看,并且修改原始视频数据以遮蔽视频图像或其部分,该视频图像或其部分包括将被遮蔽的区域。

在一个或多个实施例中,远程视觉体验应用数据321包括状态数据322、简档数据323、空间图324、原始视频缓冲器325和经处理的视频缓冲器326。状态数据322包括指定当前程序状态的数据,并且特别地,包括指定照相机103的当前位置/取向的数据。状态数据可包括操作远程视觉体验应用所需的各种附加数据中的任一种,诸如各方的标识、连接状态、指示已经发送和接收了什么数据的缓冲区指针等等。简档数据可以包括指定远程视觉体验应用的优选或默认操作参数的各种数据。具体地,在一个或多个实施例中,简档数据包括指定如何将由空间图324定义的不同空间区域的视频数据呈现给不同用户的数据。空间图324包括标识远程视觉体验应用旨在在其中操作的一个或多个空间的边界和重要特征的数据,即,它接收、处理和发送视频数据的空间。原始视频缓冲器325是其中暂时存储从照相机103接收的视频数据以待远程视觉体验应用进行处理的缓冲器。已处理视频缓冲器326是其中临时存储已处理以便传输到远程用户的视频数据以待通过网络106传输的缓冲器。尽管视频数据在这里被称为实时传输和存储,但是应当理解,处理视频数据并通过网络传输它需要小的延迟。

图4是根据各种实施例的支持远程视觉体验应用,并且特别支持虚拟供应商上门服务应用的空间图数据结构324的概念表示。空间图324标识3d空间中远程视觉体验应用为其提供远程视频的多个区域、区域的物理边界、辅助空间内的取向的参考点或特征(诸如标记112)、可能限制3d空间内的照相机视野的分区或其它显著不透明对象等等。

参考图4,空间图324包括头部分401、包含一个或多个参考点记录410的参考点部分402,每个参考点记录定义相应的参考点(图4中示出了其中一个参考点)、包含一个或多个区域记录420的区域部分403,每个区域记录定义了空间内的相应区域(图4中示出了其中一个区域)、以及包含一个或多个不透明对象记录430的不透明对象部分404,每个不透明对象记录定义了空间内的相应不透明对象(图4中示出了其中一个不透明对象)。

头部分401包括标识与空间图相关联的空间的空间标识符字段405(在多个空间内使用远程视觉体验应用的情况下)、指定参考点部分402内所包含的参考点记录410的数量的参考点数量字段406、指定区域部分403内所包含的区域记录420的数量的区域数量字段407、以及指定不透明对象部分404内所包含的不透明对象记录的数量的不透明对象数量字段408。头部分401可以包括任何附加数据409,其可能对标识空间、访问空间图内的数据或以其他方式利用空间图有用。

参考点部分402包含至少一个(优选多个)参考点记录410,每个参考点记录对应于用于在与空间图相关联的空间内的取向的相应参考点。参考点可以是空间内的任何可标识位置。参考点可以是但不是必须是为了该目的而放置在空间内的参考标记112的位置。或者,它可以是空间内任何可标识特征的位置。例如,它可以是房间的两个壁和地板相交的角落的位置、灯具或卫生设备上的点、通常具有固定位置的家具物品上的点等等。

参考点的数量可以变化。总体上,参考点(单独地或与其他假定数据结合)定义坐标系中的参考系,诸如x-y-z坐标系。通常,最少需要三个点以定义x-y-z坐标网格系统,尽管为了更高的精度可以有更多的参考点。另外,如果通过其它手段知道方向,则可以存在少于三个参考点。例如,如果假定xyz坐标系的z轴垂直于水平地面,并且垂直方向可以由共享视觉体验应用可访问的传感器或通过其他手段来确定,则将最少需要仅两个参考点来定义网格系统。

每个参考点记录410包含具有参考点的唯一标识符的参考点标识符字段411、包含参考点在空间图的x-y-z坐标系中的相应x、y和z坐标的x位置字段412、y位置字段413和z位置字段414、以及包含使得共享视觉体验应用能够识别参考点的数据的参考点签名字段415。签名数据可以包括例如参考点及其周围区域的数字记录图像,其与来自照相机的捕获视频图像数据匹配以识别参考点。它可以替换地或附加地包括由参考标记发送的电子签名。它可以替换地或附加地包括方向取向数据,例如,某条线或特征平行于地板。签名数据可以包括用于识别相应参考点的多种类型的数据。

区域部分403包含至少一个区域记录420,每个区域记录对应于作为空间图的主题的空间的相应区域或子区域。在区域部分403中定义的区域或子区域是空间的3维部分,具有多边形的边(或者在一些情况下,在一个或多个维度上无界的平面图),并且优选地具有规则形状,诸如长方体。因为边是平面图,所以区域完全由其顶点的位置定义。

每个区域记录420包含具有对应区域的唯一标识符的区域标识符字段421、定义区域类型的区域类型字段422、以及多个顶点x、y、z坐标423(图4中示出了其中的四个),每个坐标标识区域的相应顶点的x、y和z坐标位置。区域类型字段定义区域的形状。例如,区域可以是长方体、三棱柱等。区域类型还可以包括在某一维度上无界的区域,在这种情况下,某些指定顶点可以定义一条或多条线,这些线在至少一个方向上延伸到无穷远,并且形成该区域的相应边缘。顶点的数量由区域类型字段确定,尽管可替换地,可以在区域记录420中提供具有多个顶点坐标423的单独字段。区域记录还包括区域描述字段424,其包含可以在视觉上显示和/或在听觉上呈现给用户的区域的文本描述。

在一个或多个实施例中,用户可以将复合区域定义为多个子区域的联合。在这种情况下,多个区域记录420中的每一个定义相应的子区域。复合区域的每个子区域包含区域id字段421中的相同区域标识符值。此外,区域类型字段422(或单独字段)用于指示记录与较大复合区域的子区域相关联。复合区域的使用使得用户能够定义几乎任意复杂度的区域形状。作为简单的例子,l形房间可以被定义为由两个长方体子区域的联合形成的单个复合区域。

在一个或多个实施例中,假设在空间中存在默认区域,该默认区域在由空间图定义的任何区域之外。默认区域不需要具有定义它的区域记录420,因为它实际上是由其它区域定义的。可以使用特殊的保留标识符来标识默认区域,或者默认区域的标识符可以在在头部401中包含的其它数据409中。

不透明对象部分404包含至少一个不透明对象记录430,每个不透明对象记录对应于作为空间图的主题的空间中的相应不透明对象。在不透明对象部分404中定义的不透明对象是照相机的视野的2维屏障。不透明对象记录的目的是将区域与照相机的确定视野隔离,并且因此位于照相机的方向上但是在不透明对象后面的区域不被认为在照相机的视野内。通常,不透明对象记录表示物理环境中的墙壁、地板或天花板或其部分。尽管它可以表示较小的不透明对象,但是不必为空间中的每个不透明对象创建不透明对象记录,因为记录的目的是确定照相机的视野的限制。例如,房间内的椅子或类似对象通常不是不透明对象记录的主题,除非可能被椅子或类似对象遮蔽的某物是显著的。

每一不透明对象记录430含有具有对应不透明对象的唯一标识符的不透明对象标识符字段431、定义不透明对象的类型的不透明对象类型字段432,以及多个顶点x、y、z坐标433(图4中示出其中三个),每一顶点标识不透明对象的相应顶点的x、y和z坐标位置。不透明对象类型字段定义不透明对象的形状。例如,不透明对象可以是矩形、三角形等。不透明对象类型还可以包括在一个或多个维度上无界的不透明对象,在这种情况下,一些指定顶点可以定义一条或多条线,这些线在至少一个方向上延伸到无穷远,并且在不透明对象的平面中形成不透明对象的相应边缘。顶点的数量由不透明对象类型字段确定,尽管可替换地,可以在不透明对象记录430中提供具有多个顶点坐标433的单独字段。不透明对象记录还包括不透明对象描述字段434,其包含可以在视觉上显示和/或在听觉上呈现给用户的不透明对象的文本描述。

在一个或多个实施例中,由一个或多个区域记录420定义的区域可以隐含地包括在该区域的每个边界表面处的不透明屏障。区域类型字段422或一些其它字段可用于指示该区域是否包括不透明屏障。在这种情况下,远程视觉体验应用将可能为具有隐含不透明屏障的区域的每个边界表面自动生成相应的不透明屏障记录430;作为替代,应用可在执行期间标识这些区域且将这些区域的所有表面视为不透明屏障。

在一个或多个实施例中,不透明屏障记录430可包括反不透明屏障,即,开口或其他不透明屏障的其他透明部分。在这种情况下,反不透明屏障的不透明对象id字段431与其所属的不透明屏障的值相同,并且不透明对象类型432指示反屏障。这种反障碍记录可以用于例如描述门、窗或其它不透明屏障中的类似开口。

在一个或多个实施例中,假定在空间中存在默认的不透明对象,并且该默认的不透明对象不需要具有定义它的不透明对象记录430。例如,地板或地面可以是假定的默认不透明物体。可以使用特殊的保留标识符来标识默认的不透明对象,或者默认的不透明对象的标识符可以在在头部401中包含的其它数据409中。

图5是根据各种实施例的支持远程视觉体验应用,并且特别支持虚拟供应商上门服务应用的简档数据结构323的概念表示。其中,简档数据结构包括指定如何将空间图324中定义的不同区域呈现给不同用户的数据。在一个或多个实施例中,简档数据结构323还包括音频滤波的参数。

参考图5,简档323包括头部部分501、包含音频过滤参数的音频过滤器部分502、以及区域部分503,该区域部分针对多个区域中的每一个包含定义如何将区域视觉地呈现给不同用户的相应区域记录530(图5中示出了其中一个区域记录)。简档记录可以包含未示出的附加数据。

头部501包括空间标识符字段505,其标识与空间图相关联的空间并且简档与其有关(在多个空间内使用远程视觉体验应用的情况下),多个区域字段506,其指定区域部分503内包含的区域记录520的数量,视频过滤器启用标志507,其指示是否启用对视频流中的视觉图像的过滤,以及单独的音频过滤器启用标志508,其指示是否启用对所捕获视频的音频信号部分的音频过滤。头部部分501可以包括可能对控制远程视觉体验应用的执行有用的任何附加数据509。

音频滤波器部分502包含指定要执行的音频滤波的类型的音频滤波器类型字段511、指定包含在音频滤波器部分502中的音频签名的数量的音频签名数量字段512、以及音频签名513的可变数量。

音频滤波可以以各种方式执行。在一个或多个实施例中,使用噪声消除技术来执行滤波,其中,诸如安装在头戴式耳机上的麦克风的一个或多个特定音频源被指定为要发送的音频信号,并且环境音频将被滤除,而不管其是否涉及人类语音。通常,这种技术需要远离要发送的指定音频信号的至少一个其它麦克风。从音频信号中过滤在该第二麦克风处检测到的环境音频,仅留下非常靠近指定麦克风生成的音频,即,佩戴头戴式耳机的人的语音。

在一个或多个替代实施例中,记录一个或多个音频签名,并且通过滤除与(多个)音频签名相对应的语音或者通过滤除除了与(多个)音频签名相对应的语音之外的一切来对音频信号进行滤波。以此方式,可以过滤掉不交互地参与远程视觉体验应用的人的背景对话。

区域部分503包含由空间图324定义的每个区域(包括默认区域)的区域记录520。每个区域记录520包含具有相应区域的唯一标识符的区域标识符字段521、指定相应区域的默认隐私属性的隐私类型字段522、指定如何执行遮蔽功能的遮蔽功能类型字段523、以及指定随后的访问控制列表条目数量的访问控制列表长度字段524。每个区域记录可以进一步包含可变数量的访问控制列表条目525(图5中示出了其中两个),每个条目包含各自的用户id字段526和期满时间字段527。

隐私类型字段523指定区域的默认隐私属性,其可以是“无限制的”、或“仅本地的”、或“仅授权的”。“无限制的”隐私属性意味着对应区域的视觉图像被未过滤地呈现给所有用户;“仅本地”意味着视觉图像仅向本地用户未过滤地呈现,并且如果向远程用户呈现则被遮蔽;“仅授权”意味着只有当用户通过访问控制列表授权时,视觉图像才被未过滤地呈现。遮蔽功能类型字段指定如果向未被授权未经过滤地观看视觉数据的用户呈现视觉数据,则如何遮蔽视觉数据。例如,视觉图像可以通过呈现的单色区被完全阻挡,或者可以使用各种模糊技术中的任何模糊技术被模糊以遮蔽细节但不完全阻挡图像。

每个访问控制列表条目525包含标识接收相应区域的未过滤视频图像的用户的用户id字段526和指示授权用户接收未过滤视频图像的时间长度的期满时间字段527。期满时间可以是“从不”(用户总是被授权接收未过滤的视频),或者可以是特定时间或特定事件,诸如当前执行实例的终止。访问控制列表覆写隐私属性,即,访问控制列表中标识的用户被呈现未过滤的视频图像,而不管隐私属性的设置。

在图3-5中概念性地表示了在这里描述的各种系统或设备中的任何一个的相应存储器中包含的各种软件实体。然而,众所周知,计算机或其他数字设备的存储器通常不足以同时保存所有软件实体和其它数据,并且软件实体或其它数据的选择性部分通常根据需要从存储装置加载到存储器中。此外,在图3-5中将各种软件实体表示为单独的实体或包含在其它实体内。然而,将理解,该表示仅用于说明性目的,并且特定模块或数据实体可以是单独的实体,或者是公共模块或模块包的一部分。此外,尽管在图3-5的概念表示中示出了特定数量和类型的软件实体,但是将理解,这样的实体的实际数量可以变化,并且特别在远程视觉体验环境中,这样的实体的数量和复杂度通常大得多。另外,尽管为了表示的完整性,在各个单个系统中描述了某些软件组件,但是并不需要真正地所有程序、功能和数据将出现在单个系统中,并且可以出现在同一计算机系统或不同计算机系统上的另一分区中。最后,将理解,图3-5的概念表示不意味着暗示任何特定的存储器组织模型,并且托管数据流应用或数据库的计算机系统可以采用单个地址空间虚拟存储器,或者可以采用重叠的多个虚拟地址空间。

照相机或特征位置的确定

根据一个或多个实施例,远程视觉体验应用知道用于在照相机改变位置时捕获应用的视频的可移动照相机103的当前位置(即,位置和取向)。在执行期间,远程视觉体验应用优选地确定当前照相机位置,并且相对于由空间图324定义的参考坐标系连续地更新该确定。另外,在确定各种参考点或其它特征的位置的初始阶段期间,照相机与特征之间的相对距离可自动测量并且用以限定三维参考系中的特征的位置。

除了以后开发的技术,在各种虚拟现实应用或执行类似功能的其它应用中的任何应用中使用的各种已知技术中的任何技术都可以用于确定照相机和/或特征位置。这样的技术可以包括但不一定限于光学跟踪技术、惯性跟踪技术、声学跟踪技术、磁跟踪技术和/或涉及来自不同类型的传感器输入的组合的技术。光学跟踪可以涉及一个或多个照相机,其可以包括捕获作为远程视觉体验应用的一部分而被传输的视频的照相机和/或可以包括用于跟踪的一个或多个单独的照相机,其可以处于与用于捕获被传输的视频的照相机物理上分离的静止位置。

在一个或多个实施例中,一个或多个参考标记被放置在空间内的固定位置处,并且确定相对于标记的照相机位置。可以通过根据检测到的参考标记的三边测量或三角测量来确定照相机位置。参考标记可以是任何可标识的对象,但是特别地可以是发送可由照相机检测的红外信号的发送装置。参考标记可以可选地是无源红外设备,其反射由紧邻照相机的发射器发射的红外信号,反射的信号可由照相机检测。参考标记可以替代地是一些其它形式的有源或无源设备,其发射或反射可检测的传输,例如声学设备。最后,参考标记不需要具有任何特殊的电、磁、声或其它物理属性,而可以简单地是易于被照相机识别的对象。尽管优选使用某种形式的参考标记,但是可选地,例如通过将由照相机捕获的视频图像与空间的已知3d模型进行比较,可以在没有参考标记的情况下跟踪照相机的位置。

通常,使用更多数量的标记可以获得更大的位置精度。例如,如果三个标记在照相机的视野内,则照相机在三维空间中的当前位置可以根据由照相机镜头的中心和标记之间的相应线与镜头的中心线轴所形成的角度来确定。如果较少的标记是可见的,则可以通过使用其它数据来估计位置。例如,到标记或到诸如地板或天花板的一些其它参考的距离可以通过其它手段来估计,诸如使用照相机的自动聚焦能力。以已知偏移安装的一对照相机可用于通过立体视觉提供深度测量能力。

取决于用于确定照相机的位置的技术,可能期望包括用于确定照相机在空间中的取向的一个或多个附加传感器。例如,水平传感器可以用于确定照相机相对于地面(即,利用地球的重力场)的取向。磁传感器可以用作罗盘来确定照相机相对于地球磁场的取向。这两个传感器一起可以提供照照相机的镜头轴线在3d空间中的方向。这些可以与其它位置数据结合使用以确定照相机位置。附加的传感器可以耦合到照相机以提供附加的参考数据。

远程视觉体验操作

根据一个或多个实施例,构建空间图,该空间图映射照相机将在其中操作和捕获视频图像以用于远程视觉体验的空间的区域。至少一个相应的隐私属性与空间的多个区域中的每一个相关联,除此之外该(多个)隐私属性定义了一个或多个远程用户观看空间的相应区域的视频图像的能力等。与任何一个空间相关联的(多个)隐私属性可以独立于与任何其它空间相关联的(多个)隐私属性。

在远程视觉体验应用的执行期间,视频数据由照相机捕获,并且照相机的位置/取向被连续地或周期性地实时更新以确定照相机的视野,并且尤其是该视野内的空间的(多个)区域。应用参考那些区域的对应(多个)隐私属性以确定是否应遮蔽任何区域,并且通过相应地遮蔽所述(多个)区域来修改所捕获的视频。将修改后的视频发送给远程用户,以便例如在远程用户的控制下在显示设备上观看。

图6是在高层级示出根据各种实施例的由远程视觉体验应用执行的过程的流程图。参考图6,生成远程视觉体验应用将在其中操作的空间图(框601)。如图6中的框601所示并在图7中更详细地示出的空间图的生成可以在远程视觉应用的执行实例之前发生,或者可以在大约相同的时间发生。在执行期间,甚至可以例如通过扩展空间以包括附加区域或扩展现有区域的大小来修改空间图,其中移动照相机以使其进入不在空间图的原始定义空间内的视野空间。

在一个或多个实施例中,用户通过在空间内建立至少一个并且优选地多个参考位置并且通过移动照相机以使空间的各个区域处于照相机的视野内来定义本地空间,在该本地空间中将为远程视觉体验应用捕获视频。图7是更详细地示出根据各种实施例的生成本地空间的空间图324的过程的流程图,远程视觉体验在该本地空间内操作,该过程用空间图生成器313执行。

参考图7,用户可选地将一个或多个参考标记112放置在空间内的相应位置处,以用作用于建立与空间的取向的相应参考点(框701)。框701被认为是可选步骤,因为已经存在于空间内的可识别的固定特征可以替代地被用作参考点。

用户选择至少一个参考点,优选地多个参考点,并且照相机(和/或与其相关联的传感器)响应于该选择而获得每个所选参考点的相应参考点签名数据(框702)。选择的参考点的数量优选地至少为三个,尽管如果使用附加传感器数据,例如重力传感器来提供相对于地平面的取向,则可以用较少的参考点获得3d空间中的取向。该签名数据被保存在对应于每个相应参考点的签名数据字段415中。参考点的选择可以通过将照相机指向所选参考点、通过指示所选参考点的位置的手势、通过语音命令、通过经由光标指向设备将光标移动到所显示的图像上的点、或通过其它手段或手段的组合来实现。当适当的传感器数据(其可以包括来自照相机的图像数据)作为输入被接收时,签名数据被远程视觉体验应用用于识别相应的参考点。具体地,在执行期间,将接收到的传感器数据与在生成空间图时存储的签名数据进行匹配以标识参考点。因此,签名数据可以包括实现识别参考点的任何数据,并且可以包括来自多个源的传感器数据。

参考点相对于彼此(以及如果必要,相对于一些其它取向轴)的位置、基于参考点的x-y-z参考坐标系、以及x-y-z参考坐标系中的每个参考点的相应x、y和z坐标由空间映射生成器313自动确定并存储在空间图324中(框703)。这些可以使用各种技术中的任何一种来确定。下面描述并在图8中示出了用于确定参考坐标系和参考点坐标的示例性技术及其某些变型,应当理解,这里描述的示例性技术和变型不必仅仅是可以使用的这种技术。

图8是根据各种实施例更详细地说明确定x-y-z参考坐标系和所述参考系中的多个参考点的坐标的过程的流程图。在一个或多个实施例中,使用传感器距离和角度数据来确定参考点对之间的距离。对于多对参考点中的每一对,测量从感测设备到该对参考点中的第一参考点的相应第一距离,测量从感测设备到该对参考点中的第二参考点的相应第二距离,并且确定从感测设备到第一参考点的线与从感测设备到第二参考点的线所成的角度(框801)。在这种情况下,“感测设备”可以是照相机,其使用自动聚焦能力以分别聚焦在两个参考点上来确定距离,并且通过参考点在所捕获的图像上的投影来确定角度。或者,可以单独地或与照照相机协作地使用一个或多个单独的传感器。

到每对的两个点的这些距离和角度形成三角形的两条边和相邻角,根据该三角形计算相对边的长度(该对的两个参考点之间的距离)(方框802)。

选择x-y-z参考坐标系的原点(框803)。空间中的任何方便的点都可以被选择作为原点。在一个或多个实施例中,任意选择参考点中的一个作为原点。如果存在固定位置的传感器,则原点可以替代地被选择为具有固定位置的传感器的位置。

选择z轴的取向(其与原点一起确定x和y轴的平面)(框804)。在一个或多个实施例中,使用重力或水平传感器来确定z轴取向,z轴平行于重力。在没有这种传感器的情况下,可以替代地通过参考具有已知垂直取向的特征来确定z轴。

选择x轴和y轴取向(框805)。在选择了z轴的取向之后,可以选择x轴的取向以与从原点到第二任意选择的参考点在x和y轴的平面上的投影的方向一致,x和y轴的平面是包含原点并且垂直于z轴的平面。于是,y轴在x和y轴的平面中垂直于x轴。

或者,在一个或多个实施例中,轴的取向可由三个任意选择的非共线点确定。在这样的实施例中,例如,x轴被任意选择为穿过原点(第一任意选择的参考点)和第二任意选择的参考点的线。然后,通过从x轴和第三任意选择的参考点定义x-y轴的平面,并将y轴定义为垂直于x轴并位于该平面中的线,来选择y轴的取向。z轴则是垂直于x和y轴二者的线。

根据所选择的x-y-z参考坐标系确定每个参考点的x、y和z坐标,并将其保存在空间图324中的每个参考点记录410的相应x、y和z位置字段412、413、414中。用于确定x、y、z坐标的方法可以取决于所选择的参考系。

在一个或多个实施例中,确定第二参考点(用于取向x轴)的x、y、z坐标(框806)。例如,在使用重力传感器或水平传感器来确定z轴取向的情况下,能够利用传感器和照相机来测量从第一参考点(原点)到第二参考点的直线与垂线(z轴)所成的角度θ,并且将第二参考点的x坐标和z坐标分别导出为d*sinθ和d*cosθ,其中,d为第一参考点和第二参考点之间的距离(第二参考点的y坐标为0)。

通过参考第一参考点和第二参考点(块807),或者可替换地通过参考坐标已经被确定的其它参考点来确定随后的参考点的坐标。具体地,根据原点(第一点)和随后的点之间的已知距离,以及从原点到z轴的线的角度,可以以与第二点的z坐标相同的方式确定随后的点的z坐标。类似地计算该距离在x-y平面上的投影。第二点与后续点之间的距离以及它们各自的z坐标之间的差可以用于确定第二点与后续点之间的距离在x-y平面上的投影。根据两个投影和第二点的已知x坐标,形成三角形在x-y平面中的三个边,该三角形具有在原点处的一个顶点、在第二点在x-y平面上的投影处的第二顶点、以及在随后的点在x-y平面上的投影处的第三顶点。根据这三个距离,可以计算随后的点的x和y坐标。

或者,如果已知多于三个参考点的坐标,则可以通过从前三个参考点的三边测量来确定后续参考点的坐标。

作为另外的替代,例如,在三个任意选择的参考点限定坐标系统参考系的情况下,第一点是原点,第二点具有等于前两点之间的距离的x坐标以及为0的y和z坐标,并且第三点(位于x-y平面中)具有为0的z坐标,x和y坐标通过根据前两点以及每一点和第三点之间的已知距离的三边测量来确定。随后的参考点可以通过三边测量从前三个点确定。

尽管这不是必需的,但是如果两个参考点或多或少地与照相机等距,则通常将实现使用照相机测量两个参考点之间的距离和与垂直方向的角度的更高精度。远程视觉体验应用可以可选地针对每对参考点指示用户移动到这样的位置。或者,当用户通过在应用空间周围移动来改变照相机位置时,应用可以收集从多个不同的照相机位置捕获的数据,并且为其中这些点近似等距的每对点选择相应的位置。此外,可以使用各种技术中的任何一种,由此从多个照相机或其它测量位置获得测量数据,并且对其进行协调以获得复合测量。

尽管在以上公开的实施例中,本申请自动确定x-y-z坐标系统参照系中的每个参考点的相关距离和坐标,但是在一个或多个替代实施例中,用户可以手动输入一些或全部测量或坐标数据,并且如果用户仅手动输入一些数据,则本申请可以测量和/或导出定义参考点坐标所需的任何缺失数据。

再次参考图7,用户在空间图324的空间中定义一个或多个区域。区域可以是在空间中定义的任何三维几何形状。在一个或多个实施例中,默认区域包括不在明确定义的区域内的空间的任何部分。在一个或多个实施例中,除了默认区域之外,仅支持有限数量的区域形状,并且可能仅支持一个区域形状。例如,除了默认区域之外的所有区域可以是长方体。在一个或多个实施例中,区域可以被定义为多个简单形状的联合,这些简单形状可以重叠,例如多个长方体。

通过明确的用户输入或默认地指定默认区域的一个或多个属性(框704)。这些一个或多个属性特别地包括至少一个访问属性,其定义了对观看默认区域的图像的访问限制。例如,访问属性可以指定对应区域可由本地的和远程的所有用户自由地观看,或者可以指定其仅可由一个或多个特定类别的用户观看,或者可以参考访问控制列表或控制具有观看默认区域的访问权的用户观看其它数据结构。访问属性还可以限制对特定时间帧的访问,诸如仅在远程视觉体验应用的执行实例的持续时间内或者仅在一天的某些时间期间被准许的访问,或者可以以其它方式限制访问。

用户选择要在空间图中定义的特征,诸如区域或不透明屏障,并且如果适用,则指定特征的类型(框705)。远程视觉体验应用可以支持多个区域类型和/或多个不透明屏障类型。例如,区域类型可以指定区域形状的一些或全部,无论该区域是否默认地被不透明屏障围绕,和/或指定区域是否是子区域,即是否被接合到一个或多个其它指定的子区域以在空间图中形成更大的复合区域。不透明屏障类型还可以包括形状和/或所限定的形状是屏障还是开口,开口在诸如可以由窗或门形成的较大不透明屏障中没有不透明性。

应用可以根据具体情况为区域id字段421或屏障id字段431中的条目自动分配区域id或屏障id。如果该区域是要与一个或多个其它指定的子区域连接的子区域,则应用可提示用户指定该子区域将要连接的区域,如通过下拉菜单等向用户呈现先前指定的区域的列表并接收用户选择。用户可以另外指定相应特征的描述(根据具体情况,用于输入区域描述字段424或不透明对象描述字段434)。

用户指定所选特征的边界(框706)。在一个或多个实施例中,用户使用手势或手和语音命令的组合来指示所选特征的角或边。边界可以与应用空间内存在的某个对象一致,诸如墙壁或家具物品,或者可以简单地是空间中的任意位置。在一个或多个附加实施例中,用户可以通过语音命令或以其它方式指示照相机当前所位于的整个房间将是指定区域,并且以使得能够看到所有边界表面和边缘的方式在房间周围摇动照相机以实现对区域的边界的标识。

响应于每个用户指定的边界,远程视觉体验应用确定边界在参考坐标系中的位置,并且确定和保存定义所选特征的可应用顶点的x-y-z坐标(框707)。可使用本文所述的用于确定参考点在参考坐标系中的坐标的技术中的任一者来确定边界和顶点的坐标位置。顶点的坐标根据情况被保存在空间图324的顶点坐标字段423或433中。

如果所选特征是在其每个边界处包含隐含的不透明屏障的类型的区域(来自框708的“y”分支),则应用自动地为该区域的每个边界表面生成不透明屏障记录430(框709)。在该区域是较大复合区域的子区域的情况下,仅针对整个区域的外表面生成屏障记录。应用可以替换地使用(多个)区域记录来确定在运行时不透明屏障的存在。

如果还有任何更多的屏障或区域要输入,则从框710采用“y”分支,并在框705选择下一个特征。当已经输入了所有特征时,从框710选取“n”分支,并且完成空间图的生成。

在要求用户向应用输入数据的情况下,这种输入可以通过现在已知或以后开发的用于向数字设备输入数据的任何方法来实现,并且不同的方法可以用于向应用输入不同的数据。例如,手势对于指示三维空间中的位置或特征是有用的,并且可以用于指定参考点和区域或屏障的边界。诸如特征名称或访问属性之类的其它数据可以更方便地经由键盘、语音命令、来自菜单的指针选择等来输入。尽管本文结合某些动作描述了特定的数据输入方法,但远程视觉体验应用不一定限于这些输入方法。

尽管在一个或多个示例性实施例中,如上所述,通过定义一个或多个参考点并且捕获空间的图像来创建本地空间的空间图,但是空间可以替代地由其他方式来定义,其可以在远程视觉体验应用的执行之前或期间执行。例如,数据可以从映射空间的所存储的数字记录,诸如建筑图来导入和/或转换。数据甚至可以由用户手动输入。

作为替代的附加示例,空间图可以在执行期间通过捕获空间的视频并且使用手势和/或语音命令来定义一个或多个区域而被即时定义。在这样的替代实施例中,整个空间最初可以被定义为背景区域,并且一个或多个附加区域可以由用户在执行期间定义,从背景区域中减去每个附加区域。例如,如果本地用户希望仅暴露所定义的有限区域以供远程用户观看,则本地用户可将整个空间定义为背景区域(并提供指示背景空间将不被暴露以供远程用户观看的隐私属性),并且在执行期间创建要从背景区域中减去的一个或多个附加区域,该一个或多个附加区域具有允许它们被暴露给远程用户的隐私属性。这样的空间图可以被保存以供将来再使用,或者在执行实例结束时被删除。

再次参考图6,控制远程用户的观看访问的至少一个相应的隐私属性被分配给每个区域,并且被存储为简档数据323的一部分(框602)。隐私属性可以默认分配,或者可以通过来自用户的明确命令分配,该命令可以是语音输入、手势、键盘输入或对数字数据设备的各种输入中的任何一种。将隐私属性分配给区域通常与区域定义同时执行,但它不一定必须同时进行,并且可以在区域被定义之后很久被修改。(多个)隐私属性可以如同表示是否允许远程访问的二进制标记一样简单,或者可以是值或质量范围中的任何一个。可以定义不同用户的多个隐私级别或访问级别,其中一些区域对于一些远程用户是不可用的,但是对于其他用户是可用的,并且一些区域对于任何远程用户可能是不可用的。

在示例性实施例中,隐私属性可以被实现为访问控制列表,其中一个或多个指定的用户(或用户类别)被授权观看对应区域的视频,每个区域具有相应的独立访问控制列表,由此用户被独立地授权观看视频。

在一个或多个可选实施例中,用户还可以指定一个或多个音频隐私属性,用于控制对视频流的音频信号部分的远程访问,该音频隐私属性也存储在简档数据323中。(多个)音频隐私属性通常不是特定于区域的,但是可以用于过滤背景音频(即,除了来自特定麦克风之外的音频)或过滤特定人的语音。

远程视觉体验应用的执行在图6中被表示为在虚线框603内发生的动作,如先前所解释的,应当理解框601和/或602也可在运行时发生。

由可移动照相机103捕获视频流,并将其临时存储在原始视频缓冲器325中(框604)。

使用取向函数312和运行时间映射函数314周期性地或连续地确定照相机103的当前视野内的区域(框605)。当前视野的确定可以以固定的、相对短的时间间隔执行,或者可以响应于指示照相机视野中已经存在显著变化的输入而执行。

在图9中更详细地示出的一个或多个实施例中,通过确定空间内的照相机位置(如前所述)并将该视野映射到空间图以确定视野内的区域来确定视野。可以有标识区域的替代方法。例如,每个区域可以具有其自己的标识标记或其它参考对象,其可以位于所捕获的视频图像上,并且区域直接从这样的参考对象映射。

图9是更详细地说明根据各种实施例的确定空间的定义区域的过程的流程图,所述定义区域在照相机的视野内且因此可在当前所捕获的视频图像上观察到。参考图9,确定视频照相机的当前位置和取向(框901)。该位置是三维空间中的位置,由照相机的x-y-z坐标定义。该取向是透镜的轴的方向。这些由取向功能312使用如先前描述的用于确定照相机位置的各种技术中的任何技术来确定。

运行时间映射函数314从照相机位置导出形成照相机的视野的边界的一组四个平面(框902)。这四个平面会聚在透镜稍后方的透镜轴上的一点,并与垂直于透镜轴的任何平面相交以形成矩形。由四个平面和垂直于照相机轴的平面形成的三维多面体是四棱锥。由这四个平面界定的三维区域是照相机的视野,并且至少在最初被假定无限地延伸到空间中。

在框902中,依次处理不透明屏障记录,以标识位于上述四个平面的边界内的任何不透明屏障,并构造遮挡视野的部分的不透明屏障的有序列表,如框903-909所示。如果有任何不透明屏障记录有待处理,则从框903选取“y”分支,且选择下一不透明屏障记录,包括与所选不透明屏障相关联的任何开口(框904)。

如果所选不透明屏障完全位于由四个平面限定的视野之外,则从框905选取“n”分支到框903,以选择下一个记录用于处理,如果存在的话。如果所选不透明屏障在视野内,则从框905选取“y”分支到框906。在这种情况下,运行时间映射函数确定不透明屏障是否被列表上的任何先前不透明屏障完全遮蔽。如果是,则从框906”选取“y”分支回到框903,以选择下一个记录用于处理,如果存在的话。如果当前选择的不透明屏障没有被先前的不透明屏障完全遮挡,则从框906选取“n”分支,并且在与当前选择的不透明屏障与照相机的接近度对应的列表位置处将其添加到不透明屏障的有序列表,最靠近照相机的屏障被首先列出(框907)。映射功能然后确定在排序中在当前障碍之后的列表上已有的任何障碍是否被当前障碍完全遮蔽(框908)。如果是,则从屏障列表中删除任何这种遮蔽的屏障(框909)。然后,映射功能返回到框903,以便如果存在下一个障碍,则选择该障碍。

当所有屏障记录都已经这样处理时,从框903选取“n”分支到框910。运行时间映射功能处理区域记录,以相对于在空间图中标识的每个区域,确定区域的任何部分是否位于由屏障记录限制的照相机的视野内,并确定每个这样的区域在由照相机捕获的二维视频图像上的投影的边界,如框910-914所示。

如果还有任何区域记录要处理,则从框910选取“y”分支,并选择下一个区域记录(框911)。复合区域可能需要多个记录。

如果所选区域完全位于由四个平面限定的视野之外,则从框912选取“n”分支到方框910,以选择下一个区域记录以便处理,如果存在的话。如果所选区域在视野内,则从框912选取“y”分支到框913。在这种情况下,运行时间映射函数确定所选区域是否被不透明屏障列表上的任何一个或多个不透明屏障完全遮蔽。如果是,则从框913选取“y”分支回到框910,以选择下一个记录以便处理,如果存在的话。如果当前选择的区域没有被一个或多个不透明屏障完全遮蔽,则从框913选取“n”分支。在这种情况下,映射函数确定区域的未被任何障碍物遮挡的部分在由视频照相机捕获的二维图像上的投影,并将该投影添加到区域投影的有序列表(框914)。列表中的投影可以彼此重叠,并且根据对应区域与照相机的接近度来排序(重叠),最靠近照相机的区域在重叠的投影的顶部。然后,映射功能返回到框910,以便如果存在下一个区域,则选择该区域。

如果支持默认区域,则最后选择它,因为它是由不包括在任何其它区域中的空间定义的。一旦确定了默认区域的边界,就通过确定其是否在视野内、其是否被一个或多个障碍物遮挡、以及如果存在的话的未遮挡部分的投影,以与任何其它区域类似的方式处理该默认区域的边界。

当所有区域都已经这样处理时,从框910选取“n”分支,并且可见区域的投影的确定完成。

再次参考图6,从存储的简档数据323中获得照照相机视野内的(多个)区域的(多个)隐私属性(框606)。这些隐私属性与当前远程用户的身份或访问权限进行比较,以确定是否有必要使该区域遮蔽而不能观看。对于当前远程用户未被授权观看的任何区域,视频被改变以使该区域遮蔽而不能观看(框607)。“遮蔽”区域可以使用任何已知的技术,以使光学细节难以或不可能看到。这可能相当于采用空白蓝屏图案替换图像中的区域,或者可能相当于随机化一些像素以给出“离焦”效果,或者可能选取某种其它形式以使得区域内的细节难以或不可能看到。修改的视频被临时存储在处理视频缓冲器326中。

在一个或多个实施例中,还根据简档数据323的音频部分502中所指定的音频滤波参数对视频数据的音频信号部分进行滤波,并将其存储在经处理视频缓冲器326中(框608)。尽管这在图6中被图示为在处理视频图像之后顺序发生的动作,但是将理解可以同时执行音频处理和视频图像处理。在一个或多个替代实施例中,不执行音频滤波。

来自处理视频缓冲器326的修改视频(如果有的话,包括伴随的音频信号)通过网络106被发送到远程107,以便实时显示给远程用户(框609)。如果不存在退出条件,则该过程继续(从框610的“n”分支)。如果存在退出条件,例如终止应用的命令,则过程结束,如从框610的“y”分支所示。

优点

尽管共享视觉体验应用是最近的发展,但是可以预期将来将开发更多的这样的应用。这种未来的应用可能远远超出上面给出的简单示例。共享视觉体验应用可以用于教学、保健、娱乐、营销、建造和设备维护、建筑、执法和许多其它方面。

在早期的电话会议环境中,通常为照相机的视野提供安全空间,并且从该空间中排除不应当向远程用户展示的任何东西。然而,在共享视觉体验应用中,控制远程用户可能看见什么变得更加困难。本地用户可能无意地或在远程用户的指导下移动照相机的视野以包括不应被远程用户看到的对象。例如,在他自己家中的本地用户可能泄露敏感文档、家庭布局的细节或其中包含的贵重物品、处于尴尬或私人情况的人、孩子等。

某些实施例的优点包括改进的技术,其在实时传输视频数据以显示给远程接收方时,并且特别地在通过共享视觉体验应用将视频数据传输给远程用户时,保护个人隐私。

如这里所描述的遮蔽三维空间的选择区域的视频图像的系统提供了相对更安全和万无一失的保护,以免无意中泄露敏感的、隐私的或机密的事物。用户不需要考虑空间内所有可能的敏感事物,并且可以仅仅因为选择性区域与远程视觉体验应用的目的无关而从远程观看中广泛地排除这些区域。例如,在虚拟供应商上门服务应用的情况下,用户可以狭窄地定义与虚拟供应商上门服务的主题相关的区域,诸如特定固定装置的修理,并且在不需要考虑其它区域中的特定内容所需保护的情况下,遮蔽空间的所有其他区域。此外,通过确定在可移动照相机的视野内的三维空间内的区域,在照相机移动时维持对私密区域中的事物的保护,而不管照相机的位置和取向如何。

其他变型

尽管以上已经将一系列步骤描述为一个或多个优选和/或替代实施例,但是将理解,用于远程视觉体验的过程的许多变型是可能的。具体地,可以以不同的顺序执行一些步骤,可以使用不同的数据结构,和/或可以采用不同的硬件或软件资源来执行本文描述的功能。此外,尽管某些公式、阈值、逻辑条件等可能已经作为一个或多个实施例公开,但是将理解,这些公式、阈值、逻辑条件等及其变型仅是可能的实施例中的一些,并且可以备选地使用其它技术。

在任何可能的技术细节结合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。在图2中将计算机可读存储介质的示例表示为系统存储器202和数据存储设备221-223。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

计算机

除非与本发明相矛盾或在此以其他方式限定,用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

尽管已经公开了本发明的特定实施例以及某些替代方案,但是本领域技术人员将认识到,可以在所附权利要求的范围内进行形式和细节上的附加变化。

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