三维重建学习(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。

  1. 世界坐标系: (Xw,Yw,Zw) ,用户自己定义的三维空间坐标系,表示物体在空间的实际位置,用来秒速三维空间中物体与相机之间的坐标位置关系,度量值为米(m);
  2. 相机坐标系: (Xc,Yc,Zc) ,以相机的光心(前面的O点)为原点, Zc 轴与光轴重合,垂直于成像平面,度量值为米(m);
  3. 图像坐标系: (Xpic,Ypic) ,位于图像平面上,是个二维坐标系, Xpic Ypic 分别与相机坐标系中的 Xc Yc 相平行,度量值为米(m);
  4. 像素坐标系: (Xpix,Ypix) ,同样位于图像平面上,与图像坐标系的区别:一、以左上角为原点;二、单位为像素。也经常表示为 (u,v)
    这里写图片描述

坐标系之间的转换

世界坐标系 -> 相机坐标系

设某点在世界坐标系中的坐标为 (xw,yw,zw) (xw,yw,zw) ,在相机坐标系中的矩阵为 (xc,yc,zc)
则两个坐标系之间的关系为:

xcyczc=Rxwywzw+t

其中: R 为一个3×3的旋转矩阵,T是一个 3×1 的矩阵,表示偏移;
表示成齐次形式:
xcyczc1=[R0t1]xwywzw1

确定 R 需要3个参数,确定t也需要3个参数,总计6个参数,称为 外部参数

相机坐标系 -> 图像坐标系

O 点为原点建立相机坐标系,点Q(xc,yc,zc)为相机坐标系空间中的任意一点,假设该点被光线投影到平面上的 q(xpic,ypic) 点上。
注意到小孔模型中的相似三角形关系,我们可以得到:

fzc=xpicxc=ypicyc

{xpic=fxczcypic=fyczc

写成矩阵形式:
zcxpicypic1=f000f0001000xcyczc1

图像坐标系 -> 像素坐标系

这里看下这个图,很好理解:
这里写图片描述
先设每个像素的物理尺寸为 dx×dy(mm2)
那么对于点在像素坐标系中的坐标 (u,v)

u=u0+xpicdxv=v0+ypicdy

写成矩阵形式:
uv1=1dx0001dy0u0v01xpicypic1

世界坐标系 -> 像素坐标系

把前面几个步骤都综合一下:

zcuv1=1dx0001dy0u0v01f000f0001000[R0t1]xwywzw1

化简一下:
zcuv1=fx000fy0u0v01000[R0t1]xwywzw1

其中: fx=fdx fy=fdy

  1. 第一个矩阵中的 fx fy u0 v0 这4个参数称做相机的内部参数,因为他们只与相机有关,与其他因素无关;
  2. 第二个矩阵中的 R T,称作相机的外部参数,因为只要世界坐标系和相机坐标系的相对位置关系发生改变,它们就会改变,每一张图片的 R T都是唯一的;
  3. 单目摄像机标定就是在已知像素坐标系下的坐标和世界坐标系的坐标,求解出内部参数的过程。

透镜畸变

到前面为止的内容都是有关针孔相机模型的,但是针孔可以透过的光线太少,成像慢且不清晰,所以往往都会加上凸透镜以汇聚更多的光线。但是加上凸透镜之后,不可避免地,就会产生透镜畸变。透镜畸变有两种:径向畸变、切向畸变。

径向畸变

对于某些透镜,光线在远离透镜中心的地方比靠近中心的地方弯曲更厉害,产生“筒形”或“鱼眼”现象。
一般来讲,成像中兴点的径向畸变为0,越向边缘移动,畸变越严重。通常,径向畸变通过下面的公式来校正,常用偶次幂的泰勒公式描述径向畸变:

{xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)

其中: (x,y) 为畸变点在成像平面上的原始位置, r 为该点到成像面中心的距离,(xcorrected,ycorrected)为校正后的新位置。

切向畸变

切向畸变是由于摄像机制造上的缺陷使得透镜本身与图像平面不平行而产生的,可定量描述为:

{xcorrected=x+[2p1y+p2(r2+2x2)]ycorrected=y+[p1(r2+2y2)+2p2x]

其中: (x,y) 为畸变点在成像平面上的原始位置, r 为该点到成像面中心的距离,(xcorrected,ycorrected)为校正后的新位置。
现在的摄像机一般不会产生切向畸变,所以通常不考虑其影响。

透镜畸变校正

我们进行透镜畸变校正,就是要确定 k1 k2 k3 p1 p2 这5个参数。

相机标定

  1. 相机标定得到的是4个内部参数,相机畸变校正得到的是5个畸变校正参数;
  2. 单目相机标定常用的工具有OpenCV和MATLAB,下一篇博客再进行程序实现。

参考资料:

  1. http://blog.csdn.net/aptx704610875/article/details/48914043
  2. http://blog.csdn.net/xuelabizp/article/details/50314633
  3. https://www.cnblogs.com/Jessica-jie/p/6596450.html
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值