相機模型 針孔相機

2021-06-22 03:41:56 字數 2939 閱讀 2664

想到學習下相機模型,是因為最近做的事情涉及到求解相機引數、恢復相機位置等。而在這裡開博,主要也是當做學習筆記來用。其中【】表示引用和參考。

在相機模型中,針孔相機是相對簡單而常用的模型。簡單的說,針孔相機模型就是把相機簡化成小孔成像,如圖1,f標註的距離是焦距。可以想見,這種簡化對於精度要求高的情況或者廣角相機是不適用的。但由於其用的是投影成像的方法,因此要先了解下投影變換。

比較基礎簡單的投影變換有正交變換和透視變換。正交變換就是物體上的點全都平行地投射到投影面,沒有遠近的區別,即沒有透視效果。透視變換正好相反,被投影物體處於乙個四稜臺區域中,物體被投影到離相機較近的平面上。相機被抽象為乙個點,而投影點是物體上的點和相機的連線與投影平面的交點。由於投影的路徑不再相互平行,因此會產生透視效果,這個隨便自己畫下就明白了。具體可以參考。

針孔相機模型是基於透視變換的相機模型。其公式如圖2,而以字母表示矩陣,則如圖3。

其中m『為螢幕uv座標,a為相機內參,[r|t]為相機外參,m』為物體世界座標,而s為物體在相機座標系中的z座標,這是公式推導過程中產生的引數。這裡提到的相機內參是指僅由相機本身決定的引數,也就是對某一相機一旦這個值算好就不用再次進行計算。相對的,外參是和世界座標系和相機位置有關的。

那麼這個公式是如何產生的呢?相機模型是屬於計算機3d視覺中的,而所謂3d視覺就是要建立二維影象和三維場景的聯絡,比較主要的乙個用途是根據二維重建三維場景。所以乙個自然的想法就是通過各種方式使得可以從三維座標計算得到螢幕空間座標或者相反。在進行推導之前,先要普及下齊次座標的知識,因為所有推導都是在齊次座標系下進行的。齊次座標簡單的來說就是將原來的座標新增乙個維度,比如[x,y,z]在齊次座標系下就是[nx,ny,nz,n](n!=0),其中n為多少是無所謂的。針對於相機模型這個話題,也只會將[x,y,z]變為[x,y,z,1]。在對於圖形影象的處理中,大量的使用到齊次座標,因為這樣在非齊次座標系下需要通過加法進行的運算就都可以合併到乘法運算中去了,也就是合併為乙個引數矩陣,各種方便。

想要推導這個公式,就要先分析相機及其所處環境的模型。將世界中的物體對映到螢幕上的整個過程,涉及四個座標系。首先是世界座標系,這個不用多說了。而相機本身也是世界中的物體,因此在世界座標系中也有乙個位置。但是還需要乙個相對與相機位置不變的相機座標系。一般這個座標系的原點設在抽象出的針孔相機處,z軸為光軸。而相機的投影平面存在兩個座標系。投影平面是和相機相隔焦距距離並垂直於光軸的平面,一般位於z的正方向。這兩個座標系最大的區別是乙個像前兩個座標系一樣使用浮點數,其原點位於光軸和和投影平面的交點處,x、y軸與相機座標系對應軸平行,如圖4。將三維空間物體投影到這樣乙個平面座標系上是很直觀的,但是對於計算機的顯示來說,不但要求位置以畫素為單位表示,而且最好值全是正數,才符合程式設計的需要。因此就產生了第四個座標系——uv座標系。這個座標系的原點在顯示螢幕的乙個角上,使得顯示部分全落在第一象限,同時座標值是以畫素為單位的正數。uv座標和平面浮點座標關係如圖5。

在此要注意下相機座標系部分模型和實際相機的關係。實際相機的朝向在相機座標系中應當是朝向負z方向,也是景物真實所在的方向。而在圖4和很多其他圖中都將真實景物的位置繪製在正z方向,個人理解是這樣在推導上比較直觀。景物在真實的位置,還要將投影好的影像顛倒位置才合理,而將其假想在負方向,不但推導容易,而且直接就得出所需的結果。

接下來就是詳述如何進行公式的推導了。這部分基本參考馬頌德等人的《計算機視覺》一書中的推導。

首先是由世界座標系轉換到相機座標系,這部分使用圖形學中基礎的旋轉平移矩陣的推導,不詳述了,以後有時間再補上。可以得到如下等式,如圖6

其中,帶有下標w的代表世界座標系,而帶有下標c的表示相機座標系,r、t分別表示旋轉與平移矩陣。

繼而是由相機座標系到投影平面的轉換,使用的是相似三角形的原理,有如圖7所示關係。由於全部過程使用齊次座標系,對於這個關係也盡量使用齊次座標和矩陣,如圖8。zc這個係數被單獨放在等號左邊作為係數,是為了湊出[xc, yc, zc, 1]。

之後處理投影平面上的座標系轉換,其中使用浮點數作為單位的座標系,在此稱為浮點平面座標系。uv座標系和浮點平面座標系的關係如圖5所示。在這裡注意到《計算機視覺》中的圖示都是y軸向下的,感覺是因為uv座標的原點是設定在螢幕左上角,v軸向下的。這樣設定是由於習慣還是計算機視訊記憶體將較高部分畫素標記為較小序號等原因還沒有考證過,但是可以想見y軸都向下是為了推導方便,而且如果全部翻轉向上應該也是沒有影響的。

設想uv座標系中每個畫素在浮點平面座標系中在x方向長dx,在y方向長dy,浮點平面座標繫在uv座標系中的位置是(u0, v0)。則它們有如圖9所示關係。依舊要用齊次座標表示,如圖10。

圖10至此,便可以將幾個矩陣合併,最終得到乙個uv座標系與世界座標系的關係,如圖11。可以注意到內參全部是由相機本身確定的,而外參是需要根據相機位置變化的。

圖11

參考資料

《計算機視覺》,馬松德等

針孔相機模型

相機將三維世界中的座標點對映到二維影象平面的過程能夠用乙個幾何模型進行描述。這個模型有很多種,其中最簡單的稱為針孔模型。在現實生活中,針孔相機是由前方有 乙個小洞 針孔 所構成。現實世界中源於某個物體的光線穿過此洞,會在攝像機的底板或影象平面上形成一幅倒立的影象。略為不便的是針孔相機的影象是倒置的。...

針孔相機模型

相機將三維世界中的座標點對映到二維影象平面的過程能夠用乙個幾何模型進行描述。這個模型有很多種,其中最簡單的稱為針孔模型。在現實生活中,針孔相機是由前方有 乙個小洞 針孔 所構成。現實世界中源於某個物體的光線穿過此洞,會在攝像機的底板或影象平面上形成一幅倒立的影象。略為不便的是針孔相機的影象是倒置的。...

相機針孔模型詳解

相機模型 數位相機影象拍攝的過程實際上是乙個光學成像的過程。相機的成像過程涉及到四個座標系 世界座標系 相機座標系 影象座標系 畫素座標系以及這四個座標系的轉換。相機模型是光學成像模型的簡化,目前有線性模型和非線性模型兩種。實際的成像系統是透鏡成像的非線性模型。最基本的透鏡成像原理如圖所示 其中 u...