相机标定(张正友)

主要目的:

1、将图像坐标转换为世界坐标,实现三维重建(建立相机成像几何模型)

2、获得畸变参数,对图像进行畸变矫正(消除透视畸变);

几个坐标系:

世界坐标系(world coordinate system): 用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入。一般坐标描述为 . 单位为m。

相机坐标系(camera coordinate system): 在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。 .单位为m。

图像坐标系(image coordinate system): 为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。 单位为m。

像素坐标系(pixel coordinate system): 为了描述物体成像后的像点在数字图像上(相片)的坐标而引入,是我们真正从相机内读取到的信息所在的坐标系。 单位为个(像素数目)

下图可以更清晰地表达这四个坐标系之间的关系

世界坐标系:Xw、Yw、Zw。相机坐标系: Xc、Yc、Zc。图像坐标系:x、y。像素坐标系:u、v。

其中,相机坐标系的 轴与光轴重合,且垂直于图像坐标系平面并通过图像坐标系的原点,相机坐标系与图像坐标系之间的距离为焦距f(也即图像坐标系原点与焦点重合)。像素坐标系平面u-v和图像坐标系平面x-y重合,但像素坐标系原点位于图中左上角(之所以这么定义,目的是从存储信息的首地址开始读写)。

齐次坐标矩阵:

        出现的问题:现实世界中平行的两条线投影到二维空间中时会出现相交现象

                               无穷远的点
                          通常使用(∞,∞)表示笛卡尔坐标系下的无穷远的点,所以在笛卡尔坐标系中无穷远的点是没有定义的。而在齐次坐标系统中可以用w=0来表示无穷远的点,即任何(x,y,0)表示无穷远的点。
两条平行线在无限远处相交

                                ​​​​​​​        ​​​​​​​        

        主要目的:可以用来对几何体进行缩放,旋转,平移,透视投影的矩阵变换.

        齐次坐标是使用N+1个数表示N维坐标的一种方式;

        要制作二维齐次坐标,我们只需在现有坐标中增加一个额外的变量w。因此,笛卡尔坐标中的一点,(X,Y)在齐次坐标中就变成了(x,y,w)。而笛卡儿坐标中的X和Y在齐次坐标中的x、y和w则重新表达为

X = x/w
Y = y/w

什么是齐次坐标? - 知乎 (zhihu.com)

旋转矩阵域平移向量:

[图像]摄像机标定(1) 标定中的四个坐标系_java摄像头定位物体空间坐标-CSDN博客

旋转矩阵是行列式为1的正交矩阵,并且满足以下正交矩阵的性质:

所有特殊正交矩阵形成一个子群,称为特殊正交群。亦即,旋转矩阵与旋转矩阵的乘积也是一个旋转矩阵

这保证了三个旋转矩阵相乘之后,仍然是旋转矩阵,旋转矩阵的那些性质仍然能用上,即正交矩阵的性质也能用上。我们需要下面两个性质:

  1. R所有列向量单位向量,且互相正交。
  2. R的逆等于它的转置。

具体步骤:

1、得到外参矩阵,实现世界坐标系到相机坐标系的转换:

2、通过相机的焦距,实现从相机坐标系到理想图像坐标系(不考虑畸变):

3、求解畸变参数,实现从理想图像坐标系到实际图像坐标系:

实际情况中我们常用r=0处的泰勒级数展开的前几项来近似描述径向畸变。矫正径向畸变前后的坐标关系为:

由此可知对于径向畸变,我们有3个畸变参数需要求解。

切向畸变需要两个额外的畸变参数来描述(但是张正友标定法,不求切向畸变),矫正前后的坐标关系为:

4、根据图像坐标系的原点与每个像素点在图像坐标系中对应的尺寸,实现从实际图像坐标系到像素坐标系的转换

由于定义的像素坐标系(u, v)原点与图像坐标系(x,y)原点不重合,假设图像坐标系原点在像素坐标系下的坐标为(u0,v0),每个像素点在图像坐标系x轴、y轴方向的尺寸为:dx(每米多少个像素)、dy,且像点在实际图像坐标系下的坐标为(xc,yc),于是可得到像点在像素坐标系下的坐标为:


化为齐次坐标表示形式可得:

如果不考虑畸变则,得到内参矩阵:

最后用一幅图来总结从世界坐标系到像素坐标系(不考虑畸变)的转换关系:

 单应性(Homography)变换。可以简单的理解为它用来描述物体在世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。在上述式子中,单应性矩阵定义为:

        求解单应性矩阵的步骤:

        首先,我们假设两张图像中的对应点对齐次坐标为(x',y',1)和(x,y,1),单应矩阵H定义为:

我们知道H是内参矩阵和外参矩阵的混合体,而我们想要最终分别获得内参和外参。所以需要想个办法,先把内参求出来
 

MATLAB相机标定程序能够自动计算重投影误差,重投影误差越小表示相机标定的精度越高

求畸变参数: 

聊聊相机标定——张正友标定法 (zhihu.com) 

其中x,y是想图像坐标系,而u,v是像素坐标系 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值