日期:2023-01-24 阅读量:0次 所属栏目:计算机应用
摘 要:本文主要介绍了图像的预处理,特征提取和边缘检测方法,重点介绍了立体匹配的三种方法,实验研究基于SIFT特征算子的特征点匹配。
关键词:双目视觉;特征提取;特征匹配
机器人双目视觉是指通过分析和综合从不同视点捕获的两幅图像推导三维景物的几何形体结构。从信息处理的角度看,一个机器人双目立体视觉系统必须顺序解决如下两个问题:立体匹配和三维重建。三维重建的先决条件是建立两幅图像中图元的对应关系,即立体匹配。实际的立体图像对的准确性,是三维重构的重要前提条件。
1 图像预处理
通常被观测的图像中包含着各种各样的噪声和畸变,去掉这些图像劣化因素,使图像更易进行以后的观察及处理,而对输入图像进行一系列预处理。图像 质量的改善,代表性的有灰度变换的对比度增强、除去噪声的滤波及平滑、增强边缘的图像锐化等。
2 特征点的提取
图像的匹配是拼接技术中重要的一个步骤。图像匹配大多是采用基于特征的匹配来完成。本文所研究的匹配技术也是主要围绕特征匹配来展开的。特征匹配一般分三步:特征点的提取、特征匹配、伪匹配的消除。
图像特征包括像素灰度特征、色彩特征、区域特征、纹理特征、轮廓特征、边缘特征、角点特征等。在各种特征中,特征点是一种稳定的、旋转不变、能克服灰度反转的有效特征。在匹配中应用特征点既可以减少参与的计算量,又不损失图像的重要灰度信息。
D.G.Lowe1999年提出基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子——SIFT(Scale Invariant Feature Transform,尺度不变特征变换)算子,并于2004年完善总结。后来Y.Ke将其描述子部分用PCA代替直方图的方式,对其进行改善。SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置、尺度、旋转不变量。
2.1 尺度空间极值求取
1.构建地图的尺度空间函数
Koenderink(1984)和Lindeberg(1994)研究发现高斯函数是唯一的尺度空间内核函数。于是一幅二维图像的尺度空间函数定义为:
其中是尺度可变高斯函数, ,是空间坐标,是尺度坐标;表示卷积操作;表示输入图像。
为了更有效的检测出尺度空间中的稳定特征点,我们进一步使用高斯函数之差对图像进行卷积操作,得到高斯差分函数DOG(k是常数,本文中取k=)即:
2.空间极值点检测
为了得到高斯差分图像中的极值点,样本像素点需要和它同尺度的相邻的8个像素点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
2.2 特征点(极值点)位置的确定
通过拟和三维二次函数以精确确定特征点的位置和尺度,同时去除低对比度的特征点和不稳定的边缘响应点(因为DOG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力。这里我们取=10。
2.3 特征点方向的确定
利用特征点邻域像素的梯度方向分布特性为每个特征点指定方向参数,使算子具备旋转不变性。对每幅图像,其梯度值和方向通过像素点的差值预先得到:
至此,地图的特征点已检测完毕,每个特征点有三个信息:位置、所处尺度、方向。由此可以确定一个SIFT特征区域。
2.4 特征点描述子的生成
首先将坐标轴旋转为关键点的方向,以确保旋转不变性。接下来以关键点为中心取8×8的窗口。图3左部分的中央黑点为当前关键点的位置,然后在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点。这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对含有定位误差的特征匹配有较好的容错性。
3 特征点的匹配
3.1 基于欧式距离的特征匹配
当两幅图像的SIFT特征向量生成后,取地图1中的某个关键点,并找出其与地图2中欧式距离最近的前两个关键点,在这两个关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接受这一对匹配点。降低这个比例阈值,SIFT匹配点数目会减少,但更加稳定。
3.2 采用RANSAC算法去除误匹配
自动提取和匹配得到的伪匹配特征点集中难免存在误配点,特征点提取时也存在一定的精度误差,我们可以采用另外一种变换估计算法-RANSAC算法,利用特征点集的内在约束关系进一步去除误匹配点。
4 仿真结果
本文基于图5拍摄的两幅图像进行特征点的提取和匹配。首先进行前几节的图像与处理等环节。然后进行基于SIFT算子的特征点匹配。如图1所示。
图1 两幅地图的特征匹配
5 小结
本文主要介绍了有关立体匹配的知识和概念。在进行图像的预处理,边缘检测,特征提取的前提下,详细介绍了包括基于区域、特征、相位的立体匹配方法及其约束条件,并通过实验验证可行的匹配方法,计算出特征点像素坐标。 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/241883.html