相机与图像
一些基本概念
aperture(光圈)与depth of field(景深):光圈可以看做是小孔成像模型中的孔径,光圈越大进光面积就会越大。
光圈越小,景深越大,但光圈太小会产生衍射现象,如下图。
下图展示了光圈和景深的关系(截取自百度百科)
field of view(视野)
θ
=
a
r
c
t
a
n
(
d
/
2
f
)
\theta=arctan(\frac{d/2}{f})
θ=arctan(fd/2)
视野取决与两个因素:成像平面(sensor)的大小、焦距。焦距越大视野越小。
针孔相机模型
针孔相机模型(图取自网络)
坐标系描述
以相机光心O组成的坐标系称为相机坐标系
O
−
x
−
y
−
z
O-x-y-z
O−x−y−z。
以光心在像平面投影
O
′
O^{'}
O′(图像平面中心)为原点的坐标系称为图像坐标系(象平面坐标系)
O
′
−
x
′
−
y
′
O^{'}-x^{'}-y^{'}
O′−x′−y′。
以图像平面左上角为远点的坐标系称为像素坐标系
O
−
u
−
v
O-u-v
O−u−v。
物体在真是世界中的坐标用世界坐标系描述
O
w
−
x
w
−
y
w
O^{w}-x^{w}-y^{w}
Ow−xw−yw
成像过程
世界坐标系—>相机坐标系—>图像坐标系—>像素坐标系
1、世界坐标系->相机坐标系
从世界坐标系到相机坐标系的,为刚体变换,反应了物体与相机的相对运动关系。 P w ( x w , y w , z w ) P^{w}(x^{w},y^{w},z^{w}) Pw(xw,yw,zw) --> P O ( x , y , z ) P^{O}(x,y,z) PO(x,y,z)
[
x
y
z
1
]
=
[
R
t
0
T
1
]
[
x
w
y
w
z
w
1
]
\left[ \begin{matrix} x \\ y \\ z \\ 1 \end{matrix} \right] =\left[ \begin{matrix} R & t \\ 0^{T} & 1 \end{matrix} \right] \left[ \begin{matrix} x^{w} \\ y^{w} \\ z^{w} \\ 1 \end{matrix} \right]
⎣⎢⎢⎡xyz1⎦⎥⎥⎤=[R0Tt1]⎣⎢⎢⎡xwywzw1⎦⎥⎥⎤
有6个自由度,这6个参数称为相机的外参(Extrinsic)
2、相机坐标系–>象平面坐标系
若将成像平面移动到,相机光心与物体之间,则中心透视模型:
P
O
(
x
,
y
,
z
)
P^{O}(x,y,z)
PO(x,y,z) -->
p
′
(
x
′
,
y
′
)
p^{'}(x^{'},y^{'})
p′(x′,y′)
z
[
x
′
y
′
1
]
=
[
f
0
0
0
0
f
0
0
0
0
1
0
]
[
x
y
z
1
]
z\left[ \begin{matrix} x^{'} \\ y^{'} \\ 1 \end{matrix} \right] =\left[ \begin{matrix} f & 0 & 0 &0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{matrix} \right] \left[ \begin{matrix} x \\ y \\ z \\ 1 \end{matrix} \right]
z⎣⎡x′y′1⎦⎤=⎣⎡f000f0001000⎦⎤⎣⎢⎢⎡xyz1⎦⎥⎥⎤
从相机坐标系到图像坐标系的,投影只和相机的焦距f有关。一个自由度f
3、象平面坐标系–>像素平面坐标系
p
′
(
x
′
,
y
′
)
p^{'}(x^{'},y^{'})
p′(x′,y′) -->
p
O
(
u
,
v
)
p^{O}(u,v)
pO(u,v)
令
d
x
、
d
y
dx、dy
dx、dy分别表示感光sensor 上每个点在象平面x和y方向上的物理尺寸。
[
u
v
1
]
=
[
f
u
0
u
0
0
f
v
v
0
0
0
1
]
[
x
′
y
′
1
]
\left[ \begin{matrix} u \\ v \\ 1 \end{matrix} \right] =\left[ \begin{matrix} f_{u} & 0 &u_{0} \\ 0 & f_{v} & v_{0} \\ 0 & 0 & 1 \end{matrix} \right] \left[ \begin{matrix} x^{'} \\ y^{'} \\ 1 \end{matrix} \right]
⎣⎡uv1⎦⎤=⎣⎡fu000fv0u0v01⎦⎤⎣⎡x′y′1⎦⎤
其中:
f
u
=
1
d
x
f_{u}=\frac{1}{dx}
fu=dx1 ,
f
v
=
1
d
y
f_{v}=\frac{1}{dy}
fv=dy1
从象平面到像素平面的变换有 4个自由度。
4、世界坐标到像素坐标
z
[
u
v
1
]
=
[
f
u
0
u
0
0
f
v
v
0
0
0
1
]
[
f
0
0
0
0
f
0
0
0
0
1
0
]
[
R
t
0
T
1
]
[
x
w
y
w
z
w
1
]
z\left[ \begin{matrix} u \\ v \\ 1 \end{matrix} \right] =\left[ \begin{matrix} f_{u} & 0 &u_{0} \\ 0 & f_{v} & v_{0} \\ 0 & 0 & 1 \end{matrix} \right] \left[ \begin{matrix} f & 0 & 0 &0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{matrix} \right] \left[ \begin{matrix} R & t \\ 0^{T} & 1 \end{matrix} \right] \left[ \begin{matrix} x^{w} \\ y^{w} \\ z^{w} \\ 1 \end{matrix} \right]
z⎣⎡uv1⎦⎤=⎣⎡fu000fv0u0v01⎦⎤⎣⎡f000f0001000⎦⎤[R0Tt1]⎣⎢⎢⎡xwywzw1⎦⎥⎥⎤
由上式可知,该模型中,内参有5个,外参有6个。
畸变
引起畸变的两个主要因素:
1、透镜形状:径向畸变
2、透镜与成像平面不平行:切向畸变
径向畸变如下图:(图片截取自网络)
切向畸变如下图:(图片截取自网络)
对于象平面中的点,其畸变可由下图说明。
dr:径向畸变
dt:切向畸变
径向畸变:
x
c
o
r
r
e
c
t
e
d
′
=
x
′
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
x^{'}_{corrected}=x^{'}(1+k_{1}r^2+k_{2}r^4+k_{3}r^6)
xcorrected′=x′(1+k1r2+k2r4+k3r6)
y
c
o
r
r
e
c
t
e
d
′
=
y
′
(
1
+
k
1
r
2
+
k
2
r
4
+
k
3
r
6
)
y^{'}_{corrected}=y^{'}(1+k_{1}r^2+k_{2}r^4+k_{3}r^6)
ycorrected′=y′(1+k1r2+k2r4+k3r6)
切向畸变
x
c
o
r
r
e
c
t
e
d
′
=
x
+
2
p
1
x
y
+
p
2
(
r
2
+
2
x
2
)
x^{'}_{corrected}=x+2p_{1}xy+p_{2}(r^2+2x^2)
xcorrected′=x+2p1xy+p2(r2+2x2)
y
c
o
r
r
e
c
t
e
d
′
=
y
+
p
1
(
x
2
+
2
y
2
)
+
2
p
2
x
y
y^{'}_{corrected}=y+p_{1}(x^{2}+2y^{2})+2p_{2}xy
ycorrected′=y+p1(x2+2y2)+2p2xy