searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

视觉里程计之特征点法

2023-06-27 06:46:53
18
0
  1. 介绍

视觉里程计在SLAM中又称为前端(区别于位姿优化和滤波),其主要作用是估计相邻图像帧之间相机的运动,给后端优化提供一个稳定的初始值。视觉里程计主要分成特征点法和直接法,特征点法从图像中提取特征点和特征向量,提取的特征点很稳定且鲁棒,不易受光照影响。目前基于特征点的方案比较成熟,在众多SLAM系统中得到广泛应用。

特征点法一般使用两视图几何,涉及到的算法和概念包括特征提取和匹配,对极几何,PnP问题,ICP问题,三角化等。

  1. 特征点提取和匹配

图像中的特征点指图像中具有特殊性质的点,包括角点、边缘、区块等,如harris、FAST、GFTT,这些点在相机运动过程中可持续存在,具有较高的辨识度。特征点一般具有如下性质:

  1. 可重复性:同一个特征点可以在不同的图像中找到
  2. 可区别性:不同的特征点具有不同的表达
  3. 高效性:特征点数量远低于像素的数量
  4. 本地性:特征点之和图像局部区域的像素相关

特征点包括关键点(KeyPoint)和描述子(Descriptor)两部分组成。关键点是特征点在图像中的位置和方向的表达,描述子是一个特征向量,用于描述关键点局部信息。

常见的特征点SIFT,SURF,ORB。大部分的特征点提取具有较好的并行性,可以使用GPU加速。

 

2.1 ORB特征点介绍

ORB特征点的关键点提取使用Oriented Fast,在提取FAST角点的基础上计算特征点的主方向。FAST角点提取的主要方法是比较像素与相邻像素之间的亮度差别,并根据周围像素与当前像素的明暗的排列关系确定。FAST角点的特点是比较容易扎堆,实际使用中一般应用nms过滤。其周围像素一般使用固定3个像素的圆周,不具有方向性和尺度。有点是计算过程只包括像素值的比较,计算速度较快。

ORB对FAST角点的改进包括两点。1)ORB在FAST角点上使用灰度质心法计算方向性;2)使用图像金字塔实现了尺度性。

ORB中描述子使用BRIEF描述子,在特征点周围区域选取128个固定像素点对,比较像素值的大小,形成一个二进制描述子向量。

2.2 特征点匹配

特征点匹配解决数据关联的问题,确定相邻两张图像中特征点的对应关系,为后端的姿态估计和优化减轻负担。

常见的特征点匹配方法包括暴力法(BruteForce)和FLANN方法。

特征点匹配一般计算量较大,这是制约SLAM性能的一个瓶颈。另外对于场景中存在重复纹理或者纹理缺失(如大片白色墙面等),其匹配效果会变差。

 

  1. 估计相机的运动

在提取特征点并完成特征点的匹配之后,可以根据点与点的对应关系计算相机的运动。

3.1 单目相机

当使用单目相机时,匹配的点对为2D坐标点,一般使用对极几何计算相机的相对位姿。

对极约束是对极几何中一个重要的概念,他描述了同一个场景在两个相机视图下,其中的像素点位置的几何约束,用如下公式表示:

 

 

 

其中E为本质矩阵,F为基础矩阵,K为相机内参,x1,x2为同一个点在两个视图中的位置。一般根据多个点的对应关系,可使用八点法求解本质矩阵E,然后使用SVD法从本质矩阵中恢复相机的外参R和T。

另外,如果确定目标所在场景为平面场景,可使用八点法计算单应矩阵,其表示两个平面之间的映射关系,一般采用RANSAC法,适合处理带有错误匹配的点对数据。

 

3.2 深度相机或双目相机

特征点的3D位置可使用深度相机或双目相机视差确定,故问题变成3D点对的位姿估计,一般使用ICP方法解决。

 

3.3 如果一组为3D点,一组为2D点,映射关系为3D点空间位置及其在相机投影中的位置,使用PnP方法解决,具体方法包括P3P, DLT, EPnP, UPnP, BA等。

 

参考资料:<<SLAM十四讲>>

0条评论
作者已关闭评论
l****n
5文章数
0粉丝数
l****n
5 文章 | 0 粉丝
原创

视觉里程计之特征点法

2023-06-27 06:46:53
18
0
  1. 介绍

视觉里程计在SLAM中又称为前端(区别于位姿优化和滤波),其主要作用是估计相邻图像帧之间相机的运动,给后端优化提供一个稳定的初始值。视觉里程计主要分成特征点法和直接法,特征点法从图像中提取特征点和特征向量,提取的特征点很稳定且鲁棒,不易受光照影响。目前基于特征点的方案比较成熟,在众多SLAM系统中得到广泛应用。

特征点法一般使用两视图几何,涉及到的算法和概念包括特征提取和匹配,对极几何,PnP问题,ICP问题,三角化等。

  1. 特征点提取和匹配

图像中的特征点指图像中具有特殊性质的点,包括角点、边缘、区块等,如harris、FAST、GFTT,这些点在相机运动过程中可持续存在,具有较高的辨识度。特征点一般具有如下性质:

  1. 可重复性:同一个特征点可以在不同的图像中找到
  2. 可区别性:不同的特征点具有不同的表达
  3. 高效性:特征点数量远低于像素的数量
  4. 本地性:特征点之和图像局部区域的像素相关

特征点包括关键点(KeyPoint)和描述子(Descriptor)两部分组成。关键点是特征点在图像中的位置和方向的表达,描述子是一个特征向量,用于描述关键点局部信息。

常见的特征点SIFT,SURF,ORB。大部分的特征点提取具有较好的并行性,可以使用GPU加速。

 

2.1 ORB特征点介绍

ORB特征点的关键点提取使用Oriented Fast,在提取FAST角点的基础上计算特征点的主方向。FAST角点提取的主要方法是比较像素与相邻像素之间的亮度差别,并根据周围像素与当前像素的明暗的排列关系确定。FAST角点的特点是比较容易扎堆,实际使用中一般应用nms过滤。其周围像素一般使用固定3个像素的圆周,不具有方向性和尺度。有点是计算过程只包括像素值的比较,计算速度较快。

ORB对FAST角点的改进包括两点。1)ORB在FAST角点上使用灰度质心法计算方向性;2)使用图像金字塔实现了尺度性。

ORB中描述子使用BRIEF描述子,在特征点周围区域选取128个固定像素点对,比较像素值的大小,形成一个二进制描述子向量。

2.2 特征点匹配

特征点匹配解决数据关联的问题,确定相邻两张图像中特征点的对应关系,为后端的姿态估计和优化减轻负担。

常见的特征点匹配方法包括暴力法(BruteForce)和FLANN方法。

特征点匹配一般计算量较大,这是制约SLAM性能的一个瓶颈。另外对于场景中存在重复纹理或者纹理缺失(如大片白色墙面等),其匹配效果会变差。

 

  1. 估计相机的运动

在提取特征点并完成特征点的匹配之后,可以根据点与点的对应关系计算相机的运动。

3.1 单目相机

当使用单目相机时,匹配的点对为2D坐标点,一般使用对极几何计算相机的相对位姿。

对极约束是对极几何中一个重要的概念,他描述了同一个场景在两个相机视图下,其中的像素点位置的几何约束,用如下公式表示:

 

 

 

其中E为本质矩阵,F为基础矩阵,K为相机内参,x1,x2为同一个点在两个视图中的位置。一般根据多个点的对应关系,可使用八点法求解本质矩阵E,然后使用SVD法从本质矩阵中恢复相机的外参R和T。

另外,如果确定目标所在场景为平面场景,可使用八点法计算单应矩阵,其表示两个平面之间的映射关系,一般采用RANSAC法,适合处理带有错误匹配的点对数据。

 

3.2 深度相机或双目相机

特征点的3D位置可使用深度相机或双目相机视差确定,故问题变成3D点对的位姿估计,一般使用ICP方法解决。

 

3.3 如果一组为3D点,一组为2D点,映射关系为3D点空间位置及其在相机投影中的位置,使用PnP方法解决,具体方法包括P3P, DLT, EPnP, UPnP, BA等。

 

参考资料:<<SLAM十四讲>>

文章来自个人专栏
音视频1
5 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0