相机中的透视投影几何——讨论相机中的正交投影,弱透视投影以及透视的一些性质

相机中的透视投影几何——讨论相机中的正交投影,弱透视投影以及透视的一些性质
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所示,根据相似三角形的知识,我们有:
O A B O A B O B O B = A B A B f z = r r (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}

A B C A B C B C B C = A C A C = A B A B x x = y y = r r (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}

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

联合公式(2.1)和(2.2),我们有透视投影公式:
x = x f z y = y f z z = 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 透视投影示意图。

用矩阵形式表达就是:
[ x h y h z h w ] = [ f 0 0 0 0 f 0 0 0 0 f 0 0 0 1 0 ] [ x y z 1 ] (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. 多对一映射,在透视投影中,已知了投影点 A A^{\prime} 之后,其实体点 A A 并不是唯一的,而是存在于过焦点连线 O A OA^{\prime} 上的任意一点都有可能(不过要在 A A^{\prime} 之后呢,所以应该是在 O A OA^{\prime} 的延长射线上。)
  2. 放缩和投影缩放。
    • 当一个平面或者一条直线平行于成像平面时,透视投影的影响其实就是对这个平面/直线进行了缩放(scaling)。
    • 当一个平面或者直线不平行于成像平面时,透视投影的会产生非线性的投影扭曲(projective distortion),可以将其分解成平行于成像平面的分量的缩放。

在这里插入图片描述

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

焦距的若干影响

如图Fig 2.3 所示,不同焦距有着不同的影响,注意到 A B = A B AB = A^{\prime}B^{\prime} ,我们发现,焦距越小,其视角越大,属于广角摄像头(wide-angle camera);焦距越大,其视角越小,但是分辨率会提高,属于望远镜摄像头(more telescopic)。

在这里插入图片描述

Fig 2.3 不同焦距的影响。

在透视投影中,在投影过程中,实际的平行关系通常不能保留下来,实际上,透视投影保留不了角度,距离等大部分的几何关系,但是保留了直线的“直”的这个属性。[2]

正交透视投影和弱透视投影

注意到透视投影一般来说是非线性的,其不保留原始元素的大部分几何属性,比如平行,角度等,为了分析方便,我们假设当焦距无限大时,我们在成像平面上会存在一个所谓的正交投影,这个正交投影可以保留平行关系。其每个投影线都是平行的。这个称之为正交投影(orthographic projection)

在这里插入图片描述

Fig 3.1 正交投影。

公式描述如:
x = x y = y (3.1) \begin{aligned}x^{\prime} &= x \\y^{\prime} &= y\end{aligned}\tag{3.1}
矩阵形式:
[ x h y h z h w ] = [ 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 ] [ x y z 1 ] (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 = x f z x f z ˉ y = y f z y f z ˉ (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}
矩阵形式:
[ x h y h z h w ] = [ f 0 0 0 0 f 0 0 0 0 0 0 0 0 0 z ˉ ] [ x y z 1 ] (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.

发布了111 篇原创文章 · 获赞 206 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/LoseInVain/article/details/102698703