相机采集的N步相移图案可以表示为
I
n
=
a
+
b
cos
(
φ
+
Δ
φ
n
)
=
a
+
b
cos
φ
cos
Δ
φ
n
−
b
sin
φ
sin
Δ
φ
n
\begin{equation} \begin{split} I_n &=a+b \cos(\varphi+\Delta\varphi_n)\\ &=a+b\cos\varphi\cos\Delta\varphi_n-b\sin\varphi\sin\Delta\varphi_n \end{split} \end{equation}
In=a+bcos(φ+Δφn)=a+bcosφcosΔφn−bsinφsinΔφn
将
b
cos
φ
b\cos\varphi
bcosφ记作
c
c
c,将
b
sin
φ
b\sin\varphi
bsinφ记作
s
s
s,那么
I
n
=
a
+
c
cos
Δ
φ
n
−
s
sin
Δ
φ
n
\begin{equation} I_n=a+c\cos\Delta\varphi_n-s\sin\Delta\varphi_n \end{equation}
In=a+ccosΔφn−ssinΔφn
我们需要从N个公式(2)中求取未知量
a
,
c
a,c
a,c和
s
s
s,很自然地采用最小二乘法求解,最优化以下偏差:
ε
=
∑
n
=
1
N
(
I
n
−
(
a
+
c
cos
Δ
φ
n
−
s
sin
Δ
φ
n
)
)
2
\begin{equation} \varepsilon=\sum_{n=1}^N \big(I_n-(a+c\cos\Delta\varphi_n-s\sin\Delta\varphi_n)\big)^2 \end{equation}
ε=n=1∑N(In−(a+ccosΔφn−ssinΔφn))2
由偏导
∂
ε
∂
a
=
0
\frac{\partial\varepsilon}{\partial a}=0
∂a∂ε=0可得
∑
n
=
1
N
I
n
=
a
N
+
c
∑
n
=
1
N
cos
Δ
φ
n
−
s
∑
n
=
1
N
sin
Δ
φ
n
\begin{equation} \sum_{n=1}^{N}I_n=aN+c\sum_{n=1}^{N}\cos\Delta\varphi_n-s\sum_{n=1}^{N}\sin\Delta\varphi_n \end{equation}
n=1∑NIn=aN+cn=1∑NcosΔφn−sn=1∑NsinΔφn
由偏导
∂
ε
∂
c
=
0
\frac{\partial\varepsilon}{\partial c}=0
∂c∂ε=0可得
∑
n
=
1
N
I
n
cos
Δ
φ
n
=
a
∑
n
=
1
N
cos
Δ
φ
n
+
c
∑
n
=
1
N
cos
2
Δ
φ
n
−
s
∑
n
=
1
N
sin
Δ
φ
n
cos
Δ
φ
n
\begin{equation} \sum_{n=1}^{N}I_n\cos\Delta\varphi_n=a\sum_{n=1}^{N}\cos\Delta\varphi_n+c\sum_{n=1}^{N}\cos^2\Delta\varphi_n-s\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n \end{equation}
n=1∑NIncosΔφn=an=1∑NcosΔφn+cn=1∑Ncos2Δφn−sn=1∑NsinΔφncosΔφn
由偏导
∂
ε
∂
s
=
0
\frac{\partial\varepsilon}{\partial s}=0
∂s∂ε=0可得
∑
n
=
1
N
I
n
sin
Δ
φ
n
=
a
∑
n
=
1
N
sin
Δ
φ
n
+
c
∑
n
=
1
N
sin
Δ
φ
n
cos
Δ
φ
n
−
s
∑
n
=
1
N
sin
2
Δ
φ
n
\begin{equation} \sum_{n=1}^{N}I_n\sin\Delta\varphi_n=a\sum_{n=1}^{N}\sin\Delta\varphi_n+c\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n-s\sum_{n=1}^{N}\sin^2\Delta\varphi_n \end{equation}
n=1∑NInsinΔφn=an=1∑NsinΔφn+cn=1∑NsinΔφncosΔφn−sn=1∑Nsin2Δφn
综合公式(4),公式(5)和公式(6),整理成矩阵形式,为
(
N
∑
n
=
1
N
cos
Δ
φ
n
−
∑
n
=
1
N
sin
Δ
φ
n
∑
n
=
1
N
cos
Δ
φ
n
∑
n
=
1
N
cos
2
Δ
φ
n
−
∑
n
=
1
N
sin
Δ
φ
n
cos
Δ
φ
n
∑
n
=
1
N
sin
Δ
φ
n
∑
n
=
1
N
sin
Δ
φ
n
cos
Δ
φ
n
−
∑
n
=
1
N
sin
2
Δ
φ
n
)
(
a
c
s
)
=
(
∑
n
=
1
N
I
n
∑
n
=
1
N
I
n
cos
Δ
φ
n
∑
n
=
1
N
I
n
sin
Δ
φ
n
)
\begin{equation} \begin{pmatrix}N&\sum_{n=1}^{N}\cos\Delta\varphi_n&-\sum_{n=1}^{N}\sin\Delta\varphi_n & \\\sum_{n=1}^{N}\cos\Delta\varphi_n & \sum_{n=1}^{N}\cos^2\Delta\varphi_n & -\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n \\ \sum_{n=1}^{N}\sin\Delta\varphi_n & \sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n & -\sum_{n=1}^{N}\sin^2\Delta\varphi_n \end{pmatrix}\begin{pmatrix}a\\c\\s\end{pmatrix}=\begin{pmatrix}\sum_{n=1}^{N}I_n\\\sum_{n=1}^{N}I_n\cos\Delta\varphi_n\\\sum_{n=1}^{N}I_n\sin\Delta\varphi_n\end{pmatrix} \end{equation}
N∑n=1NcosΔφn∑n=1NsinΔφn∑n=1NcosΔφn∑n=1Ncos2Δφn∑n=1NsinΔφncosΔφn−∑n=1NsinΔφn−∑n=1NsinΔφncosΔφn−∑n=1Nsin2Δφn
acs
=
∑n=1NIn∑n=1NIncosΔφn∑n=1NInsinΔφn
由于
∑
n
=
1
N
cos
Δ
φ
n
=
0
\sum_{n=1}^{N}\cos\Delta\varphi_n=0
∑n=1NcosΔφn=0,
∑
n
=
1
N
sin
Δ
φ
n
=
0
\sum_{n=1}^{N}\sin\Delta\varphi_n=0
∑n=1NsinΔφn=0,
∑
n
=
1
N
sin
Δ
φ
n
cos
Δ
φ
n
=
0
\sum_{n=1}^{N}\sin\Delta\varphi_n\cos\Delta\varphi_n=0
∑n=1NsinΔφncosΔφn=0,
∑
n
=
1
N
cos
2
Δ
φ
n
=
N
2
\sum_{n=1}^{N}\cos^2\Delta\varphi_n=\frac{N}{2}
∑n=1Ncos2Δφn=2N,
∑
n
=
1
N
sin
2
Δ
φ
n
=
N
2
\sum_{n=1}^{N}\sin^2\Delta\varphi_n=\frac{N}{2}
∑n=1Nsin2Δφn=2N, 代入公式(7)中可得,
(
N
0
0
0
N
2
0
0
0
−
N
2
)
(
a
c
s
)
=
(
∑
n
=
1
N
I
n
∑
n
=
1
N
I
n
cos
Δ
φ
n
∑
n
=
1
N
I
n
sin
Δ
φ
n
)
\begin{equation} \begin{pmatrix}N&0&0 \\0&\frac{N}{2}&0 \\ 0&0&-\frac{N}{2}\end{pmatrix}\begin{pmatrix}a\\c\\s\end{pmatrix}=\begin{pmatrix}\sum_{n=1}^{N}I_n\\\sum_{n=1}^{N}I_n\cos\Delta\varphi_n\\\sum_{n=1}^{N}I_n\sin\Delta\varphi_n\end{pmatrix} \end{equation}
N0002N000−2N
acs
=
∑n=1NIn∑n=1NIncosΔφn∑n=1NInsinΔφn
此时,易得
a
=
1
N
∑
n
=
1
N
I
n
c
=
2
N
∑
n
=
1
N
I
n
cos
Δ
φ
n
s
=
−
2
N
∑
n
=
1
N
I
n
sin
Δ
φ
n
\begin{equation} \begin{split} a&=\frac1N\sum_{n=1}^{N}I_n\\ c&=\frac2N\sum_{n=1}^{N}I_n\cos\Delta\varphi_n\\ s&=-\frac2N\sum_{n=1}^{N}I_n\sin\Delta\varphi_n \end{split} \end{equation}
acs=N1n=1∑NIn=N2n=1∑NIncosΔφn=−N2n=1∑NInsinΔφn
由于
b
cos
φ
=
c
b\cos\varphi=c
bcosφ=c,
b
sin
φ
=
s
b\sin\varphi=s
bsinφ=s,可得
tan
φ
=
−
∑
n
=
1
N
I
n
sin
Δ
φ
n
∑
n
=
1
N
I
n
cos
Δ
φ
n
b
=
2
N
(
∑
n
=
1
N
I
n
sin
Δ
φ
n
)
2
+
(
∑
n
=
1
N
I
n
cos
Δ
φ
n
)
2
\begin{equation} \begin{split} \tan\varphi&=-\frac{\sum_{n=1}^{N}I_n\sin\Delta\varphi_n}{\sum_{n=1}^{N}I_n\cos\Delta\varphi_n}\\ b&=\frac2N\sqrt{(\sum_{n=1}^{N}I_n\sin\Delta\varphi_n)^2+(\sum_{n=1}^{N}I_n\cos\Delta\varphi_n)^2} \end{split} \end{equation}
tanφb=−∑n=1NIncosΔφn∑n=1NInsinΔφn=N2(n=1∑NInsinΔφn)2+(n=1∑NIncosΔφn)2
推导完毕。
N步相移算法的推导
于 2022-12-29 17:56:13 首次发布