特征图像识别定位方法及系统

文档序号:9387 发布日期:2021-09-17 浏览:41次 英文

特征图像识别定位方法及系统

技术领域

本申请涉及增强现实

技术领域

,尤其涉及一种特征图像识别定位方法、系统、电子装置及计算机可读存储介质。

背景技术

Android系统的ARCore平台和iOS系统的ARKit平台都有一个增强图像(AugmentedImages)功能,该功能是扫描一个特征图像,AR(Augmented Reality,增强现实)相机可识别该特征图像,并计算出在AR相机空间坐标系中该特征图像的空间位置(坐标信息)和长宽信息。取得该特征图像的空间位置之后,就可以在该空间位置展示图片、播放视频或展示3D模型。

实现所述增强图像功能的过程包括两个部分:一是图片对比识别,找出AR相机的拍摄画面中是否出现预制的特征图像;二是计算出该特征图像在AR相机空间坐标系中的三维坐标位置。

但是,现有的ARCore平台和ARKit平台的增强图像功能在实现时存在一定的缺陷。以ARCore平台为例,计算特征图像空间位置时运算耗时较久,尤其是目标图(该特征图像)越大,相应运算时间就越久。再加之Android系统的开放性导致硬件构成参差不齐,使得ARCore平台对于特征图像空间位置的计算速度更慢,且结果可能不准。

需要说明的是,上述内容并不用于限制申请保护范围。

发明内容

本申请的主要目的在于提出一种特征图像识别定位方法、系统、电子装置及计算机可读存储介质,旨在解决在增强图像功能中如何快速准确得到特征图像空间位置的问题。

为实现上述目的,本申请实施例提供了一种特征图像识别定位方法,所述方法包括:

通过摄像头拍摄的画面扫描识别所述画面中的特征图像;

在所述画面中所述特征图像所在区域选取预设数量的特征点;

通过hitTest方法分别得到所述预设数量的特征点的三维坐标;

根据所述三维坐标分别计算所述预设数量的特征点与所述摄像头的距离,并根据计算出的距离判断对所述特征图像的定位是否有效;及

当根据所述计算出的距离判断对所述特征图像的定位有效时,根据所述预设数量的特征点创建锚点,将所述锚点的坐标作为所述特征图像的三维坐标。

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

当根据计算出的距离判断对所述特征图像的定位无效时,提示用户对所述画面进行调整。

可选地,所述预设数量为五个。

可选地,所述在所述画面中所述特征图像所在区域选取预设数量的特征点包括:

通过TensorFlow Lite技术的目标检测算法,获取所述特征图像在所述画面中的矩形框;

按预设规则在所述矩形框范围内选取五个特征点,所述预设规则为:

以所述画面左上角为坐标系原点,所述矩形框左上角坐标为(a,b),所述矩形框右下角坐标为(c,d),则所选取的五个特征点坐标为((a+c)*0.5,(b+d)*0.5)、((a+c)*0.5,(b+d)*0.375)、((a+c)*0.5,(b+d)*0.625)、((a+c)*0.375,(b+d)*0.5)及((a+c)*0.675,(b+d)*0.5)。

可选地,所述根据计算出的距离判断对所述特征图像的定位是否有效包括:

根据所得到的距离计算数学期望值,所述数学期望值为所述预设数量的特征点与所述摄像头的之间的距离的平均值;

计算所得到的距离和所述数学期望值的标准差;

判断所述标准差是否超过预设阈值,从而确定通过所述预设数量的特征点对所述特征图像的定位是否有效,其中,当所述标准差的值大于所述阈值时,确定通过所述预设数量的特征点对所述特征图像的定位无效;当所述标准差的值小于或等于所述阈值时,确定通过所述预设数量的特征点对所述特征图像的定位有效。

可选地,所述锚点为所述预设数量的特征点的中间点。

可选地,所述方法在所述通过摄像头拍摄的包含特征图像的画面扫描识别所述特征图像之后还包括:

提示用户将所述摄像头对准所述特征图像,并保证至少将所述特征图像在所述画面中填充50%。

此外,为实现上述目的,本申请实施例还提出一种特征图像识别定位系统,所述系统包括:

扫描模块,用于通过摄像头拍摄的包含特征图像的画面扫描识别所述特征图像;

选取模块,用于在所述画面中所述特征图像所在区域选取预设数量的特征点;

测试模块,用于通过hitTest方法分别得到所述预设数量的特征点的三维坐标;

判断模块,用于根据所述三维坐标分别计算所述预设数量的特征点与所述摄像头的距离,并根据计算出的距离判断对所述特征图像的定位是否有效;

定位模块,用于当根据计算出的距离判断对所述特征图像的定位有效时,根据所述预设数量的特征点创建一个锚点,将锚点坐标作为所述特征图像的三维坐标。

为实现上述目的,本申请实施例还提出一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的特征图像识别定位程序,所述特征图像识别定位程序被所述处理器执行时实现如上述的特征图像识别定位方法。

为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有特征图像识别定位程序,所述特征图像识别定位程序被处理器执行时实现如上述的特征图像识别定位方法。

本申请实施例提出的特征图像识别定位方法、系统、电子装置及计算机可读存储介质,能够通过在特征图像所在区域选取预设数量的特征点的方式,在增强图像功能中快速准确得到特征图像空间位置,改进了ARCore平台和ARKit平台的增强图像功能。

附图说明

图1为实现本申请各个实施例的一种应用环境架构图;

图2为本申请第一实施例提出的一种特征图像识别定位方法的流程图;

图3为图2中步骤S206的细化流程示意图;

图4为本申请第二实施例提出的一种特征图像识别定位方法的流程图;

图5为本申请第三实施例提出的一种电子装置的硬件架构示意图;

图6为本申请第四实施例提出的一种特征图像识别定位系统的模块示意图;

图7为本申请第五实施例提出的一种特征图像识别定位系统的模块示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。

请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于终端设备1和特征图像2的应用环境中。所述终端设备1中包括摄像头3和特征图像识别定位装置4等。所述终端设备1可以为手机、平板电脑、可穿戴设备等具有AR技术的电子终端,尤其适用于具有ARCore平台或ARKit平台的增强图像功能的智能手机。

AR技术是一种将虚拟信息与现实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到现实世界中,两种信息互为补充,从而实现对现实世界的“增强”。ARKit平台是苹果公司推出的增强现实开发平台,开发人员可以使用该平台创建增强现实应用程序。ARCore平台是谷歌推出的搭建增强现实应用程序的软件平台,类似于ARKit平台,可以利用云软件和设备硬件的进步,将数字对象放到现实世界中。

所述增强图像功能是ARCore平台和ARKit平台的一个功能,可以在AR相机坐标系中识别定位出特定的图像(特征图像2)的坐标、大小和方向。开发人员可以构建能够响应该特定的图像的AR应用。所述特征图像2为现实世界中的特定物体图像,且为二维平面图像,可以是线下展会场景的人像立牌,也可以是电脑屏幕上一个图片,或者是产品包装或电影海报等。所述摄像头3用于拍摄包含所述特征图像2的画面。所述特征图像识别定位装置4用于根据所述摄像头3拍摄的画面识别所述特征图像2并定位所述特征图像2的空间坐标。所述特征图像识别定位装置4可以是所述终端设备1中的硬件装置,或者是运行在所述终端设备1中的软件系统。

运用所述增强图像功能,用户可以在将所述终端设备1的摄像头3对准所述特征图像2时触发AR体验。例如,用户可以将所述终端设备1的摄像头3对准电影海报,使海报中的人物弹出,然后引发一个场景。

可以理解,所述终端设备1中还可以包括实现基本功能的其他组件,例如显示装置等,在此不再赘述。

值得注意的是,所述特征图像识别定位装置4可以与所述摄像头3分别独立存在于所述终端设备1中,也可以与所述摄像头3整合(例如AR相机),或者还可以是其他组合形式,在此不做限制。

实施例一

如图2所示,为本申请第一实施例提出的一种特征图像识别定位方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。

该方法包括以下步骤:

S200,通过摄像头3拍摄的包含特征图像2的画面扫描识别所述特征图像2。

启动所述摄像头3,通过控制所述摄像头3拍摄包含所述特征图像2的画面,在画面中扫描识别所述特征图像2。该步骤处于识别出所述特征图像2,但还未获取到所述特征图像2的空间位置信息的状态,即处于TrackingState.PAUSED(跟踪状态暂停)状态。

值得注意的是,如果所述特征图像2在所述画面中填充区域过小,后续所选取的特征点可能会出现所述特征图像2范围之外的点,而导致最终的定位结果产生较大误差。因此,为了保证定位效果,在该步骤中还需提示用户将所述摄像头3对准所述特征图像2,并保证至少将所述特征图像2在所述画面中填充50%。

S202,在所述画面中所述特征图像2所在区域选取预设数量的特征点。

现有的增强图像功能识别定位所述特征图像2的速度慢的核心问题在于自动识别和跟踪的特征点太多,而实际应用场景中,所述特征图像2一般是一个二维平面图像,例如线下展会场景的人像立牌等。用户使用所述摄像头3(在所述特征图像2附近)拍摄所述特征图像2的画面,然后所述增强图像功能识别定位出所述特征图像2的空间位置等信息后,即可在该空间位置进行AR展示,例如使该人像立牌中的人像弹出,通过3D动画做出一些动作。因此,所述增强图像功能的本质是识别一个近距离平面物体(例如离所述摄像头3较近距离处的人像立牌),所以不需要过多特征点。为了提高定位所述特征图像2的空间坐标的计算速度,只需要选取少量特征点来进行跟踪。在本实施例中,所述预设数量为五个。特征点的数量越多,定位所述特征图像2的空间坐标的的计算结果越精确,相应的代价是执行耗时会越久。特征点的数量确定为五个,是经过多次对比试验所得准确度与效率比较平衡的取值。

选取这五个特征点的具体过程为:

首先,通过TensorFlow Lite技术的Object Detection(目标检测)算法,获取到所述特征图像2在所述画面(或屏幕)中的矩形框。然后,按预设规则在该矩形框范围内选取五个特征点。所述预设规则为:

假设所述画面(或屏幕)左上角为坐标系原点,该矩形框左上角坐标为(a,b),该矩形框右下角坐标为(c,d)。则所选取的五个特征点坐标为((a+c)*0.5,(b+d)*0.5)、((a+c)*0.5,(b+d)*0.375)、((a+c)*0.5,(b+d)*0.625)、((a+c)*0.375,(b+d)*0.5)及((a+c)*0.675,(b+d)*0.5)。

上述方式选取出的五个特征点位于所述特征图像2所在区域的各个不同方位,可以在尽量减少特征点数量的基础上(控制为五个),有效满足通过这些特征点对所述特征图像2进行定位的准确性。

TensorFlow Lite技术是谷歌推出的面向移动设备和嵌入式设备的神经网络计算框架,是一种深度学习在移动平台部署的轻量化解决方案,支持机器学习推理,并具有低延迟和较小的二进制文件尺寸。该技术支持浮点运算和量化模型,并已针对移动平台进行优化,可以用来创建和运行自定义模型,开发者也可以在模型中添加自定义操作。ObjectDetection算法是一种计算机视觉技术,旨在检测汽车、建筑物和人类等目标,这些目标通常可以通过图像或视频来识别。该算法包括定位图像中目标的存在,并在该目标周围绘制一个边界框。

当然,在其他实施例中,也可选取其他合适数量的特征点,或者按其他规则确定这些特征点的坐标。

S204,通过hitTest(点击测试)方法分别得到所述预设数量的特征点的三维坐标。

hitTest为ARCore平台和ARKit平台的功能接口,用于找到与所述画面中的某个点所对应的真实世界面,当用户在屏幕中输入任意一个点(x,y),例如在屏幕上点击该点时,输出是得到该点在所述画面中对应的点(现实世界中该点)的三维坐标。在本实施例中,在选取所述五个特征点后,通过hitTest方法可以得到所述五个特征点在AR相机坐标系(以所述摄像头3位置为坐标系原点)中的三维坐标,分别记为P1到P5。

S206,根据所述三维坐标计算所述预设数量的特征点与所述摄像头3的距离,并根据计算出的距离判断对所述特征图像2的定位是否有效。

根据所述五个特征点的三维坐标,可以计算每个特征点与所述摄像头3(AR相机)之间的距离,若这些距离之间差距较小,则表示所述五个特征点处于同一个二维平面,即找到了所述特征图像2所在平面,通过所述预设数量的特征点对所述特征图像2的定位方式是有效的。

进一步参阅图3,为上述步骤S206的细化流程示意图。在本实施例中,所述步骤S206具体包括:

S2060,根据所述三维坐标分别计算所述预设数量的特征点与所述摄像头3的之间的距离。

假设所述预设数量为n(n为正整数),则可以得到n个距离值,记为x1、x2、…、xn。例如,根据所述五个特征点的三维坐标计算每个特征点与所述摄像头3之间的距离,得到五个距离值,记为x1、x2、x3、x4、x5

S2062,根据所得到的距离计算数学期望值。

在本实施例中,所述数学期望值为所述n个距离值的平均值,计算公式为数学期望值例如,计算所述五个距离值的平均值,即

S2064,计算所得到的距离和所述数学期望值的标准差。

所述标准差为上述步骤计算得到的各个距离值(xi,i=1,2,…,n)与所述数学期望值离差平方和的算术平均数的平方根,计算公式为

S2066,判断所述标准差是否超过预设阈值,从而确定通过所述预设数量的特征点对所述特征图像2的定位是否有效。

标准差代表数值的差异波动情况,所述标准差的值越大,说明各个距离值之间差异越大。当所述标准差的值超过(大于)所述阈值时,表示通过所述特征点对所述特征图像2的定位无效(结果不准确)。当所述标准差的值未超过(小于或等于)所述阈值时,表示通过所述特征点对所述特征图像2的定位有效。在本实施例中,所述阈值设置为10%。

回到图2,步骤S208,当根据计算出的距离判断对所述特征图像2的定位有效时,根据所述预设数量的特征点创建一个锚点,将锚点坐标作为所述特征图像2的三维坐标。

若判断出通过所述特征点对所述特征图像2的定位有效,则将所述预设数量的特征点的中间点作为所述锚点,将所述锚点的三维坐标作为所述特征图像2的三维坐标,后续则可以根据所述特征图像2位置做功能展示。

本实施例提出的特征图像识别定位方法,可以通过在特征图像2所在区域选取五个特征点的方式,提高对所述特征图像2的识别定位速度,改进了ARCore平台和ARKit平台的增强图像功能。经试验证实,该方法可明显缩短对所述特征图像2的空间位置计算耗时,例如,识别定位一个立牌的响应时间可以由6秒提升至3秒。

实施例二

如图4所示,为本申请第二实施例提出的一种特征图像识别定位方法的流程图。在第二实施例中,所述特征图像识别定位方法在上述第一实施例的基础上,还包括步骤S410。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。

该方法包括以下步骤:

S400,通过摄像头3拍摄的包含特征图像2的画面扫描识别所述特征图像2。

启动所述摄像头3,通过控制所述摄像头3拍摄包含所述特征图像2的画面,在画面中扫描识别所述特征图像2。该步骤处于识别出所述特征图像2,但还未获取到所述特征图像2的空间位置信息的状态,即处于TrackingState.PAUSED状态。

值得注意的是,如果所述特征图像2在所述画面中填充区域过小,后续所选取的特征点可能会出现所述特征图像2范围之外的点,而导致最终的定位结果产生较大误差。因此,为了保证定位效果,在该步骤中还需提示用户将所述摄像头3对准所述特征图像2,并保证至少将所述特征图像2在所述画面中填充50%。

S402,在所述画面中所述特征图像2所在区域选取预设数量的特征点。

现有的增强图像功能识别定位所述特征图像2的速度慢的核心问题在于自动识别和跟踪的特征点太多,而实际应用场景中,所述特征图像2一般是一个二维平面图像,例如线下展会场景的人像立牌等。用户使用所述摄像头3(在所述特征图像2附近)拍摄所述特征图像2的画面,然后所述增强图像功能识别定位出所述特征图像2的空间位置等信息后,即可在该空间位置进行AR展示,例如使该人像立牌中的人像弹出,通过3D动画做出一些动作。因此,所述增强图像功能的本质是识别一个近距离平面物体(例如离所述摄像头3较近距离处的人像立牌),所以不需要过多特征点。为了提高定位所述特征图像2的空间坐标的计算速度,只需要选取少量特征点来进行跟踪。在本实施例中,所述预设数量为五个。特征点的数量越多,定位所述特征图像2的空间坐标的的计算结果越精确,相应的代价是执行耗时会越久。特征点的数量确定为五个,是经过多次对比试验所得准确度与效率比较平衡的取值。

选取这五个特征点的具体过程为:

首先,通过TensorFlow Lite技术的Object Detection算法,获取到所述特征图像2在所述画面(或屏幕)中的矩形框。然后,按预设规则在该矩形框范围内选取五个特征点。所述预设规则为:

假设所述画面(或屏幕)左上角为坐标系原点,该矩形框左上角坐标为(a,b),该矩形框右下角坐标为(c,d)。则所选取的五个特征点坐标为((a+c)*0.5,(b+d)*0.5)、((a+c)*0.5,(b+d)*0.375)、((a+c)*0.5,(b+d)*0.625)、((a+c)*0.375,(b+d)*0.5)及((a+c)*0.675,(b+d)*0.5)。

当然,在其他实施例中,也可选取其他合适数量的特征点,或者按其他规则确定这些特征点的坐标。

S404,通过hitTest方法得到所述特征点的三维坐标。

在本实施例中,在选取所述五个特征点后,通过hitTest方法可以得到所述五个特征点在AR相机坐标系(以所述摄像头3位置为坐标系原点)中的三维坐标,分别记为P1到P5。

S406,根据所述三维坐标计算所述预设数量的特征点与所述摄像头3的距离,并根据计算出的距离判断对所述特征图像2的定位是否有效。

根据所述五个特征点的三维坐标,可以计算每个特征点与所述摄像头3(AR相机)之间的距离,若这些距离之间差距较小,则表示所述五个特征点处于同一个二维平面,即找到了所述特征图像2所在平面,通过所述预设数量的特征点对所述特征图像2的定位方式是有效的。

所述步骤S306的具体实现过程参见图3及对应说明,在此不再赘述。

S408,当根据计算出的距离判断对所述特征图像2的定位有效时,根据所述预设数量的特征点创建一个锚点,将锚点坐标作为所述特征图像2的三维坐标。

若判断出通过所述特征点对所述特征图像2的定位有效,则将所述预设数量的特征点的中间点作为所述锚点,将所述锚点的三维坐标作为所述特征图像2的三维坐标,后续则可以根据所述特征图像2位置做功能展示。

S410,当根据计算出的距离判断对所述特征图像2的定位无效时,提示用户对所述画面进行调整。

若判断出通过所述特征点对所述特征图像2的定位无效,则代表所述特征点选取有偏差,或者所述特征图像2摆放位置不满足条件,例如在所述画面中填充区域不足(未达到50%)。因此,可以提示用户对摄像头3拍摄的所述画面进行调整,调整方式包括但不限于改变所述摄像头3与所述特征图像2之间的距离,改变所述摄像头3对所述特征图像2的拍摄角度,改变所述特征图像2的摆放方式等。

另外,还可以在提示的同时根据上述步骤的计算结果向用户提供调整建议。例如,假设计算出的五个特征点与所述摄像头3之间的距离中,有一个距离值尤其偏大,则表示该距离值对应的特征点选取的不准确,可能是该特征点超出了所述特征图像2的范围,因此可以建议用户将所述特征图像2在所述画面中的位置向该特征点方向移动。

本实施例提出的特征图像识别定位方法,可以通过在特征图像2所在区域选取五个特征点的方式,提高对所述特征图像2的识别定位速度,改进了ARCore平台和ARKit平台的增强图像功能。并且,当判断出通过所述特征点对所述特征图像2的定位无效时,还可以提示用户对所述画面进行调整,并给出调整建议,以更快得到准确的定位结果,提升用户体验。

实施例三

如图5所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图5仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述终端设备1或所述特征图像识别定位装置4。当所述电子装置20为所述终端设备1时,所述摄像头3也包括于所述电子装置20中。当所述电子装置20为所述特征图像识别定位装置4时,所述摄像头3可以包括于所述电子装置20中,也可以位于所述电子装置20外部。

所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如特征图像识别定位系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述特征图像识别定位系统60等。

所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。

实施例四

如图6所示,为本申请第四实施例提出一种特征图像识别定位系统60的模块示意图。所述特征图像识别定位系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。

在本实施例中,所述特征图像识别定位系统60包括:

扫描模块600,用于通过摄像头3拍摄的包含特征图像2的画面扫描识别所述特征图像2。

启动所述摄像头3,通过控制所述摄像头3拍摄包含所述特征图像2的画面,在画面中扫描识别所述特征图像2。此时处于识别出所述特征图像2,但还未获取到所述特征图像2的空间位置信息的状态,即处于TrackingState.PAUSED状态。

值得注意的是,如果所述特征图像2在所述画面中填充区域过小,后续所选取的特征点可能会出现所述特征图像2范围之外的点,而导致最终的定位结果产生较大误差。因此,为了保证定位效果,还需提示用户将所述摄像头3对准所述特征图像2,并保证至少将所述特征图像2在所述画面中填充50%。

选取模块602,用于在所述画面中所述特征图像2所在区域选取预设数量的特征点。

现有的增强图像功能识别定位所述特征图像2的速度慢的核心问题在于自动识别和跟踪的特征点太多,而实际应用场景中,所述特征图像2一般是一个二维平面图像,例如线下展会场景的人像立牌等。用户使用所述摄像头3(在所述特征图像2附近)拍摄所述特征图像2的画面,然后所述增强图像功能识别定位出所述特征图像2的空间位置等信息后,即可在该空间位置进行AR展示,例如使该人像立牌中的人像弹出,通过3D动画做出一些动作。因此,所述增强图像功能的本质是识别一个近距离平面物体(例如离所述摄像头3较近距离处的人像立牌),所以不需要过多特征点。为了提高定位所述特征图像2的空间坐标的计算速度,只需要选取少量特征点来进行跟踪。在本实施例中,所述预设数量为五个。特征点的数量越多,定位所述特征图像2的空间坐标的的计算结果越精确,相应的代价是执行耗时会越久。特征点的数量确定为五个,是经过多次对比试验所得准确度与效率比较平衡的取值。

选取这五个特征点的具体过程为:

首先,通过TensorFlow Lite技术的Object Detection算法,获取到所述特征图像2在所述画面(或屏幕)中的矩形框。然后,按预设规则在该矩形框范围内选取五个特征点。所述预设规则为:

假设所述画面(或屏幕)左上角为坐标系原点,该矩形框左上角坐标为(a,b),该矩形框右下角坐标为(c,d)。则所选取的五个特征点坐标为((a+c)*0.5,(b+d)*0.5)、((a+c)*0.5,(b+d)*0.375)、((a+c)*0.5,(b+d)*0.625)、((a+c)*0.375,(b+d)*0.5)及((a+c)*0.675,(b+d)*0.5)。

当然,在其他实施例中,也可选取其他合适数量的特征点,或者按其他规则确定这些特征点的坐标。

测试模块604,用于通过hitTest方法分别得到所述预设数量的特征点的三维坐标。

在本实施例中,在选取所述五个特征点后,通过hitTest方法可以得到所述五个特征点在AR相机坐标系(以所述摄像头3位置为坐标系原点)中的三维坐标,分别记为P1到P5。

判断模块606,用于根据所述三维坐标计算所述预设数量的特征点与所述摄像头3的距离,并根据计算出的距离判断对所述特征图像2的定位是否有效。

根据所述五个特征点的三维坐标,可以计算每个特征点与所述摄像头3(AR相机)之间的距离,若这些距离之间差距较小,则表示所述五个特征点处于同一个二维平面,即找到了所述特征图像2所在平面,通过所述预设数量的特征点对所述特征图像2的定位方式是有效的。

此部分的具体实现过程参见图3及对应说明,在此不再赘述。

定位模块608,用于当根据计算出的距离判断对所述特征图像2的定位有效时,根据所述预设数量的特征点创建一个锚点,将锚点坐标作为所述特征图像2的三维坐标。

若判断出通过所述特征点对所述特征图像2的定位有效,则将所述预设数量的特征点的中间点作为所述锚点,将所述锚点的三维坐标作为所述特征图像2的三维坐标,后续则可以根据所述特征图像2位置做功能展示。

本实施例提出的特征图像识别定位系统,可以通过在特征图像2所在区域选取五个特征点的方式,提高对所述特征图像2的识别定位速度,改进了ARCore平台和ARKit平台的增强图像功能。经试验证实,该系统可明显缩短对所述特征图像2的空间位置计算耗时,例如,识别定位一个立牌的响应时间可以由6秒提升至3秒。

实施例五

如图7所示,为本申请第五实施例提出一种特征图像识别定位系统60的模块示意图。在本实施例中,所述特征图像识别定位系统60除了包括第四实施例中的所述扫描模块600、选取模块602、测试模块604、判断模块606、定位模块608之外,还包括提示模块610。

所述提示模块610,用于当根据计算出的距离判断对所述特征图像2的定位无效时,提示用户对所述画面进行调整。

若判断出通过所述特征点对所述特征图像2的定位无效,则代表所述特征点选取有偏差,或者所述特征图像2摆放位置不满足条件,例如在所述画面中填充区域不足(未达到50%)。因此,可以提示用户对摄像头3拍摄的所述画面进行调整,调整方式包括但不限于改变所述摄像头3与所述特征图像2之间的距离,改变所述摄像头3对所述特征图像2的拍摄角度,改变所述特征图像2的摆放方式等。

另外,还可以在提示的同时根据上述计算结果向用户提供调整建议。例如,假设计算出的五个特征点与所述摄像头3之间的距离中,有一个距离值尤其偏大,则表示该距离值对应的特征点选取的不准确,可能是该特征点超出了所述特征图像2的范围,因此可以建议用户将所述特征图像2在所述画面中的位置向该特征点方向移动。

本实施例提出的特征图像识别定位系统,可以通过在特征图像2所在区域选取五个特征点的方式,提高对所述特征图像2的识别定位速度,改进了ARCore平台和ARKit平台的增强图像功能。并且,当判断出通过所述特征点对所述特征图像2的定位无效时,还可以提示用户对所述画面进行调整,并给出调整建议,以更快得到准确的定位结果,提升用户体验。

实施例六

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有特征图像识别定位程序,所述特征图像识别定位程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的特征图像识别定位方法的步骤。

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

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。

以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:用于基于图像的定位的方法、系统和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!