定位方法、定位装置、可读存储介质及电子设备
技术领域
本公开涉及计算机视觉技术,具体地,涉及一种定位方法、定位装置、可读存储介质及电子设备。
背景技术
在机器人导盲、无人驾驶、增强现实(Augmented Reality,AR)等很多领域,都需要用到环境地图,因此,需要对某一区域进行地图构建,以及在该区域移动时需要即时定位。基于视觉的同步定位与地图构建(VSLAM,Visual Simultaneous localization andmapping)是指根据视觉传感器的信息,一边计算自身位置,一边构建环境地图的过程,解决在未知环境下运动时的定位与地图构建问题。
在相关技术中,多是基于地图中存储的关键帧图像进行定位的,如此,就需要首先在地图中存储的多个关键帧图像中确定出与当前帧图像相匹配的关键帧图像,利用该关键帧图像进行粗定位以得到一局部地图,之后,再将当前帧图像与该局部地图中包括的地图点进行匹配,精确定位移动设备的位置。由于地图中存储的关键帧图像不连续,所以,使用地图中关键帧图像进行粗定位时,移动设备的位置只能在某一关键帧图像的位姿的一定范围内,超出该范围后,就无法实现定位。因此,现有的定位效率较低。
发明内容
本公开的目的是提供一种定位方法、定位装置、可读存储介质及电子设备,以提高定位的效率。
为了实现上述目的,本公开第一方面提供一种定位方法,包括:
获取移动设备上的视觉传感器拍摄的图像序列;
针对获取到的每一图像,提取该图像的特征信息;并
将该图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配,所述目标平面为该图像在所述图像序列中的前一图像的位姿对应的平面;
确定与该图像的特征信息相匹配的投影点对应的目标地图点;
根据所述目标地图点在所述地图中的位置信息确定所述移动设备的定位信息。
可选地,在所述将该图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配之前,所述方法还包括:
根据投影点与地图点的对应关系、以及所述前一图像的位姿中的姿态角,从所述地图点的特征信息集合中确定所述投影点的特征信息。
可选地,所述将该图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配,包括:
获取地图点在所述目标平面上的投影点的位置信息;
根据所述投影点的位置信息和预设区域,确定位于所述预设区域内的投影点,所述预设区域以所述前一图像的位姿中的位置为中心,且预设区域的尺寸大于所述图像的尺寸;
将该图像的特征信息与位于所述预设区域内的投影点的特征信息进行匹配。
可选地,所述图像的特征信息包括所述图像的特征点的特征信息;所述投影点的特征信息与地图点的特征信息集合具有对应关系;所述确定与该图像的特征信息相匹配的投影点对应的目标地图点,包括:
确定与所述图像的特征点的特征信息相匹配的投影点的特征信息;
根据所述对应关系,确定与所述相匹配的投影点的特征信息对应的目标特征信息集合;
根据所述目标特征信息集合确定目标地图点。
可选地,所述地图点通过以下方式确定:
获取所述地图点的位置信息和包含该地图点对应的像素点的N帧图像,其中,所述N帧图像各自对应的所述图像的位姿不同,N为大于1的整数;
根据所述N帧图像中所述对应的像素点的特征信息,确定所述地图点的特征信息集合。
可选地,所述根据所述N帧图像中所述对应的像素点的特征信息,确定所述地图点的特征信息集合,包括:
分别确定所述N帧图像各自的姿态角;
根据每帧所述图像的位姿角,以及所述对应的像素点的特征信息,确定所述地图点的特征信息集合,所述特征信息集合包括N个所述姿态角和与该N个所述姿态角分别对应的N个所述对应的像素点的特征信息。
可选地,N为大于2的整数;所述获取地图点的位置信息,包括:
根据N帧所述图像中的任两帧图像,确定该地图点的第一位置信息;
根据N帧所述图像,对所述地图点进行N次观测,以得到所述地图点的N个第一位置信息;
根据N个所述第一位置信息和以下公式,确定所述地图点的第二位置信息:
其中,i取值范围为[1,N],Ai表征对所述地图点进行第i次观测得到的且满足公式(1)的第一位置信息,d表征预设数值,表征所述地图点的N个所述第一位置信息的平均位置信息,表征所述地图点的第二位置信息,W表征在N个所述第一位置信息中满足公式(1)的Ai的数量,αi表征Ai对应的系数;
将所述第二位置信息确定为所述地图点的位置信息。
本公开第二方面提供一种定位装置,包括:
第一获取模块,用于获取移动设备上的视觉传感器拍摄的图像序列;
提取模块,用于针对获取到的每一图像,提取该图像的特征信息;并
匹配模块,用于将该图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配,所述目标平面为该图像在所述图像序列中的前一图像的位姿对应的平面;
第一确定模块,用于确定与该图像的特征信息相匹配的投影点对应的目标地图点;
第二确定模块,用于根据所述目标地图点在所述地图中的位置信息确定所述移动设备的定位信息。
可选地,所述装置还包括:
第三确定模块,用于根据投影点与地图点的对应关系、以及所述前一图像的位姿中的姿态角,从所述地图点的特征信息集合中确定所述投影点的特征信息。
可选地,所述匹配模块包括:
获取子模块,用于获取地图点在所述目标平面上的投影点的位置信息;
第一确定子模块,用于根据所述投影点的位置信息和预设区域,确定位于所述预设区域内的投影点,所述预设区域以所述前一图像的位姿中的位置为中心,且预设区域的尺寸大于所述图像的尺寸;
匹配子模块,用于将该图像的特征信息与位于所述预设区域内的投影点的特征信息进行匹配。
可选地,所述图像的特征信息包括所述图像的特征点的特征信息;所述投影点的特征信息与地图点的特征信息集合具有对应关系;所述第一确定模块包括:
第二确定子模块,用于确定与所述图像的特征点的特征信息相匹配的投影点的特征信息;
第三确定子模块,用于根据所述对应关系,确定与所述相匹配的投影点的特征信息对应的目标特征信息集合;
第四确定子模块,用于根据所述目标特征信息集合确定目标地图点。
可选地,所述装置还包括:
第二获取模块,用于获取所述地图点的位置信息和包含该地图点对应的像素点的N帧图像,其中,所述N帧图像各自对应的所述图像的位姿不同,N为大于1的整数;
第四确定模块,用于根据所述N帧图像中所述对应的像素点的特征信息,确定所述地图点的特征信息集合。
可选地,所述第四确定模块包括:
第五确定子模块,用于分别确定所述N帧图像各自的姿态角;
第六确定子模块,用于根据每帧所述图像的位姿角,以及所述对应的像素点的特征信息,确定所述地图点的特征信息集合,所述特征信息集合包括N个所述姿态角和与该N个所述姿态角分别对应的N个所述对应的像素点的特征信息。
可选地,N为大于2的整数;所述第二获取模块包括:
第七确定子模块,用于根据N帧所述图像中的任两帧图像,确定该地图点的第一位置信息;
观测子模块,用于根据N帧所述图像,对所述地图点进行N次观测,以得到所述地图点的N个第一位置信息;
第八确定子模块,用于根据N个所述第一位置信息和以下公式,确定所述地图点的第二位置信息:
其中,i取值范围为[1,N],Ai表征对所述地图点进行第i次观测得到的且满足公式(1)的第一位置信息,d表征预设数值,表征所述地图点的N个所述第一位置信息的平均位置信息,表征所述地图点的第二位置信息,W表征在N个所述第一位置信息中满足公式(1)的Ai的数量,αi表征Ai对应的系数;
第九确定子模块,用于将所述第二位置信息确定为所述地图点的位置信息。
本公开第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所提供的所述方法的步骤。
本公开第四方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开第一方面所提供的所述方法的步骤。
通过上述技术方案,可以将图像的特征信息与地图点在前一图像的位姿对应的平面的投影点的特征信息进行匹配,并根据投影点与地图点的对应关系,确定出与该图像的特征信息相匹配的目标地图点,进而根据目标地图点的位置信息确定移动设备的定位信息。如此,由于是将地图点在前一图像的位姿对应的平面进行投影,得到与该图像的特征信息进行匹配的投影点的特征信息,无需利用建图中保存的非连续关键帧图像进行粗定位,所以,可以提高移动设备的定位范围,提高定位的效率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种相关技术中建图和定位的示意图。
图2是根据一示例性实施例示出的一种定位方法的流程图。
图3是根据一示例性实施例示出的一种建立地图的方法的流程图。
图4是根据一示例性实施例示出的一种建图和定位的示意图。
图5是根据一示例性实施例示出的一种定位装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
图7是根据另一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
相关技术中,利用VSLAM技术建立地图的方法多是,从视觉传感器采集的M帧图像序列中,按照预设规则确定出N帧关键帧图像,并从关键帧图像中提取出表征空间环境的特征点(如图1中的关键点(2D Key Point)),根据每两帧关键帧图像的位姿信息(如图1中的Pose)、关键点(如图1中的2D Key Point)、以及关键点的描述信息(如图1中的2DDescriptor),确定出3D地图点(3D Map Point),以及该3D地图点的描述信息(2D平均Descriptor)。其中,3D地图点的位置信息可以通过三角化法得到,3D地图点的描述信息为与该地图点对应的关键点的描述信息的平均描述信息。如图1所示,所建立的地图中主要包括关键帧图像和3D地图点。其中,3D地图点包含坐标(X,Y,Z)和描述信息(2D平均Descriptor)。使用上文所建立地图进行定位时,通常会从视觉传感器采集的当前帧图像中提取特征点并确定特征点的描述信息,利用特征点的描述信息与地图中对应关键帧图像中的关键点进行匹配,实现移动设备的粗定位,即,确定出一局部地图,然后再将当前帧图像与局部地图中的3D地图点进行匹配,精确定位移动设备的位置。
具体地,如图1所示,假设当前帧图像的前一帧图像Px-1与建图时保存的关键帧图像Py最接近,则以该关键帧图像Py作为当前帧图像相匹配的关键帧,并基于该关键帧图像Py构建局部地图,该局部地图包括关键帧图像Py对应的地图点,以及其周围预设范围内的地图点。将当前帧图像与局部地图包括的地图点进行匹配,精确定位移动设备的位置。
然而,由于利用VSLAM技术所建地图进行定位时,需要关键帧图像和3D地图点,所以,所建立的地图需要占用了大量的存储空间,限制了VSLAM技术直接用于大场景建图和定位。通常情况下,地图中关键帧图像和关键点的存储空间占整个地图存储空间的80%以上。例如,针对1000平方米空间建立的地图,地图的大小就可能超过200M。对于更大的空间,地图大小通常达到几G甚至十几G,严重的限制了VSLAM技术实时建图和利用已有地图定位的应用。例如,在大场景建图过程中,需要占用大量内存,当地图过大超出内存时,无法建立大场景对应的连续地图,只能分段建立多个地图,这样,就会导致在定位过程中,使用分段地图进行定位,而多段地图的切换将会影响定位精度和实时性。此外,由于地图中存储的关键帧图像不连续,且相邻两帧关键帧图像间隔较大,移动设备所在位置必须在建图时保存的某一关键帧的位姿的附近,才能实现粗定位,否则就无法实现定位。因此,现有的定位范围较小,且效率较低。
为了解决相关技术中存在的问题,本公开提供一种定位方法、定位装置、可读存储介质及电子设备。图2是根据一示例性实施例示出的一种定位方法的流程图。如图2所示,该方法包括以下步骤:
在步骤11:获取移动设备上的视觉传感器拍摄的图像序列。
其中,该图像序列中每一图像对应的场景均是已建立地图的场景。在一种实施例中,该方法可以应用于机器人设备、移动头盔以及无人驾驶车辆等移动设备,视觉传感器设置在该移动设备上,实时地或周期性地采集已建立地图的场景图像,在视觉传感器拍摄到图像时,将该图像发送至移动设备进行后续处理。在另一实施例中,该方法还可以应用于服务器,在移动设备上的视觉传感器拍摄到图像时,将该图像发送至服务器进行后续处理。
在步骤12中,针对获取到的每一图像,提取该图像的特征信息。
在本公开中,该图像的特征信息可以该图像中的每个像素点的特征信息,也可以是图像中的特征点的特征信息,其中,该特征信息为描述像素点或特征点的描述信息。示例地,像素点的特征信息可以是该像素点的灰度值与其周围的其他像素点的灰度值的大小关系,也可以是该像素点的灰度值与其周围的其他像素点的灰度值的差值,等等。在本公开中,对特征信息并不作具体限定,只要是能描述像素点或特征点的信息即可。
由于图像中像素点数量较多,而在定位中并不需要对每个像素点进行匹配,所以,在本公开中,该图像的特征信息可以为图像中每个特征点的特征信息。具体地,针对步骤11中获取的每一图像,提取该图像的特征点,并计算每个特征点的特征信息。其中,提取图像的特征点以及计算特征点的特征信息属于现有技术,在此不再赘述。
在步骤13中,将图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配。其中,目标平面为该图像在图像序列中的前一图像的位姿对应的平面。
示例地,当前帧图像为用于定位的图像,则前一图像即为当前帧的前一帧图像。需要说明的是,在视觉传感器拍摄图像的同时,位姿传感器也会采集到该移动设备或视觉传感器的位姿。由于在视觉传感器拍摄的相邻两帧图像的时间间隔较短,移动设备移动的距离较小,该相邻两帧图像中包括的场景较为一致,所以,在本公开中,可以将地图点在前一图像的位姿对应的目标平面的投影点的特征信息与该图像的特征信息进行匹配。其中,地图点向目标平面的投影可以参照普通相机成像过程(小孔成像原理),计算投影点的坐标。
在本公开中,将图像的特征信息与地图点在目标平面的投影点的特征信息进行匹配,可以是根据图像中特征点的特征信息与投影点的特征信息的匹配关系,确定与该图像的特征信息相匹配的投影点的特征信息。
在步骤14中,确定与该图像的特征信息相匹配的投影点对应的目标地图点。
如上所述,由于投影点是地图点在前一图像的位姿对应的平面进行投影得到,所以,投影点与地图点之间具有对应关系,例如,地图点A对应投影点A1,地图点B对应投影点B1等等。如此,在步骤13中,确定出该图像的特征信息相匹配的投影点的特征信息之后,根据投影点与地图点的对应关系,可以进一步确定出与该图像的特征信息相匹配的目标地图点。
在步骤15中,根据目标地图点在地图中的位置信息确定移动设备的定位信息。
需要说明的是,在建图中的过程中,地图中保存有地图点的位置信息,这样,在确定出目标地图点之后,还可从地图中进一步确定出该目标地图点对应的位置信息,进而根据该位置信息确定移动设备的定位信息。其中,根据与图像的特征信息相匹配的目标地图点的位置信息,确定移动设备的定位信息,属于现有技术,此处不再赘述。
通过上述技术方案,可以将图像的特征信息与地图点在前一图像的位姿对应的平面的投影点的特征信息进行匹配,并根据投影点与地图点的对应关系,确定出与该图像的特征信息相匹配的目标地图点,进而根据目标地图点的位置信息确定移动设备的定位信息。如此,由于是将地图点在前一图像的位姿对应的平面进行投影,得到与该图像的特征信息进行匹配的投影点的特征信息,无需利用建图中保存的非连续关键帧图像进行粗定位,所以,可以提高移动设备的定位范围,提高定位的效率。
需要说明的是,在定位时所使用的地图可以是利用现有的VSLAM技术创建的地图,也可以是本公开所提供的建立地图的实施方式。其中,利用现有的VSLAM技术创建的地图如图1所示,此处不再赘述。
下面详细描述图2中所使用的地图的建立方法。如图3所示,该建立地图的方法可以包括以下步骤:
在步骤31中,获取地图点的位置信息和包含该地图点对应的像素点的N帧图像。其中,该N帧图像各自对应的图像的位姿不同,且N为大于1的整数。
本公开提供的建图方法中,除了需要确定地图点的位置信息之外,还需要确定出地图点的特征信息集合。首先,对地图点的位置信息的确定方法进行说明。
在一种实施例中,地图点的位置信息可以是利用现有的确定地图点的位置信息方法得到,例如,地图点P在第一帧图像中对应的像素点为P1、在第二帧图像中对应的像素点为P2,且已知第一帧图像的位姿和第二帧图像的位姿,则可以根据三角化法,确定出地图点P的位置信息。其中,根据三角化法确定地图点的位置信息,属于现有技术,此处不再赘述。
在另一种实施例中,N为大于2的整数,地图点的位置信息可以通过以下步骤获得:
步骤(1):根据N帧图像中的任两帧图像,确定地图点的第一位置信息。示例地,可以利用三角化法确定第一位置信息。
步骤(2):根据N帧图像,对地图点进行N次观测,以得到地图点的N个第一位置信息。
由于该N帧图像中均包括地图点对应的像素点,所以,根据三角化法,针对任意两帧图像进行一次观测,均可以确定出该地图点的一个第一位置信息。因此,在本公开中,根据N帧图像,可以对该地图点进行N此观测,得到该地图点的N个第一位置信息。
步骤(3):根据N个第一位置信息和以下公式,确定地图点的第二位置信息:
其中,i取值范围为[1,N],Ai表征对地图点进行第i次观测得到的且满足公式(1)的第一位置信息,d表征预设数值,表征地图点的N个第一位置信息的平均位置信息,表征地图点的第二位置信息,W表征在N个所述第一位置信息中满足公式(1)的Ai的数量,αi表征Ai对应的系数。
步骤(4):将第二位置信息确定为地图点的位置信息。
采用上述技术方案,N为大于2的整数,通过对N帧图像进行N次观测,得到地图点的N个第一位置信息,基于该第一位置信息确定地图点的位置信息,也即是,根据多帧图像确定地图点的位置信息,相较于相关技术中仅根据两帧图像确定地图点的位置信息而言,利用该实施例提供的方法可以得到较为准确的地图点的位置信息。
在另一种实施例中,针对获得的多个地图点的位置信息,还可以利用图优化法,同时对多个地图点的位置信息进行优。示例地,可以Bundle Adjustment对多个地图点的位置信息。其中,Bundle Adjustment属于现有技术,此处不再赘述。
接着,对地图点的特征信息集合的确定方法进行说明。
需要说明的是,在现有的定位方法中,建图时保存了多帧关键帧图像,在进行粗定位的时候,使用保存的关键帧图像与用于定位的图像的特征信息进行匹配的,此时,若移动设备在关键帧图像的位姿附近,则可以根据图像中特征点的特征信息与关键帧图像中关键点的特征信息,确定出与该特征点相匹配的地图点。
但是,由于在本公开提供的定位的过程中不需要关键帧图像,且,在建图时保存关键帧图像会导致所建地图占用空间较大的问题,所以,在本公开中,在建图时无需保存关键帧图像。为了保证可以基于图像中特征点的特征信息确定出与该特征点的特征信息相匹配的地图点,因此,在本公开中,建图时保存的地图点的特征信息为特征信息集合,该特征信息集合包含了不同位姿下的与该地图点对应的像素点的特征信息。
在步骤32中,根据N帧图像中对应的像素点的特征信息,确定地图点的特征信息集合。
在获取到N帧图像后,进一步获取该N帧图像中与该地图点对应的像素点的特征信息,并根据该对应的像素点的特征信息,确定出地图点的特征信息集合。如此,地图点的特征信息集合中包括了该N帧图像中与该地图点对应的像素点的特征信息。
具体,步骤32的具体实施方式可以为:分别确定N帧图像各自的姿态角;根据每帧图像的姿态角、以及对应的像素点的特征信息,确定地图点的特征信息集合,其中,该特征信息集合包括N个姿态角和与该N个姿态角分别对应的N个对应的像素点的特征信息。
示例地,假设图像1、图像2……图像N中均包含有与地图点P对应的像素点,且图像1、图像2……图像N中该对应的像素点的特征信息为2D1desc、2D2desc……2DNdesc,图像1、图像2……图像N各自的位姿的姿态角为α1、α2……αN,则地图点的特征信息集合可以记为3Ddesc={2D1desc,α1;2D2desc,α2……2DNdesc,αN}。
针对待建图区域中的每个地图点,均按照上述方式分别确定出地图点的位置信息和该地图点的特征信息集合。
需要说明的是,如图4所示,在确定出地图点的位置信息和该地图点的特征信息集合之后,可以将N帧图像(图4中的关键帧图像)、以及在确定地图点时所用到的图像的位姿、像素点、像素点的特征信息(图4中的Pose、2D KeyPoint、2D Descriptor)删除。如此,可以极大地缩小了地图占用的存储空间。
至此,地图被建立完成。下面结合按照上述方式所建立的地图,以一个完整的实施例,对本公开提供的定位方法进行详细说明。
需要说明是,按照上述方法建图时,地图点的特征信息为包含有图像的姿态角的三维特征信息集合,然而,在将地图点向前一图像的位姿对应的平面进行投影得到投影点时(如图4中生成关键帧),该投影点的特征信息为该特征信息集合中的一个二维特征信息。具体地,该定位方法还可以包括:根据投影点和地图点的对应关系、以及前一图像的位姿中的姿态角,从地图点的特征信息集合中确定投影点的特征信息。
示例地,地图点的特征信息集合可以记为3Ddesc={2D1desc,α1;2D2desc,α2……2DNdesc,αN},若前一图像的位姿中的姿态角为α2,则该地图点对应的投影点的特征信息为2D2desc。按照该方式,可以依次确定出每个投影点的特征信息。
在确定出投影点的特征信息之后,执行图2中的步骤13,将该图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配,即,根据图像中特征点的特征信息、投影点的特征信息,进行匹配。若特征点的特征信息与该投影点的特征信息一致,则认为该特征点与投影点相匹配。
此外,在步骤13中,在将地图点向前一图像的位姿对应的目标平面进行投影时,是对地图中的所有地图进行投影的,且目标平面的尺寸远大于视觉传感器采集的图像的尺寸。但是,由于位于目标平面边界的投影点与该图像中特征点的匹配概率极低,因此,在本公开中,为了减少匹配的工作量,可以对投影点进行处理,即,在匹配时,去除位于目标平面边界的投影点,仅对位于预设范围内的投影点进行匹配。
具体地,图2中的步骤13的实施方式可以为:
首先,获取地图点在目标平面上的投影点的位置信息,其中,依据小孔成像原理,可以根据地图点的位置信息确定投影点的位置信息。
接着,根据投影点的位置信息和预设区域,确定位于预设区域内的投影点,其中,预设区域是以前一图像的位姿中的位置为中心,且预设区域的尺寸大于图像的尺寸。
示例地,以前一图像的位姿中的位置为中心,假设预设区域高的范围为0至480,宽的范围为0至640,单位均为像素,则预设区域的尺寸为480×640。根据投影点的位置信息,将坐标的高位于0至480内,且宽位于0至640内的投影点确定为位于预设区域内的投影点。
最后,将该图像的特征信息与位于预设区域内的投影点的特征信息进行匹配。需要说明的,进行匹配的具体实施方式如上文所述,此处不再赘述。
采用上述方案,在对图像的特征信息进行匹配时,仅将位于预设区域内的投影点的特征信息与图像的特征信息进行匹配,且该预设区域尺寸大于图像的尺寸。如此,既可以减少匹配的工作量,也可以保证具有足够数量的投影点的特征信息与图像的特征信息进行匹配。
在确定出与图像的特征信息进行匹配的投影点之后,进一步确定与该图像的特征信息相匹配的投影点对应的目标地图点。在本公开中,图像的特征信息包括图像的特征点的特征信息;投影点的特征信息与地图点的特征信息集合具有对应关系;图2中的步骤14的具体实施方式为:确定与图像的特征点的特征信息相匹配的投影点的特征信息;根据投影点的特征信息与地图点的特征信息集合的对应关系,确定与相匹配的投影点的特征信息对应的目标特征信息集合;根据目标特征信息集合确定目标地图点。
由于投影点的特征信息为地图点的特征信息集合中的一个二维的特征信息,所以,该投影点的特征信息与地图点的特征信息集合具有对应关系。这样,在根据图像的特征点的特征信息、投影点的特征信息,确定出与该特征点的特征信息相匹配的投影点的特征信息之后,再根据该相匹配的投影点的特征信息、以及对应关系,确定出该相匹配的投影点的特征信息对应的目标特征信息集合,进而根据该目标特征信息集合确定目标地图点。
示例地,假设地图点P的特征信息集合为3Ddesc={2D1desc,α1;2D2desc,α2……2DNdesc,αN},与特征点的特征信息相匹配的投影点的特征信息为2D2desc,则可确定出该投影点的特征信息对应的目标特征集合为3Ddesc={2D1desc,α1;2D2desc,α2……2DNdesc,αN},进而根据该目标特征集合,确定出该目标地图点为地图点P。
在确定出目标地图点后,根据地图中保存的该目标地图点的位置信息,确定移动设备的定位信息。
需要说明的是,为了提高定位的精度,可以在图像中的特征点与地图点的匹配数量达到预设数值后,确定移动设备的定位信息。
基于同一发明构思,本公开还提供一种定位装置。图5是根据一示例性实施例示出的一种定位装置的框图。如图5所示,该定位装置可以包括:
第一获取模块51,用于获取移动设备上的视觉传感器拍摄的图像序列;
提取模块52,用于针对获取到的每一图像,提取该图像的特征信息;并
匹配模块53,用于将该图像的特征信息与地图中的地图点在目标平面的投影点的特征信息进行匹配,所述目标平面为该图像在所述图像序列中的前一图像的位姿对应的平面;
第一确定模块54,用于确定与该图像的特征信息相匹配的投影点对应的目标地图点;
第二确定模块55,用于根据所述目标地图点在所述地图中的位置信息确定所述移动设备的定位信息。
可选地,所述装置还可以包括:
第三确定模块,用于根据投影点与地图点的对应关系、以及所述前一图像的位姿中的姿态角,从所述地图点的特征信息集合中确定所述投影点的特征信息。
可选地,所述匹配模块53可以包括:
获取子模块,用于获取地图点在所述目标平面上的投影点的位置信息;
第一确定子模块,用于根据所述投影点的位置信息和预设区域,确定位于所述预设区域内的投影点,所述预设区域以所述前一图像的位姿中的位置为中心,且预设区域的尺寸大于所述图像的尺寸;
匹配子模块,用于将该图像的特征信息与位于所述预设区域内的投影点的特征信息进行匹配。
可选地,所述图像的特征信息包括所述图像的特征点的特征信息;所述投影点的特征信息与地图点的特征信息集合具有对应关系;所述第一确定模块54可以包括:
第二确定子模块,用于确定与所述图像的特征点的特征信息相匹配的投影点的特征信息;
第三确定子模块,用于根据所述对应关系,确定与所述相匹配的投影点的特征信息对应的目标特征信息集合;
第四确定子模块,用于根据所述目标特征信息集合确定目标地图点。
可选地,所述装置还可以包括:
第二获取模块,用于获取所述地图点的位置信息和包含该地图点对应的像素点的N帧图像,其中,所述N帧图像各自对应的所述图像的位姿不同,N为大于1的整数;
第四确定模块,用于根据所述N帧图像中所述对应的像素点的特征信息,确定所述地图点的特征信息集合。
可选地,所述第四确定模块可以包括:
第五确定子模块,用于分别确定所述N帧图像各自的姿态角;
第六确定子模块,用于根据每帧所述图像的位姿角,以及所述对应的像素点的特征信息,确定所述地图点的特征信息集合,所述特征信息集合包括N个所述姿态角和与该N个所述姿态角分别对应的N个所述对应的像素点的特征信息。
可选地,N为大于2的整数;所述第二获取模块可以包括:
第七确定子模块,用于根据N帧所述图像中的任两帧图像,确定该地图点的第一位置信息;
观测子模块,用于根据N帧所述图像,对所述地图点进行N次观测,以得到所述地图点的N个第一位置信息;
第八确定子模块,用于根据N个所述第一位置信息和上述公式(1)和(2),确定所述地图点的第二位置信息;
第九确定子模块,用于将所述第二位置信息确定为所述地图点的位置信息。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述功能模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图6是根据一示例性实施例示出的一种电子设备600的框图。其中,该电子设备可以是机器人设备或者移动头盔等。如图6所示,该电子设备600可以包括:处理器601,存储器602。该电子设备600还可以包括多媒体组件603,输入/输出(I/O)接口604,以及通信组件605中的一者或多者。
其中,处理器601用于控制该电子设备600的整体操作,以完成上述的定位方法中的全部或部分步骤。存储器602用于存储各种类型的数据以支持在该电子设备600的操作,这些数据例如可以包括用于在该电子设备600上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件603可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或通过通信组件605发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口604为处理器601和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件605用于该电子设备600与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件605可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的定位方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的定位方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器602,上述程序指令可由电子设备600的处理器601执行以完成上述的定位方法。
图7是根据另一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图7,电子设备700包括处理器722,其数量可以为一个或多个,以及存储器732,用于存储可由处理器722执行的计算机程序。存储器732中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器722可以被配置为执行该计算机程序,以执行上述的定位方法。
另外,电子设备700还可以包括电源组件726和通信组件750,该电源组件726可以被配置为执行电子设备700的电源管理,该通信组件750可以被配置为实现电子设备700的通信,例如,有线或无线通信。此外,该电子设备700还可以包括输入/输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的定位方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器732,上述程序指令可由电子设备700的处理器722执行以完成上述的定位方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的定位方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。