学习SLAM需要哪些预备知识

SLAM教程-ROS机器人俱乐部 | 更多交流、更多资料,社区为开发者带来便利
本篇文章主要介绍了"cartographer算法简析",主要涉及到cartographer算法简析方面的内容,对于cartographer算法简析感兴趣的同学可以参考一下。
上一篇我们已经成功的实现了一个只有两帧的简单slam程序,但是真正的slam程序是不会只有两帧画面,本篇将会使用更多的数据,同时制作一个简易的视觉里程计。
在上一篇中,我们利用比对两张图片的特征点,估计相机运动,最后得出了旋转向量和位移向量。在本篇中,我们将使用这两个向量,将两张图像的点云拼接起来,组合成一个更大的点云。
本讲的前半部分将带领读者参观一下当前的视觉SLAM方案,评述其历史地位和优缺点。表1列举了一些常见的开源SLAM方案,读者可以选择感兴趣的方案进行研究和实验。
我目前做的项目是类似于Android手机端SLAM,具体目的是什么不便透露,作为过来人,分享下经验,避免后来人走弯路,手机端最难以解决的问题从难到易排序如下。
SLAM涵盖的东西比较多,分为前端和后端两大块。前端主要是研究相邻帧的拼接,又叫配准。
今天这节课给大家带来的是Texas A&M University 金杉博士的学术分享:Template Attacks and Its Related Works。
构建移动游戏求解器,也就是通过电子的方法和图像处理的方法结合起来来自动地玩移动游戏。
Surya以:数独,大家来找茬,Piano Tiles,Unblock me,Free Flow等游戏为例讲解了如何从零开始构建一个游戏求解器,同时还讲解了实现的代码。
本期公开课为大家带来的是由戴忠欢分享的课程:Event-based Camera Visual Odometry (VO)。在本节课中介绍的重点是:为什么要在视觉里程计中使用DVS(Dynamic Vision Sensor)以及在VO中如何使用DVS?看到这么有吸引力的话题,大家是不是已经迫不及待了呢,现在就和泡泡一起学习吧。祝大家周末愉快。
相信很多人都用过Robotic Operating System (ROS)。Kevin参加了今年在韩国举行的ROSCon 2016,在本节课将给大家介绍关于ROS的新进展,包括一些非常有趣的新产品的发布,比如类似于乐高可以方便组装成各种形状的Turtlebot 3。ROS本身也添加了很多新功能,本节课重点介绍了最新提出的ROS 2 和ROS 1的区别。下面请大家观看视频。预祝大家圣诞和新年快乐!&img src=&/50/da_b.jpg& data-rawwidth=&400& data-rawheight=&400& class=&content_image& width=&400&&(本文首发于:&a href=&/question//answer/& class=&internal&&学习SLAM需要哪些预备知识? - 立党的回答&/a&)&br&作者:立党&br&链接:&a href=&/question//answer/& class=&internal&&学习SLAM需要哪些预备知识? - 立党的回答&/a&&br&来源:知乎&br&著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。&br&&br&&p&首先搬出宝典:&a href=&/?target=http%3A//www.robots.ox.ac.uk/%7Evgg/hzbook/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Multiple View Geometry in Computer Vision&i class=&icon-external&&&/i&&/a&。这本书基本涵盖了Vision-based SLAM这个领域的全部理论基础!读多少遍都不算多!另外建议配合Berkeley的课件学习。(&b&更新&/b&:这本书书后附录也可以一并读完,包括附带bundle adjustment最基本的levenberg marquardt方法,newton方法等)&/p&&br&&p&只要是SLAM问题就要涉及optimization,就要用到各种least square算法。所以另一个基础理论是Sparse Matrix,这是大型稀疏矩阵处理的一般办法。可以参考Dr. Tim Davis的课件:&a href=&/?target=http%3A//faculty.cse.tamu.edu/davis/welcome.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tim Davis&i class=&icon-external&&&/i&&/a& ,他的主页里有全部的课程视频和Project。针对SLAM问题,最常用的least square算法是Sparse Levenberg Marquardt algorithm,这里有一份开源的代码以及具体实现的paper:&a href=&/?target=http%3A//users.ics.forth.gr/%7Elourakis/sparseLM/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sparse Non-Linear Least Squares in C/C++&i class=&icon-external&&&/i&&/a&&/p&&br&&p&然后是框架级的工具。最常用的机器人框架是ROS&a href=&/?target=http%3A//www.ros.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ROS.org | Powering the world's robots&i class=&icon-external&&&/i&&/a&,可以使用在Windows,Linux和MacOS等操作系统上,里面包含一整套常用的机器人理论的算法和工具的实现。另一个开源工具集是OpenSLAM &a href=&/?target=https%3A//www.openslam.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OpenSLAM.org&i class=&icon-external&&&/i&&/a&,其中的g2o是目前最流行的graph optimization的实现工具。另外OpenCV也是视觉相关必备的基础工具,Multiple View教材中的常用算法在OpenCV中都有常用的实现。(&b&更新&/b&:OpenCV的文档&a href=&/?target=http%3A//docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Camera Calibration and 3D Reconstruction&i class=&icon-external&&&/i&&/a& 中,包含SLAM相关的基础理论公式以及C/C++/Python实现的API)&/p&&br&&p&另外多说一句题外话,因为Optimization和图片的feature extraction是SLAM里最核心的两个问题,而这两个问题都是运算量极大的。好的SLAM框架要兼顾速度和精确度。目前大部分Vision或者RGBD的SLAM框架都是用C++来时实现完成的以确保运算速度。虽然我个人很欣赏Python,并且Python3也支持SciPy,OpenCV,ROS等重要工具,不过依然有大量的诸如g2o等基础性库在python下无法使用,而且如果要借鉴其他人的代码,最方便的还是在C++中实现。所以如果提问者有志于在这个领域做深入研究,夯实的C++基础是必不可少的。Introduction to Algorithms,以及 &a class=&member_mention& href=&/people/ecc0ec035f& data-editable=&true& data-title=&@vczh& data-hash=&ecc0ec035f& data-hovercard=&p$b$ecc0ec035f&&@vczh&/a& 推荐的C++ Primer等,都是在实际工作前要自己做好的功课。&/p&&br&&p&下面说一些硬件和实验上的知识储备。首先Vision-based SLAM常用摄像机标定(Camera Calibration)的世界通用简单方法,是张正友博士(Dr. Zhengyou Zhang,主页&a href=&/?target=http%3A///en-us/um/people/zhang/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Zhengyou Zhang's Home Page&i class=&icon-external&&&/i&&/a&)的方法(张正友博士是本领域里少数的具有极其巨大影响力和贡献的华人学者,已成脑残粉嘤嘤嘤)。具体方法和实现,我在这里推荐两个,一个是Caltech工具箱:&a href=&/?target=http%3A//www.vision.caltech.edu/bouguetj/calib_doc/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Camera Calibration Toolbox for Matlab&i class=&icon-external&&&/i&&/a& ,以及相关paper:&a href=&/?target=http%3A//www.vision.caltech.edu/bouguetj/calib_doc/htmls/ref.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Camera Calibration Toolbox for Matlab&i class=&icon-external&&&/i&&/a&。该方法的另一个实现,是Matlab最新版本内置的Camera Calibration的application,自动导入标定图片并把得到的结果输出给Matlab,更加自动化,更加便捷准确。更多的Camera Model理论知识请参考Multiple View Geometry。&/p&&br&&p&至于RGB-D Camera,最常用的采集设备有两种,一种是Microsoft Kinect,一个生态环境完备的RGBD Camera,可以直接用Visual Studio可Kinect SDK直接开发,也有大量开发好的程序以供借鉴参考,也可以用OpenNI和ROS采集处理,我就不多介绍了,毕竟微软是对程序员最友好的公司没有之一(微软大法好)。另一个是Google的Project Tango,Google对于这个自家的神器还是很低调的,可以看看宣传片&a href=&/?target=https%3A///atap/projecttango/%23project& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ATAP Project Tango&i class=&icon-external&&&/i&&/a& ,绝对酷炫——可惜我们lab刚刚买的那一台,我还没有用过,所以对具体开发不太了解。&/p&&br&&p&另外有几个网上成熟的数据集和测试方法,一个是Malaga Dataset,一个西班牙的团队采集的Malaga城市数据:&a href=&/?target=http%3A//www.mrpt.org/MalagaUrbanDataset& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Málaga Stereo and Laser Urban Data Set&i class=&icon-external&&&/i&&/a&,覆盖了城市中汽车驾驶的各种情况(停车,加速,减速,行人,建筑,绿化带等),里面提供了双摄像头,Laser,IMU等数据以及GPS的ground truth trajectory。不过该版本因为是在市中心,所以GPS的ground truth并不可靠。另一个是慕尼黑工业大学Computer Vision Lab的RGB-D&/p&&p&dataset &a href=&/?target=https%3A//vision.in.tum.de/data/datasets/rgbd-dataset& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&vision.in.tum.de/data/d&/span&&span class=&invisible&&atasets/rgbd-dataset&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&,里面提供了大量的室内的RGBD数据集,以及非常方便好用的benchmark tools。第三个是KITTI Dataset:&a href=&/?target=http%3A//www.cvlibs.net/datasets/kitti/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The KITTI Vision Benchmark Suite&i class=&icon-external&&&/i&&/a&,也是认可度很广泛的汽车驾驶数据集。&/p&
(本文首发于:) 作者:立党 链接: 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先搬出宝典:
&p&首先搬出宝典:&a href=&///?target=http%3A//www.robots.ox.ac.uk/%7Evgg/hzbook/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Multiple View Geometry in Computer Vision&i class=&icon-external&&&/i&&/a&。这本书基本涵盖了Vision-based SLAM这个领域的全部理论基础!读多少遍都不算多!另外建议配合Berkeley的课件学习。(&b&更新&/b&:这本书书后附录也可以一并读完,包括附带bundle adjustment最基本的levenberg marquardt方法,newton方法等)&/p&&br&&p&只要是SLAM问题就要涉及optimization,就要用到各种least square算法。所以另一个基础理论是Sparse Matrix,这是大型稀疏矩阵处理的一般办法。可以参考Dr. Tim Davis的课件:&a href=&///?target=http%3A//faculty.cse.tamu.edu/davis/welcome.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Tim Davis&i class=&icon-external&&&/i&&/a& ,他的主页里有全部的课程视频和Project。针对SLAM问题,最常用的least square算法是Sparse Levenberg Marquardt algorithm,这里有一份开源的代码以及具体实现的paper:&a href=&///?target=http%3A//users.ics.forth.gr/%7Elourakis/sparseLM/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Sparse Non-Linear Least Squares in C/C++&i class=&icon-external&&&/i&&/a&&/p&&br&&p&然后是框架级的工具。最常用的机器人框架是ROS&a href=&///?target=http%3A//www.ros.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ROS.org | Powering the world's robots&i class=&icon-external&&&/i&&/a&,可以使用在Windows,Linux和MacOS等操作系统上,里面包含一整套常用的机器人理论的算法和工具的实现。另一个开源工具集是OpenSLAM &a href=&///?target=https%3A//www.openslam.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OpenSLAM.org&i class=&icon-external&&&/i&&/a&,其中的g2o是目前最流行的graph optimization的实现工具。另外OpenCV也是视觉相关必备的基础工具,Multiple View教材中的常用算法在OpenCV中都有常用的实现。(&b&更新&/b&:OpenCV的文档&a href=&///?target=http%3A//docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Camera Calibration and 3D Reconstruction&i class=&icon-external&&&/i&&/a& 中,包含SLAM相关的基础理论公式以及C/C++/Python实现的API)&/p&&br&&p&另外多说一句题外话,因为Optimization和图片的feature extraction是SLAM里最核心的两个问题,而这两个问题都是运算量极大的。好的SLAM框架要兼顾速度和精确度。目前大部分Vision或者RGBD的SLAM框架都是用C++来时实现完成的以确保运算速度。虽然我个人很欣赏Python,并且Python3也支持SciPy,OpenCV,ROS等重要工具,不过依然有大量的诸如g2o等基础性库在python下无法使用,而且如果要借鉴其他人的代码,最方便的还是在C++中实现。所以如果提问者有志于在这个领域做深入研究,夯实的C++基础是必不可少的。Introduction to Algorithms,以及 &a class=&member_mention& href=&///people/ecc0ec035f& data-editable=&true& data-title=&@vczh& data-hash=&ecc0ec035f& data-tip=&p$b$ecc0ec035f& data-hovercard=&p$b$ecc0ec035f&&@vczh&/a& 推荐的C++ Primer等,都是在实际工作前要自己做好的功课。&/p&&br&&p&下面说一些硬件和实验上的知识储备。首先Vision-based SLAM常用摄像机标定(Camera Calibration)的世界通用简单方法,是张正友博士(Dr. Zhengyou Zhang,主页&a href=&///?target=http%3A///en-us/um/people/zhang/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Zhengyou Zhang's Home Page&i class=&icon-external&&&/i&&/a&)的方法(张正友博士是本领域里少数的具有极其巨大影响力和贡献的华人学者,已成脑残粉嘤嘤嘤)。具体方法和实现,我在这里推荐两个,一个是Caltech工具箱:&a href=&///?target=http%3A//www.vision.caltech.edu/bouguetj/calib_doc/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Camera Calibration Toolbox for Matlab&i class=&icon-external&&&/i&&/a& ,以及相关paper:&a href=&///?target=http%3A//www.vision.caltech.edu/bouguetj/calib_doc/htmls/ref.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Camera Calibration Toolbox for Matlab&i class=&icon-external&&&/i&&/a&。该方法的另一个实现,是Matlab最新版本内置的Camera Calibration的application,自动导入标定图片并把得到的结果输出给Matlab,更加自动化,更加便捷准确。更多的Camera Model理论知识请参考Multiple View Geometry。&/p&&br&&p&至于RGB-D Camera,最常用的采集设备有两种,一种是Microsoft Kinect,一个生态环境完备的RGBD Camera,可以直接用Visual Studio可Kinect SDK直接开发,也有大量开发好的程序以供借鉴参考,也可以用OpenNI和ROS采集处理,我就不多介绍了,毕竟微软是对程序员最友好的公司没有之一(微软大法好)。另一个是Google的Project Tango,Google对于这个自家的神器还是很低调的,可以看看宣传片&a href=&///?target=https%3A///atap/projecttango/%23project& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ATAP Project Tango&i class=&icon-external&&&/i&&/a& ,绝对酷炫——可惜我们lab刚刚买的那一台,我还没有用过,所以对具体开发不太了解。&/p&&br&&p&另外有几个网上成熟的数据集和测试方法,一个是Malaga Dataset,一个西班牙的团队采集的Malaga城市数据:&a href=&///?target=http%3A//www.mrpt.org/MalagaUrbanDataset& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The Málaga Stereo and Laser Urban Data Set&i class=&icon-external&&&/i&&/a&,覆盖了城市中汽车驾驶的各种情况(停车,加速,减速,行人,建筑,绿化带等),里面提供了双摄像头,Laser,IMU等数据以及GPS的ground truth trajectory。不过该版本因为是在市中心,所以GPS的ground truth并不可靠。另一个是慕尼黑工业大学Computer Vision Lab的RGB-D&/p&&p&dataset &a href=&///?target=https%3A//vision.in.tum.de/data/datasets/rgbd-dataset& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&vision.in.tum.de/data/d&/span&&span class=&invisible&&atasets/rgbd-dataset&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&,里面提供了大量的室内的RGBD数据集,以及非常方便好用的benchmark tools。第三个是KITTI Dataset:&a href=&///?target=http%3A//www.cvlibs.net/datasets/kitti/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&The KITTI Vision Benchmark Suite&i class=&icon-external&&&/i&&/a&,也是认可度很广泛的汽车驾驶数据集。&/p&&br&&br&&br&原答案链接:&a href=&/question//answer/& class=&internal&&去美国读CS博士,方向是机器人导航,视觉方面,推荐一下相关编程方面准备?还有相关算法需要学习哪些? - 立党的回答&/a&&br&&br&光收藏不点赞,bs你们(手动斜眼
首先搬出宝典:。这本书基本涵盖了Vision-based SLAM这个领域的全部理论基础!读多少遍都不算多!另外建议配合Berkeley的课件学习。(更新:这本书书后附录也可以一并读完,包括附带bundle adjustment最基本的lev…
已有帐号?
无法登录?
社交帐号登录
301 人关注
108 条内容
202 人关注
113 条内容
403 人关注
735 人关注
180 条内容
408 人关注
256 条内容Books from :
看完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重建
&自由视角(上帝)视频& - 基于深度摄像机
可行性(1)之
从一个行业内公司的角度回答一下你的问题。我们公司是做实时三维重建的,在招聘的时候得到了一些大牛的建议,在这里和你分享一下。
有人建议我找图像处理背景的,而不是三维重建背景的,尽管我们核心的技术是三维重建。原因是,学习图像处理的人会接触到更广泛更多元的技术,而三维重建背景的会非常专注于细分的算法,因为三维重建本身还有更细分的技术,所以在做研究生阶段的学习的时候,会有很具体的专业方向,比如说就是做航拍地形的三维重建,或者是佛像的三维重建,这里面因为场景的区别运用到的拍摄技术和重建技术都是不一样的,而且有一些不同技术之间也没有关系(当然三维重建本身的概念是相同的)。
这么解释这件事,并不是想说更general的图像处理比三维重建好,这个只是我们公司在特定阶段对于人才的具体需求,并从这个需求出发得到的建议。
你说的对于三维重建相关技术在商业上应用的前景的判断,我是比较认同的,从以上这个角度考虑,你并不非得要做三维重建,才能参与到与三维重建相关的工作中,随着三维重建相关技术的发展,与其相关的很多技术都还没有成型,所以很多图像处理和计算机视觉的东西都会被应用在三维重建的技术上。
你说到你是希望做科研,那我个人觉得三维重建里面还有很多东西可以做(从我们在商业场景上的探索来看),如果专注于某个三维重建有关的细分场景,都会有很大空间可以往深了去研究的。
国内比较好的去处,我第一个能想到的就是浙大的CAD图像实验室。国外的话,比如CMU在计算机图像领域都是很有名的。
关于三维重建未来的热点和难度,这个领域就像我说的可以做的很专,场景也有很多,每个场景都有不同的挑战,不懂得我就不说了,我讲一个就是实时三维重建的问题。
三维重建有包括多目视觉的三维重建和基于深度相机的三维重建,还有光场相机的三维重建,
多目视觉的三维重建是非常耗时的,在很多商业应用上已经能看到这个问题所带来的瓶颈,与之对应的深度相机的三维重建是可以进行快速的重建的,
但是深度相机本身又有很多局限性,并不能像多目相机那样在各种条件下都可以进行拍摄,
至于光场相机的三维重建,这个基本只能停留在理论阶段,实际操作对于光学元件的要求和计算量都非常高,所以并不是很实用(但是一旦技术成熟,其实是这里面相比较而言更理想的一种三维重建方式)。
可行性(2)之
雷达扫描效果无敌!尤其是从空中用雷达扫描进行建模,成本很高,很难推广到普通的商用,大多用户都是专业测绘人员或者从事相关工作的企业。
&学术品味和学术视野&的重要性
首先三维重建并不是一个大方向。机器学习或者是计算机视觉才是大方向。三维重建隶属于计算机视觉。如果你现在不知道选什么,那我建议你先修基础知识,尤其是凸优化。无论做机器学习还是计算机视觉,凸优化都是必不可少的。至于你说的导师年轻有为,这个我倒觉得你得先客观评价一下,不要光看他网站上介绍的头衔。建议你在 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: 16" data-mce-style="font-size: 16"&&img src="/08a972d34f7fa4f69bcb3e_b.png" data-rawwidth="631" data-rawheight="503" class="origin_image zh-lightbox-thumb" width="631" data-original="/08a972d34f7fa4f69bcb3e_r.png"&&/span&
推荐宾大Shi Jianbo教授在Coursera上的公开课 Robotics:Perception
上面所有的截图都来自他最后一次课的视频讲义截图
https://www.coursera.org/learn/robotics-perception/home/welcome
配合视觉圣经 Multiple View Geometry来看简直完美。Ransac, Bundle-adjustment, 2-View, Homography全部都有。一共四周,有线性代数基础(主要是SVD用来解线性方程),作业用Matlab.
第一周作业: Dolly Zoom
第二周作业: 平面摄影几何,广告牌在视频中的投影,类似2D增强现实
第三周作业: 在平面Barcode上通过sift检测特征点,通过H矩阵计算相机位置,做3D增强现实
第四周作业: 3D重建
宾大Shi Jianbo教授
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了呵呵。在美国融资实在是太容易了,钱多人傻,吐槽一下,这些小公司都得死。。。
总结:感觉很有前途的样子。。。&当然,对数学的要求也比较高,必读书也不少。&
补充两个链接:
阅读(...) 评论()}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信