论文笔记(五十六)VIPose: Real-time Visual-Inertial 6D Object Pose Tracking

VIPose: Real-time Visual-Inertial 6D Object Pose Tracking

  • 文章概括
  • 摘要
  • I. INTRODACTION
  • II. 相关工作
  • III. APPROACH
    • A. 姿态跟踪工作流程
    • B. VIPose网络

文章概括

引用:

@inproceedings{ge2021vipose,title={Vipose: Real-time visual-inertial 6d object pose tracking},author={Ge, Rundong and Loianno, Giuseppe},booktitle={2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},pages={4597--4603},year={2021},organization={IEEE}
}
Ge, R. and Loianno, G., 2021, September. Vipose: Real-time visual-inertial 6d object pose tracking. In 2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 4597-4603). IEEE.

原文:https://ieeexplore.ieee.org/abstract/document/9636283
代码、数据和视频:https


系列文章:
请在 《 《 文章 》 》 专栏中查找


摘要

估计物体的6D姿态对于运输、自动导航、操纵等机器人任务非常有益,同时在虚拟现实和增强现实等超越传统机器人的场景中也同样重要。相对于单张图片的姿态估计,姿态跟踪考虑了跨多个帧的时间信息,以克服可能的检测不一致并提高姿态估计的效率。在这项工作中,我们介绍了一种名为VIPose的新型深度神经网络(DNN),该网络结合惯性和摄像机数据来实时解决物体姿态跟踪问题。主要贡献是设计了一种新型的DNN架构,该架构融合视觉和惯性特征来预测连续图像帧之间物体的相对6D姿态。然后通过连续组合相对姿态来估计总体的6D姿态。我们的方法在处理由现有最先进解决方案难以处理的严重遮挡的物体时显示出了显著的姿态估计结果。所提出方法的有效性在一个新的数据集VIYCB上得到了验证,该数据集包括RGB图像、IMU数据和通过自动化标记技术创建的准确的6D姿态注释。这种方法展示了与最先进技术相当的准确性表现,但额外的好处是实时性。


I. INTRODACTION

从RGB图像序列跟踪物体的6D姿态(即,估计每一帧中物体相对于相机的3D平移和旋转),是各种机器人应用中的重要任务。这可以提高机器人在各种室外和室内环境中的导航性能,以解决复杂任务,如检查、制图和搜索救援。它还可以用于物体操纵任务的规划和抓取、空中电影摄影以跟踪移动目标,以及在虚拟现实(VR)和增强现实(AR)等超出机器人学的场景中使用。从单张RGB图像估计物体的6D姿态已经被广泛研究。传统方法通过图像和3D物体模型匹配物体的关键点[1]-[3]。最近基于深度学习的方法显著提高了姿态估计的准确性和鲁棒性[4]-[11]。一些单图像姿态估计方法是实时的(30 Hz),但准确性有限[5],[11]。此外,这些方法忽略了连续图像帧之间的时空信息,严格专注于单视图姿态估计。这可能导致连续帧之间的姿态估计不一致。

最近基于RGB的6D物体姿态跟踪方法取得了良好的跟踪性能[9],[12]。然而,这些方法对于严重遮挡不够鲁棒,这种情况需要每次重新初始化姿态跟踪过程。重新初始化通常由一个精确的6D姿态估计方法执行,这在计算上是昂贵的。因此,这些方法的速度相当有限,阻碍了它们在实时场景中的应用。为了克服上述缺点,我们提出了一种新的DNN架构,它结合了惯性测量单元(IMU)数据和相机图像。IMU在机器人领域已广泛用于定位和导航。最近的研究[13],[14]表明,可以通过训练有素的DNN处理IMU数据来预测速度,这可以用来解决相机定位问题。因此,IMU传感器可以提供关于相机运动的有用信息。在我们的案例中,我们利用这些信息实现在严重遮挡下也能准确的物体姿态跟踪。此外,对图像和IMU数据的联合学习过程导致了一种高效的表征,使得鲁棒的实时姿态跟踪成为可能。这项工作呈现了多个贡献。首先,我们提出了第一个融合相机和IMU数据的物体姿态跟踪方法,以应对复杂场景中包括物体遮挡的姿态跟踪挑战。其次,我们的方法通过利用IMU数据并通过传播和结合连续帧的相对姿态估计来加速姿态跟踪问题。最后,我们在收集的包括RGB图像和IMU数据的数据集上实验验证了我们的方法,这些数据通常在现有数据集中不可用。为了克服生成6D姿态注释的众所周知的困难任务,还引入了一种自动化标记技术来收集足够的训练和测试数据,从而显著减少了手工标记的努力。实验结果表明,提出的方法与现有最先进的解决方案相比取得了可比的结果,同时运行速度显著更快,达到了实时性能(即50.2 Hz)。论文的结构如下。第II部分,我们回顾了6D姿态估计和跟踪的相关工作,以及基于IMU数据的定位学习技术。第III部分介绍了提出的跟踪管道和VIPose网络。第IV部分展示了在我们的VIYCB数据集上的广泛实验结果。第V部分总结了工作并提出了未来的方向。


在这里插入图片描述图1:视觉-惯性6D物体姿态跟踪(顶部)。在我们的VIYCB数据集上进行速度-准确性基准测试,与现有最先进解决方案进行比较(底部)。



II. 相关工作

6D姿态估计: 传统上,单张图像中物体的6D姿态是通过模板匹配方法估计的,该方法将图像中的特征点与相应的3D模型特征点匹配。然后,可以通过使用PnP算法[1]解决这些局部特征的2D-3D对应关系来估计6D物体姿态。最近,基于深度学习的方法日益流行。SSD-6D[4]扩展了SSD物体检测器到6D姿态估计,增加了一个视点分类分支。[5]采用YOLO网络来检测图像中物体的3D包围框角点,并通过再次解决PnP问题来恢复6D姿态。PoseCNN[8]提出了一个端到端的框架,用于执行语义分割并预测3D旋转和平移。相反,DeepIM[9]采用FlowNetSimple网络[15]来通过迭代预测从渲染的前一姿态到当前图像观察的相对姿态,直到迭代姿态增量足够小。一般来说,将6D姿态估计方法应用于视频的每一帧来估计6D姿态,忽略了可能有用的时间信息,这些信息可以提高姿态估计过程的速度和准确性,而无需在每一帧都进行估计。

6D姿态跟踪: 我们的工作与最近在基于RGB的6D物体姿态跟踪方面的进展密切相关。PWP3D[16]提出通过优化物体3D模型的投影轮廓来跟踪物体姿态。[17]进一步改进了[16],采用一种新颖的优化方案和GPU并行化。然后[18]提出使用时间局部颜色直方图来改进姿态跟踪。最近,[19]采用深度神经网络预测连续帧之间的姿态差异。PoseRBPF[12]提出了一个Rao-Blackwellized粒子滤波方法来跟踪6D姿态,该方法将3D旋转和3D平移解耦,并考虑不确定性和物体对称性,达到了YCB视频数据集上的最佳性能。DeepIM[9]也可以扩展到通过预测连续两帧之间的相对变换来执行姿态跟踪。然而,这些方法对严重遮挡仍然不够鲁棒,丢失跟踪时需要重新初始化。[20]提出了一种新的网络,用于RGB-D数据上的6D姿态跟踪。它解耦了特征编码,以减少仿真和现实之间的领域差距,并且仅使用合成数据进行训练。这种方法在RGB-D数据上表现良好,而在我们的工作中,我们专注于更具挑战性的情况,即只有RGB图像可用,没有深度信息。

数据驱动的IMU定位: 传统上,IMU数据可以通过一些基于滤波的方法来进行定位。近年来,深度学习方法已经被应用于直接从IMU数据回归定位信息。VINet[21]提出了第一个端到端的视觉-惯性测距系统,它采用一个LSTM[22]网络来处理跨图像帧的IMU输入,以及一个FlowNet网络来处理图像对。视觉-惯性融合是通过连接IMU和视觉特征向量实现的。IONet[23]提出了一个LSTM网络来预测2D中的相对位移,并将预测结果连接起来,仅依赖于IMU输入来推断位置。RoNIN[13]将IMU数据旋转到与重力对齐的框架中,并使用1D ResNet网络预测一系列IMU数据的平均2D速度。TLIO[14]同样采用1D ResNet网络,但用于回归3D位移及其对应的不确定性,并采用紧耦合的扩展卡尔曼滤波框架进行状态估计。我们的工作与上述关于使用1D ResNet处理IMU数据的工作密切相关,但我们专注于物体姿态和跟踪问题,而不是相机定位。



III. APPROACH

姿态跟踪问题的目标是估计给定时刻 t t t t ∈ { 1 , 2 , … , N } t \in \{1, 2, \dots, N\} t{1,2,,N}相对于相机框架的物体的6D姿态 ξ t ∈ SE ( 3 ) \xi_t \in \text{SE}(3) ξtSE(3),给定:

  • 物体的3D CAD模型
  • 物体的初始姿态 ξ 0 ∈ SE ( 3 ) \xi_0 \in \text{SE}(3) ξ0SE(3),可以通过任何6D姿态估计方法获得
  • 一系列RGB图像 I j I_j Ij j ∈ { 0 , 1 , … , N } j \in \{0, 1, \dots, N\} j{0,1,,N}
  • 一系列IMU数据 G k G_k Gk k ∈ { 0 , 1 , … , M } k \in \{0, 1, \dots, M\} k{0,1,,M},其中 G k G_k Gk是一个包含在IMU框架的三个笛卡尔轴上的加速度和角速度测量的6维向量

在本节中,我们首先提供姿态跟踪工作流的概述,包括在使用VIPose DNN之前对原始图像和IMU输入进行预处理的阶段。随后我们描述我们的新型VIPose DNN,它通过结合两个连续的图像和一系列IMU数据来推断连续帧之间的相对姿态。然后通过组合连续帧之间的相对变换来获得最终的物体姿态。

A. 姿态跟踪工作流程

我们流水线在时间 t t t的姿态工作流程如图2所示。相机提供图像观察 I t I_t It,IMU提供加速度和角速度。图像预处理包括三个主要步骤:渲染、裁剪和调整大小,随后是IMU的预处理步骤。


在这里插入图片描述图2:姿态跟踪工作流程。在时间 t t t,相机提供图像观察 I t I_t It。使用物体的3D模型和上一次的姿态估计 ξ t − 1 \xi_{t-1} ξt1来渲染 I t − 1 R I^R_{t-1} It1R I t I_t It I t − 1 R I^R_{t-1} It1R都通过一个放大的边界框(如图3所示)进行裁剪,并调整为原始分辨率的一半大小。IMU缓冲区提供最近的 K K K个IMU测量数据。预处理后的图像对和IMU序列被送入VIPose网络,以预测相对姿态 Δ ξ t \Delta\xi_t Δξt,该相对姿态与 ξ t − 1 \xi_{t-1} ξt1结合,得到该帧的物体姿态估计 ξ t \xi_t ξt


1)渲染:首先,我们使用物体的3D模型和上一帧的估计6D姿态 ξ t − 1 \xi_{t-1} ξt1来渲染RGB图像 I t − 1 R I^R_{t-1} It1R作为最后一帧的参考图像,以提供要跟踪的目标物体。渲染过程从杂乱的场景中提取物体信息。这是通过将物体的3D模型放置在带有黑色背景的场景中心,并在由姿态 ξ t − 1 \xi_{t-1} ξt1定义的视点处投射RGB图像来执行的,如图3所示。

2)裁剪:由于原始图像中物体大小较小,提取用于跨帧匹配的有用特征可能很困难。受[9]启发,我们通过使用一个放大的边界框(白框),如图3所示,来裁剪渲染图像 I t − 1 R I^R_{t-1} It1R和图像观察 I t I_t It来解决这个问题。为了获得这样的边界框,我们首先使用相应3D物体模型的8个角点的2D投影 p i p_i pi i ∈ { 1 , 2 , … , 8 } i \in \{1, 2, \dots, 8\} i{1,2,,8}(如图3中的黄色点所示)来估计渲染图像中物体的大小,
x size = max ⁡ i ( p i x ) − min ⁡ i ( p i x ) {x}_\text{size} = \max_i(p_{i_x}) - \min_i(p_{i_x}) xsize=imax(pix)imin(pix)
y size = max ⁡ i ( p i y ) − min ⁡ i ( p i y ) {y}_\text{size} = \max_i(p_{i_y}) - \min_i(p_{i_y}) ysize=imax(piy)imin(piy)

放大的边界框以3D模型中心的2D投影为中心(在图3中用绿点表示),并保持输入图像的相同宽高比。放大边界框的高度 h h h和宽度 w w w按照以下公式获得:
h = λ ⋅ max ⁡ ( x size r y size ) , h = \lambda \cdot \max\left(\frac{{x}_\text{size}}{r}{y}_\text{size}\right), h=λmax(rxsizeysize),
w = λ ⋅ max ⁡ ( x size , y size ⋅ r ) w = \lambda \cdot \max({x}_\text{size}, {y}_\text{size}\cdot r) w=λmax(xsize,ysizer)
其中 r r r是原始图像的宽高比, λ \lambda λ表示扩展比例,以确保边界框在渲染图像和新图像中都包含物体。


在这里插入图片描述图3:渲染和裁剪的可视化。物体使用3D模型和估计的6D姿态进行渲染。3D模型中心和8个角点的2D投影分别用绿点和黄点表示。红框定义了渲染物体的尺寸 x size {x}_\text{size} xsize y size {y}_\text{size} ysize。白框代表放大的边界框,以绿点为中心,宽度为 w w w,高度为 h h h


3)调整大小:随后,我们调整裁剪后的图像对的大小以获取更多细节。裁剪后的图像对被调整为固定分辨率,这是原始图像大小的一半,以减少网络中的计算量。在训练阶段,这允许使用更大的批次大小以加快训练过程的收敛。在测试阶段,这显著减少了系统的运行时间,而不影响准确性。调整大小后的图像对被用作网络的视觉输入。

4)IMU预处理:在图像对预处理之后,我们还预处理IMU数据作为网络的惯性输入。设计了一个IMU缓冲区,作为一个队列,存储最近的 K K K个IMU测量数据。 K K K的选择可以根据IMU输入的频率和不同应用中相机的速度而变化。当新的图像观察到达时,IMU缓冲区中的全部数据被用作网络的输入,并以 K × 6 K \times 6 K×6的张量表示。根据类似[13]的方法,IMU序列从IMU框架旋转到一个朝向不明的坐标框架,使用来自设备的真实方向。朝向不明的坐标框架被定义为一个其Z轴与重力对齐并在整个序列中保持一致的坐标框架。

预处理后的图像对和IMU序列被输入VIPose网络,以预测图像 I t − 1 R I^R_{t-1} It1R I t I_t It之间的相对物体姿态 Δ ξ t ∈ SE ( 3 ) \Delta \xi_t \in \text{SE}(3) ΔξtSE(3)。然后,当前图像中的物体的6D姿态 ξ t \xi_t ξt可以通过 ξ t = Δ ξ t ⊗ ξ t − 1 \xi_t = \Delta \xi_t \otimes \xi_{t-1} ξt=Δξtξt1得到,其中 ⊗ \otimes 表示矩阵乘法操作。跟踪过程持续进行,直到获得最后一张图像的6D姿态。

一般来说,在时间 t t t,使用渲染图像 I t − 1 R I^R_{t-1} It1R而不是图像观察 I t − 1 I_{t-1} It1作为上一帧的参考图像进行姿态跟踪是有帮助的。为了进一步阐明这一点,如果估计的物体姿态 ξ t − 1 \xi_{t-1} ξt1不准确,那么物体姿态 ξ t − 1 \xi_{t-1} ξt1与图像 I t − 1 I_{t-1} It1中的相应物体观察之间会有不匹配,因为姿态 ξ t − 1 \xi_{t-1} ξt1受到估计漂移的影响。相反,渲染图像 I t − 1 R I^R_{t-1} It1R是使用估计的物体姿态 ξ t − 1 \xi_{t-1} ξt1生成的全新图像,它不受上述观察问题的影响。因此,估计 I t − 1 R I^R_{t-1} It1R I t I_t It之间的相对姿态对姿态漂移不敏感,有助于减少全局物体姿态估计的漂移。

B. VIPose网络

所提出的网络架构如图4所示。该网络由一个视觉分支组成,输入处理后的图像对 I t − 1 R I^R_{t-1} It1R I t I_t It,一个惯性分支从IMU序列中提取特征,以及一个输出分支预测相对姿态 Δ ξ t \Delta \xi_t Δξt


在这里插入图片描述图4:VIPose网络架构。蓝色块代表基于FlowNetC的视觉分支,用于产生视觉特征。绿色块代表基于1D ResNet的惯性分支,用于产生惯性特征。视觉和惯性特征通过连接两个特征向量融合,为相对姿态估计提供多模态特征。橙色块代表输出分支,直接回归两个连续帧之间的相对姿态。


视觉分支(图4中的蓝色块),基于FlowNet-C网络[15]从输入图像对中提取视觉特征,并且我们只采用原始FlowNet-C网络的卷积层。该网络预训练以预测一对图像之间的光流。光流的表示被认为对相对姿态估计有用,这在[9]中得到了证明。前三个卷积层分别从两个输入图像中提取低级特征,并为负责计算块间相似性的相关层生成两个特征图,因此找到图像对之间的对应关系。然后,最后六个卷积层提取高级特征并减小特征图的大小。最后一个卷积层的特征图输出被平展为视觉特征向量,以便后续特征融合。

惯性分支(图4中的绿色块)采用标准ResNet-18网络[24]的1D版本,并以IMU序列为输入,即先前指定的来自IMU缓冲区的 K × 6 K \times 6 K×6张量。受[13]的启发,我们采用了一个预训练的1D ResNet,用于预测给定IMU输入序列的平均2D速度。与其他网络架构(包括LSTM [22]和时间卷积网络[25])相比,这种方法表现出更好的性能。惯性分支使用[13]中的预训练权重初始化。同样,最后一个1D卷积层的输出被平展为惯性特征向量。

视觉特征和惯性特征通过连接两个特征向量融合,提供了一个多模态特征用于回归相对变换。当目标物体的视觉信息有限,如在严重遮挡情况下,惯性特征提供了有关相机运动的有用信息,用于推断相对姿态。

输出分支(图4中的橙色块)是一个多层感知机,它以融合的特征向量为输入,并输出两帧之间的相对姿态。它包含两个具有256维的全连接层,后面跟着两个分别用于预测旋转和平移的单独全连接层。相对姿态的表示对网络的性能至关重要。我们采用[20]中的 s e ( 3 ) se(3) se(3)表示,其中 v = [ t , w ] T ∈ s e ( 3 ) \text{v} = [\text{t}, \text{w}]^\text{T} \in se(3) v=[t,w]Tse(3),使得其伪指数映射位于 S E ( 3 ) SE(3) SE(3)中,

Δ ξ = pseudo-exp ( v ) = [ R t 0 T 1 ] ∈ S E ( 3 ) , (1) \Delta \xi = \text{pseudo-exp}(v) = \begin{bmatrix} \text{R} & \text{t} \\ 0^\text{T} & 1 \end{bmatrix} \in SE(3), \tag{1} Δξ=pseudo-exp(v)=[R0Tt1]SE(3),(1)
其中
R = I 3 × 3 + [ w ] × ∣ w ∣ sin ⁡ ( ∣ w ∣ ) + [ w ] × 2 ∣ w ∣ 2 ( 1 − cos ⁡ ( ∣ w ∣ ) ) , \text{R} = \text{I}_{3 \times 3} + \frac{[\text{w}]_\times}{|\text{w}|} \sin(|\text{w}|) + \frac{[\text{w}]_\times^2}{|\text{w}|^2} (1 - \cos(|\text{w}|)), R=I3×3+w[w]×sin(w)+w2[w]×2(1cos(w)),

并且 [ w ] × [\text{w}]_\times [w]×是斜对称矩阵。最后两个输出层用于直接回归 w \text{w} w t \text{t} t,然后使用该预测来计算相对姿态 Δ ξ \Delta \xi Δξ。网络采用端到端训练,考虑以下 L 2 L_2 L2损失

L = λ 1 ⋅ ∣ ∣ w − w g t ∣ ∣ 2 + λ 2 ⋅ ∣ ∣ t − t g t ∣ ∣ 2 , (2) \mathcal{L} = \lambda_1 \cdot ||\text{w} - \text{w}_{gt}||_2 + \lambda_2 \cdot ||\text{t} - \text{t}_{gt}||_2, \tag{2} L=λ1∣∣wwgt2+λ2∣∣ttgt2,(2)

其中 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2是旋转和平移的损失权重, w g t , t g t w_{gt}, t_{gt} wgt,tgt表示真实的相对姿态。

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

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

相关文章

K8S containerd拉取harbor镜像

前言 接前面的环境 K8S 1.24以后开始启用docker作为CRI,这里用containerd拉取 参考文档 正文 vim /etc/containerd/config.toml #修改内容如下 #sandbox_image "registry.aliyuncs.com/google_containers/pause:3.10" systemd_cgroup true [plugins.…

LM2 : A Simple Society of Language Models Solves Complex Reasoning

文章目录 题目摘要简介相关工作方法论实验结果结论局限性 题目 LM2:简单的语言模型社会解决复杂推理问题 论文地址:https://aclanthology.org/2024.emnlp-main.920/ 项目地址: https://github.com/LCS2-IIITD/Language_Model_Multiplex 摘要…

STM32从上电开始启动过程详解(上电->分散加载->main函数)

1.硬件复位之后,CPU 内的时序逻辑电路首先完成如下两个工作( 程序代码下载到内部 flash 为例,flash首地址 0x0800 0000)  将 0x08000000 位置存放的堆栈栈顶地址存放到 SP 中(MSP)。  将 0x08000004 位置存放的向量地址装入 P…

新版Apache tomcat服务安装 Mac+Window双环境(笔记)

简介:Tomcat服务器器的下载和安装: 安装前提 1)电脑需要有java环境,jdk8以上,否则启动不不成功 2)已经安装Sublime⽂文件编辑软件 3)window电脑需要显示⽂文件拓拓展名 官网(https:…

数据重塑:长宽数据转换【基于tidyr】

在数据分析和可视化过程中,数据的组织形式直接影响着我们能够进行的分析类型和可视化效果。这里简单介绍两种常见的数据格式:长格式(Long Format)和宽格式(Wide Format),以及如何使用tidyr包进行…

ollama+springboot ai+vue+elementUI整合

1. 下载安装ollama (1) 官网下载地址:https://github.com/ollama/ollama 这里以window版本为主,下载链接为:https://ollama.com/download/OllamaSetup.exe。 安装完毕后,桌面小图标有一个小图标,表示已安装成功&…

基于lighthouse搭建私有网盘Cloudreve【开源应用实践】

基于lighthouse搭建私有网盘Cloudreve【超高性价比】 今天给大家分享一款私人网盘神器,既能存放你的文件文档,也能替你保存那不可告人的秘密~ 香菇今天将手把手教给大家如何在腾讯云轻量应用服务器上搭建个人专属网盘 1. 既爱又恨的网盘存储 很多小伙伴…

JavaScript高级篇 - 浏览器事件详解 DOM事件以及独立封装事件Util和Ajax封装

Dom事件 Model(特定领域对象的抽象)、Protocal(针对数据格式的约定) DOM(Document Object Model,文档对象模型)是针对HTML文档和XML文档的一个API。DOM描绘了一个层次化的节点树,允许开发人员添加、移出和…

MinIO 的 S3 over RDMA 计划: 为高速人工智能数据基础设施设定对象存储新标准

随着 AI 和机器学习的需求不断加速,数据中心网络正在迅速发展以跟上步伐。对于许多企业来说,400GbE 甚至 800GbE 正在成为标准选择,因为数据密集型和时间敏感型 AI 工作负载需要高速、低延迟的数据传输。用于大型语言处理、实时分析和计算机视…

git config是做什么的?

git config是做什么的? git config作用配置级别三种配置级别的介绍及使用,配置文件说明 使用说明git confi查看参数 默认/不使用这个参数 情况下 Git 使用哪个配置等级? 一些常见的行为查看配置信息设置配置信息删除配置信息 一些常用的配置信…

使用 npm 安装 Yarn

PS E:\WeChat Files\wxid_fipwhzebc1yh22\FileStorage\File\2024-11\spid-admin\spid-admin> yarn install yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后…

常用在汽车PKE无钥匙进入系统的高度集成SOC芯片:CSM2433

CSM2433是一款集成2.4GHz频段发射器、125KHz接收器和8位RISC(精简指令集)MCU的SOC芯片,用在汽车PKE无钥匙进入系统里。 什么是汽车PKE无钥匙进入系统? 无钥匙进入系统具有无钥匙进入并且启动的功能,英文名称是PKE&…

机器学习基础05

目录 1.随机森林 1.1随机森林的介绍 1.2算法原理 1.3API 2.线性回归 2.1回归的含义 2.2线性回归 2.3损失函数 2.4多参数回归 2.5最小二乘法MSE 2.6API 1.随机森林 集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。 集成…

数据库范式、MySQL 架构、算法与树的深入解析

一、数据库范式 在数据库设计中,范式是一系列规则,用于确保数据的组织和存储具有良好的结构、完整性以及最小化的数据冗余。如果不遵循范式设计,数据可能会以平铺式罗列,仅使用冒号、分号等简单分隔。这种方式存在诸多弊端&#…

SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间

SQL面试题——奔驰SQL面试题 我们的表大致如下 CREATE TABLE signal_log( vin STRING COMMENTvehicle frame id, signal_name STRING COMMENTfunction name, signal_value STRING COMMENT signal value , ts BIGINT COMMENTevent timestamp, dt STRING COMMENTformat yyyy-mm…

Hadoop生态圈框架部署(六)- HBase完全分布式部署

文章目录 前言一、Hbase完全分布式部署(手动部署)1. 下载Hbase2. 上传安装包3. 解压HBase安装包4. 配置HBase配置文件4.1 修改hbase-env.sh配置文件4.2 修改hbase-site.xml配置文件4.3 修改regionservers配置文件4.4 删除hbase中slf4j-reload4j-1.7.33.j…

YOLOv11改进,YOLOv11添加GnConv递归门控卷积,二次创新C3k2结构

摘要 视觉 Transformer 在多种任务中取得了显著的成功,这得益于基于点积自注意力的新空间建模机制。视觉 Transformer 中的关键因素——即输入自适应、长距离和高阶空间交互——也可以通过卷积框架高效实现。作者提出了递归门控卷积(Recursive Gated Convolution,简称 gnCo…

Queuing 表(buffer表)的优化实践 | OceanBase 性能优化实践

案例问题描述 该案例来自一个金融行业客户的问题:他们发现某个应用对一个数据量相对较小的表(仅包含数千条记录)访问时,频繁遇到性能下降的情况。为解决此问题,客户向我们求助进行分析。我们发现这张表有频繁的批量插…

CentOS 8 安装 chronyd 服务

操作场景 目前原生 CentOS 8 不支持安装 ntp 服务,因此会发生时间不准的问题,需使用 chronyd 来调整时间服务。CentOS 8以及 TencentOS 3.1及以上版本的实例都使用 chronyd 服务实现时钟同步。本文介绍了如何在 CentOS 8 操作系统的腾讯云服务器上安装并…

AI大模型(二):AI编程实践

一、软件安装 1. 安装 Visual Studio Code VSCode官方下载:Visual Studio Code - Code Editing. Redefined 根据自己的电脑系统选择相应的版本下载 安装完成! 2. 安装Tongyi Lingma 打开VSCode,点击左侧菜单栏【extensions】,…