【论文解读】CP-SLAM: Collaborative Neural Point-based SLAM System_神经点云协同SLAM系统(上)

news2024/11/24 4:30:42

目录

1 Abstract

 2 Related Work

2.1 单一智能体视觉SLAM(Single-agent Visual SLAM)

2.2 协同视觉SLAM(Collaborative Visual SLAM)

2.3 神经隐式表示(Neural Implicit Representation)

3 Method

3.1 神经点云里程计(Neural Point based Odometry )

3.2 循环检测和子图对齐 (Loop Detection and Sub-Map Alignment)

 3.3 分布式到集中式学习(Distributed-to-Centralized Learning)

3.4 位姿图优化和全局地图细化(Pose Graph Optimization and Global Map Refinement) 

4 实验

5 结论


论文:CP-SLAM: Collaborative Neural Point-based SLAM System | OpenReview

Thirty-seventh Conference on Neural Information Processing Systems

代码: 尚未公布

aaa0559fff0b404cbfc8f307ec3aa905.png

1 Abstract

        这篇论文介绍了一种基于协同隐式神经网络同步定位与地图构建(SLAM)系统,输为入RGB-D图像序列,系统包括完整的前端和后端模块,包括里程计、循环检测、子地图融合和全局优化。

        为了在一个统一的框架中实现所有这些模块,文章提出了一种新颖的基于神经网络的三维场景表示方法,其中每个点维护一个可学习的神经特征用于场景编码,并与特定的关键帧相关联。

        此外,我们提出了一种分布式到集中式的学习策略,用于协同隐式SLAM,以提高一致性和合作。 还提出了一种新颖的全局优化框架,类似于传统的捆绑调整,以提高系统的准确性。

        在各种数据集上的实验证明了所提方法在相机跟踪和地图构建方面的优越性。

 2 Related Work

2.1 单一智能体视觉SLAM(Single-agent Visual SLAM

        随着无人智能的发展,视觉SLAM在过去几十年中成为一个活跃的领域。Klein等人提出了一个视觉SLAM框架[15],将跟踪和地图制作分为不同的线程。这个框架被大多数当前方法所采用。      

       传统的单一智能体视觉SLAM使用过滤或非线性优化来估计摄像机的姿态。

       基于过滤的方法[27, 3, 23]更具实时性,但全局一致性较差。相比之下,基于优化的方法[28, 29, 31, 4, 8, 19]可以充分利用过去的信息。同时,多源信息被广泛整合到SLAM系统中,以改善特定模块,例如轻量级深度估计[48, 42]。

2.2 协同视觉SLAM(Collaborative Visual SLAM

        协同SLAM可以分为两类:集中式和分布式。

        CVI-SLAM[14]是一个集中式视觉惯性框架,可以在中央服务器上共享所有信息,每个代理外包计算密集型任务。

        在集中式SLAM中,服务器管理所有子地图,执行地图融合和全局捆绑调整,并将处理后的信息反馈给每个代理。这个流程在CCM-SLAM[33]中得以重现,其中每个代理配备一个简单的视觉测距,并将定位和三维点云发送到中央服务器。

        在分布式系统方面,Lajoie等人开发了一个完全分布式的SLAM[18],它基于点对点通信,可以拒绝异常值以提高鲁棒性。NetVLAD[1]在[18]中用于检测环路闭合。此外,[10]提出了专门用于多智能体系统的紧凑二进制描述符。

        与传统的协同系统相比,我们的系统可以使用更少的神经点执行密集映射。

2.3 神经隐式表示(Neural Implicit Representation

        神经隐式场在许多计算机视觉任务中表现出色,如新视角合成[24, 25, 38, 2]、场景完成[5, 11, 30]和对象建模[6, 22, 40, 45, 46]。

        在最近的研究中,一些工作[47, 41]试图从建立的神经隐式场中反向推断相机外部参数。受到神经场不同表示方式的启发,包括体素网格[21]和点云[43],NICE-SLAM[50]和Vox-Fusion[44]选择使用体素网格进行跟踪和制图,而不是使用受表达能力和遗忘问题限制的单一神经网络。它们都是与我们最相关的工作。

        此外,vMAP[16]可以在缺乏3D先验条件下有效地建模密封的对象模型。ESLAM[13]通过三面和截断有符号距离场(TSDF)来解决RGB-D SLAM。除了纯神经网络方法外,一些混合系统,如NeRF-SLAM[32]和Orbeez-SLAM[7],构建了神经地图,但使用传统方法来估计姿态。

3 Method

 

        我们的协同SLAM系统概述下图所示。给定一组RGB-D序列,系统基于每个代理的神经点云表示,逐步进行跟踪和地图制作。

        我们整合了一个基于学习的循环检测模块,该模块提取2D帧的唯一描述符,并通过高质量的循环约束拼接子地图。

        我们设计了一个两阶段(分布式到集中式)的MLP训练策略,以提高一致性并加强协作。

        为了减少制图和跟踪中的累积误差,我们利用子地图之间的共可见性进行全局位姿图优化作为后端处理,然后进行基于帧的地图精炼。

aaa0559fff0b404cbfc8f307ec3aa905.png

 

        图1:系统概览。我们的系统以单个或多个RGB-D流作为输入,执行如下的跟踪和地图制作。

        从左到右,我们在神经点场中进行可微分的射线体积渲染,以预测深度和颜色。为了获取沿射线的样本点的特征嵌入,我们在半径为r的球内插值邻居特征。

        MLPs将这些特征嵌入解码为用于体素渲染的有意义的密度和辐射度。通过计算渲染差异损失,可以优化相机运动和神经场。

        在跟踪和地图制作过程中,单一代理不断地将由NetVLAD编码的关键帧描述符发送到描述符池。中央服务器将融合子地图,并根据匹配对执行全局位姿图优化(PGO)以加深协作。

        最后,我们的系统以关键帧为中心进行地图精炼,结束整个工作流程。

3.1 神经点云里程计(Neural Point based Odometry )

        我们的系统从一个前端视觉测距模块开始,其中我们结合了位姿反传递更新和基于点的神经场,以执行顺序跟踪和制图。

        基于点的神经场。我们将图像分为4 × 4的块,并逐步投影每个块的中心像素到其对应的3D位置eq?p%20%5Cin%20%5Cmathbb%7BR%7D%5E3。为了获取锚定在 eq?p 上的特征嵌入eq?f%20%5Cin%20%5Cmathbb%7BR%7D%5E%7B32%7D ,将2D图像输入到一个未经训练的单层卷积神经网络。我们定义我们的神经点云为: 

eq?P%20%3D%20%5C%7Bp_j%2C%20f_j%20%5Cmid%20j%20%3D%201%2C%20%5Cldots%5C%7D%20%5Cquad%20%281%29

        体素渲染。我们模拟 NeRF [26] 中的可微分体素渲染策略,其中辐射度和占用度沿着射线积分,以渲染颜色和深度图。给定一个 6DoF 姿势 eq?%5C%7BR_c%2C%20O_c%5C%7D和一帧的内参,我们可以从随机选择的像素发射射线并采样eq?N_%7Btotal%7D 点。任意采样点被定义为:

eq?x_i%20%3D%20O_c%20+%20t_i%20%5Ccdot%20d%20%5Cquad%20i%20%5Cin%201%20%5Cldots%20N_%7B%5Ctext%7Btotal%7D%7D%20%5Cquad%20%282%29

其中eq?t_i%20%5Cin%20%5Cmathbb%7BR%7D 是点的深度,eq?d%20%5Cin%20%5Cmathbb%7BR%7D%5E3是单位射线方向。

        在深度信息的指导下,我们可以在真实表面附近分布我们的样本。具体而言,我们在每条射线上采样eq?N_%7B%5Ctext%7Btotal%7D%7D%20%3D%20N_%7B%5Ctext%7Bnear%7D%7D%20+%20N_%7B%5Ctext%7Buni%7D%7D个点。

        对于具有有效深度 D的任何像素,eq?t_i在间隔eq?%5B0.95D%2C%201.05D%5Deq?%5B0.95D_%7B%5Ctext%7Bmin%7D%7D%2C%201.05D_%7B%5Ctext%7Bmax%7D%7D%5D内均匀采样,分别生成eq?N_%7B%5Ctext%7Bnear%7D%7Deq?N_%7B%5Ctext%7Buni%7D%7D个样本点,其中eq?D_%7B%5Ctext%7Bmin%7D%7D 和 eq?D_%7B%5Ctext%7Bmax%7D%7D是当前深度图的最小和最大深度值。对于没有有效深度值的任何像素,eq?t_i在间隔 eq?%5BD_l%2C%201.05D_%7B%5Ctext%7Bmax%7D%7D%5D内均匀采样,生成 eq?N_%7B%5Ctext%7Btotal%7D%7D​ 个点。对于每个点eq?x_i​,我们首先在查询半径 r内查询 K 个邻居eq?%5C%7Bp_k%20%5Cmid%20k%20%3D%201%2C%20%5Cldots%2C%20K%5C%7D,然后使用一个 MLP eq?C将原始邻居特征eq?f_k转换为eq?f_%7Bk%2C%20x_i%7D,其中包含相对距离信息,即

eq?f_%7Bk%2Cxi%7D%20%3D%20C%28f_k%2C%20x_i%20-%20p_k%29%20%5Cquad%20%283%29

 

然后,一个辐射度 MLP eq?U使用插值特征eq?f_%7Bxi%7D​ 解码位置 eq?x_i​ 处的 RGB 辐射度 eq?c,该特征是根据反向距离权重和邻域特征进行加权插值得到的:

eq?f_%7Bx_i%7D%20%3D%20%5Csum%5Climits_%7Bk%7D%5Cfrac%7Bw_k%7D%7B%5Csum%20w_k%7D%7Bf_%7Bk%2Cx_i%7D%7Deq?w_k%20%3D%20%5Cfrac%7B1%7D%7B%5C%7Cp_k%20-%20x_i%5C%7C%7D%20%5Cquad%20%284%29

eq?c%20%3D%20U%28f_%7Bxi%7D%29%20%5Cquad%20%285%29

        如果在 eq?x_i处找不到邻居,那么eq?x_i处的占用度eq?%5Csigma 被设为零。否则,我们使用位于eq?x_i处的占用度 MLP eq?G 进行回归。我们采用类似于辐射度的基于反向距离的加权插值,但这里是在占用度水平进行插值。我们解码每个邻居的 eq?%5Csigma_i并最终进行插值:

eq?%5Csigma_k%20%3D%20G%28f_%7Bk%2Cxi%7D%29%20%5Cquad%20%286%29

eq?%5Csigma%20%3D%20%5Csum%5Climits_%7Bk%7D%20%5Cfrac%20%7Bw_k%7D%20%7B%5Csum_k%20w_k%7D%20%7B%5Csigma_k%7D%20%5Cquad%20%287%29

接下来,我们使用从 MLP 中回归得到的eq?c_%7Bx_i%7D​、eq?%5Csigma_%7Bx_i%7D​ 来估计每个点的权重eq?%5Calpha_%7Bx_i%7D​。eq?%5Calpha_%7Bx_i%7D 被视为eq?x_i处的不透明度,或者说射线在该点终止的概率,eq?z_%7Bx_i%7D是点eq?x_i 的深度。

通过沿着射线计算深度和辐射度期望值,可以渲染深度图和颜色图,如下所示:

eq?%5Chat%7BD%7D%20%3D%20%5Csum%5Climits_%7Bi%3D1%7D%5E%7BN_%7B%5Ctext%7Btotal%7D%7D%7D%20%5Calpha_%7Bxi%7D%20z_%7Bxi%7D%20%5Cquad%2C%20%5Chat%7BI%7D%20%3D%20%5Csum%5Climits_%7Bi%3D1%7D%5E%7BN_%7B%5Ctext%7Btotal%7D%7D%7D%20%5Calpha_%7Bxi%7D%20c_%7Bxi%7D%20%5Cquad%20%288%29

        映射和跟踪。我们在映射过程中使用如下所述的渲染差异损失(Eq. 9),其中包含了几何损失和在映射过程中的光度损失。对于新来的帧,我们采样 M1 个像素来优化点锚定特征eq?f_i​ 以及 MLP eq?C%2C%20U%2C%20G的参数。对于第一帧,我们需要以较高的代价对 M3 个像素进行良好的初始化,并进行约 3000∼5000 步的优化以确保后续处理的平滑进行。对于后续的映射,我们从当前帧和 5 个共视的关键帧中均匀选择像素。我们发现联合映射可以有效稳定跟踪过程。

映射损失(Lmapping)如下:

eq?%5Cmathcal%7BL%7D_%7B%5Ctext%7Bmapping%7D%7D%20%3D%20%5Cfrac%7B1%7D%7BM1%7D%20%5Csum%5Climits_%7Bm%3D1%7D%5E%7BM1%7D%20%5Cleft%7CD_m%20-%20%5Chat%7BD%7D_m%5Cright%7C%20+%20%5Clambda_1%20%5Cleft%7CI_m%20-%20%5Chat%7BI%7D_m%5Cright%7C%20%5Cquad%20%289%29

其中,eq?D_meq?I_m 表示地面真实深度和颜色图,eq?%5Chat%7BD%7D_m​、eq?%5Chat%7BI%7D_m 分别是对应的渲染结果,eq?%5Clambda_1是损失平衡权重。在跟踪过程中,我们通过反向传播进一步优化相机外参eq?%5C%7Bq%2C%20t%5C%7D,同时保持特征和 MLP 不变,其中 eq?q是四元数旋转,eq?t是平移向量。我们在新来的帧上采样 M2 个像素,并假设零运动模型,其中新帧的初始姿势与上一帧相同。考虑到颜色图的强烈非凸性,跟踪损失仅包含几何部分:

eq?%5Cmathcal%7BL%7D_%7B%5Ctext%7Btracking%7D%7D%20%3D%20%5Cfrac%7B1%7D%7BM2%7D%20%5Csum%5Climits_%7Bm%3D1%7D%5E%7BM2%7D%20%5Cleft%7CD_m%20-%20%5Chat%7BD%7D_m%5Cright%7C%20%5Cquad%20%2810%29

3.2 循环检测和子图对齐 (Loop Detection and Sub-Map Alignment)

 

        为了对齐子图并减小累积的位姿漂移,我们执行循环检测并计算不同子图之间的相对位姿。对于子图中的每个关键帧,我们将其与由预训练的NetVLAD [1]模型生成的描述符相关联。

        我们使用描述符之间的余弦相似度作为循环检测的判断标准。

        当摄像机在帧之间移动太多时,位姿优化容易陷入局部最优解,因此我们使用两个相似性阈值 eq?%5Clambda_%7B%5Ctext%7Bfine%7D%7Deq?%5Clambda_%7B%5Ctext%7Bcoarse%7D%7D来找到具有足够重叠并确保正确的循环相对位姿的匹配对。给定两个子图 M1 和 M2,我们找到具有最大重叠的循环帧集合eq?%5C%7BI%5E%7Bl1%7D%2C%20I%5E%7Bl2%7D%5C%7D,其相似度大于eq?%5Clambda_%7B%5Ctext%7Bfine%7D%7D,并且找到小重叠的循环帧集合eq?%7B%28I_1%5E%7Bs1%7D%2CI_2%5E%7Bs2%7D%29%2C%20...%2C%28I_n%5E%7Bs1%7D%2CI_n%5E%7Bs2%7D%29%7D,其相似度大于 eq?%5Clambda_%7B%5Ctext%7Bcoarse%7D%7D 但小于 eq?%5Clambda_%7B%5Ctext%7Bfine%7D%7D。对于eq?%5C%7BI%5E%7Bl1%7D%2C%20I%5E%7Bl2%7D%5C%7D 这样的匹配对,我们将eq?I%5E%7Bl1%7D的位姿视为初始位姿,将eq?I%5E%7Bl2%7D视为参考帧。可以使用第3.1节描述的跟踪方法获取 {M1, M2} 之间的相对位姿测量。我们可以使用这个相对位姿对子图执行三维刚体变换,使得所有子图都设置在相同的全局坐标系中,实现子图对齐的目的,如下面图2所示:

738e25a781394f2abcb297750dd3d371.png

图2:体素网格限制

 

(a) 如果初始坐标系统不是均匀的,那么现有的神经SLAM(例如体素网格)在子图融合期间可能会因为不对齐而受到影响。

 

(b) 神经点云不受3D几何形状的限制,可以自由融合。在子图融合后,我们可以从Agent1(绿色点云)和Agent2(紫色点云)的观测中查询点eq?x_i的邻居。

循环损失eq?%5Cmathcal%7BL%7D_%7B%5Ctext%7Bloop%7D%7D%28T_r%29如下:

eq?%5Cmathcal%7BL%7D_%7B%5Ctext%7Bloop%7D%7D%28T_r%29%20%3D%20%5Cfrac%7B1%7D%7BM_2%7D%20%5Csum%5Climits_%7B%5C%7BI_%7B%5Ctext%7Bl1%7D%7D%2C%20I_%7B%5Ctext%7Bl2%7D%7D%5C%7D%7D%20%5E%7BM_2%7D%20%7CD_m%28T_r%29%20-%20%5Chat%7BD%7D_m%7C%20%5Cquad%20%2811%29

        其中,eq?T_req?M_1​ 和eq?M_2之间的相对位姿,eq?Deq?%5Chat%7BD%7D分别是渲染的深度和地面真实深度。对于小重叠的循环帧集合eq?%5C%7BI_i%5E%7Bs1%7D%2C%20I_i%5E%7Bs2%7D%5C%7D,我们仅使用它们执行位姿图优化(参见3.4)。

        子图融合会导致特定区域的神经点冗余,给计算和内存带来负担。由于神经点云的稀疏性,我们采用基于网格的过滤策略,即根据神经点到 ρ³ 立方体中心的距离执行非极大值抑制。

 3.3 分布式到集中式学习(Distributed-to-Centralized Learning)

 

       为了增强一致性和协作性能,在协作SLAM中,我们采用了一个两阶段的MLP训练策略。在第一阶段(分布式阶段),每个图像序列被视为一个独立的个体,具有用于顺序跟踪制图的唯一组MLPs  eq?%7BC_j%2C%20U_j%2C%20G_j%7D。在循环检测和子图融合之后,我们希望在所有序列之间共享通用的MLPs(集中式阶段)。

        为此,我们引入了联邦学习机制,该机制以协作共享的方式训练单个网络。同时进行子图融合时,我们对每组MLPs进行平均,并在所有关键帧上微调平均的MLPs以统一离散的领域。随后,我们迭代地将共享的MLPs传递给每个代理进行本地训练,并将本地权重平均作为共享MLPs的最终优化结果,如下面图3所示。

 

441cec3355a74657b0da4863da53468c.png

  

联邦学习(Federated Learning)是一种机器学习的分布式学习方法,其中模型的训练在本地设备上进行,而不是在集中式服务器上。这种方法允许设备在本地训练模型,然后将更新的权重参数传输回中央服务器,从而使全局模型在所有设备上得以改进。 

 

联邦学习被用于协作性SLAM系统的两个阶段的训练过程中。在分布式阶段,每个图像序列被视为一个独立的个体,具有本地的MLPs(C,U,G)。在集中式阶段,为了提高一致性和合作,通过联邦学习机制,每个代理将其本地模型参数传输到中央服务器,中央服务器根据所有代理的权重更新来进行全局模型的训练。

 

这种方法的优势在于它允许在不共享原始数据的情况下进行模型训练,从而保护了用户的隐私。同时,它也有助于全局模型更好地适应整个系统的特性,提高一致性和协作水平。

3.4 位姿图优化和全局地图细化(Pose Graph Optimization and Global Map Refinement) 

        在所有序列的前端处理中,包括跟踪、制图、循环检测和子图融合,我们建立了一个全局位姿图模型,其中每帧的位姿作为节点,顺序相对位姿循环相对位姿(sequential relative pose, and loop relative pose are edges作为边。

        位姿图模型如图4所示。我们在整个位姿图上进行全局位姿图优化,参考传统视觉SLAM,将估计的轨迹强制拉近到地面真实轨迹。

d13bf4a2e7fa4622ba8fc450dc05bb7e.png

        全局位姿图优化有效地减轻了累积误差,并提高了跟踪精度。我们使用Levenberg-Marquardt算法来解决由方程12描述的这个非线性全局位姿图优化问题,其中eq?v是节点的集合,eq?E_s是顺序边的集合,eq?E_l是循环边的集合,eq?%5CLambda_i表示相应边的不确定性。

eq?v%5E*%20%3D%20%5Ctext%7Bargmin%7D_v%20%5Cfrac%7B1%7D%7B2%7D%20%5Csum%5Climits_%7Be_i%20%5Cin%20E_s%2C%20E_l%7D%20e_i%5ET%20%5CLambda_i%5E%7B-1%7D%20e_i%20%5Cquad%20%2812%29

        显然,预期神经点云的布局应该在全局位姿图优化后重新排列。然而,一个以世界为中心的点云显然不能允许这样的调整。

        为了解决这个限制,我们提出了一个以关键帧为中心的神经点场,其中每个3D点与一个关键帧关联(上图4)。

        由于这个设计,我们可以根据优化后的姿势来优化我们的点云3D位置。在全局地图细化之后,我们使用基于网格的过滤来处理出现在局部区域的神经点云冗余。

        考虑到全局地图细化后神经场和解码器之间轻微的不匹配,我们最终通过较少的优化迭代执行低成本的全局神经场微调。

 

4 实验

下一篇

5 结论

下一篇

 

 

 

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

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

相关文章

欧科云链研究院:DeFi 将要纳税?美国国税局召开听证会

出品|欧科云链研究院 作者|Matthew Lee 北京时间 11月15日,美国国税局(IRS)召开了一场备受瞩目的听证会,讨论扩大加密货币资产的征税范围。此次听证会囊括了诸多关键议题,包括用户隐私、必须报…

【数据结构】树与二叉树(十八):树的存储结构——Father链接结构、儿子链表链接结构

文章目录 5.1 树的基本概念5.1.1 树的定义5.1.2 森林的定义5.1.3 树的术语 5.2 二叉树5.3 树5.3.1 树的存储结构1. 理论基础2. 典型实例 5.3.2 Father链接结构a. 定义树节点结构b. 创建新节点c. 主函数d. 代码整合 5.3.3 儿子链表链接结构a. 定义树节点结构b. 创建新节点c. 添加…

DOORS和Reqtify—需求管理和需求追溯工具

产品概述 IBM Rational DOORS可实现对整个产品的全生命周期需求管理,覆盖从需求、到设计以及测试阶段,是一款被广泛使用的企业级专业需求管理工具。DOORS可以将项目开发过程中产生的各级需求和与需求相关的文件、网址URL进行链接管理,同时能够…

微信小程序Error: ENOENT: no such file

问题描述 当编译的时候 会提示找不到这个文件(index),但是确信项目目录里已经删除了该页面路径,并且app.json的pages列表中也 导致这个问题应该是:新添加了文件,后面删除了或者修改了文件名,导…

Vue3.0和2.0语法不同分析

前言&#xff1a;本篇文章只做VUE3.0和VUE2.0语法上的不同分析&#xff0c;不做性能和源码架构等的分析。 一、VUE3.0和VUE2.0代码结构不同 VUE3.0代码实例 <template><div><span>count is {{ count }}</span><span>plusOne is {{ plusOne }}…

AH8691-60V降压至3.3V电源芯片:ESOP8封装解决方案

AH8691-60V降压至3.3V电源芯片&#xff1a;ESOP8封装解决方案 随着电子设备的日益普及&#xff0c;电源管理芯片的重要性也日益凸显。一款高效率、低功耗的电源芯片可以大大提高电子设备的性能和可靠性。今天&#xff0c;我们将介绍一款60V降压至3.3V电源芯片&#xff0c;采用…

c++递归分析出依赖的头文件

我想使用boost::optional&#xff0c;但boost库太大&#xff0c;添加到git时比较费劲。 怎样分析出boost/optional.hpp依赖的头文件&#xff0c;然后精准地添加到git上呢&#xff1f; 使用g就可以了&#xff0c;步骤如下 进入目录boost_1_78_0/boost执行 g -MM -H optional.hp…

04-快速掌握Redis,了解Redis中常见的结构类型及其应用场景

Redis快速入门 Remote Dctionary Server Redis是用C语言开发的一个开源的、基于内存的(高性能)键值对(key-value)结构化NoSql数据库,每秒内查询次数可以达到100000的QPS 键值型: Redis中存储的数据都是以key、value对的形式存储&#xff0c;而value的形式多种多样(如字符串、…

低代码,让我效率提升了80%

目录 ​编辑 一、前言 二、优势 三、主要功能点 四、低代码归根结底差不多 五、小结 一、前言 低代码开发平台&#xff0c;一个号称能在几分钟的时间里开发出一套公司内部都可使用的应用系统开发工具。很多人或许都隐隐听说过低代码&#xff0c;因为低代码不仅远名国外&#xf…

003 OpenCV filter2D

目录 一、环境 二、图像卷积 三、代码演示 3.1、锐化 3.2、sobel边缘&#xff0c;x方向 3.3、sobel边缘&#xff0c;y方向 3.4、高斯模糊 3.5、完整代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、图像卷积 在OpenCV…

CentOS停服背景下“浪潮信息KeyarchOS(KOS)系统迁移(无缝切换)解决方案”

1 前言 1.1 背景介绍 CentOS停服事件源于2020年12月宣布的CentOS项目变更&#xff0c;其原计划是基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;的开源版本&#xff0c;提供长期支持。然而&#xff0c;在2020年12月8日&#xff0c;官方宣布终止CentOS Linux的项目…

【数学】正投影和仿射投影

正投影 (Orthographic projection) Weak perspective projection Affine projection 形式1 形式2

BGP引入实验,华为ensp模拟器

一个小作业题&#xff0c;中间三台路由器bgp 100 分支用rip和ospf&#xff0c;最后如有引入时通过前缀列表精确匹配和路由策略调用&#xff0c;都是一些基本配置&#xff0c;考研学生们的基本功扎不扎实&#xff0c;从最最基础的接口配ip&#xff0c;到igp的路由配置&#xff0…

独立站和跨境电商平台的一个优缺点对比,哪个更适合你?

不管哪个行业都是一样的&#xff0c;有优点也有缺点&#xff0c;就像人们常说的人无完人一样。然后&#xff0c;我们来说说最近比较受关注的跨境电商独立站和跨境电商平台的一个优缺点对比吧&#xff01; 了解跨境电商独立站 建站&#xff0c;测试模板网站 跨境电商独立站 优点…

早上好图片漂亮祝福语,祝你事业芝麻节节高,好运连连天天妙!

1、清晨&#xff0c;我呼吸着新鲜空气&#xff0c;迎面的风捎来了你的气息&#xff0c;不知你现在在哪里&#xff1f;希望在这美丽的早晨时时见到开开心心的你&#xff0c;早安&#xff01; 2、无论岁月如何变幻&#xff0c;不变的是心态&#xff0c;改变的是容颜&#xff0c;…

阿里云CentOS主机开启ipv6

目录 一、云主机开启和使用 ipv6 1、网络和交换机开启 ipv6 2、创建 / 编辑云主机&#xff0c;开启ipv6 3、安全组放行ipv6端口 二、使用 ipv6 地址进行 ssh 连接 三、ipv6 地址绑定域名 一、云主机开启和使用 ipv6 1、网络和交换机开启 ipv6 进入网络、交换机详情页面…

低代码是“银弹”,还是“毒弹”?

目录 1.Pro Code 真的更“香”吗&#xff1f; 门槛高 跨界难 代码编写只是第一步 2.Low Code 银弹论合理吗&#xff1f; Pro Code和Low Code的差异&#xff1a; 3.写在最后 “低代码”接力“中台”燃起了熊熊之火&#xff0c;引发了众多业内人士论战。有人认为低代码是毒瘤&…

使用FP8加速PyTorch训练

现代的人工智能硬件架构(例如&#xff0c;Nvidia Hopper, Nvidia Ada Lovelace和Habana Gaudi2)中&#xff0c;FP8张量内核能够显著提高每秒浮点运算(FLOPS)&#xff0c;以及为人工智能训练和推理工作负载提供内存优化和节能的机会。 在这篇文章中&#xff0c;我们将介绍如何修…

DBeaver 23.2.4发布

导读DBeaver 23.2.4发布,修复和添加了一些新功能。 SQL 编辑器 为更新语句添加了代码自动补全功能修复了智能补全和替换带引号表达式的问题删除了日志中首次打开 SQL 编辑器时出现的多余错误 数据库导航器 添加了过滤对象可视化功能修复了脚本文件夹打开问题 数据传输 正确…

消除“数据烟囱”,瓴羊港如何打破壁垒将多数据融通成大数据?

作为数字经济时代的“新石油”&#xff0c;数据已成为重要的生产要素。阿里巴巴副总裁、瓴羊CEO朋新宇认为&#xff0c;目前正处在数据流通变革的时代&#xff0c;其中最核心的问题是如何破解数实融合发展的堵点。数据流通中最重要的原则是&#xff0c;不流通无价值&#xff0c…