增强现实信息提供方法、装置及电子设备与流程

文档序号:17336630发布日期:2019-04-05 22:34阅读:177来源:国知局
增强现实信息提供方法、装置及电子设备与流程

本申请涉及增强现实信息处理技术领域,特别是涉及增强现实信息提供方法、装置及电子设备。



背景技术:

增强现实(ar)是一种将真实世界信息和虚拟世界信息“无缝”集成的技术,是把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息、声音、味道、触觉等),通过电脑等科学技术,模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。在ar场景中,真实的物体和虚拟的物体实时地叠加到了同一个画面或空间同时存在。

在实际应用中,虚拟图像在画面中的位置可能会是与真实图像在画面中的位置相关的,例如,虚拟图像可能是针对某真实图像对应物体的相关介绍、使用方法演示等信息,则虚拟图像通常需要展示在真实图像的附近,甚至是在与真实图像重叠时,才能够获得最佳的展示效果。但是,在具体进行ar互动的过程中,通常是由用户手持终端设备对真实物体进行拍摄的状态下进行互动,而用户在拍摄过程中经常会出现一些移动等情况,使得真实图像在画面中的位置并不是固定不变的,这就使得虚拟图像的展示位置需要跟随真实图像位置的变化,以获得理想的展示效果。

但是,在现有技术中经常出现虚拟图像与真实图像的位置无法同步变化的情况,例如,假设某状态下,虚拟图像与真实图像均位于画面中的a位置,某时刻,由于用户对终端设备进行了移动,使得真实图像被移动到b位置,而虚拟图像却仍然位于a位置,间隔几秒钟之后才会跟随变化到b位置。如果用户对终端设备进行移动的动作比较频繁或者左右或者上下往复的移动,则会让用户感觉到虚拟图像比较“飘”,展示效果不佳。

因此,如何在ar交互过程中,实现虚拟图像与真实图像在画面中位置、大小等展示属性的同步变化,成为需要本领域技术人员解决的技术问题。



技术实现要素:

本申请提供了增强现实信息提供方法、装置及电子设备,能够避免在终端设备发生移动等情况时导致的虚拟图像发“飘”的现象发生,提高ar画面的质量及展示效果。

本申请提供了如下方案:

一种增强现实信息提供方法,包括:

接收到第一线程采集的一帧实景图像信息时,暂停所述第一线程的实景图像采集操作;

将所述实景图像信息提供给第二线程,由所述第二线程根据目标物体在增强现实ar画面中的展示属性信息,确定虚拟图像在ar画面中的展示属性信息;

指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成及绘制,并指示所述第一线程执行下一帧图像的采集操作。

一种增强现实信息提供装置,包括:

暂停指示单元,用于接收到第一线程采集的一帧实景图像信息时,暂停所述第一线程的实景图像采集操作;

信息提供单元,用于将所述实景图像信息提供给第二线程,由所述第二线程根据目标物体在增强现实ar画面中的展示属性信息,确定虚拟图像在ar画面中的展示属性信息;

绘制指示单元,用于指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成及绘制,并指示所述第一线程执行下一帧图像的采集操作。

一种电子设备,包括:

一个或多个处理器;以及

与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:

接收到第一线程采集的一帧实景图像信息时,暂停所述第一线程的实景图像采集操作;

将所述实景图像信息提供给第二线程,由所述第二线程根据目标物体在增强现实ar画面中的展示属性信息,确定虚拟图像在ar画面中的展示属性信息;

指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成及绘制,并指示所述第一线程执行下一帧图像的采集操作。

根据本申请提供的具体实施例,本申请公开了以下技术效果:

通过本申请实施例,通过对第一线程采集实景图像的时机进行限制,使得第二线程在根据第一线程采集到的实景图像信息完成虚拟图像的展示属性的确定以及渲染之后,第一线程再进行下一帧实景图像的采集,这使得虚拟图像在ar画面中的位置、大小等展示属性可以是严格按照目标物体当前在画面中的位置、大小等展示属性来确定的,并同时进行绘制,因此,不会出现根据相机线程采集到的前几帧的实景图像进行虚拟图像绘制的情况,可以实现虚拟图像与实景图像在ar画面中位置、大小等展示属性的同步变化,避免在终端设备发生移动等情况时导致的虚拟图像发“飘”的现象发生,提高ar画面的质量及展示效果。

当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1是本申请实施例提供的线程关系示意图;

图2是本申请实施例提供的系统架构的示意图;

图3是本申请实施例提供的方法的流程图;

图4是本申请实施例提供的装置的示意图;

图5是本申请实施例提供的电子设备的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。

本申请发明人在实现本申请的过程中发现,之所以会存在虚拟图像与真实图像在画面中的位置无法同步变化的情况,一种可能的原因是:

在实际应用中,通常是在移动终端设备中安装的应用程序中提供ar功能,例如,在“天猫”等app的应用中提供用于进入ar场景的入口,等等。而对于移动终端设备中的app而言,如果是采用native的方式实现,则不存在上述同步问题,但是,由于native方式存在一些缺点,包括需要为不同类型的操作系统开发不同版本的app/界面等,因此,另一种更常用的实现方式是“native+web+算法”相融合的方式来实现。也就是说,在app中内置有浏览器,界面本身(包括用于进行ar交互的界面)是基于web实现的,但是,由于web无法直接对终端设备中的硬件设备进行调用,因此,还与native方式相结合,当web界面中需要调用终端设备的硬件设备时,则需要由主线程通过native的方式进行调用。

而在进行ar交互的过程中,由于需要将真实图像与虚拟图像进行叠加展示,因此,需要使用终端设备中的摄像头等硬件设备对真实图像进行拍摄,然后,再将虚拟图像添加到拍摄得到的画面中。而在上述“native+web+算法”的app模式下,在ar交互的过程中,就需要由主线程通过native的方式调用终端设备中的摄像头,然后,将相机线程采集到的图像信息提供给web线程,web线程再根据接收到的真实图像信息,生成虚拟图像信息,并确定虚拟图像在画面中展示时的位置信息,然后再将两者进行叠加展示。

可见,在“native+web+算法”的app模式下,由于真实图像的采集线程(相机线程)与虚拟图像的处理线程(web线程)之间是相互隔离的,两者之间需要通过主线程进行信息传递,这就可能出现信息延迟的问题,以至于使得web线程接收到的图像信息,可能是native线程采集到前几帧的数据,进而在进行虚拟图像的展示时,也是基于前几帧的数据进行的,这也就出现了所谓的“飘”的现象。

基于上述分析,本申请实施例提供了相应的解决方案。具体的,参见图1,同样可以在ar主线程中创建相机线程以及web线程(webview),其中,相机线程主要用于通过native的方式调用终端设备中的摄像头等相机功能,并对实景图像进行采集,web线程则用于根据采集到的实景图像提供虚拟图像,并根据实景图像在ar画面中的位置、大小等展示属性信息,来确定虚拟图像在画面中的位置、大小等展示属性信息。另外,在本申请实施例中,还可以进行以下特殊处理:在相机线程捕捉到一帧实景图像时,可以暂停对下一帧实景图像的捕捉,而是先将当前获得的实景图像的信息提供给web线程,另外还可以将实景图像数据发送给渲染线程(例如,opengl线程等),但指示绘制线程进行等待。web线程接收到实景图像信息后,可以确定目标物体在ar画面中的位置、大小等展示属性信息,并据此确定出虚拟图像在画面中的位置、大小等展示属性信息,并将虚拟图像在ar画面中的位置、大小等展示属性信息提供给渲染线程(例如,webgl),并向主线程提交同步渲染完成的通知消息;之后,主线程就可以将相机线程中产生的实景图像数据与web线程中产生的虚拟图像数据合成为一张图像,其中包括实景图像的纹理数据,还可以包括web线程产生的webgl数据,另外还可以包括一些ui元素等,之后,便可以通知底层的绘制线程(例如,在android系统中,可以是androidrender线程)按照合成后的图像,将实景图像数据与虚拟图像数据按照各自对应的位置、大小等展示属性信息进行合并后进行绘制。

也就是说,假设用户在进行ar互动的过程中,对线下卖场中的一台洗碗机进行拍摄,此时,该洗碗机可以是当前采集到的实景图像中的目标物体。也就是说,相机采集到的实景图像中,除了该目标物体之外,通常还会包括其他的图像,例如,可能是其他物品的图像,或者柜台的图像,等等,但通过算法识别,可以确定出其中一件物品作为目标物体。另外假设相机线程在某时刻采集到的一帧图像中,目标物体位于画面中的a位置,此时,可以暂停对下一帧图像的采集,而是首先将该当前采集到的实景图像的信息提供给web线程,web线程收到后可以根据目标物体确定虚拟图像在画面中的位置、大小等展示属性信息,例如,在确定出目标物体位于画面中的a位置的情况下,也可以同样将虚拟图像在画面中的位置确定为位置a等。之后,再由绘制线程对相机线程采集到的实景图像以及web线程生成的虚拟图像进行合成后进行统一的绘制。也就是说,实景图像与虚拟图像的绘制可以是同时进行的。在完成一帧图像的绘制后,再指示相机线程采集下一帧图像,并循环上述步骤。例如,下一帧图像中,目标实体图像的位置移动到b处,则将该信息提供给web线程并生成虚拟图像时,也可以将虚拟图像设置在b处,这样,一同对实景图像以及虚拟图像进行绘制时,就会使得虚拟图像与实景图像出现在相同的位置上,可见,通过本申请实施例提供的方案,可以实现实景图像与虚拟图像在画面中的位置、大小等展示属性保持同步,提高画面质量。

需要说明的是,相机线程提供给web线程的实景图像信息可以有多种,例如,其中一种方式下,可以是相机线程当前采集到的实景图像的实际纹理数据等图像内容信息,此时,可以由web线程从实景图像的图像内容信息中进行目标物体的识别,并确定出目标物体在ar画面中所在的位置、大小等展示属性信息。但是,这种方式可能会导致相机线程与web线程之间交互的数据量比较大,并且每一帧都要做资源回收,耗时比较大,可能会导致ar画面不够流畅。为此,本申请实施例还提供了另一种实现方式,也即,可以在相机线程中实现相关的识别算法,也即,相机线程在每采集到一帧实景图像后,可以首先对其中的目标物体进行识别,并识别出其在ar画面中的位置、大小等展示属性信息,这样,只要将识别出的目标物体的位置、大小等展示属性信息提供给web线程即可,以此降低线程之间的数据交互量,降低耗时。

其中,关于相机线程识别出的目标物体在ar画面中所在的位置、大小等展示属性信息,如果采集到的实景图像中具有深度信息,则识别出的展示属性信息可以是目标物体对应的三维空间属性信息。当然,如果采集到的实景图像中不具有深度信息,则可以确定出目标物体的二维属性信息。

另外,前述方案中着重于描述实景图像与虚拟图像之间的同步,也即,在ar互动过程中,如果目标物体在ar画面中的位置、大小等发生变化,如何使得虚拟图像能够实时跟踪目标物体的变化,使得两者在画面中的展示位置、大小达到同步。而关于虚拟图像具体内容的确定则是可以根据目标物体对应的物体识别结果等来确定。并且,在目标物体内容未发生变化的情况下,虚拟图像仅确定一次即可,后续在ar互动过程中,如果虚拟图像是一张静止的图片,则对该图片进行展示,如果虚拟图像是一个动画等,则对动画进行播放。例如,如果目标物体是一台洗碗机,则对应的虚拟图像可能是预先生成的一个动画,动画内容主要是用于对洗碗机的使用方法、效果等进行演示,等等。这样,具体实现时,可以由相机线程对采集结果中的目标物体进行识别,在目标物体内容未发生变化的情况下,每次传递给web线程的数据可以仅包括识别出来的位置、大小等展示属性信息,web线程也可以仅根据新接收到的位置、大小等展示属性信息确定虚拟图像的位置、大小等展示属性信息即可,而不必每次都获取或者确定虚拟图像的数据内容。而当相机线程在采集到某一帧图像后,发现目标物体相对于上一帧发生变化时(例如,原来主要拍摄某洗碗机,之后又将摄像头对准一台电视机,等等),则在传递给web线程的数据中,除了包括新的目标物体在画面中的位置、大小等展示属性信息,还可以包括目标物体对应的物体识别结果等信息,以使得web线程重新根据新的目标物体生成虚拟图像,并在此基础上进行展示属性的同步处理。

可见,在本申请实施例中,通过对相机线程采集实景图像的时机进行限制,使得web线程在根据相机线程采集到的实景图像信息完成虚拟图像的渲染之后,web线程再进行下一帧实景图像的采集,这使得虚拟图像在ar画面中的位置、大小等展示属性可以是严格按照目标物体当前在画面中的位置、大小等展示属性来确定的,而不会出现根据相机线程采集到的前几帧的实景图像进行虚拟图像绘制的情况,因此,可以实现虚拟图像与实景图像在ar画面中位置、大小等展示属性的同步变化,提高ar画面的质量及展示效果。

从系统架构角度而言,如图2所示,本申请实施例中可以包括客户端以及服务端两部分,例如,可以是“手机天猫”的客户端及服务端,等等。其中,具体对相机线程的控制等同步处理操作可以是由客户端来完成,而关于具体目标物体对应的虚拟图像的信息,则可以由服务端进行保存。客户端中的web线程可以通过向服务端请求的方式,确定出一具体的目标物体对应的虚拟图像信息,然后,在具体进行ar交互的过程中,就可以基于该虚拟图像信息,进行与实景图像展示位置的同步等处理操作。

下面主要从客户端的角度,对本申请实施例提供的方案进行介绍。

具体的,本申请实施例从客户端的角度,提供了一种增强现实信息提供方法,参见图3,该方法可以包括:

s301:接收到第一线程采集的一帧实景图像信息时,暂停所述第一线程的实景图像采集操作;

在该实施例一中,各个步骤的执行主体可以是客户端中的主线程,通过主线程对其他线程进行控制。其中,第一线程可以是前文所述的“相机线程”,第二线程可以是前文所述的“web线程”,第三线程则可以是前文所述的“绘制线程”,当然,在实际应用中,各个线程的叫法可能会有所不同,这里不进行限定。

具体实现时,在ar互动的过程中,主线程还可以判断是否存在虚拟图像与实景图像中目标物体的位置未能同步变化的情况,如果存在,则触发所述方法中各步骤的执行。

s302:将所述实景图像信息提供给第二线程,由所述第二线程根据目标物体在增强现实ar画面中的展示属性信息,确定虚拟图像在ar画面中的展示属性信息;

具体实现时,由第一线程对实景图像进行采集,并向第二线程提供实景图像的具体相关信息,其中,第一线程提供给第二线程的实景图像信息可以有多种形式。例如,一种方式下,可以是第一线程通过对所述采集到的实景图像进行识别获得的目标物体在ar画面中的展示属性信息,这样,主线程可以将所述目标物体在ar画面中的展示属性信息提供给第二线程。当然,在这种方式下,第一线程在首次识别到一目标物体时,所述实景图像信息中还可以包括:该目标物体对应的物体识别结果,以使得所述第二线程根据所述物体识别结果确定对应的虚拟图像,在后续每采集到一帧实景图像时,只要目标物体对应的物体识别结果未发生变化,就可以仅向第二线程提供实景图像的展示属性信息即可,以此降低线程之间的数据交互量,缩短耗时。其中,具体在识别目标物体在ar画面中的展示属性信息时,如果所述采集到的实景图像中包括深度信息,则所述识别获得的展示属性信息具体可以包括所述目标物体在所述ar画面中的三维空间属性信息。

另一种实现方式下,第一线程采集的实景图像信息也可以包括:所述实景图像的纹理数据信息,此时,可以将这种纹理数据信息提供给第二线程,由所述第二线程通过对所述纹理数据信息进行分析,确定目标物体在所述ar画面中的展示属性信息。

其中,具体实现时,可以根据预先建立的目标物体识别模型,识别所述实景图像中的目标物体及其展示属性信息。其中,目标物体识别模型通过以下方式生成:获得图像训练样本,其中包括多幅图像,各幅图像中还包括对目标物体所在位置的标注信息,然后,根据所述图像训练样本中对所述目标物体所在位置的标注信息,生成对所述目标物体的识别模型。

其中,在现有技术中,图像训练样本的标注方式主要分为两种,一种是基于二维图像的标注,另一种是基于物体cad模型的三维图像标注。所谓二维图像标注主要是指在二维图像中标注目标物体所在的矩形区域,但是,由于这种二维图像的标注过程中无法获知深度信息,因此,对各幅图像标注都需要由工作人员通过手工标注的方式来完成。然而,手工标注的效率会很低,在图像训练样本众多的情况下,需要耗费大量的人力以及时间成本去进行标注。

基于物体cad模型的三维图像标注,则主要是将预先拍摄的视频中的各帧作为图像训练样本,首先获得目标物体的cad模型,例如,图像的目标物体为一辆汽车时,需要首先获得该汽车的cad模型,然后,在其中一帧图像中人为标注cad模型中的多个点与目标物体对应的特征点之间的对应关系。随后可以利用model-basedtracking通过跟踪目标物体以进行批量标注,跟踪的过程具体是利用标注出的目标物体的特征点,在其他帧图像中识别出目标物体所在的位置。这种在3d空间中的标注方法较之二维图像标注自动化程度高,可实现标注视频中的一帧进而自动标注整个视频的目的。同时,自动标注本身对标注精度也有统一量化标准,较之人为标注更加精确。然而,其缺点也十分明显,例如,通常情况下,目标物体的cad模型通常是由目标物体的生产或者设计方提供,但是,如果生产或者设计方无法提供cad模型,则会无法利用上述方式实现自动标注。而且在实际应用中,这种现象又是很常见的,也即,很难获取目标物体的cad模型,因此,影响了这种方法的通用性。其次,即使能够找到目标物体的cad模型,由于对目标物体的跟踪通常情况下依赖物体上有足够多的特征点,但是,当物体本身是纯色、高反光或透明等情况时,model-basedtracking将无法保证其足够的准确性,进而影响自动标注的效果。

针对上述问题,本申请实施例还提供了新的标注方法,在该方法中,图像训练样本中的各幅图像可以是对同一目标物体进行拍摄获得的,且相邻的图像之间存在相同的环境特征点。这样,可以将其中一幅图像作为基准图像,并基于基准三维坐标系创建三维空间模型,根据三维空间模型被移动到的位置,确定目标物体在所述基准三维坐标系中的位置信息;然后,根据所述各幅图像中的环境特征点确定出的各自对应的相机姿态信息,将所述三维空间模型分别映射到各幅图像的像平面,即可完成具体的自动标注。当然,具体实现时,在将三维空间模型映射到各幅图像的像平面之后,会成为二维图形,并且,该二维图像可能会呈现出一定角度等情况,因此,还可以对二维图像的形状进行处理。例如,在三维空间模型是一个长方体时,映射到像平面后会成为四边形,而实际标注的要求可能是通过矩形进行标注,因此,在映射完成后,还可以对四边形进行矩形化处理,等等。

其中,图像训练样本可以从一个目标视频文件中获得。具体实现时,为了对目标物体进行图像采集,在优选的实施方式中,可以是将目标物体放置在中间,然后,用图像摄取设备围绕该目标物体拍摄一周,以此生成对应的视频文件,从视频文件中提取出多帧图像作为图像训练样本。或者,也可以是分别从多个角度对目标物体进行拍照,得到多张照片,将各照片作为图像训练样本,等等。也就是说,具体的图像采集结果中包括的各幅图像,是在同一环境中,分别从各个不同角度对目标物体进行拍摄所获得的结果。因此,各幅图像之间主要是由于拍摄过程中相机姿态的不同,才导致的最终在像平面(也即用户实际能够观察到的图像平面)中显示出的具体的内容、目标物体的角度等会有所不同。而在一个基准坐标系能够确定,并且拍摄环境中的特征点足够的情况下,各幅图像对应的相机姿态是可以计算出来的,进而,还可以计算出目标物体在各幅图像的像平面中的位置。

在具体进行相机姿态计算时,首先可以确定一个基准三维坐标系,其中,可以将所述视频文件中第一帧图像的相机坐标系作为所述基准三维坐标系,或者,在更优选的方案中,可以在进行图像采集时,就进行特殊处理。具体的,可以在所述目标环境中放置所述目标物体,以及带有平面结构的标志物(例如,带有“alibaba”等字样的纸张,等等),并且使得所述标志物的所述平面与地平面平行,在具体进行拍摄时,先将镜头对准所述标志物,再将镜头移动到所述目标物体的位置进行拍摄。这样,具体在创建基准三维坐标系时,可以首先从视频文件的前几帧中识别出标志物平面,然后以所述标志物所在平面的中心点为原点,以该平面作为基准坐标系的x-y平面,并按右手系规则,建立所述基准三维坐标系。由于标志物的平面与地平面平行,因此,后续基于该平面建立的基准坐标系,可以作为世界坐标系来看待。在确定出基准坐标系后,可以根据所述基准三维坐标系以及所述环境特征点,确定各幅图像分别对应的相机姿态信息。具体的,可以利用slam等技术,来进行上述对相机姿态信息的确定。后续就可以利用各帧图像中对应的相机姿态信息,进行三维空间模型的映射,进而实现自动标注。

也就是说,在本申请实施例中,通过相对规则的三维空间模型对目标物体进行标注,相对于目标物体的cad模型而言,具有更容易获得的优点。另外,具体在利用手动标注的基准图像对其他各幅图像进行自动标注的过程中,是根据各幅图像相对于基准图像的相机姿态变化,将三维空间模型重映射回各幅图像对应的像平面。在此过程中,只要拍摄环境中的特征点足够明显即可实现对相机姿态的识别,也就是说,本申请实施例中,可以基于整个拍摄环境的特征点进行相机姿态识别,进而实现对目标物体的自动标注,而不是对目标物体的特征点进行识别以实现对目标物体的跟踪,因此,即使目标物体本身是纯色、高反光或透明等情况时,也能够实现对目标物体的自动标注。

总之,通过上述方式,第一线程能够从实景图像中识别出目标物体。在具体实现时,第一线程在采集到一帧实景图像后,除了向第二线程提供实景数据的相关信息,还可以直接将该实景图像的数据内容提供给所述第三线程,并指示所述第三线程等待收到虚拟图像的展示属性信息后,再执行具体的绘制操作。

其中,无论是实景图像还是虚拟图像,所述展示属性信息都可以是指在ar画面中的展示位置和/或大小等,总之,使得虚拟图像的展示属性能够跟随实景图像在ar画面中的变化即可。

s303:指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成并绘制,并指示所述第一线程执行下一帧图像的采集操作。

第二线程在根据接收到的实景图像的相关信息确定出虚拟图像的位置、大小等展示属性信息之后,可以向主线程返回渲染同步完成的通知消息,此时,主线程就可以指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成并绘制,并指示所述第一现场执行下一帧图像的采集操作。也就是说,在本申请实施例中,实景图像与针对该实景图像确定的对应展示属性的虚拟图像可以同步绘制的,因此,在不会出现现有技术中所述的“飘”的现象。

也就是说,在本申请实施例中,通过对第一线程采集实景图像的时机进行限制,使得第二线程在根据第一线程采集到的实景图像信息完成虚拟图像的展示属性的确定以及渲染之后,第一线程再进行下一帧实景图像的采集,这使得虚拟图像在ar画面中的位置、大小等展示属性可以是严格按照目标物体当前在画面中的位置、大小等展示属性来确定的,并同时进行绘制,因此,不会出现根据相机线程采集到的前几帧的实景图像进行虚拟图像绘制的情况,可以实现虚拟图像与实景图像在ar画面中位置、大小等展示属性的同步变化,避免在终端设备发生移动等情况时导致的虚拟图像发“飘”的现象发生,提高ar画面的质量及展示效果。

在实际应用中,可以基于网络销售系统的客户端实现具体的ar互动,并且,在网络销售系统中可以存在与所述目标物体对应的数据对象。例如,目标物体是某线下门店中的一台洗碗机,则在线上的网络销售系统中,也存在与该洗碗机对应的数据对象,并且,系统中会保存与该数据对象相关的信息,其中就可以包括用于提供ar互动的虚拟图像信息,例如,具体可以是一段与该数据对象相关的展示动画,或者,数据对象在所述网络销售系统中对应的名称、所需资源和/或链接地址信息,等等。因此,所述第二线程具体在确定虚拟图像时具体可以用于:根据目标物体的识别结果,确定在所述网络消息系统中对应的数据对象标识,然后,根据所述数据对象标识对应的数据对象的信息,确定虚拟图像。当然,在其他应用场景中,也可以进行其他的相关设定以及虚拟图像的提供,这里不进行限定。

需要说明的是,关于上述实施例中各步骤的具体实现,未详述之处可参见本申请说明书中其他部分的介绍,这里不再赘述。

与前述实施例相对应,本申请实施例还提供了一种增强现实信息提供装置,参见图4,该装置具体可以包括:

暂停指示单元401,用于接收到第一线程采集的一帧实景图像信息时,暂停所述第一线程的实景图像采集操作;

信息提供单元402,用于将所述实景图像信息提供给第二线程,由所述第二线程根据目标物体在增强现实ar画面中的展示属性信息,确定虚拟图像在ar画面中的展示属性信息;

绘制指示单元403,用于指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成及绘制,并指示所述第一线程执行下一帧图像的采集操作。

具体实现时,该装置还可以包括:

判断单元,用于在ar互动的过程中,判断是否存在虚拟图像与实景图像中目标物体的位置未能同步变化的情况,如果存在,则触发所述装置中各单元的执行。

具体实现时,所述第一线程采集的实景图像信息包括:通过对所述采集到的实景图像进行识别获得的目标物体在ar画面中的展示属性信息;

所述信息提供单元具体可以用于:

将所述目标物体在ar画面中的展示属性信息提供给第二线程。

其中,所述第一线程在首次识别到一目标物体时,所述实景图像信息中还包括:该目标物体对应的物体识别结果,以便所述第二线程根据所述物体识别结果确定对应的虚拟图像。

如果所述采集到的实景图像中包括深度信息,则所述识别获得的展示属性信息包括所述目标物体在所述ar画面中的三维空间属性信息。

具体的,所述第一线程根据预先建立的目标物体识别模型,识别所述实景图像中的目标物体及其展示属性信息。

其中,所述目标物体识别模型具体可以通过以下方式生成:

获得图像训练样本,其中包括多幅图像,各幅图像中还包括对目标物体所在位置的标注信息;

根据所述图像训练样本中对所述目标物体所在位置的标注信息,生成对所述目标物体的识别模型。

各幅图像可以是对同一目标物体进行拍摄获得的,且相邻的图像之间存在相同的环境特征点;此时,所述标注信息通过以下方式获得:

将其中一幅图像作为基准图像,并基于基准三维坐标系创建三维空间模型,根据三维空间模型被移动到的位置,确定目标物体在所述基准三维坐标系中的位置信息;

根据所述各幅图像中的环境特征点确定出的各自对应的相机姿态信息,将所述三维空间模型分别映射到各幅图像的像平面。

另一种实现方式下,所述第一线程采集的实景图像信息可以包括:所述实景图像的纹理数据信息,所述第二线程通过对所述纹理数据信息进行分析,确定目标物体在所述ar画面中的展示属性信息。

其中,所述第一线程在采集到一帧实景图像后,还可以将该实景图像的数据内容提供给所述第三线程,并指示所述第三线程等待收到虚拟图像的展示属性信息后,再执行绘制操作。

所述展示属性信息包括在所述ar画面中的位置和/或大小。

在实际应用中,网络销售系统中存在与所述目标物体对应的数据对象,所述第二线程具体在确定虚拟图像时具体用于:根据目标物体的识别结果,确定在所述网络消息系统中对应的数据对象标识,并根据所述数据对象标识对应的数据对象的信息,确定虚拟图像。

其中,所述数据对象的信息包括:与所述数据对象相关的展示动画,将所述展示动画作为所述虚拟图像。或者,所述数据对象的信息也可以包括:数据对象在所述网络销售系统中对应的名称、所需资源和/或链接地址信息。

另外本申请实施例还提供了一种电子设备,包括:

一个或多个处理器;以及

与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:

接收到第一线程采集的一帧实景图像信息时,暂停所述第一线程的实景图像采集操作;

将所述实景图像信息提供给第二线程,由所述第二线程根据目标物体在增强现实ar画面中的展示属性信息,确定虚拟图像在ar画面中的展示属性信息;

指示第三线程对所述第一线程采集的实景图像以及所述第二线程生成的虚拟图像进行合成及绘制,并指示所述第一线程执行下一帧图像的采集操作。

其中,图5示例性的展示出了电子设备的架构,例如,设备500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理,飞行器等。

参照图5,设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(i/o)的接口512,传感器组件514,以及通信组件516。

处理组件502通常控制设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件502可以包括一个或多个处理器520来执行指令,以完成本公开技术方案提供的视频播放方法中的当满足预设条件时,生成流量压缩请求,并发送给服务器,其中所述流量压缩请求中记录有用于触发服务器获取目标关注区域的信息,所述流量压缩请求用于请求服务器优先保证目标关注区域内视频内容的码率;根据服务器返回的码流文件播放所述码流文件对应的视频内容,其中所述码流文件为服务器根据所述流量压缩请求对所述目标关注区域之外的视频内容进行码率压缩处理得到的视频文件的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理部件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。

存储器504被配置为存储各种类型的数据以支持在设备500的操作。这些数据的示例包括用于在设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件506为设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为设备500生成、管理和分配电力相关联的组件。

多媒体组件508包括在设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(mic),当设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。

i/o接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件514包括一个或多个传感器,用于为设备500提供各个方面的状态评估。例如,传感器组件514可以检测到设备500的打开/关闭状态,组件的相对定位,例如所述组件为设备500的显示器和小键盘,传感器组件514还可以检测设备500或设备500一个组件的位置改变,用户与设备500接触的存在或不存在,设备500方位或加速/减速和设备500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件516被配置为便于设备500和其他设备之间有线或无线方式的通信。设备500可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件516还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,设备500可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由设备500的处理器520执行以完成本公开技术方案提供的视频播放方法中的当满足预设条件时,生成流量压缩请求,并发送给服务器,其中所述流量压缩请求中记录有用于触发服务器获取目标关注区域的信息,所述流量压缩请求用于请求服务器优先保证目标关注区域内视频内容的码率;根据服务器返回的码流文件播放所述码流文件对应的视频内容,其中所述码流文件为服务器根据所述流量压缩请求对所述目标关注区域之外的视频内容进行码率压缩处理得到的视频文件。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上对本申请所提供的增强现实信息提供方法、装置及电子设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

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