連結:http://www.zhihu.com/question/29885222/answer/100043031

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

 
  x,X分別代表圖片和空間中的二維三維齊次座標,
  k為相機內參矩陣
  P = [R | t] 為空間座標系到相機座標系的 orientation- R 和 transformation- t
 

1, 首先對某一場景多角度多位置得到很多初始資料,選擇其中的某兩個來初始化,選定其中一個為空間原點
<img src="https://img.itread01.com/uploads/info/20210530/1622355007-4033.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="https://img.itread01.com/uploads/info/20210530/1622355013-9851.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="https://img.itread01.com/uploads/info/20210530/1622355017-4115.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="https://img.itread01.com/uploads/info/20210530/1622355020-4198.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="https://img.itread01.com/uploads/info/20210530/1622355024-9133.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="https://img.itread01.com/uploads/info/20210530/1622355026-2702.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="//bbsmax.ikafan.com/static/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="https://img.itread01.com/uploads/info/20210530/1622355029-8356.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重建