初学SLAM一之漫谈

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liangqichan/article/details/82288590

      工作一年来接触与学习SLAM技术已经有一段时间了。之前一直从事摄影测量与地图相关的学习,在无人驾驶火爆的当下,无人驾驶的一些核心技术例如高精度地图,例如感知定位等都与SLAM紧密相关,而这也给了我这个地图,测绘,摄影测量者一个学习探索SLAM的一个契机。关于摄影测量与计算机视觉之间的差异性,准确来说应该是近景摄影测量与计算机视觉,我想每一个做过摄影测量的人且接触计算机视觉都会有不同的体会。我这里仅仅说一下自己近来直观的感受:

        1,摄影测量坐标系的建立会更多的与测绘上已经建立好的大地坐标系相联系,而计算机视觉求得的结果更多的是一个相对的位姿,不会刻意的去和大地坐标系相换换。但是在高精度地图构建当中,计算机视觉的计算会与GPS,IMU甚至激光雷达等多源传感器结合,会更多的转换为大地坐标系当中的绝对定位。

       2,摄影测量对于相机位置的变换更多的倾向于欧拉角的表示,计算时采用旋转矩阵,对于 欧拉角的旋转位次关系(先绕Y-X-Z,还是先绕Z-X-Y),都总结好一套旋转矩阵, 比较直观,而且对于平移的表达也会单独使用一个平移向量。这样,在摄影测量的计算过程中,每一步表达式都清晰明了。而计算机视觉当中对于相机位姿的表示更多的会采用四元数而在SLAM当中则是李代数。这是因为摄影测量当中相机旋转移动幅度相对不大,而计算机视觉当中会考虑到相机360°旋转的奇异性。且相机的旋转平移会放到一个齐次矩阵里去计算。

      关于二者更高层次与理论上的相似与联系,有一本书值得推荐,Wolfgang Forstner的《 Photogrammetric Computer Vision》。

     而SLAM技术则是以计算机视觉的为基础,用优化的方法来进行局部和全局优化,将相机移动过程中各个位置上拍摄到的图像从2D转换成一个完整3D场景,同时相机轨迹可以构成场景当中的可通过路径的技术流程。在SLAM发展过程中,也分为几个发展路线:

     1.用传统特征点法构建三维场景,用卡尔曼滤波为代表的线性滤波器进行全局优化的SLAM框架。代表的开源项目有MonoSLAM。

       2.用传统特征点法构建三维场景,用非线性优化进行优化的SLAM框架,代表的开源项目有PTAM,和ORB-SLAM2(ORB-SLAM)

        上面两种直接法的SLAM只能得到稀疏地图,即由特征点组建起来的三维场景,不能得到实际场景整个表面。

        3.结合特征点法和直接法构造三维场景,用非线性优化进行优化的SLAM框架,代表的有SVO(Semi-direct Visual Odoemtry)

        4.只用直接法构造三维场景,用非线性优化进行优化的SLAM框架,代表的有LSD-SLAM.

        采用直接法的SLAM,一般可以得到半稠密三维地图甚至稠密地图,由于半稠密或者稠密地图的构建需要挨个计算挨个搜索像素,并且对所有像素进行非线性优化计算,在CPU上不能够实时的得到结果,但是,每个像素的计算并不屎有明确的先后逻辑关系,因此可以采用GPU并行加速。

        从上面SLAM框架的演变来看,以传统特征点法逐渐向直接法转变,但是目前还是特征点法还是占主流,后端优化则是从卡尔曼为主的滤波器转向非线性优化转变,甚至是图优化。

       本人后续的文章会逐个深入学习各个模块的一些关键知识点。这里总结一下本人经常翻看的一些好的学习SLAM书籍和网上资源。

1.计算机三维视觉的神作:《multiview geometry in computer vision》中英版都有,理论性强,按需索取原理

2.高博的《视觉slam十四讲》,可以让你快速入门slam领域

3.《Probabilistic Robotics》,分为四个部分,与slam的目的一致。

4.微信公众号:泡泡机器人  ,里面有许多大牛的公开课和时新的与SLAM相关的顶刊论文推荐,很多干货。

5. 2018年 浙大第一届暑期SLAM夏令营 所有讲课ppt   https://download.csdn.net/download/liangqichan/10639723

     

猜你喜欢

转载自blog.csdn.net/liangqichan/article/details/82288590
今日推荐