段心怡,楊 劍,程澤會
(中北大學 軟件學院,太原 030051)
在過去幾十年,隨著計算機視覺在無人駕駛、智能監(jiān)控、視覺分析等方面的快速發(fā)展以及視覺系統(tǒng)成本的降低,多相機視覺系統(tǒng)得到了日益廣泛的應用。由于單相機視覺系統(tǒng)存在視場范圍狹窄以及無法產生視差等限制,使得其應用受限,因此多相機系統(tǒng)應運而生。同時環(huán)境條件限制、設計需求、成本限制等因素的影響,多相機視覺系統(tǒng)往往存在相機之間無重疊視場的情況,然而相機之間的坐標系變換對于很多應用至關重要,例如:視覺測量[1-5]、軌跡追蹤[6-9]、自主機器人[10-12]、監(jiān)控[13-15]等等,因此針對無重疊視場的多相機視覺系統(tǒng)全局標定問題,研究一種高精度、易操作、低成本的有效方法成為很多研究者關注的問題。
相機的全局標定方法是解決局部的相機坐標系轉換到全局坐標系的問題,目前針對該問題,研究人員已經(jīng)提出了多種方法,可分為基于周圍環(huán)境信息的手眼標定方法[16-20]和基于關聯(lián)靶標的外參標定方法[21-26]。然而無重疊視場的多相機系統(tǒng)全局標定問題依然是一個具有挑戰(zhàn)性的問題,尤其在相機之間的視場無法通視或單向觀測的情況下。針對該問題,本文提出了基于半鏡面平面靶標的全局標定方法,通過平面靶標的鏡面部分將點激光器的光線反射到其他相機的視場內,利用平面靶標的標志點計算靶標的空間參數(shù)并得到反射光線的空間方程,最后利用激光光線的方向向量構建相機間坐標系轉換方程組,從而確定轉換矩陣和平移向量。實驗表明所提方法可有效的解算全局標定矩陣,并具有高精度、計算簡便、操作簡便、設備簡單等優(yōu)點。
為了解決無重疊視場的多相機系統(tǒng)全局標定問題,科研工作者已經(jīng)給出很多方法,其可總體分為:基于人工或周圍環(huán)境信息的手眼或自標定方法[16-20]和基于關聯(lián)標定物的外參標定方法[21-34]。
自標定方法通常需要設定相機組一定規(guī)律的運動。受手眼標定方法的啟發(fā),Esquivel等[16]基于每個相機時間同步性估計彼此之間的相對姿態(tài)。F.Pagel[17]則給出了運動調整的方法,利用測距法計算相機之間彼此的運動幅度,從而估計相機之間的外參數(shù)。文獻[18-19]則是在現(xiàn)有的手眼標定等方法基礎上,借助加速度傳感器和角度傳感器等設備進一步優(yōu)化相機外參的標定,文獻[20]則是首先利用SLAM設備(如深度相機)將周圍環(huán)境進行三維建模,在相機組運動過程中,根據(jù)周圍環(huán)境的三維坐標確定外參。該類方法具有較好的自主性,但也存在計算復雜,精度難以保證等問題。
基于關聯(lián)標定物的外參標定方法通常不需要相機做特定的運行。針對無重疊視場的多相機系統(tǒng)全局標定問題,文獻[21]利用近景攝影測量的原理,首先在室內環(huán)境中布置編碼點,然后,利用測量設備測量編碼點的全局三維坐標,最后利用這些測定的三維坐標點標定相機之間的轉換矩陣。文獻[22-23]采用經(jīng)緯儀或激光雷達關聯(lián)兩個相機平面靶標,實現(xiàn)全局標定。文獻[24-25]則設計了長距離的鏈接桿,在長桿的兩頭分別固定標定靶標,從而實現(xiàn)標定靶的關聯(lián)。同時有很多科研工作者利用鏡面的反射效果,反視另一個相機的視場,從而實現(xiàn)相機的關聯(lián)[26-30],該類方法簡單直接,但需要視場沒有遮擋,同時反射后靶標變小,有損精度,利用球面鏡反射雖可獲得較好的視野,但也存在畸變的問題。Liu等[31]則將激光器產生的光平面投射到平面靶標上,利用光平面的法向量構建相機之間的轉換方程。該方法不需要昂貴的設備,具有實施簡單的優(yōu)點,但也存在計算復雜,標定板朝向限制的不足。文獻[32-34]中,則進一步提出更實用的方法,利用點激光器產生激光射線,分別在各自視場內截斷射線,觀測散斑點像,從而計算射線的方向向量,然后利用射線的方向向量構建外參解算方程。以激光射線為靶標的相機標定方法,具有設備簡單、實施方便、計算簡單等優(yōu)點,但需要其相機之間的視場可以通視,沒有遮擋,并要求單向性觀測。
本文所提出的基于半鏡面平面靶標的無重疊視域多相機全局標定方法,基于點激光器的射線方向向量約束相機之間的轉換方程,并利用半鏡面平面靶標改變其光路。該方法具有很好的靈活性,設備簡單、易操作、計算簡單,由于激光的準直性,精度不受相機布局遠近的影響,適用于各種相機布局,在相機之間的視場無法通視或單向觀測的情況下依然適用。
基于半鏡面平面靶標的無重疊視域多相機全局標定方法的原理如圖1所示,不失一般性,圖以雙相機組為例進行說明, 多相機系統(tǒng)可轉化為兩兩分組的問題。
圖1 無重疊視域多相機全局標定方法的示意圖
表1 符號與定義
本文所提方法的主要步驟如下:
1)基于張正友[35]的經(jīng)典標定方法,實現(xiàn)單個相機的內參數(shù)的標定Ack,(k=1,2)及相機1,2的自身坐標系外參。
2)將相機群分為兩兩一組,如圖1所示,選定單點激光器的位置;
3)在相機1的視場內,三次移動標定板,則可攔截激光的散斑點A,B,C,并采集圖像點a,b,c,則根據(jù)3.1小節(jié)中的方法可計算得到激光射線的消隱點;
4)在相機c1的視場內,放置半鏡面標定板,將激光光路反射到相機c2的視場內,并在c2不同位置截獲激光射線的散斑點D,E,F,并采集圖像點d,e,f。利用3.1小節(jié)中的方法可計算得到激光射線的消隱點;
如圖1所示,選定激光器的位置,在相機c1的視場內移動平面靶標,分別在位置i=1,2,3攔截激光射線形成散斑點A,B,C,并采集像點(ai,bi,ci),其結果如圖2所示,V∞表示激光射線在相機c1坐標系下的無限遠點,相應的vi1∞則表示該無限遠點在圖像坐標系下的消隱點坐標。
圖2 點A,B,C,V∞的交比示意圖
(1)
則根據(jù)射影幾何的交比不變性[34]可估算圖像消隱點vi∞1:
(2)
公式(2)中,(ai,bi,ci,vi∞1)表示激光射線散斑點(A,B,C,V1∞)的單應圖像點,其坐標系如圖2所示。同理,經(jīng)過半鏡面平面靶的反射,光線進入相機c2的視場內,移動平面靶可截取激光的散斑點圖像(di,ei,fi,vi∞2),基于交比不變性可估算反射后光線的消隱點vi∞2。
線的消隱點表示了直線的方向向量。設dci,(i=1,2)表示激光射線的方向向量,如圖3所示。根據(jù)2.1節(jié)計算的消隱點可得射線的方向向量(3):
圖3 半鏡面平面靶反射激光光路
(3)
(4)
因此根據(jù)式(3)和(4)可知,經(jīng)過鏡面反射后,入射光線與反射光線的消隱點之間的關系式:
(5)
根據(jù)射影幾何可知,設空間中一點在兩個相機像平面上的坐標為mc1和mc2,其關系可用單應矩陣H表示為:
mc1=Hmc2
(6)
當單應平面為無窮遠平面π∞,其關系依然存在,此時像點為無窮遠點的像,也就是圖像的消隱點。
(7)
結合式(5)可得到:
vi∞1=W-1H∞vi∞2
(8)
根據(jù)文中的設定,第一個攝像機c1的坐標系為全局坐標系,經(jīng)過標定后,其兩個相機內參已知,相機矩陣分別為:
(9)
對于單應平面π上的任一個點M, 考慮它在兩個攝像機下的投影。顯然,在第一個攝像機下的投影為:
(10)
因此,單應平面π到第一個像平面的單應矩陣為H1=Ac1。在第二個攝像機下的投影為:
(11)
(12)
(13)
當單應平面π變成無窮遠平面,所以在式(13)中取L→∞的極限值,可得到無窮遠單應矩陣,顯然:
(14)
因此:
(15)
(16)
設點A,B,C的鏡像點表示為A′,B′,C′,根據(jù)式(16)可得:
A′,B′,C′=QA,QB,QC
(17)
設D點在相機2下的坐標為Dc2=(xDc2,yDc2,zDc2),坐標轉化為相機1坐標系后Dc1=(xDc1,yDc1,zDc1),其轉換關系如下:
(18)
同樣的坐標表達方式及轉換關系可用于A,B,C,D,E,F。
A,B,C做鏡面對稱得到A′,B′,C′,D,E,F共線,因此可得:
(19)
可寫為:
(20)
把式(18)代入到式(20)可得:
(21)
如圖3所示,設激光線在位置i的方程為Li,其可表示為如下方程:
(22)
通常認為,相機CCD圖像噪聲符合高斯分布,采用最大似然法針對下式求解最優(yōu)解可獲得最小誤差的相機外參。
(23)
其中:α=(T2,nxi,nyi,nzi,xi0,yi0,zi0),m表示點激光器的位置,d(qij,Li)則表示點qij偏離直線Li的距離。同時這里采用了Levenberg-Marquardt算法作為優(yōu)化方法,實現(xiàn)對最小二乘結果的最優(yōu)解。
為了驗證所提算法的有效性和精度,設計了如下的實驗部分,分析了影響標定精確性的3個主要的因素:1)圖像噪聲對激光散斑中心點檢測精度及鏡面法向量計算精度的影響;2)相機之間的距離對全局標定的影響;3)布置激光器的數(shù)量對相機全局標定參數(shù)的影響;
3.1.1 相機圖像噪聲
圖4 圖像噪聲對標定點的誤差影響
由圖4 可以看出,所有相機外參數(shù)的均方根誤差隨著噪聲水平線性增長。通常在真實實驗中,會采用工業(yè)相機,其圖像的噪聲要小于0.2個像素。
同時采用的點激光器射線強度符合高斯分布,因此基于Matlab仿真了光強高斯分布的光斑圖像,并分別進行100次的添加高斯白噪聲后,擬合高斯分布的中心點,其中心點偏離的RMS結果如圖5所示。可以看出,在標定板方向向量與激光射線方向向量夾角<10度,圖像噪聲<1個像素的條件下,其RMS小于0.006 mm。
圖5 激光散斑圖像仿真及圖像噪聲影響對中心提取的影響
3.1.2 兩相機之間距離因素
實驗結果如圖6所示,標定的外參的RMS誤差隨著相機之間距離的增加而增長,當其相對精度均小于0.3%,所提方法可應用于相機組的外參標定。
圖6 相機之間距離對標定外參的RMS誤差的影響
3.1.3 點激光器位置數(shù)量對精度的影響
實驗結果表明,隨著點激光器布置數(shù)量的增加,相機外參數(shù)的標定誤差較快地減少。在不少于5個位置放置激光器的條件下,標志點之間距離的均方根誤差小于0.07 mm,基于半鏡面平面靶標的全局標定方法在較少點激光器的條件下,可得到較好的精度。
圖7 點激光器的放值數(shù)量對標定誤差的影響
如圖8所示,真實實驗的環(huán)境采用了三相機組(相機1,2,3),其中相機1,2為維視公司的CMOS灰度工業(yè)相機,其圖像分別率為2 048×1 536,像素尺寸為3.2×3.2 μm,相機采用的光學鏡頭為日本computar 28 mm鏡頭;相機3作為輔助相機,采用大恒公司CMOS工業(yè)相機,其圖像分辨率為2 048×1 536,光學鏡頭為日本computar 18 mm鏡頭。相機組固定在三角支架上,激光器及標定板則固定在光學平臺。
圖8 三相機組對內參的標定
首先完成相機內參的標定工作,標定中采用的二維標定板以及半鏡面標定板中的圖案均為9×7個黑白相間的棋盤格,其間距為30 mm。在相機內參標定過程中,3個相機分別采集了20副二維標定板的圖像,并采用張正友的方法完成內參的標定,標定結果如表2所示。
表2 內參的標定結果
完成相機組的內參標定后,為了驗證外參的標定效果,設計了利用第三個相機作為關聯(lián)視場,基于經(jīng)典的張的標定方法完成沒有公共視域的兩相機(相機1,2)的外參標定,并與本文方法進行比較。其實驗如下:
1)基于張正友的方法[33],分別完成相機1,3,相機2,3的外參的標定,從而在相機3的幫助下得到相機1,2之間的轉換矩陣并做為真值與本文所提出的方法進行比較;
2)基于本文所提方法,分別在8個不同的位置布置點激光器,在相機1視場內放置半鏡面標定板將激光射線反射到相機2的視場內;
3)分別在每個相機視場內用標定板截斷激光射線,并采集6個散斑點圖像,如圖9展示了相應的散斑圖像點。根據(jù)所提式(8)、(15)則可計算得到旋轉矩陣,式(21)可計算得到平移向量。
圖9 三相機組對外參的標定
表3給出了比較結果,假設張正友的方法為真值,則本文所提的方法最大誤差為平移向量中的tx,在相機間距1.1 m的條件下,其誤差為0.36 mm。
表3 全局標定方法和張正友方法的結果
針對無重疊視域的多相機全局標定問題,提出了基于半鏡面平面靶標的標定方法。相比于現(xiàn)有的方法,所提出的方法具有更好的彈性、適應性,基本不受相機布局的影響,尤其適用于一維標定物無法貫穿兩個相機的視場的情形,同時在相同標定精度及設備條件下,該算法計算更為簡便,只需要計算一維標定物的散斑圖像點的消隱點即可計算旋轉矩陣,該算法具有廣泛的應用前景。實驗結果確認了所提出的基于半鏡面平面靶標的外參標定方法具有較好的精度以及魯棒性。