基于三角剖分的室内视觉定位方法与流程

文档序号:13686545阅读:666来源:国知局
基于三角剖分的室内视觉定位方法与流程

技术领域:

本发明属图像处理领域。是一种利用计算机技术、数字图像处理技术、光学技术等实现室内视觉定位方法。该方法能实现对摄像头摄取视频的进行分析,并绘制出摄像头的移动轨迹。



背景技术:

三角剖分是拓扑学、图形领域里重要的研究方法。广泛应用于三维重建、人脸识别中。其中最著名的delaunay三角剖分(dt,delaunaytriangulation),按照最小内角最大化原则形成的剖分,dt是许多领域实际应用中最受关注的一类,应用十分广泛,该剖分可追溯到g.voronoi图,是于1907年提出的,后来delaunay在1932年提出了解决该剖分完整而实用的方法,近几十年来该算法不断得到改进,以适应不同的应用。

delaunay三角剖分的实现主要有三种方式:分治算法、逐点插入法()与三角网生成法。由于三角网的时间效率较低。而分治算法的空间效率较低,因而选择逐点插入法中的bowyer-watson作为delaunay三角剖分的实现方式。本文提出一种在摄像头朝向地面时利用delaunay三角剖分剔除误匹配的方法。



技术实现要素:

本发明根据视觉定位要求高效的实时性和精确性,采用fast算法提取特征点,klt跟踪特征点。根据摄像头垂直于地面,采集的图像无遮挡的特点,针对这种情况下的图像中各个区域的相互位置保持不变,提出一种delaunay三角剖分剔除误匹配的方法。不同于其他误匹配剔除方法以及特征点匹配只考虑图像特征点的局部性,本方法是利用三角剖分去表示特征点的相对关系,引入了图像的全局性。在剔除误匹配后,使用运动估计方法计算出序列图像中连续两幅图像的偏移量,从而计算摄像头的位移大小和方向。

本发明的技术方案参见图1、图2。是在计算机的上位机平台上运行,用摄像头采集地面的序列图像,并对图像进行预处理。跟踪前一帧图像的特征点获取匹配点,再通过本文提出的三角剖分去除误匹配方法剔除错误匹配,最后进行运动估计,计算出序列图像的偏移大小和方向,在计算机的上位机平台上,根据偏移大小和方向画出摄像头的运动轨迹,本发明的特征在于该方法还依次包括下述步骤:

1)首先提取摄像头采集地面的序列图像,对图像进行畸变矫正,再灰度化得到灰度图,之后对灰度图高斯滤波去除噪声。

2)然后用fast算法提取预处理后的图像中的特征点。并对特征点点集做delaunay三角剖分,使得特征点之间产生连接关系,并存入三角形链表。

3)根据第2)步骤中得到的特征点,使用klt特征点跟踪代替匹配算法,确定特征点匹配对,直到特征点的数量少于阈值(这里的阈值为fast算法提取图像特征点数量的平均值)。

4)根据第3)第二步骤得到的匹配对,由于摄像头对准地面,不存在遮挡的情况,所以特征点之间的相对位置保持不变,因此本文首次提出使用三角剖分去表示特征点之间的相对关系。将上一帧的三角连接关系,传递到当前帧,并对所对应的匹配点进行连接,形成新的三角形。由于三角剖分形成的三角形不存在重叠区域,并且无遮挡情况下的图像中的区块位置关系是保持不变的。因此,如果匹配正确,则新形成的三角形之间不存在重叠区域。若两个三角形存在重叠区域,则记录该三角形的三个顶点,作为可能误匹配的点,最后,迭代求解最有可能误匹配的特征点点对并去除。

5)根据第4)步骤中得到的正确匹配点对,采用六参数仿射模型,计算图像的偏移大小和方向。

6)根据第5)步骤中计算出的图像偏移大小和方向,在上位机上实时绘制摄像头的移动轨迹。

本方法旨在根据摄像头获取的地面序列图像,用基于三角剖分的误匹配剔除方法获得更精确的特征点匹配,从而得到更好的位移和方向的估计。并实时在上位机实时的绘制出摄像头的移动轨迹。

附图说明:

图1是该分析方法应用系统结构框图

1.机械平台,2.摄像头,3.计算机,4.显示器;

图2是该室内定位方法的主流程图;

图3是特征点提取和三角剖分的结果图。

图4是正交投影示意图;

图5是该分析方法的主程序流程图;

具体实施方式:

本发明实施中是采用图像摄取装置实现图像的采集,并将图像传输至计算机,对传入的序列图进行畸变矫正与灰度化。对于当前图像帧,使用fast算法提取特征点,并初始化三角连接关系。之后,使用klt算法获得前后两幅图像特征点的粗匹配,接着使用上一帧图像的三角连接关系去除误匹配的特征点,得到正确的匹配对。根据匹配结果用六参数仿射模型估计出摄像头的位移大小和方向。实施过程见图5,具体实施中将图像传输至计算机后,在计算机中完成以下程序:

1、输入序列图像。

1)采用基于标定模板的方法求取畸变系数后,对图像进行畸变矫正。

2)对rgb图像进行灰度化,本文使用加权平均法得到灰度图,其中r为红色通道分量,g为绿色通道分量、b为蓝色部分分量。见公式1。

gray=0.11b+0.59g+0.3r(1)

3)采用高斯滤波去除图像中的噪声影响。

2、初始化参数,对于系统启动后的第一帧图像,使用opencv库中的fast算法提取图像特征点,作为参考帧的特征点,存入特征点容器ref_point。对于第二帧图像,采用klt算法跟踪ref_poin点集,获得匹配点点集cur_point。之后进入步骤3。

3、首先采集序列图像,再对图像作预处理(与步骤1中的图像处理过程相同)。并将ref_point点集覆盖为cur_point点集。之后进入步骤4。

4、采用klt特征点跟踪算法子程序跟踪参考帧点集ref_point获得当前帧的匹配点集cur_point,并判断当前帧匹配点的数量是否大于给定的阈值(这里的阈值为fast算法提取图像特征点的数量的平均值)。

1)若数量小于阈值,则认为匹配的数量不满足要求。需重新获得匹配点,即对上一帧图像提取特征点,在当前帧图像中,使用klt算法跟踪特征点获得新的匹配cur_point点集,并跳转到步骤3。

2)若匹配点数量大于阈值,满足要求,则继续运行到步骤5。

5、对于参考帧的特征点点集ref_point做delaunay三角剖分。本文选择逐点插入法中的bowyer-watson作为delaunay三角剖分的实现方式,该算法始于一个外部的虚拟三角形,所有的外部点都连接着两个虚拟三角的顶点,通过检查可以确定由点集构成的外部轮廓。再逐个加入内部点,并在三角形的外接圆内搜索该点,去掉包含该点的三角剖分。利用voronoi划分确定在何处插入delaunay线,重新构造三角形。图3为特征点提取与三角剖分的结果。剖分结束后,将剖分后的的每个三角形的三个坐标存入容器trianglelist,作为特征点之间的连接关系。之后进入步骤6。

6、该步骤分为以下3个阶段:

1)对cur_point使用三角关系(trianglelist)进行连线,形成三角形。检测每个三角形区域是否存在重叠,若存在,则记录在candidate三角形容器中。之后进入下一小步骤2)。

2)对所有重叠的三角形面积进行判断,确定面积最大的三角形tmax,并存入trianglelistdelete三角形容器中,继续检测是否存在重叠面积与tmax相等的三角形,若存在,将所有符合要求的三角形存入trianglelistdelete三角形容器中,之后从candidate中剔除上面所使用了的三角形(加入trianglelistdelete容器中的三角形)。进入下一小步骤3)。

3)判断是否使用了candidate三角形容器中所有的三角形,三角形之间有无重叠,剔除的三角形数量是否大于规定阈值(这里的阈值设为三角剖分所产生的三角形的数量的1/3。防止剔除匹配点的数量过多,导致没有足够匹配点进行精确位姿估计),以及重叠区域面积最大的三角形tmax的面积是否小于规定阈值(这里的阈值最小设置为0,值越大剔除的条件越苛刻),若上面四个判断有一个为是,回到上一小步骤2)。否则进入下一小步骤4)。

4)将所有需要剔除的误匹配点按坐标绘制在一张二维mapdeltra图上,然后检测所有粗匹配的特征点cur_point,若匹配点的坐标在mapdeltra图上的位置的数值不为0,则剔除。最后得到剔除误匹配后的cur_point,并进入步骤7。

7、采用六参数仿射模型,得到当前帧图像相对于参考帧图像的偏移量。偏移量主要包含相对于x轴上发生的偏移量δx与y轴上发生的偏移量δy。摄像机发生位移变化的六参数仿射模型表达式如下:

式中(xi-1,yi-1)和(xi,yi)为第i-1帧和第i帧图像的匹配点像素坐标,(a1,a2,a3,a4,a5,a6)为图像帧之间的变换参数,a3、a6表示图像的平移运动,a1、a2、a4、a5表示图像的缩放、旋转运动。k为缩放运动参数,并假设摄像机在水平x方向和垂直y方向上的缩放系数一致;θ为相对于图像中心的旋转角度,c为横坐标偏移量,d为纵坐标偏移量。得到偏移量后进入步骤8。

8、如果x轴和y轴的偏移改变了,则更新上位机上面的坐标,绘制轨迹,否则不更新上位机界面。之后回到步骤3。

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