相機中的透視投影幾何——討論相機中的正交投影,弱透視投影以及透視的一些性質

相機中的透視投影幾何——討論相機中的正交投影,弱透視投影以及透視的一些性質
2019/10/22 FesianXu

前言

相機中的成像其本質是從3D實體世界中的物體投影到2D成像平面上,在這個過程中存在着許多投影相關的內容,本文討論了一些透視投影的內容,作爲筆者在學習過程中的筆記。如有謬誤,請聯繫指正。轉載請註明出處。

\nabla 聯繫方式:
e-mail: [email protected]
QQ: 973926198
github: https://github.com/FesianXu


相機的針孔模型

我們曾經在[1]中討論過關於相機的針孔模型的話題,這裏我們要再次提起下這個模型。針孔模型(pinhole model) 是最簡單的可以成像的“設備”,然而其可以精確地得到 透視投影(Perspective Projection) 的幾何信息,這裏所說的透視投影,定義爲:

將三維物體的信息映射到二維平面上,稱之爲透視投影。( Such a mapping from three dimensions onto two dimensions is called perspective projection. )

在這裏插入圖片描述

Fig 1.1 相機的針孔模型及其透視投影成像。

在針孔模型中,光線通過一個無限小的孔,並且在成像平面上呈現出倒像。呈現出倒像不方便我們的分析,因此我們在分析時通常假設成像平面在焦點之前,距離同樣也是焦距(未歸一化之前,歸一化之後距離就是1了,稱之爲歸一化座標系)。

透視投影的方程

我們需要用代數方式描述透視投影中的比例關係,如圖Fig 2.1所示,根據相似三角形的知識,我們有:
OABOABOBOB=ABABfz=rr(2.1) 從OA^{\prime}B^{\prime}和OAB的關係,有: \\\begin{aligned}\dfrac{OB^{\prime}}{OB} &= \dfrac{A^{\prime}B^{\prime}}{AB} \\ & \Rightarrow \\\dfrac{f}{z} &= \dfrac{r^{\prime}}{r}\end{aligned}\tag{2.1}

ABCABCBCBC=ACAC=ABABxx=yy=rr(2.2) 從ABC到A^{\prime}B^{\prime}C^{\prime}的關係,有: \\\begin{aligned}\dfrac{BC}{B^{\prime}C^{\prime}} &= \dfrac{AC}{A^{\prime}C^{\prime}} = \dfrac{AB}{A^{\prime}B^{\prime}} \\& \Rightarrow \\\dfrac{x}{x^{\prime}} &= \dfrac{y}{y^{\prime}} = \dfrac{r}{r^{\prime}}\end{aligned}\tag{2.2}

其中的OB=fOB^{\prime} = f是焦距。

聯合公式(2.1)和(2.2),我們有透視投影公式:
x=xfzy=yfzz=f(2.3) \begin{aligned}x^{\prime} &= \dfrac{xf}{z} \\y^{\prime} &= \dfrac{yf}{z} \\z^{\prime} &= f \end{aligned}\tag{2.3}

在這裏插入圖片描述

Fig 2.1 透視投影示意圖。

用矩陣形式表達就是:
[xhyhzhw]=[f0000f0000f00010][xyz1](2.4) \left[\begin{matrix}x_h \\y_h \\z_h \\w\end{matrix}\right] = \left[\begin{matrix}f & 0 & 0 & 0 \\0 & f & 0 & 0 \\0 & 0 & f & 0 \\0 & 0 & 1 & 0\end{matrix}\right]\left[\begin{matrix}x \\y \\z \\1\end{matrix}\right]\tag{2.4}

透視投影的若干性質

  1. 多對一映射,在透視投影中,已知了投影點AA^{\prime}之後,其實體點AA並不是唯一的,而是存在於過焦點連線OAOA^{\prime}上的任意一點都有可能(不過要在AA^{\prime}之後呢,所以應該是在OAOA^{\prime}的延長射線上。)
  2. 放縮和投影縮放。
    • 當一個平面或者一條直線平行於成像平面時,透視投影的影響其實就是對這個平面/直線進行了縮放(scaling)。
    • 當一個平面或者直線不平行於成像平面時,透視投影的會產生非線性的投影扭曲(projective distortion),可以將其分解成平行於成像平面的分量的縮放。

在這裏插入圖片描述

Fig 2.2 尺度縮放和投影縮放。

焦距的若干影響

如圖Fig 2.3 所示,不同焦距有着不同的影響,注意到AB=ABAB = A^{\prime}B^{\prime},我們發現,焦距越小,其視角越大,屬於廣角攝像頭(wide-angle camera);焦距越大,其視角越小,但是分辨率會提高,屬於望遠鏡攝像頭(more telescopic)。

在這裏插入圖片描述

Fig 2.3 不同焦距的影響。

在透視投影中,在投影過程中,實際的平行關係通常不能保留下來,實際上,透視投影保留不了角度,距離等大部分的幾何關係,但是保留了直線的“直”的這個屬性。[2]

正交透視投影和弱透視投影

注意到透視投影一般來說是非線性的,其不保留原始元素的大部分幾何屬性,比如平行,角度等,爲了分析方便,我們假設當焦距無限大時,我們在成像平面上會存在一個所謂的正交投影,這個正交投影可以保留平行關係。其每個投影線都是平行的。這個稱之爲正交投影(orthographic projection)

在這裏插入圖片描述

Fig 3.1 正交投影。

公式描述如:
x=xy=y(3.1) \begin{aligned}x^{\prime} &= x \\y^{\prime} &= y\end{aligned}\tag{3.1}
矩陣形式:
[xhyhzhw]=[1000010000000001][xyz1](3.2) \left[\begin{matrix}x_h \\y_h \\z_h \\w\end{matrix}\right] = \left[\begin{matrix}1 & 0 & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & 0 & 0 \\0 & 0 & 0 & 1\end{matrix}\right]\left[\begin{matrix}x \\y \\z \\1\end{matrix}\right]\tag{3.2}

正交投影的尺度大小是和原始物體的大小一致的,當考慮的正交頭像的尺度縮放時,就有了弱透視投影(weak perspective projection)

在這裏插入圖片描述

Fig 3.2 弱透視投影。

公式如:
x=xfzxfzˉy=yfzyfzˉ(3.3) \begin{aligned}x^{\prime} &= \dfrac{xf}{z} \approx \dfrac{xf}{\bar{z}} \\y^{\prime} &= \dfrac{yf}{z} \approx \dfrac{yf}{\bar{z}} \end{aligned}\tag{3.3}
矩陣形式:
[xhyhzhw]=[f0000f000000000zˉ][xyz1](3.2) \left[\begin{matrix}x_h \\y_h \\z_h \\w\end{matrix}\right] = \left[\begin{matrix}f & 0 & 0 & 0 \\0 & f & 0 & 0 \\0 & 0 & 0 & 0 \\0 & 0 & 0 & \bar{z}\end{matrix}\right]\left[\begin{matrix}x \\y \\z \\1\end{matrix}\right]\tag{3.2}

Reference

[1]. https://blog.csdn.net/LoseInVain/article/details/102632940

[2]. Hartley R, Zisserman A. Multiple View Geometry in Computer Vision[J]. Kybernetes, 2008, 30(9/10):1865 - 1872.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章