褚鑫磊,隋國榮
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
雙目立體視覺測量是一種非接觸、實時、高精度的三維測量技術(shù),在非接觸測量、機器人導(dǎo)航、在線監(jiān)測等領(lǐng)域得到了廣泛的應(yīng)用[1-4]。利用視覺方案對不同尺寸的目標(biāo)進行非接觸的高精度測量是光學(xué)工程領(lǐng)域的研究方向之一。攝像機的光學(xué)參數(shù)標(biāo)定在光學(xué)測量和計算機視覺等許多應(yīng)用中都起著重要的作用。
光學(xué)標(biāo)定的任務(wù)是確定圖像點的二維坐標(biāo)與物體的三維世界坐標(biāo)之間的關(guān)系。攝像機標(biāo)定方法主要有:傳統(tǒng)標(biāo)定方法[5]、自標(biāo)定方法[6]和主動視覺標(biāo)定方法[7]。雙目圖像采集類型分為3 類:雙攝像機模型[8]、單攝像機動態(tài)模型[9]、單攝像機鏡像模型[10]。
通常,雙目立體視覺系統(tǒng)需要通過采集不同角度的圖像才能進行標(biāo)定,然而,在現(xiàn)實中很難找到內(nèi)參完全一樣的兩個攝像機,攝像機的內(nèi)參數(shù)不同將影響系統(tǒng)的測量精度。2019 年,Chai 等[11]提出了一種單攝像機鏡像雙目視覺系統(tǒng)的標(biāo)定方法,但該方法標(biāo)定精度會受到景深變化的影響。2019 年,殷晨暉等[9]使用單攝像機和高精度的電動平移臺構(gòu)建了三維視覺系統(tǒng),減少了相機內(nèi)參不同對標(biāo)定精度的影響。
雙目立體視覺測量系統(tǒng)的關(guān)鍵指標(biāo)是精度,而光學(xué)標(biāo)定的精度對測量系統(tǒng)的精度影響最大。2001 年,張正友提出了一種靈活的標(biāo)定方法[5],所有參數(shù)的最終值是經(jīng)過非線性優(yōu)化后得到的,其目的是最小化平均重投影誤差。這些標(biāo)定算法是通過一個超定線性方程組來估計一個初始的封閉解,主要區(qū)別在于對初始解的估計和非線性優(yōu)化過程。通常,目標(biāo)是最小化像素坐標(biāo)的誤差。例如,經(jīng)典方法中廣泛使用均值重投影誤差[12],它表示的是真實圖像坐標(biāo)與根據(jù)標(biāo)定結(jié)果計算得到的重投影圖像坐標(biāo)之間的誤差。目前雙目標(biāo)定的優(yōu)化方法幾乎都是基于二維圖像平面進行的,而實際的視覺測量是在三維世界坐標(biāo)系中進行,優(yōu)化和測量之間不同的參考坐標(biāo)可能會導(dǎo)致標(biāo)定精度下降。
2014 年,Cui 等[13]提出了雙目視覺系統(tǒng)的精確標(biāo)定方法,該方法在三維世界坐標(biāo)系下,通過最小化重建點與真值之間的誤差,并結(jié)合極線約束對參數(shù)進行優(yōu)化。2015 年,Jia 等[14]提出了一種基于主動視覺和垂直度補償?shù)膬?nèi)參校正方法。該方法消除了攝像機運動不垂直對標(biāo)定精度的影響。2016 年,Poulin-Girard 等[15]研究了不同標(biāo)定條件對重構(gòu)質(zhì)量的影響,結(jié)果表明,平均重投影誤差不應(yīng)該總是被用來評估標(biāo)定過程的性能,低質(zhì)量的特征檢測并不一定導(dǎo)致高平均重建誤差。2018 年,Gai 等[16]提出一種基于重構(gòu)誤差的標(biāo)定方法,在耦合程度較小的情況下,計算了攝像機之間的相對位置關(guān)系,計算出精確的三維坐標(biāo),利用重建結(jié)果的平均誤差對參數(shù)進行評估和優(yōu)化。Liu 等[17]致力于減小三維重建特征點與真值之間的誤差,基于重投影誤差、共線約束等多種約束提出了一種高精度、魯棒性強的雙目攝像機標(biāo)定方法。
本文構(gòu)建了一種基于單攝像機的平行雙目視覺系統(tǒng)。通過控制高精度位移平臺移動單攝像機,從而實現(xiàn)立體視覺;計算左、右攝像機位的初始參數(shù),引入質(zhì)心坐標(biāo)法計算兩攝像機間的旋轉(zhuǎn)平移矩陣;利用三角剖分重構(gòu)標(biāo)定點的三維坐標(biāo),計算重構(gòu)坐標(biāo)與真值間的重構(gòu)誤差;通過最小化重構(gòu)誤差來優(yōu)化標(biāo)定參數(shù)。與傳統(tǒng)方法相比,本方法在精度和魯棒性上得到了明顯提高。
攝像機的成像透鏡將三維點投影到二維像平面上,這種投影可以用攝像機模型的圖像變換來描述。采用常用的針孔模型對攝像機進行建模[5],世界坐標(biāo)系上的物點Pw=(Xw,Yw,Zw)T到左、右攝像機的圖像投影點pl=(ul,vl)T和pr=(ur,vr)T(l、r 分別代表左、右)之間的坐標(biāo)變換關(guān)系如下:
式中:sl、sr分別為左、右相機的尺度因子;Al、Ar分別是左、右相機的內(nèi)參矩陣;Rl、Rr和Tl、Tr分別表示左、右相機的旋轉(zhuǎn)矩陣和平移矩陣。式(1)中Al、Ar又可表示如下:
式中:fxl、fyl和fxr、fyr分別為左、右相機在x、y方向上的焦距;(u0l,v0l)、(u0r,v0r)分別為左、右相機的主點坐標(biāo)。
由于相機透鏡自身特殊的球形形狀以及相機裝配誤差、制造上的缺陷,導(dǎo)致相機產(chǎn)生畸變誤差。使用畸變模型來處理透鏡的畸變效應(yīng),只考慮徑向畸變的前兩項,則關(guān)系如下:
式中:pld和prd分 別為pl和pr畸 變后對應(yīng)的像點;rl和rr是無畸變像點pl和pr到各自主點坐標(biāo)的距離;k1l、k2l和k1r、k2r分別是左右相機徑向畸變系數(shù)的前兩項。
兩個攝像機可以用常用的針孔模型進行建模,對于三維世界坐標(biāo)系中的物點Pw,存在左相機系統(tǒng)坐標(biāo)Pcl=(Xcl,Ycl,Zcl)T和右相機系統(tǒng)坐標(biāo)Pcr=(Xcr,Ycr,Zcr)T,世界坐標(biāo)與相機坐標(biāo)之間的關(guān)系如下:
式中,旋轉(zhuǎn)矩陣Rl和平移矩陣Tl將世界坐標(biāo)系與左相機坐標(biāo)系聯(lián)系起來,根據(jù)式(4),可以得到關(guān)系如下:
式中:R=RrRl?1為旋轉(zhuǎn)矩陣;T=Tr?RrRl?1Tl為平移矩陣,表示左右相機坐標(biāo)系之間的關(guān)系。在不失一般性的前提下,可以將物體三維坐標(biāo)統(tǒng)一到左相機坐標(biāo)系中,可以得到關(guān)系如下:
式中:I為一個3×3 的單位矩陣,0 為一個3×1的全0 矩陣。
通過張氏標(biāo)定法[5]計算出兩個相機的初始參數(shù),建立兩攝像機重投影誤差之和的目標(biāo)函數(shù),該目標(biāo)函數(shù)表達式如下:
式中:m為標(biāo)定板上有m個特征點;n為左、右攝像機在n個不同的位置獲得的n對標(biāo)定板圖像;為利用標(biāo)定參數(shù)計算的重投影圖像坐標(biāo)。該參數(shù)優(yōu)化方法是基于二維圖像平面和通過合并兩個單目系統(tǒng)的平均重投影誤差目標(biāo)函數(shù)來進行優(yōu)化。
表示的是第j個標(biāo)定板上第i個特征點的世界坐標(biāo),分別表示第j對圖像所對應(yīng)的左、右相機的外部參數(shù),在左、右相機坐標(biāo)系下對應(yīng)的坐標(biāo)分別為。因此,將這些參數(shù)代入式(4)和式(5)可以得到如下關(guān)系式:
根據(jù)式(8),建立兩攝像機之間位置關(guān)系的目標(biāo)函數(shù),其表達式如下:
通過最小化式(9)所示的目標(biāo)函數(shù)可以估計R和T。
由于目標(biāo)函數(shù)有6 個變量,并且在優(yōu)化過程中很容易得到局部極小值,因此,涉及的計算過程很復(fù)雜。為了簡化計算過程,本文提出了一種基于質(zhì)心的計算方法。
首先分別計算左、右相機所有特征點對應(yīng)的質(zhì)心,然后將坐標(biāo)系的原點平移到質(zhì)心。和的質(zhì)心坐標(biāo)分別用和表示,關(guān)系如下:
將每個坐標(biāo)系的原點轉(zhuǎn)換成相應(yīng)的質(zhì)心,此時新的坐標(biāo)可以轉(zhuǎn)換為,關(guān)系如下:
此時,各像點之間的關(guān)系如下:
目標(biāo)函數(shù)可以簡化為如下:
旋轉(zhuǎn)矩陣R可以通過最小化目標(biāo)函數(shù)f(R)得到,然后由下式:
得到平移矩陣T。
得到左、右兩個圖像坐標(biāo)系統(tǒng)中的圖像坐標(biāo)后,需要得到三維重建的特征點。為此,利用最優(yōu)三角剖分法[18],對圖像坐標(biāo)pl和pr重建三維標(biāo)定點,并計算特征點的空間坐標(biāo)。利用式(6),將圖像坐標(biāo)pl和pr在左相機坐標(biāo)系中重構(gòu),重構(gòu)后的坐標(biāo)用表示,然后將左相機坐標(biāo)系的重構(gòu)點轉(zhuǎn)換為世界坐標(biāo)。根據(jù)式(8),可得到Pw與Pclr之間的關(guān)系,其表達式如下:
將重構(gòu)誤差最小化,得到所有參數(shù)的最終值。為了更直觀地表示標(biāo)定方法的有效性,對三維重構(gòu)誤差進行了研究。利用平均重構(gòu)誤差Ew來描述標(biāo)定結(jié)果的準確性,其表達式如下:
式中,Ew表示真實三維坐標(biāo)與重建得到的三維坐標(biāo)之間的平均誤差大小。
對圖像坐標(biāo)pl和pr重建三維標(biāo)定點,將圖像坐標(biāo)pl和pr在左相機坐標(biāo)系中重構(gòu)并用Pclr表示。在重構(gòu)過程中,如果兩個攝像機間的內(nèi)差數(shù)差別較大,會導(dǎo)致重建誤差的增大。因此,利用單攝像機配合高精度機械結(jié)構(gòu),并通過平移或旋轉(zhuǎn)實現(xiàn)立體視覺,使得左右攝像機參數(shù)一致,以提高標(biāo)定精度。本文使用單目攝像機和電控位移平臺實現(xiàn)雙攝像機系統(tǒng),這種模型是雙目模型中的一種特殊情況,如圖1 所示。這是一種左、右攝像機兩光軸平行的平行雙目系統(tǒng),保證了左、右攝像機參數(shù)一致性并降低了實驗的復(fù)雜度。
圖1 單目攝像機實現(xiàn)雙目立體視覺Fig.1 Monocular camera to achieve binocular stereo vision
為了驗證本文方法的有效性,建立了一個由單目攝像機和一維電控位移臺組成的雙攝像機系統(tǒng)。本文使用的攝像機分辨率為1 600×1 200,變焦范圍為12~36 mm,像元尺寸為4.4 μm×4.4 μm,使用的標(biāo)定板外形尺寸為400 mm×300 mm×5 mm,棋盤格尺寸為30 mm×30 mm,高精密一維電控位移臺的分辨率為3.125 μm(8 細分下),實驗裝置如圖2 所示。在圖2 中,位置1 為左機位,位置2 為右機位,分別表示同一水平線上單目攝像機的不同位置。利用一維電控位移臺,使單目攝像機在左機位與右機位間移動,從而實現(xiàn)雙目系統(tǒng)。
圖2 實驗裝置Fig.2 Experimental equipment
實驗步驟如下:
(1)將單目攝像機固定于一維電控位移臺上,在12~36 mm 焦距范圍內(nèi)隨機選取一組焦距值,保持標(biāo)定板位置不動。一維電控位移臺的往返步數(shù)設(shè)置為20 000 步,平移的理論距離為62.500 mm。
(2)在左、右機位分別采集左、右位置的標(biāo)定板圖像。改變標(biāo)定板位姿,再采集左、右位置的標(biāo)定板圖像,得到左、右位置下各20 對標(biāo)定板圖像,其中14 對作為訓(xùn)練數(shù)據(jù)進行標(biāo)定,另外6 對用于測試。
(3)利用張氏標(biāo)定法分別計算左、右相機的初始參數(shù),并用質(zhì)心距離增量矩陣計算出旋轉(zhuǎn)矩陣R和平移矩陣T。
(4)重構(gòu)標(biāo)定點的三維坐標(biāo),利用平均重構(gòu)誤差建立優(yōu)化目標(biāo)函數(shù),得到最終的校準結(jié)果。
相機的內(nèi)參數(shù)和外參數(shù)的計算結(jié)果如表1、表2 和表3 所示,表中方法1 是指文獻[8]的方法,2D 是指二維 優(yōu)化方法,3D 是指三維優(yōu)化方法。表1 和表2 表示了用不同方法得到的內(nèi)參和畸變系數(shù),可以看出,不同的標(biāo)定技術(shù)對這些參數(shù)的影響不大,因為這些參數(shù)取決于單臺相機的成像傳感器或光學(xué)透鏡的特性。表3 表示了用不同方法得到的外參,表中rx、ry、rz是旋轉(zhuǎn)矩陣R的3 個分量,tx、ty、tz是平移矩陣T的3個分量。從表3 可以看出,不同技術(shù)得到的結(jié)構(gòu)參數(shù)之間的差異更明顯。結(jié)構(gòu)參數(shù)在非線性優(yōu)化過程中起著更為重要的作用,是影響標(biāo)定結(jié)果的主要因素。
表1 左相機內(nèi)參數(shù)和畸變系數(shù)的比較Tab.1 Comparison of left camera internal parameters and distortion coefficients
表2 右相機內(nèi)參數(shù)和畸變系數(shù)的比較Tab.2 Comparison of right camera internal parameters and distortion coefficients
表3 相機外參數(shù)的比較Tab.3 Comparison of external camera parameters
對不同方法計算得到的參數(shù)進行三維物點重構(gòu),并用散點圖直觀地畫出每個重構(gòu)后的物點與其真值的誤差分布圖。圖3 是不同方法重構(gòu)誤差散點圖,可以看出,經(jīng)過優(yōu)化和重構(gòu)后,物點與其真值的誤差明顯減小。對不同方法獲得的標(biāo)定結(jié)果進行平均重構(gòu)誤差的計算,計算結(jié)果如表4所示。以 δxoy、δxoz、δyoz表示3 個平面上的平均重構(gòu)誤差,δxyz表示三維空間的平均重構(gòu)誤差,基于2D 和基于3D 的優(yōu)化方法相較于方法1 都有較大提升,平均重構(gòu)誤差從0.490 9 分別減小到0.388 9 和0.284 7。
表4 平均重構(gòu)誤差統(tǒng)計Tab.4 Average reconstruction error statistics
圖3 不同方法重構(gòu)誤差散點圖Fig.3 Reconstruction of error scatter graph by different methods
為了進一步驗證標(biāo)定算法的魯棒性,在圖像的角點坐標(biāo)上加入均值為0、標(biāo)準差為0~1 像素的高斯噪聲,每個噪聲級為0.2。通過對每個噪聲級進行25 次的獨立試驗,得到平均結(jié)果,如圖4所示。與傳統(tǒng)的二維優(yōu)化方法相比,在標(biāo)定精度方面,本文提出的三維優(yōu)化方法顯然占優(yōu)勢。
圖4 平移矩陣和重構(gòu)誤差結(jié)果對比Fig.4 Comparison of translation matrix and reconstruction error results
對用于測試的特征點進行三維重構(gòu),得到三維重建結(jié)果,如圖5 所示,圖中Position1~6 表示6 個不同位姿的標(biāo)定板測試圖上的所有特征點進行重構(gòu)后的分布圖。為進一步說明優(yōu)化后的標(biāo)定方法的有效性,利用得到的標(biāo)定結(jié)果,對得到的圖像進行立體畸變校正、極線對齊、立體匹配,最后得到視差圖對應(yīng)的三維空間位置。根據(jù)三維空間位置與二維像素點及視差的對應(yīng)關(guān)系,對目標(biāo)物體進行測量。圖6 是用3 種方法得到的最終視差圖,可以看出,3D 優(yōu)化后的視差圖的特征輪廓最清晰。
圖5 測試數(shù)據(jù)的所有特征點重構(gòu)圖Fig.5 Reconstruction of all feature points of the test data
圖6 不同方法對應(yīng)的立體匹配結(jié)果圖Fig.6 Stereo matching results of different methods
對3 種方法得到的視差圖提取特征點,對實際尺寸為30 mm×30 mm 的方格進行測量,每種方法各進行10 次測試,得到的測試結(jié)果如表5所示。從測量結(jié)果的平均值和標(biāo)準差統(tǒng)計中可以看出,3D 方法使測量誤差從0.112 3 mm 減小到0.019 1 mm,標(biāo)準差從0.183 8 減小到0.127 5,說明測量結(jié)果更加精確,波動更小。
表5 實物重構(gòu)測量結(jié)果統(tǒng)計Tab.5 Statistics of physical reconstruction measurement results
本文采用單攝像機和一維電控位移臺實現(xiàn)了雙攝像機系統(tǒng)。通過計算左、右攝像機位的初始參數(shù),并引入質(zhì)心坐標(biāo)法計算兩攝像機間的旋轉(zhuǎn)平移矩陣。利用三角剖分重構(gòu)標(biāo)定點的三維坐標(biāo),計算重構(gòu)坐標(biāo)與真值間的重構(gòu)誤差。通過最小化重構(gòu)誤差來優(yōu)化標(biāo)定參數(shù)的方法。與傳統(tǒng)方法相比,該誤差直接反映了三維重構(gòu)的效率,在精度和魯棒性上得到了明顯提高。研究結(jié)果表明,基于三維重構(gòu)的標(biāo)定誤差能更加直觀地提升后續(xù)三維重構(gòu)的準確度,而基于單攝像機的立體視覺系統(tǒng)可以保證左右攝像機參數(shù)一致性。由于機械結(jié)構(gòu)的限制,本方法目前還不適用于機器人導(dǎo)航、自動駕駛等一些實時性要求較高的任務(wù)。但是,在變焦標(biāo)定領(lǐng)域有較廣泛的應(yīng)用,可為光學(xué)非接觸式三維測量提供參考。