阮國熙
摘要:本文首先介紹了攝像頭標記的坐標系,包括圖像法像素直角坐標系、圖像物理坐標系、物理坐標系與像素坐標系轉(zhuǎn)換、攝像機坐標系與世界坐標系等。然后介紹了幾種攝像機標定技術(shù),例如攝像頭畸變、傳統(tǒng)攝像機標定技術(shù)等。文章的最后著重討論了如何具體實現(xiàn)攝像頭簡易標定設(shè)計的方法。本文的算法是在研究Tsai的算法基礎(chǔ)上改進過來的在Tsai的方法,具體做法是:通過變換矩陣將投射的像素點非線性化,然后再通過數(shù)學(xué)模型計算出具體的解。具體來說主要包括以下方面的改進:成像模型的改進、獲取點坐標方法的改進和計算點初始值方法的改進。
關(guān)鍵詞:攝像頭 標記 設(shè)計
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1007-9416(2016)09-0094-01
1 引言
攝像機標定的主要目的,也是計算機視覺的最主要的研究方向.(Marr 1982),所謂三維重建就是指從圖像出發(fā)恢復(fù)出空間點三維坐標的過程。
攝像頭標定就是通過小孔成像與坐標系把現(xiàn)實圖像之間的距離反應(yīng)到攝像頭里面。比如一個物體距離攝像頭30厘米,那么通過方法來把這個距離真實地反映到攝像頭里面,就是小孔成像。常見是坐標系是X、Y、Z坐標系,因為這個坐標系我們接觸的比較多,理解起來也比較方便。本文的算法是在研究Tsai的算法基礎(chǔ)上改進過來的在Tsai的方法,實際上進行計算機幀存象素坐標和圖像實際坐標轉(zhuǎn)換使用的是dx和dy,問題就出在dx=dx*Ncx/Nfx;dy=dy(dx,dy分別為X,Y方向上的象素間距)。這里的Ncx為攝像機每行捕捉到的象素(由CCD攝像機參數(shù)決定),Nfx為計算機每行采集到的象素數(shù)。Tsai算法的最大特點就是比較準確,相對來說產(chǎn)生畸變的概率會比較小。
本文改進的做法是:通過變換矩陣將投射的像素點非線性化,然后再通過數(shù)學(xué)模型計算出具體的解。具體來說主要包括以下方面的改進:成像模型的改進、獲取點坐標方法的改進和計算點初始值方法的改進。
2 攝像頭標定的原理
2.1 基本呈像原理
攝像機標定是通過建立攝像機成像的幾何模型,確定空間物體表面的三維幾何位置與其對應(yīng)的圖像中的點之間的關(guān)系,最終得到相機參數(shù)。 攝像機標定方法分為傳統(tǒng)攝像機標定、主動視覺攝像機標定和攝像機自標定三種方法。結(jié)合實際應(yīng)用精度要求及操作復(fù)雜度等,目前最常用的畸變校正算法為模板法,其原理是:利用一個事先做好的模板(通常為黑白棋盤格),然后對模板進行拍攝,通過對拍攝前后提取的對應(yīng)的特征點,根據(jù)事先建立的成像模型,通過數(shù)學(xué)方法對參數(shù)進行求解,再將求得的參數(shù)恢復(fù)沒有畸變的源圖像。沒有誤差的狀態(tài)下,現(xiàn)實中的圖像會通過一個小孔來投射到攝像頭中,所有投射過來的點圍繞中心點O均勻分布開來。這個和小孔成像的原理是一樣的。那么通過什么方法來描述世界坐標系與現(xiàn)實坐標系的關(guān)系?本文所采取的方法是針孔模型。具體來說就是把現(xiàn)實中的圖像通過該模型投影到攝像頭內(nèi)。假設(shè)該點為X點,投影到攝像頭內(nèi)的是Y點,X與Y的關(guān)系可以通過一個三階矩陣來實現(xiàn)。對應(yīng)于坐標系有四個參數(shù),分別是x1,x2,x3,x4,在確認現(xiàn)實中與攝像頭的參數(shù)后利用這個三階矩陣既投影矩陣把參數(shù)反應(yīng)到攝像頭內(nèi),這時攝像頭就可以計算出相應(yīng)的圖像坐標,然后把坐標標記出來。 簡單來講攝像頭標定就是通過小孔成像與坐標系把現(xiàn)實圖像之間的距離反應(yīng)到攝像頭里面。比如一個物體距離攝像頭30厘米,那么通過方法來把這個距離真實地反映到攝像頭里面,就是小孔成像。常見是坐標系是X、Y、Z坐標系,因為這個坐標系我們接觸的比較多,理解起來也比較方便。
2.2 OPENCV圖像處理技術(shù)
Opencv技術(shù)是在世界范圍內(nèi)流行的免費圖像處理技術(shù),這種技術(shù)是由C語言開發(fā)完成。它的原理是這樣的:先把把現(xiàn)實中的圖像采集到計算機中,然后通過具體的數(shù)學(xué)模型來對這些圖像進行處理。包括現(xiàn)實坐標系與計算機坐標系的轉(zhuǎn)化以及距離的呈現(xiàn)等。
2.3 攝像機成像設(shè)定
首先,攝像機獲取到的現(xiàn)實中的圖像是固定不變的,但是如何把這個距離如實地在攝像頭中表現(xiàn)出來,這個是需要標記的。對應(yīng)的算法就是成像算法,雖然有的算法用到的數(shù)學(xué)模型不一樣,但是其原理都是一樣的,都是實現(xiàn)對像素點的標定。
3 本文所采用的簡易的標定方法
3.1 攝像機線性模型
在理想狀態(tài)下,既光線充足,沒有誤差的狀態(tài)下,現(xiàn)實中的圖像會通過一個小孔來投射到攝像頭中,所有投射過來的點圍繞中心點O均勻分布開來。這個和小孔成像的原理是一樣的。那么通過什么方法來描述世界坐標系與現(xiàn)實坐標系的關(guān)系?本文所采取的方法是針孔模型。具體來說就是把現(xiàn)實中的圖像通過該模型投影到攝像頭內(nèi)。假設(shè)該點為X點,投影到攝像頭內(nèi)的是Y點,X與Y的關(guān)系可以通過一個三階矩陣來實現(xiàn)。對應(yīng)于坐標系有四個參數(shù),分別是x1,x2,x3,x4,在確認現(xiàn)實中與攝像頭的參數(shù)后利用這個三階矩陣既投影矩陣把參數(shù)反應(yīng)到攝像頭內(nèi),這時攝像頭就可以計算出相應(yīng)的圖像坐標,然后把坐標標記出來。
但是在現(xiàn)實狀態(tài)下,不可能滿足所有的條件,不可避免的會產(chǎn)生誤差。誤差的具體表現(xiàn)就是會使得圖像產(chǎn)生畸變,具體有以下幾種情況:徑向畸變,偏心畸變等。這其中畸變最嚴重的是偏心畸變。鏡頭畸變的產(chǎn)生是由于透鏡特性(凸透鏡匯聚光線、凹透鏡發(fā)散光線)在成像過程中對真實鏡像的一種透視失真,在鏡頭的制造過程中,如果想要消除鏡頭畸變,需要從鏡頭的光學(xué)設(shè)計入手,選取高質(zhì)量的光學(xué)玻璃來制造鏡片,然而,這些手段并不能完全消除畸變,攝像機標定技術(shù)應(yīng)運而生。因此,要把偏心畸變的情況考慮進去。
3.2 改進的Tsai算法
本文的算法是在研究Tsai的算法基礎(chǔ)上改進過來的在Tsai的方法,實際上進行計算機幀存象素坐標和圖像實際坐標轉(zhuǎn)換使用的是dx和dy,問題就出在dx=dx*Ncx/Nfx;dy=dy(dx,dy分別為X,Y方向上的象素間距)。這里的Ncx為攝像機每行捕捉到的象素(由CCD攝像機參數(shù)決定),Nfx為計算機每行采集到的象素數(shù)。Tsai算法的最大特點就是比較準確,相對來說產(chǎn)生畸變的概率會比較小。
本文改進的做法是:通過變換矩陣將投射的像素點非線性化,然后再通過數(shù)學(xué)模型計算出具體的解。具體來說主要包括以下方面的改進:成像模型的改進、獲取點坐標方法的改進和計算點初始值方法的改進。
3.3 投影矩陣的恢復(fù)與分解
利用現(xiàn)實坐標系與攝像頭坐標系及其對應(yīng)的點的坐標,計算x1,x2,x2,x4,可以可以算出攝像頭內(nèi)對應(yīng)的點y1,y2,y3,y4。在以上步驟中,計算出攝像頭對應(yīng)的參數(shù)之后要考慮矩陣的分解。把矩陣分解成攝像頭能夠識別的狀態(tài)。
3.4 實驗
本篇文章所采用的攝像頭是常用的DY-133攝像頭,具體參數(shù)為500萬像素,感光面積是4.86*3.42平方毫米。經(jīng)實驗發(fā)現(xiàn),該攝像頭可以正確地標記投影過來的圖像,其50個點的誤差只有0.334個像素。
參考文獻
[1]王亮,吳福朝.基于一維標定物的多攝像機標定[J].自動化學(xué)報,2007,33(3):225-231.
[2]熊平,圖像傳感器特點比較.半導(dǎo)體光電,2004.
[3]邱茂林,馬項德.計算機視覺中攝像機定標綜述[J].自動化學(xué)報,2000.
[4]馬項德,張正友.計算機視覺計算理論與算法基礎(chǔ)[M].北京:科學(xué)出版社,1998.
[5]邱茂林,馬頌德,李毅.計算機視覺中攝像機定標綜述.自動化學(xué)報,2008.
[6]馬頌德,張正友.計算機視覺—計算理論與算法基礎(chǔ).北京:科學(xué)出版社,1998.
[7]劉傳才.圖像理解與計算機視覺.廈門:廈門大學(xué)出版社,2002.
[8]洪治平.“車道保持”原理揭秘[J].antoknow,2011.
[9]劉瑞禎于仕琪Open Cv教程基礎(chǔ)篇[M]北京:北京航空航天大學(xué)出版社,2009.
[10]曾祥章,盧道華.一種基于OpenCV和Tsai的攝像機兩標定新方法[J]機電.