曾 海 唐蘇明 田 野 劉映江 宋 展
1(西南石油大學 成都 610500)
2(中國科學院深圳先進技術研究院 深圳 518055)
3(廣東光陣光電科技有限公司 東莞 523660)
編碼結構光技術具有系統(tǒng)結構簡單、三維測量精度高、掃描速度快等優(yōu)點,已廣泛應用于工業(yè)自動檢測、機器人視覺引導、三維人體掃描、醫(yī)學整形、虛擬與增強現(xiàn)實等領域[1-5]。傳統(tǒng)的結構光系統(tǒng)由單相機和單投影機構成。其中,從光學模型的角度看,投影機可被視為一個“逆向”相機。結構光系統(tǒng)的工作原理是:首先,利用投影機將編碼圖像投射至三維場景,采用相機記錄被場景調制的光場信息;然后,通過解碼獲取相機與投影機之間像素點的對應關系,即對應性信息;最后,利用光學三角原理及系統(tǒng)標定參數將對應性信息轉化為三維信息,由此實現(xiàn)三維測量。因此,在測量之前,需對系統(tǒng)進行標定,標定精度的高低直接影響系統(tǒng)的測量精度。系統(tǒng)標定旨在獲取相機和投影機的內參數及兩者之間的相對位置關系。
目前,針對相機的標定技術已相對成熟[6-9]。由于投影機與相機具有相似的成像模型,因此可利用成熟的相機標定方法對其進行標定。然而,投影機是可編程光源而非成像設備,并不具備拍攝圖像的功能,故難以獲取三維空間特征點的圖像,進而無法采取相機標定方法直接對其進行標定。目前,常見的標定方法是通過投射特定圖案,利用相機捕獲圖像,進而計算出三維特征點在投影機圖像上的坐標,從而實現(xiàn)投影機的標定。因此,獲取空間三維特征點在投影機圖像坐標系上的坐標是結構光系統(tǒng)標定的關鍵?,F(xiàn)有的方法主要分三類:(1)借助已標定的相機內外參數,利用投射特征點在相機圖像坐標系上的坐標,計算其對應的三維空間坐標,進而獲得投射特征點與其三維空間坐標的對應關系,最后利用成熟的相機標定方法實現(xiàn)投影機的標定[10-12];(2)利用相位匹配手段建立投影機像平面和相機像平面之間的對應關系,將三維空間點在相機圖像上的坐標轉換至投影機圖像上,進而實現(xiàn)投影機的標定[13-15];(3)通過投射特征點,利用射影變換下的交比不變性獲取投影機像平面和相機像平面之間的對應關系,利用此對應關系計算三維空間點在投影機圖像上的坐標,由此標定投影機[16]。其中,方法(1)簡單便捷,但投影機標定過程中容易引入相機的標定誤差,導致整體誤差較大;方法(2)比方法(1)具有更高的標定精度,但在獲取每個位置的對應關系時需投射多幅圖像,相位匹配過程過于復雜,且易受環(huán)境因素影響;方法(3)通常通過投射圓點、黑白棋盤格來實現(xiàn)系統(tǒng)標定,標定精度依賴于特征點的檢測精度,而在計算特征點坐標時,其精度易受鏡頭畸變因素影響。此外,以上 3 種標定方法均只適合對能夠編碼的投影機進行標定,而不適用于基于物理光柵的結構光系統(tǒng)。
針對上述問題,在方法(3)原理基礎上,本文提出一種基于射影變換原理的偽隨機編碼結構光系統(tǒng)標定方法。該方法的標定原理是:首先,利用偽隨機編碼原理生成一幅魯棒性強、編碼容量高、窗口尺寸小的二值幾何空間編碼圖案;其次,利用投影機投射編碼圖案至棋盤格標定板,相機分別拍攝編碼圖案與標定板圖案;再次,通過提取編碼特征點在相機像平面上的坐標,結合編碼特征點在投影機像平面上的坐標,利用射影變換原理建立相機像平面與投影機像平面之間的對應關系,利用此對應關系將標定板上特征點在相機像平面上的坐標轉換至投影機像平面;最后,采用已有的相機標定方法對相機與投影機同時進行標定,計算系統(tǒng)外參數,將標定板上的特征點視為數據源對系統(tǒng)標定參數進行整體優(yōu)化,從而實現(xiàn)系統(tǒng)標定。該方法所投射的圖案既可用于實現(xiàn)結構光系統(tǒng)標定,也可作為實現(xiàn)三維測量的編碼圖案,尤其適用于基于物理投影光柵的結構光系統(tǒng)標定。
從相機工作原理來看,在不考慮畸變的情況下,攝像機的模型可視為理想的透視投影模型。由于投影機可被視為一個“逆向”相機,因此其具有與相機相似的模型,從而一個基本的結構光系統(tǒng)標定模型如圖 1 所示。根據透視投影原理可得到點在三維空間與相機像平面之間的對應關系,如下式所示:
圖1 結構光系統(tǒng)標定模型Fig. 1 Schematic diagram of the structured light system model
同理,可得到點在三維空間與投影機圖像平面的對應關系,將其簡寫成:
由于鏡頭畸變的存在,若使用相機和投影機按照理想的透視投影模型成像進行標定,則會給標定帶來較大誤差。因此,在計算相機和投影機像平面上的理想坐標標定過程中,需考慮鏡頭畸變所產生的誤差,其計算過程如公式(3)所示。
本文提出的結構光系統(tǒng)標定方法大致分三步:(1)生成偽隨機編碼圖案;(2)提取特征點坐標,利用投影機向標定板投射編碼圖案,獲取至少多組(至少 3 組)標定圖像,對棋盤格圖像及投影編碼圖像進行角點檢測,提取角點坐標;(3)標定系統(tǒng)內外參數,通過解碼編碼圖像,并利用射影變換原理獲取相機像平面與投影機像平面之間的對應關系,利用此對應關系將標定板上特征點在相機像平面上的坐標轉換至投影機像平面上,從而采用成熟的相機標定方法對相機與投影機同時進行標定,進而實現(xiàn)系統(tǒng)標定。
偽隨機陣列是一種具有窗口唯一特性矩陣,可通過本原多項式生成偽隨機序列,再利用折疊原理折疊而獲得。本文根據 Lin 等[17]所生成的偽隨機陣列,設計 8 個結構簡單及形態(tài)各異的二值幾何基元(圖 2)代表陣列中的碼字,同時設計由垂直相交直線形成的柵格作為特征圖形,將幾何基元嵌入特征圖形內,并選擇黑色作為背景色,由此生成一幅黑白二值幾何編碼圖案(圖 3)作為投影圖像。定義兩垂直相交直線的交點為編碼特征點,簡稱為角點。
圖2 8 種碼字圖形Fig. 2 Eight kinds of feature pattern elements
圖3 二值幾何編碼圖案Fig. 3 Binary shape coding pattern
首先,將棋盤格標定板置于相機及投影機視域內,利用相機捕獲標定板上的棋盤格圖案;然后,固定標定板位置,利用投影機投射偽隨機編碼圖案至標定板,再次利用相機捕獲投影圖案;最后,變換標定板位置,利用相機拍攝至少 3 組的棋盤格圖像和投影圖像。
由于偽隨機編碼圖案通過投影機投射至帶有棋盤格圖案的標定板上時,受棋盤格圖案的調制,相機捕獲的偽隨機編碼圖像中的特征圖形與棋盤格圖案交疊在一起,導致傳統(tǒng)的角點檢測方法不適用于對其進行角點提取。為了準確提取編碼特征點坐標,本文提出了一種十字模板角點檢測算法,其基本檢測算子可用公式(4)表示。
其中,I表示圖像亮度;w表示十字檢測模板的半徑;l為w/3。根據上式,通過設定合適的閾值H,即可檢測出候選特征點。由于編碼圖案中特征點具有旋轉 90、180 度對稱不變,因此,利用此特性剔除候選特征點中的錯誤特征點,便可獲得正確特征點的坐標。
由于每個幾何元素具有 4 個角點,因此根據各幾何元素及其角點即可構建拓撲結構,通過利用仿射變換原理和雙線性插值法便可提取到柵格內的幾何元素,將其規(guī)范化為 28×28 的圖像,這一過程可用公式(5)表示。
在幾何元素識別前,通過投射由單個幾何基元及特征圖形構成的圖案,之后變換標定板位置,并根據前述的幾何元素提取方法采集深度學習網絡的訓練樣本。然而,單次投影編碼圖像所采集的樣本數量有限。為此,本文采用以下 4 個操作來擴大樣本數量:
(1)添加高斯噪聲;
(2)添加隨機黑白線;
(3)執(zhí)行仿射變換;
(4)執(zhí)行高斯濾波。
選取多種具有不同表面特性的物體作為樣本采集的目標物體,包括彩色玩具、皮球、衣服、紙張、塑料模型、木板、石膏像、臉和人手等。首先,將每一幅僅含單一幾何圖形的投影圖案分別投射至目標物體上,以此建立數量為 80 000的樣本庫;然后,根據上述 4 個操作將樣本數量擴大至 300 000,由此訓練出高魯棒性的卷積神經網絡 Lenet-5。利用已訓練的網絡對幾何元素進行識別,從而確定編碼特征點的碼字。由于偽隨機陣列具有窗口唯一特性,因此,根據局部一致性假設將投射圖像與拍攝圖像中編碼特征點的碼字信息進行匹配,由此獲得相機像平面和投影機像平面之間特征點的碼字對應關系。
根據計算機視覺中的多視角幾何原理可知,從投影機的投射圖像→標定板→相機的拍攝圖像的過程可視為 2 個圖像平面的射影變換[19]。因此,通過射影變換原理可求得三維空間中標定板上的棋盤格角點在投影機圖像上的坐標,其計算過程如公式(6)所示。
其中,mp為投影機圖像上編碼特征點的齊次坐標;mc為相機圖像上編碼特征點的齊次坐標;σ是非零比例因子;H是單應性矩陣,可采用相機像平面和投影機像平面之間l(l≥4)對碼字關系對應且非共線的編碼特征點坐標結合最小二乘法求得。
采用張正友平面標定法,使用已獲得的棋盤格角點分別在相機像平面和投影機像平面上的坐標即可實現(xiàn)對相機和投影機的同時標定,從而獲得相機與投影機的內參數和外參數。利用相機與投影機的外參數計算系統(tǒng)的外參數,包括平移矩陣Ts和旋轉矩陣Rs,其計算如公式(7)所示。
為了驗證所提出的標定方法的正確性,搭建了一套結構光系統(tǒng),實驗裝置主要由高清投影機(分辨率為 1 920×1 080 像素)和單反相機(分辨率為 5 184×3 456 像素)組成,如圖 4 所示。在實驗中,采用一個 13×7 的棋盤格標定板用于相機參數標定,其中每個棋盤格大小為 15 mm×15 mm。此外,為了驗證本文提出方法的有效性,采用兩種標定方法。第一種方法是本文所提出的方法(簡稱“本文方法”),將棋盤格標定板置于相機及投影機視域內,利用相機捕獲標定板上的棋盤格圖案;固定標定板位置,利用投影機投射偽隨機編碼圖案至標定板,再次利用相機捕獲投影圖案,并變換標定板位置;如此利用相機反復分別在 15 個不同位置獲取 15 組棋盤格 & 投影編碼圖像進行標定實驗。第二種方法是傳統(tǒng)標定方法(簡稱“傳統(tǒng)方法”),將投射的圖案由偽隨機編碼圖案換為傳統(tǒng)的棋盤格圖案,采用同樣的方法獲取15 組棋盤格 & 投影棋盤格圖像進行標定實驗。
圖4 本文的實驗設備Fig. 4 The experimental setup
分別采用本文方法、傳統(tǒng)方法對該結構光系統(tǒng)進行標定,表1 與表2 分別列出了結構光系統(tǒng)的標定結果,即:內參數和外參數。為了分析標定參數的準確性,分別計算相機與投影機的反向投射誤差,如圖 5 所示。從圖 5(a)可看出,攝像機反向投射誤差在 0.2 像素之內;從圖 5(b)、5(c)可以看出,使用本文方法標定的投影儀反向誤差在 0.3 像素以內,而使用傳統(tǒng)方法的投影儀反向誤差在 0.4 像素以內。為了進一步分析誤差,分別計算攝像機與投影機的反向投射誤差的平均誤差和標準差。結果顯示,攝像機平均誤差為 0.25 像素,標準差為 0.16 像素;兩種方法求得的投影儀反向投影誤差的平均誤差分別為 0.28像素與 0.35 像素,標準差的結果分別為 0.19 像素與 0.25 像素。從實驗結果可以看出,由于投影編碼圖案特征點數量大于投影棋盤格特征點數量,以此求取的單應性矩陣更加準確,所以采用傳統(tǒng)的投影棋盤格法求得的攝像機反向投影誤差較本文方法偏大,本文所提出的標定方法能將相機與投影機的反向投射誤差控制在 0.3 像素以內,較傳統(tǒng)方法有顯著提升。
表1 結構光系統(tǒng)內參數Table 1 Calibration results of intrinsic parameters of the structured light system
表2 結構光系統(tǒng)外參數Table 2 Calibration results of extrinsic parameters of the structured light system
圖5 結構光系統(tǒng)反向投射誤差Fig. 5 The reverse projection error of system calibration
圖6 標準平板的三維重建Fig. 6 3D reconstruction of a standard plane
圖7 球體的三維重建Fig. 7 3D reconstruction of a standard sphere
為了進一步驗證標定結果的準確性,選擇 3個物體作為實驗對象,分別是具有良好平整度的標準平板、球體及滿足漫反射條件的石膏模型,具體如圖 6(a)、7(a)、8(a)所示。由于本文所設計的編碼圖案既可用于系統(tǒng)標定,也可作為空間編碼結構光的投影圖案,因此利用所設計的編碼圖案作為空間編碼結構光的投影圖案,分別采集 3 個物體的重建圖像,并對其進行角點檢測,檢測結果分別如圖 6(b)、7(b)、8(b)所示。利用已訓練的深度網絡對 3 個物體的幾何元素進行識別,完成解碼獲得對應性信息。根據光學三角測量法及上文的標定結果將對應性信息轉化為三維信息,分別如圖 6(c)、7(c)、8(c)所示。由于圖中的點云過于稀疏,因此利用雙線性插值法對點云插值獲取密集點云。圖 6(d)與 7(d)所示為平面與球體插值后的密集點云。首先,采用本文方法,根據密集點云分別計算平板的平面誤差及球體的深度誤差,誤差結果分別如圖 6(e)與 7(e)所示,二者平均誤差分別為 0.113 mm 和0.182 mm;然后,采用傳統(tǒng)方法,計算平面誤差及深度誤差,結果如 6(f)與 7(f)所示,二者平均誤差分別為 0.142 mm 和 0.231 mm;圖 8(d)所示為石膏壺的三維曲面渲染結果。
圖8 石膏壺的三維重建Fig. 8 3D reconstruction of a plaster bottle
上述實驗結果表明,本文所提出的編碼結構光方法可以同時實現(xiàn)投影儀參數的標定和三維重建兩種功能。與傳統(tǒng)基于棋盤格的投影參數標定方法相比,利用本文所提出的標定方法及所設計的編碼圖案進行三維重建,可以獲得更高的三維重建精度。
另外,與本文前言部分提到的 3 類結構光系統(tǒng)標定方法相比來看,本文方法同樣具有一定優(yōu)勢。其中,與第(1)類利用相機標定參數求取對應三維坐標的標定方法[10-12]相比,本文方法精度更高;與第(2)類使用相位匹配的標定方法[13-15]相比,本文方法精度略低;與第(3)類相關投影儀標定方法[16]相比,二者精度相當。但是,本文方法沒有第(1)方法中對于相機標定參數的依賴性,也沒有第(2)方法中相位匹配的復雜性,也不會像其他,如第(3)類方法使用特殊的標定設備或者標定圖像。綜上所述,本文方法相較于現(xiàn)有的方法,標定速度、精度更高,且簡單易行。
本文首先利用偽隨機原理結合設計的幾何圖形生成二值幾何編碼圖案;然后,針對該編碼圖案設計了一種特征點檢測算子,并提出了一種基于深度學習框架的幾何元素識別算法用于獲取投影編碼特征點與拍攝編碼特征點之間的對應關系,進而利用射影變換原理建立相機像平面與投影機像平面之間的對應關系;最后,利用此對應關系將棋盤格標定板角點在相機圖像上的坐標轉換至投影機圖像坐標上,從而將投影機視為一個“逆向”相機,進而可基于傳統(tǒng)標定方法實現(xiàn)相機和投影儀內外部參數的標定過程。標定結果顯示,該方法對投影儀的標定重投影誤差不超過 0.3 像素。三維重建實驗結果顯示,與傳統(tǒng)標定方法相比,本文方法能夠獲得更高的三維重建精度。
[1]D’Apuzzo N. Overview of 3D surface digitization technologies in europe [C]// Proceedings of SPIEThe International Society for Optical Engineering,2006, 6056: 605605.
[2]劉輝, 王伯雄, 李鵬程, 等. 雙向掃描投影雙目結構光編碼設計 [J]. 儀器儀表學報, 2012, 33(8):1862-1867.
[3]Zhang S, Yau ST. High-resolution, real-time 3D absolute coordinate measurement based on a phaseshifting method [J]. Optics Express, 2006, 14(7):2644 - 2649.
[4]張維光, 韓軍, 周琦. 線結構光多分辨率測量系統(tǒng)數據拼接方法 [J]. 儀器儀表學報, 2013, 34(7):1441-1447.
[5]Sitnik R, Krzeslowski JF, Maczkowski G. Archiving shape and appearance of cultural heritage objects using structured light projection and multispectral imaging [J]. Optical Engineering, 2012, 51(2):021115.
[6]Zhang ZY. A flexible new technique for camera calibration [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000, 22(11):1330-1334.
[7]邱茂林, 馬頌德, 李毅. 計算機視覺中攝像機定標綜述 [J]. 自動化學報, 2000, 26(1): 43-55.
[8]劉順濤, 駱華芬, 陳雪梅, 等. 結構光測量系統(tǒng)的標定方法綜述 [J]. 激光技術, 2015, 39(2): 252-258.
[9]Wei GQ, Ma SD. A complete two-plane camera calibration method and experimental comparisons[C]// The 4th International Conference on Computer Vision, 1993: 439-446.
[10]Zhang X, Zhu LM. Robust calibration of a color structured light system using color correction [C]//The 2nd International Conference on Intelligent Robotics and Application, 2009: 936-946.
[11]Huang JH, Wang Z, Gao ZH, et al. A novel color coding method for structured light 3D measurement[C]// Proceedings of the SPIE, 2011: 808512.
[12]Yamauchi K, Saito H, Sato Y. Calibration of a structured light system by observing planar object from unknown viewpoints [C]// The 19th International Conference on Pattern Recognition,2008: 1-4.
[13]Chen XB, Xi JT, Jin Y, et al. Accurate calibration for a camera-projector measurement system based on structured light projection [J]. Optics and Lasers in Engineering, 2009, 47(3-4) : 310-319.
[14]Zhang S, Huang PS. Novel method for structured light system calibration [J]. Optical Engineering,2006, 45(8): 083601.
[15]Yin YK, Peng X, Li A, et al. Calibration of fringe projection profilometry with bundle adjustment strategy [J]. Optics Letters, 2012, 37(4): 542-544.
[16]施天敏, 李鋒, 徐鳴華. 基于雙目視覺測量系統(tǒng)的投影儀標定方 [J]. 電子設計工程, 2016, 24(1): 12-15.
[17]Lin HB, Nie L, Song Z. A single-shotstructured light means by encoding both color and geometrical features [J]. Pattern Recognition, 2016, 54: 178-189.
[18]Lecun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition [C]//Proceedings of the IEEE, 1998: 2278-2324.
[19]唐蘇明, 張旭, 屠大維. 偽隨機編碼結構光系統(tǒng)的標定 [J]. 儀器儀表學報, 2014, 35(6): 1354-1362.