slam特征点深度 svd_视觉SLAM(五)特征点提取与匹配

本文详细介绍了视觉SLAM中的特征点提取与匹配,如ORB特征,以及通过2D-2D对极几何和三角化进行深度估计的方法,包括八点法、DLT和PnP问题的解决策略。
摘要由CSDN通过智能技术生成

特征点法视觉里程计

特征点提取与匹配

经典 SLAM 模型中以位姿 路标( Landmark )来描述 SLAM 过程

? 路标是三维空间中固定不变的点,能够在特定位姿下观测到

? 数量充足,以实现良好的定位

? 较好的区分性,以实现数据关联

在视觉 SLAM 中,可利用图像特征点作为 SLAM 中的路标

特征点是图像中具有代表性的部分;

具有可重复性,可区别性,高效,本地的特点

特征点的信息

? 位置、大小、方向、评分等 关键点

? 特征点周围的图像信息 描述子( Descriptor)

20200612123355720236.png

特征描述应该在光照、视角发生少量变化时仍能保持一致

例子:SIFT/SURF/ORB(见 OpenCV features2d 模块)

典型的特征点

ORB 特征

关键点: Oriented FAST

描述: BRIEF

20200612123355873547.png

FAST

? 连续 N 个点的灰度有明显差异

Oriented FAST

? 在 FAST 基础上计算旋转

描述子

BRIEF

? BRIEF 128 :在特征点附近的 128 次像素比较

? ORB :旋转之后的 BRIEF 描述

BRIEF 是一种二进制描述,需要用汉明距离度量

特征匹配

目的: 通过描述子的差异判断哪些特征为同一个点

暴力匹配:比较图 1 中每个特征和图 2 特征的距离

加速:快速最近邻方法(FLANN)

20200612123356084471.png

2D-2D 对极几何

特征匹配之后,得到了特征点之间的对应关系

? 如果只有两个单目图像,得到 2D 2D 间的关系——对极几何

? 如果匹配的是帧和地图,得到 3D 2D 间的关系——PnP

? 如果匹配的是 RGB D 图,得到 3D 3D 间的关系——ICP

20200612123356267076.png

20200612123356394998.png

三角化与深度估计

20200612123356556120.png

20200612123356643029.png

20200612123356822705.png

求E使用八点法来求

20200612123356989686.png

20200612123357089289.png

从E计算R,t则使用奇异值分解

\[E=U\Sigma V^T

\]

一共会生成四个可能的解,但只有一个深度为正。

\[t_1^{\vee}=UR_Z(\pi/2)\Sigma U^T,R_1=UR^T_Z(\pi/2)V^T\t_2^{\vee}=UR_Z(-\frac{\pi}{2})\Sigma U^T,R_2=UR^T_Z(-\frac{\pi}{2})V^T

\]

20200612123357172292.png

SVD 过程中:取\(E = U diag (\frac{\delta_1+\delta_2}{2},\frac{\delta_1+\delta_2}{2},0)V^T\) 因为 E 的内在性质要求它的奇异值为\(\delta,\delta,0\);

? 最少可使用五个点计算 R,t ,称为五点法, 但需要利用 E 的非线性性质,原理较复杂

八点法的讨论

八点法可用于单目 SLAM 的初始化(初始化需要相机运动)

尺度不确定性:归一化 t 或特征点的平均深度(相机运动)

纯旋转问题: t=0 时无法求解

点对数多于八对时:则使用最小二乘法进行求解

有外点时:使用RANSAC进行过滤。

从单应矩阵恢复R,t

八点法在特征点共面时会共面

设特征点位于某平面上:\(n^TR+d=0\)或\(-\frac{n^TP}{d}=1\).

20200612123357271895.png

20200612123357439853.png

小结

2D——2D 情况下,只知道图像坐标之间的对应关系

? 当特征点在平面上时(例如俯视或仰视),使用 H 恢复 R,t

? 否则,使用 E 或 F 恢复 R,t

? t 没有尺度

求得 R,t 后:

? 利用三角化计算特征点的 3D 位置(即深度)

? 实际中用于单目 SLAM 的初始化部分

3D-2D PnP

20200612123357545315.png

目的:已经 3D 点的空间位置和相机上的投影点,求相机的旋转和平移(外参)

解法:代数的解法/优化的解法

1. 代数解法

a. DLT(direct Linear Trace)

设空间点\(P=(X,Y,Z,1)^T\),投影点为:\(x=(u,v,1)\) 归一化坐标,则投影关系:\(sx=[R|t]p\)

展开:

20200612123357630270.png

? 将它看成一个关于 t 的线性方程,求解 t

? 注意最下一行为\(s=[t_9,t_{10},t_{11},t_{12}][X,Y,Z,1]^T\)

? 用它消掉前两行中的 s ,则一个特征点提供两个方程:

\[t_1=(t_1,t_2,t_3,t_4)^T,\t_2=(t_5,t_6,t_7,t_8)^T,\t_3=(t_9,t_{10},t_{11},t_{12})^T

\]

\[t^T_1P-t^T_3Pu_1=0\t_2^TP-t^T_3Pv_1=0

\]

为求解 12 个未知数,Y一般需要 12/2=6 对点。(超定时求最小二乘解)

? DLT 将 R,t 看成独立的未知量,所以在求出结果后,需要将 t 组成的矩阵投影回 SO(3) 3)(通常用 QR 分解实现)

? 此外,也可代入内参矩阵 K ,但 SLAM 中一般假设 K 已知,所以这里没有代入。

为求解 12 个未知数,需要 12/2=6 对点。(超定时求最小二乘解)

20200612123357722061.png

b. P3P:利用三对点求相机内参

c. EPnP /UPnP/...

2. 优化解法: Bundle Adjustment

20200612123357829476.png

线性化和雅可比

20200612123357890019.png

20200612123358030635.png

20200612123358130238.png

对3D点求导:

20200612123358233747.png

4. 3D-3D ICP

20200612123358296243.png

ICP 也可以从非线性优化角度求解,但:

? 已知匹配时, ICP 问题存在唯一解或无穷多解的情况。在唯一解的情况下,只要能找到极小值解,那么这个 极小值就是全局最优值 。

? 所以正常情况下, SVD 结果和优化一样,且优化很快收敛。

注:

? 在激光情况下,匹配点未知,将指定最近点为匹配点。此时问题非凸,极小值不一定为最小值。

? 利用非线性优化可以将 ICP 与 PnP 结合在一起求解。

小结

本章介绍了与特征点相关的视觉里程计部分算法,包括:

特征点是如何提取并匹配的;

如何通过2D-2D的特征点估计相机运动;

三角化原理;

3D-2D的PnP问题,线性解法与BA解法;

3D-3D的ICP问题,线性解法与BA解法。

5. 三角化与深度估计

20200612123358389011.png

20200612123358471037.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值