[SLAM] Studying Guidance

时间:2024-01-07 09:01:50

Books from Zhihu:

幽默一把

看完Gonzalez:嗯,好像很好玩的样子,我也来搞一搞。
看完Price:什么鬼,怎么这么多公式,公式看不懂肿么破。
看完Szeliski:原来用一千页的书只能勉强做综述和论文索引,玩蛋去。

书的使用

Szeliski的《computer vision:algorithms and application》论文索引工具书

Reinhard Klette的《Concise Computer Vision: An Introduction into Theory and Algorithms》入门书

David A.Forsyth, Jean Ponce《Computer Vision: A Modern Approach》入门书

Simon J.D. Prince《Computer Vision Models, Learning, and Inference》结合ML

Richard Hartley《Multiple View Geometry in Computer Vision》3D重建

Yi Ma《An Invitation to 3-D Vision》3D重建


“*视角(上帝)视频” - 基于深度摄像机

[SLAM] Studying Guidance

可行性(1)之发展方向

从一个行业内公司的角度回答一下你的问题。我们公司是做实时三维重建的,在招聘的时候得到了一些大牛的建议,在这里和你分享一下。

有人建议我找图像处理背景的,而不是三维重建背景的,尽管我们核心的技术是三维重建。原因是,学习图像处理的人会接触到更广泛更多元的技术,而三维重建背景的会非常专注于细分的算法,因为三维重建本身还有更细分的技术,所以在做研究生阶段的学习的时候,会有很具体的专业方向,比如说就是做航拍地形的三维重建,或者是佛像的三维重建,这里面因为场景的区别运用到的拍摄技术和重建技术都是不一样的,而且有一些不同技术之间也没有关系(当然三维重建本身的概念是相同的)。

这么解释这件事,并不是想说更general的图像处理比三维重建好,这个只是我们公司在特定阶段对于人才的具体需求,并从这个需求出发得到的建议。

你说的对于三维重建相关技术在商业上应用的前景的判断,我是比较认同的,从以上这个角度考虑,你并不非得要做三维重建,才能参与到与三维重建相关的工作中,随着三维重建相关技术的发展,与其相关的很多技术都还没有成型,所以很多图像处理和计算机视觉的东西都会被应用在三维重建的技术上。

你说到你是希望做科研,那我个人觉得三维重建里面还有很多东西可以做(从我们在商业场景上的探索来看),如果专注于某个三维重建有关的细分场景,都会有很大空间可以往深了去研究的。

国内比较好的去处,我第一个能想到的就是浙大的CAD图像实验室。国外的话,比如CMU在计算机图像领域都是很有名的。

关于三维重建未来的热点和难度,这个领域就像我说的可以做的很专,场景也有很多,每个场景都有不同的挑战,不懂得我就不说了,我讲一个就是实时三维重建的问题。

三维重建有包括多目视觉的三维重建和基于深度相机的三维重建,还有光场相机的三维重建,

  • 多目视觉的三维重建是非常耗时的,在很多商业应用上已经能看到这个问题所带来的瓶颈,与之对应的深度相机的三维重建是可以进行快速的重建的,
  • 但是深度相机本身又有很多局限性,并不能像多目相机那样在各种条件下都可以进行拍摄,
  • 至于光场相机的三维重建,这个基本只能停留在理论阶段,实际操作对于光学元件的要求和计算量都非常高,所以并不是很实用(但是一旦技术成熟,其实是这里面相比较而言更理想的一种三维重建方式)。

可行性(2)之技术方向

雷达扫描效果无敌!
尤其是从空中用雷达扫描进行建模,成本很高,很难推广到普通的商用,大多用户都是专业测绘人员或者从事相关工作的企业。

[SLAM] Studying Guidance

香港科技大学 之 Altizure航拍建模

北京无限界科技

[SLAM] Studying Guidance

“学术品味和学术视野”的重要性
首先三维重建并不是一个大方向。机器学习或者是计算机视觉才是大方向。三维重建隶属于计算机视觉。
如果你现在不知道选什么,那我建议你先修基础知识,尤其是凸优化。无论做机器学习还是计算机视觉,凸优化都是必不可少的。

至于你说的导师年轻有为,这个我倒觉得你得先客观评价一下,不要光看他网站上介绍的头衔。建议你在 google scholar 上搜索你导师的名字(英文),如果有 scholar profile 的,看看最近几年发了什么档次的文章(不要把中文的算进来),citation 和 h-index 有多少。如果没有,可以自己手动估摸一下他的 citation。做这行的,国内年轻教授有个 200 的 citation 已经算鹤立鸡群了。美国一般学校的几年年轻 AP 则是在 600 左右。评价导师水平很重要,这直接关系到你的学术品味和学术视野。如果导师水平不够,那么很可能你接受到的学术训练并不正统,走了弯路。

如果你受了良好训练,有了好的学术品味和视野,到时候国内/国外读博哪些实验室比较好,哪些老师很厉害,你心里肯定比在这里答题的大部分人都清楚。
而且,即使你知道哪些地方好,人家并不一定会要你。这是一个老师挑学生的过程。如果想存活下来(即拿到 PhD offer),你只能尽力提高自己的筹码。这体现在你的知识水平、技能上。而这些是修课和发论文可以帮助的。
总而言之,建议你先修优化方面的课程,调查一下导师的水平,做到心中有数。然后再在导师训练下感受一下,到时你自然知道自己应该做什么。

算法思路 - 作者:铁胆火车侠

首先一切建立在相机模型 x=kPX 上
(x,X分别代表图片和空间中的二维三维齐次坐标,k为相机内参矩阵,P=[R | t] 为空间坐标系到相机坐标系的 orientation- R 和 transformation- t)

1, 首先对某一场景多角度多位置得到很多初始数据,选择其中的某两个来初始化,选定其中一个为空间原点。

2. 通过SIFT SURF等特征点查找匹配之后,用 8点法 和 RANSAC,多次计算两张图之间的Fundamental Matrix,选择其中最好的一个
3.用F-matrix计算Essential-matrix
4, 用E-matrix计算相机的R和T,需要用SVD分解,因为orientation R是一个正交阵。
5, 得到两个相机之间的P矩阵之后,通过对应点,用Triangulation计算对应点的空间坐标。
6. 第三个位置的照片,直接根据已有的上步计算的点,与第三个位置图片上点的对应关系,计算P矩阵。
7. 最后全局优化,Bundle Adjustment
8, Bundle Adjustment所有的艺术就是优化 hessian matrix的逆矩阵
<span style="font-size: 16px;" data-mce-style="font-size: 16px;"><img src="https://pic3.zhimg.com/08a972d34f7fa4f69bc6730324362b3e_b.png" data-rawwidth="631" data-rawheight="503" class="origin_image zh-lightbox-thumb" width="631" data-original="https://pic3.zhimg.com/08a972d34f7fa4f69bc6730324362b3e_r.png"></span>
推荐宾大Shi Jianbo教授在Coursera上的公开课 Robotics:Perception
上面所有的截图都来自他最后一次课的视频讲义截图
https://www.coursera.org/learn/robotics-perception/home/welcome
配合视觉圣经 Multiple View Geometry来看简直完美。Ransac, Bundle-adjustment, -View, Homography全部都有。一共四周,有线性代数基础(主要是SVD用来解线性方程),作业用Matlab. 第一周作业: Dolly Zoom
第二周作业: 平面摄影几何,广告牌在视频中的投影,类似2D增强现实
第三周作业: 在平面Barcode上通过sift检测特征点,通过H矩阵计算相机位置,做3D增强现实
第四周作业: 3D重建

宾大Shi Jianbo教授


如何实践

Department of Engineering Science, University of Oxford

What is SLAM?

基于移动端的,比如智能手机的重建现在有很多初创公司在做。

比较传统的,有Shape from Shading, Shape from motion,

前者通过光照变化重建,后者通过位移变化。

还是比较传统的,用两幅图像重建的,就是什么epipolar那一坨。

后来在大概06年吧,发了一篇神作,把网上海量图片找出来关于一个场景的然后进行重建。

效果比较好的还有PTAM,是现在华盛顿圣路易斯分校的一个日本老师搞出来的,重建领域大拿,那个东西能进行稠密重建好像我记不大清楚了。

后来他还搞了个能在遮挡情况下进行重建的项目。

比较偏门的还有透明物体重建,比如重建个玻璃杯什么的,我记得这个是一个巴西的老师主公这个方向,主要是通过什么折射率还是什么的,数学要求太多完全看不懂囧。

清华大神,现在应该是MIT的那位在CVPR上也发了一篇关于这个的,能重建火好像,扫了一眼没看明白呵呵。

另外,在07年,AI之神,现在BAIDU的那位Ng先生和他当时的学生,现在已经是faculty的合做了利用一幅图像重建的项目。这个反正不怎么主流,慕尼黑工业大学曾经也做过这个领域。

还有,传统意义上的重建,比如马毅在书里第某章,好像是11章吧,忘了,写的过程,首先要找feature point嘛,然后epipolar那一坨网上招呼。但是现在由于计算机性能大幅提升,人们已经可以貌似跳过这一步了,能够用原始图像直接重建了,好神奇啊。还是慕尼黑工业大学发过这部分文章,但是原始的我忘了,但应该是12年以后的事儿. --------以上,基于2D图像,

以下有3D加入--------

并且由于无人机的兴起,很多地方在做,简单说,就是无人机、或者什么机器人比如扫地机器人之类的,绕着某个空间转几圈,就能够重建出当前环境,并且知道自己所处的位置。

当然,Kinect及其相似物的大大扩展了重建的领域。其实。。。你用这玩意的得到的本身就是3D的了。。。其实,我们要做的,就是把这东西变的更好看一点,更好操作一点。

之前没有kinect时候,比如重建个人,大家先找silhouette,然后找交叉部分,然后找visual hull,然后重建出来,

后来有了kinect,人们有了各种其他方法,比如基于skeleton,基于配准。。。 o 对了,kinect现在已经能够,快速重建了,就是比如一人拿个kinect绕着你扫一圈,然后就能进行3D打印了。跟十二生肖里面那几个贼干的差不多嘛。 -------------- 。。。

太多了,如果有兴趣,我提供一点入门的东西,咱一起学啊。。。或者题主已经入大牛实验室门了。。。求推荐啊哈哈

首先,书,马毅的那本,还有zisserman的那本;

程序,先别玩儿PTAM,那玩意儿一般用linux,而且整理的其实不好,用起来反正我觉得麻烦。

入门的用stanford的一个,三视觉重建一个大卫头像,有matlab源代码,学习起来特别好。

一些比较好的实验室有学校:苏黎世理工;慕尼黑工业大学视觉组;康奈尔;华盛顿;华盛顿圣路易斯;北卡教堂山;肯塔基大学 (以上重建领域非常惊艳),还有一些cv牛校也有这个方向: UCLA;USC;UIUC (对不起,我真的不知道CMU, 哈佛, 耶鲁,普林斯顿,MIT, 加州理工这几只重建领域怎么样,其实,我连它们的主页长什么样都不知道)

另外,重建领域各个研究方向也不同。比如有专门做数学部分的,不过这都是上个世纪人们的侧重了,比如2目重建,从8点重建,一路刷到现在的5点重建;

还有做我刚才扯的那一堆的。 再另外,多文章最后用了Poisson Surface Reconstruction,那是重建点了之后的后续。我扫过,数学太多又一次没看懂,已经完全没有了自尊心受打击的感觉了。准备有时间看看这东西到底怎么干的。

------------- sorry 说的特乱,其实我自己真的没理清,这领域感觉太tm大了,水很深,如果还没入坑,请谨慎。。。需要积累的特别特别多 之前说的PTAM 是个神作,被google用了,其他的一些初创公司做的手机app如果你发现了,那应该非常基础,算法部分肯定不难实验。其实stanford的个教学程序你改改就是app了呵呵。在美国融资实在是太容易了,钱多人傻,吐槽一下,这些小公司都得死。。。

Niubiness

主页

总结:感觉很有前途的样子。。。 当然,对数学的要求也比较高,必读书也不少。

补充两个链接:

从零开始学习SLAM

学习SLAM需要哪些预备知识?