文章目录
张正友标定法是张正友博士在1999年发表在国际顶级会议ICCV上的论文《Flexible Camera Calibration By Viewing a Plane From Unknown Orientations》中,提出的一种利用平面棋盘格进行相机标定的实用方法。
其后,他2000年的这篇论文《A flexible new technique for camera calibration》的引用数更是达到了13885次,其重要性可见一斑。
该方法介于摄影标定法和自标定法之间,既克服了摄影标定法需要的高精度三维标定物的缺点,又解决了自标定法鲁棒性差的难题。标定过程仅需使用一个打印出来的棋盘格,并从不同方向拍摄几组图片即可,任何人都可以自己制作标定图案,不仅实用灵活方便,而且精度很高,鲁棒性好。因此很快被全世界广泛采用,极大的促进了三维计算机视觉从实验室走向真实世界的进程。
(参考资料:张正友标定法-完整学习笔记-从原理到实战)
(上图参考资料:张正友标定法)
1 针孔相机模型(透视投影模型)
(本节参考资料:相机系列——透视投影:针孔相机模型)
三维相机是对真实世界成像的模拟,为了让三维物体在计算机屏幕上呈现出来的图像符合人眼观察效果,通常采用透视投影方式模拟相机成像,为了简化计算,可以用针孔相机模型来描述透视投影成像过程。
针孔相机模型是一种简化的光学成像模型,基本原理是中心透视投影,将三维空间中的物体通过针孔投影到二维成像平面上。这种模型忽略了镜头畸变、光线衍射等复杂因素,使得计算和分析变得相对简单,因此也广泛应用于计算机视觉和图形学领域。
1.1 四个坐标系
为了能够用数学语言来描述针孔相机模型,需要建立四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系,三维物体在二维图像上的成像过程通过坐标系变换来表达。
1、世界坐标系
世界坐标系是描述客观世界的绝对坐标系,由于相机可以位于客观世界中的任意位置,需要建立一个基准坐标系来描述相机的位置,并且用它来描述环境中任意空间点的位置,用(Xw, Yw, Zw)表示世界坐标值。
2、相机坐标系
相机坐标系是以相机光心为参考点建立起的三维坐标系,用于描述任意空间点在相机空间中的位置,建立方式为:以相机光心为坐标原点,相机主光轴为Z轴,平行于图像平面水平方向作为X轴,平行于图像平面垂直方向作为Y轴,用(Xc, Yc, Zc)表示相机坐标值。
3、图像坐标系
图像坐标系是定义在成像平面上的二维平面坐标系,以实际物理单位(mm)表示,建立方式为:以相机主光轴与图像平面的交点为原点,交点称为像主点,X轴平行于图像水平方向向右,Y轴平行于图像垂直方向向下,用(x, y)表示图像坐标值。
4、像素坐标系
在计算机中数字图像是经离散化处理后以像素矩阵方式进行存储的,因此建立像素坐标系以描述相机图像,像素坐标可以理解为像素在图像平面中的位置索引。建立方式为:以图像平面左上角为原点,u轴平行于图像坐标系的X轴,水平向右,v轴平行于图像坐标系的Y轴,垂直向下,用(u,v)表示像素坐标值。
1.2 四个坐标系之间的坐标变换
相机成像可以理解为是将三维空间中的物体投影到二维图像平面上的过程,投影过程最终在三维空间点和图像平面点之间建立映射关系,因此可以通过三维空间点与二维图像平面点之间的坐标转换来表达投影过程。
坐标转换流程包括:
1、世界坐标系 → 相机坐标系
世界坐标系转换到相机坐标系的过程是刚体变换,通常采用平移矩阵R和旋转矩阵T来表示变换过程。齐次坐标以及矩阵变换可以参考博文:用矩阵表述变换与齐次坐标 - 简书
2、相机坐标系 → 图像坐标系
相机坐标系到图像坐标系是真正的投影过程,基本原理是中心透视投影,根据三角形相似原理,可推知空间点与它的像点关系如下:
3、图像坐标系 → 像素坐标系
数字图像是经离散化处理后以像素矩阵方式进行存储的,图像坐标在图像平面以物理单位表示,像素坐标在图像平面以像素坐标表示,图像坐标与像素坐标的转换关系为:
其中dx、dy表示单个像素实际物理尺寸的宽和高。
图像坐标系到像素坐标系的转换用矩阵表示为:
1.3 内方位元素(内参)与外方位元素(外参)
综合1.1、1.2中所述的变换,可以得到完整的坐标变换过程如下:
其中,透视投影过程(相机坐标系 → 图像坐标系)和像素离散过程(图像坐标系 → 像素坐标系)组合后的变换矩阵称为相机内参矩阵(内方位元素,K),
平移、旋转过程(世界坐标系→相机坐标系)的变换矩阵称为相机外参矩阵(外方位元素,R和t)。
2 相机畸变
(本节参考资料:相机系列——透视投影:针孔相机模型)
实际的相机成像过程受镜头影响,往往无法遵循严格的线性变换,这会导致最终的图像产生畸变(失真),镜头引起的畸变主要分为径向畸变和切向畸变。
2.1 径向畸变
越远离光轴的光线越向内弯曲,导致正方形成像后变成桶形,称为桶形畸变。
反之,如果越远离光轴的光线越向外弯曲则为枕形畸变。
2.2 切向畸变
切向畸变是透镜与成像平面不完全平行的制造缺陷造成的。
在实际应用中,通常采用多项式拟合模型来表示相机畸变,通用公式表示为:
其中,图像坐标通过归一化平面坐标表示,(x,y)表示实际图像坐标,(Xdistorted, Ydistorted)表示畸变后的图像坐标。
(归一化平面坐标可以参考:什么是归一化的平面坐标)
常用的多项式拟合畸变模型为:
其中:
r
2
=
x
2
+
y
2
r^2=x^2+y^2
r2=x2+y2。
基于畸变模型,可以对图像进行畸变校正,即通过同名点计算多项式拟合畸变模型中的参数,从而根据已知参数的多项式拟合畸变模型计算畸变图像点的正确位置,对图像进行像素重映射和插值处理,以纠正图像畸变导致的变形现象。
3 相机标定
(本节参考资料:相机标定(Camera calibration)原理、步骤)
(上图参考资料:张正友标定法)
进行像机标定的目的是:求出第1、2节中所述的:①相机的内参;②相机外参;③畸变参数。
通过标定板(如上图)可以得到 n 个对应的世界三维点坐标和对应的图像二维点坐标,这些三维点到二维点的转换都可以通过第1、2节中提到的相机内参 K 、相机外参 R 和 t 、畸变参数 D ,经过一系列的矩阵变换得到。
标定板可以做成三维的(如上图的右上角),但是没必要,通过调整二维标定版的位置拍摄多张图片(如上图的右下角)可以实现同样的效果。
4 张正友标定法
在上一篇博文单应矩阵,介绍的单应矩阵表示两个平面间的映射。在张氏标定法中,用于标定的棋盘格是三维场景中的一个平面Π,其在成像平面的像是另一个平面π,知道了两个平面的对应点的坐标,就可以求解得到两个平面的单应矩阵H。其中,标定的棋盘格是特制的,其角点的坐标是已知的;图像中的角点,可以通过角点提取算法得到,这样就可以得到棋盘平面Π和图像平面π的单应矩阵H。
通过上面的相机模型有:
我来详细解释张正友标定法(Zhang’s Camera Calibration Method)。
张正友标定法是由张正友(Zhengyou Zhang)在1999年提出的一种相机标定方法,它使用平面标定板(通常是棋盘格图案)来获取相机的内部和外部参数。这种方法因其简单实用而被广泛应用于计算机视觉领域。
4.1 张正友标定法的基本原理
张正友标定法基于以下假设:
- 标定板是平面的(通常设定为Z=0平面)
- 相机遵循针孔模型
- 需要至少两个不同姿态的标定板图像
4.2 数学模型和公式
4.2.1 针孔相机模型
相机成像过程可以表示为:
s
[
u
v
1
]
=
A
[
R
t
]
[
X
Y
Z
1
]
s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = A \begin{bmatrix} R & t \end{bmatrix} \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix}
s
uv1
=A[Rt]
XYZ1
其中:
- ( u , v ) (u, v) (u,v) 是像素坐标
- ( X , Y , Z ) (X, Y, Z) (X,Y,Z) 是世界坐标
- s s s 是尺度因子
- A A A 是相机内参矩阵
- [ R ∣ t ] [R|t] [R∣t] 是外参矩阵( R R R 是旋转矩阵, t t t 是平移向量)
4.2.2 相机内参矩阵
A = [ f x γ u 0 0 f y v 0 0 0 1 ] A = \begin{bmatrix} f_x & \gamma & u_0 \\ 0 & f_y & v_0 \\ 0 & 0 & 1 \end{bmatrix} A= fx00γfy0u0v01
其中:
- f x , f y f_x, f_y fx,fy 是焦距(以像素为单位)
- ( u 0 , v 0 ) (u_0, v_0) (u0,v0) 是主点坐标
- γ \gamma γ 是两个坐标轴之间的倾斜系数(通常假设为0)
4.2.3 单应性矩阵
由于标定板在Z=0平面上,世界坐标系中的点可以表示为 ( X , Y , 0 , 1 ) T (X, Y, 0, 1)^T (X,Y,0,1)T。因此,成像方程简化为:
s [ u v 1 ] = A [ r 1 r 2 r 3 t ] [ X Y 0 1 ] = A [ r 1 r 2 t ] [ X Y 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = A \begin{bmatrix} r_1 & r_2 & r_3 & t \end{bmatrix} \begin{bmatrix} X \\ Y \\ 0 \\ 1 \end{bmatrix} = A \begin{bmatrix} r_1 & r_2 & t \end{bmatrix} \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} s uv1 =A[r1r2r3t] XY01 =A[r1r2t] XY1
其中 r 1 , r 2 , r 3 r_1, r_2, r_3 r1,r2,r3 是旋转矩阵 R R R 的三列。
定义单应性矩阵 H H H 为:
H = A [ r 1 r 2 t ] = [ h 1 h 2 h 3 ] H = A \begin{bmatrix} r_1 & r_2 & t \end{bmatrix} = \begin{bmatrix} h_1 & h_2 & h_3 \end{bmatrix} H=A[r1r2t]=[h1h2h3]
则有:
s [ u v 1 ] = H [ X Y 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = H \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} s uv1 =H XY1
4.2.4 约束条件
由于旋转矩阵的正交性,有:
r
1
T
r
2
=
0
r_1^T r_2 = 0
r1Tr2=0
r
1
T
r
1
=
r
2
T
r
2
=
1
r_1^T r_1 = r_2^T r_2 = 1
r1Tr1=r2Tr2=1
从单应性矩阵可以得到:
r
1
=
λ
A
−
1
h
1
r_1 = \lambda A^{-1} h_1
r1=λA−1h1
r
2
=
λ
A
−
1
h
2
r_2 = \lambda A^{-1} h_2
r2=λA−1h2
t
=
λ
A
−
1
h
3
t = \lambda A^{-1} h_3
t=λA−1h3
其中 λ \lambda λ 是尺度因子。
因此可以得到两个约束:
h
1
T
(
A
−
1
)
T
A
−
1
h
2
=
0
h_1^T (A^{-1})^T A^{-1} h_2 = 0
h1T(A−1)TA−1h2=0
h
1
T
(
A
−
1
)
T
A
−
1
h
1
=
h
2
T
(
A
−
1
)
T
A
−
1
h
2
h_1^T (A^{-1})^T A^{-1} h_1 = h_2^T (A^{-1})^T A^{-1} h_2
h1T(A−1)TA−1h1=h2T(A−1)TA−1h2
4.2.5 定义 B = ( A − 1 ) T A − 1 B = (A^{-1})^T A^{-1} B=(A−1)TA−1
B B B 是一个对称矩阵,可以表示为:
B = [ B 11 B 12 B 13 B 12 B 22 B 23 B 13 B 23 B 33 ] B = \begin{bmatrix} B_{11} & B_{12} & B_{13} \\ B_{12} & B_{22} & B_{23} \\ B_{13} & B_{23} & B_{33} \end{bmatrix} B= B11B12B13B12B22B23B13B23B33
4.2.6 求解过程
- 对每张标定板图像,计算单应性矩阵 H H H
- 利用约束条件建立线性方程组
- 求解线性方程组得到 B B B 的参数
- 从 B B B 恢复相机内参 A A A
- 计算每张图像的外参 [ R ∣ t ] [R|t] [R∣t]
- 考虑畸变参数进行非线性优化
4.2.7 畸变模型
考虑径向畸变和切向畸变:
x
d
i
s
t
o
r
t
e
d
=
x
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
+
2
p
1
x
y
+
p
2
(
r
2
+
2
x
2
)
x_{distorted} = x(1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + 2p_1xy + p_2(r^2 + 2x^2)
xdistorted=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)
y
d
i
s
t
o
r
t
e
d
=
y
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
+
p
1
(
r
2
+
2
y
2
)
+
2
p
2
x
y
y_{distorted} = y(1 + k_1 r^2 + k_2 r^4 + k_3 r^6) + p_1(r^2 + 2y^2) + 2p_2xy
ydistorted=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy
其中:
- ( x , y ) (x, y) (x,y) 是归一化的相机坐标
- r 2 = x 2 + y 2 r^2 = x^2 + y^2 r2=x2+y2
- k 1 , k 2 , k 3 k_1, k_2, k_3 k1,k2,k3 是径向畸变系数
- p 1 , p 2 p_1, p_2 p1,p2 是切向畸变系数
张正友标定法的优点在于它不需要特定的标定装置,只需要一个平面标定板(如棋盘格)在不同位置拍摄多张照片即可完成标定。它结合了传统标定方法的优点,既有灵活性又有较高的精度,因此成为计算机视觉领域中最常用的相机标定方法之一。