(完整版)张正友相机标定法
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0 0 1
设H矩阵中第i列的向量为 hi hi1 hi2 hi3 T
带入到 h1T AT A1h2 0 中有:
hiT B hj vijT b
解得: vij hi1hj1 hi1hj2 hi 2hj1
hi2h j 2
hi3hj1 hi1hj3
0
x0 x'
y0
y'
z0 1
z'
1
R r1 r2 r3
T (t1, t2 , t3 )T
r12 r22 r32 1 r1 • r2 r2 • r3 r3 • r1 0
x
y z
R 0
1
x'
T 1
y' z'
1
图像数字化
O1 在 u, v 中的坐标为 u0, v0
象素在轴上的物理尺寸为 dx, dy
V
Yd
Affine Transformation :
u
u0
xd dx
yd
cot
dx
v
v0
dy
yd sin
齐次坐标形式:
v0
张正友相机标定方法
曲峰
2020/2/16
1 相机畸变
镜头畸变实际上是光学透镜固有的透视失真的总称
枕形畸变:又称鞍形畸变,视野中边缘区域的放大率远大于光轴中心附近 区域放大率。常出现在远摄镜头中。
桶形畸变:同枕形相反,视野中光轴中心附近区域放大率远大于边缘区域。 常出现于广角镜头和鱼眼镜头。
线性畸变:光轴同所拍摄的如建筑物类物体的垂平面不正交,则本应相互 平行的远端一侧同近端一侧,以不相同的角度汇聚产生畸变。这种畸变本 质上是一种透视变换,即在某一特定角度,任何镜头都会产生相似的畸变。
n m
mij mˆ A, Ri , ti , M j
i1 j1
n m
mij mˆ A, Ri , ti , M j
i1 j1
• 其中mij是三维场景中第j个物点在第i幅图像上的像点坐标矢量,Ri是第i幅图像的旋转矩阵,是
ti第i幅图像的平移向量,Mj是三维场景中第j个物点的空间坐标, mˆ A, Ri , ti , M j 是通
v0 (B12B13 B11B23 ) /(B11B22 B122 )
B33
[B132
v0 (B12 B13
B11B23 )]/
B11
fu
fv
/ B11 B11 /(B11B22 B122 )
s B12 fu2 fv /
u0 sv0 / fv B13 fu2 /
畸变校正模型
由于透镜的中心对称 性,所以式中考虑x 方向上与y方向上的 径向畸变率是相同的
x x x[k1(x2 y2 ) k2 (x2 y2 )2 ] y y y[k1(x2 y2 ) k2 (x2 y2 )2 ]
u u (u u0 )[k1(x2 y2 ) k2 (x2 y2 )2 ] v v (v v0 )[k1(x2 y2 ) k2 (x2 y2 )2 ]
展开
X
u
sv Ar1
r2
r3
t
Y
Z
1
1
Z=0平面
X
u
sv Ar1
r2
r3
t
Y
0
Ar1
r2
X
t
Y
1
1
1
2 单应性矩阵推导v0
2
v0 u0 2
(v0
u0
2 2
(v0 u0 )2 2 2
)v022v021
很显然,B是一个对称矩阵,我们假定:
b B11 B12 B22 B13 B23 B33 T
u0
A
0
v0
Ar1
r2
t
Y
我们假定 H Ar1 r2 t 则原式可化为:
1 sm~ 1H M~
这里,矩阵H就是从世界坐标系到图像坐标系的3×3大小的单应性矩阵。 对H再次进行变形,假设h1,h2,h3是H的列向量,有:
H h1 h2 h3 Ar1 r2 t
y
1 0
0
1 1
u ffu ffu cot u0
zc
v
0
ffv / sin v0 R
1 0 0 1
A
xw
t
yw
zw
1
sm~ A[R,t]M~
对单应性矩阵H的估算
• H就是我们常说的单应性矩阵,在这里描述的是空间中平面三维点 和相机平面二维点之间的关系。因为相机平面中点的坐标可以通过 图像处理的方式(哈里斯角点,再基于梯度搜索的方式精确控制点 位置)获取,而空间平面中三维点可以通过事先做好的棋盘获取。 所以也就是说每张图片都可以计算出一个H矩阵。
• 图像坐标系 是以图像的左上方为原点,的图像坐标系(u v)(此坐标以像素为单位),这里我们建立了图 像物理坐标系(x y)为xoy坐标系(此坐标系以毫米为单位)。
一个二维点坐标被表示为 m [u, v]T ,一个三维点被表示为M [X ,Y , Z ]T ,我们使用 ~x 去表示通过在矩阵最后面的元素加一个1的向量:m~ [u, v,1]T 和 M~ [X,Y, Z,1]T ,相机通常都是针孔模型:它的3D点M和它的图像投影 点m的关系为:
r1 r2
A1h1 A1h2
tr3rA1 1rh23
1 A1h1
1 A1h2
最大似然估计
• 以上求解旋转矩阵R的方法是基于最小距离的,不具备物理意义。接 下对上面得到结果用最大似然估计来进行优化。
• 转动标定模板,从不同的角度拍摄棋盘标定模板的n幅图像,设每幅 图像都具有相同的标定点,标定点的个数为m,并假设每个标定点 的坐标都有独立同分布的噪声,因为初始的参数已经求解,所以我 们将每张图像的控制点根据求解的参数重投影回三维空间,最小化 与真实值的差异,其实就是建立非线性最小化模型:
枕形畸变
桶形畸变
线性畸变
1 针孔模型和透视投影
针孔模型:1/f=1/u+1/v 透视投影:中心投影法将形体投射到投影面上
坐标系
• 世界坐标系(Xw Yw Zw) 用户定义的空间三维坐标系,用来描述三维空间中的物体和相机之间的坐标位置,满足右手法 则
• 摄像机坐标系(Xc Yc Zc) 以相机的光心作为原点,Zc轴与光轴重合,并垂直于成像平面,且取摄影方向为正方向,Xc、 Yc轴与图像物理坐标系的x,y轴平行,且OcO为摄像机的焦距f
vuXXhh3311
uYh32 vYh32
u h11X v h21X
h12Y h22Y
h13 h23
令 h' h11 h12 h13 h21 h22 h23 h31 h32 1
X
0
Y 0
1 0
0 X
0 Y
0 1
uX vX
uY vY
1
1 zc
0
0
0 f 0
0 0 1
0 0 0
xc yc zc 1
第三个阶段,像点向像素坐标转化:
u 1/ dx cot / dx u0 x
v
0
1/(d y *sin ) v0
hi3hj2 hi2hj3
hi 3h j 3
h1T AT A1h2 0 h1T AT A1h1 h2T AT A1h2
v12T b 0 (v11 v22 )T b 0
v12T
b 0
(v11 v22)T
Vb 0
• V矩阵是2*6矩阵,也就是说每张照片可建立起两个方程组,6个未知 数。根据线性代数知识可知,解6个未知数需至少6个方程组,所以 也就是说我们至少需要三张照片才能求解未知数。b矩阵的解出,相 机内参矩阵A也就求解出,从而每张图像的R,t也迎刃而解。
sm~ A[R,t]M~
任意数
二维坐标 内参矩阵 旋转矩阵 平移矩阵
u0
A
0
v0
0 0 1
三维坐标
1 坐标变换
首先从二维坐标变换进行理解
x x'cos y'sin x0
y
x' s in
y' c os
y0
矩阵表示
x
h11 h12 h13
假设
H A r1
r2
t [h1
h2
h3 ] h21
h22
h23
h31 h32 1
sm~ HM~
su sv
h11 X h21 X
h12Y h22Y
h13 h23
s h31 X h32 1
y
cos s in
sin cos
x' y'
x0 y0
齐次坐标
x cos
y
sin
1 0
sin c os
0
x0 x'
y0
y'
0 1
r12 r22 1 r1 • r2 0
1 坐标变换
引申到三维空间,第一个阶段:我们依旧从旋转和平移两个步骤 来推算从世界坐标系到相机坐标系的坐标变换,
1 0
0
R ot( x,
)
0
cos
sin
Rot(
y,
)
0
cos
C
yd
xd
O1
Xd
u0
U
u fu fu cot u0 xd
v
0
fv / sin
v0
yd
其中
1 0
0
1 1
fu
1 dx
,
fv
1 dy
1 坐标变换
第二个阶段,空间点向像点转化:
x f
y
u vh'
0
3 闭合形解
B11 B12 B13
B
AT
A1
B21
B22
B23
B13 B23 B33
1
2
2
v0 u0
2
2
1 2 2
(v0 2
u0
2
)
(u (v
u0 v0
)(x2 )(x2
y2) y2)
r1
1
A1h1
r2
1
A1h2
r12 r22 r32 1 r1 • r2 r2 • r3 r3 • r1 0
r1T r2 0
r1 r2 1
r1
1
A1h1
r2
1
A1h2
r1T r2 0
r1 r2 1
h1T AT A1h2 0 h1T AT A1h1 h2T AT A1h2
x cos cos
y
sin
sin
cos
z cos sin cos
1
0
cos sin sin sin sin cos cos cos sin sin sin cos
0
sin sin cos cos cos
过已知初始值得到的像点估计坐标。
• mˆ A, Ri , ti , M j 的求解是一个经典的非线性优化的问题,使评价函数最小的A,Ri,ti就是
这个问题的最优解。可以取第一次得到的线性求解结果作为A、 Ri , ti i 1 n 的初始值,解决
这类问题的方法很多 ,在计算机视觉领域里通常使用Levenberg-Marquarat算法进行求解。
0
sin
sin
0 1 0
cos
sin
0
cos
cos sin 0
R ot( z,
)
sin
cos
0
0
0 1
1 坐标变换
引申到三维空间,第一个阶段:我们依旧从旋转和平移两个步骤 来推算从世界坐标系到相机坐标系的坐标变换