結構光相移法中相機投影儀的標定信息如何與相位差聯繫

前奏

先解釋一下相移法中相機所捕獲的條紋圖案的數學表達式的含義

這裏需要解釋的是I_{n}\left ( x,y \right ),表示第n張相移圖上(x,y)點處的灰度值,a\left ( x,y \right )爲條紋圖背景值,b\left ( x,y \right )爲調製強度函數。與上圖中的變量解釋不一樣,查看了將近十幾個人的文章,對a,b的含義,每個人的解釋都不一樣,那到底是什麼含義呢?

a\left ( x,y \right )可以看作是周圍環境光的影響,可以看作是加性干擾項,b\left ( x,y \right )可以看作是相機本身對圖像獲取的強度偏差以及物體表面的反射特性所引起的乘性干擾項。

優秀的是,因爲在求解相位值的過程中,只需要相移圖的灰度值就可以,其他都會消掉。

言歸正傳,下面主要解釋相移法中對相機和投影儀所要標定的系統信息是怎麼去和相移法所求得的相位差進行聯繫進而求得所需要的高度值(三維信息)的。

一、最經典的光柵投影系統

採用相位測量剖面法,通過對物體的橫截面進行分析,物體的深度信息以高度的形式進行求解,這種方法按照明光源分兩種類型,一種是遠心光路,所投射的光線爲平行光,主要對小物體進行測量,尤其是高頻光柵可以達到很高的測量精度,另一種是發散光路。

遠心光路照明

 

發散照明

這裏主要以發散照明結構爲主,因爲光的發散照明,所以光柵投射到參考平面的相位分佈已經不是線性關係,所以需要一種相位映射算法來計算相位和高度h的關係。

這裏的\lambda _{0}是光柵節距,是光柵投射到參考平面後,在參考面上沿着X軸方向,相位變化一個週期(2\pi)對應的像素變化值。

最後可得高度和相位的關係式:

\theta_{A}\theta_{B}是參考平面和物面上所對應的相位值。其中\lambda _{0},l,d是標定所獲得,那怎麼通過標定獲得這些參數並將標定後的參數與這些值聯繫起來呢?

這裏只要標定獲得\lambda _{0},l,d即可,標定的方法分爲隱式標定和顯示標定

(1)隱式標定一

對上式進行變形可得:   PP^{'}=\frac{BA\cdot l}{BA+d }

假設在測量過程中,d要遠遠大於BA,則有PP^{'}\approx \frac{BA\cdot l}{d }\propto \Delta\phi_{BA}=\Delta\phi_{PA},即有PP^{'}\propto\Delta\phi_{PA}=\phi _{P}-\phi _{A}

即高度值是正比於PA之間的相位差,設比例係數爲C,參考平面的高度爲h0,可得PP^{'}=h0+C\cdot \left ( \phi _{P}-\phi _{A} \right )

一般設置h0爲0,我們只需要通過標定獲得常數C即可,一個簡單的標定方法如下:

測量一個高度已知(10mm)的立方體物體,上平面與下平面垂直,利用相移法測量該物體以獲得解包裹後的相位圖,假設相位圖如下:

相位三維圖以及沿y軸截面圖

由於上下平面的高度一樣,所以相位值一樣,通過對截面圖的上下兩條線進行擬合,獲得兩條線之間的距離,也就獲得了相位差,這裏爲20

1,上平面的點用一條線擬合爲

2,下平面的點用一條線擬合爲

3,計算兩條線的距離爲d。

所以可得 C=10/20 = 0.5(mm/rad)。

這樣通過簡單的標定就可以獲得高度與相位差的關係。

說明:這裏做了近似和擬合處理,而且沒有用到投影儀的標定,求取的值是不精確的。

(2)隱式標定二

任然對於上式PP^{'}=h0+C\cdot \left ( \phi _{P}-\phi _{A} \right ),這裏的h0不再視作0,需要一起求解,操作過程如下:

如下圖所示,多次移動標定平面,得到多組標定平面的移動距離即高度h和相位差,再利用最小二乘法解出常數h0,C。

 如上圖所示,有10組標定平面H0,H1,H2...,H9,其中H1-H9的標定平面是H0分別平移h1,h2,h3...h9的距離獲得的,平面上所有像素點的高度都是平移的距離。然後對於10個標定平面,分別投射相移光柵,利用相位測量輪廓法,求出每個標定平面上每個像素點的相位值,然後再減去H0上的相位值得到包裹相位差,然後解包裹後得到各自的相位差,然後根據上式利用最小二乘法求出參數h0和C。

(3)顯式標定

對於顯式標定,需要提前精確地測量投影儀-攝像機系統結構的具體參數。

對於傳統的相位測量輪廓法的系統由比較嚴格的條件限制,如下圖

(1)CCD與DLP的光心必須水平;(2)CCD的光軸必須垂直於參考平面;

實際中上述條件難以滿足,所以就有了下面改造後的系統,CCD與DLP的光心的連線與水平方向有一定的夾角,CCD的光軸與垂直方向有一定的夾角。

 待測物體上的一點D的高度由三角形相似表示爲:

 上式中p是投影儀投射到參考平面上的正弦條紋光柵的週期。\phi _{C}爲參考平面上C點的相位,\phi _{D}爲物點D點的相位。

文獻Contouring of artwork surface by fringe projection and FFT analysis中有:

 

然後根據相機模型和座標轉換關係可得相機座標系下的相位-高度關係,具體不再推導。

這只是幾種處理方法,對傳統的PMP方法的參數的顯式標定我還在查,如果有了解的,可以聯繫我交流:857467352

二、改進後的光柵投射剖面法

這種方法是達飛鵬老師對經典光柵投影系統做了改進,對相機和投影儀的位置關係的要求大大放寬,同時也不需要標定投影儀。

這種方法可以參考下面的文章,在這篇文章中有詳細介紹,這裏不再重複介紹。

《一種新的相位法三維輪廓測量系統模型及其標定方法研究》 達飛鵬

首先不標定投影儀,投影儀本身的畸變會影響標定精度,同時在標定方法上主要轉爲求解多變量方程的問題。

 三、投影儀和相機都要標定的PMP

既然要用標定的信息,那就先對相機、投影儀和系統進行一次標定(張松的標定方法),這種方法也叫作三維散點標定法。

相機的標定(針對相機針孔模型):

所標定的信息有

內參:焦距,主點座標,兩個圖像軸的傾斜度

外參:旋轉矩陣和平移矩陣(世界座標系到相機座標系的變換)

相機的針孔模型如下圖:

針孔模型
相機-投影儀針孔模型

相機的內參和畸變標定還是用張正友的標定方法,僞代碼如下:

操作步驟:

1、打印一張棋盤格,把它貼在一個平面上,作爲標定物。
2、通過調整標定物或攝像機的方向,爲標定物拍攝一些不同方向的照片。
3、從照片中提取棋盤格角點。
4、估算理想無畸變的情況下,五個內參和六個外參。
5、應用最小二乘法估算實際存在徑向畸變下的畸變係數。
6、極大似然法,優化估計,提升估計精度。
 

投影儀也要標定內參和畸變參數,那問題來了,標定相機是對相機拍的圖像進行標定,那投影儀只能投射怎麼標定,投射的圖像都是生成的,沒得畸變呀。

如果可以使投影儀可以和相機一樣,能夠拍的圖像的話,那我們就可以將投影儀當做相機來進行標定。大師張松在他的論文裏給出的想法是將相機圖像像素的強度轉換爲投影儀圖像像素,使用相機捕獲投影儀圖像。關鍵是建立起相機圖像和與投影儀圖像像素之間的精確對應關係,他採用的方法是相移法。

由於相移法的相位方向是單方向的,如果相位方向是水平方向的,即同一個相位值是對應於一列的像素點,是沒辦法做到精確到像素的定位關係的。所以,張採用水平和垂直兩個方向來進行相移操作,示意圖如下。

獲取投影儀對應圖

對於投影儀的標定方法,不解釋爲什麼要這麼做,只介紹怎麼做。

使用的標定板如下圖:

黑底百圓標定板

通過檢測出這些圓點的圓心來進行標定,因爲圓心周圍沒有顏色變化,所以相位是光滑的,如果使用格雷碼,角點周圍的顏色有變化,會導致相位的不連續。

操作步驟:

1,投影儀選擇白光模式,相機捕獲水平方向上的黑白條紋圖案,並計算得到水平方向上的絕對相位值\phi _{h}

2,投影儀選擇白光模式,相機捕獲豎直方向上的黑白條紋圖案,並計算得到豎直方向上的絕對相位值\phi _{v}

3,檢測圓中心;

4,通過相位圖建立的一對一映射,利用這些映射來確定那些相機圓心的投影儀圓心;

5,對於不同姿態下拍攝的圖像,重複1-4的步驟;

6,利用標定相機的程序來標定投影儀的參數。

詳細可以參考這篇論文:Novel calibration method for structured-light system with an out-of-focus projector

繼續思考,相機和投影儀都單獨標定完了,現在相機和投影儀的內參和畸變參數都已經獲得了,即可以從二維的像素座標系轉化到三維的相機(投影儀)座標系了,那系統標定的目的到底是什麼?我們重建時的相位怎麼用?外參好像還沒有標定?好像這些問題都還沒得解決!

由於相機和投影儀都是單獨進行標定的,二維的像素座標系轉化到三維的相機(投影儀)座標系是可以獲得了,我們必須要建立從像素座標系到世界座標系下的關係。而世界座標系是共同的,所以相機和投影儀都必須轉換到世界座標系,這就是外參的標定,關係如下。

外參關係

X^{c},X^{p}分別爲相機座標系和投影儀座標系下某點的座標矩陣,X^{w}爲世界座標系。

這樣我們就發現了一個問題,那不是直接用相機的外參矩陣就可以直接建立相機的像素座標系到世界座標系的關係了,我們求的不就是某點世界座標系下的三維座標麼,還用投影儀的標定幹什麼?可以思考兩秒鐘。。。

首先需要知道的是這是標定過程,我們會已知什麼信息?

然後需要知道的是我們重建的方法是相移法去獲得每個點的相位值,相位值怎麼轉換爲世界座標系下的三維座標值?

最後在標定投影儀的時候我們用了水平和豎直方向的條紋圖案來找相機和投影儀圖案的一一對應關係,我們在重建時是否也需要拿到兩個方向的相位圖呢?

首先需要明確的是,我們爲什麼標定投影儀?

首先標定投影儀肯定是爲了提高結構光重建的精度,但是主要是因爲重建的方法模型的不同,標定投影儀的重建模型就不再是傳統的相位測量輪廓法的相位——高度映射關係來求解深度信息,而是需要三角法來找相機和投影儀的對應點,將單目的求解轉化爲雙目視覺的求解,用一個大佬的總結就是“投影儀的晶元尺寸太大,一個像素所表示的物理尺寸與相機的不一致”。

然後需要明確的是我們重建的關係,是相機的像素座標(u_{c},v_{c})、投影儀的像素座標u_{p}到世界座標系下物體上任意一點的座標(x,y,z)的關係,上面已經提到,這個關係的轉換需要相機、投影儀的標定參數(包括內外參數),大致關係應該爲:

                            {\color{Red} \begin{bmatrix} x\\ y\\ z \end{bmatrix}=H^{c}\cdot H^{p}\cdot \left \{ u_{c},v_{c},u_{p} \right \}}           (1)

在重建時,我們通過相移法獲得了相機捕獲圖像的絕對相位圖(相位圖中每個圖像座標點都對應一個絕對相位值),並且已知投影儀投射圖像對應的相位圖,每個相機上的點會對應投影儀條紋圖上相同絕對相位值的一條線,是多對一的問題,所以我們只需要投單方向的條紋圖案。

接下來就是怎麼獲取投影儀條紋圖對應相位的座標u_{p}了,這裏是通過相位相同獲得相機點和投影儀的一行(列)的座標進行對應,有:

任取相機圖像平面上一點(u_{c},v_{c}),相機在(u_{c},v_{c})點處的相位等於投影儀在u_{p}這一行的相位值,通過相位值去求得該相位值在投影儀圖像平面上的u_{p}座標值爲:{\color{Red} u^{^{p}}=\phi _{a}\times P/(2\pi )},P爲投影條紋圖案一個週期內的像素個數。

回答了上面的幾個問題,接下來就要用標定信息去推導上述最重要的公式(1)了:

相機矩陣
投影儀矩陣

A^{_{c}},M^{_{c}}爲相機的內參和外參,A^{_{p}},M^{_{p}}爲投影儀的內參和外參。

最後結果爲:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章