SLAM笔记(六)直接法介绍

本章整理自高翔的SLAM十四讲之《直接法的原理与实现》以及PAMI上的《Direct Sparse Odometry》

1

之前总结的方法都需要先从图片中提取特征点并进行匹配,然后进行优化求解,这类方法称为特征法间接法。由于提取、匹配的过程中耗时很大,因此有人提出是否能不计算关键点或描述子,直接根据图像的像素信息来计算相机运动,这类方法称为直接法。随着一批不需提取特征的方法,如LSD(选取整幅图像中有梯度的部分来采用直接法,这种方法称为半稠密方法(simi-dense)),SVO(选取关键点来采用直接法,这类方法称为稀疏方法(sparse)),直接法渐露其自身优势。

1.1间接法与直接法的区别:

SLAM笔记(六)直接法介绍_第1张图片
除了提取和匹配耗时,在使用特征点时,也忽略了除特征点以外的所有信息,因此丢弃了很多可能有用的图像信息.
间接法通过最小化几何误差geometric error)(因为预先得到的点或光流向量都是几何度量,常用的有重投影误差(projection error)等)来进行优化从而得到相机运动;直接法通过最小化测量误差(photometirc error,即像素之间的误差).直接法的好处:直接法让单独一个点不具备识别意义,而是将大量的点组织起来,因此它的表达是一种细粒度的几何表示。

1.2 直接法的基本假设

同一空间三维点在各个视角下测到的灰度值不变(因此假设所在平面是漫反射,没有遮挡,没有光照变化);

1.3 直接法原理

SLAM笔记(六)直接法介绍_第2张图片
I1(Cpi) I2(CRpi+t 分别为pi在图像对应点的灰度值。
随后用非线性优化求解最小测量误差J,得到目标函数:

minJ=t=1N||I1(Cpi)I2(C(Rpi+t))||22
(1)
ξ 表示相机位姿[R,t;0,1]对应的李代数,则:
Rpi+t=exp(ξ)
上式的单个误差项:
ei I1(Cpi)I2(Cexp(ξ)pi (2)
如何求解这个目标函数,可以用
1>梯度下降法
Ji=eiξ (3)
2>高斯牛顿法
这里写图片描述(4)
这里的 δξ ξ 的增量
如何求(3)呢:
可以令:空间三维点坐标 q=exp(ξ\^)p ;(从世界坐标系到相机坐标系)
像素点坐标:u = Cq(C为相机内参数;表示从相机坐标系到像素坐标系)
这里写图片描述
三个导数分别代表(从左往右)图像对像素的导数,像素对空间点的导数,空间点对位姿的李代数的导数。
其结果分别为:
SLAM笔记(六)直接法介绍_第3张图片
第一个是图像对像素的求导,相邻灰度值求导;
第二个可以根据u=Cq中的
u=fxxzcx
v=fyyzcy
也容易求得;
第三个比较难,基本做法是对其做一个左微扰,具体操作是先左乘一个 exp(δξ^) ,再减去本身,最后除以 δξ
这里写图片描述
这里写图片描述

1.4分类

a.
Sparse+Indirect:非直接法(即特征点法)SLAM,基本套路是:特征点+匹配+优化方法求解最小化重投影误差。
典型代表:
Mono-SLAM,PTAM,ORB-SLAM,以及现在大部分SLAM
b.
Dense+Indirect:
基本方法:光流场的平滑度+几何误差(光流求导)
典型代表
DTAM;
LSD-SLAM;
DSO
直接法评价:
It is expected to be more robust to motion blur or poorly-textured environments.a direct method its
performance can be severely degraded by unmodeled effects like rolling shutter or non-lambertian reflectance(ORBSLAM2中评价)

你可能感兴趣的:(SLAM)