謝莉余勝
(湖南人文科技學(xué)院物理與信息工程系 湖南 婁底 417000)
由攝像機拍攝的圖像信息出發(fā)計算三維物體的幾何信息,實現(xiàn)物體的三維結(jié)構(gòu)重建是計算機視覺的基本任務(wù)之一[1]。攝像機標(biāo)定是指建立空間物體表面某點三維幾何位置與圖像中對應(yīng)點位置之間的關(guān)系。攝像機標(biāo)定問題涉及到兩組參數(shù):用于剛體變換時,相對于世界坐標(biāo)系的攝像機坐標(biāo)的三維位置和方向的外部參數(shù);攝像機自身所擁有的內(nèi)部參數(shù)是指攝像機的內(nèi)部光學(xué)和幾何特性,包括圖像中心、焦距、鏡頭畸變等。
通過攝像機獲取的圖像在計算機中是以數(shù)組形式存儲,數(shù)組中的每個元素(像素)值稱為圖像點的亮度。如圖1所示,在圖像中定義坐標(biāo)系u-v,每一個像素點均有唯一坐標(biāo)u-v來表示像素所在的行數(shù)和列數(shù)。即u-v是以像素為單位的圖像坐標(biāo)系坐標(biāo)。由于直角坐標(biāo)系u-v只表示了數(shù)字圖像中像素所處的行數(shù)和列數(shù),而沒有用物理單位表示出該像素在圖像中的位置。因此,需要再建立以物理單位(如毫米)表示的坐標(biāo)系x-y,(x,y)表示以毫米為單位的圖像坐標(biāo)系的坐標(biāo)。
在x-y坐標(biāo)系中,原點O1定義在攝像機光軸與圖像平面的交點處,稱為圖像平面的主點(principal point),理論上它應(yīng)在圖像的中心位置,但是由于制作工藝方面的原因,一般也會有些偏差。設(shè)O1在u-v坐標(biāo)系中的坐標(biāo)為(u0,v0),每一個像素在x軸和y軸方向上的物理尺寸大小為dx,dy,則在圖像中每一個像素在兩個坐標(biāo)系下的坐標(biāo)有以下關(guān)系:
其中γ′為斜度因子,表示u軸和v軸的不垂直程度。理想情況下u軸和v軸相互垂直,即γ′等于0。
圖2所示為攝像機成像的幾何關(guān)系。其中點O稱為攝像機光心,Xc軸和Yc軸分別與圖像的x軸與y軸平行,Zc軸為攝像機的光軸,它與成像平面垂直。光軸和圖像平面的交點,即為圖像坐標(biāo)系的原點。由光心O與Xc,Yc和Zc軸組成的坐標(biāo)系稱為攝像機坐標(biāo)系。攝像機焦距為OO1。
在我們所處的真實環(huán)境中,還需選擇一個參考坐標(biāo)系來描述三維空間中物體之間的位置關(guān)系,稱之為世界坐標(biāo)系。攝像機坐標(biāo)系和世界坐標(biāo)系可以通過旋轉(zhuǎn)矩陣R和平移向量t來描述,空間點A在世界坐標(biāo)系與攝像機坐標(biāo)系下的齊次坐標(biāo)分別為:(Xw,Yw,Zw,1)T、(Xc,Yc,Zc,1)T,那么將有如下關(guān)系:
其中,R為 3×3正交旋轉(zhuǎn)矩陣;t為三維平移向量;0=(0,0,0)T;M 是 4×4 矩陣,為兩個坐標(biāo)系之間的變換矩陣。
在計算機視覺中,場景中的空間點與其在圖像中的成像點之間的相互關(guān)系,是由攝像機成像幾何模型來確定的。
針孔模型的物理意義相當(dāng)于薄透鏡成像,該模型最大的優(yōu)點是成像關(guān)系是線性的。它簡單實用,其準(zhǔn)確度高,在計算機視覺中廣泛使用。如圖2所示,三維空間中任意一點A在圖像上的成像位置可用針孔模型來近似表示,即圖像點a是空間點A和光心O的連線與成像平面的交點。由比例關(guān)系有如下關(guān)系式:
其中,(x,y)是 a 點的圖像坐標(biāo),(Xc,Yc,Zc)為空間點 A在攝像機坐標(biāo)系中的坐標(biāo)。用齊次坐標(biāo)與矩陣可表示為:
把式(1)、(2)代入式(4)中,可以得到圖像坐標(biāo)與世界坐標(biāo)之間的關(guān)系:
其中,α=f/dx,β=f/dy,γ=γ′f;H′是 3×4 矩陣, 稱為投影矩陣; H1僅由 α,β,γ,u0,v0決定,因為 α,β,γ,u0,v0僅與攝像機內(nèi)部結(jié)構(gòu)有關(guān)系,所以稱這些參數(shù)為攝像機內(nèi)部參數(shù);H2僅由攝像機相對于世界坐標(biāo)系的方位決定,稱為攝像機外部參數(shù)。
由此可知,攝像機標(biāo)定的過程也就是求解攝像機外部參數(shù)和內(nèi)部參數(shù)的過程。
圖1 圖像坐標(biāo)系
圖2 圖像坐標(biāo)系與世界坐標(biāo)系
圖3 標(biāo)定圖像圖
圖4 角點提取
Tsail[2]提出用兩步法對攝像機進行標(biāo)定,首先利用直接線性變換方法或者透視變換矩陣方法求解攝像機參數(shù),再用求得的參數(shù)作為初始值,考慮徑向畸變因素,并利用最優(yōu)化算法進一步提高標(biāo)定精度。在其標(biāo)定算法中,CCD陣列中感光元的縱向和橫向間距假定是己知的,具體數(shù)值由攝像機廠家提供。所假設(shè)的內(nèi)、外部參數(shù)分別是:(1)f等效焦距;(2)k鏡頭畸變參數(shù);(3)Sx非確定性尺度因子,它是由攝像機橫向掃描與采樣定時誤差引起的;(4)(cx,cy)圖像中心或主點;(5)R,T 三維空間坐標(biāo)系與攝像機坐標(biāo)系之問的旋轉(zhuǎn)矩陣和平移向量。但Tsai兩步法只考慮了徑向畸變,沒有考慮切向畸變,這與實際情況有較大的偏離,限制了標(biāo)定精度的進一步提高。
由于傳統(tǒng)標(biāo)定方法需要價格昂貴的高精度標(biāo)定設(shè)備,張正友在1999年提取了一種簡單、靈活、實用的攝像機標(biāo)定方法[3]。該方法只需要攝像機對一標(biāo)定板在不同方向進行拍照,攝像機與標(biāo)定板間可以自由地移動,運動的參數(shù)無需已知,對每個視點獲得圖像,提取圖像上網(wǎng)格的角點;標(biāo)定板與圖像的網(wǎng)格角點對應(yīng)關(guān)系,確定了單應(yīng)性矩陣,對每幅圖像,就可確定一個單應(yīng)性矩陣,這樣就能夠進行攝像機定標(biāo)。該算法先有一個線性解法,然后基于極大似然準(zhǔn)則對線性結(jié)果進行非線性優(yōu)化求精,而標(biāo)定板的運動方式不必知道。通過對2D信息的提取計算來得到最終的結(jié)果。
本文所標(biāo)定相機型號為三星S860,選用7×10棋盤格式的標(biāo)定紙,每一方格的寬度為23mm,用相機從不同角度獲取12幅圖像(653×490)。本文采用文獻[4]提供的MATLAB工具箱實現(xiàn)張正友標(biāo)定算法。圖3顯示了拍攝的12幅棋盤圖像,圖4為其中一幅標(biāo)定圖像的角點提取情況。
實驗結(jié)果所得到的攝像機內(nèi)部參數(shù)為:焦距:[219.06267,229.50868],主點:[326.00000,244.50000]。
畸變:[-1.94496,1.04910,-0.03290,-0.20754,0.00000]±[0.49090,2.75113,0.01008,0.09371,0.00000]。
斜度因子:0。
本文分析了攝像機的模型和成像原理,對比分析了張正友標(biāo)定方法和Tsai兩步法的標(biāo)定原理。通過MATLAB工具箱所做標(biāo)定實驗驗證了張正友標(biāo)定法是一種簡單、易于實現(xiàn)的且有較高精度的攝像機標(biāo)定方法。
[1]Yong J Y,Qi D Z.Camera Calibration in Binocular Stereo Vision of Moving Robot[C].The sixth world congress on intelligent control and automation,Dalian,China,2006:9257-9621.
[2]Tsai R Y.A versatile camera calibration technique for high accuracy 3D machine vision metrology using off-the-shelf TV camera and lenses[J].IEEE journal of robotics and automation,1987,3(4):323-344.
[3]Zhang Z Y.A flexible new technique for camera calibration[J].IEEE transactions on pattern analysis and machine intelligence,2000,22(11):1330-1334.
[4]Jean Y B.Camera Calibration Toolbox for Matlab [EB/OL].[2009-12-28] (2008-6-2).http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples.