CN115827812A - 重定位方法、装置、设备及其存储介质 - Google Patents
重定位方法、装置、设备及其存储介质 Download PDFInfo
- Publication number
- CN115827812A CN115827812A CN202211652829.0A CN202211652829A CN115827812A CN 115827812 A CN115827812 A CN 115827812A CN 202211652829 A CN202211652829 A CN 202211652829A CN 115827812 A CN115827812 A CN 115827812A
- Authority
- CN
- China
- Prior art keywords
- point
- current
- current frame
- map
- bag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本申请公开了一种重定位方法、装置、设备及其存储介质,属于计算机视觉技术领域。所述重定位方法包括:获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合;基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。本申请解决了现有技术重定位成功率低的技术问题。
Description
技术领域
本申请涉及计算机视觉技术领域,尤其涉及一种重定位方法、装置、设备及其存储介质。
背景技术
近年来,随着计算机视觉技术的发展,SLAM(Simultaneous Localization andMapping)逐渐成为计算机视觉领域的热门研究方向。SLAM即实时定位与地图构建,能使搭载特定传感器的主体在没有环境先验信息的情况下在运动过程中同时实现环境的模型建立和对自己运动的估计。这使得SLAM的应用领域有很多,主要的有机器人定位导航领域、无人驾驶领域、无人机领域、增强现实和虚拟现实等。
现有的SLMA算法进行重定位时,容易将原本不太相似的历史帧与当前帧匹配成功的情况,从而导致重定位后的位姿与真实的位姿有较大的误差,甚至是完全错误,成功率低。
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
发明内容
本申请的主要目的在于提供一种重定位方法、装置、设备及其存储介质,旨在解决常规重定位技术误差大、成功率低的技术问题。
为实现上述目的,本申请提供一种重定位方法,所述重定位方法包括:
获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;
在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点;
基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;
根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
可选地,所述根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧的步骤包括:
分别获取所述关键帧数据库中各关键帧的第二词袋向量;
根据各所述第二词袋向量相较于所述第一词袋向量的元素相似度,确定目标第二词袋向量,其中,所述目标第二词袋向量为相较于所述第一词袋向量的元素相似度大于预设元素相似度阈值的第二词袋向量;
将所述目标第二词袋向量所对应的目标关键帧作为第一关键帧,并根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧。
可选地,所述根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧的步骤包括:
分别获取各所述第一关键帧相对于所述当前帧的共视特征点数量;
根据各所述共视特征点数量,确定各所述第一关键帧相较于所述当前帧的共视相似度;
根据所述共视相似度,确定与所述当前帧存在共视关系的第一关键帧以作为候选关键帧。
可选地,所述基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对的步骤包括:
提取所述当前帧的当前特征点,并分别确定所述当前特征点的当前描述子和所述局部地图点集合中各地图点的地图描述子;
根据各所述地图描述子相较于所述当前描述子的汉明距离,确定目标地图描述子,其中,所述目标地图描述子为相较于所述当前描述子的汉明距离小于预设汉明距离阈值,且相较于所述当前描述子的汉明距离最小的地图描述子;
将所述目标地图描述子对应的目标地图点和所述当前描述子对应的当前特征点进行组合,以作为所述配对点对。
可选地,所述根据所述配对点对,确定所述当前帧的当前位姿的步骤包括:
根据所述配对点对和预设的位姿算法,确定所述当前帧的第一位姿;
根据所述第一位姿,将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点,并统计所述内点的数量;
判断所述内点的数量是否大于预设的内点数阈值;
若是,则将所述第一位姿作为所述当前位姿。
可选地,在所述判断所述内点的数量是否大于预设的内点数阈值的步骤之后,还包括:
若否,则根据预设的优化函数对所述第一位姿进行优化,得到第二位姿,并执行所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤。
可选地,所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤包括:
将目标配对点对中的目标地图点重投影至所述当前帧中,得到目标重投影地图点,其中,所述目标配对点对为各所述配对点对中的任一配对点对;
判断所述目标重投影地图点和所述目标配对点对中的目标当前特征点之间的像素差是否小于预设的像素阈值;
若是,则将所述目标重投影地图点作为所述内点。
本申请还提供一种重定位装置,所述重定位装置包括:
获取模块,用于获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;
生成模块,用于在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点;
筛选模块,用于基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;
确定模块,用于根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
本申请还提供一种重定位设备,所述重定位设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的重定位程序,所述重定位程序配置为实现上述的重定位方法的步骤。
本申请还提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有重定位程序,所述重定位程序被处理器执行以实现上述的重定位方法的步骤。
本申请公开了一种重定位方法、装置、设备及其存储介质,通过获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧,进而在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,进而基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对,进而根据所述配对点对,确定所述当前帧的当前位姿,从而实现对当前帧拍摄设备的重定位;通过局部地图点集合的确定,缩小了重定位的范围,减少了定位出现较大误差距离的情况的发生,进一步提升重定位的精确度和鲁棒性,进而基于局部地图点集合,确定与当前帧对应的地图点并生成配对点对,进而通过配对点对实现对当前帧的当前位姿的精准确定,从而克服了常规重定位技术失败率高、精确度差的缺陷,使视觉设备在发生异常情况而导致定位丢失时,能够快速、准确的实现重定位,进一步提升重定位的效果和成功率。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的重定位设备的结构示意图;
图2为本申请实施例方案涉及的重定位方法的流程示意图;
图3为图2中步骤S10一实施例的细化流程图;
图4为图3中步骤S40一实施例的细化流程图;
图5为本申请实施例涉及的重定位方法的场景示意图;
图6为本申请实施例方案涉及的重定位装置的框架结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
另外,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,全文中的“和/或”包括三个方案,以A和/或B为例,包括A技术方案、B技术方案,以及A和B同时满足的技术方案;另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的重定位设备结构示意图。
如图1所示,该重定位设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对重定位设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及重定位程序。
在图1所示的重定位设备中,网络接口1004主要用于与其他设备进行数据通信;用户接口1003主要用于与用户进行数据交互;本申请重定位设备中的处理器1001、存储器1005可以设置在重定位设备中,所述重定位设备通过处理器1001调用存储器1005中存储的重定位程序,并执行以下操作:
获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;
在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点;
基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;
根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
进一步地,所述根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧的步骤包括:
根据各所述第二词袋向量相较于所述第一词袋向量的元素相似度,确定目标第二词袋向量,其中,所述目标第二词袋向量为相较于所述第一词袋向量的元素相似度大于预设元素相似度阈值的第二词袋向量;
将所述目标第二词袋向量所对应的目标关键帧作为第一关键帧,并根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧。
进一步地,所述根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧的步骤包括:
分别获取各所述第一关键帧相对于所述当前帧的共视特征点数量;
根据各所述共视特征点数量,确定各所述第一关键帧相较于所述当前帧的共视相似度;
根据所述共视相似度,确定与所述当前帧存在共视关系的第一关键帧以作为候选关键帧。
进一步地,所述基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对的步骤包括:
提取所述当前帧的当前特征点,并分别确定所述当前特征点的当前描述子和所述局部地图点集合中各地图点的地图描述子;
根据各所述地图描述子相较于所述当前描述子的汉明距离,确定目标地图描述子,其中,所述目标地图描述子为相较于所述当前描述子的汉明距离小于预设汉明距离阈值,且相较于所述当前描述子的汉明距离最小的地图描述子;
将所述目标地图描述子对应的目标地图点和所述当前描述子对应的当前特征点进行组合,以作为所述配对点对。
进一步地,所述根据所述配对点对,确定所述当前帧的当前位姿的步骤包括:
根据所述配对点对和预设的位姿算法,确定所述当前帧的第一位姿;
根据所述第一位姿,将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点,并统计所述内点的数量;
判断所述内点的数量是否大于预设的内点数阈值;
若是,则将所述第一位姿作为所述当前位姿。
进一步地,处理器1001可以调用存储器1005中存储的重定位程序,还执行以下操作:
在所述判断所述内点的数量是否大于预设的内点数阈值的步骤之后,还包括:
若否,则根据预设的优化函数对所述第一位姿进行优化,得到第二位姿,并执行所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤。
进一步地,所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤包括:
将目标配对点对中的目标地图点重投影至所述当前帧中,得到目标重投影地图点,其中,所述目标配对点对为各所述配对点对中的任一配对点对;
判断所述目标重投影地图点和所述目标配对点对中的目标当前特征点之间的像素差是否小于预设的像素阈值;
若是,则将所述目标重投影地图点作为所述内点。
基于上述的结构,提出重定位方法的各个实施例。
参照图2,图2为本申请重定位方法第一实施例的流程示意图。
在本实施例中,重定位方法的执行主体可以是本地设备或网络设备,本地设备可以为安装于视觉设备中的重定位设备;视觉设备可以为应用SLAM系统进行实时定位与地图构建的设备,例如VR(Virtual Reality)设备、AR(Augmented Reality)设备或机器人等;网络设备可以是传统服务器,也可以是云服务器等,在本实施例中并不做限制,以下为便于描述,以安装于视觉设备中的重定位设备为执行主体进行各实施例的阐述。在本实施例中,重定位方法包括:
步骤S10,获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧。
在正常情况下,视觉设备的定位算法稳定运行,能够持续计算出准确的位姿,但某些异常情况发生,例如设备重启、摄像头被遮挡或跟踪丢失等,则会使视觉设备无法得到定位结果,从而导致定位丢失,则会触发重定位设备来恢复视觉设备正确的空间位置。重定位设备被触发后会获取当前帧,并根据预设的词袋模型(Bag of words)对当前帧进行编码或特征点提取,得到当前帧对应的第一词袋向量(Vec 1,Vector),进而基于第一词袋向量在预设的关键帧数据库中筛选出与当前帧相匹配的至少一个关键帧,并作为候选关键帧。
当前帧为视觉设备的摄像头在设备重启或障碍物移开等异常情况解除后所拍摄的第一帧图像;在本申请实施例中所提及的帧即为视觉设备的摄像头所拍摄的各图像,包括:当前帧、关键帧、候选关键帧、第一关键帧、目标关键帧等。
词袋模型为一种将图像中的各特征提取并作为元素或单词,从而生成描述图像的词袋向量的模型;词袋向量为描述各帧的特征的方法,词袋向量包括至少一个元素或单词,各元素对应于特定帧中各特征点的类型;示例性的,特定帧图像中的特征点包括:树木1、树木2、椅子1和椅子2,则所述特定帧的词袋向量中的元素包括:树木和椅子;在本申请实施例中所提及的词袋向量包括:第一词袋向量、第二词袋向量等,其中,“第一”、“第二”的描述仅用于描述和区分的目的。
关键帧数据库为存储有视觉设备的摄像头拍摄的历史的关键帧的数据库;关键帧为视觉设备的摄像头拍摄的特定帧图像,视觉设备可以根据预设的拍摄时间定时获取图像作为关键帧,并将关键帧的位姿、描述子等存储至关键帧数据库中。
步骤S20,在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点。
候选关键中包括该帧的基本信息,包括位姿、特征点(包含描述子)、地图点等,因此,重定位设备获取各候选关键帧在预设的世界坐标系中相对应的地图点,进而将获得的与候选关键帧相对应的地图点进行组合,生成局部地图点集合,其中,所述局部地图点集合包括至少一个与候选关键帧相对应的地图点。
特征点是一种二维点,从图像中提取的具有代表性的部分,例如图像中的角点、边缘、区块或是图像中具体的某个物体,例如树木、桌子、椅子等,在本实施例中,特征点包括:候选特征点、共视特征点、当前特征点等,其中,候选特征点是指候选关键帧中的特征点。
世界坐标系是视觉设备或重定位设备中存储的绝对坐标系或参考坐标系,在没有建立设备特定的坐标系之前图像上所有点的坐标都是以该坐标系的原点来确定各自的位置;位姿是描述某个对象在世界坐标系中的位置和姿态(朝向)的坐标;地图点是世界坐标系中的某个三维点或空间点,不同帧图像中的特征点可能对应世界坐标系中的同一个三维点即地图点。
步骤S30,基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对。
重定位设备根据预设的特征点算法,提取当前帧中的当前特征点;当前特征点为当前帧中所提取的特征点,由于当前帧为视觉设备在定位丢失时获取的图像,因此当前帧中的当前特征点为二维点,且当前特征点对应的坐标系为图像坐标系,即以各图像左上角为坐标原点建立的二维坐标系;进而基于局部地图点集合,分别筛选与各当前特征点满足预设条件的地图点,以作为当前帧适配的地图点,进而将各当前特征点和适配的地图点进行组合,得到配对点对,即二维点-三维点点对(2d-3d)。预设条件是局部地图点集合中各地图点与当前特征点作为配对点对应满足的条件;若地图点相较于当前特征点满足预设条件,则地图点为当前特征点适配的地图点,相互组合即为配对点对;若地图点相较于当前特征点不满足预设条件,则地图点与当前特征点不适配。
特征点算法是一种提取图像中特征点的方法,包括但不限于ORB(Oriented Fastand Rotated Brief)算法、SIFT(Scale-invariant feature transform)算法或SURF(Speeded Up Robust Features)算法等。
步骤S40,根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
重定位设备根据获取的各配对点对和预设的位姿算法,确定当前帧在世界坐标系中的当前位姿,当前位姿即为拍摄当前帧的视觉设备在世界坐标系对应的位姿,进而判断所述位姿是否满足预设的位姿条件,若满足则确定当前位姿正确,进而根据当前位姿进行重定位。
位姿算法是根据2d-3d配对点对确定图像在世界坐标系中的位姿的方法,包括RANSAC PnP(Perspective-n-Point)算法等。位姿条件是判定获得的位姿的准确度的条件;若位姿不满足位姿条件,表明位姿的误差较大,则判定位姿错误,进而为了成功进行重定位,需要通过预设的优化函数对位姿进行迭代优化;若位姿满足位姿条件,表明位姿的准确度高,则判定位姿正确,进而根据位姿进行重定位。
在本实施例中,重定位设备通过获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧,进而在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,进而基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对,进而根据所述配对点对,确定所述当前帧的当前位姿,从而实现对当前帧拍摄设备的重定位;通过局部地图点集合的确定,缩小了重定位的范围,减少了定位出现较大误差距离的情况的发生,进一步提升重定位的精确度和鲁棒性,进而基于局部地图点集合,确定与当前帧对应的地图点并生成配对点对,进而通过配对点对实现对当前帧的当前位姿的精准确定,从而克服了常规重定位技术失败率高、精确度差的缺陷,使视觉设备在发生异常情况而导致定位丢失时,能够快速、准确的实现重定位,进一步提升重定位效果。
进一步地,基于上述第一实施例,提出本申请重定位方法第二实施例,参照图3,在本实施例中,步骤S10包括:
步骤S11,分别获取所述关键帧数据库中各关键帧的第二词袋向量。
重定位设备根据预设的词袋模型对关键帧数据库中的各关键帧进行编码或特征点提取,进而分别得到各关键帧对应的第二词袋向量(Vec 2,Vector)。
步骤S12,根据各所述第二词袋向量相较于所述第一词袋向量的元素相似度,确定目标第二词袋向量,其中,所述目标第二词袋向量为相较于所述第一词袋向量的元素相似度大于预设元素相似度阈值的第二词袋向量。
词袋向量中包括至少一个元素,重定位设备根据第一词袋向量和各第二词袋向量之间含有的相同元素的数量,确定各第二词袋向量相较于第一词袋向量的元素相似度,其中,相同元素的数量和元素相似度之间成正比;进而通过元素相似度在各第二词袋向量中确定目标第二词袋向量,其中,目标第二词袋向量为相较于所述第一词袋向量的元素相似度大于预设元素相似度阈值的第二词袋向量。因此,重定位设备可以通过判断第二词袋向量相较于第一词袋向量的元素相似度是否大于预设的元素相似度阈值,在各第二词袋向量中筛选出目标第二词袋向量;元素相似度阈值是判断两词袋向量之间是否相似的临界值。
在一种可实施方式中,重定位设备可以根据各第二词袋向量和第一词袋向量之间的元素相似度,对各第二词袋向量由元素相似度从大到小地进行排序,进而根据顺序逐个判断各第二词袋向量相较于第一词袋向量的元素相似度是否大于预设的元素相似度阈值。
步骤S13,将所述目标第二词袋向量所对应的目标关键帧作为第一关键帧,并根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧。
目标第二词袋向量相较于第一词袋向量的元素相似度大于元素相似度阈值,表明目标第二词袋向量和第一词袋向量之间相似,进而确定目标第二词袋向量对应的目标关键帧与当前帧之间元素相似;进而将目标第二词袋向量所对应的目标关键帧作为第一关键帧,进而确定第一关键帧和当前帧之间的共视相似度,通过共视相似度确定各第一关键帧中的候选关键帧。
第一关键帧即表示关键帧,其中,“第一”的描述仅用于描述和区分的目的。
元素是指各帧图像中的特征点的类型,目标第二词袋向量相较于第一词袋向量的元素相似度大于元素相似度阈值,表明目标第二词袋向量对应的目标关键帧和当前帧之间存在相同类型的特征点。
在一种可实施方式中,重定位设备根据各第二词袋向量和第一词袋向量之间的元素相似度,对各第二词袋向量由元素相似度从大到小地进行排序,进而根据顺序逐个判断各第二词袋向量和第一词袋向量之间的元素相似度是否大于预设的元素相似度阈值;若第二词袋向量和第一词袋向量之间的元素相似度小于或等预设的元素相似度阈值,表明第二词袋向量和第一词袋向量之间的元素差异较大,进而所述第二词袋向量对应的关键帧与当前帧之间的差别较大,且由于第二词袋向量是根据元素相似度由大到小地进行排序,所以在该第二词袋向量顺序后的剩余第二词袋向量的元素相似度也小于或等元素相似度阈值,进而获得全部第一关键帧。
在本实施例中,重定位设备通过各关键帧和当前帧之间的词袋向量,在关键帧数据库中筛选出与当前帧含有相同属性的特征点的关键帧作为第一关键帧,进而根据第一关键帧和当前帧之间的共视相似度,在第一关键帧中筛选出与当前帧存在共视关系的关键帧,作为候选关键帧;重定位设备通过各关键帧和当前帧之间的词袋向量,实现对关键帧数据库中各关键帧的初步筛选,以较低的计算复杂度,剔除掉和当前帧存在明显差异的关键帧从而筛选出第一关键帧,进而通过各第一关键帧和当前帧之间的共视相似度,筛选出与当前帧存在共视关系的候选关键帧,实现在关键帧数据库中实现对当前帧相似关键帧的精准筛选,进而减少各帧之间误匹配情况的发生,提升重定位的效果和鲁棒性。
在一可行实施方式中,所述根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧的步骤包括:
步骤S131,分别获取各所述第一关键帧相对于所述当前帧的共视特征点数量。
重定位设备分别提取当前帧的当前特征点和各第一关键帧的第一特征点,进而确定是否存在与当前特征点相同的第一特征点;若存在,则将与当前特征点相同的第一特征点作为第一关键帧的共视特征点,进而统计各第一关键帧相对于当前帧的共视特征点数量。共视特征点是描述当前帧和关键帧之间共视关系的特征点;共视关系是指两帧之间存在的相同关键点的数量达到一定值,则认为两个关键帧具有共视关系。
步骤S132,根据各所述共视特征点数量,确定各所述第一关键帧相较于所述当前帧的共视相似度。
步骤S133,根据所述共视相似度,确定与所述当前帧存在共视关系的第一关键帧以作为候选关键帧。
重定位设备根据各第一关键帧相对于当前帧的共视特征点数量,确定各第一关键帧相对于当前帧的共视相似度,其中,共视特征点数量和共视相似度之间成正比;若第一关键帧和当前帧之间的共视相似度大于预设的共视相似度阈值,和/或若第一关键帧和当前帧之间的共视特征点数量大于预设的共视特征点阈值,表明两帧之间存在较多相同的特征点,则确定目标第一关键帧和当前帧之间存在共视关系,进而将目标关键帧作为候选关键帧。
第一关键帧即为关键帧,其中,“第一”的描述仅用于描述和区分的目的。
在本实施例中,重定位设备通过获取各第一关键帧相对于当前帧的共视特征点数量,进而在各第一关键帧中筛选出与当前帧存在共视关系的候选关键帧,实现在关键帧数据库中实现对当前帧相似关键帧的精准筛选,进而减少各帧之间误匹配情况的发生,提升重定位的效果和鲁棒性。
进一步地,基于上述第一和/或第二实施例,提出本申请重定位方法第三实施例,在本实施例中,步骤S30包括:
步骤S31,提取所述当前帧的当前特征点,并分别确定所述当前特征点的当前描述子和所述局部地图点集合中各地图点的地图描述子。
重定位设备提取当前帧的各当前特征点,并分别确定各当前特征点的当前描述子,和局部地图点集合中各地图点的地图描述子。描述子是一种描述特征点属性的数据结构,可以为字符;在大小、方向或明暗不同的图像中,同一特征点的描述子之间相似。
步骤S32,根据各所述地图描述子相较于所述当前描述子的汉明距离,确定目标地图描述子,其中,所述目标地图描述子为相较于所述当前描述子的汉明距离小于预设汉明距离阈值,且相较于所述当前描述子的汉明距离最小的地图描述子。
重定位设备计算当前描述子和各地图描述子之间的汉明距离,进而将汉明距离小于预设的汉明距离阈值,且所述汉明距离最小的地图描述子作为目标地图描述子;汉明距离是用来衡量描述子或文本之间相似度的方法,其中,汉明距离和描述子相似度之间成反比,即描述子之间的汉明距离越短,描述子之间越相似,反之则描述子之间的差异越大;汉明距离阈值是判断描述子之间是否相似的临界值,可以根据大数据统计分析结果进行预设,也可以根据实际情况进行确定,本实施例对此不加以限制。
步骤S33,将所述目标地图描述子对应的目标地图点和所述当前描述子对应的当前特征点进行组合,以作为所述配对点对。
目标地图描述子相较于当前描述子的汉明距离小于预设的汉明距离阈值,表明目标地图描述子和当前描述子之间相似,进而确定目标地图描述子对应的目标地图点和当前描述子对应的当前特征点相似,进而将目标地图点和当前特征点进行组合,以作为配对点对;配对点对包括当前特征点和与之相适配(相似)的地图点,是用来表示同一特征的二维点和三维点点对。
在本实施例中,重定位设备通过获取当前帧的当前特征点的当前描述子和局部地图点集合中的地图点的地图描述子,实现对当前帧的配对点对的获取;通过当前描述子和地图描述子之间汉明距离的计算,判断两描述子对应的特征点和地图点之间的相似度,将存在相似关系的特征点和地图点作为配对点对,实现对相似的二维点和三维点点对的精准匹配,进而有效的提高了重定位的准确度,进一步提升重定位的成功率。
进一步地,基于上述第一、第二和/或第三实施例,提出本申请重定位方法第四实施例,参照图4,在本实施例中,步骤S40包括:
步骤S41,根据所述配对点对和预设的位姿算法,确定所述当前帧的第一位姿。
步骤S42,根据所述第一位姿,将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点,并统计所述内点的数量。
重定位设备根据预设的位姿算法对获取的各配对点对进行计算,求解当前帧的第一位姿,即当前帧在世界坐标系中的位置;进而基于得到的当前帧的第一位姿,将各配对点对中的地图点重投影至当前帧中,从而确定重投影后的当前帧中的内点,并统计内点数量。
第一位姿是指根据获取的配对点对所得出的当前帧在世界坐标系中的位姿,其中,“第一”的描述仅用于描述和区分的目的。预设的位姿算法是通过求解三维点到二维点点对的运动,从而得到对应图像的位姿的算法,包括RANSAC PnP算法等。
重投影是指以当前帧的位姿为参考,将地图点投影至当前帧中从而在当前帧中产生新的地图点(重投影地图点)的方法。内点是指地图点重投影至当前帧中,且在当前帧中产生的重投影地图点和对应配对点对中的当前特征点之间的误差,小于预设的误差阈值的重投影地图点,即重投影地图点和对应配对点对中的当前特征点几乎重合;若重投影地图点和对应配对点对中的当前特征点之间的误差大于或等于预设的误差阈值,则重投影地图点为外点。
在一可行实施方式中,所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤包括:
步骤S421,将目标配对点对中的目标地图点重投影至所述当前帧中,得到目标重投影地图点,其中,所述目标配对点对为各所述配对点对中的任一配对点对。
重定位设备在各配对点的中确定目标配对点对,其中,目标配对点对为各配对点对中的任一配对点对;进而基于当前帧的第一位姿,将目标配对点对中的目标地图点重投影至当前帧中,得到目标地图点在当前帧中的目标重投影地图点。
步骤S422,判断所述目标重投影地图点和所述目标配对点对中的目标当前特征点之间的像素差是否小于预设的像素阈值。
步骤S423,若是,则将所述目标重投影地图点作为所述内点。
重投影设备将获得的目标重投影地图点和目标配对点对中的目标当前点进行比较,获得目标重投影地图点和目标当前点之间的像素差,进而判断像素差和预设的像素阈值之间的关系;若像素差小于像素阈值,表明目标重投影地图点和目标当前点之间几乎重合,则将目标重投影地图点作为内点。
在一种可实施方式中,若像素差大于或等于像素阈值,表明目标重投影地图点和目标当前点之间的误差较大,该目标重投影地图点为异常点或偏离点,则将目标重投影地图点作为外点,并剔除相应的配对点对。
像素差是图像中各特征点之间的差异值,通过像素差可以判断各特征点之间的相似程度;像素阈值是两特征点相似或重合的临界值,可以根据大数据统计分析结果进行预设,也可以根据实际情况进行确定,本实施例对此不加以限制。
为辅助理解以上技术方案,以下以一个具体的重定位方法的场景示意图进行辅助说明,参照图5,图5中的图像为当前帧,实线为当前帧中的当前特征点,包括当前特征点1和当前特征点2;虚线为各当前特征点对应的配对点对中的地图点重投影至当前帧中获得的重投影地图点,包括重投影地图点1和重投影地图点2;预设的像素阈值为1,当前特征点1和重投影地图点1之间的像素差为0.5,小于像素差阈值,进而确定重投影地图点1为内点;当前特征点2和重投影地图点2之间的像素差为2.5,大于像素差阈值,进而确定重投影地图点2为外点。
在本实施例中,重定位设备通过对当前帧中重投影地图点和对应配对点对中当前特征点之间的像素差的计算,实现对当前帧中重投影后的内点的进准判定,进而剔除当前帧中的外点的配对点对,减少外点(偏离点)对当前帧位姿确定的影响,减少位姿计算的误差,进一步提升重定位的成功率和精确度。
步骤S43,判断所述内点的数量是否大于预设的内点数阈值。
重定位设备统计第一位姿下的当前帧中的内点的数量,并判断内点的数量是否大于预设的内点数阈值;若通过配对点对得到的当前帧的第一位姿准确,则基于第一位姿重投影后的当前帧中的内点的数量会较多,并大于内点数阈值,进而可以通过重投影后的当前帧中的内点的数量,判断当前帧的位姿是否准确。
内点数阈值是判断当前帧的位姿是否准确的临界值,可以根据大数据统计分析结果进行预设,也可以根据实际情况进行确定,本实施例对此不加以限制。
步骤S44,若是,则将所述第一位姿作为所述当前位姿。
若当前帧中的内点的数量大于内点数阈值,表明通过各配对点对获得的当前帧的第一位姿准确,则将第一位姿作为当前位姿,进而基于当前位姿进行重定位。
步骤S45,若否,则根据预设的优化函数对所述第一位姿进行优化,得到第二位姿,并执行所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤。
若当前帧中的内点的数量小于或等于内点数阈值,表明当前帧中的重投影地图点和对应配对点对中的当前特征点之间存在较大偏离,进而通过各配对点对所获得的当前帧的第一位姿也会存在较大误差,因此,当当前帧中的内点的数量小于或等于预设的内点数阈值时,可以通过预设的优化函数,将当前帧中的外点所对应的配对点对删除,进而对删除外点后的配对点对进行运算,从而实现对当前帧第一位姿的优化,以得到第二位姿,并基于第二位姿执行步骤S42,直到获得的位姿满足条件;第二位姿即为位姿,其中,“第二”的描述仅用于描述和区分的目的;通过优化函数,不断迭代优化当前帧的位姿,进而获得准确的位姿,从而成功实现重定位。
预设的优化函数是从图像的全局上优化所有配对点对之间的误差,剔除图像中的外点,通过迭代,逐步减小获得的位姿的误差,进而得到图像的准确位姿的函数。
在本实施例中,重定位设备通过配对点对和预设的位姿算法,确定当前帧的第一位姿,进而通过对配对点对中地图点进行重投影,精准判断第一位姿的准确度;若重投影后当前帧中的内点数量满足预设的内点数阈值,表明第一位姿的准确度较高,将第一位姿作为当前帧的当前位姿,进而成功实现重定位;若重投影后当前帧中的内点数量不满足预设的内点数阈值,表明第一位姿误差较大,则通过预设的优化函数,剔除当前帧中的外点并对第一位姿进行迭代优化,通过优化后的第二位姿实现重定位;通过内点数阈值的设置实现对位姿的进准判断,避免因位姿计算错误而导致的重定位失败的情况的发生,并且若位姿计算误差较大,可以通过优化函数,对位姿进行不断的迭代优化,进一步提升重定位的准确度和成功率。
进一步地,本申请实施例还提供一种重定位装置,参照图6,所述重定位装置应用于重定位设备,所述重定位装置包括:
获取模块10,用于获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;
生成模块20,用于在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点;
筛选模块30,用于基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;
确定模块40,用于根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
本申请重定位装置具体实施方式与上述重定位方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种重定位方法,其特征在于,所述重定位方法包括以下步骤:
获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;
在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点;
基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;
根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
2.如权利要求1所述的重定位方法,其特征在于,所述根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧的步骤包括:
分别获取所述关键帧数据库中各关键帧的第二词袋向量;
根据各所述第二词袋向量相较于所述第一词袋向量的元素相似度,确定目标第二词袋向量,其中,所述目标第二词袋向量为相较于所述第一词袋向量的元素相似度大于预设元素相似度阈值的第二词袋向量;
将所述目标第二词袋向量所对应的目标关键帧作为第一关键帧,并根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧。
3.如权利要求2所述的重定位方法,其特征在于,所述根据所述第一关键帧和所述当前帧之间的共视相似度,确定所述候选关键帧的步骤包括:
分别获取各所述第一关键帧相对于所述当前帧的共视特征点数量;
根据各所述共视特征点数量,确定各所述第一关键帧相较于所述当前帧的共视相似度;
根据所述共视相似度,确定与所述当前帧存在共视关系的第一关键帧以作为候选关键帧。
4.如权利要求1所述的重定位方法,其特征在于,所述基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对的步骤包括:
提取所述当前帧的当前特征点,并分别确定所述当前特征点的当前描述子和所述局部地图点集合中各地图点的地图描述子;
根据各所述地图描述子相较于所述当前描述子的汉明距离,确定目标地图描述子,其中,所述目标地图描述子为相较于所述当前描述子的汉明距离小于预设汉明距离阈值,且相较于所述当前描述子的汉明距离最小的地图描述子;
将所述目标地图描述子对应的目标地图点和所述当前描述子对应的当前特征点进行组合,以作为所述配对点对。
5.如权利要求1所述的重定位方法,其特征在于,所述根据所述配对点对,确定所述当前帧的当前位姿的步骤包括:
根据所述配对点对和预设的位姿算法,确定所述当前帧的第一位姿;
根据所述第一位姿,将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点,并统计所述内点的数量;
判断所述内点的数量是否大于预设的内点数阈值;
若是,则将所述第一位姿作为所述当前位姿。
6.如权利要求5所述的重定位方法,其特征在于,在所述判断所述内点的数量是否大于预设的内点数阈值的步骤之后,还包括:
若否,则根据预设的优化函数对所述第一位姿进行优化,得到第二位姿,并执行所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤。
7.如权利要求5所述的重定位方法,其特征在于,所述将所述配对点对中的地图点重投影至所述当前帧中,确定所述当前帧的内点的步骤包括:
将目标配对点对中的目标地图点重投影至所述当前帧中,得到目标重投影地图点,其中,所述目标配对点对为各所述配对点对中的任一配对点对;
判断所述目标重投影地图点和所述目标配对点对中的目标当前特征点之间的像素差是否小于预设的像素阈值;
若是,则将所述目标重投影地图点作为所述内点。
8.一种重定位装置,其特征在于,所述装置包括:
获取模块,用于获取当前帧的第一词袋向量,并根据所述第一词袋向量,在预设的关键帧数据库中筛选与所述当前帧相匹配的候选关键帧;
生成模块,用于在预设的世界坐标系中,确定与所述候选关键帧相对应的地图点,并生成局部地图点集合,其中,所述局部地图点集合包括至少一个地图点;
筛选模块,用于基于所述局部地图点集合,筛选与所述当前帧匹配的地图点,并生成配对点对;
确定模块,用于根据所述配对点对,确定所述当前帧的当前位姿并进行重定位。
9.一种重定位设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的重定位程序,所述重定位程序配置为实现如权利要求1至7中任一项所述的重定位方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有重定位程序,所述重定位程序被处理器执行时实现如权利要求1至7任一项所述的重定位方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211652829.0A CN115827812A (zh) | 2022-12-20 | 2022-12-20 | 重定位方法、装置、设备及其存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211652829.0A CN115827812A (zh) | 2022-12-20 | 2022-12-20 | 重定位方法、装置、设备及其存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827812A true CN115827812A (zh) | 2023-03-21 |
Family
ID=85517543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211652829.0A Pending CN115827812A (zh) | 2022-12-20 | 2022-12-20 | 重定位方法、装置、设备及其存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827812A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118310538A (zh) * | 2024-06-11 | 2024-07-09 | 山东云海国创云计算装备产业创新中心有限公司 | 基于多模态数据的重定位方法和装置 |
-
2022
- 2022-12-20 CN CN202211652829.0A patent/CN115827812A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118310538A (zh) * | 2024-06-11 | 2024-07-09 | 山东云海国创云计算装备产业创新中心有限公司 | 基于多模态数据的重定位方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109753940B (zh) | 图像处理方法及装置 | |
US20240092344A1 (en) | Method and apparatus for detecting parking space and direction and angle thereof, device and medium | |
KR101469398B1 (ko) | 텍스트 기반 3d 증강 현실 | |
US10909369B2 (en) | Imaging system and method for object detection and localization | |
CN110111388B (zh) | 三维物体位姿参数估计方法及视觉设备 | |
CN110986969B (zh) | 地图融合方法及装置、设备、存储介质 | |
CN111640181A (zh) | 一种交互式视频投影方法、装置、设备及存储介质 | |
WO2019042426A1 (zh) | 增强现实场景的处理方法、设备及计算机存储介质 | |
CN113420719B (zh) | 生成动作捕捉数据的方法、装置、电子设备以及存储介质 | |
US20130051626A1 (en) | Method And Apparatus For Object Pose Estimation | |
US10438412B2 (en) | Techniques to facilitate accurate real and virtual object positioning in displayed scenes | |
CN112150551A (zh) | 物体位姿的获取方法、装置和电子设备 | |
CN110109535A (zh) | 增强现实生成方法及装置 | |
WO2019169884A1 (zh) | 基于深度信息的图像显著性检测方法和装置 | |
CN110648363A (zh) | 相机姿态确定方法、装置、存储介质及电子设备 | |
CN110349212B (zh) | 即时定位与地图构建的优化方法及装置、介质和电子设备 | |
CN112733641B (zh) | 物体尺寸测量方法、装置、设备及存储介质 | |
US20230368033A1 (en) | Information processing device, control method, and program | |
CN112907569A (zh) | 头部图像区域的分割方法、装置、电子设备和存储介质 | |
CN115827812A (zh) | 重定位方法、装置、设备及其存储介质 | |
CN112085842B (zh) | 深度值确定方法及装置、电子设备和存储介质 | |
JP2016021097A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
US11417063B2 (en) | Determining a three-dimensional representation of a scene | |
CN111986230B (zh) | 一种视频中目标物的姿态跟踪方法及装置 | |
CN116245730A (zh) | 图像拼接的方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |