大家好哇, 好久没来更博客了. 过去一年, 在结束了ORB-SLAM2的博客以后, 就开始去研究DSO了, 因此ORB-SLAM2的很多模块化的代码并没有写完, 后面有时间再补上吧, 先立个flag. 之所以并不急于去做这件事, 一来是DSO确实是耗费心力, 二来是ORB-SLAM2的参考资料实在是太多了, 因此我也就偷了个懒....
其实早在今年三四月份, DSO相关的内容也基本上算做完了, 后面还有一些优化速度的工作需要做, 不过目前是没啥心力去做... 未来有时间的话会考虑的... 嗯, 第二个flag...
这次开篇是希望, 将现有的资料, 还有过去自己一些DSO方面的总结和思考整理成博文, 像前面ORB-SLAM2那样, 如果可以的话, 应该会考虑采用分模块实现源码的方式, 嗯, 第三个flag...
DSO的代码阅读难度非常高, 目前来说, 我也不算理解得很深刻, 因此就做个抛砖引玉, 希望能跟大家一起讨论讨论, 争取把这个东西整明白.
值得高兴的是, 目前社区里关于DSO的资料丰富了很多, 一来是DSO本身开源, 二来涂金戈和地平线实现了一个双目DSO, 还有就是github上目前有一个VI-Stereo-DSO的源码, 都是挺值得参考的.
不过单纯从双目的角度出发, 其实实现效果最好的, 应该是涂金戈的方案, 但是开源的代码中存在一些缺陷, 比如深度滤波并不能让静态双目深度值到达非常准确的深度值, 在拐弯口会挂掉, 以及在KITTI 06和KITTI 01会出现尺度对了, 但是定位误差比较大的情况.
至于地平线的双目DSO, 值得借鉴, 但是只限于在拓展DSO到RGB-D DSO的情况, 因为双目的情况, 误差太大了.
最后就是VI-Stereo-DSO, 单纯看他的双目模块, 非常遗憾, 它并没有实现双目的功能, 甚至因为添加了一个错误的双目残差, 导致了内存泄露.
综上, 目前好像还没有比较靠谱的双目方案... 嗯, DSO的研究道路还是如此的曲折和坎坷.
为了让开源社区能够多一些参考资料, 笔者便打算开始写DSO相关的博客. 首先会先从单目DSO入手, 引用已有资料结合自己的笔记, 来总结出一系列相关的博客. 闲暇之余, 会考虑代码的复现.
完成了单目DSO的系列博客以后, 会考虑在其基础上, 添加一些双目的介绍, 最后就是回环模块的介绍.
总之, 笔者争取将DSO整理成DS-SLAM.
今天就是当个开篇碎碎念, 给自己一点动力Push一下, 不然这个事情一直都拖着不做, 总归是不太合适的.
嘿嘿, 也希望未来能坚持出博文... 不会出现长时间的断更....