影像形成與基礎

鏡頭畸變

鏡頭畸變是真實鏡頭如何彎折「理想針孔模型承諾要保持筆直」的幾何。最清楚的症狀是:世界中的直線在影像中變彎,靠近中心處向外凸(桶形畸變,常見於廣角與運動相機)或向內縮(枕形畸變,常見於望遠鏡頭)。針孔模型沒有這種效應,因此畸變是你在信任任何幾何之前,必須加上的首要修正。

主要成分是徑向畸變(radial distortion),它沿著「從影像中心連到該點」的直線移動該點,移動量隨它到中心的距離 r 增大。一個標準的多項式模型把理想的正規化座標乘上 (1 + k1 r^2 + k2 r^4 + k3 r^6 + ...),係數 k1、k2、k3 在標定時估計;負係數給出枕形,正係數給出桶形。較小的切向畸變(tangential distortion)由參數 p1 與 p2 建模,當鏡片未與感光元件完全平行時產生,使點稍微側移。這寥寥數個參數合起來,就能解釋真實鏡頭偏離針孔的大部分。

修正(去畸變,undistortion)是反轉此模型:對每個輸出像素,計算它的光線在畸變下會落到何處,在畸變影像的該處取樣,從而產生一張幾何乾淨、可套用針孔數學的影像。這在標定、立體視覺、SLAM 與攝影測量中是必要步驟——未修正的畸變會毒害三角測量與位姿估計。強烈非透視的鏡頭(魚眼、360 度)超出多項式模型的適用範圍,會使用專用模型,如等距投影或統一球面投影。請注意鏡頭畸變是幾何性的(它移動像素),與光度缺陷如暈影(vignetting,邊緣變暗)或色差(chromatic aberration,色彩邊緣)有別。

運算順序是常見的陷阱:畸變作用在正規化相機座標中,發生在套用內參矩陣 K 之前。因此正確流程是先投影到正規化座標、套用畸變多項式、再乘上 K 得到像素。在 K 之後(於像素空間)套用畸變是錯的,且無法乾淨地反轉。