VINS预积分与误差模型

文章目录

    • IMU的测量值误差模型
    • IMU预积分真实模型
    • IMU预积分估计模型
    • 误差模型
      • 普通增量积分
      • 中值积分法
    • 参考文献

IMU的测量值误差模型

IMU的测量值误差模型:
a ^ t = a t + R w t g w + b a t + n a t ω ^ t = ω t + b ω t + n ω t \begin{array}{} {{{\hat a}_t} = {a_t} + R_w^t{g^w} + {b_{{a_t}}} + {n_{a_t}}}\\ {{{\hat \omega }_t} = {\omega _t} + {b_{{\omega _t}}} + {n_{\omega _t} }} \end{array} a^t=at+Rwtgw+bat+natω^t=ωt+bωt+nωt

其中, a ^ t , ω ^ t {\hat a}_t, {\hat \omega }_t a^t,ω^t分别表示加速度计计陀螺仪的测量值; b a t , b ω t b_{a_t}, b_{\omega_t} bat,bωt分别为加速度计,陀螺仪的零偏,该零偏是随机游走的,零偏的导数服从高斯分布,设为:

b ˙ a t = n b a 和 b ˙ ω t = n b ω {\dot{b}}_{a_t}=n_{b_a}和 {\dot{b}}_{\omega_t}=n_{b_\omega} b˙at=nbab˙ωt=nbω

b ^ a t , b ^ ω t {\hat{b}}_{a_t},{\hat{b}}_{\omega_t} b^at,b^ωt表示额定的零偏估计值。真实的零偏是包含了游走偏差的,而加速度计和陀螺仪需要体现实际的物理量,要去除噪声所带来的影响。
此外, n a t , n ω t n_{a_t}, n_{\omega _t} nat,nωt 分别为加速度计,陀螺仪的高斯噪声。 g w g^w gw为重力加速度在世界坐标系下的表示。下标 t t t表示t时刻。

据上述公式可知,IMU的测量误差主要由加速度计及陀螺仪的噪声及零偏的随机游走所构成。使用IMU的积分数据量来估计位姿,很难准确测量出随机偏差的真实值,从而影响IMU积分量。参考文献《Quaternion kinematics for the error-state Kalman filter》同样我们建立两套模型,一套真实模型(考虑随机噪声),一套为估计模型(未考虑噪声,表示实际积分情况,用 ⋅ ^ \widehat \cdot 表示)。

VINS预积分发生在两帧图像(关键)帧之间(如, [ k , k + 1 ] [k,k+1] [k,k+1]),即将两帧图像发布时间内,IMU的数据进行积分(将[k,k+1]时刻内的IMU数据进行积分,从而得到IMU两帧图像之间的位姿变化量)。
因此状态的传递,误差的传递均是指两个图像帧之间的IMU积分值的传递,以下的预积分均以 [ k , k + 1 ] [k,k+1] [k,k+1]为例。

IMU预积分真实模型

p b k + 1 w = p b k w + v b k w Δ t k + ∫  ⁣ ⁣ ⁣ ∫ t ∈ [ k , k + 1 ] [ R t w ( a ^ t − b a t − n a t ) − g w ] d t 2 v b k + 1 w = v b k w + ∫ t ∈ [ k , k + 1 ] [ R t w ( a ^ t − b a t − n a t ) − g w ] d t q b k + 1 w = q b k w ⊗ ∫ t ∈ [ k , k + 1 ] 1 2 Ω ( ω ^ t − b ω t − n ω t ) q t b k d t \begin{array}{} {p_{{b_{k + 1}}}^w = p_{{b_k}}^w + v_{{b_k}}^w{\rm{\Delta }}{t_k} +\int\!\!\!\int \nolimits_{t \in [k,k + 1]} [R_t^w({{\hat a}_t} - {b_{{a_t}}} - {n_{{a_t}}}) - {g^w}]d{t^2}}\\ {v_{{b_{k + 1}}}^w = v_{{b_k}}^w + \smallint \nolimits_{t \in [k,k + 1]} [R_t^w({{\hat a}_t} - {b_{{a_t}}} - {n_{{a_t}}}) - {g^w}]dt}\\ {q_{{b_{k + 1}}}^w = q_{{b_k}}^w \otimes \smallint \nolimits_{t \in [k,k + 1]} \frac{1}{2}{\rm{\Omega }}({{\hat \omega }_t} - {b_{{\omega _t}}} - {n_{{\omega _t}}})q_t^{{b_k}}dt} \end{array} pbk+1w=pbkw+vbkwΔtk+t[k,k+1][Rtw(a^tbatnat)gw]dt2vbk+1w=vbkw+t[k,k+1][Rtw(a^tbatnat)gw]dtqbk+1w=qbkwt[k,k+1]21Ω(ω^tbωtnωt)qtbkdt

转换到体坐标系下,其PVQ形式如下:
在这里插入图片描述
其中:
α b k + 1 b k = ∫  ⁣ ⁣ ⁣ ∫ t ∈ [ t k , t k + 1 ] R t b k ( a ^ t − b a t − n a t ) d t 2 β b k + 1 b k = ∫ t ∈ [ t k , t k + 1 ] R t b k ( a ^ t − b a t − n a t ) d t γ b k + 1 b k = ∫ t ∈ [ t k , t k + 1 ] 1 2 Ω ( ω ^ t − b ω t − n ω t ) γ t b k d t \begin{array}{} {\alpha _{{b_{k + 1}}}^{{b_k}} = \int\!\!\!\int \nolimits_{t \in [{t_k},{t_{k + 1}}]} R_t^{{b_k}}({{\hat a}_t} - {b_{{a_t}}} - {n_{{a_t}}})d{t^2}}\\ {\beta _{{b_{k + 1}}}^{{b_k}} = \smallint \nolimits_{t \in [{t_k},{t_{k + 1}}]} R_t^{{b_k}}({{\hat a}_t} - {b_{{a_t}}} - {n_{{a_t}}})dt}\\ {\gamma _{{b_{k + 1}}}^{{b_k}} = \smallint \nolimits_{t \in [{t_k},{t_{k + 1}}]} \frac{1}{2}{\rm{\Omega }}({{\hat \omega }_t} - {b_{{\omega _t}}} - {n_{{\omega _t}}})\gamma _t^{{b_k}}dt} \end{array} αbk+1bk=t[tk,tk+1]Rtbk(a^tbatnat)dt2βbk+1bk=t[tk,tk+1]Rtbk(a^tbatnat)dtγbk+1bk=t[tk,tk+1]21Ω(ω^tbωtnωt)γtbkdt

在VIO系统中,IMU的发布频率通常是高于图像的,VINS系统中,使用k来表示对应的图像帧时刻,通过积分两个图像帧之间的IMU数据,来与视觉估计的位姿进行对比,来得到更加精确的位姿。

在连续积分模型时,时间连续,用 t t t作为标识,而当使用实际离散积分形式时, i i i表示 k k k k + 1 k+1 k+1图像帧之间的IMU发布时间。 b k , b k + 1 b_k, b_{k+1} bk,bk+1 k , k + 1 k,k+1 k,k+1时刻对应的IMU坐标系。
α i + 1 b k = α i b k + β i b k δ t + 1 2 α ‾ i ′ δ t 2 β i + 1 b k = β i b k + α ‾ i ′ δ t γ i + 1 b k = γ i b k ⊗ γ i + 1 i = γ i b k ⊗ [ 1 1 2 ω ‾ i ′ δ t ] \begin{array}{c} & {\alpha_{i + 1}^{b_{k}} = \alpha_{i}^{b_{k}} + \beta_{i}^{b_{k}}\delta t + \frac{1}{2}{\overline{\alpha}}_{i}^{'}\delta t^{2}} \\ & {\beta_{i + 1}^{b_{k}} = \beta_{i}^{b_{k}} + {\overline{\alpha}}_{i}^{'}\delta t} \\ & {\gamma_{i + 1}^{b_{k}} = \gamma_{i}^{b_{k}} \otimes \gamma_{i + 1}^{i} = \gamma_{i}^{b_{k}} \otimes \left\lbrack \begin{array}{r} 1 \\ {\frac{1}{2}{\overline{\omega}}_{i}^{'}\delta t} \end{array} \right\rbrack} \end{array} αi+1bk=αibk+βibkδt+21αiδt2βi+1bk=βibk+αiδtγi+1bk=γibkγi+1i=γibk[121ωiδt]

当使用普通离散增量形式时:
a ˉ i ′ = a ^ i − b a i − n a i , ω ˉ i ′ = ω ^ i − b ω i − n ω i {\bar a_i}^\prime = {\hat a_i} - {b_{{a_i}}} - {n_{{a_i}}},{\bar \omega _i}^\prime = {\hat \omega _i} - {b_{{\omega _i}}} - {n_{{\omega _i}}} aˉi=a^ibainai,ωˉi=ω^ibωinωi
利用中值积分时,
a ˉ i ′ = 1 2 [ q i ( a ^ i − b a i − n a i ) + q i + 1 ( a ^ i + 1 − b a i − n a i ) ] {\bar a_i}^\prime = \frac{1}{2}[{q_i}({\hat a_i} - {b_{{a_i}}} - {n_{{a_i}}}) + {q_{i + 1}}({\hat a_{i + 1}} - {b_{{a_i}}} - {n_{{a_i}}})] aˉi=21[qi(a^ibainai)+qi+1(a^i+1bainai)] ω ˉ i ′ = 1 2 ( ω ^ i + ω ^ i + 1 ) − b ^ ω {\bar \omega _i}^\prime = \frac{1}{2}({\hat \omega _i} + {\hat \omega _{i + 1}}) - {\hat b_\omega } ωˉi=21(ω^i+ω^i+1)b^ω

IMU预积分估计模型

首先,不考虑高斯噪声,世界坐标系下的PVQ积分形式如下:
p ^ b k + 1 w = p ^ b k w + v b k w Δ t k + ∫  ⁣ ⁣ ⁣ ∫ t ∈ [ k , k + 1 ] [ R t w ( a ^ t − b ^ a t ) − g w ] d t 2 v ^ b k + 1 w = v ^ b k w + ∫ t ∈ [ k , k + 1 ] [ R t w ( a ^ t − b ^ a t ) − g w ] d t q ^ b k + 1 w = q ^ b k w ⊗ ∫ t ∈ [ k , k + 1 ] 1 2 Ω ( ω ^ t − b ^ ω t ) q ^ t b k d t \begin{array}{} {\hat p_{{b_{k + 1}}}^w = \hat p_{{b_k}}^w + v_{{b_k}}^w{\rm{\Delta }}{t_k} + \int\!\!\!\int \nolimits_{t \in [k,k + 1]} [R_t^w({{\hat a}_t} - {{\hat b}_{{a_t}}}) - {g^w}]d{t^2}}\\ {\hat v_{{b_{k + 1}}}^w = \hat v_{{b_k}}^w + \smallint \nolimits_{t \in [k,k + 1]} [R_t^w({{\hat a}_t} - {{\hat b}_{{a_t}}}) - {g^w}]dt}\\ {\hat q_{{b_{k + 1}}}^w = \hat q_{{b_k}}^w \otimes \smallint \nolimits_{t \in [k,k + 1]} \frac{1}{2}{\rm{\Omega }}({{\hat \omega }_t} - {{\hat b}_{{\omega _t}}})\hat q_t^{{b_k}}dt} \end{array} p^bk+1w=p^bkw+vbkwΔtk+t[k,k+1][Rtw(a^tb^at)gw]dt2v^bk+1w=v^bkw+t[k,k+1][Rtw(a^tb^at)gw]dtq^bk+1w=q^bkwt[k,k+1]21Ω(ω^tb^ωt)q^tbkdt

转换到体坐标系下,其PVQ形式如下:
R ^ w b k p ^ b k + 1 w = R ^ w b k ( p ^ b k w + v ^ b k w Δ t k − 1 2 g w Δ t k 2 ) + α ^ b k + 1 b k R ^ w b k v ^ b k + 1 w = R ^ w b k ( v ^ b k w − g w Δ t k ) + β ^ b k + 1 b k q ^ w b k ⊗ q ^ b k + 1 w = γ ^ b k + 1 b k \begin{array}{} {\hat R_w^{{b_k}}\hat p_{{b_{k + 1}}}^w = \hat R_w^{{b_k}}\left( {\hat p_{{b_k}}^w + \hat v_{{b_k}}^w{\rm{\Delta }}{t_k} - \frac{1}{2}{g^w}{\rm{\Delta }}t_k^2} \right) + \hat \alpha _{{b_{k + 1}}}^{{b_k}}}\\ {\hat R_w^{{b_k}}\hat v_{{b_{k + 1}}}^w = \hat R_w^{{b_k}}(\hat v_{{b_k}}^w - {g^w}{\rm{\Delta }}{t_k}) + \hat \beta _{{b_{k + 1}}}^{{b_k}}}\\ {\hat q_w^{{b_k}} \otimes \hat q_{{b_{k + 1}}}^w = \hat \gamma _{{b_{k + 1}}}^{{b_k}}} \end{array} R^wbkp^bk+1w=R^wbk(p^bkw+v^bkwΔtk21gwΔtk2)+α^bk+1bkR^wbkv^bk+1w=R^wbk(v^bkwgwΔtk)+β^bk+1bkq^wbkq^bk+1w=γ^bk+1bk

其中:
α ^ b k + 1 b k = ∫  ⁣ ⁣ ⁣ ∫ t ∈ [ t k , t k + 1 ] R ^ t b k ( a ^ t − b ^ a t ) d t 2 β ^ b k + 1 b k = ∫ t ∈ [ t k , t k + 1 ] R ^ t b k ( a ^ t − b ^ a t ) d t γ ^ b k + 1 b k = ∫ t ∈ [ t k , t k + 1 ] 1 2 Ω ( ω ^ t − b ^ ω t ) γ t b k d t \begin{array}{} {\hat \alpha _{{b_{k + 1}}}^{{b_k}} = \int\!\!\!\int \nolimits_{t \in [{t_k},{t_{k + 1}}]} \hat R_t^{{b_k}}({{\hat a}_t} - {{\hat b}_{{a_t}}})d{t^2}}\\ {\hat \beta _{{b_{k + 1}}}^{{b_k}} = \smallint \nolimits_{t \in [{t_k},{t_{k + 1}}]} \hat R_t^{{b_k}}({{\hat a}_t} - {{\hat b}_{{a_t}}})dt}\\ {\hat \gamma _{{b_{k + 1}}}^{{b_k}} = \smallint \nolimits_{t \in [{t_k},{t_{k + 1}}]} \frac{1}{2}{\rm{\Omega }}({{\hat \omega }_t} - {{\hat b}_{{\omega _t}}})\gamma _t^{{b_k}}dt} \end{array} α^bk+1bk=t[tk,tk+1]R^tbk(a^tb^at)dt2β^bk+1bk=t[tk,tk+1]R^tbk(a^tb^at)dtγ^bk+1bk=t[tk,tk+1]21Ω(ω^tb^ωt)γtbkdt

其对应的实际离散积分形式:
在这里插入图片描述

当使用普通离散增量形式时:
a ^ ˉ i ′ = a ^ i − b ^ a i , ω ^ ˉ i ′ = ω ^ i − b ^ ω i {{\bar {\hat a}}_i}^\prime = {\hat a_i} - {\hat b_{a_i}},{{\bar {\hat \omega}_i}^\prime = {\hat \omega _i} - {\hat b_{\omega _i}}} a^ˉi=a^ib^ai,ω^ˉi=ω^ib^ωi

利用中值积分时,
a ^ ˉ i ′ = 1 2 [ q ^ i ( a ^ i − b ^ a i ) + q ^ i + 1 ( a ^ i + 1 − b ^ a i ) ] {{\bar {\hat a}}_i}^\prime = \frac{1}{2}[{\hat q_i}({\hat a_i} - {\hat b_{{a_i}}}) + {\hat q_{i + 1}}({\hat a_{i + 1}} - {\hat b_{{a_i}}})] a^ˉi=21[q^i(a^ib^ai)+q^i+1(a^i+1b^ai)] ω ^ ˉ i ′ = 1 2 ( ω ^ i + ω ^ i + 1 ) − b ^ ω i {\bar {\hat \omega} _i}^\prime = \frac{1}{2}({\hat \omega _i} + {\hat \omega _{i + 1}}) - {\hat b_{\omega _i}} ω^ˉi=21(ω^i+ω^i+1)b^ωi

误差模型

在使用马氏距离构成最小二乘问题时,我们需要知道估计量随着时间的推移,其误差的一个变化情况,因而需要对误差模型进行评估,进而对其各变量的协方差进行评估。VINS用于构造滑窗约束方程。
设估计为 z ^ \hat{z} z^,真值为 z z z,则其误差定义为:
δ z = z − z ^ \delta z=z-\hat{z} δz=zz^

当选用 z t b k = [ α t b k , β t b k , γ t b k , b a t , b ω t ] T z_t^{{b_k}} = {[\alpha _t^{{b_k}},\beta _t^{{b_k}},\gamma _t^{{b_k}},{b_{{a_t}}},{b_{{\omega _t}}}]^T} ztbk=[αtbk,βtbk,γtbk,bat,bωt]T作为预积分参数,

普通增量积分

  1. 其对应的普通增量积分的误差状态方程如下:
    δ z ˙ t b k = ∂ δ z t b k ∂ δ t = J t \delta \dot z_t^{{b_k}} = \frac{{\partial \delta z_t^{{b_k}}}}{{\partial \delta t}} = {J_t} δz˙tbk=δtδztbk=Jt
    通过计算,可得 J t = {J_t}= Jt=
    在这里插入图片描述
    从而得,当 δ t \delta t δt足够小时,
    在这里插入图片描述
    在这里插入图片描述
    在积分初始状态,设 J 0 = I , P 0 = 0 J_0=I, P_0 = 0 J0=I,P0=0,可以计算出雅可比矩阵 J t + δ t {J_{t+\delta t}} Jt+δt及协方差矩阵 P t + δ t {P_{t+\delta t}} Pt+δt随时间推移的传递方程。
    雅可比矩阵 J t + δ t {J_{t+\delta t}} Jt+δt的传递方程
    J t + δ t = ∂ δ z t + δ t b k ∂ δ t = δ z ˙ t + δ t b k = ∂ δ z t + δ t b k ∂ δ z t b k ∂ δ z t b k ∂ δ t = F J t = ( I + F t δ t ) J t {J_{t + \delta t}} = \frac{{\partial \delta z_{t + \delta t}^{{b_k}}}}{{\partial \delta t}} = \delta \dot z_{t + \delta t}^{{b_k}} = \frac{{\partial \delta z_{t + \delta t}^{{b_k}}}}{{\partial \delta z_t^{{b_k}}}}\frac{{\partial \delta z_t^{{b_k}}}}{{\partial \delta t}} = F{J_t} = (I + {F_t}\delta t){J_t} Jt+δt=δtδzt+δtbk=δz˙t+δtbk=δztbkδzt+δtbkδtδztbk=FJt=(I+Ftδt)Jt
    其中:
    ∂ δ z t + δ t b k ∂ δ z t b k = F = ( I + F t δ t ) \frac{{\partial \delta z_{t + \delta t}^{{b_k}}}}{{\partial \delta z_t^{{b_k}}}} = F = (I + {F_t}\delta t) δztbkδzt+δtbk=F=(I+Ftδt)
    设:变量 a ∼ N ( μ a , Λ a ) , b ∼ N ( μ b , Λ b ) a\sim\mathcal{N}\left(\mu_a,\Lambda_a\right),b\sim\mathcal{N}\left(\mu_b,\Lambda_b\right) aN(μa,Λa),bN(μb,Λb)
    则可知: F a ∼ N ( F μ a , F Λ a F T ) , G b ∼ N ( G μ b , G Λ b G T ) Fa\sim\mathcal{N}\left(F\mu_a,F\Lambda_aF^T\right),Gb\sim\mathcal{N}\left(G\mu_b,G\Lambda_bG^T\right) FaN(Fμa,FΛaFT),GbN(Gμb,GΛbGT)
    从而得到协方差矩阵的传递公式
    设误差量 δ z b t b k ∼ N ( 0 , P t b k ) \delta z_{b_t}^{b_k}\sim\mathcal{N}(0,P_t^{b_k}) δzbtbkN(0,Ptbk),
    δ z b t + δ t b k ∼ N ( 0 , P t + δ t b k ) \delta z_{b_{t+\delta t}}^{b_k}\sim\mathcal{N}\left(0,P_{t+\delta t}^{b_k}\right) δzbt+δtbkN(0,Pt+δtbk) P t + δ t b k = ( I + F t δ t ) P t b k ( I + F t δ t ) T + ( G t δ t ) Q ( G t δ t ) T P_{t+\delta t}^{b_k}=\left(\mathrm{I}+F_t\delta t\right)P_t^{b_k}\left(\mathrm{I}+F_t\delta t\right)^T+\left(G_t\delta t\right)Q\left(G_t\delta t\right)^T Pt+δtbk=(I+Ftδt)Ptbk(I+Ftδt)T+(Gtδt)Q(Gtδt)T
    当我们使用迭代法估计零偏时,零偏值会在每次迭代时,进行更新,从而我们的IMU积分量则需要根据新的零偏进行重新的计算,比较耗时,因而,VINS作者提出,通过更新IMU积分量对零偏误差的雅可比矩阵,来迭代零偏更新量到IMU的积分值,从而简化计算步骤。
    在这里插入图片描述
    δ z = z − z ^ \delta z=z-\hat{z} δz=zz^得:
    ∂ z ∂ b = ∂ δ z ∂ b \frac{\partial z}{\partial b}=\frac{\partial\delta z}{\partial b} bz=bδz
    从而可以从 ∂ δ z t + δ t b k ∂ δ z t b k \frac{{\partial \delta z_{t + \delta t}^{{b_k}}}}{{\partial \delta z_t^{{b_k}}}} δztbkδzt+δtbk对应的雅可比矩阵中拿出关于零偏的雅可比矩阵。
    注意: δ z ˙ t + δ t b k \delta \dot z_{t + \delta t}^{{b_k}} δz˙t+δtbk指的是对时间间隔 δ t \delta t δt的导数,而不是对 δ z ˙ t b k \delta \dot z_{t}^{{b_k}} δz˙tbk的导数,这里与VINS代码有所不同(代码中使用的 J t J_t Jt矩阵取的对零偏的雅可比矩阵)

中值积分法

  1. 使用中值积分法时,得到的状态方程传递方程如下:
    在这里插入图片描述
    在这里插入图片描述
    以上图片来自《VINS 论文推导及代码解析 崔华坤》

参考文献

《VINS 论文推导及代码解析 崔华坤》
《VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator》
《Quaternion kinematics for the error-state Kalman filter》

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

成功案例(IF=7.3)| 转录组+蛋白质组+代谢组联合分析分析揭示胰腺癌中TAM2相关的糖酵解和丙酮酸代谢重构

研究背景 肿瘤的进展和发展需要癌细胞的代谢重编程,癌细胞能量代谢模式的改变可以满足快速增殖和适应肿瘤微环境的需要。肿瘤微环境(TME)中的代谢状态受到多种因素的影响,包括血管生成、与其他细胞的相互作用和系统代谢。代谢异质…

Python中批量提取[]括号内第一个元素的四种方法

目录 一、引言 二、方法介绍 使用正则表达式(Regular Expression) 使用字符串分割(String Split) 使用ast模块解析字符串为列表 使用JSON模块解析字符串 三、方法比较与选择 四、总结 一、引言 在Python数据处理过程中&a…

探索1688、淘宝、京东搜索商品聚合API接口:一站式电商搜索解决方案

随着电商行业的不断发展,电商平台的数量和商品种类都在快速增长。商家和开发者在运营过程中,需要经常进行跨平台的商品搜索和数据分析。然而,由于各个电商平台的数据接口存在差异,直接对接多个平台不仅效率低下,而且维…

仓库管理员如何入门?仓库管理六大步骤教会你!

新手菜鸟入行,如何做好一个仓库管理员?仓库运营对于许多行业至关重要,例如制造、零售和物流。它们涉及高效、安全地接收、仓储、拣选、包装和运输货物。 跟着这6个步骤做,最慢一个月,最快一周,就能轻松做好…

42.乐理基础-拍号-看懂拍号的意义

到这必然是已经知道 X、Y的意思了: 然后带入数字: 然后念拍号的时候,在国内,百分之九十的地方是从下往上念,念作四二拍,还有百分之十的地方是和国外一样,从上往下念,念作二四拍&…

GPS与精致农业 无人机应用 农业遥感 农业类

全球定位系统是美国国防部主要为满足军事部门对海上、陆地和空中设施进行高精度导航和定位的要求而建立的。GPS系统最基本的特点是以“多星、高轨、高频、测量-测距”为体制,以高精度的原子钟为核心。GPS作为新一代卫星导航与定位系统,不仅具有全球性、全…

大模型外推能力

一、目录 定义如何提高模型的外推能力?分类测评方法各技术点,以及应用模型,优缺点支持模型长上下文的方案「NTK-aware interpolation」的思路是什么?LLM长度外推方案NTK-by-parts的思路是什么?LLM长度外推方案YaRN是怎…

普通组件的注册-局部注册和全局注册

目录 一、局部注册和全局注册-概述 二、局部注册的使用示例 三、全局注册的使用示例 一、局部注册和全局注册-概述 组件注册有两种方式: 局部注册:只能在注册的组件内使用。使用方法:创建.vue文件,在使用的组件内导入并注册。…

编程语言QT、C++、C#、Matlab、SQL Server开发日志总结

目录 引言 正文 1、Qt连接SQL server数据库 2、C#使用chart绘制实时折线图,波形 3、ORACLEXE数据库 4、QT通过ODBC驱动连接Oracle数据库 5、Microsoft SQL Server 2014 安装图解 6、SQL Server 2014应用 7、C/C​​​​​​​ 8、QT…

vue2后台管理项目

一:项目准备 1)拉取模板代码 远程仓库复制到本地仓库. 2)安装后的项目 路径 code 文件夹 会打开vscode的文件夹. 3)安装vetur和eslint插件可以保存时自动修改不规范的地方. 4)App内有一级路由,路由组件导入如果是layout架子,会导入的是文件夹下的index.js没有则导入index.v…

深度学习实战76-基于目标检测YOLOv5模型的迁移学习使用方法,YOLOv5的原理与结构

大家好,我是微学AI,今天给大家介绍一下深度学习实战76-基于目标检测YOLOv5模型的迁移学习使用方法,YOLOv5的原理与结构。YOLOv5(You Only Look Once version 5)是一种先进的目标检测算法,基于深度学习的单阶段目标检测模型。它的主要原理是通过一次前向传播就同时预测图像…

【Python】字典题

题目:输入一段文本,统计每个字符的个数 in_inputinput(“输入:”) dic{} for char in in_input: if char in dic: dic[char]1 # 字典添加键值对的方法,给字典给键和值的方法 else: dic[char]1 print(dic) for key,value in dic.i…

6、随机森林(Random forests)

Random forests started a revolution in machine learning 20 years ago. For the first time, there was a fast and reliable algorithm which made almost no assumptions about the form of the data, and required almost no preprocessing. In today’s lesson, you’ll…

Apache SeaTunnel 正式发布2.3.5版本,功能增强及多个Bug修复

经过两个月的筹备,我们在2.3.4版本基础上进行了新一轮的迭代,本次更新不仅修复了多个关键问题,还引入了若干重要功能增强和性能优化。 在此,我们先提前感谢社区成员的贡献和支持,如果你想升级最新的版本,快…

26 JavaScript学习:JSON和void

JSON 英文全称 JavaScript Object NotationJSON 是一种轻量级的数据交换格式。JSON是独立的语言JSON 易于理解。 JSON 实例 简单的 JSON 字符串实例: "{\"name\": \"Alice\", \"age\": 25, \"city\": \"San Francisco\&…

【陀螺仪JY61P维特智能】通过单片机修改波特率和角度参考的方法

根据官方文档: 修改波特率 1.解锁:FF AA 69 88 B5 1.1延时200ms 2.修改波特率:FF AA 04 06 00 2.1切换已修改的波特率然后重新发送解锁和保存指令 2.2解锁:FF AA 69 88 B5 2.3延时200ms 4.保存: FF AA 00 00 00 XY轴角度参考 角度参考是以传感器当前的实际位置&…

8款常见的自动化测试开源框架

在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来…

近似消息传递算法(AMP)单测量模型(SMV)

1、算法解决问题 很多人致力于解决SLM模型的求逆问题,即知道观测值和测量矩阵(字典之类的),要求未知变量的值。SLM又叫做标准线性模型,后续又在此基础上进行升级变为广义线性模型。即SLM是yAxe,这里是线性…

数据分析必备:一步步教你如何用numpy改变数据处理(6)

介绍: NumPy 广播(Broadcasting)是指当两个形状不同的数组进行运算时,NumPy 有能力灵活地改变其中某个(些)数组的形状从而使得运算可以正常进行。 广播的规则主要包括以下几点: 当一个数组是一个…

C语言 函数概述

好 接下来 我们来讲函数 构建C程序的最佳方式 就是模块化程序设计 C语言中 最基本的程序模块被称为 函数 所以 这个知识点的重要性不言而喻 这里 我们讲个故事 诸葛亮六出祁山时 为了逼司马懿出战 派人送给力司马懿一件女人衣服 司马懿只是为使者 诸葛亮的饮食起居 使者感叹…