前言
在这门课程二期开课之前,我想说些心里话。时间飞逝,第一期课程的启动是2021年3月份左右,时至今日,已满三载有余,感概万千。这三年里面三维重建出现了各式各样的发展:nerf、gaussian splatting等,这些技术的出现无疑是对传统3D视觉的巨大冲击,但目前来看,大多数nerf和gaussian splatting 的输入还都是sfm的结果,根据开源的结果来看准确的说应该是使用colmap的结果作为输入,当然也有一些工作是without colmap的(目前并不多)。显而易见,传统的mvs的道路正在走向泯灭的路途中,而sfm这一个重要的环节何事会何时被新技术完全替换,我想应该在不久会出现,但是目前来看传统的sfm技术还扮演者一个重要的角色。
谈起sfm的作用(排除做类似photoscan、contextcapture的产品),目前除了提供给nerf和GS的输入之外,在AR领域也发挥着一个重要的作用-map-based 视觉重定位。我们都知道所有的结果都是有痕可寻的,这句话同样适用于colmap的sfm结果,一旦发现最终的结果不尽人意,都会归因为输入的质量不佳。所以单纯的git clone 来使用是远远不够的,要结合大量的经验来优化,这样才能起到事半功倍的作用。
关于二期课程的迟到,在一期结束后有粉丝朋友和相关人员一直在期待第二期,因为工作和生活原因,这一拖便是三年。这三年我也是在AR行业摸爬滚打的重要的时间段,也是自我沉淀和复盘的关键期。对于二期课程的内容我想分享的很多,这些知识点也是我觉得目前市面上公司最需要的。
课程大纲
差异化体现
二期课程在内容上相比一期增加了不少知识,本来我列得更多,如分组sfm、多相机sfm、二维码、平面sfm等等。但是考虑到如果原本的sfm都不够鲁棒,做分组这些工作都是无意义的,分组sfm的稳定的前提是local sfm足够awesome。因此目前课程的内容相比于一期有以下增加:
1.long-term feature sfm:
这个内容主要是针对空间计算,视觉定位要满足不同季节、不同时间段等的要求,handcrafted feature 很难达到效果。
2.view graph 优化:
sfm算法的稳定性很大程度上依赖于匹配连接图的稳定性。
3.多模态数据的融合:
数据源除了RGB图像以外,现在不少sensor都可以拿到depth 信息或者激光测距信息,这些信息完全可以融合到sfm中。
4.先验地图的定位:
是AR的核心,这个话题要完整的论述需要长篇大论,所以二期课程这里只是基于colmap本身的sift来实现,里面也会有一些不少的tricks。
5.相比于colmap的incremental sfm 而言,其框架不具备全局和全景的功能,二期加入全局和全景的知识
是具备潜在的目的和意义:
-
目前不少用户的数据都是forward motion case ,特别是特斯拉4D 时空数据标注的出现,目前很多自动驾驶公司都在使用这一方案。这种类型的数据处理比较困难,而gsfm和isfm如何结合构建hybird便可处理此问题。
-
全景数据的处理也是目前做的比较多的工作,而处理方式和技巧也需要大量的经验。
综上,总体而言,
二期课程核心剑指原框架的不足,二期增加的所有内容都是原框架没有的,主要目的是为了提高鲁棒性和准确性
。
注
:本课程依赖仓库:https://github.com/yuancaimaiyi/colmap-fusion-gps(为融合gps完整版代码,含有注释)
适合人群
1、理工科相关专业,熟悉三维重建、线性代数、概率论等相关理论知识、有一定c++、python编程基础;
2、已经入门三维重建研究领域的本科、硕士及博士研究生;
3、希望通过此课程能够快速实现三维重建算法,并能在项目中应用的研究人员。
学后收获
1、掌握视觉三维重建整个流程,对colmap框架有深刻的理解,同时对于其他框架也能较快的入手
2、掌握多视图几何算法、光束法平差以及各种改进如融合gps、融合深度信息、多源数据处理等等
3、锻炼举一反三的能力,将colmap中优秀的算法应用到其他地方,如gaussian splatting、AR视觉定位等