李勤文,倪首軍,王志乾,李建榮,沈鋮武,楊文昌,劉玉生
(1. 中國科學(xué)院 長春光學(xué)精密機(jī)械與物理研究所,吉林 長春130033;2. 中國科學(xué)院大學(xué),北京100049;3. 北京航天發(fā)射技術(shù)研究所,北京100076)
視覺測量系統(tǒng)由于其具有非接觸,靈活性高,采集迅速等優(yōu)點(diǎn)而被廣泛應(yīng)用[1]。在大多數(shù)視覺測量系統(tǒng)中,單臺相機(jī)很難覆蓋所有測量目標(biāo),而多相機(jī)系統(tǒng)具有比單個相機(jī)更大的視場,通常被用于獲取大型物體或場景的幾何信息[2-3]。決定多相機(jī)測量系統(tǒng)準(zhǔn)確性的關(guān)鍵因素是相機(jī)之間的位姿關(guān)系標(biāo)定。目前,多相機(jī)系統(tǒng)標(biāo)定多利用額外的標(biāo)定物,如平面棋盤格[4-5]或基于共線三點(diǎn)的一維標(biāo)定物[6]來完成。然而當(dāng)實(shí)際實(shí)驗(yàn)條件有限,無法借助額外的標(biāo)定物且已有的目標(biāo)特征點(diǎn)不足3 個時,現(xiàn)有的標(biāo)定方法失效,需要尋求其他解決辦法。
目前,雙目相機(jī)位姿標(biāo)定方法多是針對于雙目立體相機(jī),利用兩個幾何關(guān)系相對固定的相機(jī)以不同視角獲取被測物體的影像信息,再利用同一個視覺信息在不同相機(jī)下的匹配特征不同進(jìn)行相機(jī)標(biāo)定,因此兩相機(jī)之間要具有重疊的視場[7-8]。然而,在一些特殊的環(huán)境下,由于物體的遮擋或視場的限制,兩相機(jī)無法獲得重疊的視場,因此要進(jìn)行非公共視場相機(jī)的標(biāo)定[9-10]。目前,對無公共視場相機(jī)標(biāo)定的研究可分為兩類:一類是利用其他設(shè)備建立多相機(jī)視場之間的聯(lián)系,如Long[11]和Wang[12]等人利用光學(xué)鏡的反光特性對相機(jī)視場進(jìn)行改善,克服了所有相機(jī)必須直接觀察普通目標(biāo)的局限,相機(jī)能夠通過鏡面間接觀察目標(biāo)。Sun[13]等人利用多組球面目標(biāo)和高精度輔助相機(jī)對非公共視場相機(jī)進(jìn)行標(biāo)定。標(biāo)定相機(jī)觀測一組球體,輔助相機(jī)觀測所有的球體。每個相機(jī)在各自的視場中重建球面中心后實(shí)現(xiàn)全局標(biāo)定。另一類是利用標(biāo)定物之間固有的位置約束關(guān)系進(jìn)行相機(jī)標(biāo)定,如Liu[14]等人利用兩個相對位置關(guān)系不變的平面棋盤格組成復(fù)合目標(biāo)對非公共視場相機(jī)進(jìn)行標(biāo)定。通過求解各視覺傳感器坐標(biāo)系到世界坐標(biāo)系的關(guān)系,進(jìn)而得到各視覺傳感器之間的相對位姿。
本文針對自動對準(zhǔn)系統(tǒng)中非公共視場的雙目相機(jī)標(biāo)定問題,不借助于高精度靶標(biāo)或額外標(biāo)定物,利用現(xiàn)有系統(tǒng)結(jié)構(gòu)尋求兩相機(jī)位姿關(guān)系標(biāo)定的解決辦法。通過多次移動標(biāo)定物得到多組坐標(biāo)數(shù)據(jù)的方法進(jìn)行解算,由于相機(jī)視場范圍有限,因此得到的目標(biāo)點(diǎn)較為密集。然而,傳統(tǒng)直接線性變換(Direct Linear Transformation,DLT)算法精度依賴于目標(biāo)點(diǎn)的稀疏度[15],為了克服DLT 方法的局限性,本文對DLT 求解方法進(jìn)行了改進(jìn),并通過實(shí)驗(yàn)對比證明了本文方法的有效性。
圖1 雙目相機(jī)標(biāo)定系統(tǒng)示意圖Fig. 1 Schematic diagram of binocular camera calibration
基于雙目測量的自動對準(zhǔn)系統(tǒng)如圖1 所示,系統(tǒng)由位于上方部件上的兩個光學(xué)測量裝置A,B 以及位于底部部件上的兩個合作目標(biāo)點(diǎn)A,B組成。光學(xué)測量裝置內(nèi)含有光學(xué)測量相機(jī)和激光測距儀,底部部件長2 m,寬1. 5 m,測量范圍為700~1 300 mm。測量過程中,2 個光學(xué)測量相機(jī)分別對底部部件上的合作目標(biāo)點(diǎn)進(jìn)行拍攝,得到點(diǎn)的圖像坐標(biāo)用于位姿解算,計(jì)算兩部件的對準(zhǔn)偏差,調(diào)整部件完成對準(zhǔn),在此過程中系統(tǒng)測量誤差要<2 mm。為了完成上、下兩部件之間對準(zhǔn)偏差的解算,需要對光學(xué)測量裝置內(nèi)的兩個光學(xué)相機(jī)A,B 進(jìn)行標(biāo)定。然而,由于底部部件尺寸較大,兩光學(xué)相機(jī)之間沒有公共視場,因此需要考慮無公共視場相機(jī)的標(biāo)定問題。為了盡可能利用現(xiàn)有系統(tǒng)完成兩光學(xué)相機(jī)之間位姿關(guān)系的標(biāo)定,擺脫傳統(tǒng)的依靠高精度靶標(biāo)或較多數(shù)量特征點(diǎn)的相機(jī)標(biāo)定方法。本文利用兩臺萊卡經(jīng)緯儀測量目標(biāo)點(diǎn)在經(jīng)緯儀坐標(biāo)系下的坐標(biāo),進(jìn)而對兩相機(jī)之間位姿關(guān)系進(jìn)行標(biāo)定的方法。圖1所示為標(biāo)定系統(tǒng)示意圖,以萊卡經(jīng)緯儀1 的坐標(biāo)系O-XYZ為公共目標(biāo)坐標(biāo)系,兩個經(jīng)緯儀通過交匯測量得到目標(biāo)點(diǎn)A和目標(biāo)點(diǎn)B在目標(biāo)坐標(biāo)系下的坐標(biāo)。之后利用原有系統(tǒng)中的兩個無公共視場相機(jī)分別對底部移動部件對角線上的目標(biāo)點(diǎn)A和目標(biāo)點(diǎn)B進(jìn)行拍攝,得到點(diǎn)的圖像坐標(biāo)。利用得到的點(diǎn)在目標(biāo)坐標(biāo)系O-XYZ下的坐標(biāo)和點(diǎn)的圖像坐標(biāo)進(jìn)行相機(jī)標(biāo)定。針對僅有兩個目標(biāo)點(diǎn)的情況,為了充分利用點(diǎn)的坐標(biāo)信息,標(biāo)定過程中保持上方部件和兩經(jīng)緯儀固定不動,即公共目標(biāo)坐標(biāo)系與兩測量相機(jī)坐標(biāo)系保持固定不動,通過多次移動底部部件,得到目標(biāo)點(diǎn)A、目標(biāo)點(diǎn)B的多組圖像坐標(biāo)和目標(biāo)坐標(biāo)進(jìn)行兩個無公共視場相機(jī)的標(biāo)定。
圖2 所示為非公共視場雙目相機(jī)標(biāo)定簡圖。在測量場內(nèi)建立公共目標(biāo)坐標(biāo)系O-XYZ、相機(jī)A坐標(biāo)系OCA-XCAYCA ZCA和相機(jī)B 坐標(biāo)系OCBXCBYCB ZCB,各坐標(biāo)系之間的位置關(guān)系保持固定。多次移動標(biāo)定物,利用兩臺萊卡經(jīng)緯儀測得目標(biāo)點(diǎn)A,B每次移動后的坐標(biāo),分別為PiA=(XiA,YiA,ZiA)T,PiB=(XiB,YiB,ZiB)T,對 應(yīng) 的 圖 像點(diǎn) 坐 標(biāo) 分 別 為pia=(uia,via)T,pib=(uib,vib)T,在 各自相機(jī)坐標(biāo)系下的坐標(biāo)為cia=(xia,yia,zia)T,cib=(xib,yib,zib)T,其 中i= 1,2,3,...,n。 為 了 標(biāo) 定 兩相機(jī)之間的位姿關(guān)系,需要先分別標(biāo)定出相機(jī)A、相機(jī)B 到公共目標(biāo)坐標(biāo)系O-XYZ之間的外參數(shù)矩陣RA,tA和RB,tB,進(jìn)而求出兩相機(jī)坐標(biāo)系之間的旋轉(zhuǎn)平移關(guān)系RAB,tAB。
圖2 非公共視場雙目相機(jī)標(biāo)定簡化圖Fig. 2 Simplified calibration diagram of binocular camera with non-public field of view
以相機(jī)A 為例,建立單相機(jī)成像方程:
其中:za為標(biāo)量系數(shù);KA為相機(jī)內(nèi)參數(shù)矩陣;[RA tA]表示公共目標(biāo)坐標(biāo)系到相機(jī)A 坐標(biāo)系的轉(zhuǎn)換矩陣,即相機(jī)的外參數(shù)矩陣,RA為旋轉(zhuǎn)矩陣,tA為平移矩陣,表示為:
其中:α,β,γ表示公共目標(biāo)坐標(biāo)系到相機(jī)A 坐標(biāo)系的旋轉(zhuǎn)角。規(guī)定坐標(biāo)系之間的轉(zhuǎn)換關(guān)系,采用先平移后旋轉(zhuǎn)的表示方式,用齊次坐標(biāo)寫成矩陣形式,得到:
其 中 :i = 1,2,3,...,n,為 目 標(biāo) 點(diǎn) 移 動 的 次 數(shù) ;r11~r33表示矩陣RA內(nèi)相應(yīng)位置的元素。 經(jīng)典DLT 算法標(biāo)定單相機(jī)的基本原理是通過矩陣變換將式(4)整理為CM = D 的形式,其中:
C,D 中全部為已知量,M 為11× 1 的未知矩陣。當(dāng)目標(biāo)點(diǎn)移動次數(shù)n ≥6 時,可以列出的方程多于11 個,進(jìn)而利用最小二乘法解得:
結(jié)合式(2)~式(5)可分離出相機(jī)A 到公共目標(biāo)坐標(biāo)系之間的外參數(shù)矩陣,同理可求出相機(jī)B 到公共目標(biāo)坐標(biāo)系之間的外參數(shù)矩陣。然而,由于兩光學(xué)相機(jī)的視場范圍有限實(shí)際測量中兩目標(biāo)點(diǎn)的移動范圍也有限,目標(biāo)點(diǎn)分布較為密集,使得經(jīng)典DLT 算法的精度較低甚至出現(xiàn)病態(tài)解,影響標(biāo)定精度,因此本文利用激光測距數(shù)據(jù)對DLT 算法的解算結(jié)果進(jìn)行了改進(jìn)。
在雙目相機(jī)系統(tǒng)中增加激光測距儀,相機(jī)與激光測距儀的距離固定,相機(jī)光軸方向與激光測距儀的出光方向基本相同[16]。在標(biāo)定后利用激光測距儀得到的一維數(shù)據(jù),對由DLT 方法求得的相機(jī)的外參數(shù)矩陣RA,tA進(jìn)行優(yōu)化,然后利用Levenberg-Marquardt(LM)非線性算法進(jìn)行全局求解,提高標(biāo)定結(jié)果的準(zhǔn)確度。
以相機(jī)A 為例,由3. 1 節(jié)方法求得的相機(jī)參數(shù)可以得到目標(biāo)點(diǎn)A 在相機(jī)坐標(biāo)系下的坐標(biāo),利用標(biāo)定后的激光測距儀數(shù)據(jù)代替目標(biāo)點(diǎn)A 在相機(jī)A 坐標(biāo)系下沿光軸方向的坐標(biāo)已知目標(biāo)點(diǎn)A 兩次移動前后在目標(biāo)坐標(biāo)系下的坐標(biāo)為在相機(jī)A 坐標(biāo)系下的坐標(biāo)為相機(jī)光心為C,則有:
這里 的RA·表示將向量PiAPi+1A由目標(biāo)坐標(biāo)系空間轉(zhuǎn)換到相機(jī)A 坐標(biāo)系空間表示,RA為待優(yōu)化的旋轉(zhuǎn)矩陣,它是沿目標(biāo)坐標(biāo)系三軸的旋轉(zhuǎn)角 α,β,γ 的函數(shù),如公式(2)所示。()表示平面的法向量,若RA為真值,則在平面上,二者點(diǎn)積為0。因此可構(gòu)造目標(biāo)函數(shù):
理 想 情 況 下V ( α,β,γ )= 0 ,然 而 由 于 測量噪聲的存在,實(shí)際求得的RA不一定使式(8)為0。 為 了 最 小 化 式(8)的 誤 差 ,用LM非線性優(yōu)化方法對式(8)進(jìn)行優(yōu)化求解。 用以 指 導(dǎo) 優(yōu) 化 方 向 的 雅 可 比 矩 陣J ( α,β,γ ) 表示為:
每次迭代過程中,目標(biāo)函數(shù)V ( α,β,γ ) 的梯度為gk= JTkvk,k 為 迭 代 次 數(shù) 。 迭 代 步 長dk=數(shù),迭代初始值 α0,β0,γ0可由3. 1 節(jié)求得的旋轉(zhuǎn)矩陣反算得到。至此可以帶入LM 非線性優(yōu)化算法求解旋轉(zhuǎn)角,進(jìn)而得到旋轉(zhuǎn)矩陣RA。
已 知 待 優(yōu) 化 的 平 移 矩 陣tA=( ΔX,ΔY,ΔZ )T,由cia=( xia,yia,z′ia)T與PiA=( XiA,YiA,ZiA)T的關(guān)系:
可以得到:
其中r11~r33為由公式(8)求得的旋轉(zhuǎn)矩陣RA中的元素。則公式(11)可表示為C1tA= D1,由最小二乘法可得tA=(C1TC1)-1C1TD1,從而可以得到優(yōu)化后的平移矩陣tA。
為了保證解的準(zhǔn)確性,防止相機(jī)外參旋轉(zhuǎn)矩陣和平移矩陣各自優(yōu)化有可能帶來的局部解問題以及相機(jī)實(shí)際內(nèi)參數(shù)值與標(biāo)稱值不符,進(jìn)而影響外參求解精度的問題,通過最小化重投影誤差的方法對相機(jī)內(nèi)外參數(shù)進(jìn)行全局求解。構(gòu)造重投影誤差函數(shù):
其 中 :M1,M2表 示 取 投 影 矩 陣M 的 第 一 、第 二行,上標(biāo)i 表示所有現(xiàn)存數(shù)據(jù),[uiavia]T表示實(shí)際測得的圖像點(diǎn)坐標(biāo)。整個函數(shù)表示實(shí)際測得圖像點(diǎn)坐標(biāo)與空間點(diǎn)以(fx,γ,u0,fy,v0,α,β,γ,ΔX,ΔY,ΔZ)為參數(shù)進(jìn)行重投影后得到的圖像點(diǎn)坐標(biāo)之差。 以給定的相機(jī)內(nèi)參數(shù)值及由式(8)和式(11)求得的相機(jī)外參旋轉(zhuǎn)角 α,β,γ 和平移距離ΔX,ΔY,ΔZ 為初值,再次利用LM 非線性算法對標(biāo)定結(jié)果進(jìn)行全局求解,可以得到優(yōu)化后的相機(jī)外參數(shù)值,進(jìn)而由式(2)和式(3)得到相機(jī)的外參旋轉(zhuǎn)矩陣RA和平移矩陣tA。同理可求出相機(jī)B的外參旋轉(zhuǎn)矩陣RB和平移矩陣tB。因此,按照先平移后旋轉(zhuǎn)定義的相機(jī)B 坐標(biāo)系到相機(jī)A 坐標(biāo)系的轉(zhuǎn)換矩陣為:
圖3 所示為雙目相機(jī)標(biāo)定系統(tǒng)示意圖,目標(biāo)點(diǎn)A,B(如圖4)的目標(biāo)坐標(biāo)系坐標(biāo)由兩臺TM5100A 徠卡經(jīng)緯儀通過交匯測量得到,點(diǎn)A,B 的圖像坐標(biāo)由光學(xué)測量裝置A,B 進(jìn)行測量,光學(xué)測量裝置如圖5 所示。光學(xué)測量裝置包含有光學(xué)測量相機(jī)A,B 和兩個激光測距儀,相機(jī)與激光測距儀的位置關(guān)系已知。 兩光學(xué)相機(jī)采用MT9V032CMOS 數(shù)字圖像傳感器,像素尺寸為6 μm×6 μm,分辨率為400×400,相機(jī)焦距為35 mm。通過多次移動底部的移動部件,得到多組目標(biāo)點(diǎn)坐標(biāo)。然后對直接利用DLT 算法求解相機(jī)A、相機(jī)B 和公共目標(biāo)坐標(biāo)系之間的參數(shù)矩陣,進(jìn)而得到兩相機(jī)之間的位姿關(guān)系,與利用本文提出的方法對相機(jī)A、相機(jī)B 的外參數(shù)進(jìn)行優(yōu)化后得到的兩相機(jī)的位姿關(guān)系進(jìn)行對比,結(jié)果如表1 所示。
圖3 雙目相機(jī)位姿標(biāo)定系統(tǒng)Fig. 3 Pose calibration system of binocular camera
圖4 合作目標(biāo)點(diǎn)Fig. 4 Cooperation targets
圖5 光學(xué)測量裝置Fig. 5 Optical measuring device
為了驗(yàn)證標(biāo)定結(jié)果的準(zhǔn)確性,利用求得的兩相機(jī)之間的位姿參數(shù),將相機(jī)B 坐標(biāo)系下的目標(biāo)點(diǎn)轉(zhuǎn)換到相機(jī)A 坐標(biāo)系下,計(jì)算兩點(diǎn)之間的距離dAB,并與經(jīng)緯儀測得的兩點(diǎn)之間的距離tAB進(jìn)行對比,將經(jīng)緯儀測得的坐標(biāo)值看作真值,利用公離誤差的均方值,結(jié)果如表2 所示。由于實(shí)際地面不平整和底部部件微小變形的影響,實(shí)際測得兩目標(biāo)點(diǎn)之間的距離tAB有所不同。為了保證結(jié)果的準(zhǔn)確性,在測量范圍內(nèi)選取10 組數(shù)據(jù)對相機(jī)A ,B 進(jìn)行標(biāo)定,得到兩相機(jī)之間的位姿關(guān)系,之后選取另外10 組數(shù)據(jù)計(jì)算兩目標(biāo)點(diǎn)之間的距離與真值的誤差。 從表2 可以看出,本文標(biāo)定算法對兩相機(jī)之間位姿關(guān)系標(biāo)定的準(zhǔn)確性優(yōu)于DLT 方法,在系統(tǒng)測量范圍700~1 300 mm 內(nèi)隨機(jī)選取10 組數(shù)據(jù),求得目標(biāo)點(diǎn)之間距離的均方差<0. 2 mm,滿足實(shí)際應(yīng)用需求。
表2 由兩相機(jī)位姿關(guān)系求得的目標(biāo)點(diǎn)A,B 距離的均方差Tab. 2 Mean square error of the distance between target points A and B obtained from the pose relationship of the two cameras (mm)
表1 DLT 方法與本文標(biāo)定方法結(jié)果對比Tab. 1 Comparison of DLT method and our calibration method
本文針對相機(jī)標(biāo)定過程中目標(biāo)特征點(diǎn)較少的問題,通過多次移動目標(biāo)點(diǎn)得到多組數(shù)據(jù)進(jìn)行標(biāo)定,為雙目相機(jī)位姿關(guān)系的標(biāo)定提供了新思路。針對實(shí)際系統(tǒng)中兩目標(biāo)點(diǎn)移動范圍有限導(dǎo)致的傳統(tǒng)DLT 方法精度較低的問題,增加激光測距數(shù)據(jù)對標(biāo)定結(jié)果進(jìn)行優(yōu)化,選取由兩相機(jī)位姿關(guān)系求得的兩個目標(biāo)點(diǎn)之間的距離作為標(biāo)定精度評價(jià)指標(biāo),以經(jīng)緯儀測得的兩目標(biāo)點(diǎn)距離作為真值。實(shí)驗(yàn)結(jié)果表明,當(dāng)相機(jī)與目標(biāo)點(diǎn)之間的距離為700~1 300 mm 時,由本文方法求得的兩目標(biāo)點(diǎn)之間距離的均方差<0. 2 mm,證明本文提出的非公共視場雙目相機(jī)位姿標(biāo)定方法是有效的。