视觉slam介绍.pptx
- 文档编号:8586924
- 上传时间:2023-05-13
- 格式:PPTX
- 页数:58
- 大小:10.22MB
视觉slam介绍.pptx
《视觉slam介绍.pptx》由会员分享,可在线阅读,更多相关《视觉slam介绍.pptx(58页珍藏版)》请在冰点文库上搜索。
视觉SLAM介绍,视觉SLAM概述相机与图像视觉里程计后端优化回环检测地图构建,提要,第一讲视觉slam概述,Chapter1:
Introduction,第一讲视觉slam概述,Question机器人自主运动两大基本问题我在什么地方?
定位周围长什么样子?
建图机器人的“内外兼修”:
定位侧重对自身的了解,建图侧重对外在的了解准确的定位需要精确的地图精确的地图来自准确的定位,第一讲视觉slam概述,HowtodoSLAM?
Sensors,两类传感器安装于环境中的:
二维码MarkerGPS导轨、磁条携带于机器人本体上的IMU激光相机,第一讲视觉slam概述,相机以一定速率采集图像,形成视频分类单目Monocular双目Stereo深度RGBD其他鱼眼全景EventCamera,etc.,第一讲视觉slam概述,相机的本质以二维投影形式记录了三维世界的信息此过程丢掉了一个维度:
距离各类相机主要区别:
有没有深度信息单目:
没有深度,必须通过移动相机产生深度MovingViewStereo双目:
通过视差计算深度StereoRGBD:
通过物理方法测量深度,第一讲视觉slam概述,仅有一个图像时:
可能是很近但很小的物体可能是很远但很大的物体它们成像相同必须在移动相机后才能得知相机的运动和场景的结构,第一讲视觉slam概述,当相机运动起来时场景和成像有几何关系近处物体的像运动快远处物体的像运动慢可以推断距离,第一讲视觉slam概述,双目相机:
左右眼的微小差异判断远近同样,远处物体变化小,近处物体变化大推算距离计算量非常大,第一讲视觉slam概述,深度相机物理手段测量深度结构光ToF主动测量,功耗大深度值较准确量程较小,易受干扰,第一讲视觉slam概述,视觉SLAM框架前端:
VO后端:
Optimization回环检测LoopClosing建图Mapping,第一讲视觉slam概述,视觉里程计VisualOdometry相邻图像估计相机运动基本形式:
通过两张图像计算运动和结构不可避免地有漂移方法特征点法直接法,第一讲视觉slam概述,后端优化从带有噪声的数据中优化轨迹和地图状态估计问题最大后验概率估计MAP前期以EKF为代表,现在以图优化为代表,第一讲视觉slam概述,回环检测检测机器人是否回到早先位置识别到达过的场景计算图像间的相似性方法:
词袋模型,第一讲视觉slam概述,建图用于导航、规划、通讯、可视化、交互等度量地图vs拓扑地图稀疏地图vs稠密地图,第二讲相机与图像,Chapter2:
CamerasandImages,第二讲相机模型,小孔成像模型,原始形式,翻转到前面,整理之:
第二讲相机模型,成像平面到像素坐标,代入,得,第二讲相机模型,矩阵形式,展开形式,左侧是齐次坐标,右侧是非齐次坐标,中间矩阵称为内参数,内参通常在相机生产之后就已固定,传统习惯,第二讲相机模型,除内参外,相机坐标系与世界坐标系还相差一个变换:
这里R,t或T称为外参外参是SLAM估计的目标,先把P从世界坐标变到相机坐标系下,第二讲相机模型,RGB-D相机:
物理手段测量深度ToF或结构光两种主要原理通常能得到与RGB图对应的深度图,第二讲图像,相机成像后,生成了图像图像在计算机中以矩阵形式存储(二维数组)需要对感光度量化成数值,例如0255之间的整数(彩色图像还有通道),实践点云拼接,第三讲视觉里程计,Chapter3:
VisualOdometry,3.1特征点法,经典SLAM模型中以位姿路标(Landmark)来描述SLAM过程路标是三维空间中固定不变的点,能够在特定位姿下观测到数量充足,以实现良好的定位较好的区分性,以实现数据关联在视觉SLAM中,可利用图像特征点作为SLAM中的路标,3.1特征点法,特征点:
图像当中具有代表性的部分可重复性可区别性高效本地特征点的信息位置、大小、方向、评分等关键点特征点周围的图像信息描述子(Descriptor)主流方法:
SIFT/SURF/ORB(OpenCVfeatures2d模块),特征描述应该在光照、视角发生少量变化时仍能保持一致,3.1.1ORB特征,例子:
ORB特征关键点:
OrientedFAST描述:
BRIEFFAST连续N个点的灰度有明显差异OrientedFAST在FAST基础上计算旋转BRIEFBRIEF-128:
在特征点附近的128次像素比较,3.1.1ORB特征,特征匹配通过描述子的差异判断哪些特征为同一个点暴力匹配:
比较图1中每个特征和图2特征的距离加速:
快速最近邻(FLANN),实践:
特征提取和匹配,3.2对极几何,特征匹配之后,得到了特征点之间的对应关系如果只有两个单目图像,得到2D-2D间的关系对极几何如果匹配的是帧和地图,得到3D-2D间的关系PnP如果匹配的是RGB-D图,得到3D-3D间的关系ICP,3.2对极几何,几何关系:
P在两个图像的投影为两个相机之间的变换为在第二个图像上投影为记,称为极线,反之亦然称为极点实践当中:
通过特征匹配得到,P未知,未知待求(本质矩阵、单应矩阵),1,2,12,1,22,2,1,2,1,2,1,2,12,3.3三角化,已知运动时,求解特征点的3D位置几何关系:
求时,两侧乘反之亦然或者同时解求的最小二乘解,2,1,1,2,2,112=,=1,3.4pnp,已经3D点的空间位置和相机上的投影点,求相机的旋转和平移(外参)代数的解法/优化的解法代数的DLTP3PEPnP/UPnP/优化的:
BundleAdjustment,3.4pnp,DLT(直接线性变换)设空间点投影点为:
投影关系:
展开:
将它看成一个关于t的线性方程,求解t,=,1,=,1,=|,归一化坐标,注意最下一行为用它消掉前两行中的s,则一个特征点提供两个方程:
为求解12个未知数,需要12/2=6对点。
(超定时求最小二乘解),=9,10,11,12,1,3.5光流,3.5光流,一般分为稀疏光流和稠密光流稀疏以Lucas-Kanade(LK)光流为代表稠密以HornSchunck(HS)光流为代表本质上是估计像素在不同时刻图像中的运动,3.5光流,设t时刻位于x,y处像素点的灰度值为在t+dt时刻,该像素运动到了希望计算运动dx,dy灰度不变假设:
注意:
灰度不变是一种理想的假设,实际当中由于高光/阴影/材质/曝光等不同,很可能不成立。
3.5光流,对t+dt时刻的灰度进行Taylor展开并保留一阶项:
由于灰度不变,所以希望求解dx/dt,dy/dt,因此=,x方向梯度,y方向梯度,随时间变化,3.5光流,但本式是一个二元一次线性方程,欠定需要引用额外的约束假定一个窗口()内光度不变:
通过超定最小二乘解求得运动u,v,3.5光流,最后,我们可以通过光流跟踪的特征的,用PnP、ICP或对极几何来估计相机运动。
总而言之,光流法可以加速基于特征点的视觉里程计算法,避免计算和匹配描述子的过程,但要求相机运动较慢(或采集频率较高)。
实践光流,可以发现,光流法在跟踪过程中一部分特征点会丢失,在第一帧时有1749个特征点,而在第10帧时大约还有1640个特征点,相机的视角在发生改变,所以我们使用光流法时要注意特征点的重新采集。
第四讲后端,Chapter4:
Backend,4.1BA与图优化,4.1BA与图优化,BA算法起源于上世纪60年代,开始应用于图片拼接方向,正是由于BA的出现才使得图片自动拼接称为可能。
在视觉SLAM产生之后,BA被广泛应用于视觉SLAM的位姿优化,其将相机位姿和特征点的空间位置进行同时优化,获得优化后的结果。
BA本身也是一个非线性最小二乘问题。
对于视觉SLAM来说BA问题可以简单的描述成在不同的相机位姿下看到了相同的空间点,于是通过观测使得空间点和相机位姿之间产生了约束,并且由空间点在两幅图像上的重投影产生了联系。
由重投影关系产生的误差即可建立最小二乘问题,求解该问题即可对相机位姿和空间点进行同时优化。
4.1BA与图优化,BA问题与图结构的关系BA虽是个纯优化问题,但亦可以用图模型表述出来顶点为优化变量,边为运动/观测约束本身还有一些特殊的结构考虑在位姿i处对路标j的一次观测zij:
特点:
每个观测只关系两个变量,其中一个是相机,一个是路标纯视觉Ba中,不存在相机与相机/路标与路标之间的关联整个误差函数由许多个这样小的项组成,4.1BA与图优化,该方程组分为两步来求:
求解上半部分,规模较小,得到将结果代入下半部分,得到这个做法称为Marginalization或Schur消元从消元角度来讲,亦可使用Cholesky等其他消元方式解此稀疏方程从Marginalization角度来讲,是我们把所有的路标信息边缘化到了相机的信息中,g2o下的BA优化,第五讲回环检测,Chapter5:
Loopdetection,5.1回环检测,为消除累计误差,获得全局一致的地图和轨迹,仅仅通过帧间数据匹配估计运动位姿是远远不够的,需要在全局数据中进行处理才能得到更好的结果。
在这个过程中,回环检测就发挥了非常重要的作用。
回环检测可以有效修正运动轨迹,将累计误差消除。
回环检测本质上是图像相似度计算的问题,一般使用BOW字典对图片进行描述,通过检验图片中单词的数量形成直方图,通过检验直方图之间的关系确定图像之间的相似程度。
一般使用词袋模型判断回环检测需要进行词典的建立以及后续对图像相似性的处理。
5.2词袋模型,利用K-Means算法构造单词表。
用K-means对第二步中提取的N个SIFT特征进行聚类,K-Means算法是一种基于样本间相似性度量的间接聚类方法,此算法以K为参数,把N个对象分为K个簇,以使簇内具有较高的相似度,而簇间相似度较低。
聚类中心有k个(在BOW模型中聚类中心我们称它们为视觉词),码本的长度也就为k,计算每一幅图像的每一个SIFT特征到这k个视觉词的距离,并将其映射到距离最近的视觉词中(即将该视觉词的对应词频+1)。
完成这一步后,每一幅图像就变成了一个与视觉词序列相对应的词频矢量。
5.2词袋模型,我们从人脸、自行车和吉他三个目标类图像中提取出的不同视觉词汇,而构造的词汇表中,会把词义相近的视觉词汇合并为同一类,经过合并,词汇表中只包含了四个视觉单词,分别按索引值标记为1,2,3,4。
通过观察可以看到,它们分别属于自行车、人脸、吉他、人脸类。
统计这些词汇在不同目标类中出现的次数可以得到每幅图像的直方图表示:
人脸:
3,30,3,20自行车:
20,3,3,2吉他:
8,12,32,7,其实这个过程非常简单,就是针对人脸、自行车和吉他这三个文档,抽取出相似的部分(或者词义相近的视觉词汇合并为同一类),构造一个词典,词典中包含4个视觉单词,即Dictionary=1:
”自行车”,2.“人脸”,3.“吉他”,4.“人脸类”,最终人脸、自行车和吉他这三个文档皆可以用一个4维向量表示,最后根据三个文档相应部分出现的次数画成了上面对应的直方图。
一般情况下,K的取值在几百到上千,在这里取K4仅仅是为了方便说明。
第六讲建图,Chapter5:
Mapping,第六讲建图,建图(Mapping)是slam的两大目标之一。
上述讨论的都是定位,讨论了特征值点的定位,直接法的定位,以及后端优化。
在经典的slam模型中,所谓的地图,即所有路标点的集合。
一旦确定了路标点的位置,可以说明完成了建图。
但建图的需求不同,SLAM作为一种底层技术,往往是用来为上层应用提供信息。
例如扫地机器人需要完成扫地工作,希望计算一条能够覆盖整张地图的路径。
或者,如果上层是一个增强现实设备,那么开发者可能将虚拟物体叠加在现实物体之中。
在视觉slam看来,“建图”是服务与“定位”的;但在应用层看来,“建图”明显还带来许多其他需求。
第六讲建图,定位:
定位是基本功能不用多说。
视觉里程计讨论如何利用局部地图来实现定位。
在回环检测部分,只要有全局的描述子信息,就能通过回环检测确定机器人的位置。
导航:
在地图中进行路径规划,在任意两个地图间寻找路径,然后控制自己运动到目标点的过程。
该过程中至少知道地图中哪些地方不可通过,而哪些地方是可以通过。
这属于稀疏特征点地图的能力范围,至少得是一种稠密的地图。
避障:
避障也是机器人经常碰到的一个问题,不过它更注重局部的,动态的导航物的处理。
同样,仅有特征点,无法判断某个特征点是否为障碍物,所以需要稠密地图。
重建:
稠密地图,利用slam获得周围环境的重建效果,并把它展示给其他人看。
例如:
三维的视频通话或者网上购物等。
也可以构建带纹理的平面,就像电子游戏中的三维场景那样。
6.1RGB-D稠密建图,RGB-D相机完全通过传感器中硬件测量得到,无须消耗大量的计算资源来估计。
而且,RGB-D的结构光或飞时原理,保证了深度数据对纹理的无关性。
故RGB-D进行稠密建图是相对容易的。
稠密建图主流方式。
其中最直观,最简单的方法。
根据估算的相机位姿,将RGB-D数据转化为点云(PointCLoud),然后进行拼接,最后得到一个由离散的点组成的点云地图(PointCloudMap)。
6.2单目稠密重建,单目相机主要使用极线搜索。
沿着第一幅图像中的极线的某头走到另一头,逐个比较每个像素与p1的相似程度。
类似直接法中的回环检测,然而单个像素的亮度没有区分性,那就比较像素块,在p1周围取一个大小为w*w的小块,然后极线上也取很多同样大小的小块进行比较,就可以一定程度上提高区分性。
取名块匹配。
a.目前计算小块与小块间的差异有SAD(SumofAbsoluteDifference)。
取2个小块的差的绝对值之和.SSD(SumofSquaredDistance)。
取2小块的差的平方和。
NCC(NormalizedCrossCorrelation)。
归一化相关,计算的是两个小块的相关性。
实践单目稠密重建,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 视觉 slam 介绍