摘要:由于加工誤差和裝配誤差的存在,攝像機光學系統與理想的小孔透視模型有一定的差別,致使物體點在攝像機平面上實際所成的像與理想成像之間存在不同程度的非線性光學畸變。為了提高圖像檢測、模式匹配等定量分析的準確性,必須對這一類畸變進行修正。該文以針孔攝像機模型為基礎,綜合考慮了攝像機的透鏡畸變效應,并借助于開放計算機視覺函數庫OPENCV,實現了一種基于張正友攝像機標定的改進算法。利用檢測得到的角點,獲得物體的世界坐標和圖像坐標。結果證明該文中的標定算法實現簡單,精度高,穩定性好。
關鍵詞:攝像機標定;非線性畸變;針孔模型;角點檢測;坐標
中圖分類號:TP751文獻標識碼:A文章編號:1009-3044(2008)34-1728-02
A Method of Nonlinear Calibration of Camera
WANG Chun-lei, ZHU Jin
(Department of Information and Electronics Engineering, Tongji University, Shanghai 201804)
Abstract: Because of having processing error and assembling error the difference exists in the model of the camera optical system and pinhole model, which results to nonlinear distortion between real image and ideal image to some extent. To improve the accuracy of such quantitative analysis as image measuring and pattern matching, it must be corrected. Based on the pinhole model and considered on the nonlinear distortion, this paper presented a method, which was based on the improving method of Zhang on the platform of OPENCV. On the basis of the detecting corners, the world points and image points can be got. The result proved the method is easy and accurate.
Key words: camera calibration; nonlinear distortion; pinhole model; detecting corners; axis
1 引言
在圖像測量過程以及機器視覺應用中,為確定空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關系,必須建立攝像機成像的幾何模型,這些幾何模型參數就是攝像機參數。在大多數條件下這些參數必須通過實驗與計算才能得到,這個求解參數的過程就稱之為攝像機標定。無論是在圖像測量或者機器視覺應用中,攝像機參數的標定都是非常關鍵的環節,其標定結果的精度及算法的穩定性直接影響攝像機工作產生結果的準確性[1]。因此,做好攝像機標定是做好后續工作的前提,提高標定精度是科研工作的重點所在。
目前已提出了很多標定方法,按其求解算法大致可分為線性法、非線性法、兩步法。傳統的線性法采用最小二乘法求解線性方程組獲得轉換參數,算法速度快但沒考慮攝像機鏡頭的畸變,準確度欠佳[2]。非線性攝像機標定問題的基本思想是首先測量一組基準控制點在圖像平面上的投影,計算它們與實際測量位置之間的偏移量,將這些偏移量代入攝像機模型方程中,利用非線性優化算法求解出攝像機參數。本文分兩步實現非線性標定。第一步是基于針孔模型,采用線性方法直接得到大部分外部參數和一些主要內部參數的初始逼近值。第二步是基于非線性畸變模型,在第一步的基礎上利用非線性優化算法得到余下參數在最小二乘意義下的優化解。
2 攝像機標定原理
2.1 考慮畸變的攝像機模型
攝像機的成像過程可以通過一個數學模型來大致地模擬,通過它可以獲得被測物體與圖像之間的幾何關系。本文采用的成像模型基礎是小孔透視模型。由于實際的成像過程是一個復雜的光學過程,而小孔透視模型是理想的線性模型,它并不考慮鏡頭畸變的影響,所以難以精確地描述這一光學過程。為了使模型更客觀地反映數碼相機的成像過程,需要對小孔透視模型進行必要的修正,引入反映畸變影響的修正系數[3]。
設(Xw,Yw,Zw)為世界坐標系中物體點P的三維坐標;(X,Y,Z)是P在攝像機坐標系中的三維坐標;(Xp,Yp)是理想Pin-hole攝像機模型下P點的圖像坐標;(Xd, Yd)為P點的實際圖像坐標,d為透鏡畸變;(u,v)是P點的計算機圖像(幀存)坐標,以象素為單位;(UO,VO)為計算機圖像(幀存)中心坐標,以象素為單位。攝像機模型的建立就是從(Xw,Yw,Zw)到(u,v)的過程,其變換步驟為:
1) 世界坐標系(Xw, Yw, Zw)到攝像機坐標系(X,Y,Z)的變換。
■ (1)
式中:R為旋轉正交矩陣,T為平移矩陣。
■(2)
2) 攝像機坐標(X, Y, Z)到圖像平面坐標(Xp, Yp)的理想投影變換。
■(3)
3) 從理想平面坐標(Xp, Yp)到實際平面坐標(Xd, Yd)的變換(考慮了透鏡畸變)。
■(4)
式中:r2=x2+y2; kl,k2為徑向畸變系數;k3, k4為切向畸變系數。
4) 從Pd(Xd, Yd)實際平面坐標到到計算機(幀存)坐標(u, v)的變換。
■ (5)
其中:■ (6)
各參數的意義:f為攝像機的有效焦距;sx為比例因子,用來適應在計算機圖像(幀存)水平方向(X方向)上取樣帶來的種種不確定因素;dpx為計算機圖像在水平方向上相鄰兩象素之間的有效距離;dpy為計算機圖像在垂直方向上相鄰兩象素之間的有效距離[1]。
2.2 特征點提取
攝像機標定在機器視覺中有著重要的應用,如三維重建以及機器人空間位置的確定等。常用的標定方法都需要從拍攝的標定模板圖像中選取特征對應點。數據的測量值往往會因為實際操作中這些對應點選取的不精確性而引入較大的誤差。如果僅用手工的方法來選擇特征點,不僅麻煩,而且手工選取的特征點是不能保證數據的精確性的。
本文使用棋盤格的圖片作為標定的模版,獲取角點的圖像坐標,而且很容易得到角點的世界坐標。具體步驟如下:1) 對采集到的圖片進行灰度化;2) 對灰度圖做一個像素的腐蝕濾波,分離連接點;3) 用平均值二值化方法,對圖像做二值化處理;4) 對二值化圖像進行邊界搜索,連接,查找閉合曲線,記錄角點;5) 查找四邊形;6) 利用臨近點,計算棋盤格標定物成像的角點。
2.3 攝像機標定過程
攝像機參數分內參數和外參數,其中外參數4個、內參數6個。外部的6個參數是相應于R中的3個獨立參數(3個歐拉角)和相應于平移向量的3個分量Tx, Ty, Tz;內部的4個參數是(fx,fy,UO,VO)。還需求解的有形變參數(k1,k2,k3,k4)。
整個標定過程可以分為兩步:第一步是不考慮透鏡畸變的影響,在小孔透視模型基礎上直接利用線性方程組求解出攝像機參數的內參數和外參數初值。為保證精確性,應多建立線性方程,利用最小二乘法求解參數。由于沒有考慮畸變,得到的參數并不準確。第二步考慮畸變的影響,建立數據擬合目標函數如下式[4]。
min F=■(Ui-ui)■+■(Vi-vi)■(7)
其中(Ui,vi)是從待標定圖像中拾取N個目標點的圖像坐標,(ui,vi)是對應的實際物體的N個三維點通過上面得到的內外參數計算出來的圖像坐標。從結果可以看出,目標函數是由一組平方和組成,若得到的目標函數值越小,則表示數據擬合的越好,求得的參數越精確。迭代的初值有第一步求得,其中的形變參數初值可設為0。
2.4 算法實現
在上述理論的指導下,在算法設計過程中采用了以下思路:由于系統要得到標定物圖像上特征點的坐標,如果采用手工采集圖像坐標的方式,則精度很難得到保證,所以我們采用棋盤格圖片作為模版,利用角點檢測技術,確定棋盤格圖像上的內角點的圖像坐標,而且我們很容易得到相應點的世界坐標(其中我們規定Z=0)[5]。這樣不僅保證了圖像點坐標的精度,也提高了最終標定結果的精度。算法實現步驟:
1) 采集圖像資源。我們選擇黑白棋盤為平面模板,用CCD攝像機對棋盤拍攝3張以上不同照片。數量越多,結果越準確。選取其中幾張照片作為待標定的一組圖像。
2) 檢測圖像中的內角點。首先對圖像根據上面的所描述的方法進行預處理,然后可以得到模版中角點的像素級坐標。
3) 對所選取的圖像進行攝像機標定。輸人特征角點的世界坐標后,根據我們研究得到的攝像機坐標模型,計算后得到該攝像機的內外參數以及徑向畸變參數和切向畸變參數。
3 結論
實驗中采集640*480的圖片10張,對這些圖片做標定后得到的結果如圖1、圖2、表1。 (下轉第1732頁)
(上接第1729頁)
參考文獻:
[1] 馬頌德,張正友.計算機視覺——計算理論與算法基礎[M].北京:科學出版社,1998.
[2] 邱茂林,馬頌德,李毅.計算機視覺中攝像機定標綜述[J].自動化學報,2000,26(1):43-55.
[3] 楊必武,郭曉松.攝像機鏡頭非線性畸變校正方法綜述[J].中國圖像圖形學報,2005,10(3):270-274.
[4] 王暉.一種考慮透鏡畸變的高效攝像機標定方法[J].武漢科技學院學報,2007,20(11):36-39.
[5] Zhang Z Y. A flexible new technique for camera calibration[J]. IEEE Trans. Pattern Analysis and Machine Intelligence, 2000,22(11):1330-1334.