之前一直想转到计算机视觉方向,但是理论太多,又需要经验,补了一些计算机视觉的课,VR/AR是一个很有意思的方向,但是普遍的培训或者工作机会都是需要unity经验
最近看到某大厂在招收移动SLAM工程师,感觉可以试一试,所以准备尝试一下看看,把整个事情记录一下,做出来就做出来,做不出来就放弃
先列举一下参考资料:
1. 视觉SLAM十四讲(书还没有看,视频讲解的很清晰,很容易搜到,是十分适合入门的材料)
2.VSLAM解决方案详解https://zhuanlan.zhihu.com/p/97930833
3.SLAM算法各有哪些优缺点https://www.zhihu.com/question/51045335?sort=created
4. 某大佬实现的手机slam移植https://zhuanlan.zhihu.com/p/392677452
目前比较流行的结构是 前端做tracking, 后端做Mapping,
从PTAM开始,mapping和tracking同时做成了一个约定的方案,目前orb-SLAM3是 我调研到的最新的开源解法,还有很多优秀的在机器人端或者移动端都可以部署的算法,比如LSD-SLAM,VINS-MONO等等,通过阅读ORB_SLAM3的原论文可以追踪到相应的文章,同时也可以在对应的数据集上尝试复现(如果数据集开源的话)
还好有一定的linux和C++基础,这样本地的配置基本问题不大(但是并没有在ubuntu下面写过makefile啊喂),移动端可能还要学习android和iPhone的应用开发,以及一些常用的软件包 openCV(由于4刚刚出来,可能还是要先学3),g2o,ceres,eigen等对应的库
决定先把orb-slam3移植到现有的硬件上,手头有一台win7台式机,Ipad4,mi k20,以及小米平板2
看看效果,同时对比一下各个算法
移植成功之后,再把理论知识补一下,包括一些没有涉及到的可能会面试到的EKF,FAST, SIFT,SURT,等等
SLAM的理论已经有20多年了,和RL的历史有的一拼,所以工程化的能力应该是比较重要的
如果后面SLAM做得好,无论是移动端的AR/VR 还是ROS端的自动驾驶 应该都应付的来