”张正友标定”是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法。文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。
原理
1.计算外参
设三维世界坐标的点为M=[X,Y,Z,1]T,二维相机平面像素坐标为m=[u,v,1]T,所以标定用的棋盘格平面到图像平面的单应性关系为:sm=A[R,t]M
其中
不妨设棋盘格位于Z = 0,定义旋转矩阵R的第i列为 ri, 则有:
令H=[h1 h2 h3]=λA[r1 r2 t]
于是空间到图像的映射可改为:sm=HM,
其中H是描述Homographic矩阵,H是一个齐次矩阵,所以有8个未知数,至少需要8个方程,每对对应点能提供两个方程,所以至少需要四个对应点,就可以算出世界平面到图像平面的单应性矩阵H
外参具体计算公式。注意:R3是 t
一般而言,求解出的R = [r1 r2 t] 不会满足正交与归一的标准
在实际操作中,R 可以通过SVD分解实现规范化(详见原文)
2.计算内参
由r1和r2正交,且r1和r2的模相等,可以得到如下约束:
正交
模相等
可以推到出
根据推到的结果可知如果有n组观察图像,则V 是 2n x 6 的矩阵
根据最小二乘定义,V b = 0 的解是 VTV 最小特征值对应的特征向量。
因此, 可以直接估算出 b,后续可以通过b求解内参
因为B中的未知量为6个,
所以当观测平面 n ≥ 3 时,可以得到b的唯一解
当 n = 2时, 一般可令畸变参数γ = 0
当 n = 1时, 仅能估算出α 与 β, 此时一般可假定像主点坐标 u0 与 v0 为0
内部参数可通过如下公式计算(cholesky分解):
内参具体计算公式
3.最大似然估计
上述的推导结果是基于理想情况下的解,但由于可能存在高斯噪声,所以使用最大似然估计进行优化。设我们采集了n副包含棋盘格的图像进行定标,每个图像里有棋盘格角点m个。令第i副图像上的角点Mj在上述计算得到的摄像机矩阵下图像上的投影点为:
这里的K为相机内参矩阵A
其中Ri和ti是第i副图对应的旋转矩阵和平移向量,K是内参数矩阵。则角点mij的概率密度函数为:
这里的K为相机内参矩阵A
构造似然函数:
这里的K为相机内参矩阵A
让L取得最大值,即让下面式子最小。这里使用的是多参数非线性系统优化问题的Levenberg-Marquardt算法[2]进行迭代求最优解。
这里的K为相机内参矩阵A
4.径向畸变估计
张氏标定法只关注了影响最大的径向畸变。则数学表达式为:
其中,(u,v)是理想无畸变的像素坐标,(u,v)(u,v)是实际畸变后的像素坐标。(u0,v0)代表主点,(x,y)是理想无畸变的连续图像坐标,(x,y)(x,y)是实际畸变后的连续图像坐标。k1和k2为前两阶的畸变参数。
化作矩阵形式:
记做:Dk=d
则可得:
计算得到畸变系数k。
使用最大似然的思想优化得到的结果,即像上一步一样,LM法计算下列函数值最小的参数值:
这里的K为相机内参矩阵A
到此,张氏标定法介绍完毕。我们也得到了相机内参、外参和畸变系数。
相机标定步骤
打印一张棋盘格A4纸张(黑白间距已知),并贴在一个平板上
针对棋盘格拍摄若干张图片(一般10-20张)
在图片中检测特征点(Harris特征)
利用解析解估算方法计算出5个内部参数,以及6个外部参数
根据极大似然估计策略,设计优化目标并实现参数的refinement。
审核编辑:刘清
-
摄像机
+关注
关注
3文章
1464浏览量
59250 -
计算机视觉
+关注
关注
8文章
1614浏览量
45717 -
SVD
+关注
关注
0文章
21浏览量
12097
原文标题:张正友标定算法原理详解
文章出处:【微信号:机器视觉沙龙,微信公众号:机器视觉沙龙】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
相机标定中各种标定板介绍以及优缺点分析
![相机<b class='flag-5'>标定</b>中各种<b class='flag-5'>标定</b>板介绍以及优缺点分析](https://file1.elecfans.com/web2/M00/B2/D9/wKgZomVhliuAWqBNAAAda6mt8_Y509.jpg)
浅析传感器的外参标定和在线标定问题
![浅析传感器的外参<b class='flag-5'>标定</b>和在线<b class='flag-5'>标定</b>问题](https://file1.elecfans.com/web2/M00/B1/45/wKgZomVbDwqAVCnoAAAZ9omRCE0812.png)
什么是视觉标定,机器人标定基本原理
![什么是视觉<b class='flag-5'>标定</b>,机器人<b class='flag-5'>标定</b>基本原理](https://file1.elecfans.com/web2/M00/AD/66/wKgaomVNkSeAJci8AAAzittmA1E455.png)
相机标定究竟在标定什么?
![相机<b class='flag-5'>标定</b>究竟在<b class='flag-5'>标定</b>什么?](https://file1.elecfans.com/web2/M00/A9/15/wKgaomUvnwuAF29KAAAVvI-4GXo308.png)
基于激光雷达相机的在线外部标定算法
![基于激光雷达相机的在线外部<b class='flag-5'>标定</b><b class='flag-5'>算法</b>](https://file1.elecfans.com/web2/M00/A9/4A/wKgZomUkya6AJr5jAAAnqPgQN_Y397.png)
TSMaster—CCP/XCP标定功能详解
![TSMaster—CCP/XCP<b class='flag-5'>标定</b>功能详解](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
基于Camera-IMU的标定算法原理
![基于Camera-IMU的<b class='flag-5'>标定</b><b class='flag-5'>算法</b>原理](https://file1.elecfans.com/web2/M00/8F/B7/wKgaomTRud2AHw8AAAAtpFHE30Y189.png)
什么是相机标定 常用相机标定的方法
![什么是相机<b class='flag-5'>标定</b> 常用相机<b class='flag-5'>标定</b>的方法](https://file1.elecfans.com/web2/M00/8F/55/wKgaomTMhOyAaZaHAABDC1HDha4611.png)
常见的机器人视觉伺服中的标定技术有哪些
![常见的机器人视觉伺服中的<b class='flag-5'>标定</b>技术有哪些](https://file1.elecfans.com/web2/M00/8F/54/wKgaomTMdaKAXi-hAAAoh_zFrtM034.png)
什么是电机标定?电机标定的工作原理
![什么是电机<b class='flag-5'>标定</b>?电机<b class='flag-5'>标定</b>的工作原理](https://file1.elecfans.com/web2/M00/8F/51/wKgaomTMYmSAb-8LAAGavU2OEGM369.png)
张正友标定方法是手眼标定吗 如何分析相机标定参数的好坏
![张正友<b class='flag-5'>标定</b>方法是手眼<b class='flag-5'>标定</b>吗 如何分析相机<b class='flag-5'>标定</b>参数的好坏](https://file1.elecfans.com/web2/M00/8E/FB/wKgZomTLGN6ARfPEAAAhEa_LhH0032.png)
为什么要进行相机标定?相机标定有何意义?
![为什么要进行相机<b class='flag-5'>标定</b>?相机<b class='flag-5'>标定</b>有何意义?](https://file1.elecfans.com/web2/M00/8E/FA/wKgaomTLBX2AXdXRAABrSoAJHi4035.png)
线结构光和面结构光问题整理
![线结构光和面结构光问题整理](https://file1.elecfans.com/web2/M00/8E/6E/wKgaomTHG62ABVX8AAA7T5yPPAg635.png)
车辆中的标定概述
![车辆中的<b class='flag-5'>标定</b>概述](https://file1.elecfans.com/web2/M00/8E/64/wKgZomTGG3mAPiNpAATpU5ni7_E544.jpg)
自动驾驶为什么要传感器标定车辆
![自动驾驶为什么要传感器<b class='flag-5'>标定</b>车辆](https://file1.elecfans.com/web2/M00/8E/38/wKgaomTDbaeACooJAAAl3lvhQG4817.png)
评论