一般而言,只要是雙鏡頭以上所照出來的影像,在縫合時或多或少都會有 鬼影產生,主要是因為遠近差異所造成的,當兩張影像重合的部分同時有遠近的 影像時,你想要匹配(match)遠距離的景物的話,那麼近距離的景物就會有鬼影 產生,相反地,當你想要匹配近距離的景物時,遠距離的影像就會有鬼影產生。
所謂的鬼影,就是兩個匹配的像素點之間有差距(disparity),如圖 25 中,因為 在影像縫合時的 RANSAC,為了能符合大部份的像素點,所以近距離的紅色老鼠 的像素點就無法匹配而產生差距,也就是鬼影。當像素值之間的差距(disparity) 越大時,鬼影就越明顯。
圖 25 鬼影範例圖
接下來就是討論兩種擺設方式,對於鬼影所造成的影響。目前在做影像縫合
時,大多採取圖 26 的外擴式的相機擺法,而我們所要拿來比較的另一種擺詴方 式是圖 27 中的內向式相機擺詴方式。
圖 26 外擴式相機擺法
圖 27 內向式相機擺法
首先,我們從前面所談到的像素值的 disparity 來看看這兩種擺設方式所造
- 29 -
成的影響,從圖 26 和圖 27,我們把焦點(focal point)定義在相機前端,從兩 台相機的焦點的水平距離來看看兩種擺法所造成影像上像素點差距的影響。圖 28 是外擴式相機成像,P1 和 P2 是現實世界中的任兩點,水平距離 r1,垂直距 離 r2,而 K1、K2、K3 和 K4 分別是 P1、P2 在兩台相機上的呈像,原本應該成像 在相機後方,但是根據圖 29 的成像原理,最右邊的紅線是物體,原本影像應該 在焦點左邊,但是透過相似三角形,焦點左右兩邊的藍線是等長的,也就是我們 可以把藍線移到等效的距離上。因此,K1、K2、K3 和 K4 就是等效的相機影像。
d1 是物體和相機的距離。f 是相機的焦距。O1 和 O2 分別是兩台相機的焦點。θ 1 和θ2 是物體對應到兩台相機的張角。x1 是相機焦點的距離。定義好這些參數 就可以往下討論兩台相機的焦點的水平距離和影像上像素點 disparity 的關 係。
圖 28 外擴式相機成像
圖 29 成像原理
圖 30 是從圖 28 擷取出來,因為我們想要知道像素值的 disparity,知道相 機的焦距 f 還有物體的夾角之後,我們就可以從圖 30 得到像素值的 disparity,
f*θ就是像素點在影像上的距離,在做縫合時,K1 和 K3 要匹配在一起,K2 和 K4 要匹配在一起,因此就是想要把 K1、K2 這一段 f*θ1 和 K3、K4 這一段 f*θ2 這兩段縫合在一起,但是兩段不一樣長,因此就產生 disparity= f*θ1- f*θ2。
所以如果我們想要把 disparity 縮小,就是要縮小 f*θ1- f*θ2,但是 f 是固 定的,因此能改善的就是θ1- θ2,也就是盡量讓θ1 和θ2 越接近,那麼 disparity 就會越小。那麼要如何讓θ1- θ2 變小,主要影響的就是 X 的大小,
相機焦點的距離。我們可以預想相機焦點越接近,θ1 和θ2 會越接近,下面我 們用數學式子來詴著證明。
圖 30 像素點匹配
如果想從圖 28 直接得到θ1- θ2 和 X 的關係式並不是那麼容易,所以我們 把圖 28 簡化之後分成水平和垂直方向來討論,圖 31 是水平方向的示意圖,r1
- 31 - 求出來。從三角形 R2MO2 得到式(15),三角形 R2MO1 得到式(16),三角形 R1MO2
得到式(17),三角形 R1MO1 得到式(18)。
- 33 - 差,進而得到 disparity,就是任意兩點在相機成像時造成的 disparity。圖 33 中,θ11=θ7+θ8,θ22=θ5+θ6=θ4,θ33=θ3。
些合理的參數帶入,藉此觀察式子的變化,我們將物距 d1=200cm、水平方向的 物體距離 r1=100cm、2 號相機的焦點和右邊物體的距離 c=-50cm,這幾個變數給 定值之後,使用 MATLAB 做圖,X 軸是相機焦點距離,Y 軸是像素點差距(disparity),
相機焦點距離通常不會太遠,因此讓他從 0 變化到 200,200 算是非常遠的距離 了,但是我們只是想看看像素點差距的變化,畫出的圖形如從圖 34 可以看出來 disparity 隨著相機焦點距離越大而變大。所以相機焦點距離越大,所拍攝出來 的影像經過縫合後,鬼影會越明顯,也有可能會到無法縫合的程度。知道了相機 焦點距離和 disparity 的關係後,我們再來探討外擴式和內向式兩種擺法的相機 焦點距離大小。
圖 34 相機焦點距離和 disparity 關係圖