計(jì)算機(jī)視覺的基本任務(wù)之一是從相機(jī)獲取的圖像信息出發(fā)計(jì)算三維空間中物體的幾何信息,并由此重建和識(shí)別物體,而空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對(duì)應(yīng)點(diǎn)之間的相互關(guān)系是由相機(jī)成像的幾何模型決定的,這些幾何模型參數(shù)就是相機(jī)參數(shù)。
在大多數(shù)條件下,這些參數(shù)通過實(shí)驗(yàn)與計(jì)算才能得到。無(wú)論是在圖像測(cè)量或者機(jī)器視覺應(yīng)用中,相機(jī)參數(shù)的標(biāo)定都是非常關(guān)鍵的環(huán)節(jié),其標(biāo)定結(jié)果的精度及算法的穩(wěn)定性直接影響相機(jī)工作產(chǎn)生結(jié)果的準(zhǔn)確性。
那么相機(jī)成像的幾何模型又是什么呢?我們從簡(jiǎn)單的針孔相機(jī)模型說起,首先我們回想一下,初中物理中的小孔成像實(shí)驗(yàn)。
用一個(gè)帶有小孔的板遮擋在屏幕與物之間,屏幕上就會(huì)形成物的倒像,我們把這樣的現(xiàn)象叫小孔成像。前后移動(dòng)中間的板,像的大小也會(huì)隨之發(fā)生變化。
小孔成像的模型其實(shí)可以看作是針孔相機(jī)模型的基礎(chǔ)。
如上圖所示,相機(jī)坐標(biāo)系為OC-XC-YC-ZC,OC為相機(jī)光心,ZC軸指向相機(jī)前方。真實(shí)世界中的一個(gè)點(diǎn)P,經(jīng)過小孔OC投影后,落在物理成像平面o'-x-y(也稱像平面坐標(biāo)系)上,稱為像點(diǎn)P'。
相機(jī)坐標(biāo)到圖像坐標(biāo)
為了方便描述,我們之后將把針孔相機(jī)模型對(duì)稱翻轉(zhuǎn)過來(lái),如下圖所示,從數(shù)學(xué)的角度,它們是等價(jià)的。
假設(shè)P在相機(jī)坐標(biāo)系下的坐標(biāo)為[Xc,Yc, Zc]T,P' 為[x,y]T,焦距為f。根據(jù)相似三角形有:
圖像坐標(biāo)系到像素坐標(biāo)
此時(shí)與前面的坐標(biāo)系變換不同,此時(shí)沒有旋轉(zhuǎn)變換,但是坐標(biāo)原點(diǎn)位置不一致,大小不一致,則設(shè)計(jì)伸縮變換及平移變換。
世界坐標(biāo)到相機(jī)坐標(biāo)
從世界坐標(biāo)系變換到相機(jī)坐標(biāo)系屬于剛體變換,只需要進(jìn)行旋轉(zhuǎn)平移,不會(huì)發(fā)生伸縮變換。
物體之間的坐標(biāo)系變換都可以表示坐標(biāo)系的旋轉(zhuǎn)變換加上平移變換,則世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換關(guān)系也是如此。繞著不同的軸旋轉(zhuǎn)不同的角度得到不同的旋轉(zhuǎn)矩陣。如下:
于是可以得到P點(diǎn)在相機(jī)坐標(biāo)系中的坐標(biāo):
到此我們已經(jīng)了解了相機(jī)的幾何模型,這些幾何模型的參數(shù)就是相機(jī)參數(shù)。
鏡頭畸變
對(duì)于徑向畸變,由于它們都是隨著與中心之間的距離增加而增加,因此可以用一個(gè)多項(xiàng)式函數(shù)來(lái)描述畸變前后的坐標(biāo)變化:
在上式中,對(duì)于畸變較小的圖像中心區(qū)域,畸變糾正主要是k1 起作用;對(duì)于畸變較大的邊緣區(qū)域,主要是k2 起作用。根據(jù)所用鏡頭,可以適當(dāng)使用合適的校正系數(shù)。
對(duì)于切向畸變,可以使用另外的兩個(gè)參數(shù)p1, p2 來(lái)進(jìn)行糾正:
綜上,我們一共需要5個(gè)畸變參數(shù)(k1、k2、k3、p1、p2 )來(lái)描述鏡頭畸變。
針孔相機(jī)模型中,只要確定相機(jī)參數(shù)和畸變參數(shù)就可以唯yi的確定針孔相機(jī)模型, 這個(gè)過程就稱為「相機(jī)標(biāo)定」。
一旦相機(jī)結(jié)構(gòu)固定,包括鏡頭結(jié)構(gòu)固定,對(duì)焦距離固定,我們就可以用這些參數(shù)去近似這個(gè)相機(jī)。相機(jī)參數(shù)標(biāo)定結(jié)果的精度會(huì)直接影響相機(jī)工作中產(chǎn)生結(jié)果的準(zhǔn)確性。因此做好相機(jī)標(biāo)定是后續(xù)工作的重要前提。
本文屬于原創(chuàng)文章,如需轉(zhuǎn)載請(qǐng)注明 杭州藍(lán)芯科技有限公司