基于社交推荐和推拉策略的渐进DVE预下载方法及系统与流程

文档序号:12063420阅读:237来源:国知局
基于社交推荐和推拉策略的渐进DVE预下载方法及系统与流程

本发明涉及一种虚拟环境预加载方法,特别涉及一种基于社交推荐和推拉策略的渐进DVE预下载方法及系统。



背景技术:

预加载是指对用户节点即将加载的场景数据进行提前拾取,以减少场景渲染的等待时间,提高用户漫游的流畅度。节点在虚拟场景中漫游时,节点化身为保证最基本的视觉需求,首先要加载其兴趣区域(area of interest,AOI)内的场景数据,在网络带宽充分的情况下,可以对未来可能加载的场景数据进行预测并提前加载,为化身漫游的流畅性提供保障。而数据分发策略是调度预加载场景数据的实现过程,是研究在所构建的覆盖网上,节点之间如何进行调度从而实现场景数据的高效实时传输。目前,基本的分发策略有两种:推(Push)策略和拉(Pull)策略。Pull/Push策略是根据客户端主动或被动的获取数据而划分出的两种传输策略,在Push模式中,客户端不断地将自身的视点信息发送给服务器,服务器根据这些信息对数据请求者的所需场景进行判断,并将场景模型数据发送给该客户端。在Pull模式中,每一个客户端都已载入了整个虚拟场景的描述文件,客户端可以根据自身的视点信息,来判断还要下载哪些场景文件,并向服务器或者其他节点发出请求。

已有的预下载策略都是通过预判化身的运动趋势并进行场景的预下载,主要方法有基于历史运动轨迹的预下载和基于领域扩张的预下载,这些预下载方式主要有以下不足:

1)节点协作性低,现有的DVE预下载机制主要是针对C/S架构的DVE,皆为根据化身各自的历史运动轨迹或趋势孤立来判断每个节点的预加载场景,没有考虑到用户节点之间的协作性,也给服务器带来了巨大压力。

2)数据分发效率低,当前针对场景数据的分发只是单一的采用pull和push机制,没有和DVE数据加载需求特征结合起来,导致了数据分发效率低,加重了系统的网络负载。

因此,现有技术还有待于改进和发展。



技术实现要素:

本发明的目的在于提供一种基于社交推荐和推拉策略的渐进DVE预下载方法及系统,解决了现有技术存在的预下载策略的节点协作性低和数据分发效率低,给服务器带来巨大压力和加重系统网络负载的问题。

本发明的上述目的通过以下技术方案实现:

基于社交推荐和推拉策略的渐进DVE预下载方法及系统,包括以下步骤:

步骤A00:基于泰森多边形图对化身的当前潜在可视场景集进行判断,对化身当前兴趣区域的场景数据进行拉取下载;

步骤B00:基于社交推荐对化身的未来潜在可视场景集进行预测,通过拉-推混合预下载机制对化身未来兴趣区域内及外围的场景数据进行预下载,并将相应的场景数据分发至对应的化身。

所述的步骤A00中,通过基于泰森多边形图的邻居发现机制、场景拾取机制来保障化身当前兴趣区域的场景数据进行拉取下载。

所述的步骤B00包括以下步骤:

步骤b10:不同化身间进行状态信息的周期性交互;

步骤b20:根据不同化身的状态信息计算不同化身间的兴趣相似度;

步骤b30:根据计算出的不同化身间的兴趣相似度构建邻居集合;

步骤b40:根据邻居集合得出不同化身预推荐的场景集,按照化身的兴趣度对这些场景集进行排序,并将化身兴趣度高的场景集数据推荐给化身;

步骤b50:通过拉-推混合预下载机制对不同化身未来兴趣区域内及外围的场景数据进行预下载,并将不同的场景数据分发至对应的化身。

所述的步骤b20至步骤b40通过以下过程实现:

设化身u对其场景兴趣集中虚拟物体的兴趣度向量为Du={Du1,Du2,…,Dun},其中,n=|mt|为场景兴趣集的大小,采用修正的余弦相似度来计算不同化身间的相似度Ssim(u,v),

其中,Su,Sv,Suv分别为化身u和化身v的场景兴趣集及其它们的交集,Dui和Dvi分别为化身u和化身v对虚拟物体i的兴趣度,和分别为u和v的平均兴趣度;

给定阈值ε,当Ssim(u,v)>ε时,v将成为u的兴趣集邻居,建立邻居集合N={v1,v2,…,vk},反之,v和u不会互为兴趣集邻居;根据当前化身u和所有邻居v的场景集,生成u的预推荐场景集S=Sv1∪Sv2∪…∪Svk-Su,对于S中的任意虚拟物体,使用加权平均算法预测化身u对它们的兴趣度

最后,将预推荐场景集S中的虚拟物体按照兴趣度进行大小排序,将排名靠前的虚拟物体推荐给化身u,完成场景集数据推荐。

所述的场景集数据分为预拉取区域数据和预推送区域数据。

在当前化身节点下行带宽能力和处理能力均满足要求时,所述的步骤b50包括以下步骤:

步骤b511:对于当前化身节点兴趣区域的预拉取区域数据采用拉取机制从邻居节点直接获取资源;

步骤b512:对于当前化身节点兴趣区域的预推送区域数据采用推送机制,通过超级节点将当前化身节点的兴趣集邻居中兴趣度高的场景数据直接推荐给当前化身节点。

在当前化身节点下行带宽能力和处理能力不足时,所述的步骤b50包括以下步骤:

步骤b521:首先通过超级节点将当前节点兴趣区域的预拉取区域的数据信息更新至邻居节点,邻居节点将当前节点兴趣区域的预拉取区域的数据通过拉取机制从自身邻居节点获取资源,再将获取的当前节点兴趣区域的预拉取区域的数据通过推送机制推荐给当前节点;

步骤b522:对于当前化身节点兴趣区域的预推送区域数据采用推送机制通过超级节点从当前化身节点的兴趣集邻居中将当前化身节点兴趣度高的场景数据直接推荐给当前化身节点。

本发明的另一目的在于提供一种基于社交推荐和推拉策略的渐进DVE预下载系统,包括当前化身节点和超级节点,当前化身节点通过基于泰森多边形图的邻居发现机制、场景拾取机制对当前兴趣区域的场景数据进行拉取下载;当前化身节点将自身的状态信息提交至超级节点,同时接收超级节点发送的其他节点的状态信息,超级节点根据当前化身节点和其他节点的状态信息计算当前化身节点和其他节点的兴趣相似度,根据计算结果为当前化身节点构建邻居集合,并根据邻居集合得出当前化身节点预推荐的场景集,按照当前化身节点的兴趣度对这些场景集进行排序,并将当前化身节点兴趣度高的场景集数据推荐给当前化身节点;通过拉-推混合预下载机制,当前化身节点将自身需要的预推荐场景集数据向邻居集合中的节点或超级节点发送请求进行预下载。

本发明的有益效果在于:本发明通过提供一种基于社交推荐和推拉策略的渐进DVE预下载方法及系统,首次将社交概念引入到了场景预下载机制中,量化了节点化身兴趣,给出了化身相似度计算算法和预推荐场景的预测算法;基于节点场景拾取区域的特征,提出了针对不同区域的Pull-Push策略,充分利用了对等网络中节点的协作特性,减少了数据传输延迟,从整体上提升了DVE的数据传输效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实例及其说明用于解释本发明,并不构成对本发明的不当限定。

图1为本发明的基于社交推荐和推拉策略的渐进DVE预下载方法的步骤流程图。

图2为本发明的不同化身的场景兴趣集相似性度量示意图。

图3为本发明的节点自身Pull和Push场景数据示意。

图4为本发明的邻居节点Push场景数据示意图。

图5为本发明的Pull-AOP和Push-AOP示意图。

具体实施方式

下面结合附图进一步说明本发明的详细内容及其具体实施方式。

参见图1所示,本发明的基于社交推荐和推拉策略的渐进DVE(distributed virtual environments,分布式虚拟环境)预下载方法及系统,包括以下步骤:

步骤A00:基于Voronoi(泰森多边形图,由一组由连接两邻点直线的垂直平分线组成的连续多边形组成)对化身的CPVS(当前潜在可视场景集)进行判断,对化身当前AOI(area of interest,兴趣区域)的场景数据进行Pull下载(拉取下载);

步骤B00:基于社交推荐对化身的FPVS(未来潜在可视场景集)进行预测,通过Pull-Push混合预下载机制对化身未来AOI内及外围的场景数据进行预下载,并将相应的场景数据分发至对应的化身。

具体地,所述步骤A00中,通过基于Voronoi的邻居发现机制、场景拾取机制来保障化身当前AOI的场景数据进行Pull下载。

具体地,所述步骤B00包括以下步骤:

步骤b10:不同化身间进行状态信息的周期性交互;

步骤b20:根据不同化身的状态信息计算不同化身间的兴趣相似度;

步骤b30:根据计算出的不同化身间的兴趣相似度构建邻居集合;

步骤b40:根据邻居集合得出不同化身预推荐的场景集,按照化身的兴趣度对这些场景集进行排序,并将化身兴趣度高的场景集数据推荐给化身;

步骤b50:通过Pull-Push混合预下载机制对不同化身未来AOI内及外围的场景数据进行预下载,并将不同的场景数据分发至对应的化身。

所述步骤b10-b40中,通过化身(节点与超级节点)之间周期性的交互其他节点的状态信息(不同的节点向超级节点提交状态更新信息,通过超级节点交互各自的状态信息),基于各节点的兴趣,超级节点采用协同过滤算法来计算化身(节点)兴趣的相似度,并将兴趣相似度高的节点构建为一个邻居集合,邻居集合内节点可通过超级节点互相推荐场景数据;然后根据Pull-Push混合机制来进行场景数据预下载。

虚拟世界是现实世界的仿真和延伸,其中的化身(节点)同样具有社会性。化身可能在同一区域逗留或者有相似的漫游行为,则这些化身的场景兴趣集存在一致的元素,因此可以按照兴趣集的相似性将化身划分为不同的兴趣群组。同一兴趣群组中的化身拥有相似的场景数据,它们的兴趣也较为相关,而且行为趋势也较相似,那么它们可以互为兴趣集邻居,对彼此的预下载场景进行推荐和预测。

如图2所示,为不同化身的场景兴趣集相似性度量示意图。假设在一场景区域中有3个节点化身a,b和c,分别用Sa,Sb和Sc来表示它们的场景兴趣集,从图2中可以看出,Sa和Sb之间有较大的交集,而Sa和Sc,Sb和Sc几乎没有交集,所以只有a和b为强关联,兴趣较为相似,它们构成了一个兴趣群组,并可互为兴趣集邻居。

本实施例中,引入基于用户的协同过滤推荐算法来进行兴趣群组间的预下载场景的推荐。该算法基于这样一个现象:有相似兴趣的用户可能对相同的项目感兴趣,这和虚拟世界中兴趣群组的预下载场景预测思路是一致的。首先根据虚拟场景中各个节点化身对虚拟物体的兴趣度(评分),为当前化身寻找兴趣相似的兴趣集邻居;然后,基于邻居的场景兴趣集为当前化身进行场景推荐。

设化身u对其场景兴趣集中虚拟物体的兴趣度向量为Du={Du1,Du2,…,Dun},其中,n=|mt|为场景兴趣集的大小。本技术方案采用修正的余弦相似度来计算化身间的相似度Ssim(u,v),

其中,Su,Sv,Suv分别为化身u和化身v的场景兴趣集及其它们的交集,Dui和Dvi分别为化身u和v对虚拟物体i的兴趣度,和分别为u和v的平均兴趣度。

给定阈值ε,当Ssim(u,v)>ε时,v将成为u的兴趣集邻居,建立邻居集合N={v1,v2,…,vk};反之,v和u不会互为兴趣集邻居。根据当前化身u和所有邻居v的场景集,生成u的预推荐场景集S=Sv1∪Sv2∪…∪Svk-Su,对于S中的任意虚拟物体,使用加权平均算法预测化身u对它们的兴趣度

最后,将预推荐场景集S中的虚拟物体按照兴趣度进行大小排序,将排名靠前的虚拟物体推荐给化身u,完成场景推荐。

而在完成对化身(节点)的场景推荐后,需要对这些场景数据进行预下载。在DVE中,各个节点的处理能力各异,存在计算资源闲置的情况。已有的预下载机制只是从节点自身的角度来加载数据,未能从整体上充分调配计算资源。本技术方案提出了基于Pull-Push的DVE预下载机制,来充分体现P2P-DVE的“协作”理念。并且DVE中的场景数据加载有其特有的需求,我们将节点的场景拾取区域分为两部分,一、预拉取区域(pull area of prefetching,Pull-AOP),化身AOI外围的场景是首要预下载的数据,具有最高的预加载优先级,所以需要采用Pull机制对这些数据进行精确的请求;二、预推送区域(push area of prefetching,Push-AOP),预拉取区域的外围是更大范围的预加载区域,但加载哪些场景的不确定性较大,所以采用Push机制为当前化身推送加载概率较大的数据,在减少信息交互和网络延迟的同时,提高预下载数据的精度。化身AOI及其外围的预加载区域对数据的实时性要求较高,所以采用Pull机制最为合理;对于更大范围的预加载区域,由于化身移动的随机性,则宜采用Push机制由兴趣集邻居推荐兴趣度最高的场景给当前化身,使整体代价最小。

本发明的预下载机制基于混合式P2P架构,场景中化身状态的更新和预下载场景预测算法由超级节点统一计算和管理。所述步骤b50具体包括以下两种情况:

(一)在当前化身(节点)下行带宽能力和处理能力均满足要求时,步骤b50包括以下步骤:

步骤b511:对于当前化身节点兴趣区域的预拉取区域数据采用拉取机制从邻居节点直接获取资源;

步骤b512:对于当前化身节点兴趣区域的预推送区域数据采用推送机制,通过超级节点将当前化身节点的兴趣集邻居中兴趣度高的场景数据直接推荐给当前化身节点。

如图3所示,(1)p1向p2请求下载o1,并向S提交状态更新信息;(2)p2将请求数据o1发送至p1;(3)S根据p1的状态并通过兴趣集预测算法,告知p3应将o2推动给p1;(4)p3将o2发送给p1。其中,S为超级节点,o1为预拉取场景,o2为预推送场景,p1为当前节点化身,p2为邻居节点,p3为邻居节点。

(二)在当前化身(节点)下行带宽能力和处理能力不足时,步骤b50包括以下步骤:

步骤b521:首先通过超级节点将当前节点兴趣区域的预拉取区域的数据信息更新至邻居节点,邻居节点将当前节点兴趣区域的预拉取区域的数据通过拉取机制从自身邻居节点获取资源,再将获取的当前节点兴趣区域的预拉取区域的数据通过推送机制推荐给当前节点;

步骤b522:对于当前化身节点兴趣区域的预推送区域数据采用推送机制通过超级节点从当前化身节点的兴趣集邻居中将当前化身节点兴趣度高的场景数据直接推荐给当前化身节点。

如图4所示,(1)p1和p2分别从S处获取彼此的状态信息;(2)p1首先从p3处将自身所需数据o1拉取到本地;(3)p1再从p4处将p2所需数据o2预先拉取到本地;(4)p1将数据o2推送给p2。其中,S为超级节点,o1和o2均为预拉取场景,p1和p2为请求节点,p3和p4为供应节点。

如图5所示,圆心O为化身视点所在位置,那么记预拉取区域RPull={R|Cr<R<CR},预推送区域RPush={R|CR<R<CR′};其中r为AOI的半径,Cr为半径为r的圆形区域,CR为半径为R的圆形区域,其中CR′为半径为R’的圆形区域。

一种采用如上述所述的基于社交推荐和推拉策略的渐进DVE预下载方法的系统,包括当前化身节点和超级节点,当前化身节点通过基于泰森多边形图的邻居发现机制、场景拾取机制对当前兴趣区域的场景数据进行拉取下载;当前化身节点将自身的状态信息提交至超级节点,同时接收超级节点发送的其他节点的状态信息,超级节点根据当前化身节点和其他节点的状态信息计算当前化身节点和其他节点的兴趣相似度,根据计算结果为当前化身节点构建邻居集合,并根据邻居集合得出当前化身节点预推荐的场景集,按照当前化身节点的兴趣度对这些场景集进行排序,并将当前化身节点兴趣度高的场景集数据推荐给当前化身节点;通过拉-推混合预下载机制,当前化身节点将自身需要的预推荐场景集数据向邻居集合中的节点或超级节点发送请求进行预下载。

本发明首次将社交概念引入到了场景预下载机制中,量化了节点化身兴趣,给出了化身相似度计算算法和预推荐场景的预测算法;基于节点场景拾取区域的特征,提出了针对不同区域的Pull-Push策略,充分利用了对等网络中节点的协作特性,减少了数据传输延迟,从整体上提升了DVE的数据传输效率。

以上所述仅为本发明的优选实例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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