直接法公式推导

单层直接法

已知两帧图像,估计相机运动

设待估计的目标为Tcur,refT_{cur, ref}Tcur,ref,在参考帧(前一时刻)中取一组点{pi}\{p_i\}{pi}的位姿可以通过最小化目标函数求解:
Tcur,ref=1N∑i=1N∑Wi∥Iref(π(pi))−Icur(π(Tcur,refpi))∥22. \mathbf{T}_{\mathrm{cur}, \mathrm{ref}}=\frac{1}{N} \sum_{i=1}^{N} \sum_{W_{i}}\left\|I_{\mathrm{ref}}\left(\pi\left(\mathbf{p}_{i}\right)\right)-I_{\mathrm{cur}}\left(\pi\left(\mathbf{T}_{\mathrm{cur}, \mathrm{ref}} \mathbf{p}_{i}\right)\right)\right\|_{2}^{2}. Tcur,ref=N1i=1NWiIref(π(pi))Icur(π(Tcur,refpi))22.
其中NNN为点数,π\piπ函数为针孔相机的投影函数R3↦R2\mathbb{R}^{3} \mapsto \mathbb{R}^{2}R3R2WiW_iWi为第iii 个点周围的小窗口。同光流,可用Gauss-Newton函数求解。

  1. 该问题中的误差
    e(T)=Iref(π(pi))−Icur(π(Tcur,refpi)) e(T) = I_{ref}(\pi(p_i)) - I_{cur}(\pi(T_{cur, ref}p_i)) e(T)=Iref(π(pi))Icur(π(Tcur,refpi))

  2. 误差相对于自变量的梯度

    自变量:相机的位姿ξ\xiξ (李代数形式,6个自由度),故雅克比矩阵1×61\times61×6的矩阵。

    误差(其实是作用在T上)施加一个扰动:
    e(δT⊕T)=Iref(p1)−Icur(1Z2Kexp(δξ∧)TP)≈Iref(p1)−Icur(1Z2K(1+δξ∧)TP)=Iref(p1)−Icur(u+1Z2Kδξ∧TP)≈Iref(P1)−Icur(u)−Icur′(u)δξ=e(T)−∂Icur∂u⇀u⇀∂q∂q∂δξδξ e(\delta T \oplus T ) = I_{ref}(p_1) - I_{cur}(\frac{1}{Z_2}Kexp(\delta \xi^\wedge)TP) \\ \approx I_{ref}(p_1) - I_{cur}(\frac{1}{Z_2}K(1 + \delta \xi^{\wedge})TP) \\ = I_{ref}(p_1)- I_{cur}(u + \frac{1}{Z_2}K \delta \xi^{\wedge}TP) \\ \approx I_{ref}(P_1) - I_{cur}(u) -{ I_{cur}}'(u)\delta \xi \\ = e(T) - \frac{\partial \boldsymbol{I}_{cur}}{\partial \mathop{u}\limits^{\rightharpoonup}} \frac{\mathop{u}\limits^{\rightharpoonup}}{\partial \boldsymbol{q}} \frac{\partial \boldsymbol{q}}{\partial \delta \boldsymbol{\xi}} \delta \boldsymbol{\xi} e(δTT)=Iref(p1)Icur(Z21Kexp(δξ)TP)Iref(p1)Icur(Z21K(1+δξ)TP)=Iref(p1)Icur(u+Z21ξTP)Iref(P1)Icur(u)Icur(u)δξ=e(T)uIcurquδξqδξ

    完全按照一阶泰勒,上边近似后不应该是δξ\delta\xiδξ,应该是上边的uuu后边的那一坨。
    难道是因为两个都是无穷小量,所以相等?

    q=TPu⇀=1Z2Kq q = TP \\ \mathop{u}^{\rightharpoonup} = \frac{1}{Z_2}Kq q=TPu=Z21Kq

    • 注:qqqPPP在第二个相机坐标系下的坐标,u⇀\mathop{u}\limits^{\rightharpoonup}u 是它的像素坐标,由(4)可知,qqqTTT的函数,u⇀\mathop{u}\limits ^{\rightharpoonup}uqqq的函数,这里的PPP是已知位置的空间点。

    • lim⁡δξ→0e(δξ⊕ξ)−e(ξ)δξ=−∂Icur∂u⇀∂u⇀∂q∂q∂δξ=J \lim_{\delta \xi \to 0} \frac{e(\delta \xi \oplus \xi) - e(\xi)}{\delta \xi} = -\frac{\partial {I_{cur}}}{\partial \mathop{u}\limits^{\rightharpoonup}} \frac{\partial \mathop{u}\limits^{\rightharpoonup}}{\partial q}\frac{\partial q}{\partial \delta \xi} \\ = J δξ0limδξe(δξξ)e(ξ)=uIcurquδξq=J

    • 梯度矩阵:

    • J=−∂Icur∂u⇀∂u⇀∂q∂q∂δξ J = -\frac{\partial {I_{cur}}}{\partial \mathop{u}\limits^{\rightharpoonup}} \frac{\partial \mathop{u}\limits^{\rightharpoonup}}{\partial q}\frac{\partial q}{\partial \delta \xi} J=uIcurquδξq
      雅克比矩阵的维度为1×61 \times 61×6

    • 其中:

      • ∂u∂q=[∂u∂X∂u∂Y∂u∂Z∂v∂X∂v∂Y∂v∂Z]=[fxZ0−fxXZ20fyZ−fyYZ2] \frac{\partial \boldsymbol{u}}{\partial \boldsymbol{q}}=\left[\begin{array}{ccc} \frac{\partial u}{\partial X} & \frac{\partial u}{\partial Y} & \frac{\partial u}{\partial Z} \\ \frac{\partial v}{\partial X} & \frac{\partial v}{\partial Y} & \frac{\partial v}{\partial Z} \end{array}\right]=\left[\begin{array}{ccc} \frac{f_{x}}{Z} & 0 & -\frac{f_{x} X}{Z^{2}} \\ 0 & \frac{f_{y}}{Z} & -\frac{f_{y} Y}{Z^{2}} \end{array}\right] qu=[XuXvYuYvZuZv]=[Zfx00ZfyZ2fxXZ2fyY]

      • ∂q∂δξ=[I,−q∧] \frac{\partial \boldsymbol{q}}{\partial \delta \boldsymbol{\xi}}=\left[\boldsymbol{I},-\boldsymbol{q}^{\wedge}\right] δξq=[I,q]

      • ∂u∂δξ=[fxZ0−fxXZ2−fxXYZ2fx+fxX2Z2−fxYZ0fyZ−fyYZ2−fy−fyY2Z2fyXYZ2fyXZ] \frac{\partial \boldsymbol{u}}{\partial \delta \boldsymbol{\xi}}=\left[\begin{array}{cccccc} \frac{f_{x}}{Z} & 0 & -\frac{f_{x} X}{Z^{2}} & -\frac{f_{x} X Y}{Z^{2}} & f_{x}+\frac{f_{x} X^{2}}{Z^{2}} & -\frac{f_{x} Y}{Z} \\ 0 & \frac{f_{y}}{Z} & -\frac{f_{y} Y}{Z^{2}} & -f_{y}-\frac{f_{y} Y^{2}}{Z^{2}} & \frac{f_{y} X Y}{Z^{2}} & \frac{f_{y} X}{Z} \end{array}\right] δξu=[Zfx00ZfyZ2fxXZ2fyYZ2fxXYfyZ2fyY2fx+Z2fxX2Z2fyXYZfxYZfyX]

    • 若采用中值差分:

      • ∂Icur∂u=12[Icur(u+1,v)−Icur(u−1,v),Icur(u,v+1−Icur(u,v−1))] \frac{\partial I_{cur}}{\partial u} = \frac 1 2 \begin{bmatrix} I_{cur}(u + 1, v) - I_{cur}(u - 1, v), I_{cur}(u, v +1 - I_{cur}(u, v - 1)) \end{bmatrix} uIcur=21[Icur(u+1,v)Icur(u1,v),Icur(u,v+1Icur(u,v1))]
  3. 窗口尽量取大一点(上一帧图像中的点可能在投影后跑到下一帧图像对应窗口的外部),但也不能太大,否则计算时间太长。

    窗口不要取单个点(投影之后点就没了,不在窗口范围内)

单层直接法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 可使用光流计算视差进而生成稀疏点云
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值