交互方法、装置、电子设备及存储介质与流程

文档序号:25819066发布日期:2021-07-09 14:23阅读:88来源:国知局
交互方法、装置、电子设备及存储介质与流程

1.本发明涉及虚拟现实技术领域,尤其涉及一种交互方法、装置、电子设备及存储介质。


背景技术:

2.现有的vr技术常用于观看vr视频或者用于游戏的交互式体验,没有考虑到在线交互需要实时的渲染,需要进行用户数据的同步、渲染、压缩以及传输。数据不同步,会极大影响用户的交互体验;除此之外,没有考虑网络传输的实时状态,有时造成卡顿,为了避免卡顿,传输低清的图像,用户体验感较差。


技术实现要素:

3.本发明提供一种交互方法、装置、电子设备及存储介质。
4.第一方面,本发明提供一种交互方法,包括:
5.接收各终端发送的交互行为数据;
6.对同一时间的所述各终端的交互行为数据渲染为一帧图像;
7.获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
8.进一步地,
9.所述交互行为数据包括时间戳,所述对同一时间的所述各终端的交互行为数据渲染为一帧图像,包括:
10.将所述各终端发送的携带有时间戳的交互行为数据分别对应地写入预设的各缓存队列;
11.从所述各缓存队列中分别查找目标时间戳对应的各终端的交互行为数据;
12.对查找到的目标时间戳对应的各终端的交互行为数据渲染为一帧图像。
13.进一步地,还包括:
14.如果未从所述各缓存队列中分别查找到所述目标时间戳对应的各终端的交互行为数据,则重置所述目标时间戳,并基于重置的所述目标时间戳从所述各缓存队列中重新进行查找。
15.进一步地,所述获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端,包括:
16.基于网络带宽、图像渲染时长和图像编码时长确定所述一帧图像的最优数据传输量;
17.基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
18.进一步地,所述基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端,包括:
19.判断所述最优数据传输量是否大于所述一帧图像采用高清编码占用的数据量;
20.如果否,则优先对所述一帧图像中各终端的镜头区域对应区域采用高清编码,并对其余区域采用低清编码,以使所述一帧图像编码后的占用的数据量小于或等于所述最优数据传输量。
21.进一步地,所述一帧图像划分为多个区域,每个区域可进行单独编码。
22.进一步地,在接收各终端发送的交互行为数据之前,还包括:对所述各终端进行时钟校准。
23.第二方面,本发明还提供一种交互装置,包括:
24.接收模块,用于接收各终端发送的交互行为数据;
25.渲染模块,用于对同一时间的所述各终端的交互行为数据渲染为一帧图像;
26.交互模块,用于获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
27.第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述交互方法的步骤。
28.第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述交互方法的步骤。
29.本发明提供的交互方法、装置、电子设备及存储介质,服务器基于时间戳对各终端上传的交互数据进行对其和渲染,并根据资源和网络状态等进行编码和传输,使各终端上的客户端进行同步显示,避免延迟以及使用户最大化体验到高清画面,有效地提升了终端上的交互体验。
附图说明
30.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本发明提供的交互方法的流程示意图;
32.图2是本发明提供的交互方法的各终端建立连接和时钟同步的示意图;
33.图3是本发明提供的交互方法中对各终端的数据进行渲染、编码和传输的示意图;
34.图4是本发明提供的交互方法中对图像进行分片编码的示意图;
35.图5是本发明提供的交互装置的结构示意图;
36.图6是本发明提供的电子设备的结构示意图。
具体实施方式
37.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.以下结合附图描述本发明实施例的交互方法、装置、电子设备及存储介质。
39.在描述根据本发明实施例的交互方法之前,首先对终端进行说明,本发明的实施例中,终端例如为具有vr交互功能的设备,如穿戴式设备,甚至可以是移动终端。
40.图1是根据本发明一个实施例的交互方法的流程图。如图1所示,根据本发明实施例的交互方法,该方法通常应用于服务器,该方法包括如下步骤:
41.s101:接收各终端发送的交互行为数据。
42.在本发明的一个实施例中,交互行为数据包括时间戳,为了保证时钟的一致,本发明实施例的方法在接收各终端发送的交互行为数据之前,预先建立各终端的连接和时钟同步,即:建立连接以及对所述各终端上的客户端进行时钟校准。
43.具体来说,当服务器获取到用户开启端(即:终端)到端在线虚拟交互请求后,将时钟同步请求发送至各终端上的客户端,客户端可以是应用程序,各客户端完成时钟同步,如图2所示,以两个终端为例,两个用户在开启端到端的在线虚拟交互时,服务器需要与用户之间进行时钟同步,即将时钟同步请求发送给各个用户的客户端,各客户端可以向同一个时钟服务器请求时间以完成各个客户端之间的时钟同步。在客户端完成时钟更新后,会向本服务器(如:服务端系统)发送时钟更新完毕的信号。服务器在接收到所有客户端的数据后,将建立正式的数据连接。
44.建立数据连接后,客户端将按照一定的频率固定的上传用户的姿态数据和语音数据(即:交互行为数据)。具体地,在正式建立起数据连接后,客户端将按照一定的频率固定的上传用户的姿态数据和语音数据。在数据上传的同时,客户端将会为这些数据打上时间戳,以方便服务器进行数据的对齐和渲染。
45.服务器在接收到客户端上传的数据前,客户端可以对数据进行抽样。因为客户端的数据采样频率一般较高,一般可达到上百hz,数据量很大。而实际人眼一般最多能够观察到的时间频率是24hz,即每秒只需要渲染出≥24帧的图像,用户观看时就不会有明显的卡顿感,画面也会相对比较流畅。在本发明的一个实施例中,假设客户端每秒上传100组采集到的姿态数据。
46.s102:对同一时间的所述各终端的交互行为数据渲染为一帧图像。
47.在本发明的一个实施例中,其中,交互行为数据包括时间戳,因此,对同一时间的所述各终端的交互行为数据渲染为一帧图像,包括:将所述各终端发送的携带有时间戳的交互行为数据分别对应地写入预设的各缓存队列;从所述各缓存队列中分别查找目标时间戳对应的各终端的交互行为数据;对查找到的目标时间戳对应的各终端的交互行为数据渲染为一帧图像。
48.进一步地,还包括:如果未从所述各缓存队列中分别查找到所述目标时间戳对应的各终端的交互行为数据,则重置所述目标时间戳,并基于重置的所述目标时间戳从所述各缓存队列中重新进行查找。
49.在具体示例中,服务器将两个客户端上传的用户姿态数据放入缓存队列,基于时间戳对两个用户的姿态数据进行检查,如满足预设条件,则将两组数据和时间戳送入渲染。
50.具体的,服务端维持一个缓存队列,如缓存一个客户端的数据的队列以及缓存另一个客户端的数据的队列。
51.下面按照如下算法对队列里的数据进行处理:
52.t表示为当前处理时间戳,其值初始化为max(t10,t20),其中,t10指一个缓存队列(即:队列1)中的最小时间戳,t20为另一个缓存队列(即:队列2)中的最小时间戳。
53.从队列1里找出|t

t1i|≤5ms的时间戳对应的数据,并且同时从队列2中找出|t

t2j|≤5ms的数据;
54.如果同时存在这两组数据,则将这两组数据和时间戳t行动作画面渲染;同时清空下标小于i和j的缓存数据;并且令t=t+20,进行下一帧的渲染。
55.如果没有同事存在这两组数据,说明某个数据存在延时卡顿,此时令t=t+5,并进行重新的数据查找,直至缓存队列中没有数据为止。
56.s103:获取一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
57.在本发明的一个实施例中,获取一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端,包括:基于网络带宽、图像渲染时长和图像编码时长确定所述一帧图像的最优数据传输量;基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
58.该示例中,基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端,包括:判断所述最优数据传输量是否大于所述一帧图像采用高清编码占用的数据量;如果否,则优先对所述一帧图像中各客户端的镜头区域对应区域采用高清编码,并对其余区域采用低清编码,以使所述一帧图像编码后的占用的数据量小于或等于所述最优数据传输量。
59.该示例中,一帧图像划分为多个区域,每个区域可进行单独编码。
60.具体来说,根据资源和网络状态,对姿态数据结合用户视角,进行动态叠加渲染、编码和传输。如图3所示,考虑到vr交互对于实时性要求很高,因此在渲染到压缩分发需要考虑资源和网络状态进行动态的分配。以实现客户端无感知的流畅体验。准备好的姿态数据需要经过渲染,编码和传输才可以到客户端进行显示,为了使得客户端的帧之间的时间间隔小于m(如20)毫秒,则需要考虑优化渲染、编码以及传输过程。这里结合三个步骤,以及资源和网络状态,同时对着三个步骤进行综合优化。由于图像渲染使用的是gpu资源,而编码只需要cpu即可。且gpu资源由于价格昂贵,往往是紧缺资源。那么这里需要解决如何在gpu资源有限的情况下,合理的分配资源以保障数据稳定可靠传输。
61.因此,在这里采用叠加渲染的方式,即场景内容是在客户端处渲染和产生的,类似于房间的皮肤,而用户的行为和动作则是在房间的基础上进行叠加渲染。通过采集双方用户的当前姿态,进行服务器的融合,并且结合用户视角,计算出每个用户视角范围内对象的位置以及肢体行为,渲染出实际动作图像,并且编码传输至客户端进行叠加渲染,从而减少大流量的数据传输和下载导致的时延。
62.具体而言,客户端基于同步的数据内容,根据当前网络的状态,采用分级编码,根据实时网络状态动态的调整图像tile的分辨率,动态渲染用户fov区域内的图像及坐标传输至客户端。
63.其中,服务端仅渲染用户fov区域内的图像传输至客户端,另外,由客户端渲染房间背景图像,可以缩小图像的传输大小,从而满足实时交互的性能需求。其中,fov区域指终
端的镜头显示的区域。
64.以下详细介绍基于fov区域内动态渲染的实现:
65.根据当前网络的状态,采用分级编码,根据实时网络状态动态的调整图像tile的分辨率进行动态分辨率渲染。具体如下所述:
66.采用hevc的分级编码,并且采用dash协议,对视频进行分片。如表1所示,将视频图像被分为了16个分片。每个分片可以独立的解码,且编码的码率分为2级,高清和低清。在传输的过程中,可以根据网络状态动态的调整传输的策略。
67.表1
68.12345678910111213141516
69.由于前后两帧相邻时间非常近,网络的状态基本上可以认为是平稳的。假设当前网络带宽为w,单卡渲染平均时间是ts,可用资源卡数为m≥1,最终选用的卡数为s∈[1,m],那么该帧图像渲染时长为ts/s;编码时长取该视频历史编码时长的平均值tc,传输时长为tr=该帧图像传输数据量/w。那么通过优化该帧图像数据量和使用的资源数s,使得用户的体验达到最佳,需要求解一个优化问题。
[0070]
假设将渲染好的图像分成h*r个分片,那么该图像帧编码生成的低码的大小为l,根据网络状态和当前资源约束,我们需要尽可能多的传输高码的补偿数据,根据用户上传的视角点数据,我们定义每个分片的优先级为pi,如图4所示,虚线框内为用户观看到的视角区域,该区域内的优先级最大,外围一圈次之,往外再次之依次类推。
[0071]
由于每个分片的低清数据是必须传输的,低清图像总大小为τ0。那么为了使得用户的体验达到最大,需要优化如下函数:
[0072][0073]
且满足:
[0074]
ts/s+(τ0+∑i
j
τ
j
)/w+tc

t’<18,
[0075]
0≤s≤m,
[0076]
其中,i
j
=1表示该分片传输高清数据,i
j
=0表示不传输该分片的高清数据,t’表示上一帧的图像的传输时延。
[0077]
服务器将渲染后的图像以及空间坐标返回到客户端进行显示。其中,通过客户端渲染房间背景图像。
[0078]
根据本发明实施例的交互方法,服务器基于时间戳对各终端上传的交互数据进行对其和渲染,并根据资源和网络状态等进行编码和传输,使各客户端进行同步显示,避免延迟以及使用户最大化体验到高清画面,有效地提升了终端上的交互体验。
[0079]
下面对本发明提供的交互装置进行描述,下文描述的交互装置与上文描述的交互方法可相互对应参照。
[0080]
如图5所示,根据本发明一个实施例的交互装置,包括:接收模块510、渲染模块520和交互模块530,其中:
[0081]
接收模块510,用于接收各终端发送的交互行为数据;
[0082]
渲染模块520,用于对同一时间的所述各终端的交互行为数据渲染为一帧图像;
[0083]
交互模块530,用于获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
[0084]
根据本发明实施例的交互装置,服务器基于时间戳对各终端上传的交互数据进行对其和渲染,并根据资源和网络状态等进行编码和传输,使各客户端进行同步显示,避免延迟以及使用户最大化体验到高清画面,有效地提升了终端上的交互体验。
[0085]
需要说明的是,本发明实施例的交互装置的具体实现方式与本发明实施例的交互方法的具体实现方式类似,具体请参见方法部分的描述,为了减少冗余,不做赘述。
[0086]
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)310、通信接口(communicationsinterface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行交互方法,该方法包括:接收各终端发送的交互行为数据;对同一时间的所述各终端的交互行为数据渲染为一帧图像;获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
[0087]
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0088]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行交互方法,该方法包括:接收各终端发送的交互行为数据;对同一时间的所述各终端的交互行为数据渲染为一帧图像;获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
[0089]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行交互方法,该方法包括:接收各终端发送的交互行为数据;对同一时间的所述各终端的交互行为数据渲染为一帧图像;获取所述一帧图像的最优数据传输量,并基于所述最优数据传输量调整编码策略,并基于所述编码策略对所述一帧图像编码后发送给各终端。
[0090]
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例的方案的目的。本领域普通技术人员在不付出创造性
的劳动的情况下,即可以理解并实施。
[0091]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0092]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1