okvis

论文

Keyframe-Based Visual-Inertial SLAM Using Nonlinear Optimization
在这里插入图片描述

摘要

由于两种感知模式的互补性,视觉和惯性线索的融合在机器人中变得很流行。虽然迄今为止大多数融合策略都依赖于过滤方案,但视觉机器人界最近转向了非线性优化方法,用于视觉同步定位和映射(SLAM)等任务,因为他们发现这在性能质量和计算复杂性方面具有显著优势。根据这一趋势,我们提出了一种新的方法,将视觉测量与SLAM中惯性测量单元(IMU)的读数紧密集成。IMU误差项以完全概率的方式与界标重投影误差集成,导致要优化的联合非线性成本函数。利用“关键帧”这一强大的概念,我们部分边缘化了旧状态,以保持有限大小的优化窗口,确保实时操作。与纯视觉和松散耦合的视觉惯性算法相比,我们的实验证实了紧密融合在准确性和鲁棒性方面的优势。

INTRODUCTION

长期以来,将视觉和惯性测量相结合一直是解决机器人常见任务的流行方法,如自我运动估计、视觉里程计和SLAM。图像中捕捉到的场景的丰富表示,以及典型IMU中存在的陀螺仪和加速度计的准确短期估计,已被公认为是相辅相成的,在机载[6,20]和汽车[14]导航中有很大的用途。此外,随着这些传感器在大多数智能手机中的可用性,人们对视觉惯性SLAM的有效解决方案产生了极大的兴趣和研究活动。

从历史上看,视觉惯性姿态估计问题已经通过滤波来解决,其中IMU测量被传播,关键点测量被用来形成更新。Mourikis和Roumeliotis[14]提出了一种使用单目视觉的基于EKF的实时融合,而Jones和Soatto[8]提出了在长户外轨迹上的单目惯性滤波结果,包括IMU到相机的校准和闭环。这两项工作的表现都令人印象深刻,误差都低于行驶距离的0.5%。

Kelly和Sukhatme[9]提供了校准结果和基于滤波的视觉IMU融合背景下的可观测性研究。偏航和位置的全局不可观测性,以及相对于初始参考姿态的日益增长的不确定性,是视觉惯性估计问题的固有问题;这对通常依赖于某种形式的线性化的滤波方法提出了挑战。

在[18]中,表明在纯视觉SLAM中,与滤波方法相比,基于优化的方法为相同的计算工作提供了更好的精度。在非线性优化的情况下,保持关键帧及其相关地标的相对稀疏图一直很受欢迎

文献中发现的视觉惯性融合方法可以分为两种方法。在松耦合系统中,例如[10],IMU测量作为独立的倾角仪和相对偏航测量纳入立体视觉优化。Weiss等人[20]使用仅视觉姿态估计作为间接IMU传播的EKF的更新。同样在[15,7]中,相对立体姿态估计被集成到包含惯性项和绝对GPS测量的因子图中。这种方法限制了复杂性,但忽略了不同传感器内部状态之间的相关性。相反紧密耦合的方法联合估计所有传感器状态。

为了便于处理,并作为滤波的替代方案,Dong Si和Mourikis[2]提出了一种固定滞后平滑器,其中保持了连续机器人姿态和相关状态的窗口,从而边缘化了超出范围的状态(参见[19])。[16]中使用了类似的方法,但没有惯性项,并且在行星着陆的背景下使用。

为了实现稳健和准确的视觉惯性SLAM,我们提倡紧密耦合融合,尽可能最大限度地利用感知线索和非线性估计,而不是滤波,以减少线性化引起的次优性。我们的方法受到[17]的启发,其中提出在批量优化的SLAM中使用IMU误差项(尽管仅在初始化期间)。我们的方法与[2]中提出的固定滞后平滑器密切相关,因为它在单个成本函数中结合了惯性项和重投影误差,并且为了限制复杂性,旧状态被边缘化

三个贡献点

1) 当存在缓慢或根本没有运动时,我们也使用关键帧范式进行无漂移估计:我们不使用时间连续姿势的优化窗口,而是保留可能在时间上任意间隔的关键帧,保持视觉约束,同时仍然遵守IMU项。我们对关键帧的相对不确定性的公式允许在不表达全局姿态不确定性的情况下构建姿态图,灵感来自RSLAM[13]。

2) 我们提供了IMU误差项的完全概率推导,包括相应的信息矩阵,在没有明确引入IMU速率下的状态的情况下关联连续图像帧。

3) 在系统层面,我们开发了用于精确实时SLAM的硬件和算法,包括鲁棒的关键点匹配和使用惯性线索的异常值抑制

在本文的其余部分中,我们在II-B中介绍了批量视觉SLAM中的惯性误差项,然后概述了II-C中的实时立体图像处理和关键帧选择,以及II-D中的边缘化形式。最后,我们在第三章中展示了我们的立体视觉和IMU传感器在室内和室外获得的结果。

紧密耦合视觉-惯性融合

在这里插入图片描述

在视觉SLAM中,通过最小化在相机帧中观察到的地标的重投影误差,制定了一种非线性优化来找到相机姿态和地标位置。图2显示了各自的图形表示:它将测量值显示为带有方形框的边,将估计量显示为圆形节点。一旦惯性引入了测量,它们不仅在连续姿态之间产生时间约束,而且在加速度计和陀螺仪的连续速度和IMU偏差估计之间产生时间限制,从而增强机器人状态向量。

在本节中,我们介绍了将惯性测量纳入批量视觉SLAM的方法。

符号和定义

一个帧包含的坐标系
在这里插入图片描述状态包含
x R : = [ p W W S T , q W S T , v W W S T , b g T , b a T ] T ∈ R 3 × S 3 × R 9 \mathbf{x}_{\mathrm{R}}:=\left[\mathbf{p}_W^{W S^T}, \mathbf{q}_{W S}^T, \mathbf{v}_W^{W S^T}, \mathbf{b}_{\mathrm{g}}^T, \mathbf{b}_{\mathrm{a}}^T\right]^T \in \mathbb{R}^3 \times S^3 \times \mathbb{R}^9 xR:=[pWWST,qWST,vWWST,bgT,baT]TR3×S3×R9

残差部分

我们试图将视觉惯性定位和映射问题公式化为成本函数 J ( x ) J(x) Jx的一个联合优化,该成本函数包含来自IMU e s e_s es的(加权)重投影误差 e r e_r er和时间误差项:
J ( x ) : = ∑ i = 1 I ∑ k = 1 K ∑ j ∈ J ( i , k ) e r i , j , k W r i , j , k e r i , j , k + ∑ k = 1 K − 1 e s k T W s k e s k J(\mathbf{x}):=\sum_{i=1}^I \sum_{k=1}^K \sum_{j \in \mathcal{J}(i, k)} \mathbf{e}_{\mathrm{r}}^{i, j, k} \mathbf{W}_{\mathrm{r}}^{i, j, k} \mathbf{e}_{\mathrm{r}}^{i, j, k}+\sum_{k=1}^{K-1} \mathbf{e}_{\mathrm{s}}^{k^T} \mathbf{W}_{\mathrm{s}}^k \mathbf{e}_{\mathrm{s}}^k J(x):=i=1Ik=1KjJ(i,k)eri,j,kWri,j,keri,j,k+k=1K1eskTWskesk

其中,i是组件的相机索引,k表示相机帧索引,j表示地标索引。

本质上,纯视觉SLAM具有6个自由度(DoF),在优化过程中需要保持固定,即绝对姿态。组合视觉惯性问题只有4个自由度,因为重力使两个旋转自由度可观测到。这使固定变得复杂。我们希望固定围绕重力方向(世界z轴)的偏航,以及第一个位姿的位置 对应4个不可观量。因此,除了设置位置变化为零, δ p W W S k 1 = 0 3 × 1 \delta \mathbf{p}_W^{W S^{k_1}}=\mathbf{0}_{3 \times 1} δpWWSk1=03×1外,我们还假设 δ α k 1 = [ δ α 1 k 1 , δ α 2 k 1 , 0 ] T \delta \boldsymbol{\alpha}^{k_1}=\left[\delta \alpha_1^{k_1}, \delta \alpha_2^{k_1}, 0\right]^T δαk1=[δα1k1,δα2k1,0]T。也就是第一帧的增量进行了处理

在下文中,我们将介绍(标准)重投影误差公式。然后,结合偏置项建模对IMU运动学进行了概述,并在此基础上建立了IMU误差项。

重投影误差公式
e r i , j , k = z i , j , k − h i ( T C i S T S W k l W W L , j ) \mathbf{e}_{\mathrm{r}}^{i, j, k}=\mathbf{z}^{i, j, k}-\mathbf{h}_i\left(\boldsymbol{T}_{C_i S} \boldsymbol{T}_{S W}^k \boldsymbol{l}_W^{W L, j}\right) eri,j,k=zi,j,khi(TCiSTSWklWWL,j)

imu部分…

关键点匹配和关键帧选择

我们的处理流水线采用定制的多尺度SSE优化Harris角检测器,结合BRISK描述符提取[12]。检测器通过逐渐抑制得分较弱的角点来强制图像中的均匀关键点分布,因为它们是在距离较强角点很小的距离处检测到的。描述符是沿着重力方向提取的(投影到图像中),由于紧密的IMU融合,重力方向是可观察的。
最初,对关键点进行立体三角测量并将其插入到局部地图中。我们针对所有地图地标;通过使用IMU积分获得的(不确定的)姿态预测,在图像坐标中应用卡方检验来简单地执行异常值抑制。不需要昂贵的RANSAC步骤,这是IMU紧密参与的另一个优势。对于子后续优化,保持一组有界的相机帧,即具有在该时刻拍摄的相关图像的姿势;在这些图像中可见的所有地标都保存在本地地图中。如图5所示,我们区分了两种帧:我们引入了包括当前帧在内的S个最近帧的时间窗口;并且我们使用了许多N个关键帧,这些关键帧可能在很久以前就被拍摄过。对于关键帧选择,我们使用一个简单的启发式方法:如果匹配点跨越的图像区域与所有检测点跨越的区域之间的比率低于50%到60%,则帧被标记为关键帧。

在这里插入图片描述

部分边缘化

非线性时间约束如何存在于包含关键帧的有界优化窗口中尚不清楚,这些关键帧可能在时间上间隔任意远。在下文中,我们首先提供了边缘化的数学基础,即非线性优化中状态的消除,并将其应用于视觉惯性SLAM。

1) 非线性优化中边缘化的数学公式:

高斯-牛顿方程组由所有误差项、雅可比矩阵和信息构成:其形式为 H δ χ = b Hδχ=b Hδχ=b。让我们考虑一组待边缘化的状态, x µ x_µ xµ,与误差项相关的所有状态的集合, x λ x_λ xλ,以及剩余状态的集合 x ρ x_ρ xρ。由于条件独立性,我们可以简化边缘化步骤,只将其应用于一个子问题:
[ H μ μ H μ λ 1 H λ 1 μ H λ 1 λ 1 ] [ δ χ μ δ χ λ ] = [ b μ b λ 1 ] \left[\begin{array}{cc} \mathbf{H}_{\mu \mu} & \mathbf{H}_{\mu \lambda_1} \\ \mathbf{H}_{\lambda_1 \mu} & \mathbf{H}_{\lambda_1 \lambda_1} \end{array}\right]\left[\begin{array}{l} \delta \boldsymbol{\chi}_\mu \\ \delta \boldsymbol{\chi}_\lambda \end{array}\right]=\left[\begin{array}{c} \mathbf{b}_\mu \\ \mathbf{b}_{\lambda_1} \end{array}\right] [HμμHλ1μHμλ1Hλ1λ1][δχμδχλ]=[bμbλ1]
Schur互补运算的应用产生:
H λ 1 λ 1 ∗ : = H λ 1 λ 1 − H λ 1 μ H μ μ − 1 H μ λ 1 b λ 1 ∗ : = b λ 1 − H λ 1 μ H μ μ − 1 b μ \begin{aligned} \mathbf{H}_{\lambda_1 \lambda_1}^* & :=\mathbf{H}_{\lambda_1 \lambda_1}-\mathbf{H}_{\lambda_1 \mu} \mathbf{H}_{\mu \mu}^{-1} \mathbf{H}_{\mu \lambda_1} \\ \mathbf{b}_{\lambda_1}^* & :=\mathbf{b}_{\lambda_1}-\mathbf{H}_{\lambda_1 \mu} \mathbf{H}_{\mu \mu}^{-1} \mathbf{b}_\mu \end{aligned} Hλ1λ1bλ1:=Hλ1λ1Hλ1μHμμ1Hμλ1:=bλ1Hλ1μHμμ1bμ
(18)中的方程式描述了边缘化的单一步骤。在我们基于关键帧的方法中,必须重复应用边缘化步骤,并随着状态估计的不断变化,将得到的信息作为优化的先验信息。因此,我们将线性化点固定在x0附近,即边缘化时x的值。有限偏差 Δ χ : = Φ − 1 ( log ⁡ ( x ‾ ⊞ x 0 − 1 ) ) ) \left.\Delta \chi:=\Phi^{-1}\left(\log \left(\overline{\mathbf{x}} \boxplus \mathbf{x}_0^{-1}\right)\right)\right) Δχ:=Φ1(log(xx01)))表示边缘化后发生的状态更新,其中 x ‾ \overline{\mathbf{x}} x是我们对x的当前估计。换句话说,x由 x = exp ⁡ ( Φ ( δ χ ) ) ⊞ exp ⁡ ( Φ ( Δ χ ) ) ⊞ x 0 ⏟ = x ‾ . \mathbf{x}=\exp (\Phi(\delta \boldsymbol{\chi})) \boxplus \underbrace{\exp (\Phi(\Delta \boldsymbol{\chi})) \boxplus \mathbf{x}_0}_{=\overline{\mathbf{x}}} . x=exp(Φ(δχ))=x exp(Φ(Δχ))x0.这种通用公式允许我们将最小坐标上的先验信息应用于任何状态变量,包括单位长度四元数。引入∆χ可以将右手边近似为(一阶) b + ∂ b ∂ Δ χ ∣ x 0 Δ χ = b − H Δ χ \mathbf{b}+\left.\frac{\partial \mathbf{b}}{\partial \Delta \boldsymbol{\chi}}\right|_{\mathbf{x}_0} \Delta \boldsymbol{\chi}=\mathbf{b}-\mathbf{H} \Delta \boldsymbol{\chi} b+Δχb x0Δχ=bHΔχ现在我们可以将高斯-牛顿系统(17)表示为: [ b μ b λ 1 ] = [ b μ , 0 b λ 1 , 0 ] − [ H μ μ H μ λ 1 H λ 1 μ H λ 1 λ 1 ] [ Δ χ μ Δ χ λ ] . \left[\begin{array}{c} \mathbf{b}_\mu \\ \mathbf{b}_{\lambda_1} \end{array}\right]=\left[\begin{array}{c} \mathbf{b}_{\mu, 0} \\ \mathbf{b}_{\lambda_1, 0} \end{array}\right]-\left[\begin{array}{cc} \mathbf{H}_{\mu \mu} & \mathbf{H}_{\mu \lambda_1} \\ \mathbf{H}_{\lambda_1 \mu} & \mathbf{H}_{\lambda_1 \lambda_1} \end{array}\right]\left[\begin{array}{c} \Delta \boldsymbol{\chi}_\mu \\ \Delta \boldsymbol{\chi}_\lambda \end{array}\right] . [bμbλ1]=[bμ,0bλ1,0][HμμHλ1μHμλ1Hλ1λ1][ΔχμΔχλ].

在这种形式中,右侧(18)变成 b λ 1 ∗ = b λ 1 , 0 − H λ 1 μ T H μ μ − 1 b μ , 0 ⏟ b λ 1 , 0 ∗ − H λ 1 λ 1 ∗ Δ χ λ 1 . \mathbf{b}_{\lambda_1}^*=\underbrace{\mathbf{b}_{\lambda_1, 0}-\mathbf{H}_{\lambda_1 \mu}^T \mathbf{H}_{\mu \mu}^{-1} \mathbf{b}_{\mu, 0}}_{\mathbf{b}_{\lambda_1, 0}^*}-\mathbf{H}_{\lambda_1 \lambda_1}^* \Delta \chi_{\lambda_1} . bλ1=bλ1,0 bλ1,0Hλ1μTHμμ1bμ,0Hλ1λ1Δχλ1.
在边缘化节点包括无穷大(或足够接近无穷大)处的地标,或仅在一个相机中从单个姿势可见的地标的情况下,与这些地标相关联的Hessian块将(在数值上)等级不足。因此,我们采用了伪逆 H µµ + H^+_{µµ} Hµµ+,它为给定 δ χ λ δχ_λ δχλ δ χ µ δχ_µ δχµ提供了一个零分量到零空间方向的解

上述公式为边缘化的状态 x µ x_µ xµ和剩余状态 x λ x_λ xλ引入了一个固定的线性化点。这也将被用作涉及这些状态的术语的所有未来线性化的参考点。在应用(18)之后,我们可以去除消耗的非线性项,并将边缘化的 H λ 1 λ 1 ∗ , N \mathbf{H}_{\lambda_1 \lambda_1}^{*, N} Hλ1λ1,N b λ 1 ∗ , N \mathbf{b}_{\lambda_1}^{*, N} bλ1,N,作为求和项,以构建整个高斯-牛顿系统。对平方误差的贡献可以写成 χ λ 1 2 = b λ 1 ∗ T H λ 1 λ 1 ∗ + b λ 1 ∗ \chi_{\lambda_1}^2=\mathbf{b}_{\lambda_1}^{* T} \mathbf{H}_{\lambda_1 \lambda_1}^{*+} \mathbf{b}_{\lambda_1}^* χλ12=bλ1THλ1λ1∗+bλ1.

边缘化应用于基于关键帧的视觉惯性SLAM:

最初边缘化的误差项是由前N+1帧 x T k , k = 1 , … , N + 1 \mathbf{x}_{\mathrm{T}}^k, k=1, \ldots, N+1 xTk,k=1,,N+1构造的。分别具有如图6所示的速度和偏置状态。N个第一帧将全部解释为关键帧,边缘化步骤包括消除相应的速度和偏移状态。
在这里插入图片描述

当一个新的帧 x T c x^c_T xTc(当前帧,索引c)被插入到优化窗口中时,我们应用边缘化操作。在时间窗口 ( x T c − S ) (x^{ c−S}_ T) xTcS中最古老的帧不是关键帧的情况下,我们将放弃其所有路标点测量,然后将其与最古老的速度和偏移状态一起边缘化。图7说明了这个过程。丢弃路标测量是次优的;
在这里插入图片描述图7、具有N=3个关键帧和IMU/时间节点大小S=3的图形说明。一个规则的框架正在从时间窗口中滑出。

然而,为了快速求解,它保持了问题的稀疏性。具有关键帧的视觉SLAM成功地以类似的方式进行,丢弃具有路标测量值的整个帧。

( x T c − S ) (x^{ c−S}_ T) xTcS是关键帧的情况下,简单地放弃所有关键点测量的信息损失将更为显著:公共路标点观测中编码的最古老的两个关键帧之间的所有相对姿态信息都将丢失。因此,我们还将在 x T k 1 x^{k1}_T xTk1中可见但在最近的关键帧中不可见的地标边缘化。图8以图形方式描述了该过程。问题的稀疏性再次得到保留。
在这里插入图片描述

总结

本文提出了一种将惯性测量紧密集成到基于关键帧的视觉SLAM中的方法。非线性优化中误差项的组合是由可用于关键点检测和IMU读数的误差统计数据驱动的,从而取代了对任何调谐参数的需要。使用所提出的方法,我们使用IMU运动学运动模型获得了重力方向的全局一致性和鲁棒的异常点抑制。同时,获得了基于关键帧的非线性优化的所有优点,如保持静止的姿态。使用立体相机和IMU传感器获得的结果证明了所提出的框架的实时操作,同时比仅视觉或松耦合方法表现出更高的准确性和鲁棒性。

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

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

相关文章

【React Native】学习记录(二)——路由搭建和常见的开发技巧

模拟器设置成中文 在开发过程中发现,两个模拟器都不能输入中文,所以需要配置一下。 先说一下安卓,在弹出的输入框中查看设置,设置一下对应的languages即可: 在苹果模拟器中,跟苹果手机一样,打…

树莓派本地快速搭建web服务器,并发布公网访问

文章目录 树莓派本地快速搭建web服务器,并发布公网访问 树莓派本地快速搭建web服务器,并发布公网访问 随着科技的发展,电子工业也在不断进步,我们身边的电子设备也在朝着小型化和多功能化演进,以往体积庞大的电脑也在…

Selenium多浏览器处理

Python 版本 #导入依赖 import os from selenium import webdriverdef test_browser():#使用os模块的getenv方法来获取声明环境变量browserbrowser os.getenv("browser").lower()#判断browser的值if browser "headless":driver webdriver.PhantomJS()e…

为Android构建现代应用——应用架构

选择风格(Choosing a style) 我们将依照Google在《应用架构指南》中推荐的最佳实践和架构指南来构建OrderNow的架构。 这些定义包括通过各层定义组件的一些Clean Architecture原则。 层次的定义(Definition of the layers) 在应用程序中,我们将定义以下主要层次…

小程序创建

1,下载HBuilder X ;(3.8.7) HBuilderX-高效极客技巧 2,下载模板(不选云服务的); 3,运行-运行到小程序模拟器; 4,安装小程序开发工具; 5,选择稳定版-windows64版&…

SpringBoot 统⼀功能处理

目录 前言 1.⽤户登录权限效验 1.1、最初⽤户登录效验 1.2、Spring AOP ⽤户统⼀登录验证的问题 1.3、Spring 拦截器 了解 创建一个 Spring 拦截器 的流程 1、 创建自定义拦截器,实现 HandlerInterceptor 接⼝的preHandle(执⾏具体⽅法之前的预处理…

win10日程怎么同步到安卓手机?电脑日程同步到手机方法

在如今快节奏的生活中,高效地管理时间变得至关重要。而对于那些经常在电脑上安排日程的人来说,将这些重要的事务同步到手机上成为了一个迫切的需求。因为目前国内使用win10系统电脑、安卓手机的用户较多,所以越来越多的职场人士想要知道&…

Jenkins 安装构建

一、CentOS 安装 1. 使用该存储库 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key 2. 安装 Java yum install fontconfig java-11-openjdk配…

解决eclipse 打开报错 An error has occurred. See the log file null.

解决eclipse 打开报错an error has ocurred. See the log file null 出现原因:安装了高版本的jdk,更换 jdk 版本,版本太高了。 解决方案:更改环境变量 改成 jkd 1.8

【深度学习实践】垃圾检测

简介 本项目使用深度学习目标检测开源框架PaddleDetection中的yolox算法实现了垃圾检测,本文包含了从头训练yolox模型和直接使用训练好的模型进行推理的代码及相关权重。 一、数据集准备 本次训练的数据集为coco格式,共包含150张垃圾的照片&#xff0…

利用小波分解信号,再重构

function [ output_args ] example4_5( input_args ) %EXAMPLE4_5 Summary of this function goes here % Detailed explanation goes here clc; clear; load leleccum; s leleccum(1:3920); % 进行3层小波分解,小波基函数为db2 [c,l] wavedec(s,3,db2); %进行…

hcip——路由策略

要求: 基础配置 AR1 [R1]int g 0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24[R1-GigabitEthernet0/0/0]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip add 14.0.0.1 24[R1]int loop0 [R1-LoopBack0]ip add 1.1.1.1 24[R1]rip 1 [R1-rip-1]vers 2 [R1-rip-1]net…

Unity 性能优化五:渲染模块压力

CPU压力 Batching 在GPU渲染前,CPU会把数据按batch发送给GPU,每发送一次,都是一个drawcall,GPU在渲染每个batch的时候,会切换渲染状态,这里的渲染状态指的是:影响对象在屏幕上的外观的渲染属性…

深入学习java虚拟机||JVM内存结构五大模型

目录 程序计数器 栈 虚拟机栈 垃圾回收是否涉及栈内存? 栈内存分配越大越好吗? 方法内的局部变量是否线程安全? 栈内存溢出 本地方法栈 堆 方法区 先看内存图总览 程序计数器 定义:全称P r o g r a m C o u n t e r R e …

windows下配置vue开发环境

安装nodejs,配置npm 1.下载安装包:下载地址:https://nodejs.org/en/download 2.安装node:下载完成后进行安装,记住安装的文件夹。本人安装路径为 D:\Program Files\nodejs 3.配置环境变量: ①安装完成后…

基于传统检测算法hog+svm实现图像多分类

直接上效果图: 代码仓库和视频演示b站视频005期: 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示: 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…

某信用中心之加速乐实战分析

某信用中心之加速乐实战分析 某信用中心之加速乐实战分析声明逆向目标逆向分析第一层cookie获取第二层cookie获取调试分析JS文件 模拟执行致谢 某信用中心之加速乐实战分析 声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理&#x…

QTday2信号和槽

点击登录按钮,关闭Widget登录窗口,打开QQList窗口 widget.cpp #include "widget.h"void my_setupUI(Widget *w);Widget::Widget(QWidget *parent): QWidget(parent) {my_setupUI(this); }Widget::~Widget() { }void Widget::login_slots() {//fixemit jump_signal(…

CAN学习笔记1:计算机网络

计算机网络 1 概述 计算机网络就是把多种形式的计算机用通信线路连接起来,并使其能够互相进行交换的系统。实际上,计算机网络包括了计算机、各种硬件、各种软件、组成网络的体系结构、网络传输介质和网络通信计数。因此,计算机网络是计算机…

SpringCloudAlibaba之Ribbon

Ribbon是nacos自带的负载均衡器,属于客户端的负载均衡 但是在Spring高级版本中让LoadBalancer替代了 本人用的是2.1.0的nacos,ribbon还没有被替换。 使用: 在配置类中:LoadBalanced BeanLoadBalancedpublic RestTemplate restT…