张正友平面定标法

Posted ctqchina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了张正友平面定标法相关的知识,希望对你有一定的参考价值。

图像坐标系与物理坐标系

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

 

技术图片

如上图,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

以上是关于张正友平面定标法的主要内容,如果未能解决你的问题,请参考以下文章

张正友标定算法原理详解

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

OPENCV版本的摄像机标定

OpenCV系列,一个简单定标并储存结果的程序

三维标定与三维重建

学习(1)相机标定之张正友标定法数学原理详解(含python源码)