2014-04-08 22 views
7

最近,我一直在研究針孔攝像頭模型,但我與OpenCV提供的模型和「計算機視覺」中的多視圖幾何「」教科書混淆。針孔攝像頭模型的座標系

我知道以下照片是切換圖像平面和相機框架位置的簡化模型。爲了更好的說明和理解,並考慮到主點(u0,v0),兩幀之間的關係爲x=f(X/Z)+u0y=f(Y/Z)+v0

enter image description here

不過,我真的很困惑,因爲通常的圖像座標在第四象限的座標形式爲以下之一!

我可否直接用下列定義中的(x,y)代替上述「等效」針孔模型,這並不是真的有說服力嗎?

enter image description here

此外,如果一個對象是在區域(+ X,+ Y)象限在照相機座標(當然,Z> f)所示,在等效模型,應該出現在右側圖像座標的一半平面。但是,正常攝像機拍攝的圖像中的這種物體,應該位於左半邊。因此,對我來說這種模式是不合理的。

最後,我試圖根據原始模型推導出如下一個。

enter image description here

結果是x1=-f(X/Z)y1=-f(Y/Z)

然後,我試圖找出(x2,y2)座標和相機座標之間的關係。 結果是x2=-f(X/Z)+u0y2=-f(Y/Z)+v0

在(x3,y3)座標和相機座標之間,結果爲x3=-f(X/Z)+u0y3=f(Y/Z)+v0

無論我試過哪一​​個座標系,它們都不是x=f(X/Z)+u0y=f(Y/Z)+v0的形式,它們是由一些CV教科書提供的。 (x2,y2)座標或(x3,y3)座標的投影結果也是不合理的,因爲相同的原因:(+ X,+ Y,+ Z)區域中的對象在相機座標應該「出現」在相機拍攝的圖像的左半平面上。

任何人都可以指出我誤解的內容嗎?

+0

這個問題似乎是題外話題,因爲它是關於數學,而不是一個編程問題。 – Aurelius

+0

@Aurelius哪裏會是這個問題的好地方? – AldurDisciple

+0

我認爲這是正確的地方 - 實際上問題旨在描述opencv相機模型的實現,這正是針孔相機模型。 – marol

回答

6

我終於找到了這個問題,並證明我的解釋是正確的,通過實施Z.Zhang,通過從未知方向查看平面靈活攝像機校準。國際計算機視覺會議(ICCV'99),希臘科孚島,666-673頁,1999年9月

讓我從頭開始解釋一切。 以下照片是原始針孔照相機型號和圖像傳感器上的投影結果。但是,這不是我們應該在「形象」上看到的。

figure1

我們應該看到的是

figure2

比較圖1和圖2,我們應該看到,這張照片是上側,上下左右側右。 我的一位爲CMOS傳感器公司工作的朋友告訴我,內置的功能可以自動翻轉感知圖像。

由於我們想要模擬圖像座標和世界座標之間的關係,我們應該直接將圖像傳感器當作投影平面。之前我感到困惑的是,投影總是侷限於投影方面,這使我幾乎無法理解推導。

現在,我們應該從圖像傳感器的「背面」看藍色(View Perspective)箭頭。

結果是作爲圖2的X1-Y1向座標現在是向右和分別下來,所以方程是

x1=-f(X/Z) 
y1=-f(Y/Z) 

現在,在xy而言座標,該方程是

x=f(X/Z)+u0 
y=f(Y/Z)+v0 

這就是本文所描述的。

現在,讓我們看看在現實世界中不存在的等效模型,但有助於視覺解釋。

enter image description here

的原理是一樣的。 從投影中心看向像面。 結果是

figure 4

其中,投影的「F」是右側左。 方程是

x1=f(X/Z) 
y1=f(Y/Z) 

現在,在X-Y而言座標,該方程是

x=f(X/Z)+u0 
y=f(Y/Z)+v0 

其是描述了紙張。

最後但並非最不重要的,因爲在世界的單元座標爲毫米或英寸和座標的像素中,存在一些書描述爲

x=a*f(X/Z)+u0 
y=b*f(Y/Z)+v0 

x=fx(X/Z)+u0 
y=fy(Y/Z)+v0 
縮放因子的一個在圖像

其中fx=a*ffy=b*f

1

它實際上是更簡單:你的對象的座標應該在相機世界座標,其是x軸和y軸平行於像平面上的相應軸的座標系,例如,這裏:http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/OWENS/LECT9/node2.html

+0

歡迎來到SO!在這裏,我們通常會盡量避免只有鏈接的答案,所以如果目標出現故障,答案可以放在這裏。你可以保留這個鏈接,但是你能否總結鏈接中的一些要點? –

相關問題