結構光三維重建

結構光三維重建之單目標定的一種方法——創建「相位-像點-真實三維座標」之間的關係學習

 

1.瞭解標定的概念

 

    在剛接觸結構光三維掃描的時候,我雖然瞭解部分張正友標定的內容,可是對於標定仍是感受很模糊,通過最近幾天的學習,我發現想掌握標定,首先應該把標定這兩個字表明的意義弄懂。也就是要標定什麼?spa

 

(1).對系統的標定.net

 

(2).對相機的標定blog

 

3.張正友標定的是相機參數

 

    對於接觸相機標定的小夥伴來講,張正友標定由於其易用性和準確性,始終是沒法繞過的一個選項。那麼咱們就先來了解一下張正友標定。張氏標定的文章網上已經多得不能再多,具體的過程請自行下載論文張正友標定法英文原版論文。圖片

 

。咱們從目的倒着學習一下。相機標定的目的是獲得相機內外參數和畸變參數,內部參數有焦距和像元尺寸的比值,主點以及傾斜角。外部參數就是旋轉和平移矩陣。get

外部參數就是旋轉和平移矩陣。畸變參數有k1,k2,p1,p2,p3。opencv

 

 

4.標定獲得的相機參數和三維重建沒有計算上的直接關係

 

    調用過opencv進行標定的朋友應該發現,最終的結果是可以獲得矯正畸變後的圖片,可是對於單目結構光來講,或者更具體一點,對於單目結構光解出來的相位來講,不知道有什麼用。這個時候,若是仍是糾結於張世標定獲得的幾個參數矩陣的話,就會陷入怪圈,因此應該跳出來,想一想別的思路。原理

 

    這個時候對系統進行標定就要粉墨登場了,剛纔咱們講了相機的標定,跟這個系統有什麼關係呢?咱們能夠這麼理解,相機是整個結構光三維掃描系統的一部分,咱們只知道相機的參數,這對於把圖像中的二維信息轉化爲三維是不夠的,因此咱們要對系統進行標定。下載

接下來就要理解所謂的「系統」是個什麼概念。我舉一個我以前適用一個白板得到參考相位進行重建的例子來方便理解,首先要知道這種方法是錯誤的。直接上圖吧。方法

 

 

 

    左圖是一個白瓷瓶,右圖是用錯誤的方式創建的點雲。

看上去是否是點雲要比真實的花瓶要「扁」,這是由於我沒有進行標定,而是直接找了一個白板,進行一次投影光柵並解相位獲得的「參考相位」。以後對花瓶進行投影解相獲得「實際相位」,兩個相位作差就是物體距離「參考面」的信息。可是!這個所謂的參考面是不存在的。見下圖:

在這種狀況下進行標定也不是不能夠,可是要使用精密的測量儀器得到光心距離參考面的距離並直到掃描結束固定不動,並且 投影儀和相機要保持水平,成像面和參考面保持平行,光軸和參考面保持儘量地垂直。

因此必需要精確已知l,d,這個代價太大,因此這種標定方法是不可取的。

5.一種靈活的單目標定方法

    看到這裏,相信你已經明白在三維重建中,標定不是獲得一個內參矩陣和外參數RT那麼簡單了,內參以及RT是爲了標定系統服務的,獲得物體的深度信息纔是咱們的終極目的。

   接下來的這種方法來自達飛鵬的《光柵投影三維精密測量》,主要思想如本文題目,創建「相位-像點-真實三維座標」之間的關係。

   在講這種方法以前,我已經假設你對三大座標系(世界座標系、攝像機座標系、圖像座標系)之間的關係已經理解了。

  

 

能夠看到,仍是有一個參考面,不是說不要參考面了嗎?其實咱們的目的正是要繞過參考面。再回憶一下,咱們是要創建相位,像點和三維座標之間的關係。咱們分紅兩步:

 

第一步,創建(相位θ)-(攝像機座標系下三維座標Xc,Yc,Zc之間的關係)

 

經過上圖,D''是D在參考面X軸上的投影點,平行於Y軸,P''是P'在X軸上的投影點,平行於Y軸,P'是實物點P在參考面上的投影點。由類似三角形關係:

 

 

 

聯立上2式得

 

 

結合世界座標變換至攝像機座標公式:

 

 

其中a1~a8就是咱們須要標定的系統數據。

 

第二部,創建(像點(m,n))-(攝像機座標系下三維座標Xc,Yc,Zc之間的關係)

 

 

 

 

這步利用了攝像機的透視投影原理,須要用到內參矩陣。公式是:

 

 

以上兩步,是利用投影得出的已知相位和已知相位所在點的三維座標,來求a1~a8.有了a1~a8,再用掃描獲得的相位,和XY座標作透視投影剛體變換的逆變換,帶入

 

 

就能獲得深度信息Zc的值。

相關文章
相關標籤/搜索