图像序列重定位判断方法、装置和计算机设备
文献发布时间:2023-06-19 11:29:13
技术领域
本发明涉及视觉重定位技术领域,特别涉及一种基于空间校验的图像序列重定位判断方法、装置和计算机设备。
背景技术
视觉重定位是扫地机器人学中的重要技术,是解决回环优化、扫地机器人绑架等问题的关键步骤。在环境冗余度很高的场景下,如室内场景,容易发生重定位错误,对整体的定位建图效果产生非常恶劣的影响。故在重定位的过程中要进行非常严格的检查,一旦发现异常则立即放弃该重定位结果。检查方法主要为序列校验方法,现有的序列校验方法是基于时域信息的方法,其基本思想是:时间上连续发生的两次重定位A与B,A的匹配帧M
发明内容
本发明的主要目的为提供一种基于空间校验的图像序列重定位判断方法、装置和计算机设备,旨在解决现有技术中误淘汰一部分正确的重定位的技术问题。
本发明提出一种基于空间校验的图像序列重定位判断方法,包括:
获取扫地机器人在一次运行中发生重定位的若干个地点,作为重定位集合;
选取重定位集合中任意两个地点,并获取两个地点的图像帧,记为帧A、帧B;
在历史地图中匹配与帧A对应的关键帧,记为帧M
计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值;其中,两个图像帧为帧A、帧B,两个关键帧为帧M
判断第一相对位姿值和第二相对位姿值的差值是否在设定阈值范围内,若是,则校验成功,若否,则校验失败;
获取重定位集合中校验成功的所有地点,作为子集合;
判断子集合的大小是否在设定阈值范围内,若是,则重定位成功,若否,则重定位失败。
进一步地,所述计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值的步骤包括:
根据帧A、帧B、帧M
根据帧M
进一步地,在历史地图中匹配与帧A对应的关键帧,记为帧M
创建历史地图,所述历史地图中包括三维地图点信息和扫地机器人运行到地图中所有地点的关键帧;所述关键帧中存储有扫地机器人运行至该地点时采集的图像、该地点的位姿、图像中的特征点、特征点与三维地图点的匹配关系,所述三维地图点中存储有该三维地图点的三维位置。
进一步地,所述根据帧A、帧B、帧M
计算帧A与帧B的相对位姿T(A,B)、帧A与帧M
根据T(A,B)、T(A,M
进一步地,所述帧A与帧M
在帧A与帧M
获取帧M
通过匹配关系的传递性,得到帧A的特征点与三维地图点的匹配关系;
当获取到至少四对匹配关系,利用所有匹配对中特征点的二维位置和三维位置,选择任意一种求解pnp问题的算法解出T(A,M
所述帧B与帧M
在帧B与帧M
获取帧M
通过匹配关系的传递性,得到帧B的特征点与三维地图点的匹配关系;
当获取到至少四对匹配关系,利用所有匹配对中特征点的二维位置和三维位置,选择任意一种求解pnp问题的算法解出T(B,M
进一步地,所述根据帧M
获取历史地图中帧M
根据T(M
进一步地,所述根据T(A,B)、T(A,M
T(M
其中,*为矩阵乘法,T(A,M
进一步地,所述根据T(M
T′(M
其中,*为矩阵乘法,T(M
本发明还提供了一种基于空间校验的图像序列重定位判断装置,包括:
第一获取模块,用于获取扫地机器人发生重定位的若干个地点,作为重定位集合;
选取模块,用于选取重定位集合中任意两个地点,并获取两个地点的图像帧,记为帧A、帧B;
匹配模块,用于在历史地图中匹配与帧A对应的关键帧,记为帧M
第一计算模块,用于计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值;其中,两个图像帧为帧A、帧B,两个关键帧为帧M
第一判断模块,用于判断第一相对位姿值和第二相对位姿值的差值是否在设定阈值范围内,若是,则校验成功,若否,则校验失败;
第二获取模块,用于获取重定位集合中校验成功的所有地点,作为子集合;
第二判断模块,用于判断子集合的大小是否在设定阈值范围内,若是,则重定位成功,若否,则重定位失败。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明的有益效果为:选取重定位集合中的任意两个地点A、B、并获取两个地点的图像帧,即帧A、帧B,两个地点的关键帧,即帧M
附图说明
图1为本发明一实施例的方法流程示意图。
图2为本发明一实施例的装置结构示意图。
图3为本发明一实施例的计算机设备内部结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本实施例提供了一种基于空间校验的图像序列重定位判断方法,包括如下步骤:
S1、获取扫地机器人在一次运行中发生重定位的若干个地点,作为重定位集合;
S2、选取重定位集合中任意两个地点,并获取两个地点的图像帧,记为帧A、帧B;
S3、在历史地图中匹配与帧A对应的关键帧,记为帧M
S4、计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值;其中,两个图像帧为帧A、帧B,两个关键帧为帧M
S5、判断第一相对位姿值和第二相对位姿值的差值是否在设定阈值范围内,若是,则校验成功,若否,则校验失败;
S6、获取重定位集合中校验成功的所有地点,作为子集合;
S7、判断子集合的大小是否在设定阈值范围内,若是,则重定位成功,若否,则重定位失败。
如上述步骤S1所述,扫地机器人发生重定位的若干个地点,是扫地机器人在一次运行过程中连续发生的若干个重定位的地点。例如,扫地机器人在运行过程中,依次经过A地点、B地点、C地点、D地点、E地点、F地点,且在上述A地点、B地点、C地点、D地点、E地点、F地点均初判为发生了重定位的地点,则A地点、B地点、C地点、D地点、E地点、F地点组成一个数学意义上的集合,称为重定位集合。
如上述步骤S2所述,选取重定位集合中任意两个地点,如A点和B点,并获取A点和B点的图像帧;其中,扫地机器人在运行过程中会一直连续不断的获得图像,如此,当扫地机器人运行到A点和B点时,也会获得图像,本实施例获取扫地机在A点和B点拍摄的图像,分别记为帧A、帧B。
如上述步骤S3所述,在历史地图中匹配与帧A对应的关键帧,记为帧M
词袋,也就是Bag-of-Words(BoW),目的是用“图像上有哪几种特征”来描述一个图像。例如,如果某个照片,里面有一个人、一辆车;而另一张则有两个人、一只狗。根据这样的描述,可以度量这两个图像的相似性。再具体一些,要做以下几件事:1.确定“人、车、狗”等概念——对应于BoW中的“单词”(Word),许多单词放在一起,组成了“字典”(Dictionary)。2.确定一张图像中,出现了哪些在字典中定义的概念——我们用单词出现的情况(或直方图)描述整张图像。这就把一个图像转换成了一个向量的描述。3.比较上一步中的描述的相似程度。
如上述步骤S4所述,计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值。其中,可以根据帧A、帧B、帧M
可以理解的是,步骤S4中的相对位姿值的计算组合方式为将帧A、帧B、帧M
需要说明的是,本实施例中,主要以帧M
如上述步骤S5所述,判断第一相对位姿值和第二相对位姿值的差值,即判断T(M
如上述步骤S6所述,获取重定位集合中校验成功的所有地点,作为子集合,根据上述描述,扫地机器人在运行过程中,连续经过A地点、B地点、C地点、D地点、E地点、F地点,此为定义的重定位集合;若集合中A地点与B地点,A地点与C地点,B地点与C地点,A地点与E地点,B地点与E地点,C地点与E地点,D地点与E地点,如上列出的所有两两之间均校验成功,那么A地点、B地点、C地点、D地点、E地点则组成一个子集合,在此过程中,F地点也会与其中的A地点、B地点、C地点、D地点、E地点进行分别校验,若F地点与其中的一个或几地点校验成功,但与其中至少一个地点校验失败,那么F地点不能作为子集合中的一个。即,子集合中的任意两个地点之间均是校验成功的。若一个集合中,其中任意两个地点之间都能够校验成功,则称该集合是空间一致的,如上,上述A地点、B地点、C地点、D地点、E地点组成的子集合是空间一致的。
如上述步骤S7所述,判断子集合的大小是否在设定阈值范围内,为子集合设定阈值范围,子集合最大的阈值为重定位集合,因此,主要是设置子集合最小的阈值,。例如,将阈值设定为四,表示子集合中至少有四个数据,若子集合中只具有两个或三个数据,其重定位是失败的。主要是为了防止数据太少,而这少部分数据是偶然出现的情况,导致最后的结果判断错误。若判断得到子集合满足阈值条件,则表示重定位成功,根据上述可知,子集合是空间一致的,即其中任意两个地点都能够校验成功,因此,接受满足阈值条件的子集合的所有地点为正确的地点;若判断得到子集合不满足阈值条件,则表示重定位失败,不接受其集合中的地点。
本实施例提供的基于空间校验的图像序列重定位判断方法,选取重定位集合中的任意两个地点A、B,通过两种不同途径获取选取的两个地点的相对位姿。第一个途径是基于两次重定位结果并结合历史地图的数据获取,第二个途径是从重定位前的历史地图中获取。判断这两个不同渠道获取的相对位姿结果是否在设定阈值内,若在设定的阈值内,则表示校验成功,将校验成功的结果组成一个子集合,该子集合中任意两个数据的校验结果均应该是成功的,判断若该子集合的大小满足设定阈值,则重定位成功,子集合中的所有结果均是通过校验的,相比于基于时域信息的校验方法,能够更精准地剔除错误的重定位结果,保留正确的重定位结果。
在一个实施例中,所述计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值的步骤包括:
S41、根据帧A、帧B、帧M
S42、根据帧M
如上步骤S41所述,根据帧A、帧B、帧M
如上步骤S42所述,根据帧M
在一个实施例中,所述在历史地图中匹配与帧A对应的关键帧,记为帧M
创建历史地图,所述历史地图中包括三维地图点信息和扫地机器人运行到地图中所有地点的关键帧;所述关键帧中存储有扫地机器人运行至该地点时采集的图像、该地点的位姿、图像中的特征点、特征点与三维地图点的匹配关系,所述三维地图点中存储有该三维地图点的三维位置。
如上所述,该历史地图为三维地图,扫地机器人运行至所有地点指的是扫地机运行的包括在地图上的地点,在每个地点均会拍摄图像,将最能代表当前地点的一帧图像作为该地点的关键帧,该关键帧中包含有当前图像、当前地点的位姿、图像中的特征点、图像中的特征点与三维地图点的匹配关系。其中,当前地点的位姿是在机器人运行过程中通过多种或单种传感器计算出,不同的传感器的计算方法不同。例如,可以用轮子里程计定位,可以用激光定位,可以用摄像头加imu定位,可以用轮子里程计加imu+摄像头定位,可以用激光加imu加轮子里程计+摄像头定位,还可以加上gps定位。图像中的特征点、图像中的特征点与三维地图点的匹配关系均可以通过现有的技术获得,用于后续计算当前地点的图像帧与匹配帧之间的相对位姿。三维地图点中存储有该三维地图点的三维位置,该三维位置具体表示为三维坐标,同样用于后续计算当前地点与当前地点的图像帧与匹配帧之间的相对位姿。
在一个实施例中,所述根据帧A、帧B、帧M
S411、计算帧A与帧B的相对位姿T(A,B)、帧A与帧M
S412、根据T(A,B)、T(A,M
如上述步骤S411所述,其中帧A与帧B的相对位姿T(A,B),是扫地机器人从A运行到B的过程中,通过若干种传感器融合的方式计算得到,在扫地机器人运行的过程中,传感器在不断的进行计算,得到最终的结果;这些传感器包括相机、轮子编码器、IMU、雷达、激光雷达等。T(A,M
如上述步骤S412所述,计算出帧M
在一个实施例中,所述帧A与帧M
步骤一、在帧A与帧M
步骤二、获取帧M
步骤三、通过匹配关系的传递性,得到帧A的特征点与三维地图点的匹配关系;
步骤四、当获取到至少四对匹配关系,利用所有匹配对中特征点的二维位置和三维位置,选择任意一种求解pnp问题的算法解出T(A,M
所述帧B与帧M
步骤一、在帧B与帧M
步骤二、获取帧M
步骤三、通过匹配关系的传递性,得到帧B的特征点与三维地图点的匹配关系;
步骤四、当获取到至少四对匹配关系,利用所有匹配对中特征点的二维位置和三维位置,选择任意一种求解pnp问题的算法解出T(B,M
如上述步骤一、步骤二、步骤三、步骤四所述,计算相对位姿需要当前帧(即运行到当前地点的图像帧,如帧A、帧B)的特征点与历史地图中的三维地图点的匹配关系。我们先在帧A和帧M
T(A,M
基于深度学习的方法主要使用深度神经网络来计算相机位姿。PoseNet使用端到端的训练模型直接预测相机位姿,可以捕获上下文特征,相比sift特征方法更加鲁棒;且速度快,可扩展性强,不需要大型地标数据库。PoseNet2在前作的基础上,引进几何损失函数项,提高了其重定位性能。然而,相比与基于传统特征点的重定位方法,使用深度学习模型直接预测相机位姿的方法由于使用CNN代替了几何技术进行匹配,丢弃了几何信息,其定位精度有所下降。此外,由于本质上CNN学习的是像素点与位姿之间的映射,而位姿是依赖于所选择的坐标系的,因此当不同场景中坐标系不同时,要想CNN直接预测相机的绝对位姿,需要将CNN分场景训练好然后应用到对应的任务中,极大地限制了其应用。
在一个实施例中,所述根据帧M
S421、获取历史地图中帧M
S422、根据T(M
如上述步骤S421所述,在前述步骤中创建了历史地图,其中存储有各个关键帧的位姿,在步骤S3中已经将获取的帧A与历史地图中的数据进行匹配,得到了帧A的匹配帧,记为帧M
如上述步骤S422所述,计算出的帧M
在一个实施例中,所述根据T(A,B)、T(A,M
T(M
其中,*为矩阵乘法,T(A,M
如上所述,T(A,M
在一个实施例中,所述根据T(M
T′(M
其中,*为矩阵乘法,T(M
如上所述,T(M
如图2所示,本发明还提供了一种基于空间校验的图像序列重定位判断装置,包括:
第一获取模块1,用于获取扫地机器人在一次运行中发生重定位的若干个地点,作为重定位集合;
选取模块2,用于选取重定位集合中任意两个地点,并获取两个地点的图像帧,记为帧A、帧B;
匹配模块3,用于在历史地图中匹配与帧A对应的关键帧,记为帧M
计算模块4,计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值;其中,两个图像帧为帧A、帧B,两个关键帧为帧M
第一判断模块5,用于判断第一相对位姿值和第二相对位姿值的差值是否在设定阈值范围内,若是,则校验成功,若否,则校验失败;
第二获取模块6,用于获取重定位集合中校验成功的所有地点,作为子集合;
第二判断模块7,用于判断子集合的大小是否在设定阈值范围内,若是,则重定位成功,若否,则重定位失败。
在一个实施例中,上述计算模块4中,计算两个图像帧或两个关键帧的第一相对位姿值和第二相对位姿值,或计算图像帧和与其对应的关键帧的第一相对位姿值和第二相对位姿值的步骤包括:
实际计算单元,根据帧A、帧B、帧M
理论计算单元,根据帧M
在一个实施例中,上述匹配模块3中,所述在历史地图中匹配与帧A对应的关键帧,记为帧M
创建历史地图,所述历史地图中包括三维地图点信息和扫地机器人运行到地图中所有地点的关键帧;所述关键帧中存储有扫地机器人运行至该地点时采集的图像、该地点的位姿、图像中的特征点、特征点与三维地图点的匹配关系,所述三维地图点中存储有该三维地图点的三维位置。
在一个实施例中,上述实际计算单元中,所述根据帧A、帧B、帧M
第一计算单元,用于计算帧A与帧B的相对位姿T(A,B)、帧A与帧M
第二计算单元,用于根据T(A,B)、T(A,M
在一个实施例中,上述第一计算单元中,所述帧A与帧M
在帧A与帧M
获取帧M
通过匹配关系的传递性,得到帧A的特征点与三维地图点的匹配关系;
当获取到至少四对匹配关系,利用所有匹配对中特征点的二维位置和三维位置,选择任意一种求解pnp问题的算法解出T(A,M
所述帧B与帧M
在帧B与帧M
获取帧M
通过匹配关系的传递性,得到帧B的特征点与三维地图点的匹配关系;
当获取到至少四对匹配关系,利用所有匹配对中特征点的二维位置和三维位置,选择任意一种求解pnp问题的算法解出T(B,M
在一个实施例中,上述理论计算单元中,所述根据帧M
第一获取单元,用于获取历史地图中帧M
第三计算单元,用于根据T(M
在一个实施例中,上述第二计算单元中,所述根据T(A,B)、T(A,M
T(M
其中,*为矩阵乘法,T(A,M
在一个实施例中,上述第三计算单元中,所述根据T(M
T′(M
其中,*为矩阵乘法,T(M
如图3所示,本发明还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于空间校验的图像序列重定位判断方法的过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于空间校验的图像序列重定位判断方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个基于空间校验的图像序列重定位判断方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
- 图像序列重定位判断方法、装置和计算机设备
- 设备重定位方法、装置、计算机设备和存储介质