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

三维重建 3D reconstruction的一个算法思路介绍,帮助理解


首先一切建立在相机模型 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重建

 
 

作为补充,形成知识体系,cmu的机器人课程体系是真强!

QUICK GUIDE TO GRADUATE PROGRAMS

Program Structure Duration Focus Placement
PhD Coursework, Qualifiers, Research, Dissertation 5-6 years Basic & Applied Research Academia, Research Lab
MSR Coursework, Research, Thesis 24 months Applied Research Research Lab
MRSD Coursework, Group Project 21 months Systems Development and Automation Industry, Applied Lab
MSCV Coursework, Group Project 16 months Vision: Recognition, Geometry Industry, Applied Lab

Course Navigation

16-311 Introduction to Robotics
16-384 Robot Kinematics and Dynamics
16-450 Robotics Systems Engineering
16-474 Robotics Capstone
 
16-264  Humanoids
16-350  Planning Techniques for Robots
16-362  Mobile Robot Programming Laboratory
16-385  Computer Vision
16-423  Designing Computer Vision Apps
16-720 Computer Vision or 16-722 Sensing and Sensors
16-741 Mechanics of Manipulation
16-711 Kinematics, Dynamic Systems and Control
16-811 Math Fundamentals for Robotics
 
16-831 Statistical Techniques in Robotics
16-822 Geometry Based Methods in Computer Vision
16-868 Biomechanics and Motor Control
16-865 Advanced Mobile Robot Development
16-833 Robot Localization & Mapping
 
16-650 Systems Engineering & Management for Robotic
 
16-782 Planning and Decision-making in Robotics
16-833 Robot Localization & Mapping *
16-811 Mathematical Fundamentals in Robotics *
 
16-822 Geometry Based Methods in Computer Vision *
 
16-623 Advanced Computer Vision Apps
16-823 Physics Based Methods in Vision
16-831 Statistical Techniques in Robotics *
 
16-720 Computer Vision or 16-722 Sensing and Sensors *
16-722 Sensing & Sensors
16-741 Mechanics of Manipulation *
16-711 Kinematics, Dynamic Systems and Control *
16-811 Mathematical Fundamentals in Robotics *
 
16-745 Dynamic Optimization
16-761 Intro to Mobile Robots
16-822 Geometry Based Methods in Computer Vision *
16-824 Learning-based Methods in Vision
16-831 Statistical Techniques in Robotics *
16-843 Manipulation Algorithms
16-868 Biomechanics and Motor Control *
 
 

最新文章

  1. 普通用户ssh无密码登录设置
  2. web安全之sqlload_file()和into outfile()
  3. Math DayTwo
  4. Storm之spout,bolt编写
  5. Form(表单)
  6. UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
  7. 【转】C/C++中可变参数函数的实现
  8. Js完美验证15/18身份证,Js验证身份证,支持15/18位
  9. VS调试技巧与快捷键&&VS快捷键
  10. 转 windows 下 Oracle 导出表结构
  11. 更少的直接百度,更多的取看API
  12. PostgreSql 分页limit
  13. MarkDown思考
  14. Ocelot中文文档-不支持
  15. WPF样式中TargetType 属性 (Property) 和 x:Key 属性 (Attribute)
  16. 与大家分享学习微信小程序开发的一些心得
  17. Dev、GridControl的模糊查询
  18. 重启 IIS7 应用或者应用程序池的批处理bat
  19. canvas-简单快速实现知乎登录页背景效果
  20. 【mybatis源码学习】mybatis和spring框架整合,我们依赖的mapper的接口真相

热门文章

  1. Android—— Animation动画(很详细)
  2. mysql show global variables字符超1024会被截断
  3. css table第一列 宽度
  4. mysql reset password重置密码
  5. DevExpressXtraReport—制作雷达图
  6. [kafka] 002_kafka_相关术语详细解析
  7. Visual Studio的Debugger Visualizers
  8. (转)关于linux挂载window下共享文件
  9. svn -- svn图标解析
  10. (资源)OpenStack IRC资源