SLAM
文章平均质量分 83
KylinQAQ
这个作者很懒,什么都没留下…
展开
-
视觉SLAM十四讲-第十三讲笔记
本讲是最后一讲!讲了不同地图的表示方法=-=一、概述前面所讲的地图都是特征点的集合,也就是稀疏地图,实际上还有各种地图,面向各种任务:稀疏地图:定位稠密地图:导航、避障、重建语义地图:交互二、单目稠密重建1. 立体视觉要进行稠密重建,就要知道每一个像素的深度,其方法是:单目:三角化多目:视差深度:直接对于单目,需要使用参考帧,和它移动一小段后的当前帧,对其中的匹配点...原创 2018-12-26 22:34:00 · 1185 阅读 · 1 评论 -
视觉SLAM十四讲-第十讲笔记
本讲开始进入后端模块。后端优化目前分为基于滤波器的方法和基于非线性优化的方法,本讲讲述以EKF为代表的滤波器法,以及稀疏性。一、 后端优化概述1. 后端模块的作用前端估计得到:kkk时刻相机的位姿,xkx_kxk地图中路标jjj的世界坐标,yjy_jyj前端估计只基于kkk的前一时刻或前几时刻。后端优化所做的,则是根据到目前为止观测到的所有信息,优化之前的估计结果。后端优化中...原创 2018-12-16 22:01:02 · 1341 阅读 · 1 评论 -
视觉SLAM十四讲-第十一讲笔记
后端优化主要有两种方法,一是以BA为主的图优化,另一种是使用位姿图的优化方法。本讲将讲述位姿图的优化方法。一、 位姿图介绍后端优化的目标是在前端给出位姿和路标的初始估计值后,使用已得的全部数据对其进行优化。其中特点是:特征点变量数远大于位姿变量数特征点变量会趋于稳定其中特征点变量在几次优化后的情况分为两种:收敛:其空间位置会收敛至一个值(三维坐标)保持不动。发散:称为外点,处于...原创 2018-12-24 16:46:53 · 719 阅读 · 2 评论 -
Semantic Fusion代码阅读笔记
semantic fusion是基于elastic fusion,结合FCN和CRF的语义SLAM开源框架。最近在看语义SLAM,觉得这篇文章不错,代码也有开源,就读了代码,力求搞懂代码流程,参考其程序的组织实现方式。目前只看了src部分,elastic fusion部分的论文还没有读,读过之后再来读代码。不过其中接口封装的比较好,难度倒不是很大。项目网站我注释后的代码一、程序框架项目分...原创 2019-01-04 16:18:54 · 2209 阅读 · 3 评论 -
[论文笔记]ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
ORB-SLAM 2一、 introduction单目的缺点:未知地图的尺度需要初始化地图会有尺度漂移难以处理纯旋转本文的贡献:完成结合单目、双目、RGBD的slam系统,包含回环检测、重定位、地图重用功能。证明使用BA的精度高于ICP和最小化深度误差。使用近处或远处的双目点和单目观测,取得的精度高于当前最优的双目SLAM。使用轻量级的定位模式,当无法建图时,能够有效的...原创 2019-01-10 13:17:06 · 1195 阅读 · 0 评论 -
[论文笔记]ORB-SLAM: a Versatile and Accurate Monocular SLAM System
ORB-SLAM一、introductionPTAM缺少闭环检测缺少对于闭塞(occlusion)的处理重定位时对视角的不变性低自启动(bootstrapping)时需要人工干涉ORB SLAM以PTAM为基础contributions:使用ORB features在tracking、mapping、relocalization、loop closing任务中,保证在视点...原创 2019-01-07 17:53:22 · 590 阅读 · 0 评论 -
[论文笔记] Fusion++: VolumetricObject-LevelSLAM
1. introduction本文结合了MASK RCNN,说是语义SLAM,其实基本没用到语义信息,而是结合了物体检测结果,对每个物体进行三维重建,建立物体级的地图。并完善了基于这个地图的初始化、删除、更新、跟踪、重定位、图优化的工作。存在的不足还是挺多的,默认场景是静态的,并且不追踪动态物体。MASK RCNN的阈值很高,这样漏检应该是比较严重的。MASK RCNN并非实时,30帧运行一次...原创 2019-01-18 11:39:10 · 1810 阅读 · 1 评论 -
[论文笔记] DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments
DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments一、 introduction这篇文章主要提出了结合语义信息和运动特征点检测,来滤除每一帧中的动态物体,从而提高位姿估计的准确性。同时建立了语义八叉树地图。在高运动的场景中,与ORB SLAM2相比提升明显。但也存在不足,如仅能识别20种物体,并只认为人是移动的类别;八叉树...原创 2019-01-14 16:30:10 · 8632 阅读 · 10 评论 -
[论文笔记]Probabilistic data association for semantic slam
1. introduction读完总结,感觉这篇文章的主要思想是,提出数据关联,并根据语义的类别结果计算数据关联的概率,然后在优化过程中,根据之前的数据关联作为概率权重,引入与目标检测位置有关的误差项,从而让目标检测来辅助位姿估计。数据关联和识别问题是不同类别之间离散的,而传统SLAM是连续优化的。本文的目标是利用目标检测,整合尺度(metric)信息和语义(semantic)信息,用于传感...原创 2019-01-24 18:13:54 · 2323 阅读 · 1 评论 -
[论文笔记] semi-dense 3d semantic mapping from monocular slam
semi-dense 3d semantic mapping from monocular slam1. introduction这篇论文的思想比较易懂,使用单目LSD-SLAM+deeplab,生成半稠密的语义地图。文章解释了,对于RGBD或双目相机,存在尺度限制问题,他们只能在有限的深度范围内工作,而对于室内室外的衔接能力弱。因此选用了单目SLAM。此外,2D语义分割是在关键帧上做的,也并...原创 2019-01-21 11:45:47 · 2050 阅读 · 2 评论 -
[论文笔记] MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects
1. introduction目前的SLAM系统存在两个待完善的地方:默认场景是静态的,把动态的物体当作外点,没能追踪场景的动态物体。仅构造几何地图,或地图只有像素级的语义信息,没有物体级的信息。contribution:构造了实例级的三维地图结合MASK RCNN的目标检测和几何的物体边缘检测方法,细化实例边缘能够追踪场景中的刚体动态物体,而非把它们当作外点排除,只排除动态的...原创 2019-01-22 17:15:10 · 1549 阅读 · 0 评论 -
[论文笔记] ElasticFusion: Dense SLAM Without A Pose Graph
一、overview提出了一种密集SLAM方法,使用RGBD数据,进行跟踪和建图。主要贡献:surfel-based稠密建图。将surfel分为激活区域和非激活区域,一段时间内未观测到的归入非激活区域。每一帧,尝试把激活模型中当前相机估测位姿部分,登记至非激活模型在当前帧的部分,若登记成功,则检测到闭环,进行非刚体变换。发生闭环的非激活部分再次激活,放入登记的区域。(感觉意思是每一帧把...原创 2019-03-14 20:37:37 · 1248 阅读 · 0 评论 -
视觉SLAM十四讲-第十二讲笔记
讲完了前端后端,这一讲讲的是回环检测。比起之前的内容要容易理解多了=-=一、 回环检测概述1. 一些概念1.1. 回环检测的意义回环检测的作用:消除累积误差。累积误差是怎么来的呢?前端根据局部(相邻或相近)帧给出位姿估计,后端也是根据前端已有的结果进行优化(比如p(xk∣xk−1)p(x_k|x_{k-1})p(xk∣xk−1)),这样,当前端每一帧都存在误差时,基于误差的估计就会更...原创 2018-12-26 21:15:45 · 982 阅读 · 0 评论 -
Elastic Fusion/Semantic Fusion运行记录
持续记录使用摄像头、数据集运行Elastic Fusion和Semantic Fusion的方法和结果。使用的Elastic Fusion是Semantic Fusion项目下的模块,没有另行搭建。一、 Elastic Fusion1. TUM数据集1.1 准备数据集使用TUM数据集,从官网下载rgbd_dataset_freiburg1_desk.tgz,解压。1.2 数据格式转换...原创 2018-12-14 17:08:50 · 1675 阅读 · 6 评论 -
三维数据表示方法
参数化表示方法parametric surface用参数化的函数来表示曲面。易于生成曲面上的点。难以分辨正面/背面,是否在面上,难以表示复杂平面(进而产生mesh)模糊表示方法implicit:模糊函数。易于表示内部/外部,是否在面上。难以生成具体点,只能表示相对位置。无法实时渲染。Binary volumetric grids根据距离函数匹配阈值,转化为二值网格。...原创 2018-10-18 16:39:52 · 8575 阅读 · 0 评论 -
视觉SLAM十四讲 -- 第二讲笔记
视觉SLAM十四讲 – 第二讲笔记2.1 引子slam任务:建图:估计环境定位:估计自身状态SLAM需要感知外部环境使用,携带传感器。视觉SLAM中使用相机。单目相机:单张图片无法获得深度信息,要动过移动相机形成视差来估计深度。同时,单目相机存在尺度不确定性。双目相机:通过基线(两摄像头之间的距离)估计深度。基线越大,可测量的距离越远。深度量程和精度受基线和分辨率限制,计算量消...原创 2018-10-10 10:40:47 · 514 阅读 · 0 评论 -
视觉SLAM十四讲-第三章笔记
视觉SLAM14讲-第三章笔记3.1 旋转矩阵欧式变换欧式变换:改变位资,不改变形状、大小。旋转矩阵:R正交阵行列式为1逆表示相反的旋转平移向量:t位姿变换:a’=Ra+t齐次坐标其次坐标多引入一维,每一个点的表示不唯一(乘以最后一维的尺度)。变换矩阵:T将R和t写入同一个矩阵。使得变换变成线性关系。3.3 旋转向量和欧拉角3.3.1 旋转向量...原创 2018-10-10 10:41:26 · 617 阅读 · 0 评论 -
视觉SLAM十四讲-第四讲笔记
视觉SLAM14讲-第四讲笔记优化问题为什么使用李代数:实际SLAM中,相机位姿R,T未知,需要进行估计,估计的过程可以看做最小误差的优化问题。由于旋转矩阵和变换矩阵有约束(正交、det=1),难以优化。转换成李代数,可以从有约束优化问题转变为无约束优化问题。对于相机位姿T,观察到世界坐标系上的点P,在噪声w下,得到观测数据z。z=Tp+w得到误差:e=z-Tp对于n个点,要...原创 2018-10-10 10:42:03 · 1361 阅读 · 1 评论 -
视觉SLAM十四讲-第五讲笔记
视觉SLAM14讲-第五讲笔记针孔相机模型不同坐标系世界坐标系相机坐标系以光心为原点,相机自身的坐标系。世界坐标系经相机位姿变化(T作用)变换到相机坐标系。归一化平面位于相机前方Z=1处的平面上。是相机坐标系上点P,最后一维归一化的结果。物理成像平面相机坐标系中点经小孔投影到的平面。焦距:物理成像平面到小孔的距离。像素平面物理成像平面上固定着的平面...原创 2018-10-10 10:42:31 · 1075 阅读 · 0 评论 -
视觉SLAM十四讲-第六讲笔记
状态估计问题SLAM模型:状态方程:xk=f(xk−1,uk)+wkx_k=f(x_{k-1},u_k)+w_kxk=f(xk−1,uk)+wk运动方程:zk,j=h(yj,xk)+vk,jz_{k,j}=h(y_j,x_k)+v_{k,j}zk,j=h(yj,xk)+vk,j其中:x:相机位姿。可以由旋转矩阵TTT或者李代数exp(ϵexp(\epsilonexp...原创 2018-10-23 11:49:44 · 1567 阅读 · 1 评论 -
视觉SLAM十四讲-第七讲笔记
主要内容本章开始进入视觉里程计(VO)部分,VO按是否需要提取特征,分为特征点法的前端和不提特征的前端。这一章讲的是基于特征点法的前端,分为以下内容。特征点法:找到两张2D图像上的匹配点。对极几何:根据2D-2D特征点对求解R,t。三角测量:根据2D-2D特征点求深度。PnP:根据3D点云和匹配的2D图像求R,t。ICP:求两个点云之间的R,t。关系是:特征点法找到2D图像的...原创 2018-11-01 16:41:46 · 3465 阅读 · 2 评论 -
视觉SLAM十四讲-第八讲笔记
一、主要内容SLAM中的视觉里程计分为两部分,一是特征点法,先提取特征点,把特征点看做三维空间中的不动点,根据特征点匹配关系进行位姿和深度估计,通过最小化重投影误差优化相机运动;二是不使用特征点,根据图像灰度直接估计的直接法。第七讲中讲了特征点法,本讲将介绍直接法。直接法的问题关键点的提取和描述子的构造很耗时。忽略了特征点以外的信息。在没有纹理或者纹理重复的地方,难以准确匹配。解决...原创 2018-11-03 13:53:55 · 967 阅读 · 1 评论 -
视觉SLAM十四讲-第九讲笔记
本讲搭建了一个完整的前端框架。在匹配方案上,使用了相邻两帧匹配、与地图匹配两种方法;在位姿估计方法上,使用了PNP方法、PNP+bundle adjustment的方法。这份代码实现的只有位姿估计和优化,虽然是PnP,但没有估计3d点深度,而是从深度图中取出的。也没有优化地图中特征点的位置。一、程序框架1. 数据结构1.1. camera相机内参,实现坐标转换。成员变量相机内参数成...原创 2018-11-11 16:10:54 · 2511 阅读 · 0 评论 -
[论文笔记] SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks
一、 主要内容最近开始看语义SLAM的内容(叹。主要贡献1.融合的state of the art的SLAM系统ElasticFusion,使用CNN进行语义分割,加上条件随机场对分割结果的优化,设计了semantic mapping的系统。2.使用的摄像头为RGB-D,系统帧率达到25Hz,保证了实时性。3.提出(?)了语义地图中,每个点类别概率的更新方法。额外收获1.结合视频连续...原创 2018-11-26 18:04:01 · 2116 阅读 · 1 评论 -
[论文笔记]Meaningful Maps With Object-Oriented Semantic Mapping
一、主要内容这篇文章做的也是semantic mapping的工作,创新的点是,不单给了每个点类别,同时给出了object的概念,存储了每一个object的3d点云。最终的地图是由object的点云和背景构成的语义地图。文章新意不太多,主要是加了物体检测,但是SSD+额外的基于几何的点云分割感觉有点绕弯。另一篇用mask RCNN的应该更好。(不过文章引用和related works写的很好。...原创 2018-11-27 18:09:04 · 2504 阅读 · 0 评论 -
Ubuntu 16.04 配置 SemanticFusion
一、 写在最开始的说明SemanticFusion依赖ElasticFusion和Caffe但是SemanticFusion的源码里包含了ElasticFusion和Caffe源码模块,必须要从SemanticFusion下编译一次,就不用自己另外下载了(并不知道这里的caffe能不能在别的项目用)。配置前已经装好的依赖:CUDA, cuDNN, 源码编译的OpenCV3.4, Pytho...原创 2018-12-07 17:40:44 · 1371 阅读 · 14 评论 -
Bundle adjustment 总结
BA最小化重投影误差:X=argmin∑i=1Ni∑j=1Nj∣∣ei,j(X)∣∣X=argmin\sum_{i=1}^{N_i}\sum_{j=1}^{N_j}||e_{i,j}(X)||X=argmini=1∑Nij=1∑Nj∣∣ei,j(X)∣∣求解方法:使用LM算法优化求最优解。每一次迭代中的增量求解为:δX∗=argmin∣∣J(X)δX+E(X)∣∣+λ∣∣D(X...原创 2019-04-04 22:21:22 · 969 阅读 · 0 评论