公开/公告号CN112699266A
专利类型发明专利
公开/公告日2021-04-23
原文格式PDF
申请/专利权人 视辰信息科技(上海)有限公司;
申请/专利号CN202011606121.2
申请日2020-12-30
分类号G06F16/583(20190101);G06K9/00(20060101);G06K9/62(20060101);
代理机构31252 上海大邦律师事务所;
代理人郜少毅
地址 201203 上海市浦东新区郭守敬路498号14幢23501室
入库时间 2023-06-19 10:43:23
技术领域
本发明属于视觉地图、视觉定位、图像检索领域,具体涉及一种基于关键帧相关性的视觉地图定位方法和系统。
背景技术
在图像检索中,一般采用最近邻搜索(K-Nearest Neighbors,KNN)等方式进行检索,检索依据为图像的整体描述子(全局描述子)。KNN返回的候选的数量为K,在一般情况下,KNN返回的候选越多(K越大),其召回率越高(召回率为返回的关键帧结果中包含正确的候选的概率)。在实际应用中,图像检索本身不是特别耗时,但是对检索出来的候选帧的后续处理例如sim3变换,、解算位姿等比较耗费时间,考虑到对实时性的要求,K一般被限制在一个比较小的数值,但在K比较小时,单纯的依赖图像检索的结果并且进行后续处理,容易造成定位失败的结果。
具体来说,KNN返回的结果原本的排序是根据描述子之间的距离大小进行排序的。排在越前面的关键帧,其全局描述子的距离(欧氏/hamming/余弦距离,描述子一般是固定长度的一维向量(同种类的描述子长度一样))越小。在各种应用场景中,往往存在许多干扰,比如相似的墙角、相似的拐角等,可能导致排名靠前的top K种包含不少这样的干扰项。另外,同一个地方的关键帧,由于描述的物体类似,描述子也类似,可能导致返回的top K中有数个同一地点的关键帧候选,这个候选可能是对的,也可能是错的,这种对于同一个地点的多个关键帧候选,对后续的定位并没有明显的提升(假设候选是对的,后续处理只要有一帧对的就可以走通流程)。例如假设有三个全局描述子类似的候选地点A,B,C,其对应的关键帧分别为A1,A2,A3,A4……B1,B2,B3……C1,C2,C3……假设C是正确的候选。在第一种情况下,Top K返回的结果可能是A1,B1,A2,B2,C1……;假设K取4,则正确的结果被排除在了外边;第二种情况下,返回的结果可能是A1,A2,A3,A4,A5,C1。A1-A5描述的其实是同一个候选地点,仅需判断A1是否为正确的候选即可。但是由于A1-A5类似,他们被一同排在了前面。导致正确的C被排在了K之外,引起定位的失败,如果通过K的取值变大,可以避免上述两种失败情况,但是后续处理时间会显著增加,对实时应用产生阻碍。
因此需要一种在后续处理例如sim3变换,、解算位姿等的处理时间不变的情况下,即返回给后续处理的关键帧的数量不变的情况下,提高定位成功率的方法和系统。
发明内容
为了克服现有技术缺陷,本发明的目的是提供一种基于关键帧相关性的视觉地图定位方法和系统。为了实现上述目的,本发明采用的技术方案如下:
本发明的一个方面提供了一种基于关键帧相关性的视觉地图定位方法,根据定位帧的全局描述子对所述视觉地图进行图像检索,根据检索结果对所述定位帧进行定位,所述方法还包括利用关键帧相关性对所述图像检索的结果进行处理,根据所述处理结果对所述定位帧进行定位。
优选地,所述利用关键帧相关性对所述图像检索的结果进行处理通过设定关键帧相关系数的阈值对所述图像检索的结果进行筛选。
优选地,所述利用关键帧相关性对所述图像检索的结果进行处理包括以下步骤:
设定对所述处理结果中关键帧的数量;设定所述图像检索返回的关键帧数量大于所设定的处理结果中关键帧的数量;设定所述关键帧相关系数的阈值;
遍历所述图像检索返回的关键帧,如果当前关键帧与所述处理结果中的任意关键帧相关系数都大于所述阈值,则跳过所述当前关键帧,查询下一关键帧;否则,将所述当前关键帧加入所述处理结果;直到所述处理结果中关键帧的数量达到所述设定的处理结果中关键帧的数量。
优选地,所述利用关键帧相关性对所述图像检索的结果进行处理利用所述关键帧相关性对所述图像检索的结果进行加权筛选。
优选地,所述利用关键帧相关性对所述图像检索的结果进行处理包括:
设定对所述处理结果中关键帧的数量;设定所述图像检索返回的关键帧数量大于所设定的处理结果中关键帧的数量;设定所述关键帧相关系数的阈值;
利用所述关键帧相关系数将所述图像检索返回的关键帧划分为不同的地点,根据地点中包含的关键帧的数量从大到小对所述地点进行排序,计算每个关键帧在所在地点中的权重;
按照排序遍历所述地点中的关键帧,从当前地点中挑选权重最小的关键帧加入所述处理结果,并从所述当前地点中移除所述权重最小的关键帧,直到所述处理结果中关键帧的数量达到所述设定处理结果中关键帧的数量。
优选地,所述将所述关键帧划分为不同地点从与所述定位帧描述子距离最小的关键帧开始,按照所述关键帧排序,遍历所述图像检索返回的关键帧,如果当前关键帧与所述地点中的任意位置中的关键帧相关性系数大于所述关键帧相关系数阈值,则将所述当前关键帧插入当前地点中;否则,为所述当前关键帧创建新的地点。
优选地,所述每个关键帧在所在地点中的权重的计算方法为:
当前关键帧的权重=当前关键帧与定位帧的描述子距离/当前关键帧与当前地点中其他关键帧的相关系数的平均值。
本发明的另一个方面提供了一种基于关键帧相关性的视觉地图定位系统,包括定位帧获取模块、提取全局描述子模块、图像检索模块和定位模块,所述系统还包括处理模块,所述处理模块利用关键帧相关性对所述图像检索的结果进行处理,所述定位模块根据所述处理结果对所述定位帧进行定位。
优选地,所述处理模块模块通过设定关键帧相关系数的阈值对所述图像检索的结果进行筛选。
优选地,所述处理模块利用所述关键帧相关性对所述图像检索的结果进行加权筛选。
本发明的基于关键帧相关性的视觉地图定位方法和系统,通过设定关键帧相关系数的阈值或者利用关键帧的相关性对图像检索的结果进行加权筛选,滤除所述图像检索的返回结果的聚集性,在总计算力有限的情况下,保证了更高的图像检索召回率,提升视觉地图定位的成功率。
附图标记说明:10:基于关键帧相关性的视觉地图定位系统;11:定位帧获取模块;12:提取全局描述子模块;13:图像检索模块;14:处理模块;15:定位模块。
附图说明
读者在参照附图阅读了本发明的具体实施方式以后,将会更加清楚地了解本发明的各个方面。其中,
图1为本发明的一个实施例的基于关键帧相关性的视觉地图定位方法的总体流程图;
图2为本发明的一个实施例的利用关键帧相关性对所述图像检索的结果进行处理的流程图;
图3为本发明的另一个实施例的利用关键帧相关性对所述图像检索的结果进行处理的流程图。
图4为本发明的一个实施例的基于关键帧相关性的视觉地图定位系统的系统结构图。
具体实施方式
为了使本申请所揭示的技术内容更加详尽与完备,可参照附图以及本发明的下述具体实施例。然而,本技术领域的普通技术人员应当理解,下文中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。
下面参照附图,对本发明各个方面的具体实施方式作进一步的详细描述。
本发明的一个方面提供了一种基于关键帧相关性的视觉地图定位方法,根据定位帧的全局描述子对所述视觉地图进行图像检索,利用关键帧相关性对所述图像检索的结果进行处理,根据所述处理结果对所述定位帧进行定位。请配合参阅图1为本发明的一个实施例的基于关键帧相关性的视觉地图定位方法的总体流程图,具体地,所述方法包括定位帧获取S1、提取全局描述子S2、图像检索S3、利用关键帧相关性对所述图像检索的结果进行处理S4和定位S5,其中:
相机拍摄到一幅画面,所述定位帧获取S1获取所述定位帧的画面(RGB图像或者灰度图像)以及拍摄该画面的相机参数(焦距,光心等,主要用于后续位姿解算);
所述提取全局描述子S2计算所述定位帧的描述子;
所述图像检索S3将所述定位帧的描述子与所述视觉地图中的关键帧的描述子进行对比,找出与当前定位帧的描述子的距离最小的候选;所述图像检索S3一般采用KNN(K-Nearest-Neighbor)算法返回K个与所述定位帧距离最相近的结果,KNN返回的结果一般按距离从小到大排序,即TOP1的关键帧和定位帧描述子距离最小,彼此最相似;
所述利用关键帧相关性对所述图像检索的结果进行处理S4对所述KNN返回的结果进行重新筛选处理;
所述定位S5根据所述重新筛选处理过的结果计算所述定位帧的位姿,对所述定位帧进行定位。
具体地,所述关键帧的相关性在所述视觉地图的建图过程中构建,所述利用关键帧相关性对所述图像检索的结果进行处理S4调用所述关键帧相关性对所述图像检索S3的结果进行处理。
请参阅图2为本发明的一个实施例的利用关键帧相关性对所述图像检索的结果进行处理的流程图。
在本实施例中,所述利用关键帧相关性对所述图像检索的结果进行处理S4通过设定关键帧相关系数的阈值对所述图像检索S3的结果进行筛选。
在本实施例中,所述利用关键帧相关性对所述图像检索的结果进行处理S4包括:
设定对所述处理结果中关键帧的数量;设定所述图像检索S3返回的关键帧数量大于所设定的处理结果中关键帧的数量;设定所述关键帧相关系数的阈值;
遍历所述图像检索S3返回的关键帧,如果当前关键帧与所述处理结果中的任意关键帧相关系数都大于所述阈值,则跳过所述当前关键帧,查询下一关键帧;否则,将所述当前关键帧加入所述处理结果;直到所述处理结果中关键帧的数量达到所述设定的处理结果中关键帧的数量。
具体地,所述利用关键帧相关性对所述图像检索的结果进行处理S4的步骤如下:
1)设定初始数据S41:
设定对所述图像检索S3的结果进行处理后返回的处理结果中关键帧的数量,具体地,假设所述定位S5处理的需求为k帧,则设定的处理结果中关键帧的数量为k;
利用所述图像检索S3返回一组关键帧,所述图像检索S3返回的关键帧数量大于设定的处理结果中关键帧的数量,具体地,由于要对所述图像检索S3的结果进行筛选和排序,如果所述图像检索S3返回关键帧数量还是k个,对后续结果不会有提升,因此,所述图像检索S3返回的关键帧数量要大于k,假设利用图像检索S3返回的关键帧为K
预设所述处理结果的初始值为空,具体地,假设处理结果的关键帧集合为Q;
预设所述关键帧相关系数的阈值,具体地,所述相关系数阈值为d;
2)遍历所述图像检索返回的关键帧S42:
如果当前关键帧与所述处理结果中的任意关键帧相关系数都大于所述阈值,则跳过所述当前关键帧,查询下一关键帧;
否则,将所述当前关键帧加入所述处理结果;
3)判断所述处理结果中关键帧的数量是否达到所述设定的处理结果中关键帧的数量S43:
如果所述处理结果中关键帧的数量达到所述设定处理结果中的关键帧的数量,则将所述处理结果发送至所述定位S5;
如果所述处理结果中关键帧的数量没有达到所述设定处理结果中关键帧的数量,返回所述遍历所述图像检索返回的关键帧S42。
本实施例的具体算法如下:
1)令Q为空,i=0;
2)筛选K
3)i=i+1;
4)如果Q中关键帧的数量达到k或者i>l,则输出Q至所述定位,否则返回2)。
在本实施例中,利用关键帧的相关性滤除所述图像检索S3返回关键帧的聚集性,提高了后续定位的召回率。
在本实施例中,通过两个关键帧之间共享的3D点云的数量多少计算所述关键帧相关性。在视觉三维地图创建的过程中计算并存储关键帧相关系数,具体地,用集合C表示关键帧相关系数,C
在本实施例中,通过两个关键帧之间的重合部分的占比计算所述关键帧相关性。在视觉三维地图创建的过程中计算并存储关键帧相关系数,具体地,将关键帧A1划分为N个网格,若单个网格内存在与关键帧A2共同观测到的3D点,则将该网格置1,否之则置零。假设最终被置1的网格数量为M,则关键帧A1与关键帧A2的相关系数C12=M/N,以此类推。这种计算方法相较于简单的统计3D点云数量,更好的衡量了关键帧之间的重合关系。
在本实施例中,所述定位S5通过sim3解算或利用局部特征点进行位姿求解,对所述定位帧进行定位。
请参阅图3为本发明的另一个实施例的利用关键帧相关性对所述图像检索的结果进行处理的流程图。
在本实施例中,所述利用关键帧相关性对所述图像检索的结果进行处理S4利用所述关键帧相关性对所述图像检索S3的结果进行加权筛选。
在本实施例中,所述利用关键帧相关性对所述图像检索的结果进行处理S4包括:
设定所述处理结果中关键帧的数量;设定所述图像检索S3返回的关键帧数量大于所设定的处理结果中关键帧的数量;设定所述关键帧相关系数的阈值;
利用所述关键帧相关系数将所述图像检索S3返回的关键帧划分为不同的地点,根据地点中包含的关键帧的数量从大到小对所述地点进行排序,计算每个关键帧在所在地点中的权重;
按照排序遍历所述地点中的关键帧,从当前地点中挑选权重最小的关键帧加入所述处理结果,并从所述当前地点中移除所述权重最小的关键帧,直到所述处理结果中关键帧的数量达到所述设定处理结果中关键帧的数量。
具体地,所述利用关键帧相关性对所述图像检索的结果进行处理S4的步骤如下:
1)设定初始数据S41:
设定对所述图像检索S3的结果进行处理后返回的处理结果中关键帧的数量,具体地,假设所述定位S5处理的需求为k帧,则设定的处理结果中关键帧的数量为k;
利用所述图像检索S3返回一组关键帧,所述图像检索S3返回的关键帧数量大于设定的处理结果中关键帧的数量,具体地,由于要对所述图像检索S3的结果进行筛选和排序,如果所述图像检索S3返回关键帧数量还是k个,对后续结果不会有提升,因此,所述图像检索S3返回的关键帧数量要大于k,假设利用图像检索S3返回K
预设所述处理结果的初始值为空,具体地,假设处理结果的关键帧集合为Q;
预设所述关键帧相关系数的阈值,具体地,所述相关系数阈值为d;
2)利用关键帧相关系数对所述图像检索返回的关键帧进行分类排序S44:将所述图像检索返回的关键帧划分为不同的地点,根据每个地点中包含的关键帧的数量对所述地点进行排序,包含的关键帧的数量越多的地点排名越靠前。具体地,假设所述地点的集合为P,所述关键帧划分为地点P
3)分别计算每一个地点中每一个关键帧的权重S45,假设所述权重为E;
4)遍历所述地点S46:按照所述地点的排序顺序逐个遍历所述地点中的关键帧,从当前地点中挑选权重最小的关键帧加入所述处理结果,并从所述当前地点中移除所述权重最小的关键帧。具体地,按照排序,首先从P
5)判断所述处理结果中关键帧的数量S43:
如果所述处理结果中关键帧的数量达到所述设定处理结果中关键帧的数量,则将所述处理结果发送至所述定位S5;
如果所述处理结果中关键帧的数量没有达到所述设定处理结果中关键帧的数量,则返回所述遍历所述地点S46。
在本实施例中,所述将所述关键帧划分为不同地点从与所述定位帧描述子距离最小的关键帧开始,按照所述关键帧排序,遍历所述图像检索S3返回的关键帧,如果当前关键帧与所述地点中的任意位置中的关键帧相关性系数大于所述关键帧相关系数阈值d,则将所述当前关键帧插入当前地点中;否则,为所述当前关键帧创建新的地点。
具体地,所述利用关键帧相关系数对所述图像检索返回的关键帧进行分类排序S44的步骤如下:
1)预设当前地点为空;
2)以当前关键帧与定位帧的描述子距离对所述图像检索S3返回的关键帧进行排序;
3)从所述与定位帧描述子距离最小的关键帧开始,按照所述关键帧排序,遍历所述图像检索S3返回的关键帧:
如果当前关键帧与所述地点中的任意位置中的关键帧相关性系数大于所述关键帧相关系数阈值d,则将所述当前关键帧插入当前地点中;否则,为所述当前关键帧创建新的地点。
4)利用地点中关键帧的数量对地点进行排序,如果两个以上地点的关键帧数量相等,则根据地点中的关键帧与所述定位帧的描述子距离的平均值进行排序,描述子距离的平均值越小的地点排名越靠前。
在本实施例中,所述每个关键帧在所在地点中的权重的计算方法为:
当前关键帧的权重=当前关键帧与定位帧的描述子距离/当前关键帧与当前地点中其他关键帧的相关系数的平均值。
具体地,所述分别计算每一个地点中每一个关键帧的权重S45的步骤如下:
1)计算当前地点中的当前关键帧与所述当前地点中其他关键帧的相关系数的平均值,如果当前地点中只包含一个关键帧,则所述当前关键帧与所述当前地点中的其他关键帧的相关系数的平均值为1;
2)计算所述当前关键帧的权重:
当前关键帧的权重=当前关键帧与定位帧的描述子距离/相关系数的平均值。
本实施例的具体算法如下:
1)令Q为空,i=0;
2)利用关键帧相关性系数对l个关键帧进行分类,得到P
(1)令P为空;
(2)从K
(3)利用P中地点的关键帧的数量进行排序,使得P
3)计算P
(1)以P
(2)计算K
(3)计算K
(4)计算K
(5)如果当前集合P
4)从P
5)如果i等于j,则令i=1,否则i=i+1;
6)若Q中数量达到k,则输出Q至所述定位S5,否则返回4)。
上述算法的基本思想是在所有的候选地点P中,P
在本实施例中,通过两个关键帧之间共享的3D点云的数量多少计算所述关键帧相关性。在视觉三维地图创建的过程中计算并存储关键帧相关系数,具体地,用集合C表示关键帧相关系数,C
在本实施例中,通过两个关键帧之间的重合部分的占比计算所述关键帧相关性。在视觉三维地图创建的过程中计算并存储关键帧相关系数,具体地,将关键帧A1划分为N个网格,若单个网格内存在与关键帧A2共同观测到的3D点,则将该网格置1,否之则置零。假设最终被置1的网格数量为M,则关键帧A1与关键帧A2的相关系数C
在本实施例中,所述定位S5通过sim3解算或利用局部特征点进行位姿求解,对所述定位帧进行定位。
请参阅图4为本发明的一个实施例的基于关键帧相关性的视觉地图定位系统的系统结构图。本发明的另一个方面提供了一种基于关键帧相关性的视觉地图定位系统10,包括定位帧获取模块11、提取全局描述子模块12、图像检索模块13和定位模块15,所述系统还包括处理模块14,所述处理模块14利用关键帧相关性对所述图像检索13的结果进行处理,所述定位模块15根据所述处理结果对所述定位帧进行定位。
在本实施例中,所述处理模块14通过设定关键帧相关系数的阈值对所述图像检索13的结果进行筛选。
在本实施例中,所述处理模块14利用所述关键帧相关性对所述图像检索13的结果进行加权筛选。
本发明的基于关键帧相关性的视觉地图定位方法和系统,通过设定关键帧相关系数的阈值或者利用关键帧的相关性对图像检索的结果进行加权筛选,滤除所述图像检索的返回结果的聚集性,在总计算力有限的情况下,保证了更高的图像检索召回率,提升视觉地图定位的成功率。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所做的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员而言,在上述说明的基础上还可以做出其他不同形式的变化或变动,本发明所例举的实施例无法对所有的实施方式予以穷尽,凡是属于本发明的技术方案所引申出的显而易见的变化或变动仍处于本发明的保护范围之列。在本发明中提及的所有文献都在本申请中引用作为参考,就如同一篇文献被单独引用为参考那样。
机译: 一种基于实时特征的运动分析方法和系统,用于从视频中选择关键帧
机译: 一种基于实时特征的运动分析方法和系统,用于从视频中选择关键帧
机译: 一种基于实时特征的运动分析方法和系统,用于从视频中选择关键帧