雙目標定與三維計算:從理論到OpenCV實踐


雙目標定與三維計算:從理論到OpenCV實踐

一、雙目立體成像主要步驟    2

二、三角測量    3

2.1 主光線在無窮遠處相交    3

2.2 主光線在有限距離內相交    3

2.3 深度與視差    4

2.4 雙目立體坐標系    5

2.5 實際情況的雙目    5

三、對級幾何    6

3.1 對極幾何的定義    6

3.2 極點極線極面的定義    6

3.3 對極幾何的一些結論    7

四、本征矩陣E和基礎矩陣F    8

4.1 基本信息    8

4.2 兩者區別    8

4.3 本征矩陣E的表達式    9

4.4 基礎矩陣F的表達式    9

4.5 基礎矩陣F的求解    10

五、極線的計算    10

六、立體標定    10

6.1 立體標定目的    11

6.2 RT理論到OpenCV求解    11

6.2.1 OpenCV處理函數    11

6.2.2 雙目標定與單目標定的區別    11

6.2.3 RT的理論推導    11

6.2.4 結合單目標定和雙目標定求解    11

七、立體校正    12

7.1 立體校正目的    13

7.2 八個校正項    13

7.3 兩種校正算法    13

7.3.1 Hartley校正算法:非標定立體校正    13

7.3.2 Bouguet校正算法:標定立體校正    13

7.4 校正映射    15

八、立體匹配    16

九、計算3D坐標    17

十、OpenCV主要相關函數    18

 

一、雙目立體成像主要步驟

 

二、三角測量

2.1 主光線在無窮遠處相交

2.2 主光線在有限距離內相交

2.3 深度與視差

2.4 雙目立體坐標系

2.5 實際情況的雙目

 

三、對級幾何

3.1 對極幾何的定義

立體成像的基本幾何學就是對極幾何。

對極幾何就是將兩個針孔模型和極點結合起來。

3.2 極點極線極面的定義

3.3 對極幾何的一些結論

 

四、本征矩陣E和基礎矩陣F

4.1 基本信息

本征矩陣E包含在物理空間中兩個攝像機相關的旋轉與平移信息;

基礎矩陣F除了包含E的信息外還包括兩個攝像機的內參數。

4.2 兩者區別

4.3 本征矩陣E的表達式

本征矩陣E包含旋轉參數、平移參數。

4.4 基礎矩陣F的表達式

基礎矩陣F包含本征矩陣E和左右相機的內參。

4.5 基礎矩陣F的求解算法

在沒有攝像機標定的情況下,可以通過匹配點來求解基礎矩陣F,基礎矩陣F包含本征矩陣E,

(1)7點算法

缺點對異常點非常敏感。

(2)8點算法

缺點對異常點非常敏感。

(3)RANSAC算法和LmedS算法

五、極線的計算

 

六、立體標定

6.1 立體標定目的

立體標定是計算空間上兩台攝像機幾何關系的過程。

立體標定依賴於查找兩台攝像機之間的旋轉矩陣R和平移向量T。

6.2 R和T理論到OpenCV求解

6.2.1 OpenCV處理函數

R和T都是通過函數cvStereoCalibate()來計算的。

6.2.2 雙目標定與單目標定的區別

6.2.3 R和T的理論推導

來自[文獻3]

6.2.4 結合單目標定和雙目標定求解

七、立體校正

7.1 立體校正目的

立體校正的目的主要是讓左右相機的圖像完全行對准。

7.2 八個校正項

7.3 兩種校正算法

7.3.1 Hartley校正算法:非標定立體校正

Hartley校正算法只使用基礎矩陣來生成非標定立體視覺;Hartley算法可以通過單個攝像機記錄的運動推導出立體結構,雖然單個攝像機會比Bouguet標定算法產生更多的畸變圖像。

7.3.2 Bouguet校正算法:標定立體校正

7.4 校正映射

 

八、立體匹配

立體匹配的目的是通過匹配得到視差。

 

九、計算3D坐標

通過視差,可以得出圖像點對應的3D坐標。

結果:

十、OpenCV1.1主要相關函數

10.1 雙目標定流程與對應主要函數

(1)查找棋盤角點:cvFindChessboardCorners;

(2)顯示角點結果:cvDrawChessboardCorners;

(3)亞像素角點:cvFindCornerSubPix;

(4)立體標定:cvStereoCalibrate;

(5)雙目點畸變矯正:cvUndistortPoints

(6)統計雙目標定誤差:

計算極線(需要基礎矩陣F):cvComputeCorrespondEpilines;

注意:基礎矩陣F有兩種求解方式:

i.通過立體標定cvStereoCalibrate求解;

ii.通過匹配點求解cvFindFundamentalMat;

(7)立體校正(行對准)

[A]方式一:非標定立體校正

a.求基礎矩陣F:cvFindFundamentalMat;

b.非標定立體校正(需要基礎矩陣F):cvStereoRectifyUncalibrated;

注意:其實可以有兩種使用方式:

i.未標定:cvFindFundamentalMat+cvStereoRectifyUncalibrated;

ii.標定:cvStereoCalibrate+cvStereoRectifyUncalibrated;

c.校正映射:cvInitUndistortRectifyMap+cvRemap;

[B]方式二:標定立體校正

a.標定立體校正:cvStereoRectify(注意:可獲得重投影矩陣Q);

b.校正映射:cvInitUndistortRectifyMap+cvRemap;

(8)立體匹配(輸出視差)

[A]方式一:BM算法

結構體:CvStereoBMState

函數:

cvCreateStereoBMState;

cvFindStereoCorrespondenceBM;

cvReleaseStereoBMState;

[B]方式二:GC算法

結構體:CvStereoGCState

函數:

cvCreateStereoGCState;

cvFindStereoCorrespondenceGC;

cvReleaseStereoGCState;

(9)根據視差d和重投影矩陣Q計算3D坐標(注意:輸入項重投影矩陣Q可以從cvStereoRectify獲取)

[A]方式一:獲取序列點的3D坐標

cvPerspectiveTransform;

[B]方式二:獲取整幅圖像的3D坐標

cvReprojectImageTo3D。

10.2 主要相關函數詳解

 

10.3 雙目標定示例代碼

 

十一、OpenCV2.1新增功能與性能提升

11.1 2.1版增強了Stereo Vision方面的功能

(1) 新增了 SGBM 立體匹配算法(源自Heiko Hirschmuller的《Stereo Processing by Semi-global Matching and Mutual Information

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.8897&rep=rep1&type=pdf),可以獲得比 BM 算法物體輪廓更清晰的視差圖(但低紋理區域容易出現橫/斜紋路,在 GCstate->fullDP 選項使能時可消減這種異常紋路,但對應區域視差變為0,且運行速度會有所下降),速度比 BM 稍慢, 352*288的幀處理速度大約是 5 幀/秒;

(2) 視差效果:BM < SGBM < GC;處理速度:BM > SGBM > GC

(3) BM 算法比2.0版性能有所提升,其狀態參數新增了對左右視圖感興趣區域 ROI 的支持(roi1 和 roi2,由stereoRectify函數產生);

(4) BM 算法和 GC 算法的核心代碼改動不大,主要是面向多線程運算方面的(由 OpenMP 轉向 Intel TBB);

(5) cvFindStereoCorrespondenceBM 函數的disparity參數的數據格式新增了 CV_32F 的支持,這種格式的數據給出實際視差,而 2.0 版只支持 CV_16S,需要除以 16.0 才能得到實際的視差數值

11.2

 

十二、雙目標定效果不好的原因分析

(1)OpenCV雙目標定的內參結果稍差於Matlab來自[文獻3]

 

(2)提高標定結果的精度和穩定性的方法來自[文獻3]):

  • 在抓取圖像時,要盡量讓標定板占滿整個圖像畫面;
    • 標定板拍攝圖片不能太少,以20幅左右為宜,且拍攝每幅圖片時標定板所在平面與成像平面要有夾角和距離上的變化;
    • 先對左右攝像機單獨標定,再利用單獨標定結果進行雙目標定,標定結果要好於直接利用標定圖像進行雙目標定。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

參考文獻

  1. [書籍]學習OpenCV:第十二章 投影與三維視覺
  2. [書籍]基於OpenCV的計算機視覺技術實現
  3. [期刊]基於OpenCV的雙目攝像機標定

http://www.doc88.com/p-7502068257943.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM