林綠開,鈕倩倩,李 毅,2*
(1.溫州大學 計算機與人工智能學院,浙江 溫州 325000;2.浙江大學 計算機科學與技術學院,浙江 杭州 310058)
隨著計算機圖像處理和計算機視覺的發(fā)展,為適應不同的場景與產(chǎn)品的需求,工業(yè)界與科研工作者提出了許多相機標定技術。相機標定是機器視覺領域的重要基礎,它在空間物體表面某點的三維幾何坐標與其在二維圖像的像素點之間建立關系,從而為三維重建、機器視覺、點云配準、尺寸測量[1-4]等其它計算機視覺領域提供輔助。在某些領域,相機標定對其后續(xù)工作有著直接影響,比如在工業(yè)機器人[5]的定位中,相機標定影響著機械手對目標物體的放置精度;在目標測距[6]時,標定參數(shù)結果的準確性和穩(wěn)定性決定了系統(tǒng)測距的準確度。因此采用合適的相機標定方法對后續(xù)工作尤為關鍵。
理想針孔相機的成像原理是利用投影將三維世界坐標轉換到二維相機坐標,相機標定即通過成對的坐標映射進行求解得到相機的內外參數(shù)。常見的相機標定算法有DLT[7](Direct Linear Transform)、Tasi[8]、張正友標定[9]等算法。其中,張正友標定算法是目前使用較廣的一種標定算法,該算法僅需一個打印的平面棋盤格作為標定物,操作簡單易于維護,具有較強的魯棒性。
在張正友標定算法的基礎上,該文采用一種簡易的相機標定算法,首先通過打印的平面棋盤格獲得角點的世界坐標和圖像坐標,再進行單應矩陣求解,最后通過初步估計參數(shù),求解理想狀態(tài)下的模型,再用優(yōu)化的方法求解相機的參數(shù)。該方法簡化了張正友標定算法的參數(shù)計算。實驗表明,該算法具有較高的標定精度,魯棒性良好。
相機標定技術根據(jù)相機的成像模型劃分,可分為線性模型、非線性模型和無特定模型。其中最為常見的是針孔模型,它是簡化的理想線性模型,在數(shù)學上可以表示為三維空間到二維平面的中心投影[10],具體表現(xiàn)為空間中一條直線上的點在相機上只映射為一個點,如圖1所示。
圖1 針孔相機模型
空間中一點P(X,Y,Z)與圖像平面映射一點p(x,y)的關系可以用公式(1)表示。
(1)
其中,s為尺度因子;A為相機的內參矩陣,(u0,v0)是圖像主點;[Rt]為相機的外參矩陣,R是由三個相互垂直的單位方向矢量構成。
在理想針孔相機成像模型中,相機標定即是通過若干空間點和平面映射點求解公式(1)中參數(shù)的過程。DLT算法將內參與外參看成一個完整的3*4的矩陣,通過構建n個對應點的線性方程組進行參數(shù)求解;Tasi算法則是利用透視矩陣方法來求解內外參數(shù),再引入畸變系數(shù)對參數(shù)進行優(yōu)化。
張正友標定法在求解針孔相機模型時,選取已知大小的二維棋盤格為相機標定板。假定世界坐標系的Z軸分量為0,即規(guī)定二維棋盤格所在平面為Z=0,并規(guī)定棋盤中一點為世界坐標系的原點,則可獲得棋盤中所有內角點的世界坐標,再通過提取內角點等方法獲取其圖像坐標。所有內角點及其映射在圖像中的點,滿足Z=0時的公式(1),再由圖像的單應性[11]、旋轉矩陣單位正交性等,構造方程求解滿足約束條件的矩陣(B=A-TA-1),再由公式(2)求解相機參數(shù),最后進行非線性優(yōu)化。
(2)
在假設世界坐標系的Z軸分量為0的情況下,張正友標定法通過構建約束矩陣(B=A-TA-1)再逐個求解相機的標定參數(shù),求解過程較為復雜繁瑣。該文在實際成像規(guī)律的前提下,通過數(shù)值初步估計的方法,預估相機參數(shù)中u0,v0和λ初值,從而避免求解復雜的約束矩陣(B)而采用直接求解參數(shù)的方法,簡化了相機參數(shù)的求解過程。
由針孔相機成像模型可知,當Z=0時,令:
(3)
由公式(1)展開整理可得:
(4)
根據(jù)上式,H矩陣包含9個未知數(shù),一組對應的P(X,Y,Z)和p(x,y)可構建兩條方程,若增加約束,使H的模為1,只需獲得4組世界坐標與圖像坐標的對應,即可求出H矩陣。在真實的場景中,為了減少噪聲對求解的誤差影響,常常使用多組點進行計算,采用最小二乘解作為方程的解,并進行非線性優(yōu)化。
對于H矩陣,由公式(1),當Z=0時,假設λ=0,H可展開為:
(5)
在實際成像中,圖像主點位于圖像正中心附近,為了簡化運算,假設(u0,v0)為圖像大小的一半,再對H矩陣進行線性變換,令矩陣的第1行減去第3行乘以u0、矩陣的第2行減去第3行乘以v0,消去多余參數(shù),則有:
(6)
由旋轉矩陣的性質:方向向量互相垂直;向量模長為1。即:r1r2=0;r1=r2=1??蓸嫿ǚ匠?
(7)
為了簡便計算,設W=(f+v)/2,S=(f-v)/2,則公式(7)轉換為:
(8)
對公式(8)利用奇異值分解方法求解,即可求得相機內參矩陣。求得內參后根據(jù)公式(6)可分離出外參矩陣。同時,由于光學儀器失真[12]、配裝等誤差,相機存在畸變,該文采取張正友標定中的畸變求解方法對畸變參數(shù)進行求解。
LM(Levenberg-Marquardt)算法是牛頓法與最速下降法的結合[13]。在上述的計算中,由于簡便計算對一些參數(shù)進行了近似處理,在一定程度上增大了誤差。為了使標定結果更加精確,該文采用LM優(yōu)化算法進行迭代優(yōu)化,待優(yōu)化函數(shù)如下:
(9)
其中,PP2為重投影函數(shù)所求坐標,k1和k2為畸變系數(shù)。將優(yōu)化后的參數(shù)作為最終參數(shù)輸出,并實驗求證。
文中所用算法流程如圖2所示。
圖2 標定算法流程
為驗證文中算法的可用性,采用圖3中的標定板對相機進行實驗。其中,標定板的棋盤格大小為20 mm*20 mm,并以第一個角點為世界坐標原點,根據(jù)右手定則建立坐標系;標定相機型號為Microsoft Life Cam Studio單目相機,圖片分辨率設置為640*480。
圖3 標棋盤標定板與相機
圖4 角點提取與建立坐標系(上物距0.5 m 下物距1 m)
實驗時,首先固定標定板不動,然后從不同角度拍攝12張包含標定板所有角點信息的圖片,最后檢測角點[13]并進行參數(shù)求解和優(yōu)化,最終完成相機標定。
除算法因素外,影響相機標定精度的外部因素主要是標定板平整性、特征點數(shù)量、標定物距等[14]。為驗證文中算法的穩(wěn)定性,減少外部因素對標定精度的影響,在保持其它條件相同的前提下,分別在2種物距和5種特征點數(shù)量下進行標定實驗。同時,實驗對同一物距相同數(shù)量特征點的情況進行5組標定實驗,以減少偶然誤差,共進行50組實驗。
由于無法獲得標定相機的真實參數(shù),故無法根據(jù)所求參數(shù)的數(shù)值大小對標定算法的可用性進行評判。同時,像素的真實坐標和重投影坐標較易獲取,因此該文采用重投影誤差作為算法的評價指標。重投影誤差是指真實成像位置與標定參數(shù)預測成像位置之間的偏差,它在一定程度上反映了標定參數(shù)的準確度,重投影誤差越小,標定算法越準確。重投影誤差[15]小于一個像素時可滿足多數(shù)應用需求。重投影誤差如公式(10)所示:
(10)
其中,n為像素點個數(shù),(xi,yi)為像素點真實坐標,(ai,bi)為像素點預測坐標。
根據(jù)上述公式,50組標定實驗的重投影誤差結果如表1和表2所示。為了更直觀地分析,根據(jù)數(shù)據(jù)繪制了圖5。
表1 物距0.5 m下重投影誤差 像素
表2 物距1 m下重投影誤差 像素
圖5 重投影誤差分析
結合數(shù)據(jù)表和分析圖可以看出,對于實驗的50組數(shù)據(jù),均滿足重投影誤差在一個像素點以內的要求,誤差基本保持在0.1個像素附近,表明文中算法能夠較好地完成標定任務,可以滿足大部分應用的需求。同時可以從分析圖中直觀地看出,隨著特征點的增加,重投影誤差呈現(xiàn)較小幅度的下降趨勢。并且,不難得出,相機標定精度與標定物距有較大的關系,在一定范圍內,針孔相機模型在較遠距離標定時結果較為精確。
為進一步驗證算法的實用性,實驗在其它條件不變的前提下,對物距1 m以內的情況使用張正友標定法和Halcon[16]分別各做了25組標定實驗,并與文中算法進行對比。其中,對比實驗1采用棋盤格標定板,對比實驗2采用圓心標定板。根據(jù)實驗數(shù)據(jù),繪制了圖6和圖7。
圖6 物距1 m以下平均誤差對比實驗1
圖7 物距1 m以下平均誤差對比實驗2
通過圖6和圖7清晰地表明,物距1 m以下時,在大部分情況中,文中標定算法的平均重投影誤差更小,優(yōu)于張正友標定算法和Halcon。同時,在穩(wěn)定性上,與張正友標定算法精度隨特征點數(shù)量增加而先增后降相比,文中算法在不同特征點的標定精度上更具有穩(wěn)定性,標定誤差呈現(xiàn)隨特征點的增加而減小的趨勢。
文中在張正友標定法的基礎上,采用一種簡易優(yōu)化的相機標定參數(shù)求解算法,并進行了50組重復性標定實驗。實驗結果表明,該方法誤差保持在0.1個像素附近,波動較小,精度較高,能夠滿足大部分應用的標定需求。同時隨著標定特征點數(shù)量的增加和物距在一定范圍內的增大,該方法的精度能夠進一步提高。