(1. 阳理工大学 机械工程学院,辽宁省 沈阳市 110159
摘要:为了解决点云图建立时,相机位姿估算精度问题,使用传统的ORB算法和使用SIFT算法对相机位姿估算,对比两次估算后的数据得到更优秀的特征匹配方法。这两种算法的对比有望提供一种更加优秀的方法解决视觉slam中位姿估算。
关键词:ORB算法;SIFT算法;位姿估算;视觉slam
1引言
在建立模型的点云图时,需要精确的估算出相机的位置姿态才可以,此时就需要运用到一个具有标志性的点去计算,
相机拍摄第一张照片的位置为,运动后拍摄的第二张图片的位置为,P点为空间中标识的一个点,也就是所谓的路标点,其在相机拍摄的两张照片中的位置分别是,这两个点在相机中的成像是一样的。如何获取这样的相同点就是用到特征点匹配的方法[1]。
2 ORB特征提取与匹配
2.1 FAST关键点
FAST角点的检测方式是找到图像中灰度变化较明显的地方,即先把图片转化为灰度图,找到灰度梯度较大的地方。这种方法检测速度特别快速。具体检测过程如下[2]:
1、在图像中提取一个像素点p,读取其灰度值为。
2、设置灰度阈值T。
3、选择以像素p为中心的半径为R的圆边缘上的像素点。(在这里我选择了半径为3的圆里16个像素点)
4、当读取图片的时候发现像素点p在选取的圆边缘上发现有连续N个像素点的亮度在阈值外,即大于。若小于,那么这个像素点p被认定为特征点,其中N可以根据图像分辨率选取。
5、循环上述方法遍历每一个元素[3]。
2.2 描述子
提取出所有的ORB的FAST角点后,需要对角点计算其描述子。首先介绍一下什么是描述子以及描述子计算。
ORB使用的描述子是BRIEF,它在表达关键点附近的两个元素的时候使用了0与1表示其大小,若p比q点大则记为1,反之则为0。如果一共选取了N个这样的点,那么最后会获得N维的由0与1组成的向量,然后对其强度比较[4]。
3 SIFT特征提取与匹配
3.1SIFT特征点提取
先假设图像的尺度空间为,定义一个变化的尺度的高斯分布函数与原图像的卷积表达式为:
x与y是图像像素的位置,表达尺度空间因子,当越小表示相应的尺度变化就越小。
高斯金字塔的建立大致分为两个步骤:
1、对图像进行不同程度的高斯模糊处理。
2、对图像做隔点采样计算。
假设高斯图像金字塔具有s组高斯模糊图像,那么每层的尺度则有如下公式:
其中: i--当前层数或当前组数
O--当前组数其中的interval图像的层数坐标
S--表示总层数
--表示初始尺
为了提高关键点的稳定性,需要进行关键点的曲线拟合,利用DOG在尺寸空间的泰勒展开拟合函数为:
其中,X=表示该点相对于插值中心点的左右偏移量。高斯梯度计算公式:
关键点方向计算公式:
3.2关键点的描述与匹配
把像素的坐标旋转到关键点方向上去使得两坐标重合。转变公式如下:
加权公式如下所示:
其中:a,b--关键点在图像中的位置
x,y--种子点在未旋转下图像位置坐标
,--种子点在旋转下图像位置坐标
d--划分的子区域的边界这里面我用的是d=4
经过计算出每个子区域内不同像素点的权重后可以得到梯度图[5]。
具体匹配步骤如下:
(1)在参考图像中先用高斯金字塔把图像分出128层,并选择每一层的关键点组成图像的一个关键点的子集:
(2)在观测图中也按上述找出子集:
(3)计算两个关键点相似度:
得到的相似度[7]。
4结果对比
根据OpenCV算法库提供的ORB算法与SIFT算法,结合上述两种方法获得如下结果一种是ORB特征匹配算法的,一种是SIFT特征匹配算法的。
方式 | R |
ORB | 0.9365 0.3240 0.1340 0.3150 0.9260 0.2473 0.2042 0.1934 0.9596 |
SIFT | 0.9365 0.3050 0.1342 0.3240 0.9260 0.2234 0.2040 0.2073 0.9590 |
SIFT特征匹配出来的匹配对数明显比ORB算法要多。如下表所示,不难看出矩阵是有所变动的。
在实际应用中需要多次计算相机位姿,这样ORB就会产生更多累计误差使所建立的点云图精度变差。
参考文献
[1] 闫元.基于深度学习与双目视觉的草莓识别定位研究[D].太谷:山西农业大学,2020.
[2] 陈乾辉.空间目标成像原理及运动控制[J],长春工业大学学报(自然科学版):2011,32(05),433-437.
[3] 李艳,基于RGBD图像的多前景物体分割研究[D].济南:山东大学,2023.
[4] 熊伟萌.视觉SLAM图像点特征提取和配准算法改进与评估[D].南昌:南昌大学,2023.
[5] 陈咏真.基于SLAM的视觉里程计特征匹配方法研究[D].西安:西安电子科技大学,2022.