攝像機標定(Camera calibration)簡單來講是從世界座標系換到圖像座標系的過程,也就是求最終的投影矩陣
基本的座標系:html
通常來講,標定的過程分爲兩個部分:spring
如上圖所示(圖片來自UIUC計算機視覺課件),是一個小孔成像的模型,其中:atom
camera centre
,即相機的中心點,也是相機座標系的中心點;principal axis
,即相機的主軸;image plane
,即相機的像平面,也就是圖片座標系所在的二維平面;principal point
,即主點,主軸與像平面相交的點;focal length
,即相機的焦距;m
);m
);pixel
); 知道上面的簡單知識後,若是知道相機座標系中的一個點
spa
能夠表示爲矩陣計算爲(在這裏用的是齊次座標的表示方式,關於齊次座標文章最下面有介紹):
code
能夠簡寫爲(
orm
經過上面,能夠把相機座標系轉換到像平面座標系,可是像平面座標系和圖像座標系雖然在同一個平面上,可是原點並非同一個,而目標是要轉換到圖像座標系下,因此還須要一步操做,以下圖:htm
如上圖所示(圖片來自UIUC計算機視覺課件),其中主點
圖片
至關於在上面的基礎上加了一個p
點座標的偏移量,同時能夠表示爲矩陣計算爲(在這裏用的是齊次座標的表示方式):
ip
整理一下得:
因此最後能夠獲得
Intrinsic parameters
):
前面也提到了在圖像座標系中用的不是現實生活中的m
來度量,而是用的 pixel
的個數,因此在上面轉換到圖像座標系中還有個問題,就是座標的表示仍是m
,並無轉換到像素座標系統;在這裏須要引入一個新概念就是:
1m
的長度包含的像素的個數;1m
的長度包含的像素的個數; 可能有人奇怪爲啥不是一個值,還須要分別指定
m
度量)爲:
可是須要說明的是像素並不必定是一個正方形,有時候可能也是一個矩形,因此要分別指定。
因此能夠把上面相機內參
通常來講,在使用相機內參K
計算座標系轉換時,提供的都是已經變換後的值;例如會提供
如上圖所示(圖片來自UIUC計算機視覺課件),從世界座標系轉換到相機座標系是三維空間到三維空間的變換,通常來講須要一個平移操做和一個旋轉操做就能夠完成這個轉換,用公式表示以下(能夠理解爲世界座標系原點先平移到相機座標系的位置而後在作一次座標系旋轉,使座標軸對齊。):
根據上面的公式能夠獲得從一個三維點從世界座標系轉換到相機座標的變換公式以下(也是用的齊次座標的表示方式):
根據上面的討論知道了怎樣從世界座標系轉換到相機座標系(平移和旋轉)以及從相機座標系轉換到圖像座標系(相機內參變換),因此帶入上面的矩陣計算,能夠獲得:
這樣就獲得了最終的投影矩陣
其中:
在這裏,
intrinsic parameters
),描述了相機的內部參數,包括焦距
extrinsic parameters
),
distortion parameters
) 在幾何光學和陰極射線管(CRT)顯示中,畸變(distortion
) 是對直線投影(rectilinear projection
)的一種偏移。簡單來講直線投影是場景內的一條直線投影到圖片上也保持爲一條直線。那畸變簡單來講就是一條直線投影到圖片上不能保持爲一條直線了,這是一種光學畸變(optical aberration
)。可能因爲攝像機鏡頭的緣由,這裏不討論,有興趣的能夠查閱光學畸變的相關的資料。
畸變通常能夠分爲兩大類,包括徑向畸變和切向畸變。主要的通常徑向畸變有時也會有輕微的切向畸變。
Radial distortion
) 徑向畸變的效應有三種,一種是桶形畸變(barrel distortion
),另外一種是枕形畸變(pincushion distortion
),還有一種是兩種的結合叫作鬍子畸變(mustache distortion
),從圖片中能夠很容易看出區別,具體見下圖(圖片來自wikipedia
):
徑向畸變能夠用以下公式修正:
tangential distortion
) 切向畸變是因爲透鏡與成像平面不嚴格的平行,其能夠用以下公式修正:
其中:
因此最終獲得5個畸變參數:
那麼能夠利用這些來進行最終的任務相機標定,簡單的過程能夠描述爲經過標定板,以下圖,能夠獲得n個對應的世界座標三維點
那爲何要作相機標定呢?
每一個鏡頭的畸變程度各不相同,經過相機標定能夠校訂這種鏡頭畸變。其實能夠認爲用這種標定的方式來求解相機內參和畸變參數,至關於一種相機校準,而後這些參數就能夠用於後面的求解。例如求解新拍的兩幅圖片相對的
齊次座標
就是將一個本來是n維的向量用一個n+1維向量來表示。
許多圖形應用涉及到幾何變換,主要包括平移、旋轉、縮放。以矩陣表達式來計算這些變換時,平移是矩陣相加,旋轉和縮放則是矩陣相乘,綜合起來能夠表示爲x=R∗X+t (注:由於習慣的緣由,實際使用時通常使用變化矩陣左乘向量)(R 旋轉縮放矩陣,t 爲平移矩陣,X 爲原向量,x 爲變換後的向量)。引入齊次座標的目的主要是合併矩陣運算中的乘法和加法,表示爲x=P∗X 的形式。即它提供了用矩陣運算把二維、三維甚至高維空間中的一個點集從一個座標系變換到另外一個座標系的有效方法。和上面的計算過程是對應的。
攝像機標定(Camera calibration)簡單來講是從世界座標系換到圖像座標系的過程,也就是求最終的投影矩陣
基本的座標系:
通常來講,標定的過程分爲兩個部分:
如上圖所示(圖片來自UIUC計算機視覺課件),是一個小孔成像的模型,其中:
camera centre
,即相機的中心點,也是相機座標系的中心點;principal axis
,即相機的主軸;image plane
,即相機的像平面,也就是圖片座標系所在的二維平面;principal point
,即主點,主軸與像平面相交的點;focal length
,即相機的焦距;m
);m
);pixel
); 知道上面的簡單知識後,若是知道相機座標系中的一個點
能夠表示爲矩陣計算爲(在這裏用的是齊次座標的表示方式,關於齊次座標文章最下面有介紹):