[论文翻译] SalsaNet: Fast Road and Vehicle Segmentation in LiDAR Point Clouds for Autonomous Driving

2023-05-16

Abstract
在本文中,我们介绍了一种名为 SalsaNet 的深度编码器-解码器网络,用于 3D LiDAR 点云的高效语义分割。 SalsaNet 通过使用点云的鸟瞰图 (BEV) 图像投影来分割场景中的道路、可行驶自由空间和车辆等。 为了克服缺乏注释的点云数据,特别是对于路段,我们引入了一个自动标记过程,将自动生成的标签从相机传输到 LiDAR。 我们还通过将 BEV 与球形前视投影进行比较,探索 LiDAR 数据的类图像投影在语义分割中的作用,并表明 SalsaNet 与投影无关。 我们对 KITTI 数据集进行了定量和定性评估,表明所提出的 SalsaNet 在准确性和计算时间方面优于其他最先进的语义分割网络。 我们的代码和数据是公开的,可https://gitlab.com/aksoyeren/salsanet.git上获取。

Introduction
三维点云数据的语义分割在场景理解中起着关键作用,以在自动驾驶车辆中实现完全自主。 例如,估计自由驾驶空间和前方车辆可以导致安全的机动规划和决策制定,从而在很大程度上实现自动驾驶。

最近,深度学习在生成准确、实时和稳健的语义片段方面取得了很大进展。 大多数这些高级分割方法都严重依赖于相机数据。 与被动摄像头传感器相比,3D LiDAR(光检测和测距)具有更宽的视野,并提供对环境照明具有鲁棒性的非常可靠的距离测量。 因此,3D LiDAR 扫描仪一直是自动驾驶汽车感知管道中的重要组成部分。

然而,与图像不同,LiDAR 点云相对稀疏并且包含大量不规则的点云例如非结构化点。 此外,由于环境采样不均匀,点的密度变化很大,这使得密集的点搜索和索引操作相对昂贵。 其中,应对所有这些挑战的一种常见尝试是将点云投影到二维图像空间中,以生成标准卷积过程所需的结构化(矩阵)形式。 现有的二维投影有 Bird-Eye-View(BEV)(即俯视图)和 Spherical-Front-View(SFV)(即全景图)。

然而,据我们所知,仍然没有全面的比较研究显示这些投影方法在分割过程中的贡献。

在 3D LiDAR 数据语义分割的背景下,最近的大多数研究都采用这些投影方法来关注道路本身的估计,或者仅关注道路上的障碍物(例如车辆)。 然而,所有这些部分对于后续导航组件(例如机动规划)同样重要,因此需要联合处理。 在文献中进行这种解耦处理的主要原因是缺乏大量带注释的点云数据,特别是对于路段。

在本文中,我们仅使用3D激光雷达点云研究了道路的联合分割,即可驾驶的自由空间,以及车辆。我们提出了一种新的“SemAntic Lidar数据分割网络”,即SalsaNet,它具有编码器-解码器架构,其中编码器部分包含连续的ResNet块。 解码器部分对特征进行上采样,并通过跳过连接将它们与早期残差块中的相应对应物组合起来。 然后将解码器的最终输出发送到像素级分类层以返回语义段。

我们在 KITTI 数据集上验证了我们的网络性能,该数据集提供了车辆的 3D 边界框和相对较少数量的带注释的道路图像(≈300 个样本)。 受此启发,我们提出了一种自动标记过程,可以在 KITTI 数据集中自动标记≈11K 点云。 为此,我们采用最先进的方法,分别分割相机图像中的道路和车辆。 然后将这些片段从相机空间映射到 LiDAR,以自动生成带注释的点云。

SalsaNet 的输入是点云的 BEV 光栅化图像格式,其中每个图像通道存储一个独特的统计线索(例如平均深度和强度值)。 为了进一步分析点云投影在网络性能中的作用,我们分别用 SFV 表示训练 SalsaNet,并与 BEV 对应物进行全面比较。

在KITTI数据集上进行的定量和定性实验表明,所提出的SalsaNet是投影不可知的,即在两种投影方法中都表现出高性能,并且在像素分割精度方面显著优于其他最先进的语义分割方法,同时所需的计算时间要少得多。

我们的贡献是多方面的:
1、我们引入了一种编码器-解码器架构,仅使用 3D LiDAR 数据实时语义分割道路和车辆点。
2、为了自动标注大量 3D LiDAR 点云,我们将标签转移到不同的传感器模式,例如从相机图像到 LiDAR。
3、我们研究了两种常用的点云投影方法,并在准确性和速度方面比较了它们在语义分割过程中的效果。
4、我们对 KITTI 数据集上提出的 SalsaNet 与不同的最先进语义分割网络进行了全面的定量比较。
5、我们还发布了源代码和带注释的点云,以鼓励进一步研究。

Related Work
存在多种探索 3D LiDAR 点云数据语义分割的先验方法。 这些方法基本上分为两类。 第一个涉及传统的启发式方法,例如在将 LiDAR 点云投影到二维空间后采用迭代方法或直方图计算进行模型拟合。 相比之下,第二类研究了先进的深度学习方法,它在过去十年中实现了性能的飞跃。 后一类中的这些方法不仅在网络架构方面彼此不同,而且在 LiDAR 数据被馈送到网络之前的表示方式也不同。

关于网络架构,高性能分割方法特别使用全卷积网络、编码器-解码器结构或多分支模型。 这些体系结构之间的主要区别在于在不同深度对特征进行编码然后将它们合并以恢复空间信息的方式。 由于在最近最先进的点云分割研究中观察到的高性能,我们在本研究中遵循编码器-解码器结构。

在三维激光雷达点云表示的背景下,存在三种主流方法:体素创建、逐点运算和图像投影,。体素表示将点云转换为高维体积形式,即3D体素网格。 然而,由于点云的稀疏性,体素网格可能具有空体素,这会导致冗余计算。 Point-wise 方法直接处理点而不将它们转换成任何其他形式。 这里的主要缺点是处理能力无法有效地处理大型 LiDAR 点集,除非将它们与来自其他传感数据的附加线索融合,例如相机图像,如图所示。为了处理 LiDAR 点云中的稀疏性,各种图像空间投影,例如 如Bird-Eye-View(BEV)(即顶视图),和Spherical-Front-View(SFV)(即全景视图),,,已被引入。 与体素和逐点方法相比,2D 投影更紧凑、更密集,因此适合实时计算。 在这项研究中,我们的网络依赖于 BEV,因为 SFV 投影引入了失真和不常见的变形,这对相对较小的物体(例如车辆)有显着影响。

最接近我们工作的是最近的研究[6][7]。 然而,这些方法使用 SFV 投影仅分割道路对象,例如车辆、行人和骑自行车的人。 相比之下,我们只关注点云中的道路和车辆部分。 我们排除了行人和骑自行车的人,因为他们在整个 KITTI 数据集中的实例总数非常低,这自然会产生较差的学习性能,如【6】【7】中所示。

还有许多网络解决道路分段问题。 然而,这些方法忽略了道路对象(例如车辆)并依赖于 KITTI 道路数据集中有限的注释数据(≈300 个样本)。 为了生成更多的训练数据,我们通过传输由最先进的分割方法导出的相机图像注释,在整个 KITTI 点云(≈11K 样本)中自动标记道路和车辆段。 请注意,类似的自动标记过程已经被提出,并且引入了一个新的大型标记的三维道路场景点云数据集,但是,最终标记的数据仍然没有在这些作品中发布以供公众使用,这 我们的工作并非如此。

Method
在本节中,我们将从 3D 点云数据的自动标记开始详细描述我们提出的方法。 然后我们继续点云表示、网络架构和训练细节。

A、Data labeling
缺乏大量带注释的点云数据给网络训练和评估带来了挑战。 由于每个单独的场景云中有大量点,因此应用众包手动数据标记很麻烦。 受此启发,我们提出了图 1 所示的自动标记过程来自动标记 3D LiDAR 点云。

由于基于图像的检测和分割方法比基于 LiDAR 的解决方案相对成熟,我们从这一工作流中获益来标注 3D LiDAR 点云。 在这方面,为了提取道路像素,我们使用现成的神经网络 MultiNet,专用于摄像机图像中的道路分割。 我们在这里注意到,使用 MultiNet 的原因是因为它是开源的,并且已经在 KITTI 道路检测基准上接受过训练。 为了提取云中的车辆点,我们使用 Mask R-CNN 来分割相机图像中的标签。 请注意,在具有边界框对象注释的情况下,如在 KITTI 对象检测基准中,我们直接将 3D 边界框内的那些点标记为车辆段。 最后,借助相机-LiDAR 校准,道路和车辆段都从图像空间转移到点云,如图 1 所示。
在这里插入图片描述图一:自动点云标记生成 BEV 和 SFV 格式的网络输入。

B、Point Cloud Representation
给定一个非结构化 3D LiDAR 点云,我们研究了基于 2D 网格的图像表示,因为它更紧凑并且可以产生实时推理。 由于 3D 点位于投影形式的网格上,因此它还允许标准卷积。 我们在这里注意到,将维度从 3 减少到 2 不会在点云中产生信息损失,因为高度信息仍然作为投影图像中的附加通道保留。 因此,在这项工作中,我们利用两种常见的投影:鸟瞰图 (BEV) 和球面前视图 (SFV) 表示。

1)鸟瞰图(BEV):我们最初在原始点云中定义一个感兴趣区域,覆盖车辆前方的一大片区域,长 50 米(x ∈[0, 50]),宽 18 米(y ∈ [−6 , 12])(见图1中的深灰色点)。 然后将此感兴趣区域中的所有三维点投影并分解为大小为 256×64 的二维网格地图。网格图对应于激光雷达的x−y平面,并形成BEV,即点云的俯视投影。 我们分别在 x 轴和 y 轴上将网格单元大小设置为 0.2 和 0.3。 示例 BEV 图像如图 1 所示。

与【4】中的工作类似,在每个网格单元中,我们计算平均和最大高程、平均反射率(即强度)值和投影点数。 这四个统计信息中的每一个都被编码为一个唯一的图像通道,形成4D BEV图像以进一步用作网络输入。 请注意,我们还将每个图像通道标准化为[0, 1]之间。 与【4】相比之下,我们避免使用高度的最小值和标准差值作为附加特征,因为我们的实验表明这些通道没有显着贡献。

  1. 球面前视图(SFV):在 的工作之后,我们还将 3D 点云投影到球体上,以在相当全景的视图中生成密集的网格图像表示。

在此投影中,每个点由两个角度 (θ, φ) 和一个强度 (i) 值表示。 在二维球面网格图像中,每个点都映射到坐标(u,v),其中u=[θ/Δθ],v=[φ/Δφ]。 这里,θ和φ是从点坐标(x,y,z)计算的方位角和天顶角,因为θ=arcsin(z/sqrt(x2+y2+z2))和φ=arcsin(y/sqrt(x2+y2)),而Δθ和Δφ是激光雷达的水平和竖直分辨率。

对于投影,我们将 90° 的前视图区域标记为感兴趣区域。 在每个网格单元中,我们分别存储三维笛卡尔 p 坐标(x,y,z),强度值(i)和范围 r=sqrt(x2+y2+z2)。 与【7】一样,我们还保留了一个二进制掩码,指示网格单元的占用情况。 这六个通道形成了分辨率为64×512的最终图像。 示例 SFV 图像如图 1 所示。

尽管与纯电动汽车相比,SFV返回了更密集的表示,但SFV对小物体(如车辆)有一定的失真和变形影响。 SFV 中的对象也更有可能相互遮挡。 因此,我们使用 BEV 表示作为我们网络的主要输入。 然而,我们比较这两个投影对分割精度的贡献。

C、Network Architecture
所提出的 SalsaNet 的架构如图 2 所示。 SalsaNet 的输入是点云的 256×64×4BEV 投影,如第 III-B.1 节所述。

SalsaNet 具有编码器-解码器结构,其中编码器部分包含一系列 ResNet 块(图 2 中的块 I)。 每个 ResNet 块,除了最后一个块,后面都是 dropout 和 pooling 层(图 2 中的块 II)。 我们使用内核大小为 2 的最大池来对宽度和高度的特征图进行下采样。 因此,在编码器端,总下采样因子上升到 16。 除非另有说明,否则每个卷积层的内核大小为 3。 特征通道数分别为32、64、128、256、256。 解码器网络具有一系列去卷积层,即转置卷积(图2中的块III),以向上采样特征图,然后将每个特征图逐元素添加到通过跳跃连接传输的相同大小的相应较低级别(自下而上)特征图(图2的块IV)。 在解码器中的每个特征添加之后,引入一堆卷积层(图 2 中的块 V)以捕获更精确的空间线索,以进一步传播到更高层。 下一层应用 1×1 卷积得到 3 个通道,对应于语义类的总数(即道路、车辆和背景)。 最后,将输出特征图馈送到 soft-max 分类器以获得逐像素分类。
在这里插入图片描述图像2:拟议的 SalsaNet 的架构。 编码器部分涉及一系列 ResNet 块。 解码器部分对特征图进行上采样,并使用跳过连接将它们与相应的早期残差块输出组合起来。 Blocks I-V 中的每个卷积层都与一个 leaky-ReLU 激活层和一个 batch normalization(bn) 层耦合。

Blocks I-V 中的每个卷积层(见图 2)都与一个 leaky-ReLU 激活层耦合。 我们在每次卷积后进一步应用批量归一化,以通过解决内部协变量偏移来帮助收敛到最优解。 我们在这里强调,dropout 需要放在 batch normalization 之后。 如【26】所示,早期应用 dropout 可能会导致权重分布发生变化,从而最大限度地减少训练期间批归一化的影响。

D、Class-Balanced Loss Function
公开可用的数据集大多在不同类别之间存在极端的不平衡。 例如,在自动驾驶场景中,与道路和背景相比,车辆在场景中出现的次数较少。 类之间的这种不平衡导致网络更偏向于在训练中具有更多样本的类,从而导致相对较差的分割结果。

为了更加重视代表性不足的类别,我们用每个类别的平滑频率更新 softmax 交叉熵损失。 我们的类平衡损失函数现在用类频率的平方根倒数加权,定义为:
在这里插入图片描述其中 y i 和 ŷi 是真实标签和预测标签,fi 是第 i 类的频率,例如 i 点数。 这有助于网络加强在数据集中出现较少的类的每个像素。

E. Optimizer And Regularization
为了训练 SalsaNet,我们使用 Adam 优化器,初始学习率为 0.01,每 20K 次迭代后衰减 0.1。 dropout probability 和 batch size 分别设置为 0.5 和 32。 我们运行了 500 个 epochs 的训练。

为了增加训练数据量,我们还通过水平翻转、添加概率为 0.5 的随机像素噪声以及在 [−5°, 5°] 范围内围绕 z 轴随机旋转来增加网络输入数据。

IV. E XPERIMENTS
为了展示我们模型的优点和缺点,我们评估了 SalsaNet 的性能,并与提供 3D LiDAR 扫描的具有挑战性的 KITTI 数据集上的其他最先进的语义分割方法进行了比较。 我们首先采用第 1 节中描述的自动标记过程。 III-A 获取逐点注释。 总的来说,我们生成了10848个点云,其中每个点都被标记为三类之一,即道路、车辆或背景。 然后,我们遵循完全相同的协议,将 KITTI 数据集划分为具有 8057 和 2791 点云的训练和测试拆分。 我们在 TensorFlow 中实施我们的模型并发布代码和标记点云以供公众使用。

A、Evaluation Metric
我们的模型的性能是通过将每个预测点标签与相应的地面实况注释进行比较来衡量类级分割任务的。 作为主要评估指标,我们将每个单独类别的精度 §、召回率 ® 和交并比 (IOU) 结果报告为
在这里插入图片描述
其中Pi是类i的预测点集,Gi表示相应的基本事实集,而||返回集合中的总点数。 此外,我们报告了所有三个类别的平均 IoU 分数。

B. Quantitative Results
我们将 SalsaNet 的性能与其他最先进的网络进行比较:SqueezeSeg(SqSeg-V1) 和 SqueezeSegV2(SqSeg-V2)。 我们特别关注这些专用网络,因为它们仅针对语义分割任务实现,完全依赖 3D LiDAR 点云,并且还提供开源实现。 我们使用和论文中提供的相同配置参数训练网络 SqSeg-V1 和 SqSeg-V2。 然而,为了获得最高分,我们改变了学习率(对于 SqSeg-V1 设置为 0.001)并且还应用了用于训练 SalsaNet 的相同数据增强协议。 作为一种额外的基线方法,我们实现了一个普通的 U-Net 模型,因为它在结构上类似于 SalsaNet。 为了公平比较,我们使用与训练 SalsaNet 完全相同的参数(例如学习率、批量大小等)和策略(例如损失函数、数据增强等)来训练 U-Net。 我们对 BEV 和 SFV 投影进行了实验,以研究 LiDAR 点云投影对语义分割的影响。 获得的定量结果报告在表 I 中。
在这里插入图片描述表一:KITTI 测试集的定量比较 .= S 核心以百分比 (%) 给出。

在所有情况下,我们提出的模型 SalsaNet 通过导致最高的 IoU 分数大大优于其他模型。 在BEV中,SalsaNet在相对较小的物体(例如,与道路相比)的车辆上表现特别好。 在其他方法中,车辆的最高 IoU 分数比 SalsaNet 低 6.3%,这清楚地表明这些方法难以提取 BEV 投影中的局部特征。 当谈到 SFV 投影时,车辆 IoU 分数之间的差距缩小到 0.6%,尽管 SalsaNet 仍然表现最好。 这是因为 SFV 具有更紧凑的形式:像车辆这样的小物体变得更大,而相对较大的物体(例如背景)在 SFV 图像中占据的部分更少(见图 1)。 这一发现表明 SalsaNet 与投影无关,因为它可以捕获局部特征,例如在两种投影方法中表现相当好。

此外,图 3 描绘了使用 BEV 和 SFV 投影的 SalsaNet 的最终混淆矩阵。 该图清楚地表明类之间没有重大混淆。 少量的车辆和道路点被标记为背景但没有相互混合。 我们认为,两种图像表示中道路和车辆边界上的点都会导致这种轻微的错误标记,可以通过对训练数据进行更精确的注释来轻松克服。
在这里插入图片描述图像3:我们使用 BEV 的模型 SalsaNet 的混淆矩阵和
SFV 对 KITTI 测试分组的预测。

C. Qualitative Results
对于定性评估,图 4 显示了 SalsaNet 使用 BEV 生成的一些样本语义分割结果。 在此图中,仅出于可视化目的,分割的道路和车辆点也被投影回各自的摄像机图像。 我们在此强调,这些相机图像并未用于训练 SalsaNet。
在这里插入图片描述图四:示例定性结果显示了我们使用 BEV [最佳颜色视图] 提出的方法的成功和失败。 请注意,左上角相应的相机图像仅用于可视化目的,并未在训练中使用。 点云中的深灰色点和浅灰色点分别代表鸟瞰区域内部和外部的点。 绿点和红点表示道路和车辆段。

如图 4 所示,SalsaNet 可以在很大程度上区分道路、车辆和背景点。 所有其他排除的类别,如图 4 中第一、第五和第六帧所示的道路上的 su 骑车人,被正确分割为背景。 我们还在图 4 的最后一帧中说明了一个失败案例。 在这种情况下,路段是不完整的。 这是因为路段的地面实况仅依赖于 MultiNet 的输出(参见第 III-A 节),然而,由于道路在强烈的阳光下过度曝光(参见红色框中的相机图像),它会返回丢失的路段 在图 4 中)。 作为一个潜在的解决方案,我们计划为相机图像采用更准确的道路分割网络,以提高训练数据集中点云的标记质量。

在补充视频 2 中,我们提供了关于各种 KITTI 场景的更多定性结果。

D、Ablation Study
在此消融分析中,我们研究了每个 BEV 和 SFV 图像通道对 SalsaNet 最终性能的单独贡献。 我们还诊断了在第 III-D 节中使用 Eg1 中介绍的加权损失的效果。

表 II 显示了 BEV 的所得结果。 这张表给人的第一印象是,在损失函数中排除权重会导致一定的精度下降。 特别是,车辆 IoU 分数下降了 2.5%,而背景 IoU 分数略有增加(见表 II 第二行)。 这显然意味着网络倾向于错误标记道路和车辆点,因为它们在训练数据中的代表性不足。 同一张表中第三行和第六行之间的 IoU 分数表明,BEV 图像通道中嵌入的特征对分割精度的贡献几乎相等。 这清楚地表明 SalsaNet 用作输入的 BEV 投影没有任何冗余信息编码。
在这里插入图片描述表二:鸟类视角的消融分析。CHANNELS MEAN、MAX、REF和DENS依次代表平均和最大高程、反射率和投影点的数量。

表 III 显示了 SFV 获得的结果。 当省略应用的损失权重时,我们再次观察到对 IoU 分数的相同影响。 然而,最有趣的发现出现在我们开始测量 SFV 图像通道的贡献时。 正如表 III 的最后六行所示,SFV 图像通道对分割精度的影响相当不一致。 例如,虽然添加掩码通道可将平均精度提高 4.5%,但保持 x-y 坐标的前两个通道导致总体平均精度分别下降 0.04% 和 0.34%。 这是 SFV 投影引入并包含误导网络特征学习的冗余信息的明确证据。

鉴于这些发现以及第 III-B.2 节中所述的关于 SFV 变形的论点,我们得出结论,BEV 投影是更合适的点云表示。 因此,SalsaNet 依赖于 BEV。
Given these findings and also the arguments regarding the deformation in SFV as stated in section III-B.2, we conclude that the BEV projection is more appropriate point cloud representation. Thus, SalsaNet relies on BEV.在这里插入图片描述表三:球面前视图的烧灼分析。 C 通道 X、Y、Z、I、R 和 M 依次代表笛卡尔坐标 (x, y, z)、强度、范围和占用掩码。

E. Runtime Evaluation
运行时性能在自动驾驶中至关重要。 表 IV 报告了 SalsaNet 与其他网络相比的正向传递运行时性能。 为了获得公平的统计数据,所有测量都使用同一张 NVIDIA Tesla V100-DGXS-32GB GPU 卡上的所有测试数据重复 10 次。 表 IV 列出了获得的平均运行时间值和标准偏差。 与 SqSeg-V1 和 SqSeg-V2 相比,我们的方法在 BEV 和 SFV 两种投影方法中明显表现出更好的性能。 我们观察到 U-Net 的性能略好于 SalsaNet。 然而,由于 U-Net 返回的准确度相对较低(见表 I),因此需要权衡取舍。 U-Net 执行速度更快的原因是每个网络层中使用的内核数量相对较少。 我们在这里注意到,SalsaNet 运行时的标准偏差远小于其他运行时。 这对自动驾驶感知模块的稳定性起着至关重要的作用。 最后,在使用 BEV 的情况下,所有方法都变得更快。 这可以用 BEV 图像中的通道数和分辨率略少这一事实来解释。

在这里插入图片描述表四:在KITTI数据集上的运行性能

总的来说,我们的结论是我们的网络推理(单次前向传播)时间可以达到 160Hz,同时在 BEV 中提供最高的准确度。 请注意,这种高速度明显快于通常工作在 10Hz 的主流 LiDAR 扫描仪的采样率。…

V. CONCLUSION
在这项工作中,我们提出了一种新的深度网络SalsaNet,仅使用3D激光雷达数据实时对道路(即可驾驶自由空间)和车辆点进行语义分割。 我们的方法的不同之处在于 SalsaNet 是输入数据不可知的,这意味着在 BEV 和 SFV 投影中表现相当好,尽管其他著名的语义分割网络在 BEV 投影中提取局部特征有困难。 通过将基于图像的逐点语义信息直接传输到点云,我们提出的方法可以自动生成训练所需的大量带注释的 LiDAR 数据。

因此,SalsaNet 简单、快速并返回最先进的结果。 与其他方法相比,我们广泛的定量和定性实验评估提供了对 SalsaNet 优缺点的直观理解。 应用 SalsaNet 来引导检测和跟踪过程是我们在自动驾驶环境中计划的未来任务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[论文翻译] SalsaNet: Fast Road and Vehicle Segmentation in LiDAR Point Clouds for Autonomous Driving 的相关文章

随机推荐

  • 注册表操作,reg脚本简单编写

    注册表操作 xff0c reg脚本简单编写 添加项 Windows Registry Editor Version 5 00 HKEY CURRENT CONFIG System CurrentControlSet SERVICES TSD
  • EUI-64格式生成

    EUI 64 IEEE EUI 64地址表示有一个用于网络接口寻址的新标准 在IPV6中 xff0c 无状态自动配置机制使用EUI 64格式来自动配置IPV6地址 无状态自动配置是指在网络中没有DHCP服务器的情况下 xff0c 允许节点自
  • Git使用

    Git使用 生成RSA密钥对 ssh keygen t rsa C email t 指定生成的加密方式 C 添加注释 xff0c 一般来说是邮箱 注 xff1a 如果指定了文件名字为github rsa xff0c 需要配置config 内
  • maven 常用镜像仓库

    maven 常用镜像仓库 lt mirror gt lt id gt alimaven lt id gt lt mirrorOf gt central lt mirrorOf gt lt name gt aliyun maven lt na
  • 面向对象的语言主要有哪些

    面向对象程序设计 Object Oriented Programming xff0c OOP 的实质是选用一种面向对象程序设计语言 OOPL xff0c 采用对象 类及其相关概念所进行的程序设计 主要有Smalltalk Eiffel C
  • Python如何自制包、如何安装自己的包并导入

    首先科普一下包和模块的概念 xff1a 在Python中 xff0c 包是一个包含多个模块的目录 xff0c 而模块则是一个单独的文件 一个包可以包含多个模块 xff0c 也可以包含其他的子包 当一个目录下面有一个 init py文件时 x
  • 使用OpenFeign代替RestTemplate来请求接口

    在使用RestTemplate来调用接口服务的时候 xff0c 需要写一个调用地址的参数 xff0c 这样做不太好管理接口地址 xff0c OpenFeign就提供了一个比较好的管理方式 xff0c 类似于写一个Mapper的接口 xff0
  • 手把手教你如何一键备份和恢复微信聊天记录

    相信大家的聊天记录都非常重要 xff0c 怎么能说没就没 xff01 xff01 今天就分享一个备份聊天记录的方法 备份聊天记录 首先在电脑版微信上 xff0c 点击左下角 三条横杠标志 按钮 xff0c 选择 备份与恢复 在弹出的 备份与
  • MonoSDF: Exploring Monocular Geometric Cues for Neural Implicit Surface Reconstruction论文翻译

    机翻的 这篇属实看不懂 Abstract 近年来 xff0c 神经隐式表面重建方法已成为多视图三维重建的流行方法 与传统的多视图立体方法相比 xff0c 由于神经网络的归纳平滑偏差 xff0c 这些方法往往会产生更平滑和更完整的重建 最先进
  • SPSS入门教程—相关性分析使用方法

    IBM SPSS Statistics为用户提供了三种相关性分析的方法 xff0c 分别是双变量分析 偏相关分析和距离分析 xff0c 三种相关分析方法各针对不同的数据情况 xff0c 接下来我们将为大家介绍如何使用SPSS相关性分析中的距
  • 使用IBM SPSS Statistics的新手应该如何入门

    一 什么是IBM SPSS Statistics xff1f IBM SPSS Statistics 是一款强大的统计软件平台 xff0c 它所提供的数据分析功能 xff0c 可以帮助企业 个人对各类数据进行切实可行的洞察分析 xff0c
  • linux 下清空回收站命令

    linux 下清空回收站命令 sudo rm fr root Trash
  • 了解CV和RoboMaster视觉组(目录和大纲)

    NeoZng neozng1 64 hnu edu cn 全网最最最全的RoboMaster视觉组入门教程和概览来啦 xff01 0 Catalogue 摘要 视觉组在不同兵种中的作用 2 1 装甲板识别 2 2 能量机关 2 3 哨兵 2
  • 了解CV和RoboMaster视觉组(一)摘要

    NeoZng neozng1 64 hnu edu cn 1 摘要 在阅读本文之前 xff0c 你需要有计算机科学的基本知识并至少掌握一门编程语言 xff0c 同时对robomaster比赛规则和过程有大致的了解 若只是希望知道视觉组的基本
  • 了解CV和RoboMaster视觉组(二)视觉在各兵种中的作用

    NeoZng neozng1 64 hnu edu cn 2 视觉在各兵种中的作用 2 1 装甲板识别 xff08 步兵 英雄 无人机 xff09 由于机器人上安装的图传模块到操作手看到的第一视角的延迟加上操作手反应速度的延迟 xff0c
  • 了解CV和RoboMaster视觉组(三)视觉组使用的软件

    NeoZng neozng1 64 hnu edu cn 3 视觉组接触的软件 进行视觉开发会用到各种各样的软件 开发环境 辅助工具等 xff0c 所以很有必要了解一些相关的快捷键 命令 使用技巧 选择一款适合自己的IDE能够提高开发效率
  • 了解CV和RoboMaster视觉组(四)视觉组使用的硬件

    NeoZng neozng1 64 hnu edu cn 4 视觉组接触的硬件 虽然别人总觉得视觉组就是整天对着屏幕臭敲代码的程序员 xff0c 实际上我们也会接触很多的底层硬件与传感器 xff0c 在使用硬件的同时很可能还需要综合运用其他
  • (五)比赛中的CV算法(上)cv基础知识和opencv的api

    5 比赛中的CV算法 讲了这么多 xff0c 视觉组的重头戏 算法终于来了 在大部分时候我们都不需要设计底层的算法 xff0c 而是直接调用封装好的API xff0c 设计更具体的应用于特定问题的算法 当然 xff0c 有必要了解一下造轮子
  • (五)比赛中的CV算法(上2)目标检测初步:神经网络及优化方法

    NeoZng neozng1 64 hnu edu cn attention xff1a 5 2 5 3 5 4对于新人来说可能有一定难度 若是新人或刚入门的 RMer xff0c 可以由此直接跳转道第六部分继续阅读 xff0c 第六部分看
  • [论文翻译] SalsaNet: Fast Road and Vehicle Segmentation in LiDAR Point Clouds for Autonomous Driving

    Abstract 在本文中 xff0c 我们介绍了一种名为 SalsaNet 的深度编码器 解码器网络 xff0c 用于 3D LiDAR 点云的高效语义分割 SalsaNet 通过使用点云的鸟瞰图 BEV 图像投影来分割场景中的道路 可行