摄影测量经典文献阅读一:Close-Range Camera Calibration
摘要
在摄影测量领域,定量化镜头的畸变是非常重要的为了达到很高的精度。在本文中,我们提出一个模型和相应的实际方法来处理近景摄影机的径向和切向畸变。我们称这种方法为分析直线法,并且将其运用到实际实验中来验证模型对于畸变在不同距离的的可行性。
简介
在过去的8年里,近景摄影测量在结构测量,抛物线型天线测量领域得到广泛的应用。这也促进了高精度摄影测量技术的发展,由Brown所创建。Kenefick写了一篇综述来介绍这种技术的主体发展以及遇到的问题。我们在这篇文章中的侧重点是摄影测量中的相机标定。具体点的,摄影测量模型中的畸变问题。这是一个值得考虑的问题,伴随着测量放大率的增加。Brown在1962年指出了这个问题的根本:
径向畸变(radial distortion)是在聚焦无穷远处标定的。通过严格的一流的标定,我们可以得到精度不低于2个微米的畸变函数。然而,光线追踪理论告诉我们高斯径向畸变是物距的函数。因此,当焦平面设置在可感知的有限的距离的时候,使用匹配这个距离的畸变函数是有必要的。实际上,在两个聚焦距离情况下标定畸变,然后其它位置的畸变都可以从理论中计算出来。因此,即使我们已经通过在一个位置标定获得畸变函数,针对有限距离对焦情况下的畸变,我们仍然需要在至少一个位置来标定标定。
在阐述这个问题的时候,我们首先介绍一些已经在在DBA系统中使用十年来的技术的发展,然而这些技术还没有得到公开和使用,因为某些原因。
Magill’s 模型的拓展
Magill推到并且实验验证了一个公式,可以用来解释畸变伴随物距的变化。Magill的结果可以表达如下:
f = 镜头焦距
s = 物距
δ
r
s
\delta r_s
δrs = 在物距s时的畸变函数
δ
r
∞
\delta r_\infty
δr∞ = 无穷远处的畸变函数
δ
r
−
∞
\delta r_{-\infty}
δr−∞ = 反向无穷远处的畸变函数(比如镜头反转,前方物体成为后面的物体)
在物距为s的时候镜头的放大率为:
m
s
=
f
(
s
−
f
)
(1)
m_s = \frac{f}{(s-f)} \tag{1}
ms=(s−f)f(1)
Magill公式表明:
δ
r
s
=
δ
r
−
∞
−
m
s
δ
r
∞
(2)
\delta r_s = \delta r_{-\infty} - m_s \delta r_\infty \tag{2}
δrs=δr−∞−msδr∞(2)
这个公式表明。。。
翻译不下去了,直接简略介绍吧。。。哭哭
如上公式表达,如果我们在两个距离上,
s
1
,
s
2
s_1, s_2
s1,s2,来进行标定,获得畸变函数
δ
r
s
1
,
δ
r
s
2
\delta r_{s1}, \delta r_{s2}
δrs1,δrs2,带入上面的公式,可以反解出
δ
r
−
∞
,
δ
r
∞
\delta r_{-\infty}, \delta r_{\infty}
δr−∞,δr∞,带入任一个距离s,则有:
δ
r
s
=
α
s
δ
r
s
1
+
(
1
−
α
)
δ
r
s
2
(3)
\delta r_s = \alpha _s \delta r_{s_1} + (1-\alpha)\delta r_{s_2} \tag{3}
δrs=αsδrs1+(1−α)δrs2(3)
其中:
α
s
=
s
2
−
s
s
2
−
s
1
s
t
−
f
s
−
f
(4)
\alpha _s = \frac{s_2-s}{s_2-s_1} \frac{s_t-f}{s-f} \tag{4}
αs=s2−s1s2−ss−fst−f(4)
因此,如果
δ
r
s
1
,
δ
r
s
2
\delta r_{s1}, \delta r_{s2}
δrs1,δrs2是已知的,那么对于任意距离s下的
δ
r
s
\delta r_s
δrs都是可以推导出来的。Magill公式可以拓展到一般情况。
如果
δ
r
s
1
,
δ
r
s
2
\delta r_{s_1}, \delta r_{s_2}
δrs1,δrs2可以表示为常见的距离指数线性组合形式:
δ
r
s
1
=
K
1
s
1
r
3
+
K
2
s
1
r
5
+
K
3
s
1
r
7
δ
r
s
2
=
K
1
s
2
r
3
+
K
2
s
2
r
5
+
K
3
s
2
r
7
(5)
\delta r_{s_1} = K_{1s_1} r^3+K_{2s_1}r^5+K_{3s_1}r^7\\ \delta r_{s_2} = K_{1s_2} r^3+K_{2s_2}r^5+K_{3s_2}r^7 \tag{5}
δrs1=K1s1r3+K2s1r5+K3s1r7δrs2=K1s2r3+K2s2r5+K3s2r7(5)
对于任一位置s的畸变函数可以表示为
δ
r
s
=
K
1
s
r
3
+
K
2
s
r
5
+
K
3
s
r
7
(6)
\delta r_{s} = K_{1s} r^3+K_{2s}r^5+K_{3s}r^7 \tag{6}
δrs=K1sr3+K2sr5+K3sr7(6)
其中
K
i
s
=
α
K
i
s
1
+
(
1
−
α
s
)
K
i
s
2
(7)
K_{is} = \alpha K_{is_1}+(1-\alpha _s)K_{is_2} \tag{7}
Kis=αKis1+(1−αs)Kis2(7)
如果我们巧妙的选择无穷远处为s2 ,选取等大物面s1=2f,我们认为焦平面的畸变是零(理论上),而此时
α
s
=
m
s
=
1
\alpha _s = m_s = 1
αs=ms=1,对于任意一个距离s的畸变函数,可以表示为:
δ
r
s
=
(
1
−
m
s
)
δ
r
∞
(8)
\delta r_s = (1-m_s)\delta r_\infty \tag{8}
δrs=(1−ms)δr∞(8)
这个结果理论上的意义是远大于实际上的,因为没有镜头能够是完全对称的,事实上,设计的时候会故意偏离完美对称。
然而针对摄影测量的镜头,会考虑削减畸变的影响,通常情况下畸变函数受距离的三次方项影响较大。当更高阶的指数项可以忽略的时候,我们依旧考虑上述公式对应的情况,并且令距离s位置的
δ
r
s
\delta r_s
δrs为零,s可以求解为:
s
=
(
2
−
δ
r
2
f
δ
r
∞
)
f
=
(
2
−
K
1
,
2
f
K
1
∞
)
f
(9)
s = (2-\frac{\delta r_2f}{\delta r_\infty})f = (2-\frac{K_{1,2f}}{K_{1 \infty}})f \tag{9}
s=(2−δr∞δr2f)f=(2−K1∞K1,2f)f(9)
这就定义了一个物平面,该处的畸变函数,第一阶畸变为0。如果需要计算无穷远处和2倍焦距处的畸变函数,可以通过任意两个位置处的畸变函数推算出来。
摄影测量全场内畸变变化
Magill的公式只适用于焦平面上的点,而不严格适用与非清晰聚焦平面上的点。为了说明这个情况,我们来讨论物距4尺远处的焦平面,镜头的焦距是5英寸,光圈大小是f/45,景深大小从3尺到6尺。当然,我们可以用Magill的公式来解释4尺的时候的畸变,然而对于3英尺或者6英尺上的点,还使用4英寸对焦面的畸变函数,是会带来显然的误差。我们需要的是把Magill公式推广开来。使用
δ
r
s
,
s
′
\delta r_{s,s'}
δrs,s′来表示聚焦在s的时候s’点的畸变函数。
注意:这里面是像平面的示意图,cs和cs’表示的是像距。
γ
s
,
s
′
=
r
′
r
=
δ
r
s
′
δ
r
s
,
s
′
=
c
s
′
c
s
(10)
\gamma_{s,s'} =\frac{r'}{r} = \frac{\delta r_{s'}}{\delta r_{s,s'}} = \frac{c_{s'}}{c_s} \tag{10}
γs,s′=rr′=δrs,s′δrs′=cscs′(10)
我们可以表示s’点的畸变函数为:
δ
r
s
′
=
K
1
s
′
(
r
′
)
3
+
K
2
s
′
(
r
′
)
5
+
K
3
s
′
(
r
′
)
7
+
.
.
.
(11)
\delta r_{s'} = K_{1s'}(r')^3+K_{2s'}(r')^5+K_{3s'}(r')^7+... \tag{11}
δrs′=K1s′(r′)3+K2s′(r′)5+K3s′(r′)7+...(11)
将r’替换为
γ
s
,
s
′
r
\gamma _{s,s'}r
γs,s′r,方程11可整理成:
δ
r
s
,
s
′
=
γ
s
,
s
′
2
K
1
s
′
r
3
+
γ
s
,
s
′
4
K
2
s
′
r
5
+
γ
s
,
s
′
6
K
3
s
′
r
7
+
.
.
.
(12)
\delta r_{s,s'} = \gamma _{s,s'}^2 K_{1s'}r^3+\gamma _{s,s'}^4 K_{2s'}r^5+\gamma _{s,s'}^6 K_{3s'}r^7+... \tag{12}
δrs,s′=γs,s′2K1s′r3+γs,s′4K2s′r5+γs,s′6K3s′r7+...(12)
考虑到高斯光学几何成像公式:
1
s
+
1
c
s
=
1
f
a
s
′
+
1
c
s
′
=
1
f
(13)
\frac {1}{s} + \frac{1}{c_s} = \frac{1}{f} \\ \frac {a}{s'} + \frac{1}{c_s'} = \frac{1}{f} \tag{13}
s1+cs1=f1s′a+cs′1=f1(13)
对于
δ
r
s
,
s
′
\delta r_{s,s'}
δrs,s′的推到我们可以分部表示如下:
- 通过三角测量得到待测点的X,Y,Z坐标,可以是没有进行畸变矫正的,认为待测点在s’平面内
- 当s’已知的时候,根据方程4,7计算这个平面上的畸变函数 K i s ′ K_{is'} Kis′的参数
- 计算 c s / c s ′ c_s/c_s' cs/cs′来计算比例系数,这是畸变函数的系数,计算畸变函数 δ r s , s ′ \delta r_{s,s'} δrs,s′
- 有 δ r s , s ′ \delta r_{s,s'} δrs,s′已知,在坐标上添加比例参数(修正参数)
- 将修正后的结果放回第一步中,如果需要的话,可以进行迭代修正,直至收敛
稍后我们将介绍上述理论的实验验证。
DBA发展的相机标定方法
对于无穷远处成像的相机的理论分析标定方法始于1956年,随后,控制点、镜头光心不匹配被引入模型,更多的关于畸变的标定被引入。这些工作都是想获取畸变函数通过指向不变的有特征的平板,当然后续的发展不需要再完美固定相机的位置。
伴随着近景摄影测量的发展,上述的这些方法被用来标定畸变函数。大体上来说,这些方法可以用来准确的标定在摄影测量中。然而,我们不想采用这些方法,因为实际过程中构建保持合适的目标区域是很难得,而且有两种可选的方法是已经被验证是非常有效的。
第一种方法是把我们Magill的延申运用到多站点理论立体三角测量中,我们的计算程序可以容纳多达9个阶段照片。详细的方法可以在另一篇文章中看到。
第二种方法