第一章:摄像机几何
1. 针孔模型&透镜
1.1 小孔成像原理
当将胶片直接放置在物体前方时,3D物体上的同一点会在胶片的多个位置产生成像;
因此,在物体和胶片之间放置一个带有针孔的隔板时,假设针孔大小只允许穿过一条光线,那么3D物体上的同一点只能有一条光线穿过小孔并在胶片上成像;
此处的小孔相当于就是光圈,光圈的尺寸越大,会有更多的光线穿过小孔,成像会越亮,但是同一个3D点会有多条光线穿过小孔并在胶片上的多个位置(相近)产生成像,导致物体成像模糊。光圈越小,物体成像越清晰,但是亮度也越暗;
1.2 针孔相机数学模型
P P P为空间3D点, P ′ P^{'} P′为成像后的像平面的2D点
将上面的三维示意图投影到二维平面( k − j k-j k−j平面,垂直于 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 k−i平面,垂直于 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(n−1)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−αcotθsinθβ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−αcotθsinθβ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. 其他摄像机模型
略