张正友平面定标法

图像坐标系与物理坐标系

在数字图像处理中,一副二维图片由一个二维矩阵表征。矩阵元素所在的位置即为该点坐标,矩阵元素的大小即为像素值的大小。但是,图像坐标系是离散的且没有物理尺寸,无法和现实世界建立联系。因此,我们引入物理坐标系。

如上图,u和v是图像坐标系的轴,O0为其原点。物理坐标系以图像坐标系的O1(u0,v0)为原点,x,y轴分别平行于u,v轴。设dx,dy为单位像素在x和y方向上的尺寸。其中,u0,v0,dx,dy为相机的内参。由上述可得,物理坐标系中的坐标(u,v)有:

u = x/dx + u0,v = y/dy + v0     (1)

将(1)式变成矩阵形式,有:

相机坐标系与世界坐标系

与上述两个二维坐标系不同,相机坐标系Oc-XcYcZc属于三维空间坐标系。其中,Oc为光心,Zc为光轴,Xc与Yc分别平行于物理坐标系的x和y轴。相机在不同的地方对场景进行拍摄,每个视角下的场景都以该视角下的相机坐标系为参考坐标系,这就造成了现实世界中的同一点在不同的相机坐标系中有着不同的坐标。所以,构建一个三维坐标系——世界坐标系Ow-XwYwZw,用于标识不同视角下各相机坐标系的相对位置。

物理坐标系,相机坐标系和世界坐标系如上图所示。其中OcO1的长度为相机的焦距。有一点P,其在相机坐标系的坐标为(Xc,Yc,Zc),在世界坐标系的坐标为(Xw,Yw,Zw),则有变换矩阵,使得:

其中,R为旋转矩阵,表示两系的旋转关系;t为平移向量,表示Oc和Ow之间的相对位置。

相机几何模型

现有三维空间中的点P(Xc,Yc,Zc)投影到成像面上的点p(x,y)。设f为相机的焦距。

则根据相似三角形有:

x = fXc/Zc,y = fYc/Zc    (2)

将(2)式变成矩阵形式,有:

则由式(1),(2)得:

其中,fx = f/dx,fy = f/dy,分别为相机在x轴和y轴方向上的焦距。矩阵K1由相机内部参数fx,fy,u0,v0决定,矩阵K2由外部参数R和t决定。

张正友平面定标法

该方法的标定物是一副黑白棋盘格,称其为标定盘。如下图:

内角点:上图中每四个黑白格中间的角点

由前述可得:

在该算法中,以标定盘上第一个内角点为参考系的原点,Zw轴垂直于标定板所在平面,即标定板位于Z = 0平面上。令λ=1/Zc,则有:

其中H = [h1  h2  h3] = λK[r1  r2  t],称H为单应矩阵。则有:

r1 = (1/λ)K-1h1,r2 = (1/λ)K-1h2

由旋转矩阵的单位正交性,即每列模长为1,不同列相互正交得:

上下两式联立可得:

上述两式是关于内部参数的两个基本约束。

设矩阵A:

由上式可知,矩阵A是一个对称矩阵,则令向量a:

则有:

其中γijT  = [hi1hj1  hi1hj2 + hi2hj1  hi2hj2  hi3hj1 + hi1hj3  hi3hj2 + hi2hj3  hi3hj3]T

这里如此设计γijT 的原因我也不清楚。但经过简单验算便可知道,上式的确是相等的。

由内部参数的两个基本约束得:

若有n张不同角度的标定板图片,则有矩阵V(2n X 6):Va = 0

由上述,即可求得内参K。

由H  =  λK[r1  r2  t]得,

K-1H = λK[r1  r2  t]

则令N = K-1H  = [n1  n2  n3],有:(旋转矩阵的列向量模长为1)

至此,求得外参R和t。

参考论文:

(1)基于结构光的小型物体三维重建技术_高爽

(2)Flexible camera calibration by viewing a plane from unknown orientations

原文地址:https://www.cnblogs.com/ctqchina/p/12394907.html

时间: 2024-07-28 20:30:43

张正友平面定标法的相关文章

SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解

想要从二维图像中获取到场景的三维信息,相机的内参数是必须的,在SLAM中,相机通常是提前标定好的.张正友于1998年在论文:"A Flexible New Technique fro Camera Calibration"提出了基于单平面棋盘格的相机标定方法.该方法介于传统的标定方法和自标定方法之间,使用简单实用性强,有以下优点: 不需要额外的器材,一张打印的棋盘格即可. 标定简单,相机和标定板可以任意放置. 标定的精度高. 相机的内参数 设\(P=(X,Y,Z)\)为场景中的一点,在

张正友相机标定Opencv实现以及标定流程&&标定结果评价&&图像矫正流程解析(附标定程序和棋盘图)

使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像. 相机标定的输入:标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上). 相机标定的输出:摄像机的内参.外参系数. 这三个基础的问题就决定了使用Openc

张正友标定算法原理详解

原文见http://blog.csdn.net/u010128736/ 一.背景   ”张正友标定”是指张正友教授1998年提出的单平面棋盘格的摄像机标定方法[1].文中提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以.同时也相对于自标定而言,提高了精度,便于操作.因此张氏标定法被广泛应用于计算机视觉方面.二.计算内参和外参的初值 原文地址:https://www.cnblogs.com/excellentlhw/p/106

张正友标定算法理论及算法实现

张正友标定算法理论及算法实现 理论基础 1999年,微软研究院的张正友提出了基于移动平面模板的相机标定方法.此方法是介于传统标定方法和自标定方法之间的一种方法,传统标定方法虽然精度高设备有较高的要求,其操作过程也比较繁琐,自标定方法的精度不高,张正友标定算法克服了这两者的缺点同时又兼备二者的优点,因此对办公.家庭的场合使用的桌面视觉系统(DVS)很适合. 设三维世界中坐标的点为:和二维相机平面坐标的点为: 为方便运算,模板被定义在世界坐标系中与X-y平面平行(即Z=0)的平面上,为模板平面上点的

张正友标定算法解读(转)

一直以来想写篇相机标定方面的东西,最近组会上也要讲标定方面东西,所以顺便写了.无论是OpenCV还是matlab标定箱,都是以张正友棋盘标定算法为核心实现的,这篇PAMI的文章<<A Flexible New Technique for Camera Calibration>>影响力极大,张正友是zju的机械系出身,貌似现在是微软的终身教授了,有点牛的.我就简单的介绍下算法的核心原理,公式的推理可能有点多... 一 基本问题描述:空间平面的三维点与相机平面二维点的映射 假设空间平面

张正友相机标定算法解读

张正友标定算法解读 一直以来想写篇相机标定方面的东西,最近组会上也要讲标定方面东西,所以顺便写了.无论是OpenCV还是matlab标定箱,都是以张正友棋盘标定算法为核心实现的,这篇PAMI的文章<A Flexible New Technique for Camera Calibration>影响力极大,张正友是浙江大学的机械系出身,貌似现在是微软的终身教授了.我就简单的介绍下算法的核心原理,公式的推理可能有点多. 一 基本问题描述:空间平面的三维点与相机平面二维点的映射. 假设空间平面中三维

[图像]张正友论文翻译(1)

张正友大牛的文章没有人翻译,这篇神文看的我真是纠结啊,英语渣,翻译了一些,供大家参考,希望大家多多包涵,指出我的不足和错误,谢谢. 张正友论文原文 原文链接: 2000.11 A flexible new technique for camera calibration 5.pdf 我的译文   from: http://blog.csdn.net/humanking7/article/details/46689293

[图像]张正友论文翻译(2)

张正友论文原文 原文链接: 2000.11 A flexible new technique for camera calibration 5.pdf 我的译文 备注 后面的翻译省略了不少,希望不会影响到大家的阅读. from: http://blog.csdn.net/humanking7/article/details/46689329

OpenCV实现张正友相机标定源代码

本源代码基于VC++和opencv Opencv2.4.13.6版本开发,实现张正友相机标定源代码,资源包括完整源代码和12张棋盘图片,完美运行.Opencv2.4.13.6安装包下载地址:http://www.211xun.com/download_page_1261_cn.html 点击下载 原文地址:https://www.cnblogs.com/211xun/p/10499995.html