攝像機的基本成像模型, 通常稱爲針孔模型(pinhole model), 由三維空間到像平面的中心投影變換給出.
如上圖(a)所示, 空間點Oc是投影中心, 它到平面π的距離爲f. 空間點Xc在平面π上的投影(像)是以點Oc爲端點並經過Xc的射線與平面π的交點.
平面π稱爲攝像機的像平面(image plane), 點Oc稱爲攝像機的光心(optical center), f稱爲攝像機的焦距(focus), 以點Oc爲端點且垂直於像平面的射線稱爲光軸或主軸(principal axis), 主軸與像平面的交點p稱爲攝像機的主點(principal point).
爲了從代數上描述這種投影關係, 需要建立攝像機座標系和圖像平面座標系. 如上圖(b)所示, 在圖像平面上, 以主點p爲圖像平面座標系的原點o, 以水平線和鉛直線分別爲x軸和y軸, 建立圖像座標系o-xy; 在空間中, 以攝像機光心Oc爲攝像機座標系的原點, 以主軸爲zc軸, 以平行於x軸且通過光心Oc的直線爲xc軸, 以平行於y軸且通過光心Oc的直線爲yc軸,建立攝像機座標系Oc-xcyczc.
空間點Xc在攝像機座標系中的歐氏座標記爲, 它的像點m在圖像座標系中的座標記爲. 從上圖(b)中, 根據三角形相似原理, 可推知空間點Xc與它的像點m滿足下列關係:
(1)
上式可表達爲下列矩陣形式:
(2)
其中, , 分別爲空間點和圖像點的齊次座標. 它是從空間到像平面的一個齊次線性變換. 如果記
(3)
則這個齊次線性變換可表示爲更爲簡潔的形式:
(4)
其中, 矩陣P是一個3x4矩陣, 通常稱爲攝像機矩陣(camera matrix). 這就是基本成像模型的代數表示.
注意, (4)是一個齊次等式, 表示在相差一個非零常數因子(zc)的意義下相等.
考慮到主點偏離圖像中心的情況
在實際應用中, 事先不知道主點的確切位置, 因此通常都是以圖像中心或者圖像左上角作爲圖像座標系原點來建立圖像座標系(在本文中, 除非特別說明, 都以圖像中心作爲圖像座標系原點). 在此座標系下, 由於主點可能不是圖像座標系的原點, 因此攝像機矩陣不再可能具有(3)的形式.
若主點在圖像座標系下的座標p=(x0, y0, z0)T, 則攝像機的投影關係變爲(可自行證明):
(5)
攝像機矩陣的形式爲P=K(I, 0), 其中,
(6)
並稱它爲攝像機內參數矩陣(intrinsic parameters matrix).
考慮到像素不是正方形的情況
用於計算機處理的圖像通常都是用CCD攝像機獲取的數字圖像, 或者由模擬信號攝像機獲取的圖像再經過特別設備進行數字離散化的數字圖像. 一般地, CCD內參數矩陣不再具有(6)的形式. 爲了得到CCD攝像機的模型, 必須刻劃CCD攝像機的數字離散化過程.
假定CCD攝像機數字離散化後的像素是一個矩形, 矩形的長和寬分別是dx和dy. 設圖像點(x, y, 1)T在離散化後的座標爲(u, v, 1)T, 則必有:
(7)
如果離散化後的圖像座標仍用m表示, 則攝像機的投影關係可以寫成:
(8)
其中
(9)
矩陣K稱爲CCD攝像機的內參數矩陣, fx=f/dx, fy=f/dy, 稱爲CCD攝像機在u軸和v軸上方向上的尺度因子, (u0, v0)T=(x0/dx, y0/dy)T, 稱爲CCD攝像機的主點.
考慮到像素是平行四邊形的情況
由於製造工藝的限制, 一般情況下, CCD攝像機數字離散化後的像素不是一個矩形, 而是一個平行四邊形. 平行四邊形的一邊平行於u軸, 而另一邊與u軸形成一個θ角(見下圖).
令平行四邊形兩邊長分別爲dx, dy, 圖像點(x, y, 1)T離散化後的座標爲(u, v, 1)T, 則必有
(10)
結合(5)式, 可得到:
(11)
如果離散化後的圖像座標仍然用m表示, 則上式可寫成:
(12)
其中,
(13)
是攝像機內參數矩陣, fx=f/dx, fy= f/sinθdy, 稱爲一般CCD攝像機在u軸和v軸方向上的尺度因子, (u0, v0)T =(( x0-y0cotθ)/dx, y0/sinθdy)T稱爲一般CCD攝像機的主點, 而s=-fcotθ/dx稱爲一般CCD攝像機的傾斜因子(skew factor).
考慮到世界座標系的情況
上面介紹的攝像機矩陣是在攝像機座標系下的結果. 由於攝像機的中心和主軸等事先都是未知的, 因此在這個座標系下不能給出空間點的準確座標值; 另外攝像機可安放在環境中的任何位置, 所以需要一個基準座標系來描述空間點和攝像機的位置. 這個基準座標系通常稱爲世界座標系(world coordinate system)或者物體座標系(object coordinate system).
世界座標系與攝像機座標系之間的關係可以用旋轉矩陣和平移向量來描述, 如下圖所示.
令空間點在世界座標系和攝像機的座標分別爲X=(x, y, z, 1)T, Xc=(xc, yc, zc, 1)T, 則它們之間的關係爲:
(14)
其中, 表示光心在世界座標系中的非齊次座標. 以後, 點X的非齊次座標總用表示. 將(14)式代入(12)式, 則有:
(15)
這樣, 得到攝像機矩陣的一般形式:
(16)
矩陣稱爲攝像機的外參數矩陣(extrinsic parameters matrix). 有時, 也用來描述世界座標系和攝像機座標系之間的關係, 此時攝像機矩陣爲:
(17)
其中, .
攝像機矩陣是一個秩爲3的3x4矩陣. 因爲它的前三列所構成的子矩陣是一個可逆矩陣. 另外, 由於攝像機矩陣的齊次性, 所以它僅有11個獨立元素.
在經典立體視覺中, 需要在歐氏座標系下估計攝像機矩陣(camera matrix), 才能完成立體視覺系統的標定. 常用的方法是根據一些空間點在歐氏座標系下的座標與其圖像座標之間的對應關係, 建立關於攝像機矩陣的約束方程, 從而確定攝像機矩陣. 在實踐中, 爲了得到一些空間點的歐氏座標, 需要製作一個標定參考物, 在標定參考物上經過精確測量的特徵點作爲估計攝像機矩陣時所需要的空間點.
記攝像機矩陣爲
(1)
其中爲矩陣P的第j行向量. 令Xj=(xj, yj, zj, 1)T是特徵點在世界座標系下的座標, 對應的圖像點座標爲mj=(uj, vj, 1)T, 於是根據攝像機的投影關係, 得到
(2)
因此, 消去上式中常數因子sj後, 可得到下述方程:
(3)
在這個方程組中, 第三個方程可由前兩個方程線性表示, 因此只有兩個方程是線性獨立的. 因此, 給定N≥6個以上的特徵點與其圖像點的對應, 可線性求解攝像機矩陣P.
最小二乘解
當圖像數據存在測量誤差時, 方程組(3)一般不存在非零解. 此時, 通常以它的最小二乘解作爲攝像機矩陣的估計. 對每一個點對應, 記
(4)
它是一個3x12的矩陣Aj. 給定n個點對應, 得到n個形如這樣的矩陣, 再將這n個矩陣組合起來得到一個3nx12的矩陣, 對A做奇異值分解(SVD), A=UDVT, 則V的最後一個列向量p=v12是方程Ap=0的最小二乘解, 再將p寫成矩陣的形式就得到攝像機矩陣P.
注: 由於攝像機矩陣是齊次的, 所以我們只能在相差一個非零常數因子的意義下求解, 即所得到的攝像機矩陣P與它的標準形式K(R, t)相差一個非零常數因子.
正向投影
空間點X通過攝像機P投影到圖像平面的圖像點m=PX, 這種投影關係稱爲攝像機的正向投影, 簡稱投影(projection).
反向投影
反向投影是針對圖像平面的基本幾何元素而言的. 圖像平面點m的反投影(back projection)是指在攝像機P的作用下具有像點m的所有空間點的集合, 即
(1)
在幾何上, 不難看出圖像點m的反投影是從攝像機中心(光心)出發並通過圖像點m的一條射線, 如下圖所示.
下面考慮圖像點m的反投影lb在在世界座標系下的方程. 這是非常重要的, 因爲在計算機視覺中, 從多幅圖像的對應點的反投影射線可以恢復空間點的三維座標. 由於兩點確定一條直線, 所以如果能夠確定攝像機中心C和射線lb上另一點的空間座標, 就可以得到射線lb在空間中的方程. 下邊先來計算攝像機中心C在世界座標系中的座標. 令C是攝像機中心在世界座標系中的齊次座標, 是非齊次座標, 即, 則
(2)
可知, 攝像機中心C是方程PC=0的一個解. 另一方面, P僅有一維右零空間, 因爲它的秩等於3. 於是, 攝像機中心的齊次座標構成了P的右零空間. 在已知攝像機矩陣P的情況下, 可以通過求解PX=0得到攝像機中心在世界座標系中的座標. 事實上, 如果令P=(H, p4), 其中H爲P的前三列所構成的3x3矩陣, p4是P的第4個列向量, 則從方程PX=0可得到攝像機中心的世界座標爲
(3)
再考慮射線lb上的另一個空間點. 令P(3x4矩陣)的廣義逆P+=PT(PPT)-1, 看看空間點P+m的情況. 將其代入投影公式,P(P+m)= (PPT)(PPT)-1m=m, 因此可以斷定P+m必定在射線lb上. 於是, 根據lb上的兩個點C和P+m, 就能得到lb的下述參數方程:
(4)