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

标定

标定是联系世界坐标与像素坐标的环节,目的是求出相机和投影仪的内外参数,对于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
    评论
### 回答1: 张正友标定是一种计算机视觉领域常用的相机标定方法,CSND是国内IT技术社区的一个平台,而OpenCV是一个开源计算机视觉库。 张正友相机标定方法是一种基于棋盘格的相机标定方法。首先,需要拍摄包含已知尺寸的棋盘格图片。然后,通过OpenCV提供的函数,使用张正友相机标定对这些图片进行处理,计算相机内参和畸变系数。 在CSND这个平台上,我们可以找到很多关于OpenCV和相机标定的教学资源和代码实例。这些教程和代码可以帮助我们理解和实践相关的算。 相机标定的目的是为了减小相机的畸变,提高图像处理的精度。通过使用张正友相机标定方法,我们可以得到相机的内外参数,比如焦距和相机中心等信息。通过将这些参数应用于图像处理,可以更准确地还原和测量现实世界中的图像。 总的来说,张正友相机标定是一种常用且有效的相机标定方法,通过CSND和OpenCV,我们可以学习和实践相关的算,提高图像处理的精度和准确性。 ### 回答2: 张正友相机标定是一种常用的相机标定方法,它是通过计算相机内外参数以及畸变系数来实现的。在CSDN上有很多关于张正友相机标定的教程和代码库,使用OpenCV作为开发框架可以更加方便地实现相机标定。 在进行相机标定之前,首先需要准备一系列已知的三维空间坐标点以及对应的二维像素坐标点。这些坐标点可以通过测量目标场景中的物体或特征点得到。然后,通过利用张正友相机标定,可以根据这些已知坐标点来计算相机的内外参数和畸变系数。 张正友相机标定的步骤主要包括棋盘格拍摄、角点检测、角点定位和相机标定等。具体来说,首先需要用相机拍摄多张棋盘格图像。然后,使用OpenCV的角点检测函数对这些图像进行角点检测,获取角点像素坐标。接着,通过标定函数对获取的角点像素坐标以及已知的三维空间坐标点进行相机标定,计算出相机的内外参数和畸变系数。最后,可以通过这些参数将相机的图像坐标转换为真实世界中的三维坐标。 在CSDN上,有很多关于张正友相机标定的教程和示例代码。这些教程和代码可以帮助开发者更好地理解和应用张正友相机标定,加速相机标定的过程。 总结来说,张正友相机标定是一种常用的相机标定方法,通过计算相机内外参数和畸变系数来实现。在CSDN上可以找到相关的教程和代码库,并使用OpenCV进行开发和实现。这种相机标定方法在计算机视觉、机器人、增强现实等领域有着广泛的应用。 ### 回答3: 张正友相机标定是一种常用的相机标定方法,通过计算相机的内参和畸变参数,可以实现对图像的几何校正和准确测量。这个方法在计算机视觉和机器视觉领域广泛应用。 CSDN是一个知名的中文技术论坛和博客网站,提供关于计算机科学和技术的各种信息和资源。CSDN上有很多关于张正友相机标定的教程和实例,供开发者学习和借鉴。 OpenCV是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算。OpenCV支持张正友相机标定,并且提供了相应的函数和接口,方便开发者进行相机标定的实现。 张正友相机标定的原理是通过获取多个不同位置、不同角度的棋盘格图像,利用棋盘格的特征点进行相机内参和畸变参数的计算。这些参数可以用来校正图像,消除畸变,使得图像中的物体更加真实和准确。 在进行相机标定前,需要准备一套已知尺寸的棋盘格,在不同位置、不同角度下拍摄多张图像。然后利用OpenCV提供的函数,根据图像中棋盘格的特征点,计算相机内参和畸变参数。 相机标定完成后,可以使用标定参数进行图像校正和几何测量。例如,可以消除图像中的畸变,提高图像的质量;还可以根据已知物体在图像中的尺寸,通过相机的投影关系计算出物体在真实世界中的尺寸。 综上所述,张正友相机标定是一种常用的相机标定方法,在CSDN和OpenCV的支持下,可以方便地进行相机标定,实现图像的几何校正和准确测量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值