图像处理之相机标定

一、为什么要相机标定

相机拍摄的实质就是把已知的三维图像成像为二维图像,这种成像本身是不可逆的,这个过程可以看做是一种函数变换,而我们需要通过二维图像将三维的图像还原出来就需要这种函数的逆变换,这种逆变换就是相机标定。通过相机标定,可以求出实际物体的物坐标(世界坐标)与成像坐标(像素坐标)的关系,继而当我们拥有二维图像坐标的时候就可以结合这种关系将三维图像重建,也可用于测距。盗图一张:

二、如何进行相机标定

简而言之,就是通过标定板让世界坐标与像素坐标进行一一对应,通过各种姿态的调整,找出世界坐标与像素坐标的关系。既然是世界坐标与像素坐标的关系,那就得相机结构固定,这种固定还包括焦距固定、光圈固定等。

相机标定共有四个坐标系:世界坐标系,相机坐标系,图像坐标系,像素坐标系。

世界坐标系:三维,物体实际存在的坐标系,单位为m

相机坐标系:三维,以相机为标准建立坐标系,其Z轴与相机成像的光轴重合,单位为m

图像坐标系:二维,相机成像的界面,其坐标原点为焦点,即相机坐标系与图像坐标系相垂直且相距焦距f,单位为m

像素坐标系:二维,其平面与图像坐标系重合,但其原点是图像坐标系的左上角,单位为个(像素),目的是从第一个像素读取,是相机拍摄后的实际图像

转换共四步:

第一步:世界坐标系(Xw,Yw,Zw)到相机坐标系(Xc,Yc,Zc),两个三维坐标系要想重合只需要经过旋转和平移即可,并且在相机坐标系固定后,这两种参数随着世界坐标系的变化而变化,所以需要多组标定板来测量这两种参数。

其中R为3*3矩阵(X、Y、Z三个方向各一个矩阵)用于旋转,T为3*1平移矩阵,所以旋转平移矩阵为4*4

第二步:相机坐标系(Xc,Yc,Zc)到理想图像坐标系(x,y)(不考虑畸变),相机是透镜成像,三维到二维即投影透视(远小近大),这两个坐标系的关系即他们的坐标原点均在光轴上,且相机坐标系XY平面与图像坐标系平行,透镜成像与小孔成像差不多,那么在相机坐标系下的图像可以通过三角形相似原理求出在图像坐标系下的图像

,其原理是三角形相似原理

其中fx=f/dx,fy=f/dy,f为焦距,dx、dy为每个像素点在图像坐标系x轴,y轴方向的尺寸

第三步:理想图像坐标系(Xp,Yp)到实际图像坐标系(Xc,Yc)(考虑畸变),主要是透镜畸变,分为径向畸变和切向畸变,这里会产生五个参数

第四步:实际图像坐标系(Xc,Yc)到像素坐标系(U,V),两个同处一个平面,所以只是一个换算关系。图像坐标系的坐标X或Y除以各个像素的长或宽再减去(有争议)像素坐标系原点在图像坐标系下的坐标即可得到像素点的准确坐标

换算成齐次坐标系为,其中(Uo,Vo)是像素坐标系原点在图像坐标系下的坐标,dx、dy为每个像素点在图像坐标系x轴,y轴方向的尺寸

所以世界坐标系(Xw,Yw,0)(因为假定在世界坐标系中物点所在平面过世界坐标系原点且与Zw轴垂直(也即棋盘平面与Xw-Yw平面重合,目的在于方便后续计算),所以Zw=0)到像素坐标系(U,V)转化为,这里引入的s为任意尺度的比例系数,(Uo,Vo)是像素坐标系原点在图像坐标系下的坐标,fx=f/dx,fy=f/dy,f为焦距,dx、dy为每个像素点在图像坐标系x轴,y轴方向的尺寸,r1、r2,t为旋转矩阵和平移矩阵

注:以上表达式字母不一致是因为懒得画,都是在其他大佬那截的......

然后按照旋转矩阵性质可求得五个内参进而求出四个外参,标定即可完成

具体过程参考以下三篇文章:

张洪龙. 基于结构光的室内场景精确三维重建技术研究[D].中国科学院大学(中国科学院深圳先进技术研究院),2018.

https://zhuanlan.zhihu.com/p/30813733

https://zhuanlan.zhihu.com/p/24651968

猜你喜欢

转载自blog.csdn.net/Foverve1/article/details/87799547