一种虚拟对象的展示方法及装置与流程

文档序号:16206213发布日期:2018-12-08 07:08阅读:128来源:国知局
一种虚拟对象的展示方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种虚拟对象的展示方法及装置。

背景技术

增强现实技术(augmentedrealitytechnique,简称ar),是借助计算机(终端)增加用户对现实世界感知的技术,可以将现实世界和虚拟世界“无缝”集成,将终端生成的虚拟物体或关于真实物体的虚拟信息等虚拟对象在终端(通过图像采集设备)采集的图像中的目标对象上进行展示,使现实和虚拟世界相互补充、叠加,实现对真实场景的增强。

如图1所示,为在终端采集的当前图像中展示虚拟对象的理论示意图,在当前图像(实线表示)中包含目标对象,并将虚拟对象(虚线表示)叠加展示在目标对象的位置上。现有技术,通常基于lbs(locationbasedservice,基于位置服务)和imu(inertialmeasurementunit,惯性测量单元,是测量物体三轴姿态角(或角速率)以及加速度的装置)的展示方法实现图1的效果。具体地,可以根据采集当前图像时终端的位置信息、姿态信息以及目标对象的位置信息,确定出目标对象投影在当前图像中的理论位置,再将虚拟对象叠加展示在该理论位置上。

然而,现有技术仅基于lbs和imu对虚拟对象进行展示时,由于终端的位置信息、姿态信息等均会出现误差,从而导致如图2所示的结果,即虚拟对象在当前图像中展示的位置与目标对象的实际位置出现偏离,从而影响虚拟对象的展示效果,所以现有技术在将虚拟对象叠加展示在当前图像的目标对象位置上时,容易出现较大的位置误差。



技术实现要素:

本申请实施例提供一种虚拟对象的展示方法,用于在将虚拟对象叠加展示在当前图像的目标对象位置上时,减小位置误差。

本申请实施例提供一种虚拟对象的展示装置,用于在将虚拟对象叠加展示在当前图像的目标对象位置上时,减小位置误差。

为解决上述技术问题,本申请实施例是这样实现的:

本申请实施例采用下述技术方案:

一种虚拟对象的展示方法,包括:

根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像;

将所述当前图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述当前图像中的实际位置;

根据所述至少一个目标对象投影在所述当前图像中的理论位置和实际位置,确定修正后姿态信息;

根据采集当前图像时终端的位置信息、目标对象的位置信息、以及所述修正后姿态信息,将目标对象对应的虚拟对象展示在所述当前图像中。

优选地,根据采集当前图像时终端的位置信息和修正前姿态信息、以及所述至少一个目标对象的位置信息确定所述理论位置。

优选地,根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像,具体包括:

根据采集当前图像时终端的位置信息和修正前姿态信息,获取包含候选目标对象的图像。

优选地,确定至少一个目标对象在所述当前图像中的实际位置,具体包括:

确定至少两个目标对象分别投影在所述当前图像中的实际位置;

则根据所述至少一个目标对象投影在所述当前图像中的理论位置和实际位置,确定修正后姿态信息,具体包括:

根据所述至少两个目标对象投影在所述当前图像中的理论位置和实际位置,确定修正后姿态信息。

优选地,所述方法应用于装配有图像采集设备的终端,则所述方法具体包括:

根据终端采集实时图像时的位置信息,获取包含候选目标对象的图像;

将所述实时图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述实时图像中的实际位置;

根据所述至少一个目标对象投影在所述实时图像中的理论位置和实际位置,确定修正后姿态信息;

根据终端采集实时图像时的位置信息、目标对象的位置信息、以及所述修正后姿态信息,将目标对象对应的虚拟对象展示在所述实时图像中。

优选地,所述方法还包括:

根据所述修正后姿态信息以及终端采集实时图像时的修正前姿态信息,确定出变化的姿态信息;

在预设时间周期内,根据所述变化的姿态信息,以及采集实时图像时的位置信息和修正前姿态信息、目标对象的位置信息,将目标对象对应的虚拟对象展示在所述实时图像中。

一种虚拟对象的展示装置,包括:获取单元、匹配单元、确定单元以及展示单元,其中,

所述获取单元,用于根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像;

所述匹配单元,用于将所述当前图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述当前图像中的实际位置;

所述确定单元,用于根据所述至少一个目标对象投影在所述当前图像中的理论位置和实际位置,确定修正后姿态信息;

所述展示单元,用于根据采集当前图像时终端的位置信息、目标对象的位置信息、以及所述修正后姿态信息,将目标对象对应的虚拟对象展示在所述当前图像中。

优选地,所述确定单元,还用于:

根据采集当前图像时终端的位置信息和修正前姿态信息、以及所述至少一个目标对象的位置信息确定所述理论位置。

优选地,所述获取单元,具体用于:

根据采集当前图像时终端的位置信息和修正前姿态信息,获取包含候选目标对象的图像。

优选地,所述匹配单元,具体用于:

确定至少两个目标对象分别投影在所述当前图像中的实际位置;

则所述确定单元,具体用于:

根据所述至少两个目标对象投影在所述当前图像中的理论位置和实际位置,确定修正后姿态信息。

优选地,所述装置应用于装配有图像采集设备的终端,则

所述获取单元,具体用于根据终端采集实时图像时的位置信息,获取包含候选目标对象的图像;

所述匹配单元,具体用于将所述实时图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述实时图像中的实际位置;

所述确定单元,具体用于根据所述至少一个目标对象投影在所述实时图像中的理论位置和实际位置,确定修正后姿态信息;

所述展示单元,具体用于根据终端采集实时图像时的位置信息、目标对象的位置信息、以及所述修正后姿态信息,将目标对象对应的虚拟对象展示在所述实时图像中。

优选地,

所述确定单元,还用于根据所述修正后姿态信息以及终端采集实时图像时的修正前姿态信息,确定出变化的姿态信息;

所述展示单元,还用于在预设时间周期内,根据所述变化的姿态信息,以及采集实时图像时的位置信息和修正前姿态信息、目标对象的位置信息,将目标对象对应的虚拟对象展示在所述实时图像中。

一种虚拟对象的展示方法,包括:

根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像;

将所述当前图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述当前图像中的实际位置;

根据所述实际位置,将所述至少一个目标对象对应的虚拟对象展示在所述当前图像中

一种虚拟对象的展示方法,包括:

根据拍照图像时终端的位置信息,获取包含候选目标对象的图像;

将所述拍照的图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述拍照的图像中的实际位置;

根据所述实际位置,将所述至少一个目标对象对应的虚拟对象展示在所述拍照的图像中。

一种虚拟对象的展示方法,包括:

根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像;

将所述当前图像与所述包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在所述当前图像中的第一位置;

根据所述至少一个目标对象投影在所述当前图像中的第一位置和第二位置,确定修正后姿态信息;

根据采集当前图像时终端的位置信息、目标对象的位置信息、以及所述修正后姿态信息,将目标对象对应的虚拟对象展示在所述当前图像中。

由以上本申请实施例提供的技术方案可见,本申请实施例根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像,将当前图像与包含候选目标对象的图像进行图像匹配,确定出至少一个目标对象投影在当前图像中的实际位置,并根据该至少一个目标对象投影在当前图像中的理论位置,确定出修正后姿态信息,最终根据修正后姿态信息将当前图像中的目标对象对应的虚拟对象进行展示。相比于现有技术仅根据lbs和imu进行展示而言,本方案在lbs和imu的基础上,加入了姿态修正信息,对lbs和imu的误差尽可能进行修正,在一定程度上解决了现有技术在将虚拟对象叠加展示在当前图像的目标对象位置上时,容易出现较大的位置误差的问题,达到减小位置误差的效果。

附图说明

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

图1为在终端采集的当前图像中展示虚拟对象的理论示意图;

图2为现有技术在终端采集的当前图像中展示虚拟对象时出现误差的示意图;

图3为本申请实施例1提供的一种虚拟对象的展示方法的流程示意图;

图4为本申请实施例1提供的图像匹配的示意图;

图5为本申请实施例2提供的一种虚拟对象的展示方法的流程示意图;

图6为本申请实施例2提供的一种虚拟对象的展示方法的示意图;

图7为本申请实施例3提供的虚拟对象的展示装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

实施例1

如前所述,现有技术如图2所示,在基于lbs和imu对虚拟对象(图中的注释)进行展示时,终端的位置信息、姿态信息等均会出现误差。

lbs可以用于确定位置信息,即终端的地理位置信息,室外可以由gps(globalpositioningsystem,全球定位系统)、wi-fi(wireless-fidelity,无线保真)、基站进行单独或混合定位,室内可以由蓝牙或者wi-fi进行定位,在实际应用中,终端在采集图像时,有可能出现较大的位置误差,如0.5米甚至更多。

imu可以用于通过在三维空间中相对于各轴的偏角,确定终端的姿态信息,比如pitch可以是围绕x轴旋转,也叫做俯仰角;yaw可以是围绕y轴旋转,也叫偏航角;roll可以是围绕z轴旋转,也叫翻滚角。陀螺仪及加速度计是imu的主要元件,其精度直接影响到惯性系统的精度。在实际工作中,由于不可避免的各种干扰因素,而导致陀螺仪及加速度计产生误差。

理论上,如果lbs和imu均无误差,那么就可以根据终端的位置信息、姿态信息以及目标对象的位置信息,准确地确定出目标对象投影在终端采集的当前图像中的位置,比如如图1所示,目标对象为“xx大学”和“xx体育场”的真实图像,位置信息可以包括经纬度、海拔;在终端采集图像时,根据终端的包含经纬度、海拔的位置信息以及姿态信息,就可以在终端采集的图像中,确定出目标对象投影的理论位置,从而将为该目标对象预先设置的虚拟对象叠加展示在该理论位置上。但正是由于lbs和imu一定会出现误差,并且有时还会由于地理位置上的信号遮挡、磁场影响等出现较大误差,所以就会导致图2所示的结果。所以现有技术在将虚拟对象叠加展示在当前图像的目标对象位置上时,容易出现较大的位置误差。基于上述缺陷,本申请实施例提供了一种虚拟对象的展示方法,用于在将虚拟对象叠加展示在当前图像的目标对象位置上时,减小位置误差。该方法的流程如图3所示,包括下述步骤:

步骤11:根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像。

通过前文的分析可知,之所以在进行ar展示时,会出现虚拟对象的展示位置与投影在图像中的目标对象的展示位置相差较远的问题,主要是由于误差所致,所以本方法的核心首先就是要确定出误差的量,从而对ar展示进行修正。本步骤中,可以先根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像。需要说明的是,这里提到的投影,可以是指采集图像过程中的操作,该操作可以包括拍照和未拍照,未拍照即在开启图像采集设备时,实时采集的图像,拍照即将实时采集的图像保存在终端存储器中。

每个虚拟对象可以是根据每个目标对象预先生成的,例如图1或图2中的“xx大学”和“xx体育场”的注释。该注释就可以是为实体“xx大学”和“xx体育场”预先生成的虚拟对象,目标对象可以分布在不同的地理位置,比如“xx大学”、“xx医院”、“xx建筑”等,为了确定出目标对象在当前图像中的实际位置,可以先确定出当前图像中有没有目标对象,具体地,可以获取包含目标对象的图像,从而进行图像匹配。

在实际应用中,可以预存大量的包含各种目标对象的图像,如目前流行的poi(兴趣点)即为一种目标对象,poi包括了如学校、医院、体育等各种实体对象的信息(如包含经纬度、海拔的位置信息、多张图像等),可以将包含poi的图像进行备份,用于在地图中或ar中进行展示。由于目标对象过多,包含目标对象的图像也数量巨大,所以就可以根据采集当前图像时终端的位置信息进行获取,比如按照预定范围(如以采集当前图像时终端的位置信息为中心,半径5000米内)获取等,由于获取到的包含目标对象的图像,不一定所有的目标对象均出现在采集当前图像中,所以可以称为包含候选目标对象的图像。

由于包含候选目标对象的图像中,不一定所有的候选目标对象均出现在采集当前图像中,所以减少获取包含候选目标对象的图像的数量,可以减少计算资源的浪费。在一种实施方式中,为了减少计算资源的浪费,本步骤可以包括:根据采集当前图像时终端的位置信息和修正前姿态信息,获取包含候选目标对象的图像。具体地,由于在终端采集当前图像时,可以根据终端的位置信息和修正前的姿态信息,确定出可能投影在当前图像的目标对象,所以也就可以根据可能投影在当前图像中的目标对象,获取包含(在当前图像中可能出现的)候选目标对象的图像。比如,根据采集当前图像时终端的位置信息和修正前的姿态信息,确定出3个可能投影在当前图像中的目标对象即候选目标图像,此时就可以获取包含这3个候选目标对象的图像。类似地,为了降低遗漏目标对象的概率,候选目标对象的选择可以包含且多于确定出的可能的目标对象数量。

步骤12:将该当前图像与包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在当前图像中的实际位置。

前文已经介绍,需要获取包含候选目标对象的图像,从而进行图像匹配,则本步骤可以将该当前图像与包含候选目标对象的图像进行图像匹配。

具体地,可以通过下述举例进行图像匹配:

首先,存在n个图像模板,该图像模板即为获取的包含候选目标对象的图像,一个输入图片,该输入图片即为当前图像,将当前图像中的区域与图像模板中的区域的匹配过程为:

将图像模板特征化,比如可以通过orb(orientedbrief)进行特征化,对图像模板特征化后,可以确定出若干个特征位置以及特征位置的特征向量;

将当前图像特征化,可以使用随机采样一致性算法进行匹配,将匹配度高于预设阈值的匹配作为候选匹配结果;

根据角度以及特征位置数据、缩放比例等,进行过滤并最终确定匹配结果,即是否存在,若存在则确定出在当前图像中的位置。

如图4所示,为进行图像匹配的示意图,左图可以是当前图像,右图可以是预存的包含候选目标对象(“xx大学”)的图像,根据图像匹配结果,可以确定出目标对象投影在当前图像中的实际位置。

在实际应用中,根据当前图像的位置信息获取包含候选目标对象的图像时,可能获取到包含多个候选目标对象的图像。比如,当前图像可以是图1或图2的图像,根据采集图1或图2时的位置信息就有可能获取到预存的、单独包含“xx大学”的图像以及单独包含“xx体育场”的图像,并作为图像模板,此后,分别与每个图像模板进行匹配后,就可以确定出“xx大学”和“xx体育场”在当前图像中的实际位置。所以,在一种实施方式中,本步骤可以包括:确定至少两个目标对象分别投影在当前图像中的实际位置。

由于在应用程序的机器语言中,并无理论实际之别,所以在实际应用中,也可以将该至少一个目标对象投影在当前图像中的实际位置定义为第一位置,即本步骤可以包括:将当前图像与包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在该当前图像中的第一位置。

步骤13:根据该至少一个目标对象投影在当前图像中的理论位置和实际位置,确定修正后姿态信息。

在步骤12中确定出至少一个目标对象投影在当前图像中的实际位置后,本步骤就可以根据该至少一个目标对象投影在当前图像中的理论位置,确定出修正后姿态信息,即根据理论和实际,确定如何对姿势进行修正。其中,该至少一个目标对象投影在当前图像中的理论位置就可以根据采集当前图像时终端的位置信息和修正前姿态信息、该至少一个目标对象的位置信息进行确定。具体地,可以根据投影矩阵方程进行确定,该方程如下:

y=p×t(θt)×(xpoi-xp)

其中,y为目标对象的位置,xpoi为目标对象的位置信息,xp为采集当前图像时的位置信息,t为旋转矩阵,θ为姿态信息中的pitch、yaw和roll,t为pitch、yaw和roll的函数,记为t(θ),θt为修正后姿态信息。p为投影矩阵,可以通过图像采集设备的标定获得,为图像采集设备的基本参数。具体可以如下:

上述投影矩阵方程中,xpoi、xp和p均为已知,当θt为θimu时,θimu为采集当前图像时终端的修正前姿态信息,此时y即为目标对象投影在当前图像中的理论位置。在步骤12进行图像匹配确定出目标对象投影在所述当前图像中的实际位置时,实际位置即为y,此时就可以确定出修正后姿态信息θt。

方程中除了θt以外,均为已知值,可以描述为θt=f(y),也就是θt是y的函数;这里由于f(y)为非线性方程,无法直接求解,因此使用θimu作为初值,使用偏导数求解雅克比(jacobian)矩阵,进一步迭代求解,可以解得θt。

确定出的θt即为修正后姿态信息,在实际应用中,不限于上述一种方式确定修正姿态信息,比如可以根据上述方程的改进方程:

y=p×t(θt)×(xpoi-xp)×α

其中,α可以是在反复测试过程中确定出的针对不同终端的修正系数。

此外,可以仅由修正后姿态信息概括位置和姿态的误差量,如本步骤所述。也可以分别单独确定位置和姿态的误差量,即修正后位置信息以及修正后姿态信息。

在前一步骤中已经介绍,在实际应用中,可以确定出至少两个目标对象分别投影在当前图像中的实际位置,所以本步骤可以包括:根据至少两个目标对象投影在当前图像中的理论位置和实际位置,确定修正后姿态信息。

具体地,可以先分别根据至少两个目标对象,确定出至少两个修正后姿态信息,再可以对两个修正后姿态信息取平均值,或(根据在图像中的位置分别与图像中心的距离)加权平均值等,确定出最终的修正后姿态信息。

在实际的应用程序中,也可以将该至少一个目标对象投影在当前图像中的理论位置定义为第二位置,而在前文中已经介绍,可以将该至少一个目标对象投影在当前图像中的实际位置定义为第一位置,所以,本步骤还可以包括:根据至少一个目标对象投影在当前图像中的第一位置和第二位置,确定修正后姿态信息。

步骤14:根据采集当前图像时终端的位置信息、目标对象的位置信息、以及修正姿态信息,将目标对象对应的虚拟对象展示在当前图像中。

在上一步骤中确定出修正后姿态信息,即采集当前图像时,由imu应该确定出的正确的姿态信息后,就可以根据采集当前图像时终端的位置信息、目标对象的位置信息、以及修正后姿态信息,确定出目标对象在采集的当前图像中的位置,并将目标对象对应的虚拟对象展示在当前图像中。在前文介绍了通过至少一个目标对象或至少两个目标对象,确定修正后姿态,而本步骤中的目标对象,可以与前两步骤中的目标对象相同,但更多的情况是多于前两步骤中的目标对象的个数,前述两步骤中的目标对象的作用仅用于确定修正后姿势,而本步骤中的目标对象用于实现ar效果。比如,步骤12中确定出“xx大学”的实际位置,并且在步骤13中根据“xx大学”的理论位置确定修正后姿态信息,而本步骤就可以根据该修正后姿态信息、终端位置信息、目标对象的位置信息,确定出当前图像中包含“xx大学”、“xx医院”和“xx建筑”等目标对象,并将分别对应的虚拟对象在当前图像中进行展示,目的的可以达到如图1的效果,即虚拟对象的位置可以叠加展示在对应的目标对象上。

实际上,步骤13和步骤14是考虑到在实时采集图像的过程中会连续不断的采集,而实际上考虑到在实时采集过程中,有可能出现终端的位置信息和姿态信息仅仅细微变化的情况,所以,在一种实施方式中,在步骤12之后,本实施例还可以包括:根据该实际位置,将该至少一个目标对象对应的虚拟对象展示在当前图像中,即当确定出了至少一个目标对象投影在当前图像中的实际位置后,就可以直接以该实际位置为依据,展示虚拟对象。

采用实施例1提供的方法,根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像,将当前图像与包含候选目标对象的图像进行图像匹配,确定出至少一个目标对象投影在当前图像中的实际位置,并根据该至少一个目标对象投影在当前图像中的理论位置,确定出修正后姿态信息,最终根据修正后姿态信息将当前图像中的目标对象对应的虚拟对象进行展示。相比于现有技术仅根据lbs和imu进行展示而言,本方案在lbs和imu的基础上,加入了姿态修正信息,对lbs和imu的误差尽可能进行修正,在一定程度上解决了现有技术在将虚拟对象叠加展示在当前图像的目标对象位置上时,容易出现较大的位置误差的问题,达到减小位置误差的效果。

实施例2

ar具有三个特点:现实世界和虚拟世界集成;实时交互性;在三维空间中增添虚拟对象。而在实际应用中,实时交互性是ar非常重要的特点,随着终端的发展,很容易地将处理功能、图像采集功能集与一身,比如智能手机、平板电脑、数码相机等装配有图像采集设备的终端,即ar较为普遍地应用在上述终端中,在实时获取的当前图像中实现增强现实效果。但是现有技术仅基于lbs和imu进行展示,如前述的方式,容易出现较大的位置误差。所以,基于与实施例1相同的发明思路,作为实施例1的延伸,本申请实施例提供了一种虚拟对象的展示方法,以实现在将虚拟对象叠加展示在实时图像上时,减小虚拟对象与目标对象的位置误差。该方法可以应用于装配有图像采集设备的终端,流程如图5所示,包括下述步骤:

步骤21:根据终端采集实时图像时的位置信息,获取包含候选目标对象的图像。

比如终端可以是装配有图像采集设备的智能手机,图像采集设备就可以是装配在智能手机背面的摄像头,而正面装配显示屏幕,当开启摄像头时,就可以采集实时图像,此时就可以根据采集实时图像时的位置信息,获取包含候选目标对象的图像。比如位置信息包含经纬度n、e以及海拔h,可以以n、e为圆心,搜索半径1000m内的候选目标对象,得到候选目标对象“1”、候选目标对象“2”……候选目标对象“n”等,并获取包含这些候选目标对象的图像。在实际应用中,采集实时图像时也可以进行拍照,所以本步骤可以包括:根据拍照图像时终端的位置信息,获取包含候选目标对象的图像。

步骤22:将实时图像与包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在实时图像中的实际位置。

本步骤中,就可以将实时图像与每个包含上述候选目标对象的图像进行图像匹配,从匹配结果中,确定至少一个,比如目标对象“1”投影在实时图像中的实际位置。比如,手机屏幕的分辨率为1920×1080,那么目标对象“1”投影在实时图像中的实际位置就可以是一个坐标,比如(100,500)。

在实际应用中,也可以确定多个目标对象(如目标对象“1”、目标对象“2”、目标对象“3”)分别投影在实时图像中的实际位置。

上一步骤中提到,采集实时图像可以是拍照,那么本步骤可以包括:将拍照的图像与包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在拍照的图像中的实际位置。

步骤23:根据该至少一个目标对象投影在实时图像中的理论位置和实际位置,确定修正后姿态信息。

与实施例1类似地,该至少一个目标对象投影在实时图像中的理论位置,可以由采集实时图像时终端的位置信息和修正前姿态信息、该至少一个目标对象的位置信息确定。比如,采集实时图像时的位置信息包含经纬度n、e以及海拔h,姿态信息为实时的pitch、yaw和roll的函数t(θimu),目标对象“1”的位置信息包含经纬度n1、e1以及海拔h1,可以根据下述投影矩阵方程确定修正姿态信息:

y=p×t(θt)×(xpoi-xp)

y即为(100,500),p为摄像头的投影矩阵参数,经纬度n、e以及海拔h可以表示xp,经纬度n1、e1以及海拔h1可以表示xpoi,可以使用θimu作为初值,使用偏导数求解雅克比(jacobian)矩阵,进一步迭代求解,可以解得θt。

如果在步骤22中确定出多个目标对象分别投影在实时图像中的实际位置,本步骤就可以分别根据多个目标对象确定出多个修正姿态信息,再根据平均值或加权平均值,确定最终的修正姿态信息θt。

步骤24:根据终端采集实时图像时的位置信息、目标对象的位置信息、以及修正后姿态信息,将目标对象对应的虚拟对象展示在实时图像中。

确定出修正姿态信息θt后,就可以根据投影矩阵方程:

y=p×t(θt)×(xpoi-xp)

确定出所有具有虚拟对象的、投影在实时图像中的目标对象,在实时图像中的位置,也就可以将目标对象对应的虚拟对象展示在实时图像中。具体地,可以根据手机的经纬度n、e以及海拔h、目标对象“1”的经纬度n1、e1以及海拔h1……目标对象“n”的经纬度nn、en以及海拔hn确定出可能投影在实时图像中的具有虚拟对象的候选目标对象,然后分别确定出每个候选目标对象投影在手机屏幕中的位置,过滤掉超出手机屏幕显示范围的候选目标对象,确定出最终可以投影在实时图像中的目标对象以及投影的位置后,将这些目标对象对应的虚拟对象,根据目标对象的位置进行ar展示。

如图6所示,为虚拟对象的展示方法的示意图,poi内容可以包含目标对象的位置信息和图像,手机可以先根据lbs确定采集实时图像时的位置信息,根据位置信息从poi内容中获取包含候选poi的图像;将手机采集的实时图像与包含候选poi的图像进行图像匹配,得到匹配结果,即至少一个poi投影在实时图像中的实际位置;根据手机采集实时图像时的位置信息和修正前姿态信息确定出该至少一个poi投影在实时图像中的理论位置,并根据理论位置和实际位置,确定出修正后姿态信息;根据修正后姿态信息,采集实时图像时的位置信息,确定出最终可以投影在实时图像中的目标对象(即需要在实时图像中展示的poi对应的虚拟对象)以及投影的位置后,将poi对应的虚拟对象展示在实时图像中,完成ar展示。

在实际应用中,实时获取图像通常是持续不断的,比如,1秒钟获取一次实时图像,或2秒钟获取一次,如果每获取一次实时图像均进行一次修正姿态信息确定,则计算资源消耗较大,所以在一种实施方式中,还可以包括后续步骤:

步骤25:根据修正后姿态信息以及终端采集实时图像时的修正前姿态信息,确定出变化的姿态信息。

前文确定出的θt可以理解由imu应该确定出的正确的姿态信息,即由三种旋转角度组合成的姿态,所以可以根据修正前,手机采集实时图像时原始的姿态信息θimu,确定出变化的姿态信息:

δθ=θt-θimu

步骤26:在预设时间周期内,根据变化的姿态信息,以及采集实时图像时的位置信息和修正前姿态信息、目标对象的位置信息,将目标对象对应的虚拟对象展示在实时图像中。

本步骤中,预设时间周期内,就可以是手机持续采集实时图像的时间段,比如,可以假设用户通常以近似一个姿态进行ar展示操作的时间为3秒钟,那么在这3秒钟内,在第一次采集时确定出δθ后,此后所有采集的实时图像,均以δθ+θimu作为修正后的姿态信息进行ar展示,节省了计算资源。

而在实际应用中,可以根据拍照后的图像,在其中展示虚拟对象。且在步骤22中已经介绍,可以确定至少一个目标对象投影在拍照的图像中的实际位置,如果没有必要考虑持续采集的情况,则可以直接将该至少一个目标对象对应的虚拟对象叠加在该拍照图像中,也就省去了确定修正后姿态信息,以及后续步骤。

采用实施例2提供的方法,根据采集实时图像时终端的位置信息,获取包含候选目标对象的图像,将实时图像与包含候选目标对象的图像进行图像匹配,确定出至少一个目标对象投影在实时图像中的实际位置,并根据该至少一个目标对象投影在实时图像中的理论位置,确定出修正后姿态信息,最终根据修正后姿态信息将实时图像中的目标对象对应的虚拟对象进行展示。相比于现有技术仅根据lbs和imu进行展示而言,本方案在lbs和imu的基础上,加入了姿态修正信息,对lbs和imu的误差尽可能进行修正,在一定程度上解决了现有技术在将虚拟对象叠加展示在实时图像的目标对象位置上时,容易出现较大的位置误差的问题,达到减小位置误差的效果。

实施例3

基于相同的发明构思,实施例3提供了一种虚拟对象的展示装置,用于在将虚拟对象叠加展示在当前图像的目标对象位置上时,减小位置误差。如图7所示,为该装置的结构图,包括:获取单元31、匹配单元32、确定单元33以及展示单元34,其中,

获取单元31,可以用于根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像;

匹配单元32,可以用于将当前图像与包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在当前图像中的实际位置;

确定单元33,可以用于根据至少一个目标对象投影在当前图像中的理论位置和实际位置,确定修正后姿态信息,所述理论位置由采集当前图像时终端的位置信息和修正前姿态信息、所述至少一个目标对象的位置信息确定;

展示单元34,可以用于根据采集当前图像时终端的位置信息、目标对象的位置信息、以及所述修正后姿态信息,将目标对象对应的虚拟对象展示在所述当前图像中。

在一种实施方式中,获取单元31,具体用于:

根据采集当前图像时终端的位置信息和修正前姿态信息,获取包含候选目标对象的图像。

在一种实施方式中,匹配单元32,具体用于:

确定至少两个目标对象分别投影在当前图像中的实际位置;

则确定单元33,具体用于:

根据至少两个目标对象投影在当前图像中的理论位置和实际位置,确定修正后姿态信息。

在一种实施方式中,装置应用于装配有图像采集设备的终端,则

获取单元31,具体用于根据终端采集实时图像时的位置信息,获取包含候选目标对象的图像;

匹配单元32,具体用于将实时图像与包含候选目标对象的图像进行图像匹配,确定至少一个目标对象投影在实时图像中的实际位置;

确定单元33,具体用于根据至少一个目标对象投影在实时图像中的理论位置和实际位置,确定修正后姿态信息;

展示单元34,具体用于根据终端采集实时图像时的位置信息、目标对象的位置信息、以及修正后姿态信息,将目标对象对应的虚拟对象展示在实时图像中。

在一种实施方式中,

确定单元33,还可以用于根据修正后姿态信息以及终端采集实时图像时的修正前姿态信息,确定出变化的姿态信息;

展示单元34,还可以用于在预设时间周期内,根据变化的姿态信息,以及采集实时图像时的位置信息和修正前姿态信息、目标对象的位置信息,将目标对象对应的虚拟对象展示在实时图像中。

采用实施例3提供的装置,根据采集当前图像时终端的位置信息,获取包含候选目标对象的图像,将当前图像与包含候选目标对象的图像进行图像匹配,确定出至少一个目标对象投影在当前图像中的实际位置,并根据该至少一个目标对象投影在当前图像中的理论位置,确定出修正后姿态信息,最终根据修正后姿态信息将当前图像中的目标对象对应的虚拟对象进行展示。相比于现有技术仅根据lbs和imu进行展示而言,本方案在lbs和imu的基础上,加入了姿态修正信息,对lbs和imu的误差尽可能进行修正,在一定程度上解决了现有技术在将虚拟对象叠加展示在当前图像的目标对象位置上时,容易出现较大的位置误差的问题,达到减小位置误差的效果。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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