发明内容
本公开的目的在于提供一种可移动设备定位数据处理方法、装置、设备及可读存储介质,至少在一定程度上克服由于相关技术中的点云配准算法速度较慢、精度低、鲁棒性差可能导致的室内机器人等可移动设备在进行定位、导航时实时性差、精度低、适应性差的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一方面,提供一种可移动设备定位数据处理方法,包括:获取通过可移动设备测量物体表面得到的第一原始点集和目标点集;从所述第一原始点集中提取特征点,获得原始关键点集;从所述目标点集中提取特征点,获得目标关键点集;对所述原始关键点集和所述目标关键点集进行第一配准操作,获得第一模型变换参数;将所述第一原始点集通过所述第一模型变换参数进行变换,获得第二原始点集;对所述第二原始点集和所述目标点集进行第二配准操作,获得第二模型变换参数;根据所述第一模型变换参数和第二模型变换参数获得第三模型变换参数,所述第三模型变换参数用于通过配准第一原始点集和所述目标点集,使所述可移动设备获得所述物体表面的数据以便定位。
根据本公开的一实施例,所述对所述原始关键点集和所述目标关键点集进行第一配准操作,获得第一模型变换参数,包括:获得所述原始关键点集和所述目标关键点集中的最近点对,所述最近点对包括所述原始关键点集中的一个原始关键点和所述目标关键点集中的一个目标关键点,所述一个原始关键点和所述一个目标关键点之间的距离小于或等于第一预设阈值;根据所述最近点对获得第一模型变换参数。
根据本公开的一实施例,所述获得所述原始关键点集和所述目标关键点集中的最近点对,包括:获得所述原始关键点集和所述目标关键点集中的多个最近点对;所述根据所述最近点对获得第一模型变换参数,包括:获得与所述多个最近点对对应的多个候选模型变换参数;对于所述多个最近点对中的各个最近点对,计算所述原始关键点集中除所述最近点对中的所述一个原始关键点外的其他各个原始关键点经过与所述最近点对对应的候选模型变换参数变换后与所述最近点对中的所述一个目标关键点的变换误差;获得与所述各个最近点对对应的所述变换误差小于或等于第二预设阈值的其他原始关键点的数量;选取所述变换误差小于或等于第二预设阈值的其他原始关键点的数量最多的最近点对对应的候选模型变换参数为所述第一模型变换参数。
根据本公开的一实施例,所述从第一原始点集中提取特征点,获得原始关键点集;从目标点集中提取特征点,获得目标关键点集,包括:将所述第一原始点集所构成的空间划分为多个第一预设边长的体素格;计算所述多个第一预设边长的体素格的各个体素格中包含的原始点的重心,所述各个体素格的重心的集合为所述原始关键点集;将所述第一目标点集所构成的空间划分为多个第二预设边长的体素格;计算所述多个第一预设边长的体素格的各个体素格中包含的目标点的重心,所述各个体素格的重心的集合为所述目标关键点集。
根据本公开的一实施例,所述对所述第二原始点集和所述目标点集进行第二配准操作,获得第二模型变换参数包括:计算所述目标点集中的各个目标点在各个维度上的方差;选取方差最大的维度为配准维度;构建所述目标点集在所述配准维度的高维索引二叉树;通过所述高维索引二叉树查找所述第二原始点集中的各个第二原始点在所述目标点集中的最近点;分别计算所述各个第二原始点与对应的所述最近点之间的距离;选取所述第二原始点集中与对应的所述最近点之间的距离最小的第二原始点与对应的最近点的模型变换参数为所述第二模型变换参数。
根据本公开的一实施例,所述通过所述高维索引二叉树查找所述第二原始点集中的各个第二原始点在所述目标点集中的最近点,包括:将所述各个第二原始点从所述高维索引二叉树的根结点开始,根据所述各个第二原始点与所述高维索引二叉树的各个结点的比较结果向下查询所述高维索引二叉树,直至到达叶子结点;判断所述高维索引二叉树上所述各个第二原始点未查询过的分支的结点与所述各个第二原始点之间的距离是否不小于所述叶子结点;若所述未查询过的分支的结点与所述各个第二原始点之间的距离小于所述叶子结点,则判定所述各个第二原始点未查询过的分支的结点为所述最近点。
根据本公开的一实施例,所述判断所述高维索引二叉树上所述各个第二原始点未查询过的分支的结点与所述各个第二原始点之间的距离是否不小于所述叶子结点,包括:将所述未查询过的分支的各个结点按照所述配准维度的值与所述各个第二原始点的接近程度排序,获得优先级结点序列;根据所述优先级结点序列依次查询所述高维索引二叉树上所述各个第二原始点未查询过的分支的各个结点,判断所述未查询过的分支的各个结点是否与所述各个第二原始点之间的距离是否不小于所述叶子结点。
根据本公开的另一方面,提供一种可移动设备定位数据处理装置,包括:数据获取模块,用于获取通过可移动设备测量物体表面得到的第一原始点集和目标点集;特征提取模块,用于从所述第一原始点集中提取特征点,获得原始关键点集;特征提取模块,还用于从所述目标点集中提取特征点,获得目标关键点集;第一配准模块,用于对所述原始关键点集和所述目标关键点集进行第一配准操作,获得第一模型变换参数;第一配准模块,还用于将所述第一原始点集通过所述第一模型变换参数进行变换,获得第二原始点集;第二配准模块,用于对所述第二原始点集和所述目标点集进行第二配准操作,获得第二模型变换参数;模型获得模块,用于根据所述第一模型变换参数和第二模型变换参数获得第三模型变换参数,所述第三模型变换参数用于通过配准第一原始点集和所述目标点集,使所述可移动设备获得所述物体表面的数据以便定位。
根据本公开的再一方面,提供一种设备,包括:存储器、处理器及存储在所述存储器中并可在所述处理器中运行的可执行指令,所述处理器执行所述可执行指令时实现如上述任一种方法。
根据本公开的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,所述可执行指令被处理器执行时实现如上述任一种方法。
本公开的实施例提供的可移动设备定位数据处理方法,通过获取通过可移动设备测量物体表面得到的第一原始点集和目标点集,从第一原始点集和目标点集中分别提取特征点,获得原始关键点集和目标关键点集,对原始关键点集和目标关键点集进行第一配准操作获得第一模型变换参数,将第一原始点集通过第一模型变换参数进行变换获得第二原始点集;然后对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数,根据第一模型变换参数和第二模型变换参数获得用于配准第一原始点集和目标点集第三模型变换参数,使所述可移动设备获得所述物体表面的数据以便定位,从而可实现一定程度上提高可移动设备定位数据处理的精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。符号“/”一般表示前后关联对象是一种“或”的关系。
在本公开中,除非另有明确的规定和限定,“连接”等术语应做广义理解,例如,可以是电连接或可以互相通讯;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开中的具体含义。
如上所述,因相关技术中的点云配准算法通常存在速度较慢、精度低、鲁棒性差的问题,可能导致室内机器人等可移动设备在进行定位、导航时实时性差、精度低、适应性差。因此,本公开提供了一种可移动设备定位数据处理方法,通过获取通过可移动设备测量物体表面得到的第一原始点集和目标点集,从第一原始点集和目标点集中分别提取特征点,获得原始关键点集和目标关键点集,对原始关键点集和目标关键点集进行第一配准操作获得第一模型变换参数,将第一原始点集通过第一模型变换参数进行变换获得第二原始点集;然后对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数,根据第一模型变换参数和第二模型变换参数获得用于配准第一原始点集和目标点集第三模型变换参数,使所述可移动设备获得所述物体表面的数据以便定位,从而可实现一定程度上提高可移动设备定位数据处理的精度。
图1示出了可以应用本公开的可移动设备定位数据处理方法或可移动设备定位数据处理装置的示例性***架构100。
如图1所示,***架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如拍摄类应用、图像识别应用等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的图像搜索类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的初始图像等数据进行分析等处理,并将如图像融合结果反馈给终端设备。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2是根据一示例性实施例示出的一种可移动设备定位数据处理方法的流程图。如图2所示的方法例如可以应用于可移动设备定位数据处理***的服务器端,也可以应用于可移动设备定位数据处理***的终端设备。
参考图2,本公开实施例提供的方法20可以包括以下步骤。
在步骤S202中,获取通过可移动设备测量物体表面得到的第一原始点集和目标点集。可移动设备包括智能机器人、可移动拍摄设备等等。可移动设备可采用激光雷达测量室内物体以获取物体表面数据,第一原始点集和目标点集分别为可移动设备测量物体表面得到的处于不同坐标系内的点云集合,可通过旋转、平移操作配准到同一坐标系中,以获得物体表面更为完整的点云数据。
在一些实施例中,需要配准的两个点集可能距离较远,在进行配准之前可先进行平移操作,以便减少寻找最近点的计算量。可采用如下方法进行平移操作:
首先采用下式计算初始点集X和初始目标点集P的重心,分别为μx和μp
式中,Nx为初始点集X中点的个数,xi为初始点集X中第i个点的坐标,i为大于或等于1且小于或等于Nx的正整数;Np为初始目标点集P中点的个数,pj为初始目标点集P中第j个点的坐标,j为大于或等于1且小于或等于Np的正整数。
然后将初始点集X和初始目标点集P的点分别减去对应的重心,获得第一原始点集X’和目标点集P’:
X'={xi-μx}={xi'} (3)
P'={pj-μp}={pj'} (4)
式中,xi'为原始点集X’中第i个点的坐标,pj'为目标点集P’中第j个点的坐标。
在步骤S204中,从第一原始点集中提取特征点,获得原始关键点集。由于获取的物体表面数据是快速刷新的,若直接采用查找最近点方法对第一原始点集和目标点集进行配准会因速度较慢导致精度低,因此在搜索第一原始点集和目标点集的最近点之前,可基于关键点提取算法首先进行粗配准,以提高整体配准速度及精度。
在步骤S206中,从目标点集中提取特征点,获得目标关键点集。
在一些实施例中,点云的特征点是一些兴趣点,如目标的转点、角点等具有明显特征的点或点集。点云中提取关键点可根据需要采用尺度不变特征变换(Scale-InvariantFeature Transform,SIFT)算法、内部形态描述子(Intrinsic Shape Signatures,ISS)算法等等,本公开不做限制。
在步骤S208中,对原始关键点集和目标关键点集进行第一配准操作,获得第一模型变换参数。
在一些实施例中,对于原始关键点集中的各个原始关键点,遍历目标关键点集中的各个目标关键点,获得原始关键点集和目标关键点集中的最近点对,最近点对包括原始关键点集中的一个原始关键点和目标关键点集中的一个目标关键点,一个原始关键点和一个目标关键点之间的距离小于或等于第一预设阈值,可表示如下式:
式中,Ny为原始关键点集中原始关键点的个数,yl为原始关键点集中第l个点的坐标,l为大于或等于1且小于或等于Ny的正整数;Nq为目标关键点集中目标关键点的个数,qm为目标关键点集中第m个点的坐标,m为大于或等于1且小于或等于Nq的正整数。然后根据最近点对获得第一模型变换参数。第一模型变换参数可包括旋转参数和位移参数。
在一些实施例中,可采用如下方法获得原始关键点集和目标关键点集中的最近点对:首先对于原始关键点集中的各个原始关键点,通过遍历获得目标关键点集中的对应的最近点,获得原始关键点集和目标关键点集中的多个最近点对,从而获得与多个最近点对对应的多个候选模型变换参数;对于多个最近点对中的各个最近点对,计算原始关键点集中除最近点对中的一个原始关键点外的其他各个原始关键点经过与最近点对对应的候选模型变换参数变换后与最近点对中的一个目标关键点的变换误差,可通过将原始关键点经过模型变换参数变换后与对应的目标关键点相减后求平方获得该原始关键点的误差,然后将其他各个原始关键点的误差相加获得变换误差;获得与各个最近点对对应的变换误差小于或等于第二预设阈值的其他原始关键点的数量;选取变换误差小于或等于第二预设阈值的其他原始关键点的数量最多的最近点对对应的候选模型变换参数为第一模型变换参数。
在步骤S210中,将第一原始点集通过第一模型变换参数进行变换,获得第二原始点集。将第一原始点集中的各个第一原始点通过第一模型变换参数进行变换获得的变换后的点与目标点集中的各个目标点一一对应。经过粗配准获得第一模型变换参数之后,将第一原始点集通过第一模型变换参数进行旋转、平移变换,获得待进行精配准的第二原始点集。
在步骤S212中,对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数。精确配准一般采用迭代最近点(Iterative Closest Point,ICP)方法:对于第二原始点集中的每个点,查找匹配目标点集中的最近点,得到对应的旋转参数R和平移参数t,然后可通过下式计算总误差E(R,t):
式中,xk'∈X',pk'∈P',Nk为最近点对集中最近点对的个数,且Nk为大于或等于1、小于或等于Nx且小于等于Np的正整数,k为大于或等于1且小于或等于Nk的正整数。若计算得到总误差大于预设阈值,则将第二原始点集按照旋转参数R和平移参数t变换后获得更新的第二原始点集,继续查找匹配目标点集中的最近点,重复以上步骤,直至总误差不大于预设阈值为止,获得第二模型变换参数。
在一些实施例中,总误差的计算方式也可采用均方根差等。上述停止迭代并获得第二模型变换参数的条件,也可以是相邻两次均方根差的绝对值小于某一限差,还可以是到达预设迭代次数。也可采用基于奇异值分解的方法、四元数方法等使总误差收敛。本公开不以此为限。
在步骤S214中,根据第一模型变换参数和第二模型变换参数获得第三模型变换参数,第三模型变换参数用于通过配准第一原始点集和目标点集,使可移动设备获得物体表面的数据以便定位。
根据本公开实施例提供的可移动设备定位数据处理方法,通过获取通过可移动设备测量物体表面得到的第一原始点集和目标点集,从第一原始点集和目标点集中分别提取特征点,获得原始关键点集和目标关键点集,对原始关键点集和目标关键点集进行第一配准操作获得第一模型变换参数,将第一原始点集通过第一模型变换参数进行变换获得第二原始点集;然后对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数,根据第一模型变换参数和第二模型变换参数获得用于配准第一原始点集和目标点集第三模型变换参数,使可移动设备获得物体表面的数据以便定位,从而可实现一定程度上提高可移动设备定位数据处理的精度。
图3是根据一示例性实施例示出的一种可移动设备定位数据特征点提取方法的流程图。如图3所示的方法例如可以应用于可移动设备定位数据处理***的服务器端,也可以应用于可移动设备定位数据处理***的终端设备。在步骤S204中和步骤S206中,可采用该方法提取点集中的特征点。
参考图3,本公开实施例提供的方法30可以包括以下步骤。
在步骤S302中,将第一原始点集所构成的空间划分为多个第一预设边长的体素格(voxel grid)。例如,对于由三维数据构成的第一原始点集,使用相同尺寸的单位立方体对其进行划分。
在步骤S304中,计算多个第一预设边长的体素格的各个体素格中包含的原始点的重心,各个体素格的重心的集合为原始关键点集。重心的计算方法参照式(1)、式(2)。
在步骤S306中,将第一目标点集所构成的空间划分为多个第二预设边长的体素格。例如,对于由三维数据构成的第一原始点集,使用相同尺寸的单位立方体对其进行划分。
在步骤S308中,计算多个第一预设边长的体素格的各个体素格中包含的目标点的重心,各个体素格的重心的集合为目标关键点集。重心的计算方法参照式(1)、式(2)。
根据本公开实施例提供的可移动设备定位数据特征点提取方法,通过将第一原始点集和第一目标点集划分体素格后选取体素格内的点的重心作为原始关键点和目标关键点,以便对原始关键点集和目标关键点集进行第一配准操作获得第一模型变换参数,从而可实现可移动设备定位数据的粗配准操作,能够一定程度提高精配准的速度和精度。
图4是根据一示例性实施例示出的一种可移动设备定位数据处理方法的流程图。如图4所示的方法例如可以应用于可移动设备定位数据处理***的服务器端,也可以应用于可移动设备定位数据处理***的终端设备。
参考图4,本公开实施例提供的方法40可以包括以下步骤。
在步骤S402中,获取室内机器人通过激光雷达测量物体表面得到的第一原始点集和目标点集。
在步骤S404中,从第一原始点集中基于体素格尺度不变特征变换的方法提取特征点,获得原始关键点集。首先将第一原始点集按照体素格方法划分,创建体素格模型;然后将每一个体素格模型与三维高斯滤波器进行卷积,得到该体素格模型的空间尺度,通过每个体素网格模型的空间尺度模型减去原始模型本身来建立高斯差分模型,这样能够保证体素网格具有与之相关的尺度不变性;对高斯差分模型进行极值点的检测,最后为给定极值点周围的三维邻域构建加权直方图,并最终生成原始关键点集。
在步骤S406中,类似步骤S404,从目标点集中基于体素格尺度不变特征变换的方法提取特征点,获得目标关键点集。
在步骤S408中,对原始关键点集和目标关键点集进行第一配准操作,获得第一模型变换参数。
在步骤S410中,将第一原始点集通过第一模型变换参数进行变换,获得第二原始点集。
步骤S408至S410的一些实施例可参照步骤S208至S210,此处不再赘述。
在步骤S412中,对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数。
在一些实施例中,在步骤S4121中,计算目标点集中的各个目标点在各个维度上的方差。
在步骤S4122中,选取方差最大的维度为配准维度。
在步骤S4123中,构建目标点集在配准维度的高维索引二叉树。高维索引二叉树(K-Dimensional Tree,KD Tree)是一种分割高维数据空间的数据结构,主要应用于多维空间关键数据的近邻查找(Nearest Neighbor)和近似最近邻查找(Approximate NearestNeighbor)。KD Tree是二叉查找树(Binary Search Tree,BST)的变种。二叉查找树的性质如下:若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。Kd-Tree的构建方法为:在K维数据集合中选择具有最大方差的维度,然后在该维度上选择中值(算术平均数)为划分点对该K维数据集合进行划分,得到两个子集合,同时创建一个树结点,用于存储;然后对两个子集合重复上一步选择中值、划分的过程,直至所有子集合都不能再划分为止。
在步骤S4124中,通过高维索引二叉树查找第二原始点集中的各个第二原始点在目标点集中的最近点。首先将各个第二原始点从高维索引二叉树的根结点(即第一个划分点)开始,根据各个第二原始点与高维索引二叉树的各个结点的比较结果向下查询高维索引二叉树,直至到达叶子结点(即不能再向下划分的结点,上级结点在该分支子集合中仅有该结点)。然后进行回溯操作,判断高维索引二叉树上各个第二原始点未查询过的分支的结点与各个第二原始点之间的距离是否不小于叶子结点,将未查询过的分支的各个结点按照配准维度的值与各个第二原始点的接近程度排序,即按照在配准维度第二原始点与未查询结点的值的差的绝对值的大小排序,绝对值越小排序越前,获得优先级结点序列,根据优先级结点序列依次查询高维索引二叉树上各个第二原始点未查询过的分支的各个结点,判断未查询过的分支的各个结点是否与各个第二原始点之间的距离是否不小于叶子结点。若未查询过的分支的结点与各个第二原始点之间的距离小于叶子结点,则判定各个第二原始点未查询过的分支的结点为最近点。
在步骤S4125中,分别计算各个第二原始点与对应的最近点之间的距离。
在步骤S4126中,选取第二原始点集中与对应的最近点之间的距离最小的第二原始点与对应的最近点的模型变换参数为第二模型变换参数。第二模型变换参数可通过迭代最近点方法获得,参见步骤S212的一些实施例,此处不再赘述。
在步骤S414中,根据第一模型变换参数和第二模型变换参数获得第三模型变换参数,第三模型变换参数用于通过配准第一原始点集和目标点集,使可移动设备获得物体表面的数据以便定位。
根据本公开实施例提供的可移动设备定位数据处理方法,通过获取通过激光雷达测量物体表面得到的第一原始点集和目标点集,基于体素格尺度不变特征变换的方法从第一原始点集和目标点集中分别提取特征点,获得原始关键点集和目标关键点集,对原始关键点集和目标关键点集进行第一配准操作获得第一模型变换参数,将第一原始点集通过第一模型变换参数进行变换获得第二原始点集;然后利用K-D Tree方法对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数,根据第一模型变换参数和第二模型变换参数获得用于配准第一原始点集和目标点集第三模型变换参数,使可移动设备获得物体表面的数据以便定位,从而可实现一定程度上提高可移动设备定位数据处理的精度和鲁棒性。
图5是根据一示例性实施例示出的一种可移动设备定位数据处理装置的流程图。如图5所示的装置例如可以应用于可移动设备定位数据处理***的服务器端,也可以应用于可移动设备定位数据处理***的终端设备。
参考图5,本公开实施例提供的装置50可以包括:数据获取模块502、特征提取模块504、第一配准模块506、第二配准模块508以及模型获得模块510。
数据获取模块502可用于获取通过可移动设备测量物体表面得到的第一原始点集和目标点集。
特征提取模块504可用于从第一原始点集中提取特征点,获得原始关键点集。
特征提取模块504还可用于从目标点集中提取特征点,获得目标关键点集。
第一配准模块506可用于对原始关键点集和目标关键点集进行第一配准操作,获得第一模型变换参数。
第一配准模块506还可用于将第一原始点集通过第一模型变换参数进行变换,获得第二原始点集。
第二配准模块508可用于对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数。
模型获得模块510可用于根据第一模型变换参数和第二模型变换参数获得第三模型变换参数,第三模型变换参数用于通过配准第一原始点集和目标点集,使可移动设备获得物体表面的数据以便定位。
第一配准模块506还可用于获得原始关键点集和目标关键点集中的最近点对,最近点对包括原始关键点集中的一个原始关键点和目标关键点集中的一个目标关键点,一个原始关键点和一个目标关键点之间的距离小于或等于第一预设阈值;根据最近点对获得第一模型变换参数。
第一配准模块506还可用于获得原始关键点集和目标关键点集中的多个最近点对;获得与多个最近点对对应的多个候选模型变换参数;对于多个最近点对中的各个最近点对,计算原始关键点集中除最近点对中的一个原始关键点外的其他各个原始关键点经过与最近点对对应的候选模型变换参数变换后与最近点对中的一个目标关键点的变换误差;获得与各个最近点对对应的变换误差小于或等于第二预设阈值的其他原始关键点的数量;选取变换误差小于或等于第二预设阈值的其他原始关键点的数量最多的最近点对对应的候选模型变换参数为第一模型变换参数。
特征提取模块504还可用于将第一原始点集所构成的空间划分为多个第一预设边长的体素格;计算多个第一预设边长的体素格的各个体素格中包含的原始点的重心,各个体素格的重心的集合为原始关键点集;将第一目标点集所构成的空间划分为多个第二预设边长的体素格;计算多个第一预设边长的体素格的各个体素格中包含的目标点的重心,各个体素格的重心的集合为目标关键点集。
第二配准模块508还可用于计算目标点集中的各个目标点在各个维度上的方差;选取方差最大的维度为配准维度;构建目标点集在配准维度的高维索引二叉树;通过高维索引二叉树查找第二原始点集中的各个第二原始点在目标点集中的最近点;分别计算各个第二原始点与对应的最近点之间的距离;选取第二原始点集中与对应的最近点之间的距离最小的第二原始点与对应的最近点的模型变换参数为第二模型变换参数。
第二配准模块508还可用于将各个第二原始点从高维索引二叉树的根结点开始,根据各个第二原始点与高维索引二叉树的各个结点的比较结果向下查询高维索引二叉树,直至到达叶子结点;判断高维索引二叉树上各个第二原始点未查询过的分支的结点与各个第二原始点之间的距离是否不小于叶子结点;若未查询过的分支的结点与各个第二原始点之间的距离小于叶子结点,则判定各个第二原始点未查询过的分支的结点为最近点。
第二配准模块508还可用于将未查询过的分支的各个结点按照配准维度的值与各个第二原始点的接近程度排序,获得优先级结点序列;根据优先级结点序列依次查询高维索引二叉树上各个第二原始点未查询过的分支的各个结点,判断未查询过的分支的各个结点是否与各个第二原始点之间的距离是否不小于叶子结点。
图6是根据一示例性实施例示出的一种可用于可移动设备定位数据处理***的电子设备的框图。需要说明的是,图6示出的设备仅以计算机***为示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有设备600操作所需的各种程序和数据。CPU601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本公开的***中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据获取模块、特征提取模块、第一配准模块、第二配准模块和模型获得模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,数据获取模块还可以被描述为“向所连接的服务器端获取点集数据的模块”。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取通过可移动设备测量物体表面得到的第一原始点集和目标点集;从第一原始点集中提取特征点,获得原始关键点集;从目标点集中提取特征点,获得目标关键点集;对原始关键点集和目标关键点集进行第一配准操作,获得第一模型变换参数;将第一原始点集通过第一模型变换参数进行变换,获得第二原始点集;对第二原始点集和目标点集进行第二配准操作,获得第二模型变换参数;根据第一模型变换参数和第二模型变换参数获得第三模型变换参数,第三模型变换参数用于通过配准第一原始点集和目标点集,使可移动设备获得物体表面的数据以便定位。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。