蒯楊柳,文貢堅,回丙偉,邱少華
(國防科學技術大學ATR重點實驗室,湖南長沙410073)
利用多個小棋盤的大視場相機標定方法
蒯楊柳,文貢堅,回丙偉,邱少華
(國防科學技術大學ATR重點實驗室,湖南長沙410073)
為了實現高精度的相機標定,一般要求標定物的尺寸能夠布滿整個相機視場,而大的標定物不但制作、移動過程復雜,而且靈活性差的同時還會遮擋場景中的有用信息。本文提出了一種基于多個小棋盤的大視場相機標定方法,能兼顧相機標定的精度和靈活性。首先在場景靠近邊緣的4個角處各放一個小棋盤(擺放姿態不限),采用待標定的相機從不同角度多次拍攝場景(不少于3次);然后將4個棋盤經過旋轉和平移變換移到以左上角棋盤為基準的平面上構成一個大棋盤;最后建立大棋盤上所有角點的重投影誤差函數,以左上角小棋盤的多幅圖像的標定結果作為初值,迭代優化誤差函數得到標定結果的最終解。模擬和真實數據試驗結果表明該方法是可行的,且有較高的精度和靈活性。
大場景;相機標定;小棋盤;優化
相機標定是從二維圖像獲取三維信息的過程中最關鍵的步驟,在計算機視覺導航、虛擬現實、三維重建等領域有著十分廣泛的應用[1-2]。現有的相機標定方法中,基于標定物的相機標定法使用結構已知的標定物,通過建立標定物上坐標已知的點與其圖像點之間的對應關系來求解相機的內外參數[3-4];相機自標定法是利用多幅圖像上特征點之間的對應關系進行標定,標定過程只利用了相機內參數間的約束,與場景和攝像機的運動方式無關[5]。第一種方法標定精度高但是標定過程始終需要標定物,靈活性差,第二種方法操作方便簡單但是精度不高[6]。
在基于標定物的標定方法中,張正友的棋盤標定法[4]以其操作簡單方便、標定精度高的特點得到了廣泛的應用。但是針對大視場相機的標定,若要得到較高的相機標定精度,需要在場景中放置較大的棋盤,棋盤越大,越能真實反映場景與成像面間的投影關系,但是棋盤過大不僅制作、移動過程比較復雜,同時會遮擋場景中的有用信息。為了解決大棋盤標定存在的問題,本文提出了一種在場景中放置多個小棋盤并將其轉換為一個整體的大棋盤,再利用構建的大棋盤對相機進行標定的方法,同時兼顧了相機標定的精度和靈活性。
1.相機的成像模型
理想的成像模型是小孔模型,描述了三維空間中的一點M=[X Y Z]T與其投影點m=[x y]T之間的關系。設M和m的齊次坐標分別為= [X Y Z 1]T和=[x y 1]T。在齊次坐標下,三維點M和投影點m之間的關系可以表示為

在真實情況下,相機拍攝得到的圖像總會存在一定程度的失真,因此引入了非線性模型[9]。真實像點坐標與理想像點坐標的關系滿足

式中,(xd,yd)為理想情況下的圖像點坐標;(xu,yu)為考慮畸變情況下的圖像點坐標;k1、k2為徑向畸變系數。因此相機標定算法的主要目的是求解出k1、k2、fu、fv、u0、v06個相機參數。
2.由多個小棋盤構建整體大棋盤的原理
設在相機大視場中擺放有n個小棋盤,將小棋盤從左到右、從上到下依次編號為1,2,…,n,如圖1所示。對每一個小棋盤,以棋盤的左上角為坐標原點,以棋盤所在的平面為xoy平面建立右手坐標系,分別記為O-XiYiZi(i=1,2,…,n)。

圖1
根據每個棋盤上角點的空間點坐標和對應的像素點坐標(不少于4對)可以求得每個小棋盤平面和相機成像平面的單應性矩陣,進而得到每個小棋盤平面相對于成像平面的旋轉和平移向量,記為Ri、Ti(i=1,2,…,n)。以棋盤1所在的平面為基準平面,則棋盤i相對于基準平面的旋轉和平移向量Ri1、Ti1(i=2,…,n)可以表示為假設棋盤i(i=2,…,n)上的特征點在O-XiYiZi坐標系的坐標為Mi,則其在O-X1Y1Z1坐標下的坐標Mi1可以表示為


采用上述步驟可以將其他小棋盤上的所有特征點都轉換到基準平面上,從而將多個小棋盤構成一個整體的大棋盤。
標定時在大場景中擺放n個小棋盤,使用待標定的相機從不同角度拍攝場景得到C幅圖像。本文提出的標定算法主要包括兩個步驟:首先利用張正友的方法[4]標定基準棋盤得到相機內參數的初值;然后使用n個小棋盤構建的大棋盤標定相機得到最終解。
1.相機內參數初值的獲取
設基準棋盤上任一點M經矩陣P投影得到圖像點m,已知棋盤上的所有點滿足Z=0,令M= [x y 0 1]T,m=[u v 1]T,則有

式中,ri(i=1,2,3)為旋轉矩陣R的第i列;H為單應性矩陣。假設H=[h1h2h3],其中hi(i=1,2,3)表示單應性矩陣H的第i列,則R、T可以表示為



當拍攝圖片數不少于3時,可以線性求解出向量w,將W進行Cholesky分解得到相機內參數為

2.誤差函數的構造與優化求解
假設第m幅圖像上第n個小棋盤上第p個角點的空間點坐標為Xmnp,將其轉換到大棋盤平面后投影產生的圖像點坐標xmnp可以表示為

式中,Rm1、Tm1表示第m幅圖像上基準棋盤平面相對于成像平面的旋轉矩陣和平移向量;Rnm、Tnm表示第m幅圖像上第n個小棋盤相對于基準棋盤的旋轉矩陣和平移向量。假設為經過角點檢測算法得到的第m幅圖像上第n個小棋盤上第p個角點的像素點坐標,建立拍攝得到的多幅圖像上所有角點的重投影誤差函數為式中,C為拍攝的圖片數;N為每幅圖片上的小棋盤數目;M為每個小棋盤上的角點個數。優化函數中包含的變量有k1、k2、fu、fv、u0、v06個相機內參數(不變)、拍每張照片時基準棋盤相對于成像平面的旋轉平移向量、多個小棋盤相對于基準棋盤的旋轉和平移向量(不變),共計6+6×C+6×(N-1)=6C+ 6N個待優化參數。而由式(3)和式(6)可知,當相機內參數向真值方向優化時,所有的旋轉和平移向量也越接近真值,因此優化時選擇k1、k2、fu、fv、u0、v0作為優化參數,優化方法采用模式搜索法(Hook)[10]。

在仿真試驗中主要測試了高斯噪聲大小、場景中擺放的棋盤個數、棋盤之間的距離、每個棋盤的大小和每個棋盤上的角點數等5個因素對相機標定結果的影響。試驗時相機內參數的設置見表1,相機外參數的設置見表2,其中,[?β γ]T表示旋轉向量;[t1t2t3]T表示平移向量。

表1 仿真試驗設定的相機內參數值

表2 3次拍攝設定的相機外參數值
1.高斯噪聲大小對標定結果的影響
在場景中放置4個相同的小棋盤,棋盤大小為200 mm×200 mm,角點數為3×3,棋盤間的距離保持在200 mm不變。在生成的圖像點坐標中加入均值為0、方差為σ的高斯白噪聲,將σ從0.1逐漸增加到1.0像素,每次增加0.1像素,在每一種噪聲水平下進行10次試驗,將結果的均值作為最終解。fu、fv、u0、v0的相對誤差和k1、k2的絕對誤差隨噪聲σ的變化趨勢如圖2所示。從圖中的變化趨勢可以看出相機標定結果的誤差會隨著噪聲方差的增加而增加,其中fu、fv、u0、v0在噪聲水平達到1.0時標定相對誤差在10%以內,而k1、k2對噪聲相對較敏感。

圖2
2.棋盤個數對標定結果的影響
設置每個棋盤大小為100 mm×100 mm,角點數為3×3,將棋盤的個數從1依次增加到5,每次增加1。在生成的圖像點坐標中加入均值為0、方差為0.5的高斯白噪聲來模擬真實試驗場景。在每種棋盤個數參數下進行10次試驗,將結果的平均值作為最終解。計算fu、fv、u0、v0的相對誤差和k1、k2的絕對誤差隨棋盤個數的變化趨勢如圖3所示。從中可以看出隨著棋盤個數的增加,相機參數的標定精度會提高,當棋盤數增加到4以后標定精度基本保持不變。
3.棋盤間的距離對標定結果的影響
在場景中放置4個相同的小棋盤,棋盤大小為100 mm×100 mm,角點數為3×3,將棋盤間的距離d 從100 mm依次增加到600 mm,每次增加100 mm。采用上述中加噪聲和多次試驗的方法標定得到相機的參數。計算fu、fv、u0、v0的相對誤差和k1、k2的絕對誤差隨棋盤間距離d的變化趨勢如圖4所示。從中可以看出,隨著棋盤間距離d的增加,相機參數的標定精度都會提高,但當棋盤距離增加到500 mm之后,相機參數的標定精度基本保持不變。

圖3

圖4
4.每個棋盤的大小對標定結果的影響
在場景中放置4個相同的小棋盤,保持4個棋盤轉換生成的大棋盤覆蓋場景的面積不變,棋盤上的角點數為3×3,將每個棋盤的邊長L從100 mm依次增加到700 mm,每次增加100 mm,同樣采用上述中加噪聲和多次試驗的方法標定得到相機的參數。計算fu、fv、u0、v0的相對誤差和k1、k2的絕對誤差L的變化趨勢如圖5所示。從中可以看出隨著L的增加,相機參數的標定精度會提高,這是因為棋盤越大,標定得到的相機內參數初值越好,優化后的標定結果也越好。
5.每個棋盤上的角點數對標定結果的影響
在場景中放置4個相同的小棋盤,每個棋盤的大小為200 mm×200 mm,棋盤之間的距離保持在200 mm不變,將每個棋盤的角點數從2×2依次增加到7×7,每次在棋盤的每條邊上增加1個角點。同樣采用上述中加噪聲和多次試驗的方法標定得到相機的參數。計算fu、fv、u0、v0的相對誤差和k1、k2的絕對誤差隨每條邊角點數N的變化趨勢如圖6所示。從中可以看出,每條邊的角點數N由2增加到3時,標定的精度顯著提高,而增加到3以后N的變化對棋盤標定結果沒有明顯的影響。
根據仿真試驗結果可知:①大視場中擺放的棋盤個數的理想值是4;②相機標定精度會隨著棋盤和棋盤之間距離的增大而增大;③每個棋盤上角點個數(3以上)的增加不會明顯影響標定結果的精度。
真實試驗時設計了3種不同類型的棋盤:一個1 m×1 m的大棋盤、4個50 cm×50 cm的小棋盤和4個30 cm×30 cm的小棋盤,棋盤上的角點數都是8×8。以大棋盤標定的結果作為參考值,通過對比兩種類型的小棋盤在優化前后的試驗結果和對比優化后的結果與參考值的差別來驗證算法的性能。試驗采用Canon EOS 650D相機,分辨率為5184×3456像素,依次在場景中擺放3種類型的棋盤,如圖7所示。分別使用相機從不同角度拍攝5張圖片,拍攝的過程中保持相機的焦距不變。

圖6

圖7
采用大棋盤和兩種小棋盤分別標定相機,得到的標定結果見表3,分析可知:①優化后的標定結果普遍比優化前好,這是由于提出的方法增大了標定物覆蓋場景的面積;②50 cm×50 cm小棋盤的標定結果比30 cm×30 cm的小棋盤好,能達到參考值的標定精度,這是由于50 cm能夠提供較高精度的初值;③兩種不同類型的小棋盤fu、fv、u0、v0的標定精度都很高,而k1、k2的標定精度30 cm×30 cm的小棋盤較差,這說明了k1、k2的標定精度對初值要求高。

表3 不同類型的棋盤標定結果
本文提出了一種基于多個小棋盤的大視場相機標定方法,通過多個小棋盤構建一個整體的大棋盤標定相機,兼顧了相機標定的精度和靈活性。試驗結果表明了算法的有效性,不足之處是本文提出的算法中畸變系數的標定對初值的要求高,提高畸變系數的標定精度將是下一步研究的重點。
[1] BROWN D C.Close-range Camera Calibration Photogrammetric Engineering[J].Engineering and Remote Sensing,1971,37(8):855-866.
[2] FAIG W.Calibration of Close Range Photogrammetry System:MathematicalFormulationPhotogrammetric [J].Engineering and Remote Sensing,1975,41(12): 1479-1485.
[3] TSAI R Y.An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision[C]∥Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.San Francisco:IEEE,1986.
[4] ZHANG Z Y.A Flexible New Technique for Camera Calibration[J].IEEE Transactions on Pattern Analysis and Machine Automation,2000,3(4):323-344.
[5] STURM P.A Case against Kruppa’s Equations for Camera Self Calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(10): 1199-1204.
[6] SONG L M,WU W F,GUO J R.Survey on Camera Calibration Technique[C]∥Fifth International Conference on Intelligent Human Machine Systems and Cybernetics.Hangzhou:IEEE,2013.
[7] LIU B X,LI S Z.A New Easy Fast Camera Self-calibration Technique[J].Computer Engineering&Science,2011,33(1):88-93.
[8] LIU P,JIA Y D.Vanishing Points Based Camera Calibration[J].Journal of Image and Graphics,2003,8 (A):134-138.
[9] GARY B,ADRIAN K.學習OpenCV中文版[M].北京:清華大學出版社,2009.
[10] 謝政,李建平,陳摯.非線性最優化理論與方法[M].北京:高等教育出版社,2009.
Large-scale Scene Calibration Method Utilizing Multiple Chessboards
KUAI Yangliu,WEN Gongjian,HUI Bingwei,QIU Shaohua
10.13474/j.cnki.11-2246. 2016.0220.
P23
B
0494-0911(2016)07-0039-05
2015-06-18
蒯楊柳(1990—),女,研究方向為攝影測量。E-mail:kuaiyangliu@126.com
引文格式:蒯楊柳,文貢堅,回丙偉,等.利用多個小棋盤的大視場相機標定方法[J].測繪通報,2016(7):39-43.