基于图模型的图像闭环检测方法及装置与流程

文档序号:15447772发布日期:2018-09-14 23:34阅读:262来源:国知局

本发明涉及图像处理领域,具体而言,涉及一种基于图模型的图像闭环检测方法及装置。



背景技术:

同时定位与地图创建(simultaneouslylocalizationandmapping,简称slam)是指机器人依靠其携带的传感器进行自身的定位,同时增量式地创建环境的地图,是智能机器人在未知环境中自主完成任务的前提和基础。而正确的闭环检测(loopclosuredetection),可以修正机器人slam过程中的累积误差,提高定位和建图的精度,是实现机器人智能化的必要环节。

当机器人运行到某个历史位置时,其运行轨迹即形成闭环。但由于机器人在定位和建图的过程中存在累积误差,其估计的运行轨迹和创建的地图往往并不闭合,图1(a)为现有技术提供的未经修正的地图,如图1(a)所示。如果机器人能够通过一定的手段正确检测出闭环,就可以对自身姿态和所创建的地图进行修正,图1(b)为现有技术提供的修正后的地图,如图1(b)所示。

基于视觉的闭环检测方法已经成为主流,图2为现有技术提供的基于视觉的闭环检测算法的图模型,如图2所示,图的每个节点表示机器人运行轨迹上的一个位置,用一张或多张图像描述该节点所对应的场景。机器人采集到新的图像后,将其与所有节点的图像进行匹配,如果匹配成功,则认为形成闭环并对机器人的轨迹和创建的地图进行修正;如果没有图像与其匹配,则将该位置作为新的节点增加到图模型中。随着机器人运行环境的逐渐扩大,图模型中节点的数量会越来越多,图像库中保存的图像数目也会越来越大,将新采集的图像与存储图像进行匹配也将变得十分困难。因此,如何进行快速、准确的图像匹配是基于视觉的闭环检测算法需要解决的首要难题。

现有算法大多需要计算特征的三维坐标。所有将空间信息融合到词典中的方法和大部分ransac后验的方法都需要计算特征点的三维坐标。对于基于视觉的闭环检测而言,获取三维坐标的方法有structurefrommotion(单目)、立体视觉(双目)等,这些方法的计算量都很大且精度尚不够高,在某些环境中甚至无法得到特征点的三维坐标。因此,这一问题限制了此类算法的精度,并且使得实时性也难以保障。

需要足够多的特征数以保证算法的鲁棒性。在基于ransac后验的方法中,当参与后验的特征数量较少时,由单词量化过程产生的误差和重复特征造成的误匹配会使得ransac算法的鲁棒性变差。为了保证ransac算法的准确性,参与后验的样本数量必须足够大,即特征点足够多,这就使得该方法无法采取特征筛选算法减少特征数量,也就难以提高实时性。可见,样本量大的问题是基于ransac后验的闭环检测方法无法逾越的障碍。

阈值的选取对检测结果影响较大。基于ransac的后验方法需要统计满足某个变换矩阵的单词数量,如果超过给定的阈值就认为形成闭环。若该阈值设置得过低,会产生错误的闭环匹配,使算法的准确率降低。因此,在实际的应用中,一般选取较高的阈值来保障闭环检测的准确率,但与此同时也限制了召回率的进一步提高。

综上,如何提高闭环检测的准确率及效率是现如今亟待解决的课题。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种基于图模型的图像闭环检测方法及装置,以解决闭环检测的准确率及效率低下的问题。

第一方面,本发明实施例提供了一种基于图模型的图像闭环检测方法,包括:

获取待检测的第一图像和待检测的第二图像,并分别对所述第一图像和所述第二图像进行特征提取,获得所述第一图像对应的第一特征点集和所述第二图像对应的第二特征点集;

对所述第一特征点集和所述第二特征点集进行筛选匹配处理,获得所述第一特征点集对应的第一目标特征点集和所述第二特征点集对应的第二目标特征点集;

根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型;

根据所述第一图模型和所述第二图模型进行闭环检测,获得闭环检测结果。

进一步地,所述对所述第一特征点集和所述第二特征点集进行筛选匹配处理,包括:

分别删除所述第一特征点集和所述第二特征点集中尺度小于预设阈值的特征点;

分别删除所述第一特征点集和所述第二特征点集中重复的特征点;

删除所述第一特征点集和所述第二特征点集中非共有单词所对应的特征点;

将所述第一特征点集和所述第二特征点集进行特征点匹配,删除没有匹配成功的特征点。

进一步地,所述根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型,包括:

分别利用预设算法,根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型;

其中,所述预设算法,包括:

获取目标图像的目标特征点集v中的边界目标特征点,构成边界点集vb;

引入三个参考节点va、vb和vc,所述参考节点构成的三角形包含所述目标特征点集v中的所有特征点;

依次从所述目标特征点集v中随机选择一个目标特征点vi,对每次选择的目标特征点vi进行处理,直至所述目标特征点集v中所有的目标特征点都被添加到网络中,终止随机选择目标特征点vi;其中,对选择的每个目标特征点vi的处理包括:

根据所述目标特征点vi以及已构成的三角形的外接圆,利用预设规则进行边连接,构成新的三角形;

对所述新的三角形和与所述新的三角形具有共边的三角形对应的所有的内角进行优化;

根据所述新的三角形的顶点和内角,删除符合预设条件的边界目标特征点;

在所述目标特征点集v中所有的目标特征点都被添加到网络后,删除所述参考节点va、vb和vc,以及以所述参考节点va、vb和vc为端点的所有的边,获得图模型。

进一步地,所述根据所述第一图模型和所述第二图模型进行闭环检测,获得闭环检测结果,包括:

依次从所述第一目标特征点集中选择任意一个第一目标特征点作为初始节点,从所述第二目标特征点集中选择与所述第一目标特征点对应的第二目标特征点并将所述第一目标特征点和所述第二目标特征点标记为已访问,对每次选择的所述第一目标特征点和所述第二目标特征点进行处理,直至所述第一目标特征点集中所有的第一目标特征点均为已访问为止;

其中,对每次选择的所述第一目标特征点和所述第二目标特征点进行处理,包括:

从所述第一图模型对应的第一边集合e1中获取所述第一目标特征节点对应的边,并标记为已访问;

根据所述第一目标特征点对应的边获取相连的第一目标特征点构成子集v10,并对所述第一目标特征点进行访问情况标记;

从所述第二目标特征点集中获取与所述子集v10中包括的所述第一目标特征点对应的第二目标特征点构成子集并根据所述第二图模型对所述第二目标特征点进行访问情况标记;

若子集中存在第二特征点没有与所述第二目标特征点连接,则闭环检测结果为没有形成闭环;

在所述第一目标特征点集中所有的第一目标特征点均为已访问后,若第二图模型中包括未标记的边,则判断得知闭环检测结果为没有形成闭环;否则闭环检测结果为形成闭环。

进一步地,所述分别对所述第一图像和所述第二图像进行特征提取,包括:

利用尺度不变特征转换算法分别对所述第一图像和所述第二图像进行特征提取。

进一步地,所述根据所述目标特征点vi以及已构成的三角形的外接圆,利用预设规则进行边连接,构成新的三角形,包括:

若所述目标特征点vi仅位于一个三角形的外接圆内,则将所述目标特征点vi与所述三角形的三个顶点分别连接,构成新的三角形;若所述目标特征点vi位于两个三角形的外接圆内,则将两个三角形的公共边删除,并将所述目标特征点vi分别于两个三角形的顶点连接,构成新的三角形。

进一步地,所述根据所述新的三角形的顶点和内角,删除符合预设条件的边界目标特征点,包括:

若判断获知所述新的三角形的顶点包含两个边界目标特征点,且所述新的三角形的最大内角大于预设角度,则将所述新的三角形的顶点包含两个边界目标特征点删除处理。

进一步地,所述对所述第一目标特征点进行访问情况标记,包括:

判断获知以所述第一目标特征点为端点的边都已访问,则将所述第一目标特征点标记为已访问;相应的,

所述根据所述第二图模型对所述第二目标特征点进行访问情况标记,包括:

将所述第二目标特征点与第二目标特征点连接的边标记为已访问,若所述第二目标特征点对应的所有的边都已访问,则将所述第二目标特征点标记为已访问。

第二方面,本发明实施例提供了一种基于图模型的图像闭环检测装置,包括:

特征提取模块,用于获取待检测的第一图像和待检测的第二图像,并分别对所述第一图像和所述第二图像进行特征提取,获得所述第一图像对应的第一特征点集和所述第二图像对应的第二特征点集;

筛选匹配模块,用于对所述第一特征点集和所述第二特征点集进行筛选匹配处理,获得所述第一特征点集对应的第一目标特征点集和所述第二特征点集对应的第二目标特征点集;

图模型建立模块,用于根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型;

检测模块,用于根据所述第一图模型和所述第二图模型进行闭环检测,获得闭环检测结果。

进一步地,所述筛选匹配模块,具体用于:

分别删除所述第一特征点集和所述第二特征点集中尺度小于预设阈值的特征点;

分别删除所述第一特征点集和所述第二特征点集中重复的特征点;

删除所述第一特征点集和所述第二特征点集中非共有单词所对应的特征点;

将所述第一特征点集和所述第二特征点集进行特征点匹配,删除没有匹配成功的特征点。

第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,

所述处理器和所述存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:

所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法步骤。

本发明实施例提供的基于图模型的图像闭环检测方法及装置,通过对第一特征点集和第二特征点集进行筛选匹配处理,并根据第一目标特征点集和第二目标特征点集分别构建第一图模型和第二图模型,将第一图模型和第二图模型进行比对实现闭环的检测,不但可以充分利用特征之间的相对位置关系,还避免了三维坐标的计算,从而在保证准确率的同时,大大降低了计算量。

本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1(a)为现有技术提供的未经修正的地图;

图1(b)为现有技术提供的修正后的地图;

图2为现有技术提供的基于视觉的闭环检测算法的图模型;

图3为本发明实施例提供的电子设备结构框图;

图4为本发明实施例提供的一种基于图模型的图像闭环检测方法流程示意图;

图5为本发明实施例提供的筛选匹配流程示意图;

图6为本发明实施例提供的根据拓扑关系创建的图模型;

图7(a)为本发明实施例提供的仅位于一个外接圆示意图;

图7(b)为本发明实施例提供的插入新节点示意图;

图7(c)为本发明实施例提供的位于两个外接圆示意图;

图7(d)为本发明实施例提供的插入新节点示意图;

图8(a)为本发明实施例提供的内角优化前示意图;

图8(b)为本发明实施例提供的内角优化后示意图;

图9为本发明实施例提供的一种基于图模型的图像闭环检测装置结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图3为本发明实施例提供的电子设备结构框图,如图3所示。电子设备可以包括图像闭环检测装置301、存储器302、存储控制器303、处理器304和外设接口305。

所述存储器302、存储控制器303、处理器304和外设接口305各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述图像闭环检测装置301包括至少一个可以软件或固件(firmware)的形式存储于所述存储器302中或固化在所述图像闭环检测装置301的操作系统(operatingsystem,os)中的软件功能模块。所述处理器304用于执行存储器302中存储的可执行模块,例如所述基于图模型的图像闭环检测装置301包括的软件功能模块或计算机程序。

其中,存储器302可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器302用于存储程序,所述处理器304在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器所执行的方法可以应用于处理器304中,或者由处理器304实现。

处理器304可以是一种集成电路芯片,具有信号的处理能力。上述的处理器304可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器304也可以是任何常规的处理器等。

所述外设接口305将各种输入/输出装置耦合至处理器304以及存储器302。在一些实施例中,外设接口305,处理器304以及存储控制器303可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

可以理解,图3所示的结构仅为示意,所述电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。

图4为本发明实施例提供的一种基于图模型的图像闭环检测方法流程示意图,如图4所示,所述方法,包括:

步骤401:获取待检测的第一图像和待检测的第二图像,并分别对所述第一图像和所述第二图像进行特征提取,获得所述第一图像对应的第一特征点集和所述第二图像对应的第二特征点集;

具体的,闭环检测装置获取需要进行闭环检测的第一图像和第二图像,可以理解的是,对两幅图像进行闭环检测就是比较两幅图像是否来自同一场景,在利用机器人进行地图绘制时,为了降低测量误差,往往需要进行修正,当检测发现第一图像和第二图像来自同一场景,则说明检测结果为闭环。在闭环检测装置获取到第一图像和第二图像后,分别对第一图像和第二图像进行特征提取,将第一图像和第二图像中感兴趣的点提取出来,得到第一图像对应的第一特征点集,和第二图像对应的第二特征点集,应当说明的是,现有技术中有很多特征提取的方法,本发明实施例对此不作具体限定,且第一特征点集和第二特征点集中均包括多个特征点。

步骤402:对所述第一特征点集和所述第二特征点集进行筛选匹配处理,获得所述第一特征点集对应的第一目标特征点集和所述第二特征点集对应的第二目标特征点集;

具体的,由于从一幅图像中可以提取出几百个甚至几千个特征点,如果直接通过这么多特征点进行下一步检测的话,计算量是非常大的,因此需要对第一特征点集和第二特征点集中的特征点进行筛选匹配处理。通过筛选匹配处理后,获得第一特征点集对应的第一目标特征点集和第二特征点集对应的第二目标特征点集。应当说明的是,第一目标特征点集和第二目标特征点集中的特征点为稳定、代表性强的特征点。

步骤403:根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型;

具体的,为了验证第一图像和第二图像是否来自同一个场景,闭环检测装置根据第一目标特征点集和二目标特征点集分别构建无向图模型,即将第一目标特征点集中的特征点通过无向连接线进行连接,从而构成第一图模型,将第二目标特征点集中的特征点通过无向连接线进行连接,从而构成第二图模型。可以理解的是,第一图模型和第二图模型中的特征点是进行筛选匹配处理后剩下的特征点,且第一图模型和第二图模型的边由特征点在图像平面中的二维拓扑关系确定。

步骤404:根据所述第一图模型和所述第二图模型进行闭环检测,获得闭环检测结果。

具体的,根据第一图模型和第二图模型的网络拓扑结构判断第一图像和第二图像是否来自同一场景,若为同一场景则闭环检测结果为闭环,否则不是闭环。

本发明实施例通过对第一特征点集和第二特征点集进行筛选匹配处理,并根据第一目标特征点集和第二目标特征点集分别构建第一图模型和第二图模型,将第一图模型和第二图模型进行比对实现闭环的检测,不但可以充分利用特征之间的相对位置关系,还避免了三维坐标的计算,从而在保证准确率的同时,大大降低了计算量。

在上述实施例的基础上,所述对所述第一特征点集和所述第二特征点集进行筛选匹配处理,包括:

分别删除所述第一特征点集和所述第二特征点集中尺度小于预设阈值的特征点;

分别删除所述第一特征点集和所述第二特征点集中重复的特征点;

删除所述第一特征点集和所述第二特征点集中非共有单词所对应的特征点;

将所述第一特征点集和所述第二特征点集进行特征点匹配,删除没有匹配成功的特征点。

具体的,从一幅图像中可以提取出几百个甚至几千个特征点,通过特征筛选的方法保留稳定、代表性强的特征作为节点构建图模型可以大大减少计算量,并且可以降低传感器观测噪声及环境中的运动物体对闭环检测结果的影响,提高闭环检测算法的鲁棒性。此外,在比较两个图模型的相似性时,要求两个图模型的节点具有明确的对应关系,即避免一个节点对应多个节点的情况。因此,需要对待验证的两幅图像进行特征匹配,将存在多个匹配的特征点删除。通过这种方式可以有效避免因环境中存在重复物体或特征带来的感知混淆问题。

图5为本发明实施例提供的筛选匹配流程示意图,如图5所示,假设待验证的闭环候选图像分别用图像1和图像2来表示,下面我们将对整个流程进行说明。

步骤501:分别删除图像1和图像2中尺度小于预设阈值的特征点。这里的尺度是指特征空间内的尺度,通过这个步骤可以有效删除大部分较弱的特征点。应当说明的是,预设阈值可以根据实际情况进行调整,本发明实施例对此不作具体限定。

步骤502:分别删除图像1和图像2中重复出现的特征点。由于在计算图像索引阶段,每个特征点都已经与词典中的单词关联,我们只需要删除每个图像中重复出现的单词所对应的特征点。这样做的好处有:(1)不需要对特征点进行匹配,大大降低了计算量;(2)相同的特征必定会被量化成相同的单词,通过这种方式能够保证重复出现的特征全部被删除;(3)在特征量化过程中,相似的特征也会被量化成相同的单词,将重复出现的单词所对应的特征点删除还可以有效滤除外观相似(即代表性不强)的特征点。

步骤503:删除图像1和图像2非共有单词所对应的特征点。在相机采集图像的过程中,由于存在观测噪声、相机视角变化、场景中存在运动物体等原因,图像1和图像2可能包含不同的特征点。为了保证两幅图像中的特征点具有一一对应的关系,这些非共有特征点应被删除。为了进一步减少计算量,我们在这一步中不进行特征点的匹配,而是直接把图像1和图像2的非共有单词所对应的特征点删除。

步骤504:特征点匹配。经过上述三个步骤后,待检测的第一图像和第二图像中所剩的特征点数量已经大幅度减少。这时,我们可以将两幅图像中的特征点进行匹配,确定其对应关系。

步骤505:删除图像1和图像2的所有非共有特征点。在特征匹配之后,两幅图像中的共有特征点已经建立了对应关系,将没有匹配的特征点删除,留下的便是稳定、代表性强、且一一对应的征点了。

本发明实施例通过对第一图像和第二图像的特征点进行筛选匹配后,只保留稳定、代表性强的特征作为节点构建图模型可以大大减少计算量,并且可以降低传感器观测噪声及环境中的运动物体对闭环检测结果的影响,提高闭环检测算法的鲁棒性。

在上述实施例的基础上,所述根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型,包括:

分别利用预设算法,根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型;

其中,所述预设算法,包括:

获取目标图像的目标特征点集v中的边界目标特征点,构成边界点集vb;

引入三个参考节点va、vb和vc,所述参考节点构成的三角形包含所述目标特征点集v中的所有特征点;

依次从所述目标特征点集v中随机选择一个目标特征点vi,对每次选择的目标特征点vi进行处理,直至所述目标特征点集v中所有的目标特征点都被添加到网络中,终止随机选择目标特征点vi;其中,对选择的每个目标特征点vi的处理包括:

根据所述目标特征点vi以及已构成的三角形的外接圆,利用预设规则进行边连接,构成新的三角形;

对所述新的三角形和与所述新的三角形具有共边的三角形对应的所有的内角进行优化;

根据所述新的三角形的顶点和内角,删除符合预设条件的边界目标特征点;

在所述目标特征点集v中所有的目标特征点都被添加到网络后,删除所述参考节点va、vb和vc,以及以所述参考节点va、vb和vc为端点的所有的边,获得图模型。

具体的,经过上述特征筛选及匹配后,第一图像和第二图像中的特征点数量已经大幅度减少。接下来,我们将根据这些特征点之间的拓扑关系建立图模型来表示图像。图6为本发明实施例提供的根据拓扑关系创建的图模型,如图6所示,该图模型应同时满足以下条件:

1、不能存在孤立的节点,即保证每个特征点的位置信息都能利用上;

2、每个节点都应该尽可能多的与其他节点相连;

3、每个节点只能连接与它相邻的节点,例如图中的节点a可以与节点f相连,但节点a不能与节点m相连;

4、边与边之间不能有交叉。

利用预设算法分别构建第一目标特征点集对应的第一图模型和第二目标特征点集对应的第二图模型。

其中,预设算法的输入为待检测的图像平面内的n个点构成的点集v={v1,v2,…,vn},输出为图模型g=(v,e),具体步骤如下:

1、从目标图像的目标特征点集v中找出所有的边界目标特征点,将所有的边界目标特征点构成边界点集vb,其中,目标图像为第一图像或第二图像,那么可以理解的是目标特征点集v为第一目标特征点集或第二目标特征点集。

2、引入三个参考节点va、vb和vc,使得这三个参考节点构成的三角形能够包括目标特征点集v中的所有的特征点。可以理解的是,参考节点是任意引入的,只要其构成的三角形能够包括目标特征点集v中所有的特征点即可。

3、从目标特征点集v中任意选择一个目标特征点vi,根据选择的目标特征点vi以及已构成的三角形的外接圆,利用预设规则进行边连接,构成新的三角形。进一步地,利用预设规则进行边连接,包括:如果选择的目标特征点vi仅位于当前构建的网络中的某一个三角形的外接圆内,图7(a)为本发明实施例提供的仅位于一个外接圆示意图,如图7(a)所示,则将该选择的目标特征点vi与所在三角形的三个顶点分别相连,形成三个新的三角形,图7(b)为本发明实施例提供的插入新节点示意图,如图7(b)所示;如果该节点位于某两个三角形的外接圆内,图7(c)为本发明实施例提供的位于两个外接圆示意图,如图7(c)所示,则将这两个三角形的公共边删除,并将该节点与两个三角形的顶点相连,形成四个新的三角形,图7(d)为本发明实施例提供的插入新节点示意图,如图7(d)所示。

4、对于新的三角形和与该三角形具有共边的三角形,需要对这两个三角形构成的内角进行优化,具体的优化方式为:

图8(a)为本发明实施例提供的内角优化前示意图,如图8(a)所示,对于新添加的每一个三角形abd,寻找与其共边的三角形bcd,计算两个三角形所有内角的最小值(∠abd),如果将节点b和节点d的连接删除且增加节点a和节点c的连接后最小的内角(∠acd)变大,则将这四个节点的连接修改为图8(b)所示的模型,图8(b)为本发明实施例提供的内角优化后示意图。

5、对于新增加的三角形,如果其顶点及内角,删除符合预设条件的边界目标特征点,其中预设条件为:若判断获知所述新的三角形的顶点包含两个边界目标特征点,且所述新的三角形的最大内角大于预设角度,则将所述新的三角形的顶点包含两个边界目标特征点删除处理,可以理解的是,预设角度可以设置为150度,也可以根据实际情况进行调整,本发明实施例对此不作具体限定。

6、重复步骤3-5,直到目标特征点集v中所有的目标特征点都被添加到网络中,可以理解的是,最终的网络图即为构建的图模型。

7、删除参考节点va、vb、vc,及以这三个节点为端点的边,剩下所有的连接即构成图模型g的边集e。

本发明实施例通过构建图模型,利用特征点的空间关系进行闭环验证,提高闭环检测算法准确率。

在上述实施例的基础上,所述根据所述第一图模型和所述第二图模型进行闭环检测,获得闭环检测结果,包括:

依次从所述第一目标特征点集中选择任意一个第一目标特征点作为初始节点,从所述第二目标特征点集中选择与所述第一目标特征点对应的第二目标特征点并将所述第一目标特征点和所述第二目标特征点标记为已访问,对每次选择的所述第一目标特征点和所述第二目标特征点进行处理,直至所述第一目标特征点集中所有的第一目标特征点均为已访问为止;

其中,对每次选择的所述第一目标特征点和所述第二目标特征点进行处理,包括:

从所述第一图模型对应的第一边集合e1中获取所述第一目标特征节点对应的边,并标记为已访问;

根据所述第一目标特征点对应的边获取相连的第一目标特征点构成子集v10,并对所述第一目标特征点进行访问情况标记;

从所述第二目标特征点集中获取与所述子集v10中包括的所述第一目标特征点对应的第二目标特征点构成子集并根据所述第二图模型对所述第二目标特征点进行访问情况标记;

若子集中存在第二特征点没有与所述第二目标特征点连接,则闭环检测结果为没有形成闭环;

在所述第一目标特征点集中所有的第一目标特征点均为已访问后,若第二图模型中包括未标记的边,则判断得知闭环检测结果为没有形成闭环;否则闭环检测结果为形成闭环。

具体的,在得到闭环候选图像的图模型表示后,需要比较这两个图模型的结构,进而判断这两幅图像是否形成闭环。上述创建的图模型是融合了特征点拓扑信息的网状图,比较网状图的结构是一个十分复杂的问题。由于在特征筛选和匹配阶段已经在两个图模型的所有节点中建立了一一对应的关系,那么比较这两个图模型的结构就简化成判断这两个图模型的边集是否一致。

假设第一图像对应的图模型分别为g1=(v1,e1),第二图像对应的第二图模型为g2=(v2,e2),其具体的检测方法如下:

1、从第一目标特征点集v1中任意选择一个第一目标特征点作为初始节点,从第二目标特征点集v2中找到第一目标特征点对应的第二目标特征点并将第一目标特征点和第二目标特征点标记为已访问。

2、从第一边集合e1中找出所有以第一目标特征点为端点的边,形成子集中的所有边标记为已访问。

3、根据中的边,找到第一目标特征点集v1中所有与相连的节点形成子集并对所述第一目标特征点进行访问情况标记;其中,对第一目标特征点的访问情况标记具体为:若以第一目标特征点为端点的所有边都已访问,则将第一目标特征点标记为已访问。

4、从第二目标特征点集v2中找到所有与中第一目标特征点相对应的第二目标特征点形成子集

5、根据所述第二图模型对所述第二目标特征点进行访问情况标记;具体为:判断第二目标特征点是否与集合中的所有的第二目标特征点存在连接关系。若存在一条边将第二目标特征点与第二目标特征点相连,则将标记为已访问;若以第二目标特征点为端点的所有边都已访问,则将第二目标特征点标记为已访问;若存在某个第二目标特征点没有任何边将该第二目标特征点相连,则完成闭环验证,认为在没有形成闭环。

6、依次以子集中的第一目标特征点作为初始节点,重复步骤2-5,并以此类推,直到第一目标特征点集v1中的所有第一目标特征点都被访问。

7、若集合e2中存在未被标记的边,说明两个图模型存在不同的连接关系,认为没有形成闭环;否则,说明两个图模型具有完全相同的结构,认为在闭环候选图像之间形成闭环,完成闭环验证。

本发明实施例通过利用特征点的空间关系进行闭环检测,是提高闭环检测算法准确率的有效途径。现有的后验方法大多需要计算特征点的三维坐标,并且需要大量的样本点确保算法的鲁棒性。本发明实施例突破现有算法框架,利用特征点在图像平面的二维拓扑关系建立图模型来表示图像,进而完成闭环候选图像的验证,巧妙避免了现有算法所面临的问题。所提出的图模型建模方法充分利用了特征的拓扑关系,具有较强的仿射不变性,是对现有图模型建模理论的有益补充。

在上述实施例的基础上,所述分别对所述第一图像和所述第二图像进行特征提取,包括:

利用尺度不变特征转换算法分别对所述第一图像和所述第二图像进行特征提取。

具体的,特征提取的方法有很多,尺度不变特征转换算法(scale-invariantfeaturetransform,简称sift)是常用的一种,通过sift算法对第一图像和第二图像进行特征提取,可以得到各自对应的sift特征点。

本发明实施例通过尺度不变特征转换算法第一图像和第二图像进行特征提取,采用sift特征进行匹配可以避免因量化误差造成图模型节点的误匹配。

图9为本发明实施例提供的一种基于图模型的图像闭环检测装置结构示意图,如图9所示,所述装置,包括:特征提取模块901、筛选匹配模块902、图模型建立模块903和检测模块904,其中:

特征提取模块901用于获取待检测的第一图像和待检测的第二图像,并分别对所述第一图像和所述第二图像进行特征提取,获得所述第一图像对应的第一特征点集和所述第二图像对应的第二特征点集;筛选匹配模块902用于对所述第一特征点集和所述第二特征点集进行筛选匹配处理,获得所述第一特征点集对应的第一目标特征点集和所述第二特征点集对应的第二目标特征点集;图模型建立模块903用于根据所述第一目标特征点集进行建模获得第一图模型,根据所述第二目标特征点集进行建模获得第二图模型;检测模块904用于根据所述第一图模型和所述第二图模型进行闭环检测,获得闭环检测结果。

具体的,特征提取模块901获取需要进行闭环检测的第一图像和第二图像,分别对第一图像和第二图像进行特征提取,将第一图像和第二图像中感兴趣的点提取出来,得到第一图像对应的第一特征点集,和第二图像对应的第二特征点集。由于从一幅图像中可以提取出几百个甚至几千个特征点,如果直接通过这么多特征点进行下一步检测的话,计算量是非常大的,因此需要筛选匹配模块902对第一特征点集和第二特征点集中的特征点进行筛选匹配处理。通过筛选匹配处理后,获得第一特征点集对应的第一目标特征点集和第二特征点集对应的第二目标特征点集。应当说明的是,第一目标特征点集和第二目标特征点集中的特征点为稳定、代表性强的特征点。为了验证第一图像和第二图像是否来自同一个场景,图模型建立模块903根据第一目标特征点集和二目标特征点集分别构建无向图模型,即将第一目标特征点集中的特征点通过无向连接线进行连接,从而构成第一图模型,将第二目标特征点集中的特征点通过无向连接线进行连接,从而构成第二图模型。检测模块904根据第一图模型和第二图模型的网络拓扑结构判断第一图像和第二图像是否来自同一场景,若为同一场景则闭环检测结果为闭环,否则不是闭环。

本发明提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

在上述实施例的基础上,所述筛选匹配模块,具体用于:

分别删除所述第一特征点集和所述第二特征点集中尺度小于预设阈值的特征点;

分别删除所述第一特征点集和所述第二特征点集中重复的特征点;

删除所述第一特征点集和所述第二特征点集中非共有单词所对应的特征点;

将所述第一特征点集和所述第二特征点集进行特征点匹配,删除没有匹配成功的特征点。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。

综上所述,本发明实施例通过对第一特征点集和第二特征点集进行筛选匹配处理,并根据第一目标特征点集和第二目标特征点集分别构建第一图模型和第二图模型,将第一图模型和第二图模型进行比对实现闭环的检测,不但可以充分利用特征之间的相对位置关系,还避免了三维坐标的计算,从而在保证准确率的同时,大大降低了计算量。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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