第四讲——相机模型

(1)本节内容
1、针孔相机模型   2、误差来源——畸变 3、双目相机模型 

(2)需要的基础知识
单独成章节,不需要太多基础

(3)开发环境
编译平台:ubuntu16.04,
编译软件:IDE:Clion 编译器:Cmake 语言标准:C++11

(4)学习内容

1、针孔相机模型

小孔模型能够把三维世界中的物体投影到一个二维成像平面。同理,可以用这个简单的模型来解释相机的成像模型。 


对这个简单的针孔模型进行几何建模。设O−x−y−zO−x−y−z为相机坐标系,习惯上让z轴指向相机前方,x向右,y向下。O和为摄像机的光心,也是针孔模型中的针孔。现实世界的空间点P,经过小孔O投影之后,落在物理成像平面O′−x′−y′−z′上,成像点为P′。设P的坐标为[X,Y,Z]T,P′为[X′,Y′,Z′]T,并且设物理成像平面到小孔的距离为ff焦距)。那么,根据三角形相似关系,有: 

                                
其中负号表示成的像是倒立的。为了简化模型,可以将成像平面对称到相机前方,和三维空间点一起放在摄像机坐标系的同一侧,如图4-2中间的样子所示。这样可以把公式中的负号去掉,使式子更加简洁: 

                                                 

整理得: 

                                                                              
上式描述了点P和它的像之间的空间关系。不过,在相机中,最终获得的是一个个的像素,这需要在成像平面上对像进行采样和量化。为了描述传感器将感受到的光线转换成图像像素的过程,在物理成像平面上固定一个像素平面o−u−v。在像素平面上得到了P′的像素坐标:[u,v]T 
像素坐标系通常的定义方式是:原点o′位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行。像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。设像素坐标在u轴上缩放了α倍,在v上缩放了β倍。同时,原点平移了[cx,cy]T。那么,P′点的坐标与像素坐标[u,v]T的关系为:


该式中,把中间的量组成的矩阵称为相机的内参数矩阵K。

               

K有4个未知数和相机的构造相关,fx,fy和相机的焦距,像素的大小有关;cx,cy是平移的距离,和相机成像平面的大小有关。

求解K的过程叫做相机的标定,通常认为,相机的内参在出厂之后是固定的,不会在使用过程中发生变化。有的相机生产商会告诉相机的内参,而有时需要自己确定相机的内参,也就是所谓的标定。标定算法已成熟,在网络上可以找到大量的标定教学。

外参数

其中,p是图像中像点的像素坐标,K是相机的内参数矩阵,P是相机坐标系下的三维点坐标。
上面推导使用的三维点坐标是在相机坐标系下的,相机坐标系并不是一个“稳定”的坐标系,其会随着相机的移动而改变坐标的原点和各个坐标轴的方向,用该坐标系下坐标进行计算,显然不是一个明智的选择。需要引进一个稳定不变坐标系:世界坐标系,该坐标系是绝对不变,SLAM中的视觉里程计就是求解相机在世界坐标系下的运动轨迹。

设Pc是P在相机坐标系坐标,Pw是其在世界坐标系下的坐标,可以使用一个旋转矩阵R和一个平移向量t,将Pc变换为Pw      

                                                       

2、畸变


为了获得好的成像效果,在相机前方加了透镜。透镜的加入对成像过程中光线的传播会产生新的影响:一是透镜自身的形状对光线传播的影响,二是在机械组装过程中,透镜和成像平面不可能完全平行,这也会使得光线穿过透镜投影到成像平面时的位置发生变化。 
由透镜形状引起的畸变称之为径向畸变。它们主要分为两大类,桶形畸变和枕形畸变


切向畸变。 

                                    
平面上的任意一点p可以用笛卡尔坐标表示为[x,y]T,也可以写成极坐标的形式[r,θ]T, 
其中r表示点p离坐标系原点的距离,θ表示和水平轴的夹角。 
对于径向畸变,可以用一个多项式函数来描述畸变前后的坐标变化: 

                              
其中[x,y]T[x,y]T是为纠正的点的坐标,[xcorrccted,ycorrccted]T[xcorrccted,ycorrccted]T是纠正后的点的坐标,它们都是归一化平面上的点。 
对于切向畸变,有: 

                                                                  
通过五个畸变系数找到相机坐标系中的一点在像素平面上的正确位置:
将三维空间点投影到归一化平面。设它的归一化坐标为[x,y]T。
对归一化平面上的点进行径向畸变和切向畸变纠正。 

                                       
3.将纠正后的点通过内参数矩阵投影到像素平面,得到改点在图像上的正确位置。 

                                                                               

3、双目相机

                              

                                          

转载自https://blog.csdn.net/weixin_38593194/article/details/86348975

猜你喜欢

转载自www.cnblogs.com/CaptainLL/p/10825404.html