标定方法——张正友标定法

标定

标定是联系世界坐标与像素坐标的环节,目的是求出相机和投影仪的内外参数,对于3D成像来说至关重要

张正友标定法

通过各种方法的对比,为了方便,我们采用的是张正友标定。我们主要对张正友标定法的原理进行介绍,文章后面后面也会给大家介绍一个张正友标定的matlab包,它以及具体使用的视频。张正友标定是基于2D平面靶标的相机标定,实验中对平面棋盘格进行多角度拍摄后,将所得图片输入计算即可实现相机标定,具有较强的实验可行性。

张正友标定原理介绍

要想进一步了解张正友标定法,首先需学习一个最基本的思想——非线性最小二乘法思想,其次是了解张正友标定法的主体思想。接下来我将分两部分进行介绍。(由于篇幅过长,所以最小二乘法思想在另一篇文章中)

张正友标定法的主题思想

前面我们理解了非线性最小二乘法的思想,这种思想实际上就是一个求解最合适的x的过程。

张正友标定法是一种基于2D平面靶标的摄影机标定,我们通过拍摄多张标定板的图片,再通过多个实际中的点(世界坐标)和图片上的点(像素坐标)的一一对应,即可求出世界坐标和像素坐标的对应关系。

关于什么是世界坐标和像素坐标,还有其中转化时涉及到的相机坐标,图像坐标,大家可以寻找其他资料进行了解(可以搜针孔相机模型),这里我直接用结论。在世界坐标和像素坐标的转化中,将关系矩阵分成两个部分,一个是内参矩阵,另一个是外参矩阵。

内参矩阵是由相机内部的参数决定的,定义为是u轴和v轴的尺度因子(与摄像机的焦距有关),是u轴和v轴的不垂直因子,  为主点坐标(是光轴与成像平面的交点);

外参矩阵是由摄像机与被测物所处的相对位置决定(相机坐标经过旋转平移后于世界坐标重合,这个旋转平移的矩阵就是外参矩阵)。定义为:是相机坐标的三个坐标轴在世界坐标轴中的方向矢量,互相垂直,是从世界坐标的原点到光心的平移矢量。

为了让大家更清楚了解张正友标定法,我先从大家熟悉的对应点的关系去给大家讲解。靶标平面上的点和图像平面上的点具有一一对应关系。记靶标平面上的点为图像平面上的点为相应的齐次坐标为 通过坐标变换我们可以得到, s是个常数。

这里我们假设靶标平面位于世界坐标系的xy平面上,即z=0。所以有。之后仍然采用M表示靶标平面上点的坐标,但此时,这样就能有一一对应关系

接下来就是求解了。我们拍的每一种照片上有多组对应点通过这多组对应点,应用最小二乘法我们可以求出H,H的计算是使实际图像坐标与通过M求出之间参差最小的过程,目标函数为

H求解出来后,我们就可以求解摄像机的参数矩阵了。

利用式,和R的正交性, ,可以得到

……①

式①是关于摄像机内参数的两个基本约束,一个转换矩阵H可以得到关于摄像机内参的两个约束,所以要求出A,需求多个转换矩阵(每张图片可以求出一个转换矩阵,所以需要拍摄多张图片)。

为了方便求解,这里设:

我们注意到B是一个对称矩阵,可以表示为六维向量

H中的第i列向量为,可以推出

其中

这样就可以将①式化为

如果对靶标平面拍n幅图像,将n个这样的方程叠加起来就可以得到:

……②

其中V为2n×6的矩阵。

如果n3,一般的,b可以在相差一个尺度因子λ的定义下唯一确定;如果n=2,可以加上一个附加约束条件r=0,即即可以用作为附加方程。

通过对②的求解可解出b。而解可以通过求解矩阵的最小特征值对应的特征向量,或者对矩阵V进行奇异分解得出。

B求出后,就可以利用Cholesky矩阵分解算法求出再通过逆得到A。一旦A确定后,每幅图像的外参就容易求出了,通过

可以推出:

 

 ;

  

 ,

其中:

由此就可以求出相机的内参和外参,由于通常情况下,相机镜头是由畸变的,我们也可以将这组参数作为初始值,然后进行优化搜索(最小二乘思想),进而求出所有参数的准确值。

归纳一些张正友标定法的主体思想:

  1. 通过每张照片上的点的对应关系求出转换矩阵H(其中用到了最小二乘法思想减小误差)。          
  2. 通过多张图片求出的多个H,来进一步求内参矩阵A,然后就进一步可求出外参矩阵,最后再通过最小二乘法思想对畸变进行评估,进而求出更加精确的值。

张正友标定算法压缩包与视频讲解

通过了解张正友标定法的原理,在使用压缩包时也能更加容易知道问题出现在哪里(如果出现问题),但实际中其实你只要会用安装包以及标定后得出的数据就行了。由于安装包、讲解视频、数据使用都是由前辈先给出的(挺多的,这是我给出我认为比较靠谱的),这里将给出他们的链接

讲解视频:使用Matlab工具箱(procamcalib)进行投影仪标定—超详细过程_哔哩哔哩_bilibili

相机标定压缩包:(151条消息) TOOLBOX_calib-master_toolbox_calib相机外参-互联网文档类资源-CSDN文库

投影仪标定压缩包:(151条消息) matlab投影仪标定工具箱.zip_投影仪校正MATLAB-教育文档类资源-CSDN文库

按照视频的去操作就行。

关于如何使用这些数据可以参考这个文件:(152条消息) matlab相机标定参数介绍_matlab相机标定参数怎么用,matlab相机标定参数-C#文档类资源-CSDN文库h​​​​​​

对于如何应用这些数据,如果看完这些还不理解的话,后面我们计算最小相位图的时候会用到这些数据,大家可以作为一个例子去理解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值