定位数据处理方法、电子设备及存储介质与流程

文档序号:22124247发布日期:2020-09-04 17:00阅读:174来源:国知局
定位数据处理方法、电子设备及存储介质与流程

本公开涉及虚拟现实技术,尤其涉及虚拟现实设备的定位数据处理方法、电子设备及存储介质。



背景技术:

虚拟现实技术(virtualreality,vr)是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,使用户沉浸到该环境中。

随着虚拟现实技术的不断发展,在越来越多的应用中,多个用户通过网络共享一个虚拟现实环境。在有些应用中(例如游戏等),为给用户提供真实场景的浸入式体验,需要各个用户共享其实时定位数据。另一方面,虚拟现实应用中需要传输的数据量非常大。业界一直存在着如何保证数据及时传输和处理的需求,以满足用户对vr体验越来越高的要求。

技术问题

有鉴于此,本公开实施例提供一种虚拟现实vr设备的定位数据处理方案,可以显著降低传输数据量。

技术解决方案

本公开一方面提供一种虚拟现实vr设备的定位数据处理方法,包括:

vr客户端获得至少一个虚拟现实设备的若干帧定位数据;

所述vr客户端对所述若干帧定位数据进行压缩处理;

所述vr客户端向外部设备传输经所述压缩处理后的所述若干帧定位数据中的至少部分。

在一些实施例中,所述对所述若干帧定位数据进行压缩处理包括:

在所述若干帧定位数据中确定基准帧;

获得所述若干帧定位数据中的至少部分帧各自对应的差值数据。

在一些实施例中,所述传输经所述压缩处理后的所述若干帧定位数据中的至少部分包括:发送所述基准帧、及所述差值数据中的至少部分。

在一些实施例中,所述获得所述若干帧定位数据中的至少部分帧各自对应的差值数据包括:

获得所述若干帧定位数据中的至少部分帧各自与邻近帧之间的差值数据;或者,

获得所述若干帧定位数据中的至少部分帧各自与所述基准帧之间的差值数据。

在一些实施例中,所述基准帧为所述若干帧定位数据中的首帧、或末帧、或首帧与末帧之间的其他帧。

在一些实施例中,所述对所述若干帧定位数据进行压缩处理还包括:

对所述若干帧定位数据进行保留小数点处理,从而获得保留小数点后指定位数的定位数据;和/或,

对所述若干帧定位数据进行去小数点处理;和/或,

对所述若干帧定位数据进行去重处理;和/或,

对所述若干帧定位数据进行去符号处理。

在一些实施例中,对所述若干帧定位数据进行压缩处理包括:

对所述若干帧定位数据进行有损压缩处理;或者,

对所述若干帧定位数据进行无损压缩处理。

在一些实施例中,所述获得至少一个虚拟现实设备的若干帧定位数据包括:获得多个虚拟现实设备各自的若干帧定位数据;

对所述若干帧定位数据进行压缩处理包括:分别对所述多个虚拟现实设备各自的若干帧定位数据进行压缩处理。

在一些实施例中,所述若干帧定位数据为连续的若干帧定位数据,或者为不连续的若干帧定位数据。

在一些实施例中,还包括:另一vr客户端依据所述vr客户端向外部设备传输的数据,在构建的多用户共享vr环境中对相应用户的替身进行同步。

本公开另一方面提供一种电子设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。

在一些实施例中,所述电子设备为vr一体机或智能终端设备。

本公开再一方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。

有益效果

本公开的一些实施例,通过对定位数据进行压缩处理后再进行传输,可以降低传输数据量,减少对网络资源的占用,并且,可以在网络性能不佳时降低对vr系统的影响,避免影响用户体验。

本公开的一些实施例,在首帧定位数据之后,用差值数据代替各帧的完整数据。由于在vr应用中,用户的运动速度和运动空间有限,并且,为了保证效果,vr数据刷新率通常设得较高,因此,相邻帧之间的差异较小,即每帧对应的差值数据比较小,可以显著降低数据量。

在另一些实施例中,通过对差值数据进行去重处理、保留小数点后n位处理、去小数点处理、去符号处理,对差值数据做了进一步压缩,可进一步降低数据量。经测试,采用本实施例方案进行压缩后获得的数据量至少少于原数据量的三分之一,且基本上没有精度丢失。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出依据本公开实施例的虚拟现实系统的一种示例性架构;

图2是本公开的虚拟现实设备的定位数据处理方法一个实施例的流程示意图;

图3是本公开的虚拟现实设备的定位数据处理方法另一个实施例的流程图;

图4是本公开的压缩数据的数据结构示意图;

图5是根据本公开一个实施例的电子设备的结构示意图。

本发明的实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

请参阅图1,图1示出依据本公开实施例的虚拟现实系统的一种示例性架构。在图1所示的vr系统中,包括服务端100和多个用户端系统200,用户端系统200包括vr客户端210和vr设备220。

服务端100和vr客户端210可以是以软件的形式应用于设备中。服务端100可以部署于一个独立的服务设备上,也可以部署在由多个独立的服务设备共同构成的集群服务设备上。vr客户端210部署于支持vr技术的用户终端上。vr客户端210可以为独立的软件,也可作为大型系统的子系统或组件。

服务端100可提供多用户共享vr环境平台,为各vr客户端210提供后台服务。vr客户端210可构建多用户共享vr环境,vr客户端210的用户在多用户共享vr环境中具有自己的用户替身,享受沉浸式的vr体验。

服务端100和各用户端系统200的vr客户端210通过网络连接。网络可以是互联网、全球移动通讯系统(globalsystemofmobilecommunication,gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、4g、5g、蓝牙、wi-fi等有线或无线网络。可以理解的,各用户端系统200的vr客户端210也可点对点连接。

vr设备220例如包括可直接穿戴在用户身体上的可穿戴vr设备220(例如vr头盔、vr眼镜等头戴式设备,及vr手套、vr手柄、vr手环等)、可整合进用户的衣服、配件的具有用户空间定位、体感追踪功能的设备、vr一体机等设备中的一个或多个的组合。

支持vr技术的用户终端例如可以支持与vr设备220通信的智能终端设备(智能手机、平板电脑、笔记本电脑、台式电脑、车载终端等)、上述vr一体机等设备中的一个或多个的组合。

在图1所描述的系统中,vr客户端210可以从对应的vr设备实时获得定位数据,向系统不断同步vr设备的定位数据,使得服务端和其他vr客户端可以确定同一vr场景中的各用户在场景中的对应位置及运动轨迹。

下面结合图1,对本申请实施例提供的虚拟现实设备的定位数据处理方法的方案进行说明。其中,以第一用户的vr客户端(也称为第一vr客户端)向系统共享第一用户的定位数据,从而使得第二用户的vr客户端(也称为第二vr客户端)可以在所构建的多用户共享vr环境中对第一用户的替身进行同步为例进行说明。

图2是本公开的虚拟现实设备的定位数据处理方法一个实施例的流程示意图,本实施例的方法可以包括:

s21、第一vr客户端获得第一用户的至少一个vr设备的若干帧定位数据。

本公开的实施例中,定位数据包括三维数据,例如可以是6自由度位姿数据,即沿x、y、z三个直角坐标轴方向的移动自由度和绕这三个坐标轴的转动自由度,可以理解的,定位数据也可以只包括上述6自由度位姿数据中的部分。

在一个示例性实例中,第一用户配置有多点vr设备。例如,第一用户头部配置有vr一体机,两个手部分别配置有vr手柄,vr客户端配置在vr一体机中。第一vr客户端可以预设的同步频率将此三个vr设备各自的若干帧定位数据传输给系统,例如,在一个示例性实例中,设置同步频率为1秒,vr数据刷新率为60帧每秒,则第一vr客户端每隔1秒向系统进行一次同步,即向系统传输此三个vr设备各自在1秒内的60帧定位数据。可以理解的,在一些实施例中,同步频率和vr数据刷新率可按实际需求进行设置,另外,第一用户也可只配置有单个vr设备,第一vr客户端以预设的同步频率将该vr设备的若干帧定位数据传输给系统;或者,在一些实施例中,第一用户可配置有多个vr设备,第一vr客户端依据预设的同步规则,将多个vr设备各自的若干帧定位数据不完全同时地传输给系统。可以理解的,本公开中,第一vr客户端将定位数据传输给系统,可以是将定位数据传输给服务端,也可以是将定位数据传输给另外的目标vr客户端(例如第二vr客户端),或者既传输给服务端,也传输给另外的目标vr客户端。

另外,可以理解的,第一vr客户端传输给系统的若干帧定位数据可以是连续的若干帧定位数据,或者,也可以是抽帧后的不连续的若干帧定位数据。

s22、第一vr客户端对至少一个vr设备的若干帧定位数据进行压缩处理。

本公开的实施例中,第一vr客户端可以是对该若干帧定位数据进行有损压缩处理;或者,也可以是对该若干帧定位数据进行无损压缩处理。

可以理解的,第一vr客户端进行压缩处理后得到的可以是若干帧定位数据中的部分数据,例如,对n帧定位数据进行压缩处理后所得到的数据的帧数小于n;或者,第一vr客户端进行压缩处理后得到的也可以是若干帧定位数据中的全部数据,即,对n帧定位数据进行压缩处理后所得到的数据的帧数仍等于n。

另外,可以理解的,在一种可能的实现方式中,在获得多个vr设备各自的若干帧定位数据的情况下,第一vr客户端可以先分别对每个vr设备的若干帧定位数据进行压缩处理后再进行组合;可以理解的,对各个vr设备的若干帧定位数据的压缩处理可以是采用相同的处理,也可以是采用不同的处理。

在另一种可能的实现方式中,在获得多个vr设备各自的若干帧定位数据的情况下,第一vr客户端可以先对各个vr设备的若干帧定位数据进行组合后再进行压缩处理。

s23、第一vr客户端向外部设备传输经压缩处理后的定位数据。

其中,外部设备可以是服务端设备和/或部署有第二vr客户端的用户终端。

可以理解的,第一vr客户端向外部设备传输的经压缩处理后的定位数据可以是压缩处理后获得的定位数据本身,也可以是对压缩处理后获得的定位数据进行预定后处理后获得的定位数据。

s24、第二vr客户端获得基于所述压缩处理后的定位数据获得的解压缩数据。

其中,第二vr客户端可以是从外部设备(例如第一vr客户端或服务端设备)接收到所述压缩处理后的定位数据,并对所接收到的数据进行与压缩处理相应的解压缩处理后获得解压缩数据;

可以理解的,在另一种可能的实现方式中,第二vr客户端从外部设备(例如服务器)直接接收已经过解压缩处理的数据。

可以理解的,在另一种可能的实现方式中,第二vr客户端也可以是从外部设备接收对第一vr客户端发送的压缩处理后的定位数据进行了中间处理后的压缩数据,再对所接收到的压缩数据进行解压缩处理,从而获得解压缩数据。

s25、第二vr客户端依据所获得的解压缩数据,在构建的多用户共享vr环境中对第一用户的替身进行同步。

第二vr客户端获得第一用户的vr设备的多帧定位数据后,在所构建的多用户共享vr环境中对第一用户的替身的位姿和运动轨迹进行刷新。

本实施例中,通过对定位数据进行压缩处理后再进行传输,可以降低传输数据量,减少对网络资源的占用,并且,可以在网络性能不佳时降低对vr系统的影响,避免影响用户体验。

可以理解的,本公开实施例的标号并不构成对执行顺序的限定。例如,第一vr客户端可以是先获得vr设备的全部60帧定位数据后再执行压缩处理,也可以是分多次获得vr设备的60帧定位数据,并在每次获得数据后先对获得的数据进行压缩处理。

在本公开的虚拟现实设备的定位数据处理方法另一个实施例中,同样的,以第一vr客户端向系统共享第一用户的定位数据,从而使得第二vr客户端可以在所构建的多用户共享vr环境中对第一用户的替身进行同步为例进行说明。另外,为便于清楚说明和理解,本实施例中以第一vr客户端对第一用户的一个vr设备的n帧定位数据进行处理为例进行说明。

本实施例中,如图3所示,第一vr客户端进行如下处理:

s31、获得本次同步中vr设备的首帧定位数据,将该帧定位数据记录为待同步数据s,并记录帧数i=1。

s32、判断帧数i是否小于或等于n,若是,执行s33,若帧数i大于n,则执行s40。

s33、以i+1迭代i,获得vr设备的第i帧定位数据。

s34、获得第i帧定位数据相对于第i-1帧定位数据的差值数据ei。

s35、判断差值数据ei是否为零,若是,则在待同步数据s中增加一个空值,执行s32,否则,执行s36。

在一种实现方式中,各帧数据之间是以预定的间隔符(例如逗号)相隔离,上述在待同步数据s中增加一个空值数据可以是在待同步数据s的最后直接增加一个间隔符,这样,连续的两个间隔符即表示两者之间的数据为空值,在本实施例中,则表示第i帧定位数据与第i-1帧定位数据完全相同。

s36、将差值数据ei处理为保留小数点后n位的数据,以处理后的数据迭代ei。

将差值数据ei处理为保留小数点后n位的数据例如可以是从差值数据ei中直接截取小数点后n+1位之前的数据。在另一种可能的实现方式中,将差值数据ei处理为保留小数点后n位的数据可以是对差值数据ei的小数点后第n+1位进行四舍五入处理,再截取小数点后n+1位之前的数据。可以理解的,本公开不限于此。

在一个示例中,n等于3,即保留小数点后3位的数据,这通常已能保证足够高的数据精度。

s37、将差值数据ei处理为不包括小数点的数据,以处理后的数据迭代ei。

将差值数据ei处理为不包括小数点的数据例如可以是通过将差值数据ei乘以10的n次方获得。可以理解的,本公开不限于此。

s38、将差值数据ei处理为不包括正/负号的数据,以处理后的数据迭代ei。

将差值数据ei处理为不包括正/负号的数据例如可以是通过用不同标识分别代替差值数据ei的正/负号获得,例如,可以以1代替正号,以0代替负号。可以理解的,本公开不限于此。

s39、以当前待同步数据与差值数据ei,迭代待同步数据s,返回执行s32。

s40、向外部设备传输待同步数据s,完成第一vr客户端的本次同步。

帧数i大于n时,表示已完成对本次需同步的全部n帧定位数据的压缩,此时,如图4所示,待同步数据s中记录的是第一帧定位数据、以及后面每帧定数据相对于前一帧数据的差值数据的压缩后数据。

本实施例中,第二vr客户端收到待同步数据s后,按照与第一vr客户端所用的压缩方法对应的解压缩方法,对数据s进行解压缩处理,可获得解压缩数据,并依据所获得的解压缩数据,在构建的多用户共享vr环境中对第一用户的替身进行同步。

本实施例中,在首帧定位数据之后,用差值数据代替各帧的完整数据。由于在vr应用中,用户的运动速度和运动空间有限,并且,为了保证效果,vr数据刷新率通常设得较高(业界通常认为数据刷新率不低于60帧每秒才能保证较好的显示效果),因此,相邻帧之间的差异较小,即每帧对应的差值数据比较小,可以显著降低数据量;并且,本实施例中,通过对差值数据进行去重处理(s35)、保留小数点后n位处理(s36)、去小数点处理(s37)、去符号处理(s38),对差值数据做了进一步压缩,可进一步降低数据量。经测试,采用本实施例方案进行压缩后获得的数据量至少少于原数据量的三分之一,且基本上没有精度丢失。

可以理解的,在本公开另一实现方式中,在s40中,也可采用其他方法对待同步数据s进行进一步压缩后再向外部传输,例如可以从数据s中抽掉部分帧的数据,即仅向外部设备传输待同步数据s中部分帧的数据。这尤其适用于网络状态不佳或目标vr客户端对应的用户终端性能较差的情况。

可以理解的,上述实施例方法中的符号并不构成对顺序的限定,例如,其中的去重处理、保留小数点后n位处理、去小数点处理、去符号处理,在不同实施例中可按需要选择或组合,或者以不同的顺序执行。

在上述实施例中,以首帧定位数据做为基准帧,可以理解的,在另一些实施例中,基准帧还可以是末帧、或首帧与末帧之间的其他帧。

可以理解的,在另一些实施例中,可以采用其他方式获得各帧数据的差值数据,例如,差值数据可以是相应帧的完整数据与基准帧之间的差值数据,或者,也可以是与其他相距较近的邻近帧(例如间隔2、3帧的邻近帧)之间的差值数据。

图5是根据本公开一示例性实施例示出的一种电子设备500的结构示意图。

参见图5,电子设备500包括存储器510和处理器520。

处理器520可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的方法中的部分或全部。

上文中已经参考附图详细描述了本公开的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本公开所必须的。另外,可以理解,本公开实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本公开实施例装置中的模块可以根据实际需要进行合并、划分和删减。

此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中部分或全部步骤的计算机程序代码指令。

或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(如计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤的部分或全部。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

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

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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