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

文档序号:11201319阅读:1116来源:国知局
一种基于ORB图像特征的ICP快速点云配准算法的改进方法与流程

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



背景技术:

人类感知外部环境中的信息,有不到三成来自于听觉、嗅觉、触觉等感受器官,而超过七成的信息是通过视觉来感知的。随着社会的发展和科技的进步,仅仅依靠二维视觉信息已难以满足人们的需求,各种各样的三维技术层出不穷,开始慢慢渗入到人们生活中方方面面。

三维重建(3dreconstruction)是指建立适合计算机表示和处理的三维真实物体或场景的数学模型,三维重建技术是在计算机环境下进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。

一直以来,三维重建技术是计算机视觉、模式识别、虚拟现实等领域的研究热点与难点,广泛的应用在医疗技术、文物修复、机器人领域、人机交互、3d动画、沉浸式体感游戏等方面,因此,研究三维重建技术对计算机视觉的发展有着重要的促进作用。

基于rgb-d相机的三维重建技术由于其简单廉价受到研究者的青睐,其中最关键的技术是三维点云的配准。目前,点云配准使用最为广泛的是迭代最近点(iterativeclosestpoints,icp)算法,但是原始的icp算法存在不足,例如:(1)对初值要求比较高,否则会造成迭代陷入局部最优解的情况,最终导致误配或不收敛;(2)在整个点云内逐点搜索会造成计算量大、计算速度慢;(3)错误匹配点对过多。

现有的利用rgb-d相机的icp点云配准算法是对原始icp算法的进一步优化,能够较好地解决原始icp算法中计算速度慢和错误匹配点对过多的问题,但由于利用rgb-d相机的icp点云配准算法只考虑了深度数据,并没有完全有效地利用rgb-d相机的优点,导致原始icp算法中对初值要求高,否则会造成迭代陷入局部最优的问题依然存在。

因此,本发明提出了一种基于orb图像特征的icp快速点云配准算法的改进方法。



技术实现要素:

本发明的目的在于提供一种基于orb图像特征的icp快速点云配准算法的改进方法,通过对彩色图像进行orb特征匹配,为icp精确配准提供初始变换矩阵,针对现有基于orb图像特征的icp快速点云配准算法中存在的迭代陷入局部最优的问题做出改进,以保证在高精度匹配的前提下满足算法实时性要求。

为实现上述目的,本发明提供如下技术方案:

本发明提供一种基于orb图像特征的icp快速点云配准算法的改进方法,包括如下步骤:

步骤1:提取rgb-d相机相邻两帧彩色图像的orb特征并匹配;

步骤1.1:利用运算速度快的fast(featuresfromacceleratedsegmenttest)角点检测子来检测图像特征点;

步骤1.2:利用基于像素点二进制位比较的brief特征描述子来描述特征,由于brief不具有旋转不变性,所以orb算法中利用特征点的方向矢量对brief特征描述符进行转向,生成steeredbrief特征描述符;

设原始的brief选取的点集为:

使用特征点方向θ和相对应的旋转矩阵rθ将s构建为一个“转向”矩阵,即

sθ=rθs

其中,θ为特征点的方向。

则生成的steeredbrief特征描述符为:

gn(p,θ)=fn(p)|(xi,yi)∈sθ

步骤1.3:对于图像1中的任意特征点,通过蛮力算法在图像2中寻找与所述任意特征点匹配的特征点;

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

步骤1.5:使用随机采样一致性(randomsamplingconsensus,ransan)算法计算基本矩阵其中,krgb是彩色摄像机的内参矩阵,r是旋转矩阵,s是由平移向量t定义的反对称矩阵,即:

步骤2:求解旋转平移矩阵;

步骤2.1:结合所述步骤1.5中得到的基本矩阵f和彩色摄像机内参矩阵krgb计算本质矩阵e,

步骤2.2:采用奇异值分解法(svd)对所述步骤2.1中的本质矩阵e进行分解,得到

步骤2.3:对所述步骤2.2中的本质矩阵运动分解,得到旋转矩阵平移向量

其中,

步骤3:采用gpu加速实现icp精确配准;

步骤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:设置迭代最大次数,开始迭代,设置对应点间距离和法向量间的夹角作为约束条件,剔除不满足所述约束条件的错误匹配点对,当迭代次数达到最大值,迭代结束,完成点云配准,否则继续迭代计算点云配准矩阵。

所述通过蛮力算法进行搜索的具体过程如下所示:查找图像1中每个特征点的2个最邻近特征点:如果某个特征点的最邻近匹配点,没有一一相互对应,则拒绝这一对匹配点;同时如果某个特征点的最邻近距离与次邻近距离的比值小于某个比例阈值,则拒绝这一对匹配点。

所述根据匹配点对的hamming距离筛选正确匹配点对的方法为:

其中,max_dis表示所有匹配点对之间的最大距离,per∈(0,1),dis(xi,yi)表示第i对点对之间的hamming距离,即对一组特征点对的描述符进行异或运算,统计结果为1的个数为所求的hamming距离。当某点对之间的距离小于最大距离的per倍时,我们认为这是一对正确匹配点对。

所述gpu用于接受来自cpu的数据并行计算,然后将计算结果返回cpu,提高大规模数据的计算速度。

所述匹配点对间的距离阈值和角度阈值作为约束条件,用于去除错误匹配点对。

附图说明

图1为本发明具体实施方式中的一种基于orb图像特征的icp快速点云配准算法的改进方法的流程图;

图2为本发明具体实施方式中orb特征检测与匹配流程图;

图3为本发明具体实施方式中求解旋转平移矩阵流程图;

图4为本发明具体实施方式中cuda编程模型示意图;

图5为本发明具体实施方式中基于gpu加速的icp配准流程图。

具体实施方式

下面结合附图对本发明实施例中的技术方案进行清楚、完整地描述。

如图1所示,为本发明实施例的一种基于orb图像特征的icp快速点云配准算法的改进方法的流程图,包括以下步骤:

步骤1:提取rgb-d相机相邻两帧彩色图像的orb特征并匹配。

步骤2:计算三维空间旋转平移矩阵。

步骤3:采用gpu加速实现icp精确配准。

如图2所示,为本发明实施例的orb特征检测与匹配流程图。

利用rgb-d相机采集连续两帧彩色图像1和图像2,分别提取各自的orb特征。orb(orientedfastandrotatedbrief)算法是一种基于视觉信息的特征点检测与描述算法,是fast特征点检测算法和brief特征描述子的结合与优化。利用运算速度快的fast角点检测子来检测特征点,且增加了fast特征的方向信息,利用基于像素点二进制位比较的brief特征描述子来描述特征,且orb算法改进了brief描述子不具备旋转不变性以及对图像噪声敏感的缺点。具体包括以下步骤:

步骤1.1:采用fast(featuresfromacceleratedsegmenttest)算法检测图像特征点。

该算法的基本原理是:当待测像素点的邻域内有足够多的像素点与其有很大的区别时,认为该像素点为一个特征点。以灰度图为例,检测待测像素点o是否为特征点,有

其中,i(o)表示待测像素点o处的灰度值,i(i)是以像素点o为圆心,r为半径的离散化的bresenham圆的边界上任意一点像素灰度值,thr为用户设置的灰度差阈值,n为与待测像素点o的灰度值具有较大差异的像素个数,当n大于圆周像素个数总数的四分之三时,认为像素o是一个特征点。

fast特征点不具备尺度不变性,解决方法是建立图像金字塔,通过在每一层金字塔图像上都做一次fast特征检测来实现尺度不变性。

fast特征点的方向通过计算矩阵得到,对于任意特征点o,定义o的邻域像素的(p+q)阶距为:

其中,i(u,v)是像素点(u,v)处的灰度值。

则图像块的质心位置为:

构建一个从图像块的中心o指向质心c的向量,则定义特征点的方向为:

θ=arctan(m01,m10)

为提高方法的旋转不变特性,特征点邻域像素需确保在一个圆形区域内,即u,v∈[-r,r],r为邻域半径。由此得到具有旋转不变性的ofast(orientedfast)描述符。

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

利用brief算法作为特征点的描述子,并针对其不具备旋转不变性的问题进行改进形成了rbrief描述子。brief是类似二进制编码表示的一种局部图像特征描述符,首先平滑图像块,然后根据高斯分布选取n组点对(xi,yi),1≤i≤n,对每一组点对,定义二进制测试τ

其中,p(x),p(y)分别为像素点x,y处的灰度值。依次对每一组点对进行τ操作,可定义唯一的n维二进制码串,即brief描述子

n一般可选择128,256,512等,在此选择n=256。

对于任何一个特征点来说,它的brief描述子s是由该特征点周围邻域n个点对组成的一个长度为n的二值串,定义2×n矩阵s为brief选取的初始点集对

使用特征点方向θ和θ对应的旋转矩阵rθ将s构建为一个“转向”矩阵,即:

sθ=rθs

其中,θ为特征点的方向。

我们得到具有旋转不变性的描述子,即:

gn(p,θ)=fn(p)|(xi,yi)∈sθ

步骤1.3:特征点匹配。

对于图像1中的任意特征点,采用bruteforce算法在图像2中寻找与其匹配的特征点,即通过蛮力算法进行搜索,蛮力算法是一种普通的模式匹配算法,查找图像1中每个特征点的2个最邻近特征点:如果某个特征点的最邻近匹配点,没有一一相互对应,则拒绝这一对匹配点;同时如果某个特征点的最邻近距离与次邻近距离的比值小于某个比例阈值,则拒绝这一对匹配点,通过这样滤除一些不好的匹配点对后,可以提高后续匹配的速度和精度。

步骤1.4:去除错误匹配点对,根据匹配点对的hamming距离筛选正确匹配点对。

根据orb算法求得的一系列特征点对会存在错误匹配点对,需要将它们从中剔除。由于orb算法得到的brief描述符为二进制码串,很容易计算匹配点对之间的hamming距离,对一组特征点对描述符进行异或运算,统计结果为1的个数即为所求的hamming距离。我们根据匹配点对间的hamming距离来筛选正确匹配点对,具体方法如下:

其中,max_dis表示所有匹配点对之间的最大距离,dis(xi,yi)表示第i对点对之间的hamming距离,per∈(0,1),当某点对之间的距离小于最大距离的per倍时,我们认为这是一对正确匹配点对,并将该点对用于后续运算。

步骤1.5:使用随机采样一致性(randomsamplingconsensus,ransan)算法计算基本矩阵f。

首先利用8点法估计基本矩阵f'作为ransac算法的迭代初值,然后根据该基本矩阵f'判断内点(正确匹配点对)和外点(误匹配点对)的个数,当内点越多,表示该矩阵越有可能是正确的基本矩阵。重复随机采样过程,选取具有最多的内点数据集的基本矩阵作为最终求得的基本矩阵f,即:

其中,krgb是彩色摄像机的内参矩阵,r是旋转矩阵,s是由平移向量t定义的反对称矩阵,即

如图3所示,为本发明实施例的求解旋转平移矩阵流程图。具体包括如下步骤:

步骤2.1:由已得到的基本矩阵f,结合彩色摄像机内参矩阵krgb计算本质矩阵e,计算公式为:

步骤2.2:对本质矩阵e采用奇异值分解法(svd)进行分解。用奇异值分解法(svd)来求解icp算法过程中的几何参数最初是由arun等提出来的,通过矩阵变换的相关性质,直接求解出最优的参数解。对由(1)中得到的本质矩阵e采用奇异值分解法(sad)分解后,得到:

步骤2.3:计算旋转矩阵r和平移向量t。本质矩阵包含了摄像机的运动信息(r|t),对本质矩阵进行运动分解,可得:

其中,

如图4所示,为本发明实施例的cuda编程模型示意图。

图形处理器(graphicprocessingunit,gpu)是显卡的主要处理单元,能够和cpu高速交换数据,gpu相比于cpu可以并行处理数据,非常适合大规模数据的运算。统一计算设备架构(computeunifieddevicearchitecture,cuda)是由nvidia推出的通用并行计算架构,非常适合大规模数据密集型计算。在cuda编程环境中,cpu作为主机(host)负责控制整个程序的主流程,gpu为一个通用计算设备(device),为协处理器。编写cuda并行程序时,程序代码分为主机端代码和设备端代码,主机端代码主要是串行部分的代码,并行部分的代码以kernel函数的形式放入gpu的多线程中并行执行,主机端代码可以通过kernel函数入口调用并行计算功能。kernel函数使用一种扩展的c语言编程,称为cudac语言。cuda分为网格-线程块-线程三级架构,其中线程(thread)是cuda的最小执行单元,每个线程执行一次基本运算,多个线程组成一个线程块(block),多个块组成一个网格(grid)。通过共享存储在共享内存中的数据,相同线程块内的线程之间可以相互通信,但线程块与线程块之间是不能进行通信的。

如图5所示,为本发明实施例的基于gpu加速的icp配准流程图,具体包括以下步骤:

步骤3.1:为第i帧深度图像di(p)上的每一个像素p(u,v)分配一个gpu线程,具体方法为:将分辨率为640×480的深度图像分给一个网格,该网格分为20×60个线程块,各个块又分为个线性,这样一来,每个线程就可以完成一个像素点的坐标变换运算。

步骤3.2:通过红外摄像机内参矩阵kir反透射变换计算深度图像对应的三维顶点坐标映射vi,计算公式为:

vi=di(p)k-1

将该顶点分别指向相邻顶点的两个向量叉乘便是该顶点对应的法向量,即:

ni(u,v)=(vi(u+1,v)-vi(u,v))×(vi(u,v+1)-vi(u,v))

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

步骤3.4:利用icp算法估计点云配准矩阵。

步骤3.4.1:根据投影法获取相邻两帧点云间的匹配点对,即对第i帧点云中的任意一点,利用变换矩阵转换到第i-1帧点云摄像机坐标系下,利用投影法在第i-1帧点云中找到与其对应的点。

步骤3.4.2:计算对应点间的欧式距离和法向量间夹角,并设置距离阈值和角度阈值作为约束条件,用于去除错误匹配点对。

本实施例中设置的距离阈值为0.1m,法向量间夹角的角度阈值为20°,当对应点间的距离和法向量间的夹角不满足以下条件时,我们认为该点对为错误匹配点对,即:

s=||v-vk,g||,s<0.1m,

步骤3.4.3:以第i帧点云到第i-1帧点云中对应点的切平面距离的平方和作为误差函数,利用最小化误差函数法估计变换矩阵ti。假设第i帧点云集中任意一点p在第i-1帧点云中的对应点为q,则距离误差函数表示为:

e=argmin||ni-1·(tipi-qi-1)||2

其中,ti表示第i帧的4×4的旋转平移矩阵。

设定迭代次数最大值s=max为迭代终止条件,设s=0为第一次迭代,上述步骤3.4.1-3.4.3重复一次,迭代次数加1,即s=s+1。

当迭代次数达到所述设定的最大值s=max,迭代结束,否则继续迭代计算估计点云配准矩阵,直到满足终止条件为止。利用最终得到的旋转平移矩阵即可将两帧点云配准到一个坐标系下,从而完成点云配准的目的。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神的情况下,能够以其他具体形式实现本发明。本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1