SLAM算法工程师学习方向
2018-03-28 09:33
495 查看
https://www.cnblogs.com/xtl9/p/8053331.html https://zhuanlan.zhihu.com/p/28565563
1.编程基础
《Effective C++》《C++ Primer》《Effective STL》
c++11
《数据结构(C++ 语言版)》
刷题,leetcode和剑指offer。
时间来不及推荐这个
视觉,CSE486是一个比较好入门的材料,(湘厦人的博客)
Eigen、OpenCV、PCL、ROS这些基础的工具需要掌握.
后端优化的库g2o、GTSAM、Ceres solver可以先选一个开始学,工程上推荐用g2o,大家用的比较多,不过注释很少需要一定的功力才能看懂。
GTSAM代码写得要好读一些,而且具有优秀的编程规范,十分适合学习,GTSAM的doc目录下也有很多写得很好的文档,相比与其他两个库,其 iSAM 求解器是一大亮点。
Ceres 是谷歌出的优化库,代码注释十分良心,配合一些最优化的书学习最适合不过了。同时注意多写博客分享自己的心得体会,这个在招聘时也是加分项。
最后对于SLAM这一块,还需要读综述以及跑跑Demo,如ORBSLAM、SVO、LSD-SLAM 等。
重点:
相似变换、仿射变换、射影变换的区别
Homography和Fundamental Matrix的区别,包括二者区别,几个自由度,为什么是这么多自由度,怎么计算,这些在多视图几何那本书中都有
视差与深度的关系。在相机完成校正后,则有d/b=f/z,其中d表示视差,b表示基线,f是焦距,z是深度
PNP算法
闭环检测常用方法
给一个二值图,求出最大联通区域(可以用深度优先和广度优先算法,现场手写代码)
说一说梯度下降法、牛顿法、高斯-牛顿法区别
边缘检测算子
BA算法
SVO中的深度滤波器原理
说一说某个SLAM的工作原理(orb,lsd,svo,ptam)及其优缺点,如何改进
实现RANSAC的框架(MRPT写得是比较好的,注意每次此迭代后需要更新迭代次数。见libs/base/src/math/ransac.cpp)
简单实现cv::Mat()
简述一下GN、LM等优化方法的区别
推导一下卡尔曼滤波,描述一下粒子滤(http://blog.csdn.net/heyijia0327)
描述一下SIFT或者SURF特征检测,匹配
如何求解Ax=b (非迭代、迭代,其中非迭代的方法可以参考eigen手册,上面 列了一些(http://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html)
简述一下Bundle Adjustment的过程
8da8
1.编程基础
《Effective C++》《C++ Primer》《Effective STL》c++11
2.数据结构与算法。
入门推荐《数据结构(C++ 语言版)》
刷题,leetcode和剑指offer。
时间来不及推荐这个
3.SLAM基础
《SLAM十四讲》《计算机视觉中的多视图几何》《State Estimation For Robotics(Tim.Barfoot)》《概率机器人》视觉,CSE486是一个比较好入门的材料,(湘厦人的博客)
Eigen、OpenCV、PCL、ROS这些基础的工具需要掌握.
后端优化的库g2o、GTSAM、Ceres solver可以先选一个开始学,工程上推荐用g2o,大家用的比较多,不过注释很少需要一定的功力才能看懂。
GTSAM代码写得要好读一些,而且具有优秀的编程规范,十分适合学习,GTSAM的doc目录下也有很多写得很好的文档,相比与其他两个库,其 iSAM 求解器是一大亮点。
Ceres 是谷歌出的优化库,代码注释十分良心,配合一些最优化的书学习最适合不过了。同时注意多写博客分享自己的心得体会,这个在招聘时也是加分项。
最后对于SLAM这一块,还需要读综述以及跑跑Demo,如ORBSLAM、SVO、LSD-SLAM 等。
重点:
相似变换、仿射变换、射影变换的区别
Homography和Fundamental Matrix的区别,包括二者区别,几个自由度,为什么是这么多自由度,怎么计算,这些在多视图几何那本书中都有
视差与深度的关系。在相机完成校正后,则有d/b=f/z,其中d表示视差,b表示基线,f是焦距,z是深度
PNP算法
闭环检测常用方法
给一个二值图,求出最大联通区域(可以用深度优先和广度优先算法,现场手写代码)
说一说梯度下降法、牛顿法、高斯-牛顿法区别
边缘检测算子
BA算法
SVO中的深度滤波器原理
说一说某个SLAM的工作原理(orb,lsd,svo,ptam)及其优缺点,如何改进
实现RANSAC的框架(MRPT写得是比较好的,注意每次此迭代后需要更新迭代次数。见libs/base/src/math/ransac.cpp)
简单实现cv::Mat()
简述一下GN、LM等优化方法的区别
推导一下卡尔曼滤波,描述一下粒子滤(http://blog.csdn.net/heyijia0327)
描述一下SIFT或者SURF特征检测,匹配
如何求解Ax=b (非迭代、迭代,其中非迭代的方法可以参考eigen手册,上面 列了一些(http://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html)
简述一下Bundle Adjustment的过程
8da8
相关文章推荐
- 如何学习一种开发框架(如:手机开发cocos2dx方向)
- 干货丨除了深度学习,你还应该了解这些发展方向
- 【手游游戏引擎】学习游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D (一)
- memcached学习(3)memcached的删除机制和发展方向
- JAVA学习方向(原文:http://blog.sina.com.cn/s/blog_9671d5180101lj4q.html)
- [英语学习笔记二]Asking road & show the direction 问路及指方向
- 根据python的不同职业方向确定学习内容
- 论坛推荐:嵌入式系统学习路线及嵌入式就业方向是什么?
- 选择一个方向好好学习
- 关于以后的工作以及学习的计划和方向
- 重温JAVA(学习路线以及技术方向)
- 计算机基础知识+学习方向
- 从招聘信息看学习的方向
- Windows Phone 7开发学习(四)--设备方向
- 如何选择学习的方向 推荐
- 学习cocos2d-x之路(4)--实现Hero在各个方向移动
- 2016.4.24 little_bai_开始记录Android学习心得,我不太确定自己的方向,但是希望走的远些。
- WEB 开发程序员的学习与发展方向
- 最近新技术学习方向
- 一位学长的学习建议(java方向)