注:本文内容参考来源《Computer vision: A modern approach》,有问题请指出
小孔成像
小孔成像也叫小孔透视投影或者中心透视投影,于十五世纪初由Brunelleschi提出。如下图中,小孔成像在相平面形成一个实像,于小孔前方像距大小的位置可以找到一个虚像,虚像的大小于实像相同。单看小孔的右侧,可以发现物体发出的光相交于一点,且在小孔与观测物之间可以形成无数个尺寸不同的虚像。
如果小孔缩小到只有一个点(或者说光子)的大小,(从几何上看)物点,小孔以及像点共线。但由于光是一种波,当小孔非常小的时候,光沿直线传播这条理论也不再适用了,这种情况下会发生光的干涉现象。在实际过程中,小孔存在一定的尺寸,场景中(物理空间中)每个物点都会发出多条光线从小孔穿过并投影到像平面上,当小孔大到一定程度时,图像就会变模糊。参考:小孔成像(一)——小孔(pinhole)大小对成像的影响
观察下图a,其中
a
,
b
,
c
a, b, c
a,b,c是
A
,
B
,
C
A,B,C
A,B,C的像,其中
A
,
C
A,C
A,C高度相等,
b
,
c
b,c
b,c高度相等,
B
B
B的高度值最大。从图中可以看出,距离
O
O
O越近的物体所成的像越大,反之越小。在下图b中,可以得到的结论是,某个平面内两条平行线的像点在某个位置会重合成一点,该重合点位于水平线
h
h
h上。其中,平面
Π
\Pi
Π垂直于平面
Φ
\Phi
Φ,点
O
O
O所在的平行于
Φ
\Phi
Φ的平面与平面
Π
\Pi
Π相交的直线即为
h
h
h。由此引出透视投影的两条性质:1. 平行于成像平面的物点所称的像会发生缩放,像距不变的情况下,缩放比例和物距相关,就是常说的远小近大。2. 平行线(不与像平面平行)的透视投影最终会相交于一条直线上,例如远处的马路或者铁轨会相交。
这些性质通过几何法很容易推导出来:如下图,假设有一三维坐标系,其中有一点
P
P
P的坐标为
(
X
,
Y
,
Z
)
(X,Y,Z)
(X,Y,Z),其像点
p
p
p的坐标为
(
x
,
y
)
(x,y)
(x,y),像距为
d
d
d。可以得到以下关系:
{
x
=
λ
X
y
=
λ
Y
d
=
λ
Z
⟺
λ
=
x
X
=
y
Y
=
d
Z
,
\left\{\begin{array}{l} x=\lambda X \\ y=\lambda Y \\ d=\lambda Z \end{array} \Longleftrightarrow \lambda=\frac{x}{X}=\frac{y}{Y}=\frac{d}{Z},\right.
⎩
⎨
⎧x=λXy=λYd=λZ⟺λ=Xx=Yy=Zd,
and therefore
{
x
=
d
X
Z
y
=
d
Y
Z
\left\{\begin{array}{l} x=d \frac{X}{Z} \\ y=d \frac{Y}{Z} \end{array}\right.
{x=dZXy=dZY
弱透视投影
弱透视投影是透视投影(小孔成像投影)的的粗略近似,简单地说就是屏蔽透视投影的第二条性质,假设所有的物点都与像平面平行,此时物像之间只存在缩放关系。如下图:
弱透视投影的物像关系可以表示为:
{
x
=
−
m
X
,
y
=
−
m
Y
,
w
h
e
r
e
m
=
−
d
Z
0
\left\{\begin{array}{l}x=-m X, \\ y=-m Y,\end{array} \quad\right. where \quad m=-\frac{d}{Z_0}
{x=−mX,y=−mY,wherem=−Z0d
,其中
Z
0
Z_0
Z0是负数,
m
m
m是正数。由于
P
Q
→
\overrightarrow{P Q}
PQ和
p
q
→
\overrightarrow{p q}
pq是平行的,可以得到
∥
p
q
→
∥
=
m
∥
P
Q
→
∥
\|\overrightarrow{p q}\|=m\|\overrightarrow{P Q}\|
∥pq∥=m∥PQ∥。弱透视投影的一个特殊情况叫做正交投影,正交投影时物像大小相同,且方向也相同,此时
m
=
−
1
m=-1
m=−1。正交投影是一种理想情况。
带镜头的相机
镜头主要有两个作用:1. 聚光 2. 在从大面积收集光线的同时保持图像清晰对焦。当忽略光的干涉以及其他物理光学现象时,镜头的性质由几何光学定律决定。有如下几条:1.光在均匀介质中沿直线传播 2.入射角=反射角3.当光从一种介质进入另一种介质时会发生折射,光路方向会改变。根据斯内尔定律有:
n
1
sin
α
1
=
n
2
sin
α
2
n_1 \sin \alpha_1=n_2 \sin \alpha_2
n1sinα1=n2sinα2。
n
n
n表示折射率,
α
\alpha
α表示入射角\折射角。
当入射角很小时的时候,有
n
1
α
1
≈
n
2
α
2
n_1 \alpha_1 \approx n_2 \alpha_2
n1α1≈n2α2(使用一阶泰勒展开或者等价无穷小可推出),此过程叫做近轴几何光学。镜头的中心对称轴为光轴,且所有的折射平面都是球形的。
假设透镜处于真空或者空气(折射率为1)中,且透镜为薄透镜。此处薄透镜的作用大致意思为:光线进入薄透镜后发生两次折射,但这两次折射之间时间间隔非常小,通过光心的光线不会发生折射,平行于光轴的光线汇聚于焦点。
设有一薄透镜,半径为
R
R
R,折射率为
n
n
n,如上图所示,可以得到如下结果:
1
z
−
1
Z
=
1
f
\frac{1}{z}-\frac{1}{Z}=\frac{1}{f}
z1−Z1=f1,其中
f
=
R
2
(
n
−
1
)
f=\frac{R}{2(n-1)}
f=2(n−1)R表示透镜的焦距。不难发现,当
d
=
z
d=z
d=z时,
P
P
P和
p
p
p的关系和小孔成像时一致,因为
P
P
P 和
p
p
p 位于穿过透镜中心的光线上。根据薄透镜公式(上述方程),当且仅当
P
P
P与
O
O
O距离为
Z
Z
Z且
p
p
p与
O
O
O距离为
z
z
z时,
p
p
p才是清晰的。
F
F
F和
F
′
F'
F′称作焦点。实际中,物体可接收的清晰成像的范围叫做景深,景深随着镜头的
f
−
n
u
m
b
e
r
f-number
f−number增大,
f
−
n
u
m
b
e
r
f-number
f−number取决于镜头的焦距预期直径的比值。
相机的视场(视野范围):实际投射到相机感光平面上的场景空间大小,其不仅取决于焦距的大小,同时也受感光器件的有效面积的影响。下图中,相机的视场可以定义为
2
ϕ
,
where
ϕ
=
def
arctan
a
2
f
\mathrm 2 \phi, \text { where } \phi \stackrel{\text { def }}{=} \arctan \frac{a}{2 f}
2ϕ, where ϕ= def arctan2fa,
a
a
a表示相机传感器的直径。
像差
近轴折射模型只是对光学系统的近似,只有光路与光轴的夹角较小的时候才是比较实用的。当光路与光轴的夹角较大时,引入额外的项点可以做到更近似的逼近。一个比较容易理解的事实是,离光轴较近的光线其焦点离透镜球面更远,离光轴较远的光线其焦点离透镜球面更近。从下图可以看出,从点
P
P
P发出的近轴光线都聚焦于点
p
p
p,远离光轴的光线聚焦位置离透镜球面更近些。
离轴光线聚焦在不同的位置形成纵向球差,这些光线在像平面上形成一定范围的像,叫做横向球差。同时在相平面上形成直径为
e
e
e的弥散圆,弥散圆的圆心通常与
p
p
p不重合。虚线处是弥散程度最小的弥散圆。
除了球差以外,还存在其他几种像差现象,包括慧差,像散,场曲以及畸变。包括球差在内的前四种像差都会使得物点变模糊,而畸变会改变图像的整体形状,这是因为镜头的不同位置的焦距具有差异。以下为枕形畸变和桶形畸变。
以上对于像差的描述是关于单色光的,对于包含不同波长的光线还存在色差现象,这是因为介质的折射率取决于光波的波长。像差相关的只是可以参考:https://zhuanlan.zhihu.com/p/359652925。
可以通多使用多个不同的透镜来最小化像差,可以通过厚透镜公式(本文未介绍)建模。在机器视觉中,会用光圈挡掉一部分离轴光线,多保留一些近轴光线以减少像差。这样带来的问题是,相机进光量减少了,图像的边缘会变得模糊,这种现象叫做渐晕。