前言
本文的写作目的有二,一是为了将自己已有的SLAM相关知识总结成体系;二是为了给已有相关基础的朋友一个知识总结的参考案例。建议阅读对象是对SLAM基础知识有一定了解的朋友。
从2015年12月7日开始第一篇工作报告开始,接触vSLAM(视觉SLAM)已有一年半的时间,截止目前为止总共写了347篇学习日志。从阅读《基于序列图像的三维重建算法研究》(彭科举-博士论文)开始,学习路径大致可以归纳如下:
- 安装了LSD-SLAM、PTAM;
- 开始阅读神书《多视几何》补充基础知识;
- 阅读PTAM代码(总结了代码类图和相关文档);
- 安装DTAM、SVO,阅读SVO代码(总结代码类图和相关文档),同时开始接触李群、李代数等的基础数学知识(主要是通过Daniel Cremers教授的相关视频进行学习);
- 对闭环检测部分开始学习,阅读DloopDetector的相关论文进行阅读;
- 确定使用线特征和IMU对现有SLAM进行改进,阅读了MFG和LineSLAM等有开源代码的线特征SLAM系统,并开始基于ORB-SLAM搭建线特征SLAM系统;
- 开始准备开题报告《基于视觉和惯性传感器的SLAM算法研究》;
- 继续搭建线特征+IMU的SLAM系统至今。
虽已历经一年半,但目前拿得出手的成果还是太少,只有一个尚在继续调优的线特征SLAM系统,之前在上海大学从2015年8月到2016年7月未到一年时间就已做了一个电商平台、发了一篇中文核心(《基于三值光学计算机的并行快速Fourier算法实现》),对比起来差距很大,但是仔细想想已经获得的关于SLAM系统的知识和对不少开源系统的了解,也并非在浪费光阴一无所获。
关于实验室:小导师并不是SLAM方向,而且实验室也只有我一个人进行这个方向的工作,上无师哥师姐,下无师弟师妹,有时感觉整个学习过程并不顺畅,但是好在小导师为人随和,而且对我尽力帮助:需要设备时买了$695的DUO MLX(跑过几次,后来因为短期内不再需要双目数据,给它打印了个3D盒子之后就一直在抽屉里:( );需要指导时带我与联想上海研究院的项目leader见面让我咨询;同时带着我们去了不少AR/VR方向的公司参观(对实验室的强大慢慢有了了解),了解商业领域的发展情况;实验室的杂活儿(项目申请,报账等等)从未让我们做过,发钱让学生安心看论文准备项目的导师越来越珍贵了~ SLAM方向已有数十年发展历史,网上也有很多资料和开源代码(清华的高翔博士等人创立的SLAM学习群和微信公众号对自己的学习帮助良多),自己也腆着脸贡献了一点点东西:PTAM类图,SVO类图。
牢骚发过了,但是该做的工作还是需要继续。最近发现对SLAM的很多基础知识已经比较模糊,知识尚未形成系统化的结构,因此想把已有的SLAM基础知识进行整理,供自己回顾同时分享给其他同在一坑的朋友。
资源
- SLAMCN:国内一群SLAM爱好者和研究者共同维护的SLAMwiki页面,一些主流的slam方法和相关学习资料都可以在这里找到,包括一些国内大牛的博客、经典SLAM文献及翻译等,主要内容是与VSLAM相关的。适合入门了解大致方向;
- OpenSLAM:提供多种SLAM方法的开源代码及介绍,主流的SLAM算法在这一般都有源码;
- MultipleViewGeometry-Prof. D. Cremers:慕尼黑工业大学教授Daniel Cremers的多视几何课程(YouTube源,其他源可在SLAMCN中找到,也可发邮件我传给你);
历史
SLAM
基本概念
卡尔曼滤波 粒子滤波 图优化 光束法平差 对极几何 变换 尺度漂移
卡尔曼滤波
粒子滤波
图优化
光束法平差
对极几何
变换
尺度漂移
####
转载请注明原地址,魏鑫燏的博客:http://slowlythinking.github.io 谢谢!