-
世界坐标系下的位姿
T c w = { r 1 , r 2 , r 3 , t 1 , t 2 , t 3 } T_{cw} = \{ r_1, r_2, r_3, t_1, t_2, t_3 \} Tcw={r1,r2,r3,t1,t2,t3} -
相机本体坐标系下的三维点
P c = { p 1 , p 2 , p 3 } P_c = \{ p_1, p_2, p_3 \} Pc={p1,p2,p3} -
预定义:
ρ = β ∗ ( p 1 2 + p 2 2 ) + p 3 2 \rho = \sqrt[]{\beta*(p_1^2+p_2^2)+p_3^2} ρ=β∗(p12+p22)+p32
η = ( 1 − α ) ∗ p 3 + α ∗ ρ \eta = (1 - \alpha)*p_3 + \alpha * \rho η=(1−α)∗p3+α∗ρ -
EUCM投影过程
p r o j 0 = p 1 ( 1 − α ) ∗ p 3 + α ∗ ρ = p 1 η proj_0 = \frac {p_1}{(1-\alpha)*p_3+\alpha*\rho} = \frac{p_1}{\eta} proj0=(1−α)∗p3+α∗ρp1=ηp1
p r o j 1 = p 2 ( 1 − α ) ∗ p 3 + α ∗ ρ = p 2 η proj_1 = \frac {p_2}{ (1-\alpha)*p_3+\alpha*\rho} = \frac {p_2}{\eta} proj1=(1−α)∗p3+α∗ρp2=ηp2
r e s 0 = p r o j 0 ∗ f x + c x res_0 = proj_0 * f_x + c_x res0=proj0∗fx+cx
r e s 1 = p r o j 1 ∗ f y + c y res_1 = proj_1 * f_y + c_y res1=proj1∗fy+cy -
三维点重投影残差计算
e r r 0 = o b s u − r e s 0 err_0 = obs_u - res_0 err0=obsu−res0
e r r 1 = o b s v − r e s 1 err_1 = obs_v - res_1 err1=obsv−res1
令
e
=
[
e
r
r
1
e
r
r
2
]
\mathbf{e} = \begin{bmatrix} err_1\\ err_2 \end{bmatrix}
e=[err1err2]
- 三维点重投影残差对相机本体坐标系下三维点的雅可比计算
∂ e r r 0 ∂ p 1 = − ∂ r e s 0 ∂ p 1 = − f x ∗ ∂ p r o j 0 ∂ p 1 \frac{\partial err_0}{\partial p_1} = -\frac{\partial res_0}{\partial p_1} = -f_x * \frac{\partial proj_0}{\partial p_1} ∂p1∂err0=−∂p1∂res0=−fx∗∂p1∂proj0
其中,
∂
p
r
o
j
0
∂
p
1
=
∂
(
p
1
∗
η
−
1
)
∂
p
1
=
η
−
1
+
[
p
1
∗
(
−
η
−
2
)
∗
∂
η
∂
p
1
]
\frac{\partial proj_0}{\partial p_1} = \frac{\partial (p_1*\eta^{-1})}{\partial p_1} = \eta^{-1}+[p_1*(-\eta^{-2})*\frac{\partial \eta}{\partial p_1}]
∂p1∂proj0=∂p1∂(p1∗η−1)=η−1+[p1∗(−η−2)∗∂p1∂η]
其中,
∂
η
∂
p
1
=
α
∗
∂
ρ
∂
p
1
\frac{\partial \eta}{\partial p_1}=\alpha * \frac{\partial \rho}{\partial p_1}
∂p1∂η=α∗∂p1∂ρ
其中,
∂
ρ
∂
p
1
=
β
∗
p
1
ρ
\frac{\partial \rho}{\partial p_1} = \frac {\beta * p_1}{\rho}
∂p1∂ρ=ρβ∗p1
从而,
∂
e
r
r
0
∂
p
1
=
−
f
x
∗
(
1
η
−
p
1
η
2
∗
α
∗
β
∗
p
1
ρ
)
=
f
x
∗
(
−
1
η
+
α
∗
β
∗
p
1
2
ρ
∗
η
2
)
\frac{\partial err_0}{\partial p_1} = -f_x * (\frac{1}{\eta}-\frac{p_1}{\eta^{2}}*\alpha*\frac {\beta*p_1}{\rho}) = f_x * (-\frac{1}{\eta}+\frac{\alpha*\beta*p_1^2}{\rho*\eta^{2}})
∂p1∂err0=−fx∗(η1−η2p1∗α∗ρβ∗p1)=fx∗(−η1+ρ∗η2α∗β∗p12)
∂ e r r 0 ∂ p 2 = − ∂ r e s 0 ∂ p 2 = − f x ∗ ∂ p r o j 0 ∂ p 2 \frac{\partial err_0}{\partial p_2} = -\frac{\partial res_0}{\partial p_2} = -f_x * \frac{\partial proj_0}{\partial p_2} ∂p2∂err0=−∂p2∂res0=−fx∗∂p2∂proj0
其中,
∂
p
r
o
j
0
∂
p
2
=
∂
(
p
1
∗
η
−
1
)
∂
p
2
=
p
1
∗
(
−
η
−
2
)
∗
∂
η
∂
p
2
\frac{\partial proj_0}{\partial p_2} = \frac{\partial (p_1*\eta^{-1})}{\partial p_2} = p_1*(-\eta^{-2})*\frac{\partial \eta}{\partial p_2}
∂p2∂proj0=∂p2∂(p1∗η−1)=p1∗(−η−2)∗∂p2∂η
其中,
∂
η
∂
p
2
=
α
∗
∂
ρ
∂
p
2
\frac{\partial \eta}{\partial p_2}=\alpha * \frac{\partial \rho}{\partial p_2}
∂p2∂η=α∗∂p2∂ρ
其中,
∂
ρ
∂
p
2
=
β
∗
p
2
ρ
\frac{\partial \rho}{\partial p_2} = \frac {\beta * p_2}{\rho}
∂p2∂ρ=ρβ∗p2
从而,
∂
e
r
r
0
∂
p
2
=
−
f
x
∗
(
−
p
1
η
2
∗
α
∗
β
∗
p
2
ρ
)
=
f
x
∗
(
α
∗
β
∗
p
1
∗
p
2
ρ
∗
η
2
)
\frac{\partial err_0}{\partial p_2} = -f_x * (-\frac{p_1}{\eta^{2}}*\alpha*\frac {\beta*p_2}{\rho}) = f_x * (\frac{\alpha*\beta*p_1*p_2}{\rho*\eta^{2}})
∂p2∂err0=−fx∗(−η2p1∗α∗ρβ∗p2)=fx∗(ρ∗η2α∗β∗p1∗p2)
∂ e r r 0 ∂ p 3 = − f x ∗ ∂ p r o j 0 ∂ p 3 \frac{\partial err_0}{\partial p_3} = -f_x * \frac{\partial proj_0}{\partial p_3} ∂p3∂err0=−fx∗∂p3∂proj0
其中,
∂
p
r
o
j
0
∂
p
3
=
∂
(
p
1
∗
η
−
1
)
∂
p
3
=
p
1
∗
(
−
η
−
2
)
∗
∂
η
∂
p
3
\frac{\partial proj_0}{\partial p_3} = \frac{\partial (p_1*\eta^{-1})}{\partial p_3} = p_1*(-\eta^{-2})*\frac{\partial \eta}{\partial p_3}
∂p3∂proj0=∂p3∂(p1∗η−1)=p1∗(−η−2)∗∂p3∂η
其中,
∂
η
∂
p
3
=
(
1
−
α
)
+
α
∗
∂
ρ
∂
p
3
\frac{\partial \eta}{\partial p_3} = (1-\alpha) + \alpha*\frac{\partial \rho}{\partial p_3}
∂p3∂η=(1−α)+α∗∂p3∂ρ
其中,
∂
ρ
∂
p
3
=
p
3
ρ
\frac{\partial \rho}{\partial p_3} = \frac {p_3}{\rho}
∂p3∂ρ=ρp3
从而,
∂ e r r 0 ∂ p 3 = f x ∗ p 1 ∗ [ ( 1 − α ) + α ∗ p 3 ρ ] ∗ 1 η 2 \frac{\partial err_0}{\partial p_3} = f_x * p_1*[(1-\alpha)+\frac{\alpha*p_3}{\rho}]*\frac{1}{\eta^2} ∂p3∂err0=fx∗p1∗[(1−α)+ρα∗p3]∗η21
根据对偶性,
∂
e
r
r
1
∂
p
1
=
f
y
∗
(
α
∗
β
∗
p
1
∗
p
2
ρ
∗
η
2
)
\frac{\partial err_1}{\partial p_1} = f_y * (\frac{\alpha*\beta*p_1*p_2}{\rho*\eta^{2}})
∂p1∂err1=fy∗(ρ∗η2α∗β∗p1∗p2)
∂ e r r 1 ∂ p 2 = f y ∗ ( − 1 η + α ∗ β ∗ p 2 2 ρ ∗ η 2 ) \frac{\partial err_1}{\partial p_2} = f_y * (-\frac{1}{\eta}+\frac{\alpha*\beta*p_2^2}{\rho*\eta^{2}}) ∂p2∂err1=fy∗(−η1+ρ∗η2α∗β∗p22)
∂ e r r 1 ∂ p 3 = f y ∗ p 2 ∗ [ ( 1 − α ) + α ∗ p 3 ρ ] ∗ 1 η 2 \frac{\partial err_1}{\partial p_3} = f_y * p_2*[(1-\alpha)+\frac{\alpha*p_3}{\rho}]*\frac{1}{\eta^2} ∂p3∂err1=fy∗p2∗[(1−α)+ρα∗p3]∗η21
综上,三维点重投影残差对相机本体坐标系下的三维点的雅可比矩阵为:
∂ e ∂ P c = [ f x ∗ ( − 1 η + α ∗ β ∗ p 1 2 ρ ∗ η 2 ) f x ∗ ( α ∗ β ∗ p 1 ∗ p 2 ρ ∗ η 2 ) f x ∗ p 1 ∗ [ ( 1 − α ) + α ∗ p 3 ρ ] ∗ 1 η 2 f y ∗ ( α ∗ β ∗ p 1 ∗ p 2 ρ ∗ η 2 ) f y ∗ ( − 1 η + α ∗ β ∗ p 2 2 ρ ∗ η 2 ) f y ∗ p 2 ∗ [ ( 1 − α ) + α ∗ p 3 ρ ] ∗ 1 η 2 ] \frac{\partial \mathbf{e}}{\partial P_c} = \begin{bmatrix} f_x * (-\frac{1}{\eta}+\frac{\alpha*\beta*p_1^2}{\rho*\eta^{2}}) & f_x * (\frac{\alpha*\beta*p_1*p_2}{\rho*\eta^{2}}) & f_x * p_1*[(1-\alpha)+\frac{\alpha*p_3}{\rho}]*\frac{1}{\eta^2}\\ f_y * (\frac{\alpha*\beta*p_1*p_2}{\rho*\eta^{2}}) & f_y * (-\frac{1}{\eta}+\frac{\alpha*\beta*p_2^2}{\rho*\eta^{2}}) & f_y * p_2*[(1-\alpha)+\frac{\alpha*p_3}{\rho}]*\frac{1}{\eta^2} \end{bmatrix} ∂Pc∂e=[fx∗(−η1+ρ∗η2α∗β∗p12)fy∗(ρ∗η2α∗β∗p1∗p2)fx∗(ρ∗η2α∗β∗p1∗p2)fy∗(−η1+ρ∗η2α∗β∗p22)fx∗p1∗[(1−α)+ρα∗p3]∗η21fy∗p2∗[(1−α)+ρα∗p3]∗η21]
从而,三维点重投影残差对世界坐标系下的三维点的雅可比矩阵为:
∂ e ∂ P w = ∂ e ∂ P c ∂ P c ∂ P w = ∂ e ∂ P c ∗ R c w \frac{\partial \mathbf{e}}{\partial P_w} = \frac{\partial \mathbf{e}}{\partial P_c} \frac{\partial P_c}{\partial P_w} = \frac{\partial \mathbf{e}}{\partial P_c}*R_{cw} ∂Pw∂e=∂Pc∂e∂Pw∂Pc=∂Pc∂e∗Rcw
其中, R c w R_{cw} Rcw是相机位姿 T c w T_{cw} Tcw的旋转分量。
- 三维点重投影残差对位姿的雅可比计算
根据链式法则,
∂ e ∂ T c w = ∂ e ∂ P c ∗ ∂ P c ∂ T c w \frac{\partial \mathbf{e}}{\partial T_{cw}} = \frac{\partial \mathbf{e}}{\partial P_c}*\frac{\partial P_c}{\partial T_{cw}} ∂Tcw∂e=∂Pc∂e∗∂Tcw∂Pc
其中,
∂
P
c
∂
T
c
w
=
[
−
P
c
^
I
3
]
\frac{\partial P_c}{\partial T_{cw}} =\begin{bmatrix} -\hat{P_c} & I_3 \end{bmatrix}
∂Tcw∂Pc=[−Pc^I3]
其中,
P
c
^
=
[
0
−
p
3
p
2
p
3
0
−
p
1
−
p
2
p
1
0
]
\hat{P_c} = \begin{bmatrix} 0 & -p_3 & p_2 \\ p_3 & 0 & -p_1 \\ -p_2 & p_1 & 0 \end{bmatrix}
Pc^=⎣⎡0p3−p2−p30p1p2−p10⎦⎤