链接:http://www.zhihu.com/question/29885222/answer/100043031
首先一切建立在相机模型 x = kPX 上
x,X分别代表图片和空间中的二维三维齐次坐标,
k为相机内参矩阵,
P = [R | t] 为空间坐标系到相机坐标系的 orientation- R 和 transformation- t
1, 首先对某一场景多角度多位置得到很多初始数据,选择其中的某两个来初始化,选定其中一个为空间原点。
<img src="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzQuemhpbWcuY29tLzI1MzNkYmYyMGRmY2YzOGUzY2M4MjgzMGVlZjEzZDFiX2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzIuemhpbWcuY29tLzVmNDRiMGFiZGY5MDY1Yjc0N2FhNzQyNDg5NWMzYzYxX2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzMuemhpbWcuY29tL2NlMGMxNTgzNWFiZTVjZDUyMGQ4YzcwOTQ1Y2UwMjMyX2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzEuemhpbWcuY29tLzZiZjBiNTM5Yjk2MzU1MDA1NGQ4NzRmOTY5NzUyNGY4X2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzQuemhpbWcuY29tL2UwYjY3NTc5MDNlMzc1OTlhYmY3NGZhMGYzMGY3ZDBmX2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzMuemhpbWcuY29tL2M5ZDViNDg2ZjI0Yjk4MmQyNmZlNTY5Mjg5OWZmOTVhX2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzIuemhpbWcuY29tLzBhZTNmOWE5YThiNzdiMjg5YmQ3YWY2Yzc0OTQ0MmM1X2IucG5n.jpg" 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="//pic.ikafan.com/imgp/L3Byb3h5L2h0dHBzL3BpYzMuemhpbWcuY29tLzA4YTk3MmQzNGY3ZmE0ZjY5YmM2NzMwMzI0MzYyYjNlX2IucG5n.jpg" 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重建