[SLAM] 02. Some basic algorithms of 3D reconstruction
链接:http://www.zhihu.com/question/29885222/answer/100043031
三维重建 3D reconstruction的一个算法思路介绍,帮助理解
首先一切建立在相机模型 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的逆矩阵。
推荐宾大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 *