相機將三維世界中的坐標點映射到二維圖像平面的過程能夠用一個幾何模型進行描述。這個模型有很多種,其中最簡單的稱為針孔模型。
在現實生活中,針孔相機是由前方有 一個小洞(針孔)所構成。現實世界中源於某個物體的光線穿過此洞,會在攝像機的底板或圖像平面上形成一幅倒立的圖像。略為不便的是針孔相機的圖像是倒置的。因此,我們換一種方式,對針孔前方圖像平面的虛擬圖像加以考慮。當然,從物理層面構造這樣一種攝像機是不可能的但是在數學層面上這與真實的針孔模型是等價的(除了圖像是倒置的以外)。
坐標系約定
1、世界坐標系:$X_{w},Y_{w},Z_{w}$
2、攝像機坐標系:$X_{c},Y_{c},Z_{c}$
3、圖像坐標系:$[u,v] [x,y]$
說明:為了校正成像畸變,用理想圖像坐標系$[X_{u},Y_{u}]$和真實圖像坐標系$[X_{d},Y_{d}]$分別描述畸變前后的坐標關系
相機光學成像過程的四個步驟
攝像機並非總是位於世界坐標系的原點,通常我們可能想要定義一個任意的世界坐標系,這種坐標系可能使用於多個攝像機。為此,我們可以使用剛體變換描述世界坐標系到攝像機坐標系的轉換。實際上,攝像機坐標系是未知的,更多的作用是用於數學模型描述。
剛體變換公式
$\left[\begin{matrix}x_{c} \\ y_{c} \\ z_{c} \end{matrix} \right] = R \left[\begin{matrix}x_{w} \\ y_{w} \\ z_{w}\end{matrix}\right] + t$
齊次坐標形式
$\left[\begin{matrix}x_{c} \\ y_{c} \\ z_{c} \\ 1\end{matrix} \right] = \left[\begin{matrix}R & t \\ 0^T_{3} & 1\end{matrix}\right] \left[\begin{matrix}x_{w} \\ y_{w} \\ z_{w} \\ 1 \end{matrix}\right]$
中心透視投影模型
圖像數字化
有些文獻中將圖像數字化和中心透視投影合在一起(內參數)寫成如下矩陣形式:
$\left[\begin{matrix}Φ_{x} & γ & δ_{x} \\ 0 & Φ_{y} & δ_{y} \\ 0 & 0 & 1 \end{matrix} \right]$
線性攝像機成像模型(忽略畸變)
我們把$K$稱為相機的內參數矩陣(Camera Intrinsics)。通常認為,相機的內參在出廠之后是固定的,不會在使用過程中發生變化。有的相機生產廠商會告訴相機的內參,而有時候需要自己確定相機的內參,也就是所謂的標定。相機的位姿$R,t$又稱為相機的外參數(Camera Extrinsics)。相比不變的內參, 外參會隨着相機運動發生改變。注意,上式隱含了一次齊次坐標到非齊次坐標的轉換,外參數矩陣與世界坐標相乘后是一個4維的向量。
參考文獻
【1】視覺SLAM十四講
【2】計算機視覺模型、學習和推理
【3】中科院自動化所機器視覺教程PPT