1 基本概念
我们的目标是,首先在真实世界中选取特定的点,测量其坐标(这个是人为可以测量得到的),然后观察它在图像中的坐标,估计相机的内、外参数,利用相机的内外参数,就可以计算真实世界中任意点的坐标。
2 引言
我们使用摄像机对物体进行拍摄时,本质上是将object space中的点
O
O
O映射到film plane中的图像点
I
′
I'
I′上,具体关系如图1a所示;而数字化的又是将图上的点再次映射到projection plane
I
I
I上,具体关系如图1b所示。
但是通常情况下,为了简单起见,人们一般都是将object space与projection plane相对应,也就是object space中的
O
O
O点直接映射到projection plane中的
I
I
I上。
在上图中,可以明显的看到,object space中的坐标系
X
Y
Z
XYZ
XYZ-system 和 image-plane中的
U
V
UV
UV-system,
N
N
N是project center,在上图中,点
I
I
I和点
O
O
O存在映射关系,假设点
I
,
N
,
O
I,N,O
I,N,O,这三个点之间的关系满足colinear(共线性),这也是DLT method成立的基础。
3. 具体算法
3.1 2D DLT method
3.1.1 算法思想
假设project center(N)在object-space中的位置坐标为
[
x
o
,
y
o
,
z
o
]
[x_o,y_o,z_o]
[xo,yo,zo],那么,
O
,
N
O,N
O,N之间向量表示为:
A
⃗
=
[
x
−
x
o
,
y
−
y
o
,
z
−
z
o
]
\vec{A}=[x-x_o,y-y_o,z-z_o]
A=[x−xo,y−yo,z−zo]
由于在image plane上面只有
U
V
UV
UV两个坐标系,这个时候我们再加一个轴
W
W
W作为第三个轴,构成立体结构,那么,在image plane空间中,
W
W
W方向上的坐标永远为0,那么坐标可以表示为:
对于新点
P
P
P,记为principal point,那么,
N
P
NP
NP平行于轴
W
W
W,垂直于面image plane,又称为principal axis,
N
P
NP
NP的距离称为principal distance,长度为
d
d
d,假设
P
P
P的坐标为
[
u
o
,
v
o
,
0
]
[u_o, v_o, 0]
[uo,vo,0],而
N
N
N的坐标为
[
u
o
,
v
o
,
d
]
[u_o, v_o, d]
[uo,vo,d],那么
B
⃗
\vec{B}
B可表示为
[
u
−
u
o
,
v
−
v
o
,
−
d
]
[u-u_o,v-v_o, -d]
[u−uo,v−vo,−d]。
由于
O
,
I
,
N
O, I, N
O,I,N是共线的,那么向量
A
⃗
\vec{A}
A和
B
⃗
\vec{B}
B之间的关系为
B
⃗
=
c
A
⃗
\vec{B}=c\vec{A}
B=cA
上式中,
c
c
c是一个比例因子,为了方便计算,可将
A
⃗
\vec{A}
A用image-plane进行表示,假设image plane与object plane之间的变换矩阵为:
在上式中,
A
⃗
(
I
)
\vec{A}^{(I)}
A(I)代表在image-plane中的
A
⃗
\vec{A}
A(也就是
I
P
⃗
\vec{IP}
IP),
A
⃗
(
O
)
\vec{A}^{(O)}
A(O)代表在object-plane中的
A
⃗
\vec{A}
A,
T
⃗
I
/
O
\vec{T}_{I/O}
TI/O代表从object-plane到image-object空间的变换矩阵。于是向量
B
⃗
\vec{B}
B与向量
N
O
⃗
\vec{NO}
NO之间就有关系式:
或者可以表示为:
根据公式4的第三个分量,可以计算出比例因子
c
c
c为:
于是前两个分量可以表示为:
注意一点:
u
,
v
,
u
o
,
v
o
u,v,u_o,v_o
u,v,uo,vo代表的是真实生活中照片上的距离单位可能是cm,而映射到digitization system中可能使用不同的长度单位,如像素,因此,必须再乘除比例因子:
λ
\lambda
λ
这里的
λ
u
\lambda_u
λu和
λ
v
\lambda_v
λv是两个方向的比例,一般来说不会一样。现在,整理
x
,
y
,
z
x,y,z
x,y,z的表达式,
其中,
系数
L
1
L_1
L1到
L
11
L_{11}
L11代表了object plane和image-plane的映射关系。
3.1.2 求解参数
由于是在2D图像中(比如俯拍),真实世界的
z
z
z轴总是为0,那么,
u
,
v
u,v
u,v的表达式可以表示成(系数与公式8不是一个东西)
根据公式31,设置至少
n
n
n个坐标点
n
≥
4
n\geq4
n≥4,和至少
m
m
m个相机
m
≥
1
m\geq1
m≥1,变换矩阵可以得到: