本文轉(zhuǎn)自徐飛翔的“投影相機(jī),透視相機(jī),弱透視相機(jī)和仿射相機(jī)的區(qū)別和聯(lián)系 ”
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明
投影相機(jī)(projective camera)
相機(jī)說到底是一種從3D的現(xiàn)實(shí)世界中的點(diǎn)投影到2D平面上點(diǎn)的工具,那么作為這個(gè)投影,對其描述最為通用的莫過于在齊次坐標(biāo)系下,用:
其中3D點(diǎn)和2D點(diǎn)
采用齊次坐標(biāo)系描述[6]。不難知道,其非齊次坐標(biāo)系表達(dá)為:
雖然變換矩陣是一個(gè)有著12個(gè)元素的矩陣,但是因?yàn)閷τ谧鴺?biāo)而言,最重要的是比例關(guān)系,因此我們可以對
進(jìn)行尺度縮放,不妨將其全部除以
,得到
在這個(gè)新的變換矩陣中,原先
?的位置變成了1,因此其實(shí)其自由度只有11,而不是12.(對于理解這里的尺度變化,我
們可以這樣認(rèn)為,我們新投影出來的2D圖像的尺度大小是可以變化的,比如原先是 ,尺度變換后可能就變成了
,其比例還是一樣的,因此圖中點(diǎn)的坐標(biāo)其實(shí)比例也是不變的)
我們把有這種關(guān)系的相機(jī)稱之為投影相機(jī)(projective camera),顯然,投影相機(jī)是非線性的[7],這里指的非線性是圖像顯示的尺寸大小和真實(shí)尺寸大小不成線性比例,具體見[7]討論。透視相機(jī)(perspective camera)
投影相機(jī)的一種特殊例子也是更為常見的例子是所謂的透視相機(jī)(perspective camera),這種相機(jī)的投影方式稱之為透視投影(perspective projection)或者是中心投影(central projection)。跟一般的,當(dāng)其變換矩陣 的最左邊
矩陣是一個(gè)旋轉(zhuǎn)矩陣[8],并且這個(gè)旋轉(zhuǎn)矩陣的尺度放縮因子是
時(shí),透視相機(jī)模型成為我們熟悉的針孔模型的表達(dá)[9],如:
其中最簡單的形式莫過于是
于是有了熟悉的針孔模型的表達(dá):
注意到我們是對每個(gè)點(diǎn)的深度Z進(jìn)行反比放縮的,這一點(diǎn)很重要,這個(gè)導(dǎo)致了透視相機(jī)的成像的非線性性,見[7]中的討論。
仿射相機(jī)(affine camera)
仿射相機(jī)也是投影相機(jī)的一種特殊情況,其變換矩陣為:
考慮到通常我們也會把 設(shè)置為一個(gè)常數(shù),比如1,因此現(xiàn)在的自由度變成了8。
于是,投影后的坐標(biāo)為:
注意到其分母是 是一個(gè)常數(shù),因此其投影后的坐標(biāo) ( x , y ) 是一個(gè)只由
決定了的線性關(guān)系。這個(gè)很特殊,因?yàn)樵谶@種情況下,通常透視關(guān)系之下不再保存的平行關(guān)系,也會在仿射相機(jī)中保留下來。一般性的透視關(guān)系中不保留平行關(guān)系的例子見[8]。因?yàn)槠渚€性性,仿射相機(jī)可以用更簡單的,非齊次坐標(biāo)系的表達(dá)方式,如:
其中 ,并且
是一個(gè)二維向量,表示圖像的中心。
在仿射相機(jī)中,從不同視角觀察到的圖像的點(diǎn)之間,可以通過一個(gè)簡單的 仿射變換進(jìn)行轉(zhuǎn)換。
弱透視相機(jī)(weak perspective camera)
最常見的,對于相機(jī)的假設(shè)莫過于是假設(shè)其是弱透視相機(jī)(weak perspective camera)[10]了。弱透視相機(jī)是仿射相機(jī)的一種,其最簡單的形式是(9),其中的 Z a v e Z_{ave} Zave?是相機(jī)到物體的平均深度,對于某個(gè)場景而言,是一個(gè)常數(shù); f 是焦距。
如果轉(zhuǎn)換成公式(8)的那種形式,那么有:
最終得到投影后的坐標(biāo)為:
在弱透視相機(jī)中,我們用平均深度,一個(gè)常數(shù) ?去代替了每個(gè)點(diǎn)的深度
,從而使得分析變得簡單。但是要滿足弱透視的要求,需要滿足幾個(gè)假設(shè)
沿著光軸上的,物體的深度的平均差別,也就是
,需要遠(yuǎn)遠(yuǎn)小于
?。
視角場(filed of view)(也就是觀察某個(gè)物體點(diǎn)的夾角,
必須足夠小。
下面給出證明。
在考慮所有點(diǎn)的深度情況下,我們在?的基礎(chǔ)上加上每個(gè)點(diǎn)的偏差
,并且利用泰勒展開,有:
當(dāng) 時(shí),只有零階項(xiàng)保留下來了,其他高階項(xiàng)都趨向于0,其在圖像上表現(xiàn)出來的誤差就體現(xiàn)在
?:
因此,當(dāng)焦距 f 比較小時(shí),視角場 足夠小,或者物體表面深度的差別
足夠小時(shí),其弱透視模型都可以成立。
Reference
[1]. http://www.cse.iitd.ernet.in/~suban/vision/affine/node5.html
[2]. http://www.cse.iitd.ernet.in/~suban/vision/affine/node4.html
[3]. http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/UESHIBA1/node5.html
[4]. http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/UESHIBA1/node4.html
[5]. http://www.cse.iitd.ernet.in/~suban/vision/affine/node3.html
[6]. https://blog.csdn.net/LoseInVain/article/details/102756630
[7]. https://blog.csdn.net/LoseInVain/article/details/102869987
[8]. https://blog.csdn.net/LoseInVain/article/details/102756630
[9]. https://blog.csdn.net/LoseInVain/article/details/102632940
[10].https://blog.csdn.net/LoseInVain/article/details/102698703