计算机视觉之三维重建——第一章:摄像机几何《深入浅出sfm和SLAM核心算法 (鲁鹏)》

第一章:摄像机几何

1. 针孔模型&透镜

1.1 小孔成像原理

在这里插入图片描述

当将胶片直接放置在物体前方时,3D物体上的同一点会在胶片的多个位置产生成像;

在这里插入图片描述

因此,在物体和胶片之间放置一个带有针孔的隔板时,假设针孔大小只允许穿过一条光线,那么3D物体上的同一点只能有一条光线穿过小孔并在胶片上成像;

在这里插入图片描述

此处的小孔相当于就是光圈,光圈的尺寸越大,会有更多的光线穿过小孔,成像会越亮,但是同一个3D点会有多条光线穿过小孔并在胶片上的多个位置(相近)产生成像,导致物体成像模糊。光圈越小,物体成像越清晰,但是亮度也越暗;

1.2 针孔相机数学模型

在这里插入图片描述

P P P为空间3D点, P ′ P^{'} P为成像后的像平面的2D点

在这里插入图片描述

将上面的三维示意图投影到二维平面( k − j k-j kj平面,垂直于 i i i轴)后,会产生一对相似三角形:
y ′ f = y z \frac{y^{'}}{f}=\frac{y}{z} fy=zy
进而得到:
y ′ = f y z y^{'} = f \frac{y}{z} y=fzy

同理,若将将上面的三维示意图投影到二维平面( k − i k-i ki平面,垂直于 j j j轴)后,会产生另一对相似三角形:
x ′ f = x z \frac{x^{'}}{f}=\frac{x}{z} fx=zx
进而得到:
x ′ = f x z x^{'} = f \frac{x}{z} x=fzx

1.3 透镜

在这里插入图片描述

  • 若是采用之前的隔板+小孔的方式,在成像清晰的的情况下,由于通过光线少,图片会非常暗。
  • 当增加透镜之后,透镜会将从同一3D反射的多条光线聚焦到胶片上的同一点,增加了图片的亮度;

(1)焦距

在这里插入图片描述

  • 所有平行于光轴的光线都会汇聚到焦点,焦点到透镜中心的距离成为焦距
  • 穿过中心的光线的方向不会发生改变;

(2)近轴折射模型(带透镜的小孔成像模型)

在这里插入图片描述

由于过光心的直线映射关系不变,加不加镜头小孔成像模型依然成立。此时,摄像机的焦距(小孔到成像平面的距离)变为:
z ′ = f + z 0 z^{'}=f+z_0 z=f+z0
根据折射定律:
f = R 2 ( n − 1 ) f = \frac{R}{2(n-1)} f=2(n1)R
其中,R为透镜球面半径,n为透镜折射系数。

(3)失焦

在这里插入图片描述

如上图所示:

  • 3D点P在的光线穿过透镜刚好汇聚于胶片上的一点;
  • 而比点P离透镜更近的一点的光线会汇聚于胶片后一点,则在胶片上就是发散的;
  • 同理,比点P离透镜更远的一点的光线会汇聚于胶片前方一点,则在胶片上也是发散的;

在这里插入图片描述

景深:在一定景深范围内,能成清晰的相;离开景深的地方,可能形成虚像,如微距摄像:

(4)径向畸变

在这里插入图片描述

径向畸变:图像像素点以畸变中心为中心,沿着径向产生的位置偏差,从而导致图像中所成的像发生形变。其可以分为枕形畸变和桶形畸变两种。

2. 摄像机几何

2.1 摄像机坐标系 - 像素坐标系

(1)3D摄像机坐标系 - 2D CCD坐标系

{ x ′ = f x z y ′ = f y z \left\{ \begin{aligned} x^{'} = f \frac{x}{z} \\\\ y^{'} = f \frac{y}{z} \end{aligned} \right. x=fzxy=fzy

(2)2D CCD坐标系 - 2D像素坐标系

{ u = f k x z + c x v = f l y z + c y \left\{ \begin{aligned} u = fk \frac{x}{z} + c_x\\\\ v = fl \frac{y}{z} + c_y \end{aligned} \right. u=fkzx+cxv=flzy+cy

CCD坐标系和像素坐标系存在两个不同之处:

  • 坐标系原点不一致:CCD坐标系的远点在图像中心,像素坐标系的原点在左上角, c x c_x cx c y c_y cy就是原点的平移量;
  • 度量单位不一致:CCD坐标系的单位为 m m m,像素坐标系的单位为pixel, k , l k, l k,l 分别为 x , y x,y x,y 方向的度量单位变换量,单位为 p i x e l / m pixel/m pixel/m

f k fk fk f l fl fl 表示为 α 和 β \alpha 和 \beta αβ可得:

{ u = α x z + c x v = β y z + c y \left\{ \begin{aligned} u = \alpha \frac{x}{z} + c_x\\\\ v = \beta \frac{y}{z} + c_y \end{aligned} \right. u=αzx+cxv=βzy+cy

(3)齐次坐标变换

P ′ = [ u v 1 ] = [ α x + c x z β y + c y z z ] = [ α 0 c x 0 0 β c y 0 0 0 1 0 ] [ x y z 1 ] P^{'}=\begin{bmatrix} u\\ v\\ 1\\ \end{bmatrix}=\begin{bmatrix} \alpha x + c_x z\\ \beta y + c_y z\\ z\\ \end{bmatrix}= \begin{bmatrix} \alpha & 0 & c_x & 0\\ 0 & \beta & c_y & 0\\ 0 & 0 & 1 & 0\\ \end{bmatrix}\begin{bmatrix} x\\ y\\ z\\ 1\\ \end{bmatrix} P= uv1 = αx+cxzβy+cyzz = α000β0cxcy1000 xyz1

(4)摄像机偏斜

在这里插入图片描述
P ′ = [ α − α c o t θ c x 0 0 β s i n θ c y 0 0 0 1 0 ] [ x y z 1 ] = M P = K [ I 0 ] P P^{'}= \begin{bmatrix} \alpha & -\alpha cot \theta & c_x & 0\\ 0 & \frac{\beta}{sin \theta} & c_y & 0\\ 0 & 0 & 1 & 0\\ \end{bmatrix}\begin{bmatrix} x\\ y\\ z\\ 1\\ \end{bmatrix}=MP=K\begin{bmatrix} I & 0\\ \end{bmatrix}P P= α00αcosinθβ0cxcy1000 xyz1 =MP=K[I0]P

(5)内参数矩阵K

K = [ α − α c o t θ c x 0 β s i n θ c y 0 0 1 ] K=\begin{bmatrix} \alpha & -\alpha cot \theta & c_x\\ 0 & \frac{\beta}{sin \theta} & c_y\\ 0 & 0 & 1\\ \end{bmatrix} K= α00αcosinθβ0cxcy1

  • 其中, K K K是摄像机内参数矩阵,内参数矩阵决定了摄像机坐标系下3D空间点到2D图像点的映射
  • K有个5自由度DOF

(6)规范化摄像机

P ′ = [ x y z ] = [ 1 0 0 0 0 1 0 0 0 0 1 0 ] [ x y z 1 ] P^{'}=\begin{bmatrix} x\\ y\\ z\\ \end{bmatrix}=\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ \end{bmatrix}\begin{bmatrix} x\\ y\\ z\\ 1\\ \end{bmatrix} P= xyz = 100010001000 xyz1

  • 规范化摄像机下的3D点的欧式坐标和和像素坐标系下的2D点的齐次坐标一致;
  • 此时的3D点对应2D点的欧式坐标为 [ x z y z ] \begin{bmatrix} \frac{x}{z}\\ \frac{y}{z}\\ \end{bmatrix} [zxzy]

2.2 像素坐标系-世界坐标系

(1)投影矩阵

在这里插入图片描述

投影矩阵有11个自由度,其中包含5个摄像机内参数+6个摄像机外参数。

在这里插入图片描述
在这里插入图片描述

(2)投影矩阵性质定理

在这里插入图片描述

3. 其他摄像机模型

4. 最小二乘解

4.1 线性方程组的最小二乘解

(1)线性方程组

在这里插入图片描述

(2)最小二乘解

在这里插入图片描述

4.2 齐次线性方程组的最小二乘解

(1)线性方程组

在这里插入图片描述

(2)最小二乘解

在这里插入图片描述

4.3 非线性方程组的最小二乘解

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xijuezhu8128/article/details/127209038