本发明实施例涉及视觉定位技术领域,尤其涉及一种视觉定位方法及系统。
背景技术:
在现有的视觉定位技术中,通过激光作为传感器,获取三维点云数据,实现在已知三维点云地图中的定位。
然而,激光传感器本身存在着诸多缺陷,这些缺陷限制了视觉定位系统的应用,例如,激光传感器体积一般较大,导致其在很多应用场景中无法进行安装部署,限制了视觉定位系统的大范围应用。再加上激光传感器本身获取的是空间点云数据,这些数据包含的信息不够丰富,除用于定位外很难用作他途,因此无法进行更多的功能拓展与开发。
因此,现在亟需一种视觉定位方法及系统来解决上述问题。
技术实现要素:
针对现有技术存在的问题,本发明实施例提供一种视觉定方法及系统。
第一方面,本发明实施例提供了一种视觉定位方法,包括:
获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集;
根据所述实时双目图像和所述双目图像集构建局部视觉点云图;
将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
第二方面,本发明实施例提供了一种视觉定位系统,包括:
获取模块,用于获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集;
局部视觉点云图构建模块,用于根据所述实时双目图像和所述双目图像集构建局部视觉点云图;
定位模块,用于将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的一种视觉定位方法及系统,通过双目视觉相机获取实时双目图像,根据实时双目图像和上一时序内的双目图像对局部视觉点云图进行构建,并通过将局部视觉点云图和全局视觉点云图进行匹配,从而得到拍摄该实时双目图像的位姿信息,相比激光方式获取局部点云的方法,本发明实施例更易于部署和操作,提高了视觉定位效率,同时提供了更加丰富的视觉纹理图像和视觉几何信息,拓展了视觉定位的应用范围。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的视觉定位方法的流程示意图;
图2为本发明实施例提供的视觉定位系统的结构示意图;
图3为本发明实施例提供的电子设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通过激光作为传感器,获取三维点云数据,实现在已知三维点云地图中的定位,其核心为利用激光传感器的局部实时点云与全局三维点云地图进行匹配。然而,激光传感器本身存在着诸多缺陷,这些缺陷限制了视觉定位系统的应用,具体包含以下几个方面:1、激光传感器体积一般较大,导致其在很多应用场景中无法进行安装部署,限制了视觉定位系统的大范围应用;2、激光传感器本身获取的是空间点云数据,这些数据包含的信息不够丰富,除用于定位外很难用作他途,因此无法进行较多的功能拓展与开发;3、激光传感器价格较高,多线激光的价格一般高达几万至数十万元,高昂的价格限制了视觉定位系统在消费领域的大规模推广。本发明实施例通过双目视觉相机作为传感器对局部点云数据进行获取,降低了视觉定位系统的价格,减小系统的整体体积,使得视觉定位系统更容易安装部署,并且通过双目视觉相机可以更加丰富对环境进行感知,从而可以进行更多的功能拓展与开发。
图1为本发明实施例提供的视觉定位方法的流程示意图,如图1所示,本发明实施例提供了一种视觉定位方法,包括:
步骤101,获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集。
在本发明实施例中,通过双目视觉相机对局部场景进行实时拍摄,从而获取到局部场景的当前时刻的双目图像,即实时双目图像,同时,获取预设的上一时间窗口的所有双目图像,作为双目图像集,例如,预设当前时刻的上一时间窗口为5秒,即获取到双目视觉相机在5秒前的时间内拍摄到的所有双目图像。需要说明的是,本发明实施例通过将双目视觉相机设置在移动机器人、无人机或无人驾驶车辆上,在场景中进行移动,通过双目视觉相机实时对局部场景进行拍摄,以用于定位双目视觉相机的当前位姿,即对移动机器人、无人机或无人驾驶车辆进行定位。另外,在本发明实施例中,局部场景是指移动机器人、无人机或无人驾驶车辆在预设范围内的场景中进行移动,全局场景是指该场景的整体范围,即局部场景为全局场景的某一区域范围内的位置。
步骤102,根据所述实时双目图像和所述双目图像集构建局部视觉点云图。
在本发明实施例中,通过实时双目图像和实时双目图像上一时间窗口内的双目图像集,构建局部场景的视觉点云图,即构建局部视觉点云图。首先,对实时双目图像和双目图像集进行特征提取,在本发明实施例中,可通过尺度不变特征转换算法(scale-invariantfeaturetransform,简称sift)或加速鲁棒特征算法(speeduprobustfeatures,简称surf)进行特征点提取,然后将实时双目图像的特征点和双目图像集的特征点进行匹配,从而得到特征匹配的像素对,即匹配点;最后,将匹配点转换成三维坐标,并根据三维坐标构建局部视觉点云图。
步骤103,将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
在本发明实施例中,全局视觉点云图为前期已构建好的三维点云地图,在分别获取了局部视觉点云图和全局视觉点云图之后,需要对这两个点云图进行匹配,通过迭代最近点算法(iterativeclosetpoint,简称icp)或正态分布变换算法(normaldistributetransform,简称ndt),将局部视觉点云图和全局视觉点云图进行匹配,并将匹配得到的局部视觉点云图到全局视觉点云图的变换矩阵进行求解,从而获知当前时刻的双目视觉相机的位姿信息,即获取实时双目图像对应的定位信息。
本发明实施例提供的视觉定位方法,通过双目视觉相机获取实时双目图像,根据实时双目图像和上一时序内的双目图像对局部视觉点云图进行构建,并通过将局部视觉点云图和全局视觉点云图进行匹配,从而得到拍摄该实时双目图像的位姿信息,相比激光方式获取局部点云的方法,本发明实施例更易于部署和操作,提高了视觉定位效率,同时提供了更加丰富的视觉纹理图像和视觉几何信息,拓展了视觉定位的应用范围。
在上述实施例的基础上,所述根据所述实时双目图像和所述双目图像集构建局部视觉点云图,包括:
获取所述实时双目图像的左目图像和右目图像;
根据纹理信息分别对所述实时双目图像、所述双目图像集、所述左目图像和所述右目图像进行特征提取处理,得到实时双目图像特征点、双目图像集特征点、左目图像特征点和右目图像特征点;
将所述实时双目图像特征点和所述双目图像集特征点进行特征匹配处理,并将所述左目图像特征点和所述右目图像特征点进行特征匹配处理,根据匹配结果,得到特征匹配成功的匹配点;
通过三角测量算法对所述匹配点进行处理,得到所述匹配点对应的三维坐标,并根据所述三维坐标构建局部视觉点云图。
在本发明实施例中,通过双目视觉相机拍摄得到实时双目图像,同时得到该实时双目图像的左目图像和右目图像,根据双目图像中的纹理信息,通过sift算法分别对实时双目图像、上一时间窗口内的双目图像集、左目图像和右目图像进行特征提取处理,得到实时双目图像特征点、双目图像集特征点、左目图像特征点和右目图像特征点。然后,将实时双目图像特征点和双目图像集特征点进行特征匹配处理,同时,将左目图像特征点和右目图像特征点进行特征匹配处理,根据匹配结果,得到特征匹配后的像素对,即匹配成功的匹配点。最后,通过三角测量算法对匹配点进行处理,得到匹配点对应的三维坐标,并根据三维坐标构建局部视觉点云图。需要说明的是,在本发明实施例中,双目视觉相机实时对局部视觉点云图进行维修更新,当双目视觉相机进行移动时,对局部场景的图像也在进行实时拍摄,通过将每次获得的实时双目图像和实时双目图像相邻的上一时间窗口内的双目图像集,对局部视觉点云图进行更新,从而实时获取位置信息。
在上述实施例的基础上,所述根据纹理信息分别对所述实时双目图像、所述双目图像集、所述左目图像和所述右目图像进行特征提取处理,得到实时双目图像特征点、双目图像集特征点、左目图像特征点和右目图像特征点,包括:
根据纹理信息,通过尺度不变特征变换算法对所述实时双目图像、所述双目图像集、所述左目图像和所述右目图像进行特征提取处理,得到实时双目图像特征点、双目图像集特征点、左目图像特征点和右目图像特征点。
在本发明实施例中,根据纹理信息,通过sift算法,首先建立尺度空间,然后对双目图像中的特征点进行提取,并通过特征点周围邻域的信息生成特征描述子,以用于进行特征点匹配。优选地,在本发明实施例中,也可以通过surf算法对实时双目图像、双目图像集、左目图像和右目图像进行特征提取处理,得到实时双目图像特征点、双目图像集特征点、左目图像特征点和右目图像特征点,根据surf算法得到双目图像中的特征点,这特征点不会因为视角的改变、光照的变化、噪音的干扰而消失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点,当两幅双目图像中有相同的景物时,那么这些特征点就会在两幅双目图像的相同景物上同时出现,这样就能实现匹配。需要说明的是,在本发明实施例中,为了加快提取效率,可通过图形处理器(graphicsprocessingunit,简称gpu)对提取过程进行加速。
在上述实施例的基础上,在所述获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集之前,所述方法还包括:
获取全局场景的三维点云数据;
根据所述全局场景的三维点云数据,获取全局视觉点云图。
在本发明实施例中,采用移动测量或固定站测量的方式对全局场景的三维点云数据进行采集,其中,移动测量指的是搭载有激光、惯导、全球导航卫星系统(globalnavigationsatellitesystem,简称gnss)等各种传感器的平台在全局场景中不断移动的获取数据,通过对多传感器的数据进行融合实现对三维点云地图的建立;固定站测量指的是在全局场景中确定一些固定基站,利用较高精度的测量仪器在这些位置进行测量获取三维点云数据,通过对这些站数据的人工初匹配,然后再经配准算法优化,即可获得较高精度的三维点云图。在本发明实施例中,还可以直接获取现有的全局视觉点云图,对局部视觉点云图进行定位,例如,无人机在某城市进行飞行,只需要提前将某城市的全局视觉点云图输入到无人机中,通过设置在无人机上的双目视觉相机对当前场景进行拍摄,通过拍摄得到的实时双目图像构建的局部视觉点云图和全局视觉点云图进行匹配,从而获知无人机的当前位置。
在上述实施例的基础上,所述将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息,包括:
根据正态分布变换算法对所述局部视觉点云图和所述全局视觉点云图进行匹配,得到局部点云到全局点云的变换矩阵;
对所述变换矩阵进行分解,得到相机位置信息和相机姿态信息。
在本发明实施例中,在分部获取了局部视觉点云图和全局视觉点云图之后,需要对这两个点云图进行匹配,可通过icp算法进行匹配,优选地,在本发明实施例中以ndt算法对两个点云图的匹配进行说明,在进行ndt算法匹配时,首先需要给定一个初值,在本发明实施例中,采用在固定位置初始化的方式,将上一时刻的匹配值作为初值进行处理。ndt算法使用标准优化技术来确定两个点云间的最优的匹配,因为其在配准过程中不利用对应点的特征计算和匹配,所以匹配时间比其他方法短,效率更高,鲁棒性得到一定提升。
进一步地,在完成局部视觉点云图和全局视觉点云图的匹配之后,即获取得到局部点云到全局点云的变换矩阵,该变换矩阵中包含了双目视觉相机的位姿信息,通过对变换矩阵进行分解,从而可得到双目视觉相机的位置信息和姿态信息(即拍摄角度信息),进一步地,获取到根据实时双目图像生成的局部视觉点云图对应的位置信息。
在上述实施例的基础上,在所述通过三角测量算法对所述匹配点集进行处理,得到所述匹配点对应的三维坐标,并根据所述三维坐标构建局部视觉点云图之后,所述方法还包括:
根据光束平差法对局部视觉点云图进行优化处理,得到优化后的局部视觉点云图。
在本发明实施例中,采用光束平差法对局部视觉点云图进行优化,通过光束平差法可以处理数据丢失情况,并提供真正的最大似然估计,从而减少局部视觉点云图的特征点和全局视觉点云图的特征点之间位置投影变换的误差,提高视觉定位的准确性。
图2为本发明实施例提供的视觉定位系统的结构示意图,如图2所示,本发明实施例提供了一种视觉定位系统,包括:获取模块201、局部视觉点云图构建模块202和定位模块203,其中,获取模块201用于获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集;局部视觉点云图构建模块202用于根据所述实时双目图像和所述双目图像集构建局部视觉点云图;定位模块203用于将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
在本发明实施例中,首先通过固定式扫描仪对整个场景进行扫描,通过手动初匹配结合icp算法匹配优化的方法,获取到整个场景的高精度三维点云地图,即获取到全局视觉点云图,例如,对某车间各个区域进行扫描,获取到全局视觉点云图。在获取到全局视觉点云图之后,可以根据实际需求,将视觉定位系统设置在不同的设备上,例如,可移动机器人、无人机或工作帽上,当视觉定位系统随时设备在车间中移动时,通过获取模块201,即双目视觉相机,实时拍摄设备当前时刻所在场景的图像,并将当前时刻相邻的上一时间窗口的图像进行存储;此时,视觉定位系统通过局部视觉点云图构建模块202,构建局部视觉点云图,并对局部视觉点云图进行实时更新维护,使得和设备当前所处位置保持一致;最后,通过定位模块203,将实时得到的局部视觉点云图和全局视觉点云图进行匹配,得到拍摄该实时双目图像的双目视觉相机所处的位置和姿态,从而判断获知设备的定位信息。
本发明实施例提供的一种视觉定位系统,通过双目视觉相机实时获取实时双目图像,根据实时双目图像和上一时序内的双目图像对局部视觉点云图进行构建,并通过将局部视觉点云图和全局视觉点云图进行匹配,从而得到拍摄该实时双目图像的位姿信息,相比激光方式获取局部点云的方法,本发明实施例更易于部署和操作,提高了视觉定位效率,同时提供了更加丰富的视觉纹理图像和视觉几何信息,拓展了视觉定位的应用范围。
在上述实施例的基础上,所述局部视觉点云图构建模块202包括:左右目图像获取单元、特征点提取单元、特征点匹配单元和处理单元,其中,左右目图像获取单元用于获取所述实时双目图像的左目图像和右目图像;特征点提取单元用于根据纹理信息分别对所述实时双目图像、所述双目图像集、所述左目图像和所述右目图像进行特征提取处理,得到实时双目图像特征点、双目图像集特征点、左目图像特征点和右目图像特征点;特征点匹配单元用于将所述实时双目图像特征点和所述双目图像集特征点进行特征匹配处理,并将所述左目图像特征点和所述右目图像特征点进行特征匹配处理,根据匹配结果,得到特征匹配成功的匹配点;处理单元用于通过三角测量算法对所述匹配点进行处理,得到所述匹配点对应的三维坐标,并根据所述三维坐标构建局部视觉点云图。
在上述实施例的基础上,处理单元包括:优化子单元,用于根据光束平差法对局部视觉点云图进行优化处理,得到优化后的局部视觉点云图。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图3为本发明实施例提供的电子设备结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(communicationsinterface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行如下方法:获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集;根据所述实时双目图像和所述双目图像集构建局部视觉点云图;将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集;根据所述实时双目图像和所述双目图像集构建局部视觉点云图;将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储服务器指令,该计算机指令使计算机执行上述实施例所提供的视觉定位方法,例如包括:获取局部场景的实时双目图像和所述实时双目图像上一时间窗口的双目图像集;根据所述实时双目图像和所述双目图像集构建局部视觉点云图;将所述局部视觉点云图和全局视觉点云图进行匹配,根据匹配结果,获取相机位置信息和相机姿态信息。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。