一、单目相机模型
1.针孔摄像机(投影变换)
左边的图也描述了世界坐标系与相机坐标系的关系
在其中,实际上的光圈是有大小的,不能认为光圈无限小
针孔太大的时候会发现一个点上接收的光线多了,就会使图像不清晰。
1.1、透镜成像
在现代摄像机中,为了解决针孔摄像机成像清晰度和亮度之间的冲突,人们在摄像机小孔处装上镜头,利用这种可以聚焦或分散光线的光学设备来改善这个问题。摄像机的镜头有很多种类,在不同的应用场景下会采用不同材质(塑料、玻璃或晶体等)或多个光学零件的组合(反射镜、透射镜、棱镜等)。凸透镜是其中最基本的光学零件之一,带有镜头的摄像机成像也是基于凸透镜成像原理。
对应关系为
1.2、透镜成像问题
但是采用透镜会带来另外一些问题,比如失焦和畸变。
在图中P点发出的光线通过透镜可以汇聚到p,但这个性质并非适用于三维物体上的所有点,会导致与镜头不同距离的点发出的光线无法完全聚焦在胶片上,这部分图像就会失焦,即变"虚"。因此透镜成像具有一定的成像距离限制,在该距离内物体可以在胶片上清晰成像。在摄影领域,该距离也称为景深,微距摄像就是利用了这一属性,在景深范围内呈现清晰的像,在景深范围外图像虚化,以此构造出一种美感。
畸变矫正
2.一般相机模型(透视投影,相机参数)
在针孔摄像机模型中,三维空间中的点被映射到二维平面上,我们将这种三维到二维的映射称为投影变换。但是投影变换的结果并不直接对应于我们实际得到的数字图像。首先,数字图像中的点通常与图像平面中的点位于不同的参考系中;其次,数字图像是由离散的像素组成的,而图像平面中的点是连续的;最后,由于镜头的制作误差原因,摄像机可能会产生非线性失真,如径向畸变等。所以我们需要引入一些额外的摄像机参数对这些转换进行建模,以实现三维点到二维像素点的映射。
一般情况下,像素平面上每个像素的形状都是方形的,但由于摄像机传感器制作工艺的误差,像索可能会发生倾斜,使之不是方形而是近似平行四边形,这样便导致图像发生倾斜,像素坐标系x轴和y轴之间的夹角不再垂直,略大于或小于90。
假设为x轴和y轴的夹角,由于
可能不为90°,所以需要对摄像机模型进行进一步的修正,在M矩阵中加入
参数来表示像素倾斜情况:
相机内参数矩阵即为K:
则可把上述式子写为:
摄像机中点的映射都是基于摄像机坐标系的,当有多个摄像机的时候,我们就需要有统一的坐标系来描述——世界坐标系。在三维刚体运动中,我们知道两个坐标系间存在旋转和平移,可表示为:
再代入上面的式子:
相机外参数矩阵:(R t)
M称为透视投影矩阵
3.规范化摄像机
即K为一个三维的单位矩阵,内参数,
,
,
4.弱透视投影摄像机
当三维物体的深度远小于其与摄像机的距离时,即三维物体距离摄像机很远时,可以近似认为三维物体上的所有点(如人脸上眼睛凹鼻子凸)到摄像机成像平面的距离相等,此时这个摄像机就称为弱透视投影摄像机。
投影矩阵为:
在弱透视投影中向量,所以可写成:
于是有如下三维点到二维点的映射关系:
通常当物体距离摄像机较远时,我们以弱透视投影的模型进行计算,可以简化计算的复杂度。
5.正交投影摄像机
假设当摄像机焦距无限大,且物体距离摄像机足够远时,对象的透视效果会消除,同时在成像平面上会投影出与对象大小相同的图像,这种投影可以保留平行关系,其中每个投影线都是平行的。
对应点关系:
映射关系为:
二、双目相机模型
平行视图系统:
三、RGB-D相机模型
RGB-D相机模型是一种能够主动测量每个像素深度的相机模型。
相比于双目相机通过视差计算深度的方式,RGB-D相机的做法更为“主动”一些。它按照原理主要可以分为两大类:
1、是通过红外结构光(Structured Light)来测量像素距离,如Kinect 1代、Project Tango 1代、Intel RealSense等;
2、是通过飞行时间法(Time-of-flight,ToF)原理测量像素距离,如Kinect 2代和一些现有的ToF传感器等。
RGB-D相机通常包含一个普通的摄像头以及至少一个发射器和一个接收器。在测量深度时,相机会向探测目标发射一束光线(通常是红外光),然后根据返回的光信号计算物体离自身的距离。在结构光原理中,相机根据返回的结构光图案进行计算;而在ToF原理中,相机则根据光束的飞行时间来确定距离。完成深度测量后,RGB-D相机会将深度信息与彩色图像素进行配对,输出一一对应的彩色图和深度图。
然而,RGB-D相机也存在一些使用局限,比如使用范围受限、容易受到日光或其他传感器发射的红外光干扰、无法测量透射材质物体的位置等,同时在成本和功耗方面也有一些劣势。
注:
1、还需要自行了解世界坐标系、相机坐标系、归一化坐标系、像素坐标系之间的关系;
2、如图单目相机成像过程