发明内容
为此,本发明提供一种基于增强现实的虚拟对象显示方法、装置以及***,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种基于增强现实的虚拟对象显示方法,包括:经由摄像头捕获当前真实场景下包含标识物的图像;获取当前的地理位置信息;对捕获的图像进行特征检测,提取图像中标识物的特征点;根据提取的特征点,在数据库中确定与获取的地理位置信息关联、包含标识物的图像模版;获取图像模版对应的虚拟对象,该虚拟对象为视频、音频、文字、二维图像和三维模型中的一个;将当前真实场景下的图像与获取的虚拟对象叠加,以得到相应的虚拟场景,并经由显示屏显示该虚拟场景。
可选地,在根据本发明的方法中,在数据库中确定与获取的地理位置信息关联、包含标识物的匹配的图像模版的步骤包括:将提取的标识物的特征点与图像模版的特征点进行比对;若提取的特征点与图像模版的特征点匹配的数量超过阈值,则确定该图像模版为包含标识物的图像模版。
可选地,在根据本发明的方法中,将当前真实场景下的图像与获取的虚拟对象叠加的步骤包括:根据设置的ARGB参数,对标识物的背景进行透明化处理,以便虚拟对象能够与当前真实场景下的图像无缝叠加。
可选地,在根据本发明的方法中,当虚拟对象为三维模型时,将当前真实场景下的图像与获取的虚拟对象叠加,以得到相应的虚拟场景的步骤包括:经由unity3D引擎将当前真实场景下的图像与获取的虚拟对象叠加,得到相应的虚拟场景。
可选地,在根据本发明的方法中,还包括步骤:将真实场景下包含标识物的图像模版以及对该图像模版进行特征检测后提取的图像模版中标识物的特征点上传至数据库;上传关联的地理位置信息以及该图像模版对应的虚拟对象至数据库。
可选地,在根据本发明的方法中,还包括步骤:检测后继经由摄像头捕获的图像是否存在交互事件;若是,则触发对应的交互操作,所述交互事件包括静态手势、动态手势、遮挡动作以及眼部动作,对应的交互操作为虚拟对象的动态变化。
可选地,在根据本发明的方法中,检测后继经由摄像头捕获的图像是否存在交互事件的步骤包括:当检测到后继经由摄像头捕获的图像存在指定区域被遮挡,确定存在遮挡动作的交互事件;所述触发虚拟对象的动态变化的步骤包括:去除图像中被遮挡的指定区域,并在数据库中获取去除指定区域后的图像对应的、对显示的虚拟对象的交互操作;执行该交互操作。
可选地,在根据本发明的方法中,还包括步骤:在数据库中设置去除图像模版中不同的指定区域后生成的不同图像对应的交互操作。
根据本发明的另一方面,提供了一种基于增强现实的虚拟对象显示装置,驻留在具有摄像头和显示屏的移动终端中,该装置包括:图像捕获模块,适于经由摄像头捕获当前真实场景下包含标识物的图像,位置获取模块,适于获取当前的地理位置信息;特征提取模块,适于对捕获的图像进行特征检测,提取图像中标识物的特征点;对象匹配模块,适于根据提取的特征点,在数据库中确定与获取的地理位置信息关联、包含所述标识物的图像模版;还适于获取图像模版对应的虚拟对象,虚拟对象为视频、音频、文字、二维图像和三维模型中的一个;对象显示模块,适于将当前真实场景下的图像与获取的虚拟对象叠加,以得到相应的虚拟场景;还适于经由显示屏显示得到的虚拟场景。
可选地,在根据本发明的装置中,对象匹配模块还适于将提取的标识物的特征点与图像模版的特征点进行比对;若提取的特征点与图像模版的特征点匹配的数量超过阈值,则确定该图像模版为包含标识物的图像模版。
可选地,在根据本发明的装置中,对象显示模块还适于根据设置的ARGB参数,对标识物的背景进行透明化处理,以便虚拟对象能够与当前真实场景下的图像无缝叠加。
可选地,在根据本发明的装置中,当虚拟对象为三维模型时,对象显示模块还适于经由unity3D引擎将当前真实场景下的图像与获取的虚拟对象叠加,得到相应的虚拟场景。
可选地,在根据本发明的装置中,还包括模版设置模块,适于将真实场景下包含标识物的图像模版以及对该图像模版进行特征检测后提取的图像模版中标识物的特征点上传至数据库;还适于上传关联的地理位置信息以及该图像模版对应的虚拟对象至数据库。
可选地,在根据本发明的装置中,还包括交互模块,适于检测后继经由摄像头捕获的图像是否存在交互事件,若是,则触发该交互事件对应的交互操作,交互事件包括静态手势、动态手势、遮挡动作以及眼部动作,对应的交互操作为虚拟对象的动态变化。
可选地,在根据本发明的装置中,交互模块还适于当检测到后继经由摄像头捕获的图像存在指定区域被遮挡,确定存在遮挡动作的交互事件;还适于去除图像中被遮挡的指定区域,并在数据库中获取去除指定区域后的图像对应的、对显示的虚拟对象的交互操作;还适于执行该交互操作。
可选地,在根据本发明的装置中,模版设置模块还适于在数据库中设置去除图像模版中不同的指定区域后生成的不同图像对应的交互操作。。
根据本发明的还有一个方面,提供了一种基于增强现实的虚拟对象显示***,包括:根据本发明的虚拟对象显示装置,以及数据库,该数据库适于存储图像模版以及图像模版对应的虚拟对象。
根据本发明的虚拟对象显示方案通过对捕获的图像提取特征点,并根据特征点匹配相应的虚拟对象并显示,识别精准,延迟较小,同时虚拟对象的多样化可以提供给用户更好更生动的感官体验。其中,通过设置ARGB参数来对标识物背景进行透明化处理,可以保证虚拟对象能够与真实场景下的图像无缝叠加。进一步地,通过多种类型的交互事件来触发执行对应的交互操作,既操作简单,又实现了用户与虚拟对象之间的交互,用户体验较好。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个示例性实施方式的基于增强现实的虚拟对象显示***100的结构框图。如图1所示,***100可以包括基于增强现实的虚拟对象显示装置200和数据库300。基于增强现实的虚拟对象显示装置200通常驻留在具有摄像头和显示屏的移动终端中,并通过网络与数据库300连接。数据库300存储有图像模版以及图像模版对应的虚拟对象,虚拟对象显示装置200经由摄像头捕获图像后,可以向数据库300查询匹配的图像模版以及虚拟对象,并将虚拟对象经由显示屏显示出来。这里的虚拟对象可以是视频、音频、文字、二维图像以及三维模型中的一个。
图2示出了根据本发明一个示例性实施方式的基于增强现实的虚拟对象显示装置200的结构框图。如图2所示,虚拟对象显示装置200可以包括图像捕获模块210、位置获取模块220、特征提取模块230、对象匹配模块240以及对象显示模块250。
首先,图像捕获模块210经由摄像头捕获当前真实场景下包含标识物的图像。具体地,图像捕获模块210可以调用其驻留的移动终端的摄像头进行摄取,当前真实场景下包含标识物的图像可以通过摄像头摄取通电的显示有标识物的电子设备屏幕(电脑显示屏、手机显示屏等)获得,也可以通过摄像头摄取实体的印刷有标识物的物品(一般为平面物品,例如卡片、碟片、海报等)获得,还可以通过摄像头摄取实体的标识物(例如实体的眼镜架、眼镜盒等等)获得。其中标识物与后续需要显示的虚拟对象对应的、并具有足够特征点,可以是虚拟三维模型在投影方向上产生的图像,也可以是虚拟二维图像,还可以是条形码(一维条形码、二维条形码等),还可以是实体的物品。在一个实施例中,标识物为实体的眼镜架或眼镜盒,其对应的虚拟对象为介绍该款眼镜的视频。
同时,位置获取模块220通过LBS或者GPS获取用户的地理位置信息,该地理位置信息表示用户,也就是虚拟对象显示装置200所驻留的移动终端所处的地理位置,并包括经纬度。
特征提取模块230与图像捕获模块210连接,适于对捕获的图像进行特征检测,提取图像中标识物的特征点。提取出来的特征点通常反映了标识物的特征。具体地,若标识物为非条形码的图像,可以对图像中的像素点进行遍历,获得其中色差大于或等于预设色差阈值的像素点,将这些像素点作为捕获的图像的特征点,而后依据预设的参照位置获得每个特征点的坐标。其中,参照位置可以为捕获的图像的中心像素点,在获得特征点的坐标时,可以依据中心像素点建立一个坐标系,依据特征点与中心像素点的相对位置,就可以获得特征点基于该坐标系的坐标。若捕获的图像为二维条形码,可以依据预设的分辨率对二维条形码进行切分,获得图块,例如,将二维条形码在横向和竖向部分割成20份。由于二维条形码是由色块组成的,因此,以二维条形码的中心点作为原点,建立坐标系,获得图块基于该坐标系的坐标,将二维条形码中色块的边所属图块作为二维条形码的特征点,将二维条形码的色块的边所属图块的坐标,作为二维条形码的特征点的坐标。在一个实施例中,该模块可以通过Metaio、D’fusion以及Vuforia引擎等工具实现。
对象匹配模块240分别与特征提取模块230和位置获取模块220连接,适于与数据库300进行通信,在数据库300中确定与获取的地理位置信息关联、包含上述标识物的图像模版。具体地,对象匹配模块240先在数据库300中搜索找到该地理位置信息关联的图像模版,而后将提取的标识物的特征点与图像模版的特征点进行比对。若提取的特征点与图像模版的特征点匹配的数量超过阈值,则确定该图像模版为包含上述标识物的图像模版。
这里,图像模版以及相应的关联关系均事先设置并存储于数据库300中。在一个实施例中,虚拟对象显示装置200还可以包括模版设置模块260,模版设置模块260可以将真实场景下包含上述标识物的图像模版以及对该图像模版进行特征检测后提取的图像模版中标识物的特征点上传至数据库300,还可以将关联的地理位置信息以及该图像模版对应的虚拟对象上传至数据库300存储。具体地,模版设置模块260也可以通过Vuforia引擎来实现,
确定与获取的地理位置信息关联、包含上述标识物的图像模版之后,对象匹配模块240可以在数据库300中获取该图像模版对应的虚拟对象,还可以根据上述图像的特征点进行姿态评估,并确定其位置,然后计算变换矩阵,从而使从上述以图像的中心像素点为原点建立的坐标系和显示屏的屏幕坐标系建立映射关系,这样根据这个变换在显示屏上显示的图像就可以达到该图像依附在标识物图像上的效果。同时,对象显示模块还可以根据设置的ARGB参数(例如设置相应的Alpha透明通道、Red通道、Green通道、Blue通道的数值),对标识物的背景进行透明化处理,以便后续虚拟对象能够与当前真实场景下的图像无缝叠加,给用户更真实更生动的观感体验。
对象显示模块250与对象匹配模块250连接,适于将当前真实场景下的图像与获取的虚拟对象叠加,以得到相应的虚拟场景,最后显示得到的虚拟场景。具体地,对象显示模块250可以将获取的虚拟对象根据上述计算出的变换矩阵绘制出来,最后将虚拟对象与摄像头获取的真实场景下的图像叠加地显示在显示屏上。
在一个实施例中,当虚拟对象为三维模型时,对象显示模块250可以通过Unity3D引擎来实现,Unity 3D可以将虚拟对象的文件下载到移动终端后直接渲染使用,从而提高虚拟场景的生成速度。具体地,在Unity 3D中,首先在Hierarchy面板添加一个增强现实相机AR Camera,然后将标识物和三维模型的虚拟对象导入,在Scene面板中调整其位置和视角,确保其都在增强现实相机AR Camera的视角下,通过虚拟相机把真实场景和虚拟物体叠加起来,并根据需要适当调整其在三维空间的姿态信息。
例如,图3示出了一个包含标识物的图像的示意图,虚拟对象显示装置200通过摄像头捕获该包含标识物的图像,通过显示屏显示该标识物对应的虚拟对象——三维人物模型,如图4所示。
又例如,图5示出了另一个包含标识物的图像的示意图,虚拟对象显示装置200通过摄像头捕获该包含标识物的图像,通过显示屏显示该标识物对应的虚拟对象——视频,如图6所示。
又例如,图7示出了另一个包含标识物的图像的示意图,虚拟对象显示装置200通过摄像头捕获该包含标识物的图像,通过显示屏显示该标识物对应的虚拟对象——视频,如图8所示。
此外,虚拟对象显示装置200还可以包括交互模块270,适于检测后继经由摄像头捕获的图像是否存在交互事件,若是,则触发相应的交互操作。。交互事件可以包括静态手势、动态手势以及遮挡动作,对应的交互操作为对应的虚拟对象的动态变化,可以为播放音频、播放视频、三维模型旋转、执行动画、跳转到网站等等。
其中,静态手势,也称之为手姿态,是指某一时刻静态的手臂、手掌或手指的形状、姿态,通过摄像头获取的图像识别出的手势数据中不包含连续时间序列信息,这类手势一般用基于图像特征聚类的方法进行识别。动态手势,则是指在一段连续的时间内手臂、手掌或手指的姿态变化或移动路径,手势数据中包括随时间变化的空间特征,能够很好地表示空间路径手势。动态手势通常使用隐马尔可夫模型—基于动态时间规整和压缩时间轴的方法进行识别,并包括时间序列信息。交互模块270可以通过手势的持续移动、变化,对应地让三维模型跟随手势变化。
遮挡动作,则是指摄像头捕获的图像中存在指定区域被遮挡。具体地,若交互模块270检测到摄像头捕获的图像存在遮挡动作的交互事件,则去除图像中被遮挡的指定区域,并在数据库300中获取去除指定区域后的图像对应的、对显示的虚拟对象的交互操作,而后执行该交互操作。
例如,图9示出了被划分为多个指定区域的包含标识物的图像的示意图,如图9所示,图像被划分为ABCDEF多个指定区域,当用手遮挡A区域后,交互模块270获取去除A区域后的图像,获取的数据库300中的相应动作为执行播放下一首曲目,并执行。当用手遮挡B区域后,交互模块270获取去除B区域后的图像,获取的数据库300中的相应动作为执行播放上一首曲目,并执行。当用手遮挡D区域后,交互模块270获取去除D区域后的图像,获取的数据库300中的相应动作为执行放大音量,并执行。当用手遮挡C区域后,交互模块270获取去除C区域后的图像,获取的数据库300中的相应动作为降低音量,并执行。还可以遮挡图像中的组合区域(例如AB组合区域、AD组合区域或者ABCD组合区域等等),从而执行不同的交互操作。
在一个实施例中,交互动作还可以包括眼部动作,通过移动终端中的前置摄像头,捕捉用户眼部图像,提取眼部特征,并根据眼部特征从而确定眼球位置,该眼球位置用于判定人眼注视的方向和目标,对应触发的交互操作可以为将虚拟对象往人眼注视的方向移动。
这些交互事件以及其对应的操作同样可以事先存储于数据库300中。具体地,模版设置模块260可以在数据库300中设置不同的交互事件以及其对应的交互操作,例如去除图像模版中不同的指定区域后生成的不同图像对应的交互操作。
综上,通过对捕获的图像提取特征点,并根据特征点匹配相应的虚拟对象并显示,识别精准,延迟较小,同时虚拟对象的多样化可以提供给用户更好更生动的感官体验。进一步地,通过多种类型的交互事件来触发执行对应的交互操作,既操作简单,又实现了用户与虚拟对象之间的交互,用户体验较好。
图10示出了根据本发明一个示例性实施方式的基于增强现实的虚拟对象显示方法400的流程图。如图8所示,方法400始于步骤S410,在步骤S410中,经由摄像头捕获当前真实场景下包含标识物的图像。同时,在步骤S420中,获取当前的地理位置信息。
而后,在步骤S430中,对捕获的图像进行特征检测,提取图像中标识物的特征点。在步骤S440中,根据提取的特征点,在数据库中确定与获取的地理位置信息关联、包含该标识物的图像模版。具体地,将提取的标识物的特征点与图像模版的特征点进行比对,若提取的特征点与图像模版的特征点匹配的数量超过阈值,则确定该图像模版为包含该标识物的图像模版。
确定图像模版后,在步骤S450中,获取图像模版对应的虚拟对象,其中虚拟对象为视频、音频、文字、二维图像和三维模型中的一个。
最后在步骤S460中,将当前真实场景下的图像与获取的虚拟对象叠加,以得到相应的虚拟场景,并经由显示屏显示该虚拟场景。当虚拟对象为三维模型时,可以经由unity3D引擎将当前真实场景下的图像与获取的虚拟对象叠加,得到相应的虚拟场景。进一步地,将当前真实场景下的图像与获取的虚拟对象叠加的步骤可以包括:根据设置的ARGB参数(例如设置相应的Alpha透明通道、Red通道、Green通道、Blue通道的数值),对标识物的背景进行透明化处理,以便虚拟对象能够与当前真实场景下的图像无缝叠加。
上述的图像模版以及对应的虚拟对象均实现存储于数据库中。因此,方法400还可以包括步骤:将真实场景下包含标识物的图像模版以及对该图像模版进行特征检测后提取的图像模版中标识物的特征点上传至数据库,上传关联的地理位置信息以及该图像模版对应的虚拟对象至数据库。
另外,方法400还可以包括步骤:检测后继经由摄像头捕获的图像是否存在交互事件;若是,则触发对应的交互操作,其中交互事件包括静态手势、动态手势、遮挡动作以及眼部动作,对应的交互操作为虚拟对象的动态变化。其中,当检测到后继经由摄像头捕获的图像存在指定区域被遮挡,则确定存在遮挡动作的交互事件,去除图像中被遮挡的指定区域,并在数据库中获取去除指定区域后的图像对应的、对显示的虚拟对象的交互操作,执行该交互操作。
相应地,方法400还可以包括步骤:在数据库300中设置不同的交互事件以及其对应的交互操作,例如去除图像模版中不同的指定区域后生成的不同图像对应的交互操作。
以上在结合图1~图9说明基于增强现实的虚拟对象显示***100的原理的具体描述中已经对各步骤中的相应处理进行了详细解释,这里不再对重复内容进行赘述。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明还包括:A6、如A1-5中任一项所述的方法,还包括步骤:检测后继经由摄像头捕获的图像是否存在交互事件;若是,则触发对应的交互操作,所述交互事件包括静态手势、动态手势、遮挡动作以及眼部动作,对应的交互操作为虚拟对象的动态变化。A7、如A6所述的方法,所述检测后继经由摄像头捕获的图像是否存在交互事件的步骤包括:当检测到后继经由摄像头捕获的图像存在指定区域被遮挡,确定存在遮挡动作的交互事件;所述触发虚拟对象的动态变化的步骤包括:去除图像中被遮挡的指定区域,并在数据库中获取去除指定区域后的图像对应的、对显示的虚拟对象的交互操作;执行所述交互操作。A8、如A7所述的方法,还包括步骤:在数据库中设置去除图像模版中不同的指定区域后生成的不同图像对应的交互操作。
B13、如B9-12中任一项所述的装置,还包括模版设置模块,适于将真实场景下包含所述标识物的图像模版以及对该图像模版进行特征检测后提取的图像模版中标识物的特征点上传至数据库;还适于上传关联的地理位置信息以及该图像模版对应的虚拟对象至数据库。B14、如B9-13中任一项所述的装置,还包括交互模块,适于检测后继经由摄像头捕获的图像是否存在交互事件,若是,则触发该交互事件对应的交互操作,所述交互事件包括静态手势、动态手势、遮挡动作以及眼部动作,对应的交互操作为虚拟对象的动态变化。B15、如B14所述的装置,所述交互模块还适于当检测到后继经由摄像头捕获的图像存在指定区域被遮挡,确定存在遮挡动作的交互事件;还适于去除图像中被遮挡的指定区域,并在数据库中获取去除指定区域后的图像对应的、对显示的虚拟对象的交互操作;还适于执行所述交互操作。B16、如B15所述的方法,所述模版设置模块还适于在数据库中设置去除图像模版中不同的指定区域后生成的不同图像对应的交互操作。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机***的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。