三维重建学习(2):相机标定基础
前言
在相机标定过程中,我们会碰到一些概念,比如:摄像机模型、世界坐标系、图像坐标系等等。为便于理解推导,所以又整理了相关的笔记,介绍的都是些比较基础的概念,也比较容易。
相机模型
针孔相机模型
注:下面的两幅图片摘自:
http://blog.csdn.net/xuelabizp/article/details/50314633
上图是现实中针孔相机的成像模型,物体的投影与物体本身总是相反的。坐标也会是相反的,比较不方便。
正如前面所说的,实际的针孔相机模型,考虑起来不太方便,于是我们可以等效地表示成上图所示形式(相似三角形,比例相同)。
注:下图摘自:
https://www.cnblogs.com/Jessica-jie/p/6596450.html
如图是一个小孔模型。
- O点是相机中心,也就是小孔,同时也是整个相机坐标系的中心;
- z轴是相机的主轴;
- 坐标系oxyz构成了相机坐标系;
- q点是点Q在像平面上的投影,所在平面为图像坐标系;
- O1点为主点,主轴与像平面相交的点;
- 在像平面上的坐标系为图像坐标系,其x、y轴与相机坐标系的x、y轴相平行;
- O点到O1点的距离为相机的焦距f;
四个坐标系
摄像机中的坐标系有4个,均为右手坐标系,分别有:世界坐标系、相机坐标系、图像坐标系、像素坐标系。后面用几个简写字母分别表示:w、c、pic、pix。
坐标系之间的转换
世界坐标系 -> 相机坐标系
设某点在世界坐标系中的坐标为(xw,yw,zw) (xw,yw,zw),在相机坐标系中的矩阵为(xc,yc,zc)。
则两个坐标系之间的关系为:
其中: R为一个3×3的旋转矩阵,T是一个 3×1的矩阵,表示偏移;
表示成齐次形式:
⎡⎣⎢⎢⎢xcyczc1⎤⎦⎥⎥⎥=[R0t1]⎡⎣⎢⎢⎢xwywzw1⎤⎦⎥⎥⎥
确定 R需要3个参数,确定t也需要3个参数,总计6个参数,称为 外部参数。
相机坐标系 -> 图像坐标系
以O点为原点建立相机坐标系,点Q(xc,yc,zc)为相机坐标系空间中的任意一点,假设该点被光线投影到平面上的q(xpic,ypic)点上。
注意到小孔模型中的相似三角形关系,我们可以得到:
{xpic=fxczcypic=fyczc
写成矩阵形式:
zc⎡⎣⎢xpicypic1⎤⎦⎥=⎡⎣⎢f000f0001000⎤⎦⎥⋅⎡⎣⎢⎢⎢xcyczc1⎤⎦⎥⎥⎥
图像坐标系 -> 像素坐标系
这里看下这个图,很好理解:
先设每个像素的物理尺寸为 dx×dy(mm2) 。
那么对于点在像素坐标系中的坐标(u,v):
写成矩阵形式:
⎡⎣⎢uv1⎤⎦⎥=⎡⎣⎢⎢⎢⎢⎢1dx0001dy0u0v01⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢xpicypic1⎤⎦⎥
世界坐标系 -> 像素坐标系
把前面几个步骤都综合一下:
化简一下:
zc⎡⎣⎢uv1⎤⎦⎥=⎡⎣⎢fx000fy0u0v01000⎤⎦⎥⋅[R0t1]⎡⎣⎢⎢⎢xwywzw1⎤⎦⎥⎥⎥
其中: fx=fdx, fy=fdy。
透镜畸变
到前面为止的内容都是有关针孔相机模型的,但是针孔可以透过的光线太少,成像慢且不清晰,所以往往都会加上凸透镜以汇聚更多的光线。但是加上凸透镜之后,不可避免地,就会产生透镜畸变。透镜畸变有两种:径向畸变、切向畸变。
径向畸变
对于某些透镜,光线在远离透镜中心的地方比靠近中心的地方弯曲更厉害,产生“筒形”或“鱼眼”现象。
一般来讲,成像中兴点的径向畸变为0,越向边缘移动,畸变越严重。通常,径向畸变通过下面的公式来校正,常用偶次幂的泰勒公式描述径向畸变:
其中: (x,y)为畸变点在成像平面上的原始位置, r为该点到成像面中心的距离,(xcorrected,ycorrected)为校正后的新位置。
切向畸变
切向畸变是由于摄像机制造上的缺陷使得透镜本身与图像平面不平行而产生的,可定量描述为:
其中: (x,y)为畸变点在成像平面上的原始位置, r为该点到成像面中心的距离,(xcorrected,ycorrected)为校正后的新位置。
现在的摄像机一般不会产生切向畸变,所以通常不考虑其影响。
透镜畸变校正
我们进行透镜畸变校正,就是要确定k1、k2、k3、p1、p2这5个参数。
相机标定
参考资料:
总结
以上是生活随笔为你收集整理的三维重建学习(2):相机标定基础的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 三维重建学习(1):基础知识:旋转矩阵与
- 下一篇: 三维重建学习(3):张正友相机标定推导