链接:http://www.zhihu.com/question/29885222/answer/100043031

首先一切建立在相机模型 x = kPX 上

 
  x,X分别代表图片和空间中的二维三维齐次坐标,
  k为相机内参矩阵
  P = [R | t] 为空间坐标系到相机坐标系的 orientation- R 和 transformation- t
 

1, 首先对某一场景多角度多位置得到很多初始数据,选择其中的某两个来初始化,选定其中一个为空间原点
<img src="https://pic4.zhimg.com/2533dbf20dfcf38e3cc82830eef13d1b_b.png" data-rawwidth="773" data-rawheight="485" class="origin_image zh-lightbox-thumb" width="773" data-original="https://pic4.zhimg.com/2533dbf20dfcf38e3cc82830eef13d1b_r.png">
 

2. 通过SIFT ,SURF等特征点查找匹配之后,用 8点法 和 RANSAC,多次计算两张图之间的Fundamental Matrix,选择其中最好的一个。
 
<img src="https://pic2.zhimg.com/5f44b0abdf9065b747aa7424895c3c61_b.png" data-rawwidth="789" data-rawheight="472" class="origin_image zh-lightbox-thumb" width="789" data-original="https://pic2.zhimg.com/5f44b0abdf9065b747aa7424895c3c61_r.png">
 
 

3.F-matrix 计算 Essential-matrix

<img src="https://pic3.zhimg.com/ce0c15835abe5cd520d8c70945ce0232_b.png" data-rawwidth="809" data-rawheight="468" class="origin_image zh-lightbox-thumb" width="809" data-original="https://pic3.zhimg.com/ce0c15835abe5cd520d8c70945ce0232_r.png">4, 用E-matrix计算相机的R和T,需要用SVD分解,因为orientation R是一个正交阵。
 
 
 
4, 用 E-matrix 计算相机的 R 和 T,需要用SVD分解,因为orientation R是一个正交阵。

<img src="https://pic1.zhimg.com/6bf0b539b963550054d874f9697524f8_b.png" data-rawwidth="742" data-rawheight="504" class="origin_image zh-lightbox-thumb" width="742" data-original="https://pic1.zhimg.com/6bf0b539b963550054d874f9697524f8_r.png">5, 得到两个相机之间的P矩阵之后,通过对应点,用Triangulation计算对应点的空间坐标。
 
 
 
 
5, 得到两个相机之间的P矩阵之后,通过对应点,用 Triangulation 计算对应点的空间坐标

<img src="https://pic4.zhimg.com/e0b6757903e37599abf74fa0f30f7d0f_b.png" data-rawwidth="762" data-rawheight="489" class="origin_image zh-lightbox-thumb" width="762" data-original="https://pic4.zhimg.com/e0b6757903e37599abf74fa0f30f7d0f_r.png">6. 第三个位置的照片,直接根据已有的上步计算的点,与第三个位置图片上点的对应关系,计算P矩阵。
 
 
 
 
6. 第三个位置的照片,直接根据已有的上步计算的点,与第三个位置图片上点的对应关系,计算P矩阵
 
<img src="https://pic3.zhimg.com/c9d5b486f24b982d26fe5692899ff95a_b.png" data-rawwidth="707" data-rawheight="499" class="origin_image zh-lightbox-thumb" width="707" data-original="https://pic3.zhimg.com/c9d5b486f24b982d26fe5692899ff95a_r.png">
 
 
 
 
7. 最后全局优化,Bundle Adjustment
 
<img src="https://pic2.zhimg.com/0ae3f9a9a8b77b289bd7af6c749442c5_b.png" data-rawwidth="763" data-rawheight="523" class="origin_image zh-lightbox-thumb" width="763" data-original="https://pic2.zhimg.com/0ae3f9a9a8b77b289bd7af6c749442c5_r.png">
 

 
 
 
8, Bundle Adjustment所有的艺术就是优化 hessian matrix的逆矩阵。

<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">

------------------------------------------------------------------------------------------------------------
推荐宾大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重建

[SLAM] 02 Some algorithms of 3D reconstruction的更多相关文章

  1. [SLAM] 02. Some basic algorithms of 3D reconstruction

    链接:http://www.zhihu.com/question/29885222/answer/100043031 三维重建 3D reconstruction的一个算法思路介绍,帮助理解 首先一切 ...

  2. Camera Calibration and 3D Reconstruction

    3D RECONSTRUCTION WITH OPENCV AND POINT CLOUD LIBRARY http://stackoverflow.com/questions/19205557/op ...

  3. Multi-View 3D Reconstruction with Geometry and Shading——Part-2

    From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading 我们的主要目标是只利用图像中的信息而没有额外的限制或假设来得 ...

  4. Multi-View 3D Reconstruction with Geometry and Shading——Part-1

    From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading 计算机视觉的主要任务就是利用图像信息能智能理解周围的世界. ...

  5. Real-time 3D Reconstruction using Kinect

    http://jiakaizhang.com/project/real-time-3d-reconstruction/ Real-time 3D Reconstruction using Kinect ...

  6. 视觉SLAM的数学基础 第一篇 3D空间的位置表示

    视觉SLAM中的数学基础 第一篇 3D空间的位置表示 前言 转眼间一个学期又将过去,距离我上次写<一起做RGBD SLAM>已经半年之久.<一起做>系列反响很不错,主要由于它为 ...

  7. 本人AI知识体系导航 - AI menu

    Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯   徐亦达老板 Dirichlet Process 学习 ...

  8. AI资源对接需求汇总:第3期

    更好的阅读体验,请查看首发原文链接:AI资源对接需求汇总:第3期 平台介绍 平台由人工智能领域几个知名原创公众号发起,总读者约25万. 主要面向人工智能领域的从业者,涵盖图像处理.三维计算机视觉.机器 ...

  9. [SLAM] 01 "Simultaneous Localization and Mapping" basic knowledge

    发信人: leecty (Terry), 信区: ParttimeJobPost标 题: 创业公司招SLAM 算法工程师发信站: 水木社区 (Thu Jun 16 19:18:24 2016), 站内 ...

随机推荐

  1. Android 代理服务器为全网提供代理

    Android 代理服务器为全网提供代理 背景:学校WiFI过滤较严,故学生很少有可以上网账号的.而学校又分为俩层验证,第一层可以注册并且拥有访问校内网的权限,第二层为校内密码验证机(非服务器)进行用 ...

  2. android: 调用摄像头拍照

    很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的.下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄 ...

  3. SQL行转列和列转行

    行列互转,是一个经常遇到的需求.实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现. 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和 ...

  4. JavaScript中如何中断forEach循环

    先来看下forEach的实现 // Production steps of ECMA-262, Edition 5, 15.4.4.18// Reference: http://es5.github. ...

  5. xcode中嵌入framework(接入快用最新SDK遇到的问题)

      但xcode设置中并没有找到Embed Frameworks这个选项,使用以下方式添加 当遇到dyld: Library not loaded:xxxx  Reason: image not fo ...

  6. (转)create table #temptable 临时表 和 declare @bianliang table ()表变量

    在开发过程中,经常会遇到使用表变量和本地临时表的情况.下面是对二者的一个介绍: 1. 为什么要使用表变量 表变量是从2000开始引入的,微软认为与本地临时表相比,表变量具有如下优点:  a.与其他变量 ...

  7. javaweb 学习总结

    http://www.cnblogs.com/xdp-gacl/category/574705.html 这个总结很好,以前看书没搞懂的,这里基本上都清楚了,赞一个,推荐. Servlet与普通Jav ...

  8. AT&amp;T汇编语言——工具及程序组成

    1.开发工具 在汇编语言中,用到的工具主要用下面几个: 汇编器.连接器.调试器.编译器 由于我在这里的是AT&T汇编语言.所以工具下也都是gnu下的那些. 1.1 汇编器(as) 汇编器有非常 ...

  9. transmission简单使用

    1.安装transmission-daemon sudo apt-get install transmission-daemon 2.设置用户名和密码并打开远程连接 a). 打开文件vim /var/ ...

  10. IDE、SATA、SCSI、SAS、FC、SSD硬盘类型介绍[zz]

    目前所能见到的硬盘接口类型主要有IDE.SATA.SCSI.SAS.FC等等. IDE是俗称的并口,SATA是俗称的串口,这两种硬盘是个人电脑和低端服务器常见的硬盘.SCSI是"小型计算机系 ...