一种基于ORB图像特征的ICP快速点云配准算法的改进方法转让专利

申请号 : CN201710267277.4

文献号 : CN107220995B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 葛晨阳杨柳青李佳宁陈利齐宏展

申请人 : 西安交通大学

摘要 :

本发明提供一种基于ORB图像特征的ICP快速点云配准算法的改进方法,包括以下步骤:提取RGB‑D相机的彩色图像的ORB特征并匹配;求解旋转平移矩阵;采用GPU加速实现ICP精确配准。本发明的优点在于通过对彩色图像进行ORB特征匹配,为ICP精确配准提供初始变换矩阵,可以有效的缓解现有算法中存在的迭代易陷入局部最优的问题,在保证高精度匹配的前提下满足算法实时性要求。

权利要求 :

1.一种基于ORB图像特征的ICP快速点云配准算法的改进方法,包括以下步骤:步骤1:提取RGB-D相机的彩色图像的ORB特征并匹配;

步骤1.1:利用运算速度快的FAST(Features from Accelerated Segment Test)角点检测子来检测图像特征点;

步骤1.2:利用基于像素点二进制位比较的BRIEF特征描述子来描述特征;

步骤1.3:利用蛮力算法在一图像中搜索与另一图像中的任意特征点匹配的特征点;

步骤1.4:剔除错误匹配点对,根据匹配点对的Hamming距离筛选正确匹配点对;

步骤1.5:使用随机采样一致性(Random Sampling Consensus,RANSAN)算法计算基本矩阵F, 其中,KRGB是彩色摄像机的内参矩阵,R是旋转矩阵,S是由平移向量t定义的反对称矩阵,步骤2:计算三维空间旋转平移矩阵;

步骤2.1:根据已得到的基本矩阵F和彩色摄像机内参矩阵KRGB计算本质矩阵E,步骤2.2:采用奇异值分解法(SVD)对所述步骤2.1中的本质矩阵E进行分解,得到步骤2.3:对步骤2.2中的本质矩阵 运动分解,得到旋转矩阵平移向量 其中,

步骤3:采用GPU加速实现ICP精确配准。

2.根据权利要求1所述的一种基于ORB图像特征的ICP快速点云配准算法的改进方法,其特征在于,所述步骤3包括如下步骤:步骤3.1:为RGB-D相机获取的深度图像的每个像素分配一个GPU线程;

步骤3.2:计算每个像素对应的三维顶点坐标和法向量,其中,所述三维顶点坐标为:所述法向量为:

Ni(u,v)=(Vi(u+1,v)-Vi(u,v))×(Vi(u,v+1)-Vi(u,v));

步骤3.3:将步骤2.3中求得的旋转矩阵R和平移向量t作为两帧点云间的初始变换矩阵;

步骤3.4:利用ICP算法估计点云配准矩阵,具体步骤如下:步骤3.4.1:根据投影法获取相邻两帧点云间的匹配点对;

步骤3.4.2:计算所述匹配点对间的欧式距离和法向量夹角,并设置匹配点对间的距离阈值和角度阈值;

步骤3.4.3:利用最小化误差函数估计变换矩阵,对两帧点云进行精配准,得到配准结果;

步骤3.4.4:设置迭代次数最大值,重复步骤3.4.1-3.4.3,当迭代次数达到最大值,迭代结束,完成点云配准,否则继续迭代计算点云配准矩阵。

3.根据权利要求1所述的一种基于ORB图像特征的ICP快速点云配准算法的改进方法,其特征在于,所述通过蛮力算法进行搜索的具体过程如下所示:查找图像中每个特征点的2个最邻近特征点:如果某个特征点的最邻近匹配点,没有一一相互对应,则拒绝这一对匹配点;同时如果某个特征点的最邻近距离与次邻近距离的比值小于某个比例阈值,则拒绝这一对匹配点。

4.根据权利要求1所述的一种基于ORB图像特征的ICP快速点云配准算法的改进方法,其特征在于,所述根据匹配点对的Hamming距离筛选正确匹配点对的方法为:其中,

max_dis表示所有匹配点对之间的最大距离,dis(xi,yi)表示第i对点对之间的Hamming距离,per∈(0,1)。

5.根据权利要求2所述的一种基于ORB图像特征的ICP快速点云配准算法的改进方法,其特征在于,所述GPU用于接受来自CPU的数据并行计算,然后将计算结果返回CPU,提高大规模数据的计算速度。

6.根据权利要求2所述的一种基于ORB图像特征的ICP快速点云配准算法的改进方法,其特征在于,所述匹配点对间的距离阈值和角度阈值作为约束条件,用于去除错误匹配点对。

说明书 :

一种基于ORB图像特征的ICP快速点云配准算法的改进方法

技术领域

[0001] 本发明涉及计算机视觉三维重建技术领域,特别涉及一种基于 ORB图像特征的ICP快速点云配准算法的改进方法。

背景技术

[0002] 人类感知外部环境中的信息,有不到三成来自于听觉、嗅觉、 触觉等感受器官,而超过七成的信息是通过视觉来感知的。随着社会 的发展和科技的进步,仅仅依靠二维视觉信息已难以满足人们的需 求,各种各样的三维技术层出不穷,开始慢慢渗入到人们生活中方方 面面。
[0003] 三维重建(3D Reconstruction)是指建立适合计算机表示和 处理的三维真实物体或场景的数学模型,三维重建技术是在计算机环 境下进行处理、操作和分析其性质的基础,也是在计算机中建立表达 客观世界的虚拟现实的关键技术。
[0004] 一直以来,三维重建技术是计算机视觉、模式识别、虚拟现实 等领域的研究热点与难点,广泛的应用在医疗技术、文物修复、机器 人领域、人机交互、3D动画、沉浸式体感游戏等方面,因此,研究 三维重建技术对计算机视觉的发展有着重要的促进作用。
[0005] 基于RGB-D相机的三维重建技术由于其简单廉价受到研究者 的青睐,其中最关键的技术是三维点云的配准。目前,点云配准使用 最为广泛的是迭代最近点(Iterative Closest Points,ICP)算法, 但是原始的ICP算法存在不足,例如:(1)对初值要求比较高,否则 会造成迭代陷入局部最优解的情况,最终导致误配或不收敛;(2)在 整个点云内逐点搜索会造成计算量大、计算速度慢;(3)错误匹配点 对过多。
[0006] 现有的利用RGB-D相机的ICP点云配准算法是对原始ICP算法 的进一步优化,能够较好地解决原始ICP算法中计算速度慢和错误匹 配点对过多的问题,但由于利用RGB-D相机的ICP点云配准算法只考 虑了深度数据,并没有完全有效地利用RGB-D相机的优点,导致原始 ICP算法中对初值要求高,否则会造成迭代陷入局部最优的问题依然 存在。
[0007] 因此,本发明提出了一种基于ORB图像特征的ICP快速点云配 准算法的改进方法。

发明内容

[0008] 本发明的目的在于提供一种基于ORB图像特征的ICP快速点云 配准算法的改进方法,通过对彩色图像进行ORB特征匹配,为ICP精 确配准提供初始变换矩阵,针对现有基于ORB图像特征的ICP快速点 云配准算法中存在的迭代陷入局部最优的问题做出改进,以保证在高 精度匹配的前提下满足算法实时性要求。
[0009] 为实现上述目的,本发明提供如下技术方案:
[0010] 本发明提供一种基于ORB图像特征的ICP快速点云配准算法的 改进方法,包括如下步骤:
[0011] 步骤1:提取RGB-D相机相邻两帧彩色图像的ORB特征并匹配;
[0012] 步骤1.1:利用运算速度快的FAST(Features from Accelerated Segment Test)角点检测子来检测图像特征点;
[0013] 步骤1.2:利用基于像素点二进制位比较的BRIEF特征描述子 来描述特征,由于BRIEF不具有旋转不变性,所以ORB算法中利用特 征点的方向矢量对BRIEF特征描述符进行转向,生成steered BRIEF 特征描述符;
[0014] 设原始的BRIEF选取的点集为:
[0015]
[0016] 使用特征点方向θ和相对应的旋转矩阵Rθ将S构建为一个 “转向”矩阵,即[0017] Sθ=RθS
[0018] 其中, θ为特征点的方向。
[0019] 则生成的steered BRIEF特征描述符为:
[0020] gn(p,θ)=fn(p)|(xi,yi)∈Sθ
[0021] 步骤1.3:对于图像1中的任意特征点,通过蛮力算法在图像 2中寻找与所述任意特征点匹配的特征点;
[0022] 步骤1.4:剔除错误匹配点对,根据匹配点对的Hamming距离 筛选正确匹配点对;
[0023] 步骤1.5:使用随机采样一致性(Random Sampling Consensus,RANSAN)算法计算基本矩阵 其中, KRGB是彩色摄像机的内参矩阵,R是旋转矩阵,S是由平移向 量t定义的反对称矩阵,即:
[0024]
[0025] 步骤2:求解旋转平移矩阵;
[0026] 步骤2.1:结合所述步骤1.5中得到的基本矩阵F和彩色摄像 机内参矩阵KRGB计算本质矩阵E,
[0027] 步骤2.2:采用奇异值分解法(SVD)对所述步骤2.1中的本 质矩阵E进行分解,得到[0028] 步骤2.3:对所述步骤2.2中的本质矩阵 运动分解,得到旋转矩阵 平移向量 
[0029] 其中,
[0030] 步骤3:采用GPU加速实现ICP精确配准;
[0031] 步骤3.1:为RGB-D相机获取的深度图像的每个像素分配一个GPU线程;
[0032] 步骤3.2:计算每个像素对应的三维顶点坐标和法向量,其中, 所述三维顶点坐标为 所述法向量为:
[0033] Ni(u,v)=(Vi(u+1,v)-Vi(u,v))×(Vi(u,v+1)-Vi(u,v));
[0034] 步骤3.3:将所述步骤2.3中求得的旋转矩阵R和平移向量t 作为两帧点云间的初始变换矩阵;
[0035] 步骤3.4:设置迭代最大次数,开始迭代,设置对应点间距离 和法向量间的夹角作为约束条件,剔除不满足所述约束条件的错误匹 配点对,当迭代次数达到最大值,迭代结束,完成点云配准,否则继 续迭代计算点云配准矩阵。
[0036] 所述通过蛮力算法进行搜索的具体过程如下所示:查找图像1 中每个特征点的2个最邻近特征点:如果某个特征点的最邻近匹配 点,没有一一相互对应,则拒绝这一对匹配点;同时如果某个特征点 的最邻近距离与次邻近距离的比值小于某个比例阈值,则拒绝这一对 匹配点。
[0037] 所述根据匹配点对的Hamming距离筛选正确匹配点对的方法 为:
[0038] 其 中,max_dis表示所有匹配点对之间的最大距离,per∈(0,1),dis(xi,yi)表示第i对点对之间的Hamming距离,即对一组特征点 对的描述符进行异或运算,统计结果为1的个数为所求的Hamming距 离。当某点对之间的距离小于最大距离的per倍时,我们认为这是一 对正确匹配点对。
[0039] 所述GPU用于接受来自CPU的数据并行计算,然后将计算结果 返回CPU,提高大规模数据的计算速度。
[0040] 所述匹配点对间的距离阈值和角度阈值作为约束条件,用于去 除错误匹配点对。

附图说明

[0041] 图1为本发明具体实施方式中的一种基于ORB图像特征的ICP 快速点云配准算法的改进方法的流程图;
[0042] 图2为本发明具体实施方式中ORB特征检测与匹配流程图;
[0043] 图3为本发明具体实施方式中求解旋转平移矩阵流程图;
[0044] 图4为本发明具体实施方式中CUDA编程模型示意图;
[0045] 图5为本发明具体实施方式中基于GPU加速的ICP配准流程 图。

具体实施方式

[0046] 下面结合附图对本发明实施例中的技术方案进行清楚、完整地 描述。
[0047] 如图1所示,为本发明实施例的一种基于ORB图像特征的ICP 快速点云配准算法的改进方法的流程图,包括以下步骤:
[0048] 步骤1:提取RGB-D相机相邻两帧彩色图像的ORB特征并匹配。
[0049] 步骤2:计算三维空间旋转平移矩阵。
[0050] 步骤3:采用GPU加速实现ICP精确配准。
[0051] 如图2所示,为本发明实施例的ORB特征检测与匹配流程图。
[0052] 利用RGB-D相机采集连续两帧彩色图像1和图像2,分别提取 各自的ORB特征。ORB(Oriented FAST and Rotated BRIEF)算法是 一种基于视觉信息的特征点检测与描述算法,是FAST特征点检测算 法和BRIEF特征描述子的结合与优化。利用运算速度快的FAST角点 检测子来检测特征点,且增加了FAST特征的方向信息,利用基于像 素点二进制位比较的BRIEF特征描述子来描述特征,且ORB算法改进 了BRIEF描述子不具备旋转不变性以及对图像噪声敏感的缺点。具 体包括以下步骤:
[0053] 步骤1.1:采用FAST(Features from Accelerated Segment Test)算法检测图像特征点。
[0054] 该算法的基本原理是:当待测像素点的邻域内有足够多的像素 点与其有很大的区别时,认为该像素点为一个特征点。以灰度图为例, 检测待测像素点O是否为特征点,有[0055]
[0056]
[0057] 其中,I(O)表示待测像素点O处的灰度值,I(i)是以像素点O 为圆心,r为半径的离散化的Bresenham圆的边界上任意一点像素 灰度值,thr为用户设置的灰度差阈值,N为与待测像素点O的灰度 值具有较大差异的像素个数,当N大于圆周像素个数总数的四分之三 时,认为像素O是一个特征点。
[0058] FAST特征点不具备尺度不变性,解决方法是建立图像金字塔, 通过在每一层金字塔图像上都做一次FAST特征检测来实现尺度不变 性。
[0059] FAST特征点的方向通过计算矩阵得到,对于任意特征点O,定 义O的邻域像素的(p+q)阶距为:
[0060]
[0061] 其中,I(u,v)是像素点(u,v)处的灰度值。
[0062] 则图像块的质心位置为:
[0063]
[0064] 构建一个从图像块的中心O指向质心C的向量,则定义特征点 的方向为:
[0065] θ=arctan(m01,m10)
[0066] 为提高方法的旋转不变特性,特征点邻域像素需确保在一个圆 形区域内,即u,v∈[-r,r],r为邻域半径。由此得到具有旋转不 变性的oFAST(oriented FAST)描述符。
[0067] 步骤1.2:利用基于像素点二进制位比较的BRIEF特征描述 子来描述特征。
[0068] 利用BRIEF算法作为特征点的描述子,并针对其不具备旋转不 变性的问题进行改进形成了rBRIEF描述子。BRIEF是类似二进制编 码表示的一种局部图像特征描述符,首先平滑图像块,然后根据高斯 分布选取N组点对(xi,yi),1≤i≤N,对每一组点对,定义二 进制测试τ
[0069]
[0070] 其中,p(x),p(y)分别为像素点x,y处的灰度值。依 次对每一组点对进行τ操作,可定义唯一的N维二进制码串,即 BRIEF描述子
[0071]
[0072] N一般可选择128,256,512等,在此选择N=256。
[0073] 对于任何一个特征点来说,它的BRIEF描述子S是由该特征点 周围邻域N个点对组成的一个长度为N的二值串,定义2×N矩 阵S为BRIEF选取的初始点集对
[0074]
[0075] 使用特征点方向θ和θ对应的旋转矩阵Rθ将S构建为一 个“转向”矩阵,即:
[0076] Sθ=RθS
[0077] 其中, θ为特征点的方向。
[0078] 我们得到具有旋转不变性的描述子,即:
[0079] gn(p,θ)=fn(p)|(xi,yi)∈Sθ
[0080] 步骤1.3:特征点匹配。
[0081] 对于图像1中的任意特征点,采用Brute Force算法在图像2 中寻找与其匹配的特征点,即通过蛮力算法进行搜索,蛮力算法是一 种普通的模式匹配算法,查找图像1中每个特征点的2个最邻近特征 点:如果某个特征点的最邻近匹配点,没有一一相互对应,则拒绝这 一对匹配点;同时如果某个特征点的最邻近距离与次邻近距离的比值 小于某个比例阈值,则拒绝这一对匹配点,通过这样滤除一些不好的 匹配点对后,可以提高后续匹配的速度和精度。
[0082] 步骤1.4:去除错误匹配点对,根据匹配点对的Hamming距离 筛选正确匹配点对。
[0083] 根据ORB算法求得的一系列特征点对会存在错误匹配点对,需 要将它们从中剔除。由于ORB算法得到的BRIEF描述符为二进制码串, 很容易计算匹配点对之间的Hamming距离,对一组特征点对描述符进 行异或运算,统计结果为1的个数即为所求的Hamming距离。我们根 据匹配点对间的Hamming距离来筛选正确匹配点对,具体方法如下:
[0084]
[0085] 其中,max_dis表示所有匹配点对之间的最大距离, dis(xi,yi)表示第i对点对之间的Hamming距离, per∈(0,1),当某点对之间的距离小于最大距离的per倍时, 我们认为这是一对正确匹配点对,并将该点对用于后续运算。
[0086] 步骤1.5:使用随机采样一致性(Random Sampling Consensus, RANSAN)算法计算基本矩阵F。
[0087] 首先利用8点法估计基本矩阵F'作为RANSAC算法的迭代初 值,然后根据该基本矩阵F'判断内点(正确匹配点对)和外点(误 匹配点对)的个数,当内点越多,表示该矩阵越有可能是正确的基本 矩阵。重复随机采样过程,选取具有最多的内点数据集的基本矩阵作 为最终求得的基本矩阵F,即:
[0088]
[0089] 其中,KRGB是彩色摄像机的内参矩阵,R是旋转矩阵,S 是由平移向量t定义的反对称矩阵,即
[0090]
[0091] 如图3所示,为本发明实施例的求解旋转平移矩阵流程图。具 体包括如下步骤:
[0092] 步骤2.1:由已得到的基本矩阵F,结合彩色摄像机内参矩阵 KRGB计算本质矩阵E,计算公式为:
[0093]
[0094] 步骤2.2:对本质矩阵E采用奇异值分解法(SVD)进行分解。 用奇异值分解法(SVD)来求解ICP算法过程中的几何参数最初是由 ARUN等提出来的,通过矩阵变换的相关性质,直接求解出最优的参 数解。对由(1)中得到的本质矩阵E采用奇异值分解法(SAD)分解 后,得到:
[0095]
[0096] 步骤2.3:计算旋转矩阵R和平移向量t。本质矩阵包含了摄 像机的运动信息(R|t),对本质矩阵进行运动分解,可得:
[0097]
[0098] 其中,
[0099] 如图4所示,为本发明实施例的CUDA编程模型示意图。
[0100] 图形处理器(Graphic Processing Unit,GPU)是显卡的主要 处理单元,能够和CPU高速交换数据,GPU相比于CPU可以并行处理 数据,非常适合大规模数据的运算。统一计算设备架构(Compute Unified Device Architecture,CUDA)是由NVIDIA推出的通用并行 计算架构,非常适合大规模数据密集型计算。在CUDA编程环境中, CPU作为主机(Host)负责控制整个程序的主流程,GPU为一个通用 计算设备(Device),为协处理器。编写CUDA并行程序时,程序代码 分为主机端代码和设备端代码,主机端代码主要是串行部分的代码, 并行部分的代码以Kernel函数的形式放入GPU的多线程中并行执行, 主机端代码可以通过Kernel函数入口调用并行计算功能。Kernel函 数使用一种扩展的C语言编程,称为CUDA C语言。CUDA分为网格- 线程块-线程三级架构,其中线程(thread)是CUDA的最小执行单元, 每个线程执行一次基本运算,多个线程组成一个线程块(block),多 个块组成一个网格(grid)。通过共享存储在共享内存中的数据,相同 线程块内的线程之间可以相互通信,但线程块与线程块之间是不能进 行通信的。
[0101] 如图5所示,为本发明实施例的基于GPU加速的ICP配准流程 图,具体包括以下步骤:
[0102] 步骤3.1:为第i帧深度图像Di(p)上的每一个像素 p(u,v)分配一个GPU线程,具体方法为:将分辨率为640×480的 深度图像分给一个网格,该网格分为20×60个线程块,各个块又分 为 个线性,这样一来,每个线程就可以完成 一个像素点的坐标变换运算。
[0103] 步骤3.2:通过红外摄像机内参矩阵KIR反透射变换计算深 度图像对应的三维顶点坐标映射Vi,计算公式为:
[0104] Vi=Di(p)K-1
[0105] 将该顶点分别指向相邻顶点的两个向量叉乘便是该顶点对应 的法向量,即:
[0106] Ni(u,v)=(Vi(u+1,v)-Vi(u,v))×(Vi(u,v+1)-Vi(u,v))
[0107] 步骤3.3:将已求得的旋转矩阵R和平移向量t作为两帧点云 间的初始变换矩阵。
[0108] 步骤3.4:利用ICP算法估计点云配准矩阵。
[0109] 步骤3.4.1:根据投影法获取相邻两帧点云间的匹配点对,即 对第i帧点云中的任意一点,利用变换矩阵转换到第i-1帧点云摄 像机坐标系下,利用投影法在第i-1帧点云中找到与其对应的点。
[0110] 步骤3.4.2:计算对应点间的欧式距离和法向量间夹角,并设 置距离阈值和角度阈值作为约束条件,用于去除错误匹配点对。
[0111] 本实施例中设置的距离阈值为0.1m,法向量间夹角的角度阈 值为20°,当对应点间的距离和法向量间的夹角不满足以下条件时, 我们认为该点对为错误匹配点对,即:
[0112] s=||V-Vk,g||,s<0.1m,
[0113] 步骤3.4.3:以第i帧点云到第i-1帧点云中对应点的切平 面距离的平方和作为误差函数,利用最小化误差函数法估计变换矩阵 Ti。假设第i帧点云集中任意一点p在第i-1帧点云中的对应 点为q,则距离误差函数表示为:
[0114] E=arg min||ni-1·(Tipi-qi-1)||2
[0115] 其中,Ti表示第i帧的4×4的旋转平移矩阵。
[0116] 设定迭代次数最大值s=max为迭代终止条件,设s=0为第一次 迭代,上述步骤3.4.1-3.4.3重复一次,迭代次数加1,即s=s+1。
[0117] 当迭代次数达到所述设定的最大值s=max,迭代结束,否则继 续迭代计算估计点云配准矩阵,直到满足终止条件为止。利用最终得 到的旋转平移矩阵即可将两帧点云配准到一个坐标系下,从而完成点 云配准的目的。
[0118] 对于本领域技术人员而言,显然本发明不限于上述示范性实施 例的细节,而且在不背离本发明的精神的情况下,能够以其他具体形 式实现本发明。本发明的范围由所附权利要求而不是上述说明限定, 因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊 括在本发明内。