邱飛達,董靜,熊新炎
(哈爾濱商業大學 輕工學院,哈爾濱 150028)
目前信息技術不斷發展,基于結構光的三維掃描技術已經興起,其中,基于面結構光的三維掃描技術具有快速性、穩定性,且視場比較大,越來越受到三維重建技術方面的重視[1-2]。系統標定對系統至關重要[3],在傳統系統標定過程中, 由于相機和投影儀的裝置或算法缺陷導致噪點及特征點相位識別不準確而影響標定結果,從而導致三維重建精度不高或失敗。為滿足實際三維重建所需的精度要求,面結構光三維重建系統的系統標定的優化對面結構光的實際應用具有重要意義。
基于面結構光三維重建系統中存在的以上問題,本文提出了一種基于黑底白圓標定板的面結構光系統標定的改進方法。應用黑底白圓標定板進行特征點位置提取,采用面結構光投影儀與相機構成的三維點云傳感器對標定板多個位姿進行掃描,得到多個位姿標定板的特征點位置及相位值,同時進行相機標定與系統標定,并基于雙線性插值對結果進行優化,并通過SVD算法進行系統參數擬合,并經過實驗對雙線性插值得到的相位結果進行可視化,并通過該標定板對得到的三維點云精度進行檢測。
面結構光三維測量系統標定的任務,就是要確定像素坐標到三維坐標之間的轉變關系。可以得到每個像素坐標的絕對相位值,因此系統標定也就是求解像素坐標、絕對相位值與相機坐標系下的三維坐標之間的對應關系[4-6]。
相位解算的目的是建立(m,n)與θ的線性關系,從而進行從二維坐標向三維坐標的轉化,本文采用四步相移法進行單頻率結構光下的相位主值的求解,采用時間相位解包裹的多頻外差法進行解相位。根據文獻[7]可知,若在理想情況下,投影出四步相移的光柵圖像的光強分別為I1、I2、I3、I4,投影儀產生的結構光周期分別為T1、T2、T3。則該頻率下圖像上某一像素點(x,y)的相位主值φ(x,y)為

其中round表示就近取整,φ12可以通過兩個相位作差來獲得,φ12的計算公式為:

相位解算過程獲取了像素坐標(m,n)與θ的對應關系。
比較典型相機標定方法有Tsai兩步法[8]、張氏標定法[9]及分層逐步標定標定法等。經典的針孔攝像機模型[10-11]如圖1所示。

圖1 經典的攝像機模型

面結構光投影儀的工作原理是:投影儀將正弦結構光以一定序列投射在物體表面,并通過攝像機同步采集,而后通過視覺算法對多副結構光圖片進行解相位,并通過系統標定等技術得到的相位-像素-三維相機坐標的對應關系。根據文獻[4]、[2]可知,在上述模型中由幾何關系推導可知,二維像素坐標系下某一點的絕對相位θ與其在相機坐標系中的三維坐標(Xc,Yc,Zc)存在以下關系:



即可得到每個像素點對應的三維坐標,依次推入點云容器即可完成物體表面點云的三維重建。
由1.2節中分析已知,本文使用黑底白圓標定板進行攝像機的標定。圓心二維坐標由二維圖像處理進行圓心擬合,再由標定板尺寸確認其世界坐標并構成一一對應關系。圖2所示為其中一組位姿所采集的圓心提取結果及其局部放大圖。

圖2 圓心擬合結果
由標定板圓心提取擬合得到各特征點像素坐標(m,n),m、n為float類型。標定過程中,假設標定板放在世界坐標系中z=0的平面上,設定某一圓心的世界坐標為(0,0,0),各特征點的世界坐標(Xw,Yw,Zw)則由預設坐標系及標定板尺寸信息、圓心距等直接確定。若標定板位姿選取x組,每組特征點選取y個,即可建立x×y組的(m,n)和(Xw,Yw,Zw)的關系,并可以通過OpenCV、Matlab中的標定算法求得相機的內參數M1、外參數M2。
由標定板圓心提取擬合得到各特征點像素坐標為亞像素點,我們可以得到整數點灰度值及相位值,但在亞像素點并沒有像素值與相位值,故通過雙線性插值的方式得到亞像素點相對較為精確的相位值。根據雙線性插值原理,通過1.1節可以得到像素坐標(x,y)與相位θ的對應關系,設像素位置(x,y)處相位值為θxy。為得到亞像素點(m,n)的相位θmn的值,我們若已知其附近4個整像素點(m1,n1)、(m1,n2)、(m2,n1)、(m2,n2)的相位值θ11、θ12、θ21、θ22,則根據雙線性插值原理,有:


即可通過計算相鄰整像素點的相位計算亞像素點的相位,能夠提高特征點相位值的精度和提取穩定性。
由式(6),以a1~a8為待求解參量,可改寫為

為使擬合結果和重建結果盡量準確,建立多組對應關系得到超定方程組,標定板變換次數盡量多,每組取適量點數進行標定,為三維重建做準備。由上述總結,其中左矩陣中參數均為已知量,目的在于擬合a1~a8的可能非零解。
考慮到式(9)所示齊次線性方程可以簡化為Ax=0。其中,若A是方陣,由克萊姆法則可知,如果A是n×n的方陣而且r(A)=n,那么該方程組有唯一的零解;若A的行數大于列數,即A是超定方程組,這時實際上是沒有真正的非零解析解的,因為約束太多了,沒法都滿足。但是可以求最小二乘解。求取最小二乘解的方法一般是使用SVD,即奇異值分解,由此即可解得a1、a2、a3、a4、a5、a6、a7、a8的一組非零擬合解,即完成系統標定,為三維點云求解奠定基礎。
為了驗證本文算法合理性,實驗的硬件系統架構如圖3所示。

圖3 面結構光掃描系統實驗臺搭建
本文所用的系統標定總體步驟如下:1)首先保持靶標不動,依次投射12種光柵模式圖像與1張純色光圖像并使用攝像機進行采集;2)根據攝像機標定實驗中的算法通過純色光圖像提取靶標上特征點坐標(mi,ni),實驗中只取9點(標定板上3×3的圓心點陣),即i=0,1,……,8;3)根據2.2節所述相位擬合方法,通過雙線性插值的方法求解亞像素特征點的相位值θi;4)移動標定板位置并使其處于投影儀與相機的公共視野內,重復步驟1)~步驟3)多次(一般取12~15次),通過特征點進行相機內外參的標定;5)通過標定得到相機的內參與每組標定板姿態下的外參,計算三維坐標(Xci,Yci,Zci);6)將得到的所有組特征點信息(θi,Xci,Yci,Zci)代入式(10),組成超定方程組,根據2.3節中的分析,通過SVD算法求取系統參量a1~a8,即可通過該參量進行相機標定。
該組實驗部分標定結果如下:
1)系統參數a1=-11.124,a2=0.28465,a3=-11.792,a4=4502.01,a5=0.0126304,a6=0.000706532,a7=-0.0313417,a8=1.0。

面結構光測量技術受標定過程中非線性優化過程的限制,高度測量受相移偏差、系統非線性、源穩定性,以及在圓心擬合的過程中相機畸變導致的圓心不準確等因素的影響,會不可避免地存在誤差[13-14]。在某一組實驗中,在黑底白圓標靶二維圖像中識別出圓心位置與重建出其三維坐標如圖4、圖5所示,實際距離與測量距離的部分誤差結果如表1所示。

圖4 二維圓心位置

圖5 重建的三維圓心位置

表1 部分測量結果與實際值的誤差mm
通過多組實驗驗證,在本文選用的傳感器工作距離與視場條件下,系統中重建誤差平均為0.33 mm左右。由于本文的三維重建系統中平面點云間隔平均為0.22 mm,該系統標定算法的優化方法效果較好。
1)本文提出了基于黑底白圓標定板的面結構光標定算法優化方法,通過雙線性插值對基于黑底白圓標定板的面結構光系統標定進行了改進,并基于SVD算法對系統參數進行了擬合,得到一組可以使用的系統標定參量,為基于面結構光的三維重建提供了標定數據基礎;2)通過大量實驗表明,本文所提出的提取優化算法速度較快、穩定性較強、自動化程度較高,具有更強的抗干擾能力,擬合特征點相位及擬合系統參數的精度更高;3)本文提出的提取方法對環境光要求較為嚴格且對圖像質量的要求較高,曝光過高或過低容易出現圓心提取失敗或噪聲過大導致的相位擬合失敗,還有待進一步研究。