🗒️相机与图像
2023-12-27
| 2023-12-27
Words 1602Read Time 5 min

相机模型

描述相机将三维世界中的坐标点映射到二维图像平面的过程的模型叫做相机模型。其中最简单的是针孔模型。此外,由于相机镜头会产生畸变,也有必要研究畸变模型。

针孔相机模型

原理是小孔成像。
notion image
光心O即是小孔。在光心上建立相机坐标系,一般顺着镜头朝向,让Z轴指向前方,x轴向右,y轴向下。三维世界中的点P,经过小孔的投影,成像在P’。P’在物理成像平面O’-x’-y’上, 物理成像平面到光心的距离为焦距f。因此可以写出P和P’在相机坐标系下的坐标分别为
根据三角形相似,则有:
注意由于小孔成像是倒立的,因此有负号。但实际上从相机中读取出来的图像已经经过了处理,所以不需要考虑倒立的问题。因此我们等价地把成像平面对称到相机前方,位于三维世界中的点同侧。
notion image
则等价后的关系为:
这些式子描述了点P和其成像之间的关系,但所有的单位仍是长度。而我们从相机中读取的图像是像素。像素可以看做是在成像平面上进行采样和量化。
在成像平面上建立像素坐标系o’-u-v:原点o’位于图像左上角,u轴与x轴平行,方向向右;v轴与y轴平行,方向向下。在像素坐标系下得到P’点的像素坐标。像素坐标系与成像平面相差了一个缩放和一个平移。设像素坐标在u轴上缩放了倍,在v轴上缩放了倍。的单位是像素/米,将长度转化为像素。设原点平移了,单位都是像素, 那么P’的像素坐标为:
记为, 记为,则有:
把这个式子写成矩阵,用齐次坐标表示像素坐标:
稍做一下变换:
定义出的矩阵K称为相机内参数矩阵。相机的内参在出厂后就是固定的,不会变化。如果相机生产厂商没有给出内参,就需要自己通过一些算法确定相机的内参,这就是标定。
在以上的推导中,使用的是点P在相机坐标系下的坐标。如果使用P的世界坐标,则需要根据相机的位姿,将该世界坐标转换到相机坐标系下。相机的位姿用旋转矩阵R和平移向量t描述,则有:
(最后一步需要将齐次坐标转换为非齐次坐标)。相机的位姿R,t称为相机外参数。
此外,还可以将成像的过程看成是将一个世界坐标点转换到相机坐标系,再去掉最后一维(即深度)。完成这一操作相当于把最后一维归一化,得到点P在相机归一化平面上的投影:
notion image
归一化坐标可以看成相机前方z=1处平面上的一个点。z=1平面也称为归一化平面。归一化坐标在左乘内参就得到了像素坐标。
从这里也可以看出,如果对相机坐标同时乘以一个非零常数,其归一化坐标不变,说明深度信息在成像过程中丢失了。
成像过程中的几个坐标系的关系如图:
notion image

畸变模型

实际的相机不是小孔成像而是透镜成像,而透镜会引发畸变。由透镜形状引起的畸变叫做径向畸变。越靠近图像的边缘,畸变越明显。对于中心对称的透镜,畸变是径向对称的(光轴穿过图像中心,“径”是指垂直与光轴的方向,透镜的直径方向)。畸变可以分为桶形畸变和枕形畸变。
notion image
此外,在组装镜头的过程中可能透镜没有与成像面严格平行,产生的畸变叫做切向畸变。
对两种畸变用公式描述。采用归一化模型,设在归一化平面上有点p,坐标为. 将坐标写成极坐标的形式为, 径向畸变即是长度r发生了变化。切向畸变即是角度发生了变化。假设畸变呈多项式关系,则径向畸变:
切向畸变:
将上述两式联合,即可以求出归一化平面上一点畸变后的位置:
再将这个位置转化到像素平面上:
SLAM模型中的观测方程就是成像模型,包含了内参和外参。

RGB-D相机

Kinect2代相机采用ToF原理测量像素距离。ToF:Time of Flight, 飞行时间原理。相机向探测目标发射一束光线,根据发送到返回之间光束的飞行时间确定物体与自身的距离。
notion image

图像

notion image
在计算机中用二维数组表述图像,这样就不需要区分数值矩阵和图像了。对于宽度640像素,高度480像素的图像,建立480×640的二维数组。
因为二维数组的第一个下标表示行,第二个下标表示列;而行数决定了图像的高度,列数决定了图像的宽度。因此在访问坐标为[x,y]的像素的时候,要先写y值再写x值。
 
  • Computer Vision
  • 李群与李代数点云滤波
    Loading...