视觉定位方法及相关装置、设备和存储介质

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

视觉定位方法及相关装置、设备和存储介质

技术领域

本申请涉及人工智能

技术领域

,特别是涉及一种视觉定位方法及相关装置、设备和存储介质。

背景技术

增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR)等计算机视觉技术是当前的热点技术,通过相机作为输入设备,并利用图像算法处理,可以数字化周围环境,从而获取与真实环境进行交互的使用体验。视觉定位是AR技术、VR技术的一个重要应用。通过获取设备拍摄的图像,可以获得设备的位姿。

然而,在现有的视觉定位技术中,可以利用对目标平面如水平面拍摄得到的图像,来获得在由目标平面构建的世界坐标系中的位姿。然而,基于目标平面的实际放置情况,或者是设备的位姿的计算误差等因素的影响,可能会导致世界坐标系与真实情况不一致,这往往会导致获得的位姿不准确。

因此,如何得到提高设备位姿的准确度,对于提高视觉定位技术地进一步应用,具有非常重要的意义。

发明内容

本申请提供一种视觉定位方法及相关装置、设备和存储介质。

本申请第一方面提供了一种视觉定位方法,包括:将目标空间点的位置调整至参考平面上,以将世界坐标系的预设平面调整为参考平面,其中,目标空间点对应于第一图像帧中的第一特征点,目标空间点用于定义世界坐标系的预设平面;基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在调整后的世界坐标系中的第二位姿,其中,第一图像帧和第二图像帧是由设备的拍摄装置先后对目标平面拍摄得到的。

因此,通过将目标空间点的位置调整至参考平面上,可以使得基于调整后的目标空间点所定义的世界坐标系的预设平面是与参考平面重合的,由此调整后的世界坐标系符合实际空间情况,以此校正了世界坐标系,进而得到准确的第二位姿,实现对设备的准确定位。

其中,在执行将目标空间点的位置调整至参考平面上之前,视觉定位方法还包括:获取第一图像帧在世界坐标系中的第一位姿;上述的将目标空间点的位置调整至参考平面上,包括:将第一位姿中的姿态更新为参考姿态,得到更新第一位姿,其中,参考姿态是拍摄装置相对于参考平面的姿态;基于更新第一位姿、第一图像帧的第一特征点确定目标空间点在参考平面上的位置,以作为调整后的目标空间点的位置。

因此,通过将第一位姿中的姿态更新为参考姿态,使得可以将目标空间点的位置调整至参考平面上,以此可以利用该调整后的目标空间点以及后续图像帧,来实现对终端的准确定位。

其中,在执行将目标空间点的位置调整至参考平面上之前,视觉定位方法还包括:基于第一图像帧在世界坐标系中的第一位姿,检测世界坐标系的预设平面是否为参考平面;响应于预设平面不为参考平面,执行将目标空间点的位置调整至参考平面上。

因此,通过利用第一图像帧在世界坐标系中的第一位姿来检测世界坐标系的预设平面是否为参考平面,可以确定建立的世界坐标系是否需要校正。

其中,上述的基于第一图像帧在世界坐标系中的第一位姿,检测世界坐标系的预设平面是否为参考平面,包括:检测第一位姿中的姿态与参考姿态之间的差异是否在预设范围内,其中,参考姿态是相对于参考平面的姿态,第一位姿中的姿态是相对于预设平面的姿态;响应于差异在预设范围内,确定预设平面不为参考平面。

因此,通过判断参考姿态与第一位姿的姿态的差异,可以确定预设平面是否为参考平面,以此确定当前世界坐标系是否需要校正。

其中,上述的方法还包括以下步骤,以获得参考姿态:获取设备的传感装置在参考时刻检测得到的参考姿态,其中,参考时刻与第一图像帧的拍摄时刻之间的差值不超过预设时间差。

因此,通过利用传感装置获取参考姿态,可以快速获取参考姿态,加快本申请视觉定位方法的运行速度。

其中,上述的目标平面为定位辅助图像所在的平面,第一位姿是基于定位辅助图像确定的。

因此,通过利用定位辅助图像与第一图像帧进行配准,进而可获得第一图像帧的第一位姿。

其中,上述的方法还包括以下步骤,以获得第一位姿:基于第一图像帧与定位辅助图像之间的第一匹配点对,确定第一图像帧与定位辅助图像之间的第一变换参数,利用第一变换参数得到第一位姿;或者,基于第一图像帧与第三图像帧之间的第二匹配点对,确定第一图像帧和第三图像帧之间的第二变换参数,利用第二变换参数和第三图像帧与定位辅助图像之间的第三变换参数,得到第一位姿,其中,第三图像帧为拍摄装置在第一图像帧之前拍摄得到的。

因此,通过获得第一图像帧与定位辅助图像之间的第一变换参数,或者通过获得第二变换参数和第三变换参数,能够实现获得第一位姿。

其中,上述调整后的目标空间点是基于第一图像帧的第一特征点得到的;基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在世界坐标系中的第二位姿,包括:基于调整后的目标空间点在第二图像帧上投影的第二特征点与第一特征点之间的像素值差异,确定第二位姿。

因此,通过计算第二特征点与第一特征点之间的像素值差异,实现得到第二图像帧的第二位姿。

其中,上述的基于调整后的目标空间点在第二图像帧上投影的第二特征点与第一特征点之间的像素值差异,确定第二位姿,包括:获取至少一个候选位姿,并基于每个候选位姿和调整后的目标空间点确定与候选位姿对应的第二特征点,基于第二特征点与第一特征点之间的像素值差异,选择一候选位姿作为第二位姿。

因此,通过获取至少一个候选位姿,并确定候选位姿对应的像素值差异,通过比较各候选位姿对应的像素差异,从候选位姿中选出第二图像帧的第二位姿,由此可以得到更加准确的第二图像帧的第二位姿。

其中,上述的至少一个候选位姿是基于更新第一位姿确定的,更新第一位姿是利用参考姿态对第一图像帧在调整前的世界坐标系中的第一位姿进行更新得到,参考姿态是拍摄装置相对于参考平面的姿态;和/或,基于第三二特征点与第一特征点之间的像素值差异,选择候选位姿作为第二位姿,包括:选择像素值差异满足预设要求的第三二特征点所对应的候选位姿,作为第二位姿。

因此,通过筛选满足预设要求的候选位姿,可以获得相对准确的第二位姿。

其中,上述的预设平面为世界坐标中的水平面,参考平面为参考水平面。

因此,通过利用参考水平面确定世界坐标系的水平面,能够使得获得的第二位姿更加准确。

本申请第二方面提供了一种视觉定位装置,包括:调整模块和位姿确定模块;其中,调整模块用于将目标空间点的位置调整至参考平面上,以将世界坐标系的预设平面调整为参考平面,其中,目标空间点对应于第一图像帧中的第一特征点,目标空间点用于定义世界坐标系的预设平面;位姿确定模块用于基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在调整后的世界坐标系中的第二位姿,其中,第一图像帧和第二图像帧是由设备的拍摄装置先后对目标平面拍摄得到的。

本申请第三方面提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面中的视觉定位方法。

本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面中的视觉定位方法。

上述方案,通过将目标空间点的位置调整至参考平面上,可以使得基于调整后的目标空间点所定义的世界坐标系的预设平面,是与参考平面重合的,由此调整后的世界坐标系符合实际空间情况,以此校正了世界坐标系,进而得到准确的第二位姿,实现对设备的准确定位。

附图说明

图1是本申请视觉定位方法第一实施例的流程示意图;

图2是本申请视觉定位方法中检测到世界坐标系的预设平面与参考平面不重合的示意图;

图3是本申请视觉定位方法第二实施例的流程示意图;

图4是本申请视觉定位方法第三实施例的流程示意图

图5是本申请视觉定位装置一实施例的框架示意图;

图6是本申请电子设备一实施例的框架示意图;

图7为本申请计算机可读存储介质一实施例的框架示意图。

具体实施方式

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

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

本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。

本申请提及的图像帧可以是待定位的拍摄装置拍摄到的图像。例如,在AR、VR等应用场景中,图像帧可以是诸如手机、平板电脑、智能眼镜等电子设备中的拍摄装置所拍摄到的图像,在此不做限定。其他场景可以以此类推,在此不再一一举例。

请参阅图1,图1是本申请视觉定位方法第一实施例的流程示意图。具体而言,可以包括如下步骤:

步骤S11:将目标空间点的位置调整至参考平面上,以将世界坐标系的预设平面调整为参考平面。

在本申请中,拍摄装置可以按照时序对目标平面进行拍摄得到至少一张图像帧,例如,拍摄装置先后对目标平面进行拍摄,从而得到第一图像帧和第二图像帧。可以理解的,只要第一图像帧和第二图像帧中存在目标平面,都可以认为是对目标平面的拍摄。在一些实施例中,可以在拍摄装置拍摄得到的图像帧中确定与目标平面对应的区域,故该区域的特征点对应的空间点为目标平面上存在的物体上的点;或者直接将该图像帧的所有内容都确定为目标平面上的内容,即该图像帧的所有区域均为目标平面对应的区域,故该图像帧的特征点对应的空间点均为目标平面上存在的物体上的点。

第一图像帧中的第一特征点对应的目标空间点定义为世界坐标系的预设平面上的点。该目标空间点的位置可以利用第一图像帧的位姿以及第一图像帧上的第一特征点确定得到。该目标空间点定义为世界坐标系的预设平面上的点,可以理解为,由目标空间点定义世界坐标系的预设平面,即只要确定目标空间点的位置,既可以确定世界坐标系的预设平面,并基于确定的预设平面即可构建世界坐标系。其中,该预设平面可以为世界坐标系中两个坐标轴组成的平面,例如XOY平面(也可以为称为世界坐标系的水平面),或者是YOZ面(也可以为称为世界坐标系的竖直面。

本申请中,目标平面为待定位的拍摄装置所拍摄的平面,用于实现对该设备的定位。在一些实施例中,上述第一特征点可以认为是第一图像帧中对应目标平面的区域中的特征点,故该第一特征点对应的目标空间点可以认为是目标平面上存在的物体表面上的点,由目标空间点构建的原始的世界坐标系的预设平面可以认为与目标平面重合,故原始的世界坐标系是基于目标平面构建的。因此,可选择真实空间的特定平面作为目标平面,例如真实水平面或真实竖直面等真实平面。然而,在实际应用中,目标平面可能存在放置误差,从而导致目标平面不为上述真实平面(例如为接近真实平面的平面),进而导致构建的原始的世界坐标的预设平面不为上述真实平面;又或者目标平面为上述真实平面,但利用图像帧进行定位的相关算法的计算误差、拍摄的第一图像帧的噪点影响等等在定位过程出现的偏差,导致构建的原始的世界坐标的预设平面不为上述真实平面。由此,可能会导致后续图像帧的第二位姿不准确。基于此,为了保证后续图像帧的位姿准确性,可以,利用参考平面对世界坐标系进行校正。

该参考平面可以认为是真实空间中的一个特定平面,用于定义出符合真实空间情况的世界坐标系的预设平面,故在定位过程中构建的世界坐标系与真实存在偏差时对该世界坐标系进行调整,例如可以为真实水平面(即参考水平面),用于将世界坐标系的水平面(也可以称为XOY平面)校正为该真实水平面;或者为真实竖直面(也可以称为YOZ平面),用于将世界坐标系的竖直面(也可以称为YOZ平面)校正为该真实竖直面等。

在本申请中,利用第一图像帧的第一特征点对应的目标空间点定义世界坐标系的预设平面,故在检测到预设平面不为参考平面的情况下,可将目标空间点的位置调整至参考平面,以使得利用调整后的目标空间点定义的预设平面与与参考平面重合,即将世界坐标系的预设平面调整为参考平面。在此情况下,世界坐标系已调整为满足真实空间情况,例如世界坐标系的预设平面调整为与真实水平面重合,由此,在调整后的世界坐标系中进行后续的图像帧的定位,能够提高后续图像帧的定位准确性。

本实施例中,调整前的目标空间点和调整后的目标空间点投影于第一图像帧中的同一第一特征点。其中,调整前的目标空间点可以认为是利用调整前的第一位姿和第一特征点确定的目标空间点。

下面示范性列举将目标空间点的位置调整至参考平面上的两种具体实现方式,但应理解不限于以下两种。

在一个实施场景中,可以利用设备在对应第一图像帧的拍摄时间相对于参考平面的参考姿态(本文的姿态也可认为是朝向),对第一图像帧的第一位姿进行调整,得到第一图像帧的更新第一位姿,该第一图像帧的更新第一位姿可以理解为是第一图像帧相对于参考平面的位姿。参考姿态是拍摄装置相对于参考平面的姿态。在此基础上,利用该更新第一位姿和第一特征点,可确定得到目标空间点的位置,以此得到调整后的目标空间点,由于该更新第一位姿可以理解为是第一图像帧相对于参考平面的位姿,故该确定的目标空间点的位置位于参考平面上。

在一个实施场景中,可先利用第一图像帧的第一位姿和第一特征点确定目标空间点,然后将目标空间点的位置调整至参考平面上,例如确定经过该目标空间点和拍摄装置所在位置的直线,并将该直线与参考平面的交点所在的位置作为调整后的目标空间点的位置。

由于已经将目标空间点的位置调整至参考平面,意味着世界坐标系的预设平面也被调整至参考平面上,即此时的世界坐标系的预设平面,是与参考平面的重合的。

如无特别说明,在将目标空间点的位置调整至参考平面步骤之后,后续步骤提及的世界坐标系的预设平面是与参考平面重合的,即后续提及的世界坐标系,均是调整后的世界坐标系。

步骤S12:基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在调整后的世界坐标系中的第二位姿。

由于经S11步骤的调整后,世界坐标系的预设平面为参考平面,且拍摄装置中拍摄的目标空间点也在参考平面上,故相当于拍摄装置是对参考平面进行拍摄得到。故通过获取第一图像帧和第二图像帧中与调整后的目标空间点对应的特征点的图像信息,可确定得到第二图像帧在调整后的世界坐标系中的第二位姿。第二图像帧在世界坐标系中的第二位姿,即终端在拍摄第二图像帧时的第二位姿。

在一个具体实施场景中,可以是利用光度误差方程,基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在世界坐标系中的第二位姿。

因此,在利用目标空间点定义世界坐标系的预设平面的情况下,通过将目标空间点的位置调整至参考平面上,以使得基于调整后的目标空间点所定义的世界坐标系的预设平面,是与参考平面重合的,由此调整后的世界坐标系符合实际空间情况,以此校正了世界坐标系,进而得到准确的第二位姿,实现对设备的准确定位。

在一个实施例中,在执行上述的“将目标空间点的位置调整至参考平面上”步骤之前,还可以执行以下步骤S13。

步骤S13:基于第一图像帧在世界坐标系中的第一位姿,检测世界坐标系的预设平面是否为参考平面。

在本实施例中,可以基于第一图像帧在世界坐标系中的第一位姿,检测世界坐标的预设平面是否为参考平面,以此来确定是否需要进行对世界坐标系进行调整。

请参阅图2,图2是本申请视觉定位方法中检测到世界坐标系的预设平面与参考平面不重合的示意图。在图2中,C表示拍摄装置的第一位姿,201表示世界坐标系的预设平面,202表示参考平面。可见,此时世界坐标系的预设平面不与参考平面重合,即世界坐标系的预设平面不是为参考平面。

在检测到世界坐标系的预设平面不为参考平面时,此时执行本申请描述的方法的设备可以响应于预设平面不为参考平面,进而执行上述的步骤S11,即将目标空间点的位置调整至参考平面上。若检测到世界坐标系的预设平面为参考平面,则执行本申请描述的方法的设备可以响应于预设平面为参考平面,停止执行后续的步骤。

因此,通过检测世界坐标系的预设平面是否为参考平面,可以确定是否需要对世界坐标系进行校正。

在一个实施例中,在执行将目标空间点的位置调整至参考平面上步骤之前,还可以执行获取第一图像帧在世界坐标系中的第一位姿的步骤,以获得第一位姿。

在一些实施场景中,可利用第一图像帧的图像信息确定第一图像帧在构建的世界坐标系中的第一位姿,具体,可利用图像配准方式来或者图像跟踪方式来确定该第一位姿。

例如,目标平面为定位辅助图像所在的平面,拍摄装置对定位辅助图像进行拍摄得到第一图像帧和第二图像帧。定位辅助图像可以与第一图像帧进行图像配准,以得到定位辅助图像与第一图像帧之间的变换关系,进而利用该变换关系得到第一位姿,即,第一位姿是基于定位辅助图像确定的。可以理解的是,由于定位辅助图像是位于目标平面上,该变换关系可以认为目标平面与第一图像帧(即与拍摄第一图像帧时的拍摄装置或待定位设备)之间的变换关系,故可根据该变换关系,得到该第一位姿。其中,该定位辅助图像可以是任意的二维图案。因此,通过利用定位辅助图像与第一图像帧进行配准,可获得第一图像帧的第一位姿。

又例如,可获得第一图像帧之前的图像帧在世界坐标系中的位姿(可采用如上述图像配准方式获得)之后,利用该之前的图像帧与第一图像帧之间的图像信息来确定该第一位姿。

需要说明的是,上述图像配准或者图像跟踪可以采用现有通用的配准或跟踪方法来实现,此处不再详细描述。

在一些实施例中,还可以执行以下步骤S21或步骤S22,以获取第一位姿。

步骤S21:基于第一图像帧与定位辅助图像之间的第一匹配点对,确定第一图像帧与定位辅助图像之间的第一变换参数,利用第一变换参数得到第一位姿。

在本公开实施例中,通过对第一图像帧和定位辅助图像分别进行特征提取,可以得到与第一图像帧对应的第一特征点,以及与定位辅助图像对应的第三特征点。在本申请中,对图像帧提取的特征点,可以包括对基于该图像帧建立的图像金字塔中的一系列的图像帧进行特征提取得到的特征点。特征点的数量不做具体限制。特征提取算法例如是FAST(features from accelerated segment test)算法,SIFT(Scale-invariant featuretransform)算法,ORB(Oriented FAST and Rotated BRIEF)算法等等。在一个具体实施场景中,特征提取算法为ORB(Oriented FAST and Rotated BRIEF)算法。另外,在得到特征点以后,还会得到与每个特征点对应的特征表示,特征表示例如是特征向量。因此,每一个特征点,均有一个与其对应的特征表示。在本实施例中,基于图像帧进行特征提取的特征点,可以认为是与定位辅助图像处于同一个平面。

在一个实施场景中,可以通过计算每一个第一特征点与每一个第三特征点的匹配程度,以得到一系列的第一匹配点对,然后可以选择匹配程度高的匹配点对作为第一匹配点对。在第一匹配点对中,第一特征点作为第一匹配点,第三特征点作为第二匹配点。计算第一特征点和第三特征点的匹配程度,可以是计算两个特征点的特征表示之间的距离,距离越近视为越匹配。然后,可以利用基于得到的一系列第一匹配点对,利用图像配准算法,确定第一图像帧与定位辅助图像之间的第一变换参数,并利用第一变换参数得到第一位姿。图像配准算法例如是基于灰度和模板的算法,或者是基于特征的匹配方法。例如,关于基于特征的匹配方法,可以获得一定数量的关于第一图像帧和定位辅助图像的第一匹配点对,然后利用随机一致性采样算法(RANSAC)来计算待配准图像与目标图像的第一变换参数(例如是单应性矩阵),以此实现图像的配准,进而根据第一变换参数得到第一位姿。例如,可以通过利用pnp(Perspective-n-Point)算法,基于第一变换参数得到第一位姿。

在另一个实施场景,在得到至少一组第一匹配点对以后,可以计算每一组第一匹配点对的方向信息。第一匹配点对的方向信息可以根据第一匹配点对中的第一匹配点和第二匹配点的方向来得到。

在一个具体实施场景中,第一匹配点对的方向信息可以是第一匹配点和第二匹配点的方向的差值。例如,当特征点是通过ORB算法提取得到的,则第一匹配点的方向是角点方向角,第二匹配点的方向也是角点方向角,则第一匹配点对的方向信息可以为第一匹配点的角点方向角与第二匹配点的角点方向角的差值。以此,可以通过计算一组第一匹配点对的方向信息,可以求得第一图像帧相对于定位辅助图像的旋转角度。在得到一组第一匹配点对的方向信息以后,后续就可以利用该组第一匹配点对的方向信息代表的第一图像帧相对于定位辅助图像的旋转角度,来进行图像配准,最终得到第一图像帧与定位辅助图像之间的第一变换参数。

在一个具体实施场景中,可以在第一图像帧中提取以第一匹配点为中心的第一图像区域,并在定位辅助图像中提取以第二匹配点为中心的第二图像区域。然后,确定第一图像区域的第一偏转角度和第二图像区域的第二偏转角度。最后,基于第一偏转角度和第二偏转角度,得到第一变换参数,具体可以是基于第一匹配点对的方向信息,以及第一匹配点对中的第一匹配点与第二匹配点的像素坐标信息,来得到第一变换参数。

在一个具体实施场景中,第一偏转角度为第一图像区域的形心与第一图像区域的中心的连线与预设方向(例如是世界坐标系的X轴)之间的有向夹角。第二偏转角度为第二图像区域的形心与第二图像区域的中心的连线与预设方向之间的有向夹角。

在另一个具体实施场景中,第一偏转角度θ可以直接通过下式得到:

θ=arctan(∑yI(x,y),∑xI(x,y)) (1)

上述公式(1)中,(x,y)表示第一图像区域中某一像素点相对第一图像区域中心的偏移量,I(x,y)表示该像素点的像素值,∑表示求和,其求和范围为第一图像区域中的像素点。同理,第二偏转角度也可以按照相同的方法计算得到。

在一个具体实施场景中,可以利用第一匹配点对的方向信息,以及第一匹配点对中的第一匹配点与第二匹配点的坐标信息,例如是像素坐标信息,来到第一图像帧与定位辅助图像之间的第一变换参数。以此实现了利用一组第一匹配点对计算第一变换参数。

在一个具体实施方式中,可以通过以下步骤a和步骤b得到第一图像帧与定位辅助图像之间的变换参数。

步骤a:获取第一偏转角度与第二偏转角度之间的角度差。

角度差例如是第一偏转角度与第二偏转角度的差值。

在一个实施场景中,计算角度差的公式(2)如下:

其中,θ为角度差,为第一偏转角度,T表示定位辅助图像,为第二偏转角度,F表示第一图像帧。

步骤b:基于角度差和第一匹配点对所对应的尺度,得到第一候选变换参数。

第一候选变换参数例如是第一图像帧与定位辅助图像之间对应的单应性矩阵。单应性矩阵的计算公式(3)如下:

H=HlHsHRHr (3)

其中,H为定位辅助图像与第一图像帧之间对应的单应性矩阵,即第一候选变换参数;Hr表示第一图像帧相对于定位辅助图像的平移量;Hs代表的第一匹配点对所对应的尺度,尺度即为在对定位辅助图像进行缩放时的比例信息;HR代表的是第一图像帧相对于定位辅助图像的旋转量,Hl代表平移之后复位的平移量。

为了利用上述的求得角度差,可以对上述的公式(3)进行变换,得到公式(4)。

其中,为第一匹配点在定位辅助图像上的像素坐标;为第二匹配点在第一图像帧上的像素坐标;s为第一匹配点对所对应的尺度,即点对应的尺度;θ为角度差。

步骤S22:基于第一图像帧与第三图像帧之间的第二匹配点对,确定第一图像帧和第三图像帧之间的第二变换参数,利用第二变换参数和第三图像帧与定位辅助图像之间的第三变换参数,得到第一位姿。

在本公开实施例中,第三图像帧为拍摄装置在第一图像帧之前拍摄得到的。第三图像帧可以是对目标平面拍摄得到的。

获取第一图像帧与第三图像帧之间的第二匹配点对,以及获取第二变换参数的方法,可以参照上述获得第一匹配点对和第一变换参数的方法,此处不再赘述。同样的,获取第三图像帧与定位辅助图像之间的第三变换参数,也可以参照上述获取第一变换参数的方法,此处不再赘述。

在得到第三变换参数和第二变换参数以后,可以基于这两个变换参数,得到第一变换参数,并基于第一变换参数,得到第一位姿。

在一个实施场景中,可以通过以下公式(5)得到第一变换参数。

H1=H2·H3 (5)

其中,H1为第一变换参数,H2为第二变换参数,H3为第三变换参数。

因此,通过获得第一图像帧与定位辅助图像之间的第一变换参数,或者通过获得第二变换参数和第三变换参数,能够得到第一位姿。

请参阅图3,图3是本申请视觉定位方法第二实施例的流程示意图。本公开实施例是对上述提及的“基于第一图像帧在世界坐标系中的第一位姿,检测世界坐标系的预设平面是否为参考平面”进一步扩展,具体地,可以包括以下步骤S31至步骤S33。

步骤S31:检测第一位姿中的姿态与参考姿态之间的差异是否在预设范围内。

在本公开实施例中,参考姿态是拍摄装置相对于参考平面的姿态,在一个实施场景中,参考姿态可以理解为终端相对于参考平面的旋转角度。第一位姿中的姿态是相对于预设平面的姿态。

参考姿态可以是基于测量装置得到的。例如,可以通过设备的传感装置在参考时刻检测得到的参考姿态,其中,参考时刻与第一图像帧的拍摄时刻之间的差值不超过预设时间差。预设时间可以根据进行设置,此处不做限制。通过利用传感装置获取参考姿态,可以快速获取参考姿态,加快本申请视觉定位方法的运行速度。

若第一位姿的姿态与参考姿态的差异在预设范围内,则可以认为世界坐标系的预设平面,与参考平面是重合的。若第一位姿的姿态与参考姿态的差异不在预设范围内,则可以认为世界坐标系的预设平面,不与参考平面重合。

在一个实施场景中,预设范围为0,即只有第一位姿的姿态与参考姿态的相同,才认为世界坐标系的预设平面与参考平面是重合的。在一个实施场景中,预设范围可以为0°至5°之间。具体可以根据需要进行调整,此处不做限制。

步骤S32:响应于差异不在预设范围内,确定预设平面不为参考平面。

如果第一位姿中的姿态与参考姿态之间的差异不在预设范围内,此时可以认为世界坐标系的预设平面不与参考平面是重合的。此时,执行本申请描述的方法的设备可以响应于差异在预设范围内,进而确定预设平面不为参考平面。

步骤S33:响应于差异在预设范围内,确定预设平面为参考平面。

如果第一位姿中的姿态与参考姿态之间的差异在预设范围内,可以认为世界坐标系的预设平面与参考平面是重合的。此时,执行本申请描述的方法的设备可以响应于差异不在预设范围内,进而确定预设平面为参考平面。

因此,通过判断参考姿态与第一位姿的姿态的差异,可以确定预设平面是否为参考平面,以此确定当前世界坐标系是否需要校正。

请参阅图4,图4是本申请视觉定位方法第三实施例的流程示意图。本公开实施例是对上述提及的“检目标空间点的位置调整至参考平面上”进一步扩展,具体地,可以包括以下步骤S41和步骤S42。

步骤S41:将第一位姿中的姿态更新为参考姿态,得到更新第一位姿。

在本公开实施例中,参考姿态是设备相对于参考平面的姿态,第一位姿中的姿态是设备相对于预设平面的姿态。

在确定预设平面不为参考平面后,需要对预设平面进行校正。此时,可以利用参考姿态替换第一位姿中的姿态,以此使得第一位姿的姿态是基于参考平面的姿态,从而得到更新第一位姿。利用参考姿态替换第一位姿中的姿态,可以理解为将预设平面进行旋转,使得预设平面与参考平面重合。因为对是对世界坐标系的预设平面进行了旋转,也就意味着对世界坐标系进行了旋转,因此也可以认为对世界坐标系进行了校正。

步骤S42:基于更新第一位姿、第一图像帧的第一特征点确定目标空间点在参考平面上的位置,以作为调整后的目标空间点的位置。

在得到更新第一位姿以后,就可以基于该更新第一位姿,第一图像帧的第一特征点,确定目标空间点在参考平面上的位置,作为调整后的目标空间点的位置。因为第一图像帧是对目标平面进行拍摄得到的,因此,第一特征点可以认为是目标平面上的目标空间点在第一图像帧的投影点。同时,在步骤S121中,已经得到更新第一位姿,此时也就意味着目标空间点在参考平面上。由此,可以基于更新第一位姿、第一图像帧的第一特征点确定目标空间点在参考平面上的位置,得到调整后的目标空间点。

在一个实施场景中,可以基于现有的通用的计算机视觉知识,基于更新第一位姿和第一特征点的图像信息,得到调整后的目标空间点,此处不再详细描述。

因此,通过参考姿态能够实现将目标空间点的位置调整至参考平面上,以此可以利用该调整后的目标空间点以及后续图像帧,来实现对终端的准确定位。

在一个公开实施例中,在一个实施例中,上述的步骤中提及的:基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在调整后的世界坐标系中的第二位姿,具体包括:基于调整后的目标空间点在第二图像帧上投影的第二特征点与第一特征点之间的像素值差异,确定第二位姿。

在本实施例中,调整后的目标空间点是基于第一特征点得到的,具体可以参阅关于调整后的目标空间点的具体描述,此处不再赘述。

因为第二图像帧也是对目标平面进行拍摄得到的,因此调整后的目标空间点也会在第二图像帧上有投影点,由此,可以得到调整后的目标空间点在第二图像帧上投影的第二特征点。

确定第二特征点的方法可以是通用的特征点追踪方法,例如是光流法。或者是确定第一图像帧与第二图像帧之间的相对位姿变化,并基于调整后的目标空间点,以此来确定第二特征点。

第二特征点与第一特征点之间的像素值差异,具体可以是光度误差,也即,可以求光度误差,来优化并尽可能减小光度误差,以此来确定第二图像帧的第二位姿。

因此,通过计算第二特征点与第一特征点之间的像素值差异,可以计算得到第二图像帧的第二位姿。

在一个具体实施场景中,可以是首先得到第一图像帧与第二图像帧之间的相对位姿变化并计算第一图像帧与第二图像帧之间的光度误差,并通过优化并尽可能减小光度误差,以此得到第二图像帧的第二位姿。

在一个具体实施场景中,可以是首先得到第二图像帧在世界坐标系中的初始第二位姿,然后利用该初始第二位姿,第一图像帧的更新第一位姿,得到第一图像帧与第二图像帧之间的光度误差,然后优化并尽可能减小光度误差,最终得到第二图像帧在世界坐标系中的第二位姿。

在一个实施场景中,上述的基于调整后的目标空间点在第二图像帧上投影的第二特征点与第一特征点之间的像素值差异,确定第二位姿,包括:获取至少一个候选位姿,并基于每个候选位姿和调整后的目标空间点确定与候选位姿对应的第二特征点,基于第二特征点与第一特征点之间的像素值差异,选择一候选位姿作为第二位姿。

在一个实施场景中,候选位姿是基于更新第一位姿确定的,更新第一位姿是利用参考姿态对第一图像帧在调整前的世界坐标系中的第一位姿进行更新得到,参考姿态是拍摄装置相对于参考平面的姿态。在一个具体实施方式中,可以通过迭代优化的方法,基于更新第一位姿,得到一系列的候选位姿。

在一个实施场景中,像素值差异是光度误差,可以通过以下公式(6)来获得第二图像帧的第二位姿。

其中,C为像素值差异;I(Xp)为第一特征点对应的像素值;为在候选位姿下目标空间点投影在第二图像帧上的第二特征点,为第二特征点对应的像素值;K为终端拍摄装置的内存矩阵;为候选位姿,为候选位姿中的姿态(也可以称为旋转量或朝向);为平移量;∑p表示每个目标空间点Xp对应的第一特征点和第二特征点之间的像素值差异的和;表示利用迭代优化的方法,从多个候选位姿中选择出像素值差异C最小时对应的候选位姿,作为第二图像帧的第二位姿。

在一个具体实施场景中,在得到像素值差异以后,还可以选择像素值差异满足预设要求的第二特征点所对应的候选位姿,作为第二图像帧的第二位姿。预设要求可以根据需要设置,此处不做限定。若是通过上述的公式(6)计算的像素值差异,则是选择满足预设要求的C对应的候选第二位姿作为第二图像帧的第二位姿。由此,通过筛选满足预设要求的候选位姿,可以获得相对准确的第二位姿。

因此,通过获取至少一个候选位姿,并确定候选位姿对应的像素值差异,通过比较各候选位姿对应的像素差异,从候选位姿中选出第二图像帧的第二位姿,由此可以得到更加准确的第二图像帧的第二位姿。

请参阅图5,图5是本申请视觉定位装置一实施例的框架示意图。视觉定位装置50包括调整模块51以及位姿确定模块52。调整模块51用于将目标空间点的位置调整至参考平面上,以将世界坐标系的预设平面调整为参考平面,其中,目标空间点对应于第一图像帧中的第一特征点,目标空间点用于定义世界坐标系的预设平面;位姿确定模块52用于基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在调整后的世界坐标系中的第二位姿,其中,第一图像帧和第二图像帧是由设备的拍摄装置先后对目标平面拍摄得到的。

其中,视觉定位装置50还包括位姿获取模块,在调整模块51将目标空间点的位置调整至参考平面上之前,位姿获取模块用于获取第一图像帧在世界坐标系中的第一位姿;上述的调整模块51用于将目标空间点的位置调整至参考平面上,包括:将第一位姿中的姿态更新为参考姿态,得到更新第一位姿,其中,参考姿态是拍摄装置相对于参考平面的姿态,第一位姿中的姿态是设备相对于预设平面的姿态;基于更新第一位姿、第一图像帧的第一特征点确定目标空间点在参考平面上的位置,以作为调整后的目标空间点的位置。

其中,视觉定位装置50还包括检测模块,在调整模块51将目标空间点的位置调整至参考平面上之前,检测模块用于基于第一图像帧在世界坐标系中的第一位姿,检测世界坐标系的预设平面是否为参考平面;调整模块51可以响应于预设平面不为参考平面,执行将目标空间点的位置调整至参考平面上。

其中,上述的检测模块51基于第一图像帧在世界坐标系中的第一位姿,检测到世界坐标系的预设平面是否为参考平面,包括:检测到第一位姿中的姿态与参考姿态之间的差异是否在预设范围内,则确定预设平面不为参考平面,其中,参考姿态是相对于参考平面的姿态,第一位姿中的姿态是相对于预设平面的姿态;检测模块51可以响应于差异不在预设范围内,确定预设平面不为参考平面。

其中,上述的视觉定位装置50还包括参考姿态获取模块,用于获得参考姿态,具体的,参考姿态获取模块用于获取设备的传感装置在参考时刻检测得到的参考姿态,其中,参考时刻与第一图像帧的拍摄时刻之间的差值不超过预设时间差。

其中,上述的目标平面为定位辅助图像所在的平面,第一位姿是基于定位辅助图像确定的。

其中,上述的视觉定位装置50还包括第一位姿获取模块,用于获得第一位姿,具体的第一位姿获取模块用于基于第一图像帧与定位辅助图像之间的第一匹配点对,确定第一图像帧与定位辅助图像之间的第一变换参数,利用第一变换参数得到第一位姿;或者,基于第一图像帧与第三图像帧之间的第二匹配点对,确定第一图像帧和第三图像帧之间的第二变换参数,利用第二变换参数和第三图像帧与定位辅助图像之间的第三变换参数,得到第一位姿,其中,第三图像帧为拍摄装置在第一图像帧之前拍摄得到的。

其中,上述的调整后的目标空间点是基于第一图像帧的第一特征点得到的。上述的位姿确定模块52用于基于调整后的目标空间点、以及第一图像帧和第二图像帧中的图像信息,得到第二图像帧在调整后的世界坐标系中的第二位姿,包括:基于调整后的目标空间点在第二图像帧上投影的第二特征点与第一特征点之间的像素值差异,确定第二位姿。

其中,上述的位姿确定模块52用于基于调整后的目标空间点在第二图像帧上投影的第二特征点与第一特征点之间的像素值差异,确定第二位姿,包括:获取至少一个候选位姿,并基于每个候选位姿和调整后的目标空间点确定与候选位姿对应的第二特征点,基于第二特征点与第一特征点之间的像素值差异,选择一候选位姿作为第二位姿。

其中,上述的至少一个候选位姿是基于更新第一位姿确定的,更新第一位姿是利用参考姿态对第一图像帧在调整前的世界坐标系中的第一位姿进行更新得到,参考姿态是拍摄装置相对于参考平面的姿态;上述的位姿确定模块52用于基于第二特征点与第一特征点之间的像素值差异,选择候选位姿作为第二位姿,包括:选择像素值差异满足预设要求的第二特征点所对应的候选位姿,作为第二位姿。

其中,上述世界坐标系的预设平面为预设水平面,参考平面为参考水平面。

请参阅图6,图6是本申请电子设备一实施例的框架示意图。电子设备60包括相互耦接的存储器61和处理器62,处理器62用于执行存储器61中存储的程序指令,以实现上述任一图像配准方法实施例的步骤。在一个具体的实施场景中,电子设备60可以包括但不限于:微型计算机、服务器,此外,电子设备60还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。

具体而言,处理器62用于控制其自身以及存储器61以实现上述任一图像配准方法实施例的步骤。处理器62还可以称为CPU(Central Processing Unit,中央处理单元)。处理器62可能是一种集成电路芯片,具有信号的处理能力。处理器62还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器62可以由集成电路芯片共同实现。

请参阅图7,图7为本申请计算机可读存储介质一实施例的框架示意图。计算机可读存储介质70存储有能够被处理器运行的程序指令701,程序指令701用于实现上述任一图像配准方法实施例的步骤。

上述方案,利用目标空间点定义世界坐标系的预设平面,由此若检测到世界坐标系的预设平面不为参考平面,通过将目标空间点的位置调整至参考平面上,以使得基于调整后的目标空间点所定义的世界坐标系的预设平面,是与参考平面重合的,由此调整后的世界坐标系符合实际空间情况,以此校正了世界坐标系,进而得到准确的第二位姿,实现对设备的准确定位。

在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。

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

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

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

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

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:VR交互方法、系统、移动终端及计算机可读存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类