一般射影相機(jī)P通過x=PX將世界點(diǎn)X映射到圖像點(diǎn)x?;谶@種映射,我們將對(duì)相機(jī)模型進(jìn)行分解,進(jìn)一步展示幾何實(shí)體,如相機(jī)中心,如何起作用。我們所考慮的一些性質(zhì)僅應(yīng)用于有限射影相機(jī)和它們的推廣,而其他性質(zhì)則適用于一般相機(jī)。這種區(qū)別在上下文中很容易區(qū)分,有關(guān)性質(zhì)參考下表:一般射影相機(jī)可分解為若干部分,P=[M | p4],其中M是3×3矩陣。我們可以證明,如果M是非奇異矩陣,那么這是一個(gè)有限相機(jī),否則不是。相機(jī)中心.矩陣P有一維零空間,因?yàn)樗闹仁?,并且有4列。假設(shè)零空間是由4維向量C組成,即PC=0?,F(xiàn)在可以證明,C是相機(jī)中心,并以4維齊次向量組成。考慮包含C和三維空間中任意點(diǎn)A的直線。該直線上的點(diǎn)可以通過連接表示,X(λ)=λA+(1-λ)C。在映射x=PX作用下,該直線上的點(diǎn)投影是,x=Px=PX(λ)=λPA+(1-λ)PC=λPA因?yàn)镻C=0。直線上所有點(diǎn)均映射到同一個(gè)圖像點(diǎn)PA,這表示,該直線一定是經(jīng)過相機(jī)中心的射線,也推出C是相機(jī)中心的齊次表達(dá)式,因?yàn)閷?duì)于A的所有選擇,直線X(λ)都是通過相機(jī)中心的一條射線。這個(gè)結(jié)果在預(yù)料之內(nèi),因?yàn)閳D像點(diǎn)(0,0,0)T=PC并未定義,相機(jī)中心是空間中唯一的圖像沒有定義的點(diǎn)。在有限相機(jī)情況下,可直接求得相機(jī)中心,因?yàn)镃=( T,1)T顯然是P=KR[ I | - ]的零向量。這個(gè)結(jié)論是正確的,即使P的3×3子矩陣M是奇異的。在奇異情況下,盡管零向量的形式C=(dT,0)T,其中Md=0。相機(jī)中心是無窮遠(yuǎn)點(diǎn),這種相機(jī)模型會(huì)在5.3中討論。列向量.射影相機(jī)的列是三維向量,是具有幾何意義代表著某個(gè)圖像點(diǎn)。采用記號(hào)pi表示P的各列,i=1....4,那么p1,p2,p3分別表示X/Y/Z軸的消失點(diǎn)。這是因?yàn)檫@些點(diǎn)是軸方向的圖像。例如,x軸的方向D=(1,0,0,0)T,它成像在p1=PD,參考圖。列向量p4是世界原點(diǎn)的圖像。行向量.射影相機(jī)(5.12)的行是4維向量,從幾何角度理解是某個(gè)世界平面。這些平面會(huì)在下文討論。我們引入記號(hào),P的行記作PiT,所以有,(5.12),主平面.主平面是經(jīng)過相機(jī)中心且與圖像平面平行的平面。它是由成像在圖像無窮遠(yuǎn)直線上的點(diǎn)集X組成,更明確的說PX=(x,y,0)T。因此,當(dāng)且僅當(dāng)P3TX=0,點(diǎn)在相機(jī)的主平面上。換句話說,P3是表示相機(jī)主平面的向量。如果C是相機(jī)中心,那么PC=0,特別是P3TC=0,也就是C在相機(jī)主平面上。軸平面.思考在平面P1上的點(diǎn)集X。該集合滿足P1TX=0,所以成像在PX=(0,y,w)T,這是圖像y軸上的點(diǎn)。再次根據(jù)PC=0,那么P1TC=0,所以C也在平面P1上。因此,平面P1是由相機(jī)中心和圖像中直線x=0共同定義。類似地,平面P2是由相機(jī)中心和圖像中直線y=0共同定義。不同于主平面P3,軸平面P1和P2依賴于x和y軸圖像,也就是說,依賴于圖像坐標(biāo)系的選擇。因此,它們不如主平面與相機(jī)幾何耦合緊密。尤其是,平面P1和P2的相交線是連接相機(jī)中心與圖像原點(diǎn)的直線,也就是說圖像原點(diǎn)往后投影。這條直線一般與相機(jī)主軸不會(huì)重合。Pi產(chǎn)生的平面如圖所示.相機(jī)中心位于三個(gè)平面上,因?yàn)槿齻€(gè)平面兩兩不同,它們一定相交。從代數(shù)上將,相機(jī)中心在三個(gè)平面上的條件是,PC=0,這是上面給出的相機(jī)中心的原始方程。主點(diǎn).主軸是經(jīng)過相機(jī)中心且方向與P3垂直的直線。主軸與圖像平面的交點(diǎn)是主點(diǎn)。下面介紹如何求主點(diǎn)。一般來說,平面π=(π1,π2,π3,π4)T的法向量是(π1,π2,π3)T,這也可以用點(diǎn)(π1,π2,π3,0)T在無限遠(yuǎn)平面表示。在相機(jī)主平面P3的情況下,這個(gè)點(diǎn)(p31,p32,p33,0)T,我們定義為 3。使用相機(jī)矩陣P,該點(diǎn)投影到相機(jī)主點(diǎn)P 3。注,矩陣P=[M | p4]的左3×3矩陣塊與該公式有關(guān)。事實(shí)上,主點(diǎn)可根據(jù)x0=Mm3計(jì)算,其中m3T是M的第三行。主軸向量.盡管任意不在主平面的點(diǎn)X經(jīng)x=PX可映射到一個(gè)圖像點(diǎn),但現(xiàn)實(shí)中,空間中僅有一半的點(diǎn),那些位于相機(jī)前面的點(diǎn),可以成像。令P寫作P=[M | p4],已經(jīng)說過向量m3指向主軸方向。我們希望定義這個(gè)向量,以指向相機(jī)前面。但是,P的定義相差一個(gè)符號(hào),就產(chǎn)生多以問題:m3和-m3哪個(gè)指向正向,需要明確這種模糊定義。我們首先考慮關(guān)于相機(jī)坐標(biāo)系的坐標(biāo)。通過(5.5),3D點(diǎn)投影圖像點(diǎn)的方程是,x=PcamXcam=K[ I | 0]Xcam,其中Xcam是3D點(diǎn)在相機(jī)坐標(biāo)系下的坐標(biāo)。在這種情況下,觀察向量v=det(M)m3=(0,0,1)T在主軸的方向上指向相機(jī)前面,不受Pcam的尺度限制。例如,如果Pcam-->kPcam,那么v-->k4v具有相同方向。如果3D點(diǎn)以世界坐標(biāo)表示,那么P=kK[ R | -R ]=[M | p4],這里M=kKR。因?yàn)閐et(R)>0,所以向量v=det(M)m3不受尺度比例影響。概括起來:- v=det(M)m3表示主軸方向的向量,指向相機(jī)前面。
5.2.2 射影相機(jī)對(duì)點(diǎn)的作用前向射影.正如我們所見,一般射影相機(jī)通過映射關(guān)系x=PX將空間點(diǎn)X映射到圖像點(diǎn)x。無窮遠(yuǎn)平面上的點(diǎn)D=(dT,0)T表示消失的點(diǎn),這種點(diǎn)映射為,反向射影.若給定圖像中點(diǎn)x,我們需要求解空間中某點(diǎn)集映射到該點(diǎn)x。該集合組成空間中一條射線經(jīng)過相機(jī)中心。射線的形式可通過幾種方法確定,依賴于我們想怎樣表示空間中的直線。這里先采用兩點(diǎn)連接表示直線的方法。我們知道兩點(diǎn)在射線上,一個(gè)是相機(jī)中心C(PC=0),另一個(gè)是點(diǎn)P+x,其中P+是P的偽逆。P的偽逆是矩陣P+=PT(PPT)-1,即PP+=I。點(diǎn)P+x在射線上,因?yàn)樗队爸義,因?yàn)镻(P+x)=Ix=x。那么射線就是這兩個(gè)點(diǎn)的連線,(5.13),在有限相機(jī)情況下,推導(dǎo)另外一個(gè)表達(dá)式。記P=[M | p4],相機(jī)中心是 =-M-1p4。圖像點(diǎn)x向后投影的射線與無窮遠(yuǎn)平面相交于點(diǎn)D=((M-1x)T,0)T,D提供了射線上的第二個(gè)點(diǎn)。用兩點(diǎn)連接寫下射線,(5.14)接下來,我們思考位于相機(jī)主點(diǎn)前或后的點(diǎn)的距離?,F(xiàn)有相機(jī)矩陣P=[M | p4],將三維空間的點(diǎn)X=(X,Y,Z,1)T=( T,1)T,投影到圖像點(diǎn)x=w(x,y,1)T=PX。令C=( ,1)T表示相機(jī)中心,因?yàn)镻C=0那么w=P3TX=P3T(X-C)。但是,P3T(X-C)=m3T( - ),其中m3是主射線方向,所以w=m3T( - )可解釋為從相機(jī)中心到點(diǎn)X的射線與主射線方向的點(diǎn)積。如果相機(jī)矩陣標(biāo)準(zhǔn)化以滿足detM>0并且||m3||=1,那么m3是指向坐標(biāo)軸正方向的單位向量。那么w也可解釋為沿主射線方向從相機(jī)中心C到點(diǎn)X的距離,如圖所示。 任何相機(jī)矩陣通過乘以合理的系數(shù)可實(shí)現(xiàn)歸一化,但是為避免處理歸一化的相機(jī)矩陣,點(diǎn)的深度可根據(jù)下面計(jì)算:結(jié)論5.1.令X=(X,Y,Z,1)T表示3D點(diǎn),P=[M | p4]是有限相機(jī)的相機(jī)矩陣。假設(shè)P(X,Y,Z,1)T=w(x,y,1)T,那么(5.15),該式是在相機(jī)主平面前的點(diǎn)X的深度。如果點(diǎn)X在相機(jī)前,該式是有效的求解方法。我們可以證明,如果點(diǎn)或者相機(jī)矩陣P乘以一個(gè)常數(shù)k,深度depth(X;P)的值不會(huì)隨之改變。因此,depth(X;P)是獨(dú)立于X和P具體的齊次形式。P是表示一般射影相機(jī)的相機(jī)矩陣,我們希望根據(jù)P找到相機(jī)中心、相機(jī)方向和相機(jī)內(nèi)參。尋找相機(jī)中心.相機(jī)中心C是滿足PC=0的點(diǎn)。從數(shù)值角度講,這個(gè)右零向量可根據(jù)P的SVD分解求得。從幾何角度講中心C=(X,Y,Z,T)T可根據(jù)下式求解,尋找相機(jī)方向和內(nèi)參.在有限相機(jī)情況下,根據(jù)(5.11),通過RQ分解方法分解M=KR,我們可以很容易地找到K和R。這種分解將原矩陣分解為一個(gè)上三角陣和一個(gè)正交陣。矩陣R確定相機(jī)方向,而K是標(biāo)定矩陣。為避免分解存在模糊性,可要求K的對(duì)角項(xiàng)必須是正數(shù),因此矩陣K的形式(5.10),(x0,y0)是主點(diǎn)坐標(biāo);P=[M | -M ],相機(jī)中心坐標(biāo) =(1000,2000,1500)T,矩陣M可分解為什么時(shí)候s≠0?如5.1部分所述,真正的CCD相機(jī)僅有四個(gè)相機(jī)參數(shù),因?yàn)橐话鉺=0。如果s≠0,那么這可以解釋為,CCD陣列數(shù)組中像素元素發(fā)生扭曲,以至于x和y軸不垂直,一般這不太可能發(fā)生。在現(xiàn)實(shí)中,非零扭曲參數(shù)可能因?yàn)榕臄z圖片得到的照片而產(chǎn)生,例如如果照片是重復(fù)拍攝的,或者底片放大。設(shè)想針孔相機(jī)拍攝的照片被放大,透鏡的軸不在垂直于成像平面或者被放大圖像的平面。最嚴(yán)重的的扭曲,可能是因?yàn)椤坝蓤D像取像”而產(chǎn)生,是一種平面單應(yīng)。假設(shè)原始(有限)相機(jī)用矩陣P表示,那么表示圖片的圖像的相機(jī)是HP,這里H是單應(yīng)矩陣。因?yàn)镠是非奇異矩陣,HP的左3×3矩陣塊是非奇異矩陣并且可分解為KR的乘積-K中s不必等于0。注:K和R不再是原始相機(jī)的標(biāo)定矩陣和方向。 另一方面,我們可以驗(yàn)證,對(duì)圖片取像的過程中不會(huì)改變相機(jī)中心。事實(shí)上,因?yàn)镠是非奇異矩陣,當(dāng)且僅當(dāng)PC=0時(shí),HPC=0。何種場合需要分解?如果相機(jī)P是根據(jù)(5.11)構(gòu)造,那么參數(shù)就很明確,無需進(jìn)行分解。所以問題出現(xiàn)--何種情況下我們會(huì)得到相機(jī),并且不清楚相機(jī)矩陣的分解?事實(shí)上,有許多方法進(jìn)行相機(jī)矩陣計(jì)算,分解未知相機(jī)是實(shí)際中常用的技能,例如,直接根據(jù)標(biāo)定計(jì)算相機(jī)--根據(jù)世界和圖像對(duì)應(yīng)點(diǎn)集合計(jì)算相機(jī)---或通過多視圖關(guān)機(jī)間接計(jì)算,然后根據(jù)這種關(guān)系計(jì)算投影矩陣。關(guān)于坐標(biāo)系方向的解釋.在相機(jī)模型和它的參數(shù)化(5.10)的過程中, 假設(shè)認(rèn)為,兩幅圖像和3D世界中的坐標(biāo)系是右手坐標(biāo)系。但是,測量圖像坐標(biāo)過程的共識(shí)是,向下是y軸的正向,因此定義左手坐標(biāo)系,與圖6.1相反。這種情況下,推薦的方法是,指定圖像點(diǎn)的y軸坐標(biāo)取負(fù),以保證坐標(biāo)系再次使用右手坐標(biāo)系。但即使圖像坐標(biāo)系是左手,結(jié)果也不會(huì)很嚴(yán)重。世界坐標(biāo)和圖像坐標(biāo)的關(guān)系仍然是通過3×4的相機(jī)矩陣表示。根據(jù)(5.11)采用(5.10)K式進(jìn)行的相機(jī)矩陣分解仍然是可行的,且αx和αy是正數(shù)。區(qū)別在于,R現(xiàn)在表示相機(jī)的方向是相對(duì)于負(fù)z軸。此外,相機(jī)前的點(diǎn),由(5.15)確定的點(diǎn)深度是負(fù)數(shù)而不是正數(shù)。如果記住這些,圖像中使用左手坐標(biāo)系也是允許的。目前為止的推導(dǎo)都默認(rèn)假設(shè),世界和圖像坐標(biāo)系是歐式。該想法源于射影幾何(例如方向?qū)?yīng)于無窮遠(yuǎn)平面上的點(diǎn)),并且齊次坐標(biāo)的記法使中心投影可以線性表示。 在后續(xù)的篇章中,我們將進(jìn)一步使用射影坐標(biāo)系。世界坐標(biāo)系采用射影坐標(biāo)系是很容易實(shí)現(xiàn)的;那么相機(jī)和世界坐標(biāo)系的變換將采用4×4齊次矩陣表示,Xcam=HX,從3維射影空間到圖像的映射仍可采用秩為3的3×4矩陣P表示。事實(shí)上,一般射影相機(jī)都是三維射影空間到二維射影空間的映射,這涉及一個(gè)三維空間的射影變換、一個(gè)從3維空間到圖像的射影、圖像的射影變換的復(fù)合。這可以通過銜接矩陣表示這種映射,但是,記住相機(jī)是歐式的,這點(diǎn)很重要,而且不能簡單的因?yàn)槲覀冇幸粋€(gè)相機(jī)的投影模型就可以避開歐式幾何的概念。歐式和仿射釋義.盡管有限3×4矩陣可以分解得到旋轉(zhuǎn)矩陣、標(biāo)定矩陣K等等,但是如果圖像和空間點(diǎn)在合適的坐標(biāo)系下時(shí),參數(shù)的歐式解釋才有意義。在分解的情況下,圖像和空間都需要?dú)W式坐標(biāo)系。另一方面,如果相機(jī)和世界坐標(biāo)系都是射影的,P的零向量作為相機(jī)中心的解釋才有效--這個(gè)解釋僅要求射影概念中的共線性。P3作為主平面的釋義要求,圖像和世界坐標(biāo)系至少是仿射坐標(biāo)系。最后,m3作為主軸(射線)的釋義要求,一個(gè)仿射圖像坐標(biāo)系和一個(gè)歐式世界坐標(biāo)系,這樣才能使垂直于主平面的概念有意義。
|