掌桥专利:专业的专利平台
掌桥专利
首页

一种闭环检测方法、装置、电子设备和存储介质

文献发布时间:2023-06-19 12:25:57


一种闭环检测方法、装置、电子设备和存储介质

技术领域

本申请涉及计算机视觉技术领域,尤其涉及一种闭环检测方法、装置、电子设备和存储介质。

背景技术

随着摄像头技术的不断发展,摄像头感知世界的能力越来越强,融合了3D高精地图能力、空间计算能力、强环境理解能力和虚实融合能力的技术越来越多。在增强现实、虚拟现实、导航、移动机器人、无人机、无人驾驶等领域,获得高精度三维重建地图是非常重要的需求。现有技术通常采用对空间或建筑做三维建模的方法来制作3D地图,基于三维建模所制作的3D地图能够保存真实三维空间中物体的形状,位置,角度,特征和语义信息。三维重建中为了提高精度,往往需要采用闭环检测和优化消除累计漂移,以制作高精度地图。

现有技术的闭环检测方法,通常都依赖视觉,通过图像的特征或语义判断图像之间的相似度,达到判断条件则认为是闭环,如专利CN201710350174.4提出一种基于深度神经网络的视觉SLAM闭环检测方法,专利CN201910411429.2提出一种基于目标检测的视觉SLAM闭环检测方法。然而基于视觉的闭环检测方法在重复场景的纹理下会出现高概率错误,如机场里完全一样布局的左右两个通道,两层完全一样布局的停车场,两个外形一模一样的建筑物,商场里两个一模一样的店铺等等。基于视觉将两个布局一样的场景区分开是一件困难,高风险,高计算量的事。

发明内容

本申请实施例提供一种闭环检测方法、装置、电子设备和存储介质,实现准确、高效的闭环检测方法,以解决在弱纹理或重复纹理场景中闭环检测误检率较高,导致所构建地图精度不高的技术问题。

在本发明的第一方面,提供了一种闭环检测方法,其特征在于,包括:S1:采集输入图像序列;S2:执行闭环检测,得到两闭环帧A和B;S3:计算所述两闭环帧A和B之间的位置偏差百分比,并基于所述百分比判断是否执行闭环优化。

进一步优选地,所述两闭环帧A和B为相似度大于或等于第一相似度的两图像帧,且图像帧B在时序上位于图像帧A之后。

进一步优选地,计算两闭环帧之间的位置偏差百分比,包括:S31:计算两闭环帧A和B之间的位置偏差tab;S32:计算从帧A到帧B之间每一帧图像的累计路径总长度Tab;S33:所述位置偏差百分比设置为tab与Tab之间的百分比tab/Tab。

进一步优选地,计算两闭环帧A和B之间的位置偏差tab,包括:S311:获取图像A的当前位置Ta;S312:获取图像B的当前位置Tb;S313:计算图像A和图像B之间的位置偏差tab=abs(Ta-Tb)。

进一步优选地,计算从帧A到帧B之间每一帧图像的累计路径总长度Tab,包括:S321:获取图像A与图像B之间的每一帧图像C1...Cn,得到按时序排列的图像集合{A,C1,...,Cn,B},其中n为图像A与图像B之间的图像总帧数;S322:计算所述图像集合{A,C1,...,Cn,B}中每相邻两帧之间的位置偏差;S323:将所述每相邻两帧之间的位置偏差进行累加,得到所述累计路径总长度Tab。

进一步优选地,基于所述百分比判断是否执行闭环优化,包括:计算两闭环帧之间的位置偏差百分比,当所述百分比小于阈值th时,则判断闭环检测正确,并执行闭环优化;否则,则判断闭环检测错误,不执行闭环优化。

在本发明的第二方面,提供了一种闭环检测装置,包括:图像采集模块,用于采集输入图像序列;闭环检测模块,用于执行闭环检测,得到两闭环帧A和B;闭环判断模块,用于计算所述两闭环帧A和B之间的位置偏差百分比,并基于所述百分比判断是否执行闭环优化。

进一步优选地,两闭环帧A和B为相似度大于或等于第一相似度的两图像帧,且图像帧B在时序上位于图像帧A之后。

进一步优选地,闭环判断模块包括:位置偏差计算模块:用于计算两闭环帧A和B之间的位置偏差tab;累计路径计算模块:用于计算从帧A到帧B之间每一帧图像的累计路径总长度Tab;百分比计算模块:用于将所述位置偏差百分比设置为tab与Tab之间的百分比tab/Tab。

进一步优选地,位置偏差计算模块包括:当前位置获取子模块:用于分别获取图像A和图像B的当前位置Ta和Tb;位置偏差计算子模块:用于计算图像A和图像B之间的位置偏差tab=abs(Ta-Tb)。

进一步优选地,累计路径计算模块,包括:图像序列获取子模块:用于获取图像A与图像B之间的每一帧图像C1...Cn,得到按时序排列的图像集合{A,C1,...,Cn,B},其中n为图像A与图像B之间的图像总帧数;相邻帧偏差计算子模块:用于计算所述图像集合{A,C1,...,Cn,B}中每相邻两帧之间的位置偏差;累计路径计算子模块:用于将所述每相邻两帧之间的位置偏差进行累加,得到所述累计路径总长度Tab。

进一步优选地,闭环判断模块进一步包括:计算两闭环帧之间的位置偏差百分比,当所述百分比小于阈值th时,则判断闭环检测正确,并执行闭环优化;否则,则判断闭环检测错误,不执行闭环优化。

在本发明的第三方面,提供了一种电子设备,包括:一个或多个处理器;以及存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现根据第一方面所述的方法。

在本发明的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述程序由处理器加载并执行以实现根据第一方面所述的方法。

上述闭环检测方法,通过计算两闭环帧之间的位置偏差百分比,从而判断是否进行闭环优化,能够自动剔除潜在错误闭环,且对应用场景和设备要求很低,节省了人力物力。能够在弱纹理或重复纹理的场景下,降低错误闭环检测率,保证构建的地图精度。

附图说明

图1为本申请提供的一种闭环检测方法的流程图;

图2为本申请提供的一种计算两闭环帧之间的位置偏差百分比的流程图;

图3为本申请提供的一种计算两闭环帧之间的位置偏差的流程图;

图4为本申请实施例提供的一种计算两闭环帧之间的累计路径总长度的流程图;

图5为本申请实施例提供的一种闭环检测场景的示意图。

图6为本申请实施例提供的一种闭环检测装置的结构示意图;

图7为本申请实施例提供的一种闭环判断模块的具体结构示意图;

图8为本申请实施例提供的一种位置偏差计算模块的具体结构示意图。

图9为本申请实施例提供的一种累计路径计算模块的具体结构示意图。

图10为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

为了便于理解,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

实施例一

以下将结合说明书附图具体描述本发明的第一实施例。如图1示出了本发明的一种闭环检测方法的流程图。具体包括:

S1:采集输入图像序列。

具体的,在本实施例中,输入图像序列可为在SFM或SLAM系统中,机器人通过摄像头等采集的图像序列,图像序列为在时序上依次连续的多个图像帧。

S2:执行闭环检测,得到两闭环帧A和B;

具体的,在本实施例中,闭环检测可采用现有技术中已知的闭环检测方法,如基于连续关键帧的相似度的闭环检测方法,基于深度学习匹配图像判断相似度的闭环检测方法,基于语义的闭环检测方法,基于距离判断候选再计算相似度的闭环检测方法等。本实施例对此并不做具体限定。

采用现有技术闭环检测方法执行闭环检测之后,得到两闭环帧A和B。具体的,如何得到两闭环帧可基于所采用的闭环检测方法确定。如基于相似度判断的方法执行闭环检测时,所述两闭环帧A和B可为相似度大于或等于第一相似度的所述图像序列中的两图像帧。本实施例对如何得到两闭环帧A和B并不做具体限定,只要根据所采用的闭环检测方法能够判断帧A和帧B为闭环即可。且本领域所熟知的,虽然闭环帧A和B由同一地点所采集,然而由于该两帧图像的位姿由SFM或SLAM计算得到,则所得到的两闭环帧A和B之间必然存在一定的偏差。

S3:计算所述两闭环帧A和B之间的位置偏差百分比,并基于所述百分比判断是否执行闭环优化。

如图2示出了本发明的计算两闭环帧之间的位置偏差百分比的一个实施例的流程图。具体包括:

S31:计算两闭环帧A和B之间的位置偏差tab;

具体的,对于SFM或SLAM系统而言,每一帧图像都具有一个位姿,位姿包括该帧图像拍摄时所处的位置以及摄像头的朝向,进而根据各帧图像的位置数据,即可得到两帧图像之间的位置偏差。如图3示出了本发明的计算两闭环帧之间的位置偏差的一个实施例的流程图。包括:

S311:获取图像A的当前位置Ta;

具体的,当前位置Ta为通过SFM或SLAM系统相应算法得到的图像A的位置。

S312:获取图像B的当前位置Tb;

具体的,当前位置Ta为通过SFM或SLAM系统相应算法得到的图像B的位置。

S313:计算图像A和图像B之间的位置偏差tab=abs(Ta-Tb)。

图5示出了本发明的闭环检测场景的一个实施例的示意图。其中,图中各个三角形分别代表所采集的各图像帧,两个黑色三角形分别表示两闭环帧A和B,两三角形之间的连线表示两帧之间的距离。其中,两闭环帧A和B为摄像头在同一位置所采集到的图像,然而由于图中所示各帧位置为通过相应算法得到的,因此所示出的两图像帧之间存在一定的位置偏差。

根据图5所示,两闭环帧A和B之间的位置偏差tab即帧A和帧B之间的距离,即两黑色三角形之间的虚线距离。

S32:计算从帧A到帧B之间每一帧图像的累计路径总长度Tab;

如图4示出了本发明的计算两闭环帧之间的累计路径总长度的一个实施例的流程图。具体包括:

S321:获取图像A与图像B之间的每一帧图像C

具体的,如图5所示,帧A到帧B之间的每一帧图像即图中的白色三角形所代表的图像帧。

S322:计算所述图像集合{A,C

具体的,如图5所示,每相邻两帧之间的位置偏差即为图中各个三角形之间的实线所示出的距离,即图中各个白色三角形之间的距离,以及代表帧A的黑色三角形与下一个白色三角形之间的距离,以及代表帧B的黑色三角形与前一个白色三角形之间的距离。

S323:将所述每相邻两帧之间的位置偏差进行累加,得到所述累计路径总长度Tab。

具体的,如图5所示,帧A到帧B之间的累计路径总长度Tab即图中各个三角形之间的实线之和,即图中除帧A和帧B之间的虚线之外的所有实线的距离之和。

S33:所述位置偏差百分比设置为tab与Tab之间的百分比tab/Tab。

在一些实施例中,基于所述百分比判断是否执行闭环优化包括:计算所述两闭环帧A和B之间的位置偏差百分比tab/Tab,当所述百分比tab/Tab小于阈值th时,则判断闭环检测正确,并执行闭环优化;否则,则判断闭环检测错误,不执行闭环优化。

在一些实施例中,阈值th可通过大量场景测试得到。例如,可进行m次试验,计算在完全重合的两位置所采集的图像(即图像A和B)之间的偏差百分比tab

实施例二

以下将结合说明书附图具体描述本发明的第二实施例。如图6示出了本发明的一种闭环检测装置600。具体包括:

图像采集模块,用于采集输入图像序列;

具体的,在本实施例中,输入图像序列可为在SFM或SLAM系统中,机器人通过摄像头等采集的图像序列,图像序列为在时序上依次连续的多个图像帧。

闭环检测模块,用于执行闭环检测,得到两闭环帧A和B;

具体的,在本实施例中,闭环检测可采用现有技术中已知的闭环检测方法,如基于连续关键帧的相似度的闭环检测方法,基于深度学习匹配图像判断相似度的闭环检测方法,基于语义的闭环检测方法,基于距离判断候选再计算相似度的闭环检测方法等。本实施例对此并不做具体限定。

在一些实施例中,采用现有技术闭环检测方法执行闭环检测之后,得到两闭环帧A和B。具体的,如何得到两闭环帧可基于所采用的闭环检测方法确定。如基于相似度判断的方法执行闭环检测时,所述两闭环帧A和B可为相似度大于或等于第一相似度的所述图像序列中的两图像帧。本实施例对如何得到两闭环帧A和B并不做具体限定,只要根据所采用的闭环检测方法能够判断帧A和帧B为闭环即可。且本领域所熟知的,虽然闭环帧A和B由同一地点所采集,然而由于该两帧图像的位姿由SFM或SLAM计算得到,则所得到的两闭环帧A和B之间必然存在一定的偏差。

闭环判断模块,用于计算所述两闭环帧A和B之间的位置偏差百分比,并基于所述百分比判断是否执行闭环优化。

如图7示出了本发明的闭环判断模块的一个实施例。具体包括:

位置偏差计算模块:用于计算两闭环帧A和B之间的位置偏差tab;具体的,对于SFM或SLAM系统而言,每一帧图像都具有一个位姿,位姿包括该帧图像拍摄时所处的位置以及摄像头的朝向,进而根据各帧图像的位置数据,即可得到两帧图像之间的位置偏差。

累计路径计算模块:用于计算从帧A到帧B之间每一帧图像的累计路径总长度Tab;具体的,所述位置偏差百分比为所述两闭环帧之间的位置偏差与两闭环帧之间的累计位置偏差之间的百分比。

百分比计算模块:用于将所述位置偏差百分比设置为tab与Tab之间的百分比tab/Tab。

在一些实施例中,所述闭环判断模块还包括闭环判断子模块:用于接收百分比计算模块所计算出的百分比tab/Tab,当所述百分比tab/Tab小于阈值th时,则判断闭环检测正确,并执行闭环优化;否则,则判断闭环检测错误,不执行闭环优化。

在一些实施例中,阈值th可通过大量场景测试得到。具体的,可进行m次试验,计算在完全重合的两位置所采集的图像(即图像A和B)之间的偏差百分比tab

图8示出了本发明的位置偏差计算模块的一个实施例。包括当前位置获取子模块和位置偏差计算子模块,具体为:

当前位置获取子模块:用于分别获取图像A和图像B的当前位置Ta和Tb;

具体的,当前位置Ta和Tb为通过SFM或SLAM系统相应算法得到的图像A和图像B的位置;

位置偏差计算子模块:用于基于当前位置获取子模块获取的所述位置Ta和Tb,计算图像A和图像B之间的位置偏差tab=abs(Ta-Tb);

图9示出了本发明的累计路径计算模块的一种实施例。包括图像序列获取子模块、相邻帧偏差计算子模块和累计路径计算子模块,具体为:

图像序列获取子模块:用于获取图像A与图像B之间的每一帧图像C1...Cn,得到按时序排列的图像集合{A,C1,...,Cn,B},其中n为图像A与图像B之间的图像总帧数;

相邻帧偏差计算子模块:用于计算所述图像集合{A,C1,...,Cn,B}中每相邻两帧之间的位置偏差;

累计路径计算子模块:用于将所述每相邻两帧之间的位置偏差进行累加,得到所述累计路径总长度Tab。

实施例三

以下将结合说明书附图具体描述本发明的第三实施例。如图10示出了本发明的一种电子设备1000。所述电子设备1000可以为桌上型计算机、笔记本、掌上电脑、平板型计算机、手机、人机交互屏等设备。所述电子设备1000至少包括:存储器1001和处理器1002。存储器1001用于存储上述任一实施方式的基于位置偏差百分比的闭环检测的程序指令。处理器1002,用于执行程序指令以使电子设备1000实现上述的闭环检测算法。

其中,存储器1001在一些实施例中可以是电子设备1000的内部存储单元,例如电子设备1000的硬盘。存储器1001在另一些实施例中也可以是电子设备1000的外部存储设备,例如电子设备1000上配备的插接式硬盘,智能存储卡(Sma rt Med ia Ca rd,SMC),安全数字卡(SecureDigital,SD),闪存卡(Flash Card)等。进一步地,存储器1001还可以既包括电子设备1000的内部存储单元也包括外部存储设备。

处理器1002在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器1001中存储的程序指令或处理数据。具体地,处理器1002执行闭环检测算法的程序指令以控制电子设备1000实现闭环检测算法。

进一步地,电子设备1000还可以包括总线1003可以是外设部件互连标准总线(peripheral component interconnect,简称PCI)或扩展工业标准结构总线(extendedindustry standard architecture,简称EISA)等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,电子设备1000还可以包括显示组件1004。显示组件1004可以是LED(LightEmitting Diode,发光二极管)显示器、液晶显示器、触控式液晶显示器以及OLED(OrganicLight-Emitting Diode,有机发光二极管)触摸器等。其中,显示组件1004也可以适当的称为显示装置或显示单元,用于显示在电子设备1000中处理的信息以及用于显示可视化的用户界面。

进一步地,电子设备1000还可以包括通信组件1005,通信组件1005可选的可以包括有线通信组件和/或无线通信组件(如WI-FI通信组件、蓝牙通信组件等),通常用于在电子设备1000与其他电子设备之间建立通信连接。

图10仅示出了具有组件1001-1005以及实现闭环检测算法的程序指令的电子设备1000,本领域技术人员可以理解的是,图10示出的结构并不构成对电子设备1000的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

实施例四

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

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

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种闭环检测方法、装置、电子设备和存储介质
  • 基于距离的闭环检测方法、装置、电子设备和存储介质
技术分类

06120113297098