VIO第3讲:基于优化的IMU与视觉信息融合之视觉残差雅可比推导

VIO第3讲:基于优化的IMU与视觉信息融合之视觉残差函数构建

文章目录

3 视觉重投影残差的 Jacobian

3.1 视觉重投影残差

  • 特征点在归一化相机坐标系与在相机坐标系下的坐标关系为

[ x y z ] = 1 λ [ u v 1 ] \begin{bmatrix}x\\y\\z\end{bmatrix}=\dfrac{1}{\lambda}\begin{bmatrix}u\\v\\1\end{bmatrix} xyz =λ1 uv1

  其中 λ = 1 / z \lambda=1/z λ=1/z称之为逆深度!,记住这个形式,后续在求解雅可比的链式法则中,往往第一步就是利用这里的形式!

  归一化使得数值变小,数值稳定性更好。

  • 视觉重投影残差—注意是归一化坐标之差(估计-观测),而不是像素系坐标之差

r c = [ x c j z c j − u c j y c j z c j − v c j ] \mathbf{r}_c=\begin{bmatrix}\frac{x_{c_j}}{z_{c_j}}-u_{c_j}\\\frac{y_{c_j}}{z_{c_j}}-v_{c_j}\end{bmatrix} rc= zcjxcjucjzcjycjvcj

① 估计值(预测值)

  对于估计:同一个路标点P,第 i 帧(第一次看到)中的特征点,它投影到第 j 帧相机坐标系下的归一化值
[ x c j y c j z c j 1 ] = T b c − 1 T w b j − 1 T w b i T b c [ 1 λ u c i 1 λ v c i 1 λ 1 ] \begin{bmatrix}x_{c_j}\\y_{c_j}\\z_{c_j}\\1\end{bmatrix}=\mathbf{T}_{bc}^{-1}\mathbf{T}_{wb_j}^{-1}\mathbf{T}_{wb_i}\mathbf{T}_{bc}\begin{bmatrix}\frac1\lambda u_{c_i}\\\frac1\lambda v_{c_i}\\\frac1\lambda\\1\end{bmatrix} xcjycjzcj1 =Tbc1Twbj1TwbiTbc λ1uciλ1vciλ11

<1> 推导

  对于这一过程详细的推导,下面 π c − 1 \pi_{c}^{-1} πc1表示把一个像素坐标反投影到相机坐标系,即归一化坐标。反正知道这样表示归一化坐标即可,和上面是一致的。l表示第l个路标点, R c b R_{c}^{b} Rcb表示外参,IMU坐标系到cam坐标系的转换。下面对应论文vins-mono。主要就是分别写旋转矩阵平移量

   P 在第 i 个相机归一化坐标系下坐标为:
P u v i = λ l π c ( T b ← c − 1 T w ← b i − 1 P w l ) ⟺ P w l = T w ← b i T b ← c 1 λ l π c − 1 ( P u v i ) P w l = R b l w ( R c b 1 λ l π c − 1 ( [ u l c i v l c l ] ) + p c b ) + p b l w \begin{aligned} &P_{uv_{i}}=\lambda_{l}\pi_{c}\bigl(T_{b\leftarrow c}{}^{-1}T_{w\leftarrow b_{i}}{}^{-1}P_{w_{l}}\bigr) \\ &\Longleftrightarrow P_{w_{l}}=T_{w\leftarrow b_{i}}T_{b\leftarrow c}\frac{1}{\lambda_{l}}\pi_{c}{}^{-1}\big(P_{uv_{i}}\big) \\ &\left.\left.P_{w_{l}}=R_{b_{l}}^{w}\left(R_{c}^{b}\frac{1}{\lambda_{l}}\pi_{c}^{-1}\left(\begin{bmatrix}u_{l}^{c_{i}}\\v_{l}^{c_{l}}\end{bmatrix}\right.\right.\right)+p_{c}^{b}\right)+p_{b_{l}}^{w} \end{aligned} Puvi=λlπc(Tbc1Twbi1Pwl)Pwl=TwbiTbcλl1πc1(Puvi)Pwl=Rblw(Rcbλl1πc1([ulcivlcl])+pcb)+pblw
  P 在第 j 个相机的相机坐标系下坐标为
P l c j = T b ← c − 1 T w ← b j − 1 P w l ⟺ P w l = T w ← b j T b ← c P l c j \begin{gathered} P_{l}^{c_{j}}=T_{b\leftarrow c}{}^{-1}T_{w\leftarrow b_{j}}{}^{-1}P_{w_{l}} \\ \Longleftrightarrow P_{w_{l}}=T_{w\leftarrow b_{j}}T_{b\leftarrow c}P_{l}^{c_{j}} \end{gathered} Plcj=Tbc1Twbj1PwlPwl=TwbjTbcPlcj
  代入到上面式子,就可以得到第l个路标点在第j个相机归一化坐标系下的可能坐标,本质上也对应第一个 T b c − 1 T w b j − 1 T w b i T b c \mathbf{T}_{bc}^{-1}\mathbf{T}_{wb_j}^{-1}\mathbf{T}_{wb_i}\mathbf{T}_{bc} Tbc1Twbj1TwbiTbc变换,写开是为了后面更好求解优化变量的雅可比!
R b i w ( R c b 1 λ l π c − 1 ( [ u l c i v l c i ] ) + p c b ) + p b i w = R b j w ( R c b P l c j + p c b ) + p b j w ⇒ P l c j = R b c { R w b j [ R b i w ( R c b 1 λ l π c − 1 ( [ u l c l v l c i ] ) + p c b ) + p b i w − p b j w ] − p c b } = R b c { R w b j [ R b i w ( R c b 1 λ l P ˉ l c i + p c b ) + p b i w − p b j w ] − p c b } \begin{gathered} \left.\left.R_{b_{i}}^{w}\left(R_{c}^{b}\frac{1}{\lambda_{l}}\pi_{c}^{-1}\left(\begin{bmatrix}u_{l}^{c_{i}}\\v_{l}^{c_{i}}\end{bmatrix}\right.\right.\right)+p_{c}^{b}\right)+p_{b_{i}}^{w}=R_{b_{j}}^{w}\left(R_{c}^{b}P_{l}^{c_{j}}+p_{c}^{b}\right)+p_{b_{j}}^{w} \\ \left.\left.\left.\left.\Rightarrow P_{l}^{c_{j}}=R_{b}^{c}\left\{R_{w}^{b_{j}}\left[R_{b_{i}}^{w}\left(R_{c}^{b}\frac{1}{\lambda_{l}}\pi_{c}^{-1}\left(\begin{bmatrix}u_{l}^{c_{l}}\\v_{l}^{c_{i}}\end{bmatrix}\right.\right.\right.\right.\right)+p_{c}^{b}\right)+p_{b_{i}}^{w}-p_{b_{j}}^{w}\right]-p_{c}^{b}\right\} \\ =R_{b}^{c}\left\{R_{w}^{b_{j}}\left[R_{b_{i}}^{w}\left(R_{c}^{b}\frac{1}{\lambda_{l}}\bar{P}_{l}^{c_{i}}+p_{c}^{b}\right)+p_{b_{i}}^{w}-p_{b_{j}}^{w}\right]-p_{c}^{b}\right\} \end{gathered} Rbiw(Rcbλl1πc1([ulcivlci])+pcb)+pbiw=Rbjw(RcbPlcj+pcb)+pbjwPlcj=Rbc{Rwbj[Rbiw(Rcbλl1πc1([ulclvlci])+pcb)+pbiwpbjw]pcb}=Rbc{Rwbj[Rbiw(Rcbλl1Pˉlci+pcb)+pbiwpbjw]pcb}

<2> 引出因子图-优化变量

  涉及第i帧、第j帧、外参、以及逆深度
[ p b i w , q b i w ] , [ p b j w , q b j w ] , [ p c b , q c b ] , λ l ∘ [p_{b_i}^w,q_{b_i}^w],\begin{bmatrix}p_{b_j}^w,q_{b_j}^w\end{bmatrix},[p_c^b,q_c^b],\lambda_{l^\circ} [pbiw,qbiw],[pbjw,qbjw],[pcb,qcb],λl
  为什么雅可比是下面这样的?因为虽然我们说是对状态量求导,实际上是对扰动求导!这个李代数扰动求导应该非常常见了。所以下面式子的角标就代表了扰动量
J = [ ∂ r c ∂ [ δ p b i b i ′ δ θ b i b i ′ ] ∂ r c ∂ [ δ p b j b j ′ δ θ b j b j ′ ] ∂ r c ∂ [ δ p c c ′ δ θ c c ′ ] ∂ r c ∂ δ λ ] \mathbf{J}=\begin{bmatrix}\dfrac{\partial\mathbf{r}_c}{\partial\begin{bmatrix}\delta\mathbf{p}_{b_ib_i^{\prime}}\\\delta\boldsymbol{\theta}_{b_ib_i^{\prime}}\end{bmatrix}}&\dfrac{\partial\mathbf{r}_c}{\partial\begin{bmatrix}\delta\mathbf{p}_{b_jb_j^{\prime}}\\\delta\boldsymbol{\theta}_{b_jb_j^{\prime}}\end{bmatrix}}&\dfrac{\partial\mathbf{r}_c}{\partial\begin{bmatrix}\delta\mathbf{p}_{cc^{\prime}}\\\delta\boldsymbol{\theta}_{cc^{\prime}}\end{bmatrix}}& \frac{\partial\mathbf{r}_c}{\partial\delta\lambda}&\end{bmatrix} J= [δpbibiδθbibi]rc[δpbjbjδθbjbj]rc[δpccδθcc]rcδλrc

<3> 简化形式

  把上面推导得到第l个路标点在第j个相机归一化坐标系下的可能坐标乘出来,就可以得到下面式子:
f c j = [ x c j y c j z c j ] = R b c ⊤ R w b j ⊤ R w b i R b c 1 λ [ u c i v c i 1 ] + R b c ⊤ ( R w b j ⊤ ( ( R w b i p b c + p w b i ) − p w b j ) − p b c ) \begin{aligned} \mathbf{f}_{c_j}=\begin{bmatrix}x_{c_j}\\y_{c_j}\\z_{c_j}\end{bmatrix}& =\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\frac1\lambda\begin{bmatrix}u_{c_i}\\v_{c_i}\\1\end{bmatrix} \\ &+\mathbf{R}_{bc}^\top(\mathbf{R}_{wb_j}^\top((\mathbf{R}_{wb_i}\mathbf{p}_{bc}+\mathbf{p}_{wb_i})-\mathbf{p}_{wb_j})-\mathbf{p}_{bc}) \end{aligned} fcj= xcjycjzcj =RbcRwbjRwbiRbcλ1 ucivci1 +Rbc(Rwbj((Rwbipbc+pwbi)pwbj)pbc)
其中 f c i = [ x c i y c i z c i ] \mathbf{f}_{c_i}=\begin{bmatrix}x_{c_i}\\y_{c_i}\\z_{c_i}\end{bmatrix} fci= xciycizci ,然后,分别定义如下变量:
f b i = R b c f c i + p b c f w = R w b i f b i + p w b i f b j = R w b j ⊤ ( f w − p b c ) \begin{aligned}\mathbf{f}_{b_i}&=\mathbf{R}_{bc}\mathbf{f}_{c_i}+\mathbf{p}_{bc}\\\mathbf{f}_w&=\mathbf{R}_{wb_i}\mathbf{f}_{b_i}+\mathbf{p}_{wb_i}\\\mathbf{f}_{b_j}&=\mathbf{R}_{wb_j}^\top(\mathbf{f}_w-\mathbf{p}_{bc})\end{aligned} fbifwfbj=Rbcfci+pbc=Rwbifbi+pwbi=Rwbj(fwpbc)

② 观测值

  这个后面在补充下吧,纯视觉里面比如讲特征匹配结果作为了观测值;在MSCKF中将视觉的观测作为观测值。观测应该就是路标点P在第j帧的投影

3.2 重投影残差雅可比J

① 残差对归一化坐标点 f c j {\mathbf{f}_{c_j}} fcj导数

  这在视觉里面应该是很常见的基本操作了
∂ r c ∂ f c j = [ 1 z c j 0 − x c j z c j 2 0 1 z c j − y c j 2 z c j 2 ] \frac{\partial\mathbf{r}_c}{\partial\mathbf{f}_{c_j}}=\begin{bmatrix}\frac{1}{z_{c_j}}&0&-\frac{x_{c_j}}{z_{c_j}^2}\\0&\frac{1}{z_{c_j}}&-\frac{y_{c_j}^2}{z_{c_j}^2}\end{bmatrix} fcjrc= zcj100zcj1zcj2xcjzcj2ycj2

② 归一化坐标点 f c j {\mathbf{f}_{c_j}} fcj对扰动量求导

<1> 对i时刻状态量求导

对 i 时刻位移- p w b i p_{wb_{i}} pwbi

∂ f c j ∂ δ p b i b i ′ = R b c ⊤ R w b j ⊤ \frac{\partial\mathbf{f}_{c_j}}{\partial\delta\mathbf{p}_{b_ib_i^{\prime}}}=\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top δpbibifcj=RbcRwbj

对 i 时刻角度增量—旋转

f c j = R b c ⊤ R w b j ⊤ R w b i R b c f c i + R b c ⊤ ( R w b j ⊤ ( ( R w b i p b c + p w b i ) − p w b j ) − p b c ) \mathrm{f}_{c_j}=\mathrm{R}_{bc}^\top\mathrm{R}_{wb_j}^\top\mathrm{\color{red}{R}_{wb_i}}\mathrm{R}_{bc}\mathrm{f}_{c_i}+\mathrm{R}_{bc}^\top(\mathrm{R}_{wb_j}^\top(({\color{red}{R}_{wb_i}}\mathrm{p}_{bc}+\mathrm{p}_{wb_i})-\mathrm{p}_{wb_j})-\mathrm{p}_{bc}) fcj=RbcRwbjRwbiRbcfci+Rbc(Rwbj((Rwbipbc+pwbi)pwbj)pbc)

  简化,丢弃不相关量
f c j = R b c ⊤ R w b j ⊤ R w b i R b c f c i + R b c ⊤ R w b j ⊤ R w b i p b c + ( . . . ) = R b c ⊤ R w b j ⊤ R w b i ( R b c f c i + p b c ) + ( . . . ) = R b c ∣ R w b j ∣ R w b i f b i + ( . . . ) \begin{aligned} \mathbf{f}_{c_j}& =\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\mathbf{f}_{c_i}+\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{p}_{bc}+(...) \\ &=\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}(\mathbf{R}_{bc}\mathbf{f}_{c_i}+\mathbf{p}_{bc})+(...) \\ &=\mathbf{R}_{bc}^{|}\mathbf{R}_{wb_j}^{|}\mathbf{R}_{wb_i}\mathbf{f}_{b_i}+(...) \end{aligned} fcj=RbcRwbjRwbiRbcfci+RbcRwbjRwbipbc+(...)=RbcRwbjRwbi(Rbcfci+pbc)+(...)=RbcRwbjRwbifbi+(...)
  注意这里是全局坐标系,右扰动。这里分子简化了,这种求扰动是非常熟悉的泰勒展开约去,然后叉积交换等等
∂ f c j ∂ δ θ b i b i ′ = ∂ R b c ⊤ R w b j ⊤ R w b i ( I + [ δ θ b i b i ′ ] × ) f b i ∂ δ θ b i b i ′ = − R b c ⊤ R w b j ⊤ R w b i [ f b i ] × \begin{aligned} \frac{\partial\mathbf{f}_{c_j}}{\partial\delta\boldsymbol{\theta}_{b_ib_i^{\prime}}}& \begin{aligned}=\frac{\partial\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}(\mathbf{I}+[\delta\boldsymbol{\theta}_{b_ib_i^\prime}]_\times)\mathbf{f}_{b_i}}{\partial\delta\boldsymbol{\theta}_{b_ib_i^\prime}}\end{aligned} \\ &=-\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}[\mathbf{f}_{b_i}]_\times \end{aligned} δθbibifcj=δθbibiRbcRwbjRwbi(I+[δθbibi]×)fbi=RbcRwbjRwbi[fbi]×

<2> 对j时刻状态量求导

对 j 时刻位移

∂ f c j ∂ δ p b j b j ′ = − R b c ⊤ R w b j ⊤ \frac{\partial\mathbf{f}_{c_j}}{\partial\delta\mathbf{p}_{b_j}b_j^{\prime}}=-\mathbf{R}_{bc}^{\top}\mathbf{R}_{wb_j}^{\top} δpbjbjfcj=RbcRwbj

对 j 时刻角度增量—旋转

  简化,丢弃不相关量
f c j = R b c ⊤ R w b j ⊤ R w b i R b c f c i + R b c ⊤ ( R w b j ⊤ ( ( R w b i p b c + p w b i ) − p w b j ) − p b c ) = R b c ⊤ R w b j ⊤ ( R w b i ( R b c f c i + p b c ) + p w b i − p w b j ) + ( . . . ) = R b c ⊤ R w b j ⊤ ( f w − p w b j ) + ( . . . ) \begin{aligned} \mathbf{f}_{c_j}& =\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\mathbf{f}_{c_i}+\mathbf{R}_{bc}^\top(\mathbf{R}_{wb_j}^\top((\mathbf{R}_{wb_i}\mathbf{p}_{bc}+\mathbf{p}_{wb_i})-\mathbf{p}_{wb_j})-\mathbf{p}_{bc}) \\ &=\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top(\mathbf{R}_{wb_i}(\mathbf{R}_{bc}\mathbf{f}_{c_i}+\mathbf{p}_{bc})+\mathbf{p}_{wb_i}-\mathbf{p}_{wb_j})+(...) \\ &=\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top(\mathbf{f}_w-\mathbf{p}_{wb_j})+(...) \end{aligned} fcj=RbcRwbjRwbiRbcfci+Rbc(Rwbj((Rwbipbc+pwbi)pwbj)pbc)=RbcRwbj(Rwbi(Rbcfci+pbc)+pwbipwbj)+(...)=RbcRwbj(fwpwbj)+(...)
  注意这里是局部坐标系,左扰动。还有,注意这里是负扰动。为什么是负的?因为扰动量是bb‘,但分子是局部坐标系,是bw,所以要加上个负号,表示反方向的旋转!
∂ f c j ∂ δ θ b j b j ′ = ∂ R b c ⊤ ( I − [ δ θ b j b j ′ ] × ) R w b j ⊤ ( f w − p w b j ) ∂ δ θ b j b j ′ a l i g n e d = ∂ R b c ⊤ ( I − [ δ θ b j b j ′ ] × ) f b j ∂ δ θ b j b j ′ = R b c ⊤ [ f b j ] × 州一个州一位 Din Di \begin{aligned} \frac{\partial\mathbf{f}_{c_j}}{\partial\delta\boldsymbol{\theta}_{b_jb_j^{\prime}}}& \begin{aligned}=\frac{\partial\mathbf{R}_{bc}^{\top}(\mathbf{I}-[\delta\boldsymbol{\theta}_{b_jb_j^{\prime}}]_{\times})\mathbf{R}_{wb_j}^{\top}(\mathbf{f}_w-\mathbf{p}_{wb_j})}{\partial\delta\boldsymbol{\theta}_{b_jb_j^{\prime}} {aligned}}\end{aligned} \\ &=\frac{\partial\mathbf{R}_{bc}^\top(\mathbf{I}-[\delta\boldsymbol{\theta}_{b_jb_j^\prime}]_\times)\mathbf{f}_{b_j}}{\partial\delta\boldsymbol{\theta}_{b_jb_j^\prime}} \\ &=\mathbf{R}_{bc}^\top[\mathbf{f}_{b_j}]_\times & \text{州一个州一位 Din Di} \end{aligned} δθbjbjfcj=δθbjbjalignedRbc(I[δθbjbj]×)Rwbj(fwpwbj)=δθbjbjRbc(I[δθbjbj]×)fbj=Rbc[fbj]×州一个州一位 Din Di

<3> 对 imu 和相机之间的外参求导

对位移 p b c p_{bc} pbc求导,扰动量 c c ′ cc^{'} cc

∂ f c j ∂ δ p c c ′ = R b c ⊤ ( R w b j ⊤ R w b i − I 3 × 3 ) \frac{\partial\mathbf{f}_{c_j}}{\partial\delta\mathbf{p}_{cc^{\prime}}}=\mathbf{R}_{bc}^\top(\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}-\mathbf{I}_{3\times3}) δpccfcj=Rbc(RwbjRwbiI3×3)

对角度增量求导,由于 f c j f_{c_j} fcj 都和 R b c R_{bc} Rbc有关,并且比较复杂,所以这
次分两部分求导

f c j = R b c ⊤ R w b j ⊤ R w b i R b c f c i + R b c ⊤ ( R w b j ⊤ ( ( R w b i p b c + p w b i ) − p w b j ) − p b c ) = f c j 1 + f c j 2 \begin{aligned}\mathbf{f}_{c_j}&=\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\mathbf{f}_{c_i}+\mathbf{R}_{bc}^\top(\mathbf{R}_{wb_j}^\top((\mathbf{R}_{wb_i}\mathbf{p}_{bc}+\mathbf{p}_{wb_i})-\mathbf{p}_{wb_j})-\mathbf{p}_{bc})\\&=\mathbf{f}_{c_j}^1+\mathbf{f}_{c_j}^2\end{aligned} fcj=RbcRwbjRwbiRbcfci+Rbc(Rwbj((Rwbipbc+pwbi)pwbj)pbc)=fcj1+fcj2

第一部分
∂ f c j 1 ∂ δ θ c c ′ = ∂ ( I − [ δ θ c c ′ ] × ) R b c ⊤ R w b j ⊤ R w b i R b c ( I + [ δ θ c c ′ ] × ) f c i ∂ δ θ c c ′ \frac{\partial\mathbf{f}_{c_j}^1}{\partial\delta\boldsymbol{\theta}_{cc^{\prime}}}=\frac{\partial(\mathbf{I}-[\delta\boldsymbol{\theta}_{cc^{\prime}}]_\times)\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}(\mathbf{I}+[\delta\boldsymbol{\theta}_{cc^{\prime}}]_\times)\mathbf{f}_{c_i}}{\partial\delta\boldsymbol{\theta}_{cc^{\prime}}} δθccfcj1=δθcc(I[δθcc]×)RbcRwbjRwbiRbc(I+[δθcc]×)fci
分子可以写成
∂ R b c ⊤ R w b j ⊤ R w b i R b c [ δ θ c c ′ ] × f c i − [ δ θ c c ′ ] × R b c ⊤ R w b j ⊤ R w b i R b c f c i + o 2 ( δ θ c c ′ ) + ( . . . ) \begin{aligned}&\partial\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}[\delta\boldsymbol{\theta}_{cc^\prime}]_\times\mathbf{f}_{c_i}-[\delta\boldsymbol{\theta}_{cc^\prime}]_\times\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\mathbf{f}_{c_i}\\&+o^2(\delta\boldsymbol{\theta}_{cc^\prime})+(...)\end{aligned} RbcRwbjRwbiRbc[δθcc]×fci[δθcc]×RbcRwbjRwbiRbcfci+o2(δθcc)+(...)

∂ f c j 1 ∂ δ θ c c ′ = − R b c ⊤ R w b j ⊤ R w b i R b c [ f c i ] × + [ R b c ⊤ R w b j ⊤ R w b i R b c f c i ] × \frac{\partial\mathbf{f}_{c_j}^1}{\partial\delta\boldsymbol{\theta}_{cc^{\prime}}}=-\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}[\mathbf{f}_{c_i}]_\times+[\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\mathbf{f}_{c_i}]_\times δθccfcj1=RbcRwbjRwbiRbc[fci]×+[RbcRwbjRwbiRbcfci]×

第二部分
∂ f c j 2 ∂ δ θ c c ′ = ( I − [ δ θ c c ′ ] × ) R b c † ( R w b j † ( ( R w b i p b c + p w b i ) − p w b j ) − p b c ) ∂ δ θ c c ′ = [ R b c ⊤ ( R w b j ⊤ ( ( R w b i p b c + p w b i ) − p w b j ) − p b c ) ] × \begin{gathered} \frac{\partial\mathbf{f}_{c_j}^2}{\partial\delta\boldsymbol{\theta}_{cc^{\prime}}} =\frac{(\mathbf{I}-[\delta\boldsymbol{\theta}_{cc^{\prime}}]_{\times})\mathbf{R}_{bc}^{\dagger}(\mathbf{R}_{wb_{j}}^{\dagger}((\mathbf{R}_{wb_{i}}\mathbf{p}_{bc}+\mathbf{p}_{wb_{i}})-\mathbf{p}_{wb_{j}})-\mathbf{p}_{bc})}{\partial\delta\boldsymbol{\theta}_{cc^{\prime}}} \\ =[\mathbf{R}_{bc}^\top(\mathbf{R}_{wb_j}^\top((\mathbf{R}_{wb_i}\mathbf{p}_{bc}+\mathbf{p}_{wb_i})-\mathbf{p}_{wb_j})-\mathbf{p}_{bc})]_\times \end{gathered} δθccfcj2=δθcc(I[δθcc]×)Rbc(Rwbj((Rwbipbc+pwbi)pwbj)pbc)=[Rbc(Rwbj((Rwbipbc+pwbi)pwbj)pbc)]×

两部分加起来就是视觉误差对外参的角度增量的最终结果

<4> 对特征逆深度的求导

∂ f c j ∂ δ λ = ∂ f c j ∂ f c i ∂ f c i ∂ δ λ = R b c ⊤ R w b j ⊤ R w b i R b c ( − 1 λ 2 [ u c i v c i 1 ] ) = − 1 λ R b c ⊤ R w b j ⊤ R w b i R b c f c i \begin{aligned} \frac{\partial\mathbf{f}_{c_j}}{\partial\delta\lambda}& =\frac{\partial\mathbf{f}_{c_{j}}}{\partial\mathbf{f}_{c_{i}}}\frac{\partial\mathbf{f}_{c_{i}}}{\partial\delta\lambda} \\ &=\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}(-\frac{1}{\lambda^2}\begin{bmatrix}u_{c_i}\\v_{c_i}\\1\end{bmatrix}) \\ &=-\frac1\lambda\mathbf{R}_{bc}^\top\mathbf{R}_{wb_j}^\top\mathbf{R}_{wb_i}\mathbf{R}_{bc}\mathbf{f}_{c_i} \end{aligned} δλfcj=fcifcjδλfci=RbcRwbjRwbiRbc(λ21 ucivci1 )=λ1RbcRwbjRwbiRbcfci

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/695245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享Video.js观看Web视频流

界面效果 HTML结构 <div class"homePopup" ><div class"search_box animate__animated animate__fadeInDown" style"display: none;"><div class"van-search" style"background: rgba(0, 0, 0, 0);">&…

物业第三方满意度调查抽样方法有哪些

本文由群狼调研&#xff08;湖南售楼中心神秘顾客&#xff09;出品&#xff0c;欢迎转载&#xff0c;请注明出处。在物业服务行业中&#xff0c;了解业主的需求和满意度至关重要。随着市场竞争的加剧&#xff0c;越来越多的物业公司选择通过第三方来进行满意度调查。物业第三方…

[服务器-数据库]MongoDBv7.0.4不支持ipv6访问

文章目录 MongoDBv7.0.4不支持ipv6访问错误描述问题分析错误原因解决方式 MongoDBv7.0.4不支持ipv6访问 错误描述 报错如下描述 Cannot connect to MongoDB.No suitable servers found: serverSelectionTimeoutMS expired: [failed to resolve 2408]问题分析 首先确定其是…

Android14 InputManager-InputReader的处理

IMS启动时会调用InputReader.start()方法 InputReader.cpp status_t InputReader::start() {if (mThread) {return ALREADY_EXISTS;}mThread std::make_unique<InputThread>("InputReader", [this]() { loopOnce(); }, [this]() { mEventHub->wake(); });…

Java SE 入门到精通—基础语法【Java】

敲重点&#xff01; 本篇讲述了比较重要的基础&#xff0c;是必须要掌握的 1.程序入口 在Java中&#xff0c;main方法是程序的入口点&#xff0c;是JVM&#xff08;Java虚拟机&#xff09;执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范&#xff1a; publ…

【力扣白嫖日记】1987.上级经理已离职的公司员工

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 1978.上级经理已离职的公司员工 表&#xff1a;Employees 列名类型employee_idintnamevarcharmanager_idint…

模式匹配算法汇总

单模匹配算法 1. KMP算法 动态规划之 KMP 算法详解 彻底搞懂KMP算法原理 多模匹配 1. AC自动机

DTV的LCN功能介绍

文章目录 LCN简介LCN获取LCN Conflict LCN简介 Logical Channel Number&#xff08;LCN&#xff09;是数字电视系统中用于标识和组织频道的逻辑编号。LCN的目的是为了方便用户浏览和选择频道&#xff0c;使得数字电视接收设备能够根据这些逻辑编号对频道进行排序和显示。 LCN…

【Elasticsearch专栏 02】深入探索:Elasticsearch为什么使用倒排索引而不是正排索引

文章目录 为什么使用倒排索引而不是正排索引&#xff1f;1.正排索引&#xff08;Forward Index&#xff09;2.倒排索引&#xff08;Inverted Index&#xff09;3.小结 为什么使用倒排索引而不是正排索引&#xff1f; Elasticsearch选择使用倒排索引而不是正排索引&#xff0c;…

学习大数据所需的java基础(5)

文章目录 集合框架Collection接口迭代器迭代器基本使用迭代器底层原理并发修改异常 数据结构栈队列数组链表 List接口底层源码分析 LinkList集合LinkedList底层成员解释说明LinkedList中get方法的源码分析LinkedList中add方法的源码分析 增强for增强for的介绍以及基本使用发2.使…

【成都游戏业:千游研发之都的发展与机遇】

成都游戏业&#xff1a; 千游研发之都的发展与机遇 作为我国西部游戏产业的龙头&#xff0c;成都这座城市正在高速发展&#xff0c;目标是崛起成为千亿级游戏研发之都。多年来&#xff0c;在政策扶持、人才汇聚以及文化底蕴等助力下&#xff0c;成都游戏业已经形成完整的产业链…

C++从入门到精通 第十六章(STL常用算法)

写在前面&#xff1a; 本系列专栏主要介绍C的相关知识&#xff0c;思路以下面的参考链接教程为主&#xff0c;大部分笔记也出自该教程&#xff0c;笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外&#xff0c;笔者还参考了其它的一些C教材&#xff08;比…

MyBatis--02-1- MybatisPlus----条件构造器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言AbstractWrapper 条件构造器官网文档https://baomidou.com/pages/10c804/#abstractwrapper](https://baomidou.com/pages/10c804/#abstractwrapper)![在这里插入…

安全这么卷了吗?北京,渗透,4k,不包吃住,非实习

起初某HR找人发了条招聘信息 看到被卷到4k一个月被震惊到了 随后发布了朋友圈&#xff0c;引起来众多讨论 对此网友发表众多评价 越来越卷的工作现象确实是一个普遍存在的问题 另外&#xff0c;也可以考虑和雇主沟通&#xff0c; 寻求更合理的工作安排&#xff0c; 或者…

[ 2024春节 Flink打卡 ] -- Paimon

2024&#xff0c;游子未归乡。工作需要&#xff0c;flink coding。觉知此事要躬行&#xff0c;未休&#xff0c;特记 Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合&#xff0c;推出新一代的 Streaming Lakehouse 技术&#xff0c;…

python53-Python流程控制if条件的类型

从前面的示例可以看到&#xff0c;Python 执行if语句时&#xff0c;会判断if条件是True还是False。那么if条件是不是只能使用 bool类型的表达式呢?不是。if条件可以是任意类型&#xff0c;当下面的值作为 bool表达式时&#xff0c;会被解释器当作False处理。 False、None、0、…

Elasticsearch 去重后求和

标题的要求可以用如下 SQL 表示 select sum(column2) from (select distinct(column1),column2 from table)t 要如何用 DSL 实现呢&#xff0c;先准备下索引和数据 PUT test_index {"mappings": {"properties": {"column1": {"type"…

springboot访问webapp下的jsp页面

一&#xff0c;项目结构。 这是我的项目结构&#xff0c;jsp页面放在WEB-INF下的page目录下面。 二&#xff0c;file--->Project Structure,确保这两个地方都是正确的&#xff0c;确保Source Roots下面有webapp这个目录&#xff08;正常来说&#xff0c;应该本来就有&#…

前端处理过滤,特殊字符以及输入法特殊表情符号emoji的正则方法

问题描述 输入法输入表情或特殊符号&#xff0c;存入数据库时&#xff0c;会发现有报错&#xff0c;因为UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节&#xff0c;而MySQL的utf8编码最多3个字节&#xff0c;所以数据插不进去。 解决方法 前端处理方法 思路使…

目标追踪(tracking)简介

目标追踪是指通过计算机视觉技术&#xff0c;检测和追踪视频或图像中的特定目标的位置和动态变化。目标可以是人、车辆、动物或其他感兴趣的物体。目标追踪在许多领域都具有广泛的应用&#xff0c;如安防监控、交通监管、自动驾驶、虚拟现实等。 目标追踪通常涉及以下几个步骤…