张正友标定算法原理详解

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

前言

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

原理

 
1.计算外参
  • 设三维世界坐标的点为M=[X,Y,Z,1]T,二维相机平面像素坐标为m=[u,v,1]T,所以标定用的棋盘格平面到图像平面的单应性关系为:sm=A[R,t]M
    其中

    outside_default.png


    不妨设棋盘格位于Z = 0,定义旋转矩阵R的第i列为 ri, 则有:

    outside_default.png


    H=[h1 h2 h3]=λA[r1 r2 t]
    于是空间到图像的映射可改为:sm=HM
    其中H是描述Homographic矩阵,H是一个齐次矩阵,所以有8个未知数,至少需要8个方程,每对对应点能提供两个方程,所以至少需要四个对应点,就可以算出世界平面到图像平面的单应性矩阵H

    outside_default.png

    外参具体计算公式。注意:R3是 t

一般而言,求解出的R = [r1 r2 t] 不会满足正交与归一的标准
在实际操作中,R 可以通过SVD分解实现规范化(详见原文)


2.计算内参

由r1和r2正交,且r1和r2的模相等,可以得到如下约束:

outside_default.png

正交

outside_default.png

模相等

outside_default.png

outside_default.png

可以推到出

outside_default.png

根据推到的结果可知如果有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分解):

outside_default.png

内参具体计算公式


3.最大似然估计

上述的推导结果是基于理想情况下的解,但由于可能存在高斯噪声,所以使用最大似然估计进行优化。设我们采集了n副包含棋盘格的图像进行定标,每个图像里有棋盘格角点m个。令第i副图像上的角点Mj在上述计算得到的摄像机矩阵下图像上的投影点为:

outside_default.png

这里的K为相机内参矩阵A

其中Ri和ti是第i副图对应的旋转矩阵和平移向量,K是内参数矩阵。则角点mij的概率密度函数为:

outside_default.png

这里的K为相机内参矩阵A


构造似然函数:

outside_default.png

这里的K为相机内参矩阵A


让L取得最大值,即让下面式子最小。这里使用的是多参数非线性系统优化问题的Levenberg-Marquardt算法[2]进行迭代求最优解。

outside_default.png

这里的K为相机内参矩阵A


4.径向畸变估计

张氏标定法只关注了影响最大的径向畸变。则数学表达式为:

outside_default.png


其中,(u,v)是理想无畸变的像素坐标,(u,v)(u,v)是实际畸变后的像素坐标。(u0,v0)代表主点,(x,y)是理想无畸变的连续图像坐标,(x,y)(x,y)是实际畸变后的连续图像坐标。k1和k2为前两阶的畸变参数。

outside_default.png


化作矩阵形式:

outside_default.png


记做:Dk=d
则可得:

outside_default.png


计算得到畸变系数k。
使用最大似然的思想优化得到的结果,即像上一步一样,LM法计算下列函数值最小的参数值:

outside_default.png

这里的K为相机内参矩阵A


到此,张氏标定法介绍完毕。我们也得到了相机内参、外参和畸变系数。

相机标定步骤

  • 打印一张棋盘格A4纸张(黑白间距已知),并贴在一个平板上

  • 针对棋盘格拍摄若干张图片(一般10-20张)

  • 在图片中检测特征点(Harris特征)

  • 利用解析解估算方法计算出5个内部参数,以及6个外部参数

  • 根据极大似然估计策略,设计优化目标并实现参数的refinement

     转自:https://www.jianshu.com/p/9d2fe4c2e3b7

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

24416d4e55312f36f83af5c08be18bae.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值