相机模型-鱼眼模型/Omnidirectional Camera(1)
Omnidirectional Camera Davide Scaramuzza
Definition 定義
omnidirectional camera (from omni, meaning all) 廣角相機(jī): 在一個(gè)水平面有360度視野的相機(jī),或視野能覆蓋半個(gè)球或近似整個(gè)球的相機(jī)
Background 背景知識(shí)
大多數(shù)商業(yè)相機(jī)可以使用 pinhole 相機(jī)模型來描述,使用一個(gè) perspective projection 來建模。但是存在一些高畸變成像設(shè)備如廣角相機(jī),它們不能使用傳統(tǒng)小孔相機(jī)模型來描述。 目前存在幾種構(gòu)建廣角相機(jī)的方法。Dioptric cameras 使用一組 shaped lenses(如魚眼鏡頭),可以得到大于180度視野,(稍微多余半球); Catadioptric cameras 則使用一個(gè)標(biāo)準(zhǔn)相機(jī)和一個(gè) shaped mirror — such as a parabolic, hyperbolic, or elliptical mirror,其在水平面可以提供360度視野,仰角方向大于100度;polydioptric camera 通過組合多個(gè)相機(jī)來重疊相機(jī)視野
?
1. 廣角相機(jī)成像原理
廣角相機(jī)成像步驟與普通相機(jī)基本一致, 主要的區(qū)別在于鏡頭聚光的部分, 廣角相機(jī)為了獲得更大的FOV, 有三種鏡頭聚光方式:
廣角相機(jī)引入了很多模型, 為了防止混亂, 我們先總結(jié)一下, 我們通常會(huì)討論兩種模型: 相機(jī)模型和畸變模型.
2. 相機(jī)模型
相機(jī)模型指的是相機(jī)坐標(biāo)系到理想圖像平面(通常也稱為Normalize 平面)的投影模型.
注意: 廣義上相機(jī)模型包括投影成像, 畸變, 內(nèi)外參等全部模型, 這里討論的相機(jī)模型僅指的透鏡/面鏡的投影模型.
2.1 針孔相機(jī)模型(Pinhole)
針孔相機(jī)模型利用透鏡進(jìn)行聚光成像的相機(jī)使用的模型, 該模型非常簡單:
?
2.2 全向模型(Omnidirectional)
全向模型利用面鏡(mirror)反射進(jìn)行成像的相機(jī)使用的模型. 該模型帶有一個(gè)參數(shù) .
首先將相機(jī)坐標(biāo)系的點(diǎn)歸一化到半徑為1的球面上:
然后再投影到圖像平面上
其逆變換推導(dǎo)出來如下:
最后,注意下當(dāng)E=0 時(shí), 全向模型就退化為了針孔模型.
3. 畸變模型
畸變模型指的理想圖像平面到真實(shí)圖像平面的變換模型, 也就是Normalize平面上的畸變模型.
理想的針孔成像模型確定的坐標(biāo)變換關(guān)系均為線性的,而實(shí)際上,現(xiàn)實(shí)中使用的相機(jī)由于鏡頭中鏡片因?yàn)楣饩€的通過產(chǎn)生的不規(guī)則的折射,鏡頭畸變(lens distortion)總是存在的,即根據(jù)理想針孔成像模型計(jì)算出來的像點(diǎn)坐標(biāo)與實(shí)際坐標(biāo)存在偏差。
3.1 radtan畸變模型
普通相機(jī)畸變通常包括徑向畸變和切向畸變, 如下圖所示.
徑向畸變表式沿半徑方向的偏移量, 徑向畸變的形成原因是鏡頭制造工藝不完美,使得鏡頭形狀存在缺陷, 通常又分為桶性畸變和枕形畸變,dr 分別代表 往外偏和往里偏.
徑向畸變的數(shù)學(xué)轉(zhuǎn)換為:
切向畸變又分為薄透鏡畸變和離心畸變等,薄透鏡畸變則是因?yàn)橥哥R存在一定的細(xì)微傾斜造成的;離心畸變的形成原因是鏡頭是由多個(gè)透鏡組合而成的,而各個(gè)透鏡的光軸不在同一條中心線上。切向畸變可以用如下數(shù)學(xué)表達(dá)式來描述:
結(jié)合徑向和切向畸變, 像平面點(diǎn)的轉(zhuǎn)換關(guān)系為:
?
這就是OpenCV calibration使用的畸變模型, 由于參數(shù)過多導(dǎo)致數(shù)值求解不穩(wěn)定, 通常只使用 k1,k2,k3,p1,p2, 其他參數(shù)設(shè)為0. 簡化后的模型就是常用的radtan畸變模型:
3.2 魚眼畸變模型
魚眼鏡頭的畸變模型有很多種:
其中使用最多的是Equidistant模型, 即rd=f*,對實(shí)際的魚眼鏡頭來說,它們不可能精確地按照投影模型來設(shè)計(jì),所以為了方便魚眼相機(jī)的標(biāo)定,Kannala提出了一種魚眼相機(jī)的一般多項(xiàng)式近似模型。通過前面的四個(gè)模型,可以發(fā)現(xiàn)d 是 的奇函數(shù),而且將這些式子按泰勒級(jí)數(shù)展開,發(fā)現(xiàn) 可以用 的奇次多項(xiàng)式表示,即
畸變投影模型為:
opencv中的fisheye::calibrate就是用的該畸變模型. 也叫作kannala-brandt模型.
3.3 FOV畸變模型
FOV畸變模型轉(zhuǎn)換關(guān)系如下:
4. Unified Projection Model
在魚眼相機(jī)中通常會(huì)看到Unified Projection Model或者M(jìn)EI model, 其實(shí)就是Omnidirectional相機(jī)模型+radtan畸變模型. 前面提到了Omnidirectional模型涵蓋了Pinhole模型, 所以MEI model可以表示魚眼和非魚眼相機(jī).
參考:
?
Theory 理論
0.1 Central omnidirectional cameras
一個(gè)視覺系統(tǒng)是 central 的話,那么 被觀測物體的所有入射光線匯交于3D空間的一個(gè)點(diǎn),這個(gè)點(diǎn)稱為 projection center 或 single effective viewpoint。 A vision system is said to be central when the optical rays to the viewed objects intersect in a single point in 3D called projection center or single effective viewpoint
這個(gè)屬性我們稱之為 single effective viewpoint property。 perspective camera 就是一個(gè) central projection system,因?yàn)樗械娜肷涔饩€交于一點(diǎn): camera optical center。
所有現(xiàn)代魚眼相機(jī)都是 central,所以他們都滿足這個(gè)屬性 single effective viewpoint property。Central catadioptric cameras 由一個(gè)相機(jī)+mirror 構(gòu)建,相機(jī)和 mirror 的距離需要選擇合適。Baker and Nayar [6] 證明了滿足 single viewpoint property 的 mirrors 具有什么數(shù)學(xué)形式, the class of rotated (swept) conic sections, that is, hyperbolic, parabolic, and elliptical mirrors
為什么 single effective viewpoint 是如此的重要了? 1)it allows the user to generate geometrically correct perspective images from the pictures captured by the omnidirectional camera,When the geometry of the omnidirectional camera is known, that is, when the camera is calibrated, one can precompute this direction for each pixel. 2)Epipolar geometry holds for any central camera, both perspective and omnidirectional,這樣就可以應(yīng)用 Epipolar geometry 相關(guān)知識(shí)到廣角相機(jī)的圖像中了。
0.2 Omnidirectional camera model and calibration
omnidirectional camera 的建模要比標(biāo)準(zhǔn)的 perspective camera 復(fù)雜一些。因?yàn)樵诮5臅r(shí)候需要考慮: catadioptric camera中的 mirror 反射 或者 fisheye camera 中的 鏡頭折射問題 the reflection operated by the mirror in the case of a catadioptric camera or the refraction caused by the lens in the case of a fisheye camera 這里我們介紹 omnidirectional vision and robotics 中標(biāo)準(zhǔn)的兩個(gè)不同投影模型,這兩個(gè)模型其對應(yīng)的 Matlab toolboxes 可以直接下載應(yīng)用,所以被廣泛使用。
第一個(gè)模型就是 the unified projection model for central catadioptric cameras, Geyer and Daniilidis [7] 在2000年提出的,Barreto and Araujo [8]后來優(yōu)化了一下。這個(gè)模型包括了 catadioptric cameras相機(jī)中三類 mirror: cameras using a hyperbolic, parabolic, or elliptical mirror. 這個(gè)模型是專門針對 central catadioptric cameras 的,不實(shí)用于 fisheye cameras。在文獻(xiàn)[9]中分析了使用該模型近似分析魚眼鏡頭,精度有限。
第二個(gè)模型是 unifies both central catadioptric cameras and fisheye cameras under a general model also known as Taylor model,由 Scaramuzza et al. [10,11]于2006年提出,優(yōu)勢就是使用一個(gè)模型( a Taylor polynomial)分析 catadioptric and dioptric cameras
0.3 Unified model for central catadioptric cameras Geyer and Daniilidis 在 2000年那篇經(jīng)典文獻(xiàn)指出:任意的 catadioptric (parabolic, hyperbolic, elliptical) 和標(biāo)準(zhǔn)的 perspective projection 都等同于一個(gè) projective mapping ,該映射將 位于 single viewpoint 一個(gè)球上的點(diǎn) 投影到 一個(gè)平面內(nèi),該平面的 the projection center on the perpendicular to the plane and distant ? from the center of the sphere
scene point 和 image point 的投影關(guān)系如下: the camera and mirror reference frames differ only by a translation along z 相機(jī)坐標(biāo)系和 mirror 坐標(biāo)系
1)投影的第一步是將 scene point 投影到 the unit sphere
2)將投影點(diǎn)的坐標(biāo)變換到一個(gè)新坐標(biāo)系下表示,新坐標(biāo)系的原點(diǎn)位于
新坐標(biāo)為
注意這個(gè)新坐標(biāo)系原點(diǎn)的位置不同,對應(yīng)的mirror( 曲線反射面)類型會(huì)不一樣。
3)接著將點(diǎn) 投影到 normalized image plane
4)最后通過相機(jī)內(nèi)參數(shù)矩陣 K 將點(diǎn)投影到相機(jī)圖像坐標(biāo)系
?
function g ?1 is bijective and that its inverse g is given by
?
上面的映射是將 成像平面上的點(diǎn)映射到 the unit vector Ps in the mirror reference frame
方程(6)可以通過反轉(zhuǎn)方程(3)得到,滿足約束: Ps 在單位球上。
方程(6)是 central catadioptric cameras 投影模型的核心。It expresses the relation between the point m on the normalized image plane and the unit vector Ps in the mirror reference frame.
這個(gè)模型可以準(zhǔn)確用于描述 all central catadioptric cameras (parabolic, hyperbolic, and elliptical mirror) and standard perspective cameras. 將該模型用于魚眼相機(jī)存在精度有限的問題。為了克服這個(gè)問題,一個(gè)新的統(tǒng)一模型被提出來。
0.4 Unified model for catadioptric and fisheye cameras
該模型 Scaramuzza et al. in 2006 提出來的。它與上面的模型主要區(qū)別在于 函數(shù) g 的選擇。為了克服針對魚眼相機(jī)參數(shù)模型的知識(shí)缺乏。作者提出使用 Taylor polynomial, the relation between the normalized image point ? m = (x m ,y m ,1) and the unit vector P s in the fisheye (mirror) reference frame can be written as:
?
0.5 Omnidirectional camera calibration
這里主要介紹三個(gè) 開源的 Matlab 標(biāo)定程序,which differ mainly for the projection model adopted and the type of calibration pattern:
1) The toolbox of Mei 使用棋盤格圖像標(biāo)定,使用 Geyer and Daniilidis 的投影模型,該工具箱特征適用于 catadioptric cameras using hyperbolic, parabolic, folded mirrors, and spherical mirrors
2) The toolbox of Barreto 使用直線圖像標(biāo)定,沒有使用棋盤格,它也使用 Geyer and Daniilidis 的投影模型,該工具箱特別適用于 parabolic mirrors
3) the toolbox of Scaramuzza 使用棋盤格圖像標(biāo)定,它使用 the unified Taylor model for catadioptric and fisheye cameras,該工具箱適用于 catadioptric cameras using hyperbolic, parabolic, folded mirrors, spherical,and elliptical mirrors.
此外它還使用于市面上大多數(shù)魚眼相機(jī), it works with a wide range of fisheye lenses available on the market — such as Nikon, Sigma, Omnitech-Robotics, and many others — with field of view up to 195 degrees
Application 應(yīng)用
11
總結(jié)
以上是生活随笔為你收集整理的相机模型-鱼眼模型/Omnidirectional Camera(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle Parallel模式-Pa
- 下一篇: Katana的起源