特征点提取与匹配
经典SLAM模型中以位姿-路标(Landmark)来描述SLAM过程
- 路标是三维空间中固定不变的点,能够在特定位姿下观测到
- 数量充足,以实现良好的定位
- 较好的区分性,以实现数据关联
在视觉SLAM中,可以利用图像特征点作为SLAM中的路标
特征点:图像当中具有代表性的部分
- 可重复性
- 可区别性
- 高效
- 本地
特征点的信息:
- 位置、大小、方向、评分——关键点
- 特征点周围的图像信息——描述子(Descriptor)
例子:SIFT/SURF/ORB OpenCV features2d 模块
ORB特征
- 关键点:Oriented FAST
- 描述:BRIEF
FAST
- 连续N个点的灰度有明显差异
Oriented FAST
-
在FAST基础上计算旋转
BRIEF
- BRIEF-128:在特征点附近的128次像素比较
- ORB 旋转之后的BRIEF描述
- BRIEF是一种二进制描述,需要用汉明距离度量
特征匹配
- 通过描述子的差异判断哪些特征为同一个点
- 暴力匹配:比较图1中每个特征和图2特征的距离(汉明距离)
- 加速:快速最近邻居(FLANN)
特征匹配之后,得到特征点之间的对应关系
- 如果只有两个单目图像,得到2D-2D的关系——对极几何
- 如果匹配的是帧和地图,得到3D-2D的关系—— PnP
- 如果匹配的是RGB-D,得到3D-3D的关系——ICP
2D-2D对极几何
P在两个图像的投影为
两个相机之间的变换为
在第二个图像上投影为
记称为极线,反之亦然
-
称为极点
实践当中
通过特征匹配得到,P未知,未知
待求
推理过程
- 世界坐标:
- 以第一个图为参考系,投影方程:
- 使用归一化坐标(去掉内参):
- 齐次关系:
5.两侧左乘:t^x_2 = t^Rx_1
6.再一步左乘:t^ = t^
7 . 对极约束
t^
八点法的讨论
- 用于单目SLAM的初始化
- 尺度不确定性:归一化t或特征点的平均深度
- 纯旋转问题:t=0时无法求解
- 对于八对点时:最小二乘
-
有外点时:RANSAC
2D-2D对极几何小结
2D-2D情况下,只知道图像坐标之间的对应关系
当特征点在平面上时,(例如俯视或者仰视),使用H恢复R,t
否则,使用E或F恢复R,t
t没有尺度
求得R,t后:
利用三角化计算特征点的3D位置(深度)
实际中用于单目SLAM的初始化部分