[毕设系列] 一、张正友相机标定

预备知识

0.1 刚体、仿射、线性、旋转变换

  • 刚体变换是指在三维空间中,把一个物体做旋转、平移,是一种保持物体大小和形状不变的仿射变换,刚体变换又称为欧式变换、齐次变换刚体变换前后两点间的距离依旧保持不变。

  • 仿射变换是指物体从一个向量空间进行一次线性变换并接上一个平移,变换到另一个向量空间。平移、旋转、缩放、剪切、反射以及它们任意次序的组合都是仿射变换。

  • 线性变换有三大特点:变换前是直线的,变换后依然是直线;比例保持不变;变换前是原点的,变换后依然是原点。旋转、推移都是线性变换

  • 旋转变换:包括向量旋转和坐标系旋转两种。

  • 向量旋转:物体在固定坐标系下的旋转,旋转后坐标发生改变
    在这里插入图片描述

  • 坐标系旋转:旋转后物体坐标不变
    下面给出直角坐标系下分别绕三个轴,逆时针旋转的矩阵表达
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

  • 复合旋转:多次旋转变换,分为两种情况(实际上是等价的):

  • 当复合旋转在当前坐标系(每一次旋转变换后的坐标轴旋转),旋转矩阵依次右乘

  • 当复合旋转在固定坐标系(每次旋转以同一固定坐标系的坐标轴进行旋转),旋转矩阵依次左乘

0.2 什么是标定?

标定是联系世界坐标与像素坐标的环节,目的是求出相机和投影仪的内外参数,这对于3D成像来说至关重要。
相机标定指建立相机图像像素位置与场景点位置之间的关系,根据相机成像模型,由特征点在图像中坐标与世界坐标的对应关系,求解相机模型的参数。相机需要标定的模型参数包括内部参数和外部参数。
简单讲,就是找到 实际物体的位置相机图像像素位置 的关系,将两个不同的坐标系的位置进行相互转换。
在这里插入图片描述

(1)世界坐标系
描述目标在真实世界中的位置引入的参考坐标系。
(2)相机坐标系
联系世界坐标系与图像坐标系的桥梁,一般取摄像机的光学轴为轴。
(3)图像坐标系( x , y
根据投影关系引入,方便进一步得到像素坐标,单位为毫米,坐标原点为摄像机光轴与图像物理坐标系的交点位置。
(4)像素坐标系( u , v
真正从相机内读到的信息,图像物理坐标的离散化,以像素为单位,坐标原点在左上角。

0.3 为什么要进行标定?

进行标定主要有一下两个原因。

  1. 当我们拿到一张图片,进行识别之后,得到的两个目标点之间的距离为xx像素值,但是这xx像素转换到实际世界坐标系下究竟是多长,这就需要利用相机标定,利用标定的结果将像素坐标转换到物理坐标来计算距离。
  2. 另外,由于相机拍摄的图片存在一定的畸变,所以,相机标定还可以获得相机的畸变参数,进而通过数学运算,对拍摄的图片进行畸变矫正。

0.4 什么是畸变?

畸变是由于垂轴放大率在整个视场范围内不能保持常数而引起的。
在一般的光学系统中,只要畸变引起的图像变形不为人眼所觉察,是可以允许的,这一允许的畸变值约为4%。但是有些需根据图像来测定物体尺寸的光学系统,如航空测量镜头等,畸变则直接影响测量精度,必须对其严加校正,使畸变小到万分之一甚至十万分之几。
理论上,镜头的畸变包括径向畸变和切向畸变,由于切向畸变影响较小,所以通常只考虑径向畸变。
径向畸变(包括枕形畸变和桶形畸变)主要是由镜头径向曲率导致真实成像点向内或向外偏离理想成像点(即光线在远离透镜中心的地方比靠近中心的地方更加弯曲)。
枕形畸变:畸变像点相对于理想像点沿径向向外偏移,远离中心。
枕形畸变
桶形畸变:畸变像点相对于理想像点沿径向向内偏移,靠近中心。
桶形畸变

一、张正友标定法

1.1 简介

张正友相机标定法是张正友教授1998年提出的单平面棋盘格的相机标定方法。传统标定法的标定板是需要三维的,需要非常精确,这很难制作,而张正友教授提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。

1.2 流程

  1. 打印一张模板(已知尺寸的棋盘格)并贴在一个平面上;
  2. 从不同的角度拍摄若干张模板图像;
  3. 检测出图像中的特征点;
  4. 求解理想无畸变情况下的摄像机的内参数和外参数,并用极大似然估计提升精度;
  5. 用最小二乘法求出实际的径向畸变系数;
  6. 综合内参、外参、畸变系数,使用极大似然法,优化估计,提升估计精度;
  7. 即可得到相机的内参、外参和畸变系数。

1.3 畸变公式

径向畸变公式:
在这里插入图片描述
切向畸变公式:
在这里插入图片描述
其中,等式左边畸变矫正后的归一化图像坐标右边的(x,y)是理想的无畸变归一化的图像坐标r为图像像素点到图像中心点的距离。

二、模型假设

请添加图片描述
在这里插入图片描述
在这里插入图片描述
内参矩阵的参数含义:
f:焦距,单位毫米,dx:像素x方向宽度,单位毫米,1/dx:x方向1毫米内有多少个像素
α = f/dx:使用像素来描述x轴方向焦距的长度
β = f/dy:使用像素来描述y轴方向焦距的长度
u0,v0,主点的实际位置,单位也是像素。


外参矩阵是世界坐标系到相机坐标系的变换。
在这里插入图片描述

三、模型求解

3.1 内外参数求解

H=[h1 h2 h3],则 [h1 h2 h3] = λA[r1 r2 t]
其中,H是一个3×3的矩阵,并且有一个元素作为齐次坐标,即H有8个自由度需要求解,需要四个对应点。也就是需要四个点来求出图像平面到世界平面的单应性矩阵H。
具体推导过程见参考文章,结果如下。
相机的内参阵为
在这里插入图片描述
外参矩阵为
在这里插入图片描述

3.2 畸变系数求解

真实的镜头并非理想的透视成像,而是带有不同程度的畸变。理论上镜头的畸变包括径向畸变和切向畸变,切向畸变影响较小,通常只考虑径向畸变,而且在径向畸变的求解中,仅考虑了起主导的二元泰勒级数展开的前两个系数。
具体推导,参考(五) 畸变矫正—让世界不在扭曲 【计算机视觉学习笔记–双目视觉几何框架系列】

3.3 精度优化

在张正友标定法中,使用了两次极大似然估计策略,第一次是在不考虑畸变的情况下求解内参和外参,第二次是求解实际的畸变系数。

极大似然参数估计 ,参考(四)极大似然参数估计 【计算机视觉学习笔记–双目视觉几何架构系列】

[参考]

张正友相机标定法原理与实现
相机标定-张正友棋盘格标定法

注:学习笔记,如有侵权,请联系本人删除文章。

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

DayDayUp..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值