(学习笔记)摄像机模型与标定——相机模型

下面理解部分错误,过几天进行修改。

在计算机视觉中,我们就是利用相机模型将三维空间点与二维图像点联系起来的。在实际中,往往有数学模型来描述摄像机模型,摄像机模型有很多,但是一般分为针孔模型(线性模型)和非线性模型。

1、线性模型

可用针孔模型来近似表示任一点P(Xc,Yc,Zc)在像平面的投影位置,也就是说,任一点P(Xc,Yc,Zc)的投影点p(x,y)都是OP(即光心(投影中心)与点P(Xc,Yc,Zc)的连线)与像平面的交点如上一篇文章中的图2.2。对应比例关系可得:



(说明:Xc的c下表表示camera相机,上述公式是在相机坐标系内,利用三角形相似原理,即x/f=Xc/Z,其中上述公式的单位为毫米,f表示焦距单位毫米)

上式可以用齐次坐标与矩阵的形式表示为:



将上一篇文章中的(2.3)和(2.4)代入(2.6)式就可以得到点P的世界坐标与其投影坐标(u,v)之间的关系为:



(说明:上述公式中完成了从世界坐标系到图像坐标系的转变,中间经过了相机坐标系的过度,Xw中的w表示world世界,单位为毫米,而u,v是的 单位为像素,即完成了从毫米——像素的转换。)

其中ax=f/dx,ay=f/dy;M是3×4的矩阵—投影矩阵,M1完全由相机的内参数ax,ay,u0,v0决定,(u0,v0)为主点坐标,ax,ay分别表示图像u轴和v轴上的尺度因子,M2则完全由相机的外部参数决定。而相机标定就是确定相机的内外参数。

由式(2.7)可知,若已知相机的内外参数,则相当于已知投影矩阵M.当已知M和空间点P的坐标:矢量Xw=(Xw,Yw,Zw,1)T,(矢量Xw上面有一个矢量标识杠,T表示矢量的转置)。式(2.7)可以给出三个方程,消去Zc就可以得到其投影点p的坐标(u,v)(其实也就是我用一个相机就可以拍摄一个物体的图片了)。但是由于M为3×4不可逆矩阵,当 点P的投影坐标(u,v)和投影矩阵M为已知时,我们只能得到关于Xw,Yw,Zw的两个线性方程,即射线OP的方程,由上一篇图2.2我们可以看出,位于射线OP上的所有空间点的投影点(即图像点)都是p点。所以不能唯一确定空间点P的世界坐标矢量Xw.

所以,为了得到空间物体的三维世界坐标,就必须有两个或更多的相机构成立体视觉系统模型才能实现。
(学习笔记)摄像机模型与标定——相机模型

2、非线性相机模型

在实际的成像过程中,考虑镜头的失真,一般都存在非线性畸变,所以线性模型不能准确描述成像几何关系。非线性畸可用下列公式描述:







若考虑非线性畸变,则对相机标定时需要使用非线性优化算法。而有研究表明引入过多的非线性参入(如离心畸变和薄棱畸变)不仅不能提高精度,还会引起解的不稳定。一般情况下径向畸变就足以描述非线性畸变,所有本课题只是考虑径向畸变。则将式(2.9)中的径向畸变代入式(2.8)可得:



OpenCV中讲解:

从制作上讲,从制作一个”球形“透镜比制作一个数学上理想的透镜更容易。故产生了径向畸变。

从机械方面讲,也很难把透镜和成像仪保持平衡。故产生了切向畸变。

1、径向畸变

对径向畸变,成像仪中心(光学中心)是畸变为0,随着向边缘移动,畸变越来越严重。故我们可以用在r=0处的泰勒级数展开的前几项来定量描述。

对于便宜的网络摄像机,我们通常使用前两项,其中通常第一项为k1,而第二项为k2。对畸变很大的摄像机,比如鱼眼透镜,我们使用第三个径向畸变项k3。通常成像仪某点的径向位置按下式调节:



这里(x,y)是畸变点在成像仪上的原始位置,(xcorrected,ycorrected)表示矫正后的新位置。

2、切向畸变

切向畸变是由于透镜制造上的缺陷使得透镜本身与图像平面不平行而产生的。径向畸变可以有两个额外的参数p1和p2来描述,如下:



因此总共有5个我们需要的畸变参数。由于在OpenCV程序中5个参数是必需的,所以它们被放置到一个畸变向量中,这是一个5×1的矩阵,按顺序依次包含k1,k2,p1,p2和k3。

3、平行双目立体视觉模型

通过针孔成像模型的分析可知,为了由像点坐标唯一的确定世界三维坐标,就必须通过两个或者多个相机来共同完成。通过两个相隔一定距离的相机来实现对3D场景的成像,就是双目成像,也称为立体视觉成像。相机拍摄景物时,先把两部相机的光轴汇聚于感兴趣的物体上,则两个光轴的交点称为汇聚点,而该点到基线中心的距离称为汇聚距离。当汇聚的距离有限时,双目立体视觉系统统称为汇聚式双目立体视觉模型;当汇聚距离无线远时,双目立体视觉系统就被成为平行式双目立体视觉模型。本文研究的是平行双目立体视觉系统,下面着重介绍一下平行双目立体视觉模型。

如图2.3所示,当目标距离远远大于焦距时,可假定透镜中心与像平面的距离等于摄像机的焦距f(=OlCl=OrCr)。两光轴平行且距离(即基线)为2h。世界坐标系定义为OXYZ,左右图像平面都与相机平面XOY平行,其中Ol、Or分别为左图像与右图像的中心(即左右图像局部坐标系的原点,Xl,Xr分别表示左右相机局部坐标系的X轴),Cl和Cr分别为左右相机的光心,Z轴表示到摄像机(在Z=0处)的距离。X轴表示“水平”距离(Y轴朝负面而去,没有出现,即满足右手坐标准则)。X=0是右相机光心位置。光心即投影中心。



假设三维空间点P(X,Y,Z)的像在左、右两个像平面上的投影分别是Pl(xl,yl)和Pr(xr,yr)(其中xl,yl,xr,yr分别表示投影点在每个图像局部坐标系即2.1节所讲的图像坐标系O1xy中的坐标)。由小孔成像原理可知:P,Cl,Pl三点共线,则由三角相似,可得:

(这里我只是把内容以图片的形式贴出来,不在手写了,论文中下面部分存在是错误的)











下面内容摘自:西安工业大学 基于双目立体视觉的图像匹配与三维重建 张海波

5、基于双目立体视觉技术的三维重建

摄像机通过透视变换将物体的三维信息转换为二维图像,因为二维图像中的点与三维物体上的点可以通过某种对应关系相互转换,也就是说,可以从不同方向拍摄的同一空间点的两幅图像中的依据该对应关系反推出三维物体的立体空间位置。这就是双目立体视觉中三维信息获取的过程。两幅图像通过立体匹配可得到各特征点的视差信息,根据视差信息确定各点的深度信息,最终获得被测物体的三维信息。

5.1 双目立体视觉三维测量原理

如图5.1所示,两台摄像机的镜头中心或光学中心之间的距离称为双目视觉系统的基线B,利用双目视觉成像系统可以确定具有像平面坐标点(x1,y1)和(x2,y2)的三维空间点W的世界坐标。



1)两台摄像机相同且它们的摄像机坐标系统各对应轴精确平行(光轴平行)

图5.2给出了两台摄像机镜头连线所在平面(XZ平面)。将世界坐标系设置在第一台摄像机坐标系上,即世界坐标系和第一台摄像机的摄像机坐标系重合。



根据摄像机坐标系与世界坐标系重合情况下的透视变换公式,三维空间点W的X轴坐标表示为:



式中X1和Z1为三维空间点形在世界坐标系(此时世界坐标系与第一个摄像机坐标系重合)中的X轴和Z轴坐标。同理,如果将世界坐标系设置在第二台摄像机上,则W点在X轴的坐标可表示为:



因为基线长度是B且三维空间点W的Z轴坐标对两台摄像机坐标系统是一样的,所以有:



将式(5.3)带入式(5.1)和式(5.2),得



式(5.6)把三维空间点与像平面之间的距离Z,即三维信息中的深度信息,与视差D(三维点对应的像坐标x2和x1之差)直接联系起来。视差的大小直接与深度有关,所以视差包含了物体的三维空间信息。通过视差就可以求得三维空间点到摄像机的距离,确定三维空间点在世界坐标系中的坐标。

如果视差D可以确定并且已知两台摄像机之间的基线距离和摄像机的焦距,很容易计算出三维空间点W的Z轴坐标。另外Z轴坐标确定后点W的世界坐标X,Y轴坐标可用(x1,y1)和(x2,y2)借助透视变换得到,即:



这样,通过三维空间点在两台摄像机的成像视差,可求出空间点的三维坐标。因此,对于两台摄像机平面上的任意一点,只要能够在另一台摄像机平面上找到对应的匹配点(即两者是空间同一点在两台摄像机面上的像点),就可以通过视差确定出该点的三维空间点。

(说明:对于上述公式,我们如果设置相机1为参考世界坐标系,则空间三维点的计算通过X1,Y1的表达式进行计算,反之对于相机2也是同样的道理)。

个人理解部分:



在上图,我们选择左图像的中心O1为世界坐标原点。M表示世界坐标系中的一点,p1和p2表示该点经过透镜投影到画布上的位置。设p1点为(x1,y1),p2点为(x2,y2),(这里点p1和点p2均是在世界坐标系中的坐标,即相对于O1点的坐标,不要为上面的标号所迷糊,切记!因为我们下面的推导就是针对如此的)M点为(X,Y,Z)。我们知道OpenCV坐标系中图中R1和R2为图像平面的原点,即相当于p1,p2的参考点的同时变化。这里,我们知道两个图像分辨率是一样的,即两个图像的平面是一样的大小,我们应用的相似三角形的知识,故我们只需要确保在列出的比例关系中,能够保存长度是正的就可以了。

首先我们要证明一点,上图中直线O1p1和直线MO3是平行的,利用高中所学的知识:



我们知道了O1p1和MO3是平行的,那么就可以知道三角形O1p1D和三角形MO3A相似,又因为线段O1p1和线段MO3的比值等于线段p1C1和线段C1O3的比值,即等于f/Z-f。

从上图我们知道,点p1的x1,y1均小于0。我们现在要列出点p1和点p2的坐标,以及额外的已知参数与真实点M坐标之间的关系。由线段p1D=0-x1,线段O3A=X,那么我们就可以得到如下的一个公式:



同理我们对于点p1的y1坐标,也进行相似变换。即线段O1D=0-y1,线段MA=Y。那么我们可以得到如下的公式:



接下来我们要求解p2点的坐标x2,y2和M点坐标之间的关系,我们同样的利用三角形相似来找它们坐标之间的关系,我们同样可知道三角形O2p2E和三角形MO4A是相似的。

那么线段Ep2=x2-B,线段AO4=B-X,那么他们之间的比例还是满足f/Z-f,得到如下的公式:



总上所述,我们得到X,Y,Z坐标的计算公式:



为了方便下面的理解,我们附如下图:



我们知道上面的x1,y1,x2,y2的坐标均是针对世界坐标原点在O1处的情况,但是我们一般知道的是OpenCV图像中两个点的q1和q2的坐标,分别为(x11,y11),(x22,y22)。

我们就需要寻找x11,y11,x22,y22和x1,y1,x2,y2之间的关系。我们第一副图像大小为W*H,W表示OpenCV中X方向的长度,H表示OpenCV中Y方向的长度,那么点(W/2,H/2)就近似于图像的中间,即认为是世界坐标原点O1,由于分辨率相同,第二幅图像也有同样的大小。那么:

x1=x11-W/2;

y1=H/2-y11;

x2-x1=x22-x11+B

带入上述三个公式得:



那么我们,我们规定上述的f,x11,y11,B,单位均为像素,那么我们就可以得到M点以像素为单位的世界坐标,然后里面利用像素和毫米的关系可以得到真实的三维点的坐标,当然这里的坐标是有参考坐标系的。

再如,你或许可以在网上下载到下面的一篇文章:



上述文章中,打问号的部分应该是错误的,所谓的焦点就是光透过透镜汇聚的点就称为焦点。所以上述的三维世界原点的坐标应该是选了左相机的透镜中心,这样上述公式正好,和我上面推导的相吻合。即L和B是等价的,由于选择的参考系,沿着Z方向平移了f距离,所以我公式中的Z-f就是上图中的Z。还应注意上图中的z和Z是一样的,书写错误而已。我上面推导的计算Z的公式,我这里为了强调一下,我重新将其写下来:



我们这里的Z是图像平面中心到世界三维点的距离。然而我们经常看到如下的形式:



上述公式中的Z表示的是摄像机透镜中心到世界三维点的距离(也就是过三维点与相机平行的平面和相机平面,两个平面之间的距离)

,,这里我们约束f,B单位均为像素,x22,x11就是点在图像中的坐标,即OpenCV坐标系的下的坐标。如果我们想获取实际的距离,那么我们将像素转化为米制单位就好了。

OpenCV中的数学模型:



公式:



上述的数学模型是通过下面的模型获得的:



上图中,我们将图像平面关于针孔平面成镜像,因此OpenCV中的数学模型中的求解出来的Z,就是物体平面到针孔平面(透镜平面)之间的距离。

4、双目立体视觉三维测量数学模型

在计算机视觉中采用双目视觉方法进行三维重建,是指由两幅二维图像恢复物体三维几何形状的方法。三维测量和重建是紧随着摄像机标定之后关键的一步,可对视场中的点,线或曲线构成的轨迹或物体的轮廓进行定位和形状恢复。

如图5.4所示,对于空间物体表面任意一点P,如果用摄像机C1观察,它在摄像机C1的图像点为p1,但无法由p1知道P的三维位置。事实上,O1P连线上的任意一点的图像点都可认为是p1,因此通过p1的位置,只能确定出空间点位于O1P1连线上的某一位置,无法知道P点的深度,如果用C1,C2两台摄像机同时观察P点,并且在摄像机C1图像上点p1与在摄像机C2图像上点p2是空间同一点P的像点,则P点的位置是唯一确定的,为射线O1p1和O2p2上的交点。



假定已检测出p1和p2为空间点P在两台摄像机上对应的图像点。在两台摄像机都已标定的情况下,它们的投影矩阵分别为M1与M2,由摄像机模型





关于如何求解投影矩阵,OpenCV中有,下面给出一个截图,讲述了大题的操作步骤:



5、总结

1、有时候感觉参考了几篇下载的论文,看一些原理,里面出现的错误,弄的自己稀里糊涂,后来发现Learning OpenCV书中自带的要详细,而且也不会出现错误,好比上面我们在关于利用几何变换来求解三维空间点时,OpenCV书中给出了一个很好的图:



上图摄像机坐标系以左摄像机的投影中心为原点。通过上图,我们可以很容易的找到三角形之间的相似关系,也可以在理想的情况下,通过相似关系来求解三维点的坐标。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/61758.html

更多阅读

中小学教师职业道德规范学习笔记

中小学教师职业道德规范学习笔记一、依法执教。学习和宣传马列主义、毛泽东思想和邓--同志建设有中国特色社会主义理论,拥护党的基本路线,全面贯彻国家教育方针,自觉遵守《教师法》等法律法规,在教育教学中同党和国家的方针政策保持一

(学习笔记)摄像机模型与标定——摄像机标定

摄像机的内参数:摄像机内参数矩阵(fx,fy,cx,cy)和畸变系数(三个径向k1,k2,k3,两个切向p1,p2)摄像机的外参数:旋转向量(大小为1×3的矢量或旋转矩阵3×3)和平移向量(Tx,Ty,Tz)。这里我们讲解一下旋转向量:旋转向量是旋转矩阵紧凑的变现形式

伤寒学习笔记(下

伤寒学习笔记---14,桂枝用量问题?学习仲景药法,涉及用量问题。深入考证,固然不必,简单了解,实属必要。仅以桂枝为例,整理如下:基本资料:《现代中医药应用与研究大系》1985年版,简称《大系》。药法:凡例里说:“将其折合今之用量---,并结合笔者临床

关于闪光灯TTL的学习笔记

关于闪光灯TTL的学习笔记(转)俺注:一直对加闪光灯的拍摄比较疑惑,要知道并不是加开个闪光就一了百了的。特别是现在的专业闪灯,有好几种模式,都需要配合相机的测光使用。今天无意之间看到一篇解疑的文章,赶紧收集下来仔细学习。想学习下闪

声明:《(学习笔记)摄像机模型与标定——相机模型》为网友奔跑向日葵分享!如侵犯到您的合法权益请联系我们删除