虚拟物体的位姿更新方法、装置、设备以及存储介质与流程

文档序号:25485910发布日期:2021-06-15 21:48阅读:126来源:国知局
虚拟物体的位姿更新方法、装置、设备以及存储介质与流程

本申请涉及增强现实技术领域,特别是涉及一种虚拟物体的位姿更新方法、装置、设备以及存储介质。



背景技术:

增强现实(augmentedreality,ar)技术是一种将虚拟信息与真实世界融合的技术,能够将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,可以在真实世界的基础上,显示虚拟的内容。

设备在进入ar模式以后,会基于自身的位姿信息生成虚拟物体。目前,设备可以通过多种方法获取不同的位姿信息。在更新设备的位姿信息以生成虚拟物体时,存在着由位姿信息变化较大而引起的虚拟物体位置前后变化较大,进而导致显示不稳定的问题,这严重影响了用户的使用体验。



技术实现要素:

本发明提供一种虚拟物体的位姿更新方法、装置、设备以及存储介质。

本申请第一方面提供一种虚拟物体的位姿更新方法,该方法包括:获取用户在当前时刻的实际位姿信息和预估位姿信息;基于实际虚拟物体与预估虚拟物体之间的可视性特征差异,确定是否利用实际位姿信息更新预估位姿信息,以得到最终的预估位姿信息;其中,实际虚拟物体和预估虚拟物体对应为分别基于实际位姿信息和预估位姿信息生成的虚拟物体;基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿。

因此,通过基于上述的可视性特征差异,来推断在更新虚拟物体的位姿时,是否会影响用户的观感,降低用户的体验。以此,可以在对虚拟物体的位姿更新时,根据不同的情况来更新,进而改善用户的使用体验。

其中,上述的基于实际虚拟物体与预估虚拟物体之间的可视性特征差异,确定是否利用实际位姿信息更新预估位姿信息,以得到最终的预估位姿信息,包括:判断实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件;若是,则将预估位姿信息更新为实际位姿信息,并将更新后的所述预估位姿信息作为最终的所述预估位姿信息。

因此,通过判断实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件,可以确定是否利用实际位姿信息更新预估位姿信息。

其中,上述的可视性特征为面积和/或位置。预设差异条件包括以下至少一者:实际虚拟物体的面积与预估虚拟物体的面积之间的差值小于第一预设差值;实际虚拟物体的面积小于预设面积阈值或实际虚拟物体在当前显示画面中的占比小于预设比值,且预估虚拟物体的面积小于预设面积阈值或预估虚拟物体在当前显示画面中的占比小于预设比值;实际虚拟物体的位置与预估虚拟物体的位置之间的差值小于第二预设差值。

因此,通过设置多种不同的预设差异条件,针对多种不同的情况,来确定是否需要利用实际位姿信息更新预估位姿信息,使得本申请描述的方法能够适用的情形更多。

其中,上述的在基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿之前,方法还包括:若可视性特征差异不满足预设差异条件,则以预设位姿步长调整所述预估位姿信息,并将调整后的所述预估位姿信息作为最终的所述预估位姿信息,其中,调整后的预估位姿信息与实际位姿信息之间的差异小于调整前的预估位姿信息与实际位姿信息之间的差异。

因此,通过将预估位姿信息改变预设位姿值,可以使得改变后的预估位姿信息更加接近于实际位姿信息,以此可以提高基于预估位姿信息生成的虚拟物体的位姿的准确度。

其中,上述的获取用户在当前时刻的实际位姿信息,包括:若当前时刻为若干个预设时刻中的一个,则利用预设定位技术获得用户在当前时刻的实际位姿信息;若当前时刻不为若干个预设时刻中的一个,则利用预设跟踪技术对上一预设时刻的实际位姿信息进行跟踪,以得到用户在当前时刻的实际位姿信息。其中,上述的获取用户在当前时刻的预估位姿信息,包括:利用预设跟踪技术对参考位姿信息进行跟踪,以得到用户在当前时刻的预估位姿信息,其中,参考位姿信息为上一次用于更新预估位姿信息的实际位姿信息。

因此,通过根据最新的实际位姿信息来进行位姿的跟踪,可以在没有利用预设定位技术获得用户的当前位姿信息的情况下,也能获得精度较高的位姿信息。另外,通过利用预设跟踪技术来对参考位姿信息进行跟踪,并用于更新预估位姿信息,可以使得预估位姿信息可以基于实际位姿信息来获取,提高了预估位姿信息的精确度。

其中,上述的预设跟踪技术为即时定位与地图构建技术;和/或,利用预设定位技术获得用户在当前时刻的实际位姿信息,包括:利用视觉定位服务技术,对当前时刻采集得到的图像进行定位分析,得到用户在当前时刻的实际位姿信息。

因此,通过利用是视觉定位服务技术,可以获得高精度的设备位姿。

其中,上述的在获取用户在当前时刻的实际位姿信息和预估位姿信息之前,方法还包括:检测到用户进入预先构建的地图的范围内;确定当前时间为第一个预设时刻且后续每隔预设时间的时刻为一预设时刻。

因此,通过检测是否进入预先构建的地图的范围,在检测到进入预先构建的地图时,可以利用预先构建的地图的位置信息,来进一步提高获取的实际位姿信息和预估位姿信息的精确度,以此来提高虚拟物体的位姿的准确度,可以提升用户的在增强现实模式的使用体验。

本申请第二方面提供一种虚拟物体的位姿更新装置。该设备包括获取模块、判断模块和调整模块;获取模块用于获取用户在当前时刻的实际位姿信息和预估位姿信息;判断模块用于基于实际虚拟物体与预估虚拟物体之间的可视性特征差异,确定是否利用实际位姿信息更新预估位姿信息,以得到最终的所述预估位姿信息;其中,实际虚拟物体和预估虚拟物体对应为分别基于实际位姿信息和预估位姿信息生成的虚拟物体;调整模块用于基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿。

本申请第三方面提供一种虚拟物体的位姿更新设备。该设备包括相互耦接的处理器和存储器,其中,处理器用于执行存储器存储的计算机程序以上述第一方面的方法。

本申请第四方面提供一种计算机可读存储介质,该介质存储有能够被处理器运行的计算机程序,计算机程序用于实现上述第一方面的方法。

上述方案,基于上述的可视性特征差异,来推断在更新虚拟物体的位姿时,给用户观感上带来的体验,并以此来判断是否会影响用户的观感,降低用户的体验。以此,可以在对虚拟物体的位姿更新时,根据不同的情况来更新,进而改善用户的使用体验。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。

附图说明

为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要的附图作简单的介绍,显而易见地,下面描述的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:

图1是本申请虚拟物体的位姿更新方法的第一实施例的流程示意图;

图2是本申请虚拟物体的位姿更新方法的第二实施例的第一流程示意图;

图3是本申请虚拟物体的位姿更新方法的第二实施例的第二流程示意图;

图4是本申请一种虚拟物体的位姿更新装置的结构示意框图;

图5是本申请虚拟物体的位姿更新设备一实施例的结构示意框图;

图6是本申请计算机可读存储介质一实施方式的框架示意图。

具体实施方式

下面结合说明书附图,对本申请实施例的方案进行详细说明。

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。

实施本申请描述的虚拟物体的位姿更新方法的设备,可以是带有摄像头的设备,例如是手机、平板电脑、智能眼镜、智能头盔等等。可以理解的,用于实施的设备不受限制,只要能够实施增强现实技术即可。

请参阅图1,图1是本申请虚拟物体的位姿更新方法的第一实施例的流程示意图。本实施例具体包括以下步骤:

步骤s11:获取用户在当前时刻的实际位姿信息和预估位姿信息。

在本申请中,以设备的位姿信息表示用户的位姿信息。

设备在进入ar模式以后,会基于自身的位姿信息生成虚拟物体。位姿信息可以包括设备的位置和姿态,在一些实施例中,设备的位置可以用坐标表示,该设备的姿态可以用设备的朝向表示。坐标可以是设备在某一区域内的三维坐标,朝向可以是设备摄像头的拍摄方向等等。

设备可以通过多种方法获得多个自身的位姿信息,其中,预估位姿信息可以用于生成虚拟物体,并将生成的虚拟物体显示在设备的显示屏上;实际位姿信息是设备另外获取的位姿信息,在设备可以正常获取其位姿信息时,所获得的实际位姿信息的定位精度一般不低于预估位姿信息,可以将实际位姿信息认为是设备当前的真实位姿,实际位姿信息可以用于更新预估位姿信息。

一般而言,设备会结合实际位姿信息和预估位姿信息来生成虚拟物体,例如,通过实时获取预估位姿信息来持续地生成并显示虚拟物体,以保证用户在ar模式下的连续性体验,并且也会获取实际位姿信息,并利用实际位姿信息来更新预估位姿信息,以校正设备的位姿,提高设备位姿的精确度,并以此提高基于设备位姿信息生成的虚拟物体的位置准确度。

因此,设备在进入ar模式以后,可以获取用户在当前时刻的实际位姿信息和预估位姿信息。

步骤s12:基于实际虚拟物体与预估虚拟物体之间的可视性特征差异,确定是否利用实际位姿信息更新预估位姿信息,以得到最终的预估位姿信息。

在获得实际位姿信息和预估位姿信息后,可以分别利用这两个位姿信息来生成虚拟物体,将基于实际位姿信息生成的虚拟物体定义为实际虚拟物体,将基于预估位姿信息生成的虚拟物体定义为预估虚拟物体。

可以通过获取实际虚拟物体与预估虚拟物体之间的可视性特征差异,再确定是否利用实际位姿信息来更新预估位姿信息。实际虚拟物体与预估虚拟物体之间的可视性特征,可以理解为虚拟物体可以为用户所看到的特征,例如是两个虚拟物体是否出现在设备的显示屏上,两个虚拟物体在显示屏上的位置、两个虚拟物体的面积、形状等等,这些可视性特征之间的差异即为可视性特征差异。

在本步骤中,如果确定利用实际位姿信息更新预估位姿信息,则最终的预估位姿信息即是实际位姿信息;如果确定不更新预估位姿信息,则最终的预估位姿信息是预估位姿信息。

通过获取实际虚拟物体与预估虚拟物体之间的可视性特征差异,可以基于该可视性差异,判断利用实际位姿信息更新预估位姿信息时带来的虚拟物体的变化,给用户观感上所带来的差异,以此来判断是否会影响用户的观感。

步骤s13:基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿。

在得到最终的预估位姿信息后,就可以利用最终的预估位姿信息来更新当前显示画面中虚拟物体的位姿。当前显示画面是设备显示屏在当前时刻显示的画面。更新当前显示画面中虚拟物体的位姿,即是在当前显示画面中,如果虚拟物体有显示在当前显示画面上,则可以直接显示基于最终的预估位姿信息生成的虚拟物体,以此来完成虚拟物体的位姿更新。

因此,通过上述方案,可以基于上述的可视性特征差异来推定在更新虚拟物体的位姿时,给用户观感上带来的差异,并以此来判断是否会影响用户的观感,降低用户的体验。以此,可以在对虚拟物体的位姿更新时,根据不同的情况来更新,进而改善用户的使用体验。

请参阅图2,图2是本申请虚拟物体的位姿更新方法的第二实施例的第一流程示意图。本实施例是对上述第一实施例的进一步扩展,具体包括以下步骤:

步骤s21:获取用户在当前时刻的实际位姿信息和预估位姿信息。

关于本步骤的详细描述,请参阅步骤s11。

请参阅图3,图3是申请虚拟物体的位姿更新方法的第二实施例的第二流程示意图。在本公开实施例中,获取用户在当前时刻的实际位姿信息,可以通过以下步骤s211-s212实现。

步骤s211:若当前时刻为若干个预设时刻中的一个,则利用预设定位技术获得用户在当前时刻的实际位姿信息。

预设时刻可以是设备获取实际位姿信息的时间节点。预设时刻可以由设备自行确定,也可以用户手动输入来确定,或是设备在接收服务器的指令之后确定。

在一个公开实施例中,设备进入ar模式的那一刻可以设定为预设时刻,之后每间隔一定的时间,设备可以再次获取实际位姿信息。因此,设备可以确定当前时刻是否为若干个预设时刻中的一个。

在当前时刻为若干个预设时刻中的一个时,设备可以利用预设定位技术获得用户在当前时刻的实际位姿信息。例如,可以利用视觉定位服务(visualpositioningsystem,vps)技术,对当前时刻采集得到的图像进行定位分析,得到用户在当前时刻的实际位姿信息。设备在当前时刻采集得到图像为当前图像。设备可以利用后置摄像头或前置摄像头来采集图像。

设备利用vps技术对采集的当前图像进行定位分析,得到用户在当前时刻的实际位姿信息,具体可以是设备自身利用vps技术对当前时刻采集的当图像进行定位分析,或是设备将当前时刻采集得到的图像发送给vps服务器,由vps服务器对图像进行定位分析,并返回实际位姿信息给设备。以此,通过利用vps技术,可以获得高精度的设备位姿。

步骤s212:若当前时刻不为若干个预设时刻中的一个,则利用预设跟踪技术对上一预设时刻的实际位姿信息进行跟踪,以得到用户在当前时刻的实际位姿信息。

如果当前时刻不是设定的若干个预设时刻中的一个,则意味着设备当前不会利用预设定位技术获得用户在当前时刻的实际位姿信息。此时,设备可以基于上一次预设时刻获取的实际位姿信息进行跟踪,即从上一次预设时刻起,记录位姿变化的过程。以此,可以基于上一次预设时刻获取的实际位姿信息,加上之后的位姿变化,得到用户在当前时刻的实际位姿信息。例如,上一次预设时刻获取的实际位姿信息是p0,在当前时刻,利用预设跟踪技术对上一预设时刻的实际位姿信息进行跟踪的结果是p1一些公开实施例中,可以通过预设跟踪技术对参考位姿信息进行跟踪,获取从获得参考位姿信息的那一刻起至当前时刻之间的位姿变化,进而得到当前时刻的预估位姿信息。例如,在t1时刻执行本申请位姿更新方法实施例以利用t1时刻的实际位姿信息更新t1时刻的预估位姿信息,在t1的下一时刻t2重新执行本申请位姿更新方法实施例的过程中,将t1时刻的实际位姿信息p3作为参考位姿信息,利用预设跟踪技术进行参考位姿信息进行跟踪,得到t1到t2之间的位姿变化p4,t2时刻的预估位姿信息是p5,则p5=p3+p4。

因此,通过利用预设跟踪技术来对参考位姿信息进行跟踪,并用于更新预估位姿信息,可以使得预估位姿信息可以基于实际位姿信息来获取,提高了预估位姿信息的精确度。

在一个公开实施例中,本申请描述的虚拟物体的位姿更新方法,可以应用于预先构建的地图的范围内,预先构建的地图可以包含一定数量的特征点信息用于定位,以获取位姿信息。预先构建的地图例如是高精度地图。以此,可以利用预先构建的地图的位置信息,来进一步提高获取的实际位姿信息和预估位姿信息的准确度。具体而言,可以在步骤s21之前,实施以下步骤1和步骤2。

步骤1:检测到用户进入预先构建的地图的范围内。

用户位于预先构建的地图的范围内即是用户进入了已经建立提前构建了地图的区域,通过利用预先构建的地图可以实现更加精确的定位。例如,可以通过视觉定位服务,基于预先构建的地图来获得用户的位姿信息。

检测用户当前是否进入预先构建的地图的范围内,可以通过用户的位置信息,再通过得到位置信息来查询该区域是否已经建立高精度地图。用户的位置信息可以是通过设备的卫星定位系统、移动位置服务、蓝牙(bluetooth)定位、或是行动热点(wifi)定位等等可以获取设备的位置信息的技术手段获取;或是用户手动输入其当前所在的位置。可以理解的,上述获取位置信息的技术手段,可以只选择其中一种,也可以是多种手段结合,以进一步提高位置信息的准确度。在获取到位置信息后,可以通过相关的服务器,查询用户所在的区域是否已经存在预先构建的地图。

当查询到用户进入预先构建的地图的范围内时,可以认为设备检测到用户进入高精度地图的范围内。

步骤2:确定当前时间为第一个预设时刻且后续每隔预设时间的时刻为一预设时刻。

当前时间可以是用户检测到进入预先构建的地图范围内的那一刻。用户进入预先构建的地图的范围,可以利用预先构建的地图来获得更加准确的位姿信息。因此,可以将当前时间确认为第一个预设时刻,以获取实际位姿信息,并将实际位姿信息作为预估位姿信息。此后,每间隔预设时间的时刻都可以认为是预设时刻,预设时间例如是20秒。

在一个公开实施例中,在确定当前时间为第一个预设时刻后,后续的时间可以周期性的执行获取用户在当前时刻的实际位姿信息和预估位姿信息以及后续步骤,以确定是否需要利用实际位姿信息更新所述预估位姿信息。例如可以针对设备采集的每一帧图像来获取实际位姿信息和预估位姿信息,并执行后续的各个步骤。

通过检测是否进入预先构建的地图的范围,在检测到进入预先构建的地图时,可以利用预先构建的地图的位置信息,来进一步提高获取的实际位姿信息和预估位姿信息的精确度,以此来提高虚拟物体的位姿的准确度,可以提升用户的在ar模式的使用体验。

步骤s22:判断实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件。

通过步骤s21,可以获得实际位姿信息和预估位姿信息,也就可以分别基于实际位姿信息和预估位姿信息,生成实际虚拟物体和预估虚拟物体。

以此,就可以通过判断实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件,来确定是否需要基于实际位姿信息更新预估位姿信息。关于可视性特征差异的详细描述,可以参阅上述步骤s12,此处不再赘述。

在一些公开实施中,可视性特征为面积和/或位置,基于这两个可视性特征,预设差异条件可以包括以下至少一种情况:

情况1:实际虚拟物体的面积与预估虚拟物体的面积之间的差值小于第一预设差值。

实际虚拟物体的面积与预估虚拟物体的面积,可以是二者对应的像素点的多少,例如是2000个像素点大小,或是1500个像素点大小等等。

对于实际虚拟物体的面积与预估虚拟物体的面积而言,其面积大小取决于虚拟物体的位置与用户的位置的相对距离。当虚拟物体的位置不变时,用户的位置会影响虚拟物体的面积大小。例如,用户的位置距离虚拟物体10米时,虚拟物体的面积可以是1500个像素点的大小;距离为5米时,面积就是2000个像素点的大小。

通过获取实际虚拟物体的面积与预估虚拟物体的面积之间的差值,可以通过差值的大小,来推断如果利用实际位姿信息更新预估位姿信息时,当前显示画面的变化(即显示实际虚拟物体,不显示预估虚拟物体)带给用户的观感。

可以理解的,因为当前显示画面的前几帧画面是显示基于预估位姿信息生成的虚拟物体,如果在当前显示画面中显示实际虚拟物体,与之前显示的虚拟物体的面积差异过大,用户会觉得显示画面上的虚拟物体出现了不稳定、跳变等现象,使用户觉得显示画面不稳定,ar模式运行不流畅等等负面体验。

因此,可以将预设差异条件设置为实际虚拟物体的面积与预估虚拟物体的面积之间的差值小于第一预设差值,使得在面积大小的差异不易为用户感知的情况下,再更新预估位姿信息。第一预设差值例如是50-150个像素点大小的任一值等等。

以此,可以在用户不易感知的情况下,利用实际位姿信息更新预估位姿信息,提高了设备的预估位姿信息的准确度,也会使得基于预估位姿信息生成并显示的虚拟物体的位姿更加准确。

情况2:实际虚拟物体的面积小于预设面积阈值或实际虚拟物体在当前显示画面中的占比小于预设比值,且预估虚拟物体的面积小于预设面积阈值或预估虚拟物体在当前显示画面中的占比小于预设比值。

可以理解的,当显示画面的中虚拟物体的面积较小时,用户可能较难关注到虚拟物体,此时,如果利用实际位姿信息更新预估位姿信息,并在当前显示画面显示实际虚拟物体,用户也可能无法感知到。因此,就可以利用实际位姿信息更新预估位姿信息。

具体而言,当实际虚拟物体的面积小于预设面积阈值或是实际虚拟物体在当前显示画面中的占比小于预设比值,都可以认为是实际虚拟物体的面积较小的情况。预设面积阈值例如是500-800个像素点大小中的任一值。预设比值例如是八分之一、十分之一等等。实际虚拟物体在当前显示画面中的占比,可以理解为实际虚拟物体的面积与整个显示画面面积的比值。例如实际虚拟物体的面积大小是20000个像素点,显示画面的面积是3686400像素点大小,则实际虚拟物体的面积有整个显示画面面积的比值约为千分之五。

同理,当预估虚拟物体面积也小于预设面积阈值或预估虚拟物体在当前显示画面中的占比小于预设比值,也可以认为预估虚拟物体的面积属于较小的情况。此时,因为实际虚拟物体和预估虚拟物体的面积都较小,不易为用户感知,即便更新预估位姿信息,也不会在当前显示画面上带来明显的变化,不会对用户的体验造成太大的影响,就可以利用实际位姿信息更新预估位姿信息。

当实际虚拟物体和预估虚拟物体都不显示在当前画面时,即可以认为二者的面积大小都为0,也肯定小于预设面积阈值。此时,因为二者都不会显示在当前显示画面,当前显示画面不会因为预估位姿信息更新而带来不稳定的情况,就可以利用实际位姿信息来更新预估位姿信息,而这也不会给用户的观感带来负面体验。

情况3:实际虚拟物体的位置与预估虚拟物体的位置之间的差值小于第二预设差值。

在一些情况中,在用户没有移动、或是移动变化很小的情况下,虽然显示画面中的虚拟物体的面积大小没有变化,但是虚拟物体的位置的移动也会明显给用户带来显示画面不稳定的负面体验,例如虚拟物体从显示画面的左侧移动中间位置或是右侧等等。

此时,可以将预设条件设置为实际虚拟物体的位置与预估虚拟物体的位置之间的差值小于第二预设差值。实际虚拟物体的位置与预估虚拟物体的位置之间的差值,可以理解为对应于实际虚拟物体和预估虚拟物体的同一个点,其显示当前显示画面上的距离。

在一个具体实施场景中,实际虚拟物体上的一个点,显示在当前显示画面上像素坐标是(2,2);预估虚拟物体上的同一个点,显示在当前显示画面上像素坐标是(5,6),则实际虚拟物体的位置与预估虚拟物体的位置之间的差值即为5。在此情况下,第二预设差值可以设置为5-15的任一值。

在另一个具体实施场景中,第二预设差值可以包括横坐标预设差值和纵坐标预设差值,分别对应像素坐标的横坐标的差值以及纵坐标的差值。例如,实际虚拟物体上的一个点,显示在当前显示画面上像素坐标是(3,3);预估虚拟物体上的同一个点,显示在当前显示画面上像素坐标是(7,9),则横坐标预设差值为4,纵坐标预设差值为6。在此情况下,当实际虚拟物体的位置与预估虚拟物体的位置之间的差值的横坐标差值和纵坐标差值均小于横坐标预设差值和纵坐标预设差值时,即可以认为实际虚拟物体的位置与预估虚拟物体的位置之间的差值小于第二预设值。横坐标预设差值和纵坐标预设差值,可以设置为5-15的任一值。

在一些具体实施场景中,也可以是只要实际虚拟物体的位置与预估虚拟物体的位置之间的差值的横坐标差值或纵坐标差值的其中一个,小于横坐标预设差值或纵坐标预设差值,就可以认为小于第二预设差值。

以此,在虚拟物体的位置变化较小,当前显示画面不会因为预估位姿信息更新而带来不稳定的情况下,利用实际位姿信息更新预估位姿信息,同时也不会给用户的观感带来负面体验。

可以理解的,上述的第一预设差值、预设面积阈值、预设比值和第二预设差值,可以由设备根据具体情况进行调整,也可以由用户自行输入确定,还可以由设备通过连接云端服务器来确定。

在判断实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件后,如果不满足,则执行步骤s23;如果满足,则执行步骤s24。

步骤s23:以预设位姿步长调整所述预估位姿信息,并将调整后的所述预估位姿信息作为最终的所述预估位姿信息。

在确定实际虚拟物体与预估虚拟物体之间的可视性特征差异不满足预设差异条件后,意味着不会用实际位姿信息更新预估位姿信息。后续,预估位姿信息可能会随着时间的推移,变得越来越不准确。此时,可以对预估位姿信息进行校正,以降低预估位姿信息偏差程度。例如,以预设位姿步长将调整所述预估位姿信息,使得调整后的预估位姿信息与实际位姿信息之间的差异小于调整前的预估位姿信息与实际位姿信息之间的差异。此时,可以将调整后的预估位姿信息作为最终的预估位姿信息。

在一个具体实施场景中,可以判断基于调整后的预估位姿信息生成的预估虚拟物体与基于实际位姿信息生成的实际虚拟物体之间的可视性特征差异是否满足预设差异条件,若满足,则可以停止调整。

预估位姿信息与实际位姿信息之间的差异,可以表现为位置和/或朝向上的差异。位置差异具体可以是三维坐标上的差异。预设位姿步长可以包括位置和/或朝向,例如预设位姿步长是预估位姿信息与实际位姿信息之间的位置差异的中间值,朝向差异的中间值。例如,实际位姿信息的坐标是(4,4,10),朝向是正北方;预估位姿信息是(8,8,20),朝向是正西方。则预设位姿步长(2,2,5),朝向偏转45度,基于该预设位姿步长,改变后的预估位姿信息即为(6,6,15),朝向是正西北方。

以此,通过以预设位姿步长调整预估位姿信息,可以使得调整后得到的最终的预估位姿信息更加接近于实际位姿信息,以此可以提高基于最终的预估位姿信息生成的虚拟物体的位姿的准确度。

步骤s24:将预估位姿信息更新为实际位姿信息,并将更新后的所述预估位姿信息作为最终的所述预估位姿信息。

实际虚拟物体与预估虚拟物体之间的可视性特征差异满足预设差异条件,则可以认为利用更新后的预估位姿信息更新为实际位姿信息,并基于更新后的预估位姿信息来生成虚拟物体,在当前显示画面中的变化不易为用户感知,不会降低用户的体验。此时可以将预估位姿信息更新为实际位姿信息,并将更新后的预估位姿信息作为最终的预估位姿信息。

步骤s25:基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿。

在步骤s24中,调整后的预估位姿信息即为最终的预估位姿信息。在步骤s25中,更新后的预估位姿信息即为最终的预估位姿信息。因此,可以基于步骤s24或是步骤s25得到的最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿。

详情请参阅步骤s13,此处不再赘述。

上述方案,通过判断各种情况下的实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件,来推断利用实际位姿信息更新预估位姿信息时,当前显示画面中虚拟物体的变化给用户观感上带来的体验情况,并以此来确定是否利用实际位姿信息更新预估位姿信息。

请参阅图4,图4为本申请一种虚拟物体的位姿更新装置的结构示意框图。该位姿更新装置40包括获取模块41、判断调整模块42和显示模块43。获取模块41用于执行获取用户在当前时刻的实际位姿信息和预估位姿信息。判断调整模块42用于执行基于实际虚拟物体与预估虚拟物体之间的可视性特征差异,确定是否利用实际位姿信息更新预估位姿信息,以得到最终的所述预估位姿信息;其中,实际虚拟物体和预估虚拟物体对应为分别基于实际位姿信息和预估位姿信息生成的虚拟物体。显示模块43用于执行基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿。

其中,判断调整模块42用于执行基于实际虚拟物体与预估虚拟物体之间的可视性特征差异,确定是否利用实际位姿信息更新预估位姿信息,以得到最终的所述预估位姿信息,包括:判断实际虚拟物体与预估虚拟物体之间的可视性特征差异是否满足预设差异条件;若是,则将预估位姿信息更新为实际位姿信息,并将更新后的所述预估位姿信息作为最终的所述预估位姿信息。

其中,上述的可视性特征为面积和/或位置;预设差异条件包括以下至少一者:实际虚拟物体的面积与预估虚拟物体的面积之间的差值小于第一预设差值;实际虚拟物体的面积小于预设面积阈值或实际虚拟物体在当前显示画面中的占比小于预设比值,且预估虚拟物体的面积小于预设面积阈值或预估虚拟物体在当前显示画面中的占比小于预设比值;实际虚拟物体的位置与预估虚拟物体的位置之间的差值小于第二预设差值。

其中,该位姿更新装置40包括校正模块,校正模块用于在显示模块43执行基于最终的预估位姿信息,更新当前显示画面中虚拟物体的位姿之前,在判断调整模块42判断可视性特征差异不满足预设差异条件的情况下,执行以预设位姿步长调整所述预估位姿信息,并将调整后的所述预估位姿信息作为最终的所述预估位姿信息,其中,调整后的预估位姿信息与实际位姿信息之间的差异小于调整前的预估位姿信息与实际位姿信息之间的差异。

其中,获取模块41用于执行获取用户在当前时刻的实际位姿信息,包括:若当前时刻为若干个预设时刻中的一个,则利用预设定位技术获得用户在当前时刻的实际位姿信息;若当前时刻不为若干个预设时刻中的一个,则利用预设跟踪技术对上一预设时刻的实际位姿信息进行跟踪,以得到用户在当前时刻的实际位姿信息。获取模块41用于执行获取用户在当前时刻的预估位姿信息,包括:利用预设跟踪技术对参考位姿信息进行跟踪,以得到用户在当前时刻的预估位姿信息,其中,参考位姿信息为上一次用于更新预估位姿信息的实际位姿信息。

其中,上述的预设跟踪技术为即时定位与地图构建技术。上述的获取模块41用于执行利用预设定位技术获得用户在当前时刻的实际位姿信息,包括:利用视觉定位服务技术,对当前时刻采集得到的图像进行定位分析,得到用户在当前时刻的实际位姿信息。

其中,该位姿更新装置40包括地图检测模块,地图检测模块用于在获取模块41执行获取用户在当前时刻的实际位姿信息和预估位姿信息之前,执行检测到用户进入预先构建的范围内;确定当前时间为第一个预设时刻且后续每隔预设时间的时刻为一预设时刻。

请参阅图5,图5为本申请虚拟物体的位姿更新设备一实施例的结构示意框图。该设备50包括处理器51以及与处理器耦接的存储器52。

处理器51用于执行存储器52存储的计算机程序,以执行上述的虚拟物体的位姿更新方法。

请参阅图6,图6为本申请计算机可读存储介质一实施方式的框架示意图。计算机可读存储介质600存储有计算机程序601,计算机程序601被处理器执行时可实现上述任一实施例中软件模块的搭建方法的步骤。

该计算机可读存储介质600具体可以为u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等可以存储计算机程序的介质,或者也可以为存储有该计算机程序的服务器,该服务器可将存储的计算机程序发送给其他设备运行,或者也可以自运行该存储的计算机程序。

可以理解的,在本申请提供的实施例中,所有的实施例都是不冲突的,即是可以相互结合的。在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

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