张正友标定法

摄像机标定目的

  • 给定物体物体的参考点坐标(x,y,z)和它的像素坐标(u,v)
  • 确定相机内部的几何和光学特性(内部参数)
  • 摄像机在三维世界坐标关系(外部参数)
    在这里插入图片描述
    在这里插入图片描述

标定方法分类

1.传统的摄像机标定方法

  • 在一定的摄像机模型下、基于特定的实验条件如形状、尺寸、已知参照物,进行图像处理,数学变换、技术方法,求取内外参数

  • 经常调整摄像机的需求、设置已知参照物不现实

  • 包括利用最优化算法的标定方法,利用摄像机变换矩阵的标定方法、进一步考虑畸变补偿的两步法、张正友标定法
    2.自标定法

  • 不依赖参照物

  • 利用摄像机本身参数之间的约束关系来标定

  • 利用周围图像与图像之间的对应关系

  • 与场景和摄像机运动无关

  • 基于Kruap方程、分层逐步标定法、基于二次曲面自标定

单应性(Homography)变换

来描述物体再世界坐标系和像素坐标系之间的位置映射关系。对应的变换矩阵称为单应性矩阵。在上述式子中,单应性矩阵定义为:
在这里插入图片描述

单应性在计算机视觉中的应用

  • 图像校正、图像拼接(既然单应矩阵可以进行视角变换,那我们把不同角度拍摄的图像都转换到同样的视角下,就可以实现图像拼接了)、相机位姿估计、视觉SLAM、增强现实(根据marker不同视角下的图像可以方便的得到虚拟物体的位置姿态并进行显示)等领域有非常重要的作用。
    在这里插入图片描述

单应矩阵H有几个自由度?

H矩阵有9个参数,从H11到H33,其实这里有个地方使用了其次坐标系(可以进行任意尺度的缩放,比如把hij乘以任意一个非零常数k并不改变等式结果),可以看到有8个自由度:
在这里插入图片描述

自由度下H计算

由于单应矩阵H包含了||H||=1约束,因此根据上图的线性方程组,8自由度的H我们至少需要4对对应的点才能计算出单应矩阵。这也回答了前面图像校正中提到的为何至少需要4个点对的根本原因。
在这里插入图片描述
但是以上只是理论推导,在真实的应用场景中,我们计算的点对中都会包含噪声。比如点的位置偏差几个像素,甚至出现特征点对误匹配的现象,如果只使用4个点对来计算单应矩阵,那会出现很大的误差。因此,为了使得计算更精确,一般都会使用远大于4个点对来计算单应矩阵。另外上述方程组采用直线线性解法通常很难得到最优解,所以实际使用中一般会用其他优化方法,如奇异值分解、Levenberg-Marquarat(LM)算法等进行求解。

总结

  • 打印一张棋盘格标定图纸,将其贴在平面物体的表面。
  • 拍摄一组不同方向棋盘格的图片,可以通过移动相机来实现,也可以移动标定图片来实现。
  • 对于每张拍摄的棋盘图片,检测图片中所有棋盘格的特征点(角点,也就是下图中黑白棋盘交叉点)。我们定义打印的棋盘图纸位于世界坐标系Zw=0的平面上,世界坐标系的原点位于棋盘图纸的固定一角。像素坐标系原点位于图片左上角。
  • 因为棋盘标定图纸中所有角点的空间坐标都是已知的,这些角点对应在拍摄的标定图片中的角点的像素坐标也是已知的,如果我们得到这样的N>=4个匹配点对(越多计算结果越鲁棒),就可以根据LM等优化方法得到其单应矩阵H。当然计算单应矩阵一般不需要自己写函数实现,OpenCV中就有现成的函数可以调用。

张正友相机标定法数学推导

1.根据标定棋盘纸及其对应的照片已经可以得到单应矩阵H。
在这里插入图片描述
2.先把内参求出来(先求内参是因为更容易),得到内参后,外参也就随之解出了

  • 求解思路是
    利用旋转向量的约束关系
    先将单应性矩阵H化为3个列向量H=[h1 h2 h3]
    在这里插入图片描述
    r1和r2相互正交,由此我们就可以利用“正交”的两个含义,得出每个单应矩阵提供的两个约束条件:
  • 约束条件1:旋转向量点积为0(两垂直平面上的旋转向量互相垂直)。
  • 约束条件2:旋转向量长度相等(旋转不改变尺度)。
    请添加图片描述

一个单应性矩阵H可以提供上述两个约束条件

由前面可知内参矩阵M:
在这里插入图片描述
B为对称矩阵,真正有用的元素只有6个(主对角线任意一侧的6个元素)
将B带入前面两个约束条件后可转化为:
在这里插入图片描述
如果我们拍摄了n张不同角度的标定图片,因为每张图片我们都可以得到一组(2个)上述的等式。其中,v12,v11,v22可以通过前面已经计算好的单应矩阵得到,因此是已知的,而b中6个元素是待求的未知数。因此,至少需要保证图片数n>=3,我们才能解出b。

求相机内参数

根据n张不同角度的标定图片,最终我们得到了一个矩阵集合,Vb=0,其中V是一个(2n*6)的矩阵。如果n>=3,就可以得到唯一解b(带有一个比例因子)
在这里插入图片描述
B中包含一个尺度因子λ,即
在这里插入图片描述
假设我们已经根据前面计算得到了矩阵B元素的值,那么根据已知的矩阵B很容易解出内参,如下:
在这里插入图片描述

求相机外参

得到内参数后,内参矩阵M也已知。单应矩阵H也已知,因此可继续求得外参数:
在这里插入图片描述

奇异值分解

  • 上述的推到结果是基于理想情况下的解,从理论上证明了张氏标定算法的可行性。
  • 在实际标定过程中,一般使用最大似然估计进行优化。假设我们拍摄了n张标定图片,每张图片里面有m个棋盘格角点。三维空间点X在图片上对应的二维像素为x,三维空间点经过相机内参M,外参R,t变换后得到的二维像素为x‘,假设噪声是独立同分布的,我们通过最小化x,x’的位置来求解上述最大似然估计问题:
    在这里插入图片描述

考虑透镜畸变的影响

由于径向畸变的影响相对较明显,所以主要考虑径向畸变参数,根据经验,通常只考虑径向畸变的前两个参数k1,k2就可以(增加更多的参数会使得模型变的复杂且不稳定)。实际求解中,通常把k1,k2也作为参数加入上述函数一起进行优化,待优化函数如下所示:
在这里插入图片描述

本文为自己的学习笔记,方便自己查看,借鉴bilibili的视频(PP_AI)及上网查找的许多资料。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
张正友标定(Zhang's camera calibration)是一种常用的相机标定方,用于确定相机的内部参数(内参)和外部参数(外参)。该方是由张正友教授在1999年提出的,被广泛应用于计算机视觉和机器人领域。 张正友标定使用特殊的标定板(一般是棋盘格)作为标定物体,在不同位置和姿态下拍摄多张图片。通过对这些图片进行处理,可以计算出相机的内参(如焦距、畸变参数等)和外参(如相机的旋转矩阵和平移向量)。这些参数可以帮助我们进行相机畸变校正、三维重建等任务。 具体实施该标定方时,需要先对标定板进行角点检测,然后通过求解相机的投影变换关系,从而得到相机的内外参数。标定板上的角点在不同位置和姿态下的映射关系提供了用于求解的约束条件。通常,至少需要拍摄10-20张不同姿态的图片才能进行有效的标定。 在OpenCV中,可以使用函数`cv2.calibrateCamera()`来实现张正友标定。该函数可以根据提供的标定板图片和角点信息,计算出相机的内外参数。通过使用这些参数,可以对相机图像进行畸变校正,使得图像中的直线保持直线,提高图像处理的准确性。 总结来说,张正友标定是一种常用的相机标定方,通过拍摄多张标定板图片,可以计算出相机的内外参数,从而帮助我们进行相机畸变校正和三维重建等任务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值