当前位置: 首页 > news >正文

【VLNs篇】05:TGS-在无地图室外环境中使用视觉语言模型进行轨迹生成和选择

栏目内容
论文标题TGS: Trajectory Generation and Selection using Vision Language Models in Mapless Outdoor Environments (TGS:在无地图室外环境中使用视觉语言模型进行轨迹生成和选择)
研究问题在具有非结构化越野特征(如建筑物、草地、路缘)的挑战性真实世界无地图室外环境中进行导航。
研究目标计算满足以下条件的合适轨迹:(1) 满足特定环境的可通行性约束;(2) 在人行横道、人行道等区域导航时,符合类似人类的路径。
核心方法多模态轨迹生成与选择算法 (TGS):
1. 轨迹生成: 使用一个以可通行性约束增强的条件变分自编码器 (CVAE) 生成模型 (基于MTG),根据LiDAR几何感知生成多个候选轨迹。
2. 轨迹选择: 利用视觉语言模型 (VLM) 及其零样本语义理解和逻辑推理能力,结合视觉提示方法(在RGB图像上用线条和数字标记候选轨迹),根据任务的上下文信息选择最佳轨迹。
创新点1. 集成多模态方法:将基于CVAE的几何感知轨迹生成(LiDAR)与基于VLM的语义感知轨迹选择(RGB图像+语言)相结合。
2. 视觉提示增强VLM空间推理:通过在图像上标记候选轨迹(线条和数字),帮助VLM理解空间信息并进行选择,弥合了VLM与精确空间输出之间的差距。
3. 高质量候选轨迹生成:CVAE生成多样化且几何上可行的候选轨迹,为VLM选择提供了坚实基础,优于随机采样。
主要贡献1. 提出TGS,一个新颖的集成轨迹生成和选择方法。
2. 探索了视觉提示方法在轨迹选择中增强VLM空间推理能力的应用。
3. 在多个挑战性室外场景中评估了TGS,证明了其有效性。
关键结果在挑战性室外导航场景(如人行道、人行横道等)中,与基线方法相比,生成的轨迹在可通行性方面至少提高了 3.35%,在类人导航(以弗雷歇距离衡量)方面至少提高了 20.61%

具体实现流程

该论文提出的TGS(Trajectory Generation and Selection)算法流程如下:

阶段一:基于几何的候选轨迹生成 (使用MTG)

  1. 输入:
    • 连续几帧的LiDAR点云数据 ( o l o_l ol)
    • 机器人当前速度 ( o v o_v ov)
  2. 处理:
    • 将LiDAR点云和机器人速度输入到一个基于注意力机制的条件变分自编码器 (CVAE) 模型 (即MTG [24])。
    • CVAE模型会生成一组 ( K K K条) 多样化的、在几何上(基于LiDAR感知)可能 traversable 的候选轨迹 ( T = { T 1 , T 2 , . . . , T K } T = \{T_1, T_2, ..., T_K\} T={T1,T2,...,TK})。这些轨迹通常长度约为15米。
  3. 输出 (阶段一):
    • 一组候选轨迹 ( T T T)。

阶段二:基于视觉语言模型的轨迹选择

  1. 预处理与视觉标记:

    • 轨迹筛选 (可选/隐含): 使用Hausdorff距离过滤掉彼此过于接近的轨迹,保留具有代表性的轨迹子集 T ′ T' T
    • 坐标转换: 将候选轨迹 ( T ′ T' T) 从机器人坐标系转换到相机坐标系,再投影到2D图像平面上,得到图像平面上的轨迹 T c T_c Tc
    • 视觉标记 (Visual Marking Module, M M M):
      • 输入: 当前机器人视角的RGB图像 ( i i i),图像平面上的候选轨迹 ( T c T_c Tc)。
      • 处理: 在RGB图像 ( i i i) 上,将每条候选轨迹 T c , k T_{c,k} Tc,k 用线条绘制出来。在每条绘制轨迹的末端,用一个数字 ( n k n_k nk) 进行标记。数字通常按某种启发式(如与目标方向的接近程度)排序,较小的数字可能表示更优的初步选择。
      • 输出: 带有视觉标记(线条和数字)的RGB图像 ( i ′ i' i)。
  2. VLM选择:

    • 输入:
      • 带标记的RGB图像 ( i ′ i' i)。
      • 语言提示 ( l l l):包含导航任务的指令,例如:“选择一条我应该遵循的安全导航路径,就像人类那样。记住我必须走在人行道上,避开崎岖不平的地形,并遵守规则。我不能越过/钻过路缘。数字越小表示到达目标的最短路径。只选一个。请按以下格式提供答案:{‘trajectory’: []}”。
    • 处理:
      • 将带标记的图像 ( i ′ i' i) 和语言提示 ( l l l) 一同输入到预训练的视觉语言模型 (VLM),例如GPT-4V。
      • VLM利用其对图像内容的语义理解能力(例如识别道路、人行道、障碍物)和对文本指令的逻辑推理能力,分析图像上标记的各条候选轨迹。
      • VLM根据语义可行性(是否在人行道上、是否避开障碍物、是否遵守交通规则如走人行横道等)和提示中关于目标方向的指引(通过数字大小暗示),选择最合适的轨迹对应的数字。
    • 输出 (阶段二):
      • 选定的最佳轨迹 ( τ \tau τ)(由VLM选择的数字所对应的原始轨迹)。

最终输出:

  • 一条经过VLM根据几何和语义信息筛选出的、被认为是当前最佳的导航轨迹 ( τ \tau τ)。这条轨迹随后可以被底层的运动规划器和控制器用于驱动机器人实际移动。

数据流转逻辑总结:

LiDAR/速度 → MTG (CVAE) \xrightarrow{\text{MTG (CVAE)}} MTG (CVAE) 多条候选轨迹 (几何) → 投影+视觉标记 \xrightarrow{\text{投影+视觉标记}} 投影+视觉标记 带标记的RGB图像 → VLM + 语言提示 \xrightarrow{\text{VLM + 语言提示}} VLM + 语言提示 单条最佳轨迹 (几何+语义)。

核心思想: 利用LiDAR的几何精确性生成多个“可能”的路径,然后利用VLM强大的场景理解和推理能力,结合视觉提示,从这些路径中选出“最应该”走的那一条,从而实现更智能、更符合人类习惯的导航。

文章目录

  • 1 引言
  • 2 相关工作
  • 3 方法
    • 3.1 问题定义
    • 3.2 基于几何的轨迹生成
    • 3.3 基于VLM的轨迹选择
  • 4 实验结果
    • 4.1 实现细节
    • 4.2 定性结果
    • 4.3 定量结果
    • 4.4 消融研究
  • 5 结论、局限性和未来工作

摘要 我们提出了一种多模态轨迹生成和选择算法,用于在具有挑战性的现实世界无地图室外导航场景中,处理如建筑物、草地和路缘等非结构化越野特征。我们的目标是计算合适的轨迹,这些轨迹 (1) 满足特定环境的可通行性约束,并且 (2) 在人行横道、人行道等区域导航时符合类似人类的路径。我们的方法使用一个条件变分自编码器 (CVAE) 生成模型,该模型通过可通行性约束进行增强,以生成多个全局导航的候选轨迹。我们利用视觉语言模型 (VLM) 及其在语义理解和逻辑推理方面的零样本能力,结合视觉提示方法,根据任务的上下文信息选择最佳轨迹。我们在各种室外场景中使用轮式机器人评估了我们的方法,并将其性能与其他全局导航算法进行了比较。实践中,我们观察到,在挑战性的室外导航场景(如人行道、人行横道等)中,生成的轨迹在可通行性方面至少提高了3.35%,在类人导航方面提高了20.61%。

关键词: 运动规划,人工智能赋能机器人,机器人算法

1 引言

无地图导航用于计算机器人在没有精确地图的情况下导航大规模环境的轨迹或方向 [15,23,37]。这个问题对于室外全局导航非常重要。与基于地图的方法 [13,14,32](需要准确且广泛的全局地图)不同,无地图技术 [24,26,37] 不需要维护准确的地图,并且能够适应频繁变化的环境 [45],包括天气变化 [31,50]、临时建筑工地 [20] 和危险区域 [10]。然而,由于可通行性分析和场景理解(就导航和社交协议而言)的挑战,无地图全局导航可能具有挑战性 [15,37]。
传统的基于地图的方法 [9,11] 和基于学习的方法 [24,25,39,43] 通常依赖于高程等属性来分析可通行性。

然而,这些属性可能不适用于所有类型的机器人,例如,楼梯对于有腿机器人是可通行的,但对于轮式机器人则不是 [11, 43]。为了应对这些挑战,可以使用多模态传感器来更好地理解场景。具体来说,LiDAR 传感器提供关于环境的几何信息,可用于处理碰撞 [25, 27],但很难使用 LiDAR 来检测颜色不同但几何属性相似的地形,例如高程 [24]。RGB 相机也可用于场景理解 [22, 33, 36, 46]。因此,使用多种模态来捕获几何和颜色信息对于可通行性分析是必要的。

考虑到机器人需要做出类似人类的决策以遵循某些社交协议并找到到达目标的更短路径,场景理解对于室外导航至关重要。场景理解具有挑战性,因为所需信息在不同环境中差异很大。例如,越野导航需要对非结构化植被进行特征理解,以判断机器人是否可以穿越 [28, 44],而社交导航任务 [16,42] 则需要信息来遵循社交线索。因此,对于特定类型的机器人、社交互动以及导致死胡同的方向,通用场景理解(就可通行性而言)至关重要。许多当前方法 [21, 44, 49] 依赖于分割或分类 [6, 22],但这些方法需要使用地面真实数据进行大量训练,并且仅限于标记数据集。这种限制阻碍了它们推广到具有复杂地形和社交约束的场景的能力。大型语言模型 (LLM) 和视觉语言模型 (VLM) 的最新进展已在各种任务中展示了卓越的能力,包括逻辑推理 [4,7,17] 和视觉理解 [2,8,33]。特别是 VLM 具有处理和理解视觉和文本信息的能力,这使其能够执行广泛的多模态任务。最近,VLM 已被用于通过图像和上下文线索理解周围环境,从而在室外场景中自主导航机器人 [12, 12, 19,38]。然而,一个挑战是 VLM 不能直接提供精确的空间几何输出 [38,42]。

主要成果: 我们提出了 TGS,一种新颖的多模态方法,用于无地图室外导航中的轨迹生成和选择。我们的方法利用 RGB 颜色和 LiDAR 几何信息进行可通行性分析。我们使用基于模型的轨迹生成方法,根据 LiDAR 几何感知生成多个候选轨迹。我们还使用 VLM 基于 RGB 颜色模态进行场景理解。虽然 VLM 无法提供精确的空间输出,我们使用视觉注释来帮助它们从一组离散的粗略选择中进行选择 [30, 40, 47]。我们还使用 VLM 做出类似人类的决策,以便在全局导航的候选项中选择合适的轨迹,即生成可在人行横道上通行、符合社交规范且更接近目标的轨迹。我们展示了我们的方法在复杂室外场景中的有效性,这些场景包括多样化的非结构化环境和导航约束,例如在过马路时行驶。

例如过马路时走人行横道、绕过建筑物等。我们工作的主要贡献包括:

  1. 一种新颖的集成轨迹生成和选择方法 TGS,使用基于 CVAE [41] 的方法生成多个候选轨迹,并使用 VLM 和视觉提示方法选择最合适的轨迹。我们基于 CVAE 的轨迹生成方法会生成多个候选轨迹,这些轨迹在考虑从 LiDAR 传感器检索到的几何信息的情况下是可通行的。我们基于 VLM 的轨迹选择方法会选择最佳轨迹,该轨迹在几何和语义上均可通行,并且最接近目标。
  2. 我们探索了使用视觉提示方法来增强 VLM 在轨迹选择方面的空间推理能力。通过在 RGB 图像中加入线条和数字指示符等视觉标记,我们为 VLM 提供了明确的指导。这有助于弥合 LiDAR 数据的具体几何信息与 VLM 提供的上下文理解之间的差距。
  3. 我们在四个不同的具有挑战性的室外场景中评估 TGS。我们测量了相对于人类遥操作的可通行率和弗雷歇距离。我们将结果与最先进的轨迹生成方法 ViNT [39]、NoMaD [43]、MTG [24] 和 CONVOI [34] 进行了比较。我们观察到,在可通行性方面至少提高了 3.35%,在弗雷歇距离方面提高了 20.61%。我们还定性地展示了我们的方法相对于其他方法的优势。

2 相关工作

在本节中,我们回顾了室外机器人导航的相关工作,特别关注轨迹生成。

室外无地图全局导航: 基于强化学习的运动规划方法 [18, 25] 使用端到端结构来获取观测并生成动作或轨迹。然而,这些方法是为短程导航设计的,并且基于策略的强化学习方法也存在现实差距问题。使用路径规划的地图重建方法 [35,48] 通过在导航期间构建地图为全局规划提供了一种解决方案,但这些方法需要大量的全局地图内存。为了解决这个问题,NoMaD [43] 和 ViNT [39] 使用拓扑地图来减少导航的内存使用,但这些方法需要预定义拓扑节点,使其不适用于完全未知的环境。为了克服这些限制,我们的方法使用基于 CVAE 生成模型的轨迹生成方法 [24] 来生成长轨迹,并利用 VLM 来选择到达目标的最佳轨迹。

可通行性分析: 一些方法为可通行性分析构建局部地图 [9,11],但这些方法需要大量的计算资源 [11],并且这些地图仍然需要与运动规划算法相结合以生成运动或轨迹。基于学习的方法通过直接生成轨迹 [24-26, 39, 43] 为可通行性分析提供了一种端到端的解决方案。然而,这些方法要么生成基于特定类型机器人(即机器人动力学)可通行的轨迹,要么缺乏对环境的常识性理解,这限制了它们的有效性。我们的方法利用视觉语言模型 (VLM) 来提供常识性的场景理解,例如识别交通标志、人行横道和路缘。

导航中的语言基础模型: 语言基础模型 (LFM) [5](包括 VLM 和 LLM)的最新突破展示了其在机器人导航方面的巨大潜力。LM-Nav [38] 使用 GPT-3 和 CLIP [33] 从基于文本的导航指令中提取地标描述,并在图像中进行定位,有效地引导机器人在室外环境中到达目标。VLMaps [19] 通过将视觉语言特征与 3D 地图融合,提出了一种空间地图表示方法,从而实现了自然语言引导的导航。CoW [12] 通过结合基于 CLIP 的地图和传统的探索方法,执行基于零样本语言的对象导航。现有研究主要集中于利用 VLM 提取文本-图像场景表示,这主要用于高级导航指导。其他使用 VLM 进行上下文和语义理解以指导低级导航行为的方法也已被提出。VLM-Social-Nav [42] 探索了 VLM 在与人类等社交实体互动时提取符合社交规范的导航行为的能力。CoNVOI [34] 使用视觉注释从机器人视角图像中提取一系列航点,这些航点显示了给定场景下最合适的导航行为。PIVOT [30] 在包括室内导航在内的各种低级机器人控制任务中使用了 VLM 的视觉提示和优化。它展示了视觉提示方法在机器人和空间推理领域中对 VLM 的潜力。
我们的工作建立在这些方法的基础上,利用 VLM 来指导低级导航行为,理解周围环境的上下文和语义信息。在这里,我们使用诸如线条和数字之类的视觉注释 [29, 30, 34, 40, 47] 来帮助 VLM 有效地理解空间信息。与 PIVOT [30] 中那样随机采样候选者不同,我们使用基于生成模型的轨迹生成方法来产生高质量但多样化的轨迹,确保 VLM 从中选择的轨迹具有可通行性。

3 方法

在本节中,我们阐述了无地图全局导航问题并描述了我们的方法。

3.1 问题定义

我们的方法处理无地图全局导航问题。为了有效利用多模态传感器输入,我们设计了一个两阶段流程,如图所示。

在这里插入图片描述

图1,以选择在可通行性和类人决策方面最佳的轨迹。给定一个长距离(约200米)目标 g ∈ O g g \in O_g gOg,我们利用颜色和几何模态来生成全局导航的轨迹 T T T。该轨迹旨在提供到达目标的最佳方向,避免死胡同,并满足场景的可通行性约束,即最大化 P ( o , g , l ) P(o, g, l) P(o,g,l),其中 o = { o l , o v , i } o = \{o_l, o_v, i\} o={ol,ov,i} 表示机器人的观测值。 o l ∈ O l o_l \in O_l olOl 表示 LiDAR 观测值, o v ∈ O v o_v \in O_v ovOv 表示机器人速度, i ∈ I i \in I iI 表示来自相机的 RGB 图像。 l = { l t , l d } l = \{l_t, l_d\} l={lt,ld} 表示用于视觉语言模型 (VLM) 的语言指令,以获取可通行轨迹 ( l t l_t lt) 和到达目标的最佳方向 ( l d l_d ld),同时避免死胡同。

首先,我们利用 MTG [24] 来处理来自 LiDAR 传感器的几何信息 o l ∈ O l o_l \in O_l olOl 和来自机器人里程计的连续速度 o v ∈ O v o_v \in O_v ovOv。MTG 有效地生成一组位于几何可通行区域的轨迹, T = MTG ( o l , o v ) T = \text{MTG}(o_l, o_v) T=MTG(ol,ov)。这些生成的轨迹无法处理几何相似但颜色语义不同的情况,例如路缘和草坪。因此,我们使用 VLM 从 RGB 图像中提供场景理解。

然而,在真实世界的航点和 VLM 之间存在差距,VLM 仅接受图像和文本标记。弥合这一差距的一种方法是将轨迹叠加在图像上,并使用 VLM 分析轨迹是否在可通行区域。考虑到 VLM 可以从图像中理解常识,我们使用数字来指示轨迹,将这些数字放置在图像上每个轨迹的末端,以便为 VLM 提供关于轨迹稀疏方向的更好感知。因此,我们通过以下方式将真实世界的轨迹映射到图像像素级对象:
( n , T c ) = M ( T , K ) , (n, T_c) = M(T, K), (n,Tc)=M(T,K),

其中 K K K 表示从真实世界 LiDAR 坐标系到图像平面的转换矩阵, T c T_c Tc 表示转换后的轨迹, n ∈ N n \in N nN 是对应于每个轨迹的数字。
给定语言指令 l t ∈ L l_t \in L ltL 和带有转换后轨迹 T c T_c Tc 及数字 n ∈ N n \in N nN 的图像 i ∈ I i \in I iI,VLM 基于场景的颜色语义理解提供一条可通行的轨迹, T s = VLM ( l t , i , T c , n ) T_s = \text{VLM}(l_t, i, T_c, n) Ts=VLM(lt,i,Tc,n),其中 T s ∈ A T_s \in A TsA A A A 表示图像 i i i 中的颜色语义可通行区域。此外,所选轨迹不一定是导航的最佳选择,因此我们使用 l d l_d ld 语言提示来提供目标方向,并要求 VLM 在给定轨迹 T s T_s Ts 中选择最佳轨迹。通过结合 l d l_d ld l t l_t lt,我们最大化 max ⁡ P ( T ∣ l , i , T c , n ) \max P(T|l, i, T_c, n) maxP(Tl,i,Tc,n)。因此,问题定义为:
max ⁡ P ( T ∣ l , i , T c , n ) , ( 1 ) \max P(T|l, i, T_c, n), \quad (1) maxP(Tl,i,Tc,n),(1)
其中  ( n , T c ) = M ( MTG ( o l , o v ) , K ) . ( 2 ) \text{其中 } (n, T_c) = M(\text{MTG}(o_l, o_v), K). \quad (2) 其中 (n,Tc)=M(MTG(ol,ov),K).(2)

3.2 基于几何的轨迹生成

轨迹集 T T T 由 MTG [24] 生成,它使用条件变分自编码器 (CVAE) 来生成具有相关置信度的轨迹。对于每个观测 { o l , o v } \{o_l, o_v\} {ol,ov},我们为 CVAE 解码器计算条件值 c = f c ( o l , o v ) c = f_c(o_l, o_v) c=fc(ol,ov),其中 f c ( ⋅ ) f_c(\cdot) fc() 表示感知编码器。然后从 c c c 计算嵌入向量 z = f z ( c ) z = f_z(c) z=fz(c),其中 f z ( ⋅ ) f_z(\cdot) fz() 表示一个神经网络。

由于解码器设计为用一个嵌入向量生成一条轨迹,因此生成多个不同轨迹需要具有代表性和多样性的嵌入向量。我们通过基于条件 c c c 的线性变换将嵌入向量 z z z 投影到不同的轴上,如公式3所示:
z k = A i ( c ) z + b i ( c ) = h ψ i ( z ) , ( 3 ) z_k = A_i(c)z + b_i(c) = h_{\psi_i}(z), \quad (3) zk=Ai(c)z+bi(c)=hψi(z),(3)
其中 h ψ i h_{\psi_i} hψi 表示 z z z 的线性变换。使用每个嵌入向量 z k z_k zk,解码器生成一条轨迹 T k T_k Tk,如公式4所述,其中 T k ∈ T T_k \in T TkT z k z_k zk Z ˉ k \bar{Z}_k Zˉk 分别是当前轨迹和其他轨迹嵌入集的嵌入向量。
p ( T k ∣ c ) = ∫ Z k P ( T k ∣ z k , c , Z ˉ k ) d z k . ( 4 ) p(T_k|c) = \int_{Z_k} P(T_k|z_k, c, \bar{Z}_k) dz_k. \quad (4) p(Tkc)=ZkP(Tkzk,c,Zˉk)dzk.(4)

3.3 基于VLM的轨迹选择

如算法1所示,生成的轨迹 T T T 是从最近的连续 t = 2 t=2 t=2 个时间步获得的。给定收集到的轨迹 T T T,我们将其转换为带有数字的图像平面:
( n , T c ) = M ( T , K , T c ) . ( 5 ) (n, T_c) = M(T, K, T_c). \quad (5) (n,Tc)=M(T,K,Tc).(5)

其中 T 0 T_0 T0 表示相机坐标系和机器人坐标系之间的外参变换。
考虑到从连续时间步生成的轨迹可能彼此非常接近,我们仅根据所有轨迹之间的 Hausdorff 距离从 T ′ ⊂ T T' \subset T TT 中选择代表性轨迹:
∀ T n , T m ∈ T ′ , d h ( T n , T m ) > d t , 其中  n ≠ m , ( 6 ) \forall T_n, T_m \in T', d_h(T_n, T_m) > d_t, \text{其中 } n \neq m, \quad (6) Tn,TmT,dh(Tn,Tm)>dt,其中 n=m,(6)
其中 d h ( ⋅ , ⋅ ) d_h(\cdot, \cdot) dh(,) 表示 Hausdorff 距离, d t d_t dt 表示距离阈值。
然后我们将轨迹 T ′ T' T 从机器人坐标系投影到相机坐标系, T r = P t ( T ′ , T c ) T_r = P_t(T', T_c) Tr=Pt(T,Tc)。随后将轨迹投影到相机图像平面 T c ′ = P c ( T r , K ) T_c' = P_c(T_r, K) Tc=Pc(Tr,K),其中 K K K 是相机的内参矩阵。按照轨迹生成序列,我们用数字 n n n 标注轨迹。
最后,将标注的轨迹 ( n , T c ) (n, T_c) (n,Tc) 和当前观测图像 i i i 输入到视觉语言模型 (VLM) 中,并使用提示指令 l l l 来选择在可通行性和到达目标的行驶距离方面最佳的轨迹:
τ = VLMs ( l , i , T c , n ) . ( 7 ) \tau = \text{VLMs}(l, i, T_c, n). \quad (7) τ=VLMs(l,i,Tc,n).(7)
提示指令的格式如下:
在这里插入图片描述

4 实验结果

在本节中,我们讨论我们方法的实现细节、定性结果、定量结果和消融研究。

4.1 实现细节

我们的方法在一个配备 Velodyne VLP16 LiDAR、Realsense D435i 和一台带有 Intel i7 CPU 及 Nvidia GeForce RTX 2080 GPU 的笔记本电脑的 Clearpath Husky 上进行测试。我们使用 MTG [24],它集成了带有注意力机制的 CVAE 以生成多个轨迹,并使用 GPT-4V [1] 作为 VLM 来选择最佳的可通行轨迹。TGS 在每次迭代中生成大约 15 米的轨迹。
我们用于 CVAE 轨迹生成模型的训练数据集包含三个部分:1) LiDAR 点云和机器人速度,2) 二进制可通行性地图,以及 3) 随机生成的不同目标和最短地面真实轨迹以到达目标。可通行性地图是基于 LiDAR 点构建的,然后我们手动编辑难以用 LiDAR 检测的区域。该地图仅用于训练和评估。
在这里插入图片描述
为了验证 TGS,我们展示了与 MTG [24](使用启发式方法,选择到目标最短行驶距离的轨迹)、ViNT [39]、NoMaD [43] 和 CoNVOI [34] 相比的定性和定量结果。为了评估,我们随机选择了 MTG 和 TGS 在前方 50 米内的目标。ViNT、NoMaD 和 CoNVOI 不考虑到达目标的最优性。MTG 仅将 LiDAR 作为输入,而 ViNT 和 NoMaD 仅将 RGB 图像作为输入。CoNVOI 采用与我们类似的方法,将 LiDAR 作为输入以在 RGB 图像中标记数字,并使用这些带注释的图像作为 VLM 的输入来生成轨迹。我们设置了以下四个具有挑战性的基准场景:

  • 花坛 (Flower bed): 机器人在花坛旁边的铺砌区域导航。机器人必须停留在铺砌路径上并避开花坛。由矮草组成的开放式花坛很难用 LiDAR 检测。
  • 路缘 (Curb): 机器人在人行道上导航,人行道通过路缘与车行道明显分开。机器人必须停留在人行道上。由于人行道和车行道对于轮式机器人来说都可被认为是可通行的,因此在没有周围环境上下文的情况下选择可通行的轨迹具有挑战性。
  • 人行横道 (Crosswalk): 机器人在斑马线上过马路。机器人在过马路时必须停留在人行横道上。考虑到上下文,选择铺设在人行横道上的可通行轨迹很困难。
  • 拐角处 (Around the corner): 机器人朝向拐角处的目标导航。机器人必须绕过拐角,而不是走向死胡同。在不理解环境空间上下文的情况下,很难避免这样的死胡同。

4.2 定性结果

图2显示了四种不同方法在四种不同场景下的最终机器人轨迹。上面一行显示了包括我们在内的所有比较方法生成的轨迹,下面一行显示了使用TGS的候选轨迹和最终选择的轨迹。我们证明了我们的方法可以生成并选择一条在几何和语义上都可行的远程轨迹。

像ViNT [39]和NoMaD [43]这样的基于视觉的导航方法,依赖于将当前图像与预先录制的子目标图像进行比较。这些方法在沿着具有显著视觉特征的直线路径(尤其是在人行横道场景中)方面是成功的。然而,这些方法在有转弯的场景中通常难以生成可行的轨迹。在场景发生重大变化的情况下,准确性会显著下降。带有启发式算法的MTG会选择最接近目标点的轨迹,这通常会导致路径可能不遵循人行道和人行横道。在目标点位于弯道后或结构物后面的角落情况下,MTG往往会尝试直接穿过,而不是有效地绕过结构物,从而导致失败。CONVOI生成的轨迹在几何和语义上都是可行的。然而,这些轨迹是连接两个航点的直线,相对较短,可能导致机器人动作不平滑。如图2中每个场景的底部行所示,我们的方法产生多样化的轨迹,并选择那些考虑周围环境上下文的轨迹。

4.3 定量结果

为了进一步验证TGS,我们使用两种不同的指标评估这些方法:

  • 可通行性 (Traversability): 生成的轨迹位于可通行区域的比率。该指标计算公式为:
    在这里插入图片描述

    其中 c ( ⋅ ) c(\cdot) c() 判断航点 w m w_m wm 是否在可通行区域 A A A 内。

  • 相对于人类遥操作的弗雷歇距离 (Fréchet Distance w.r.t. Human Teleoperation): 弗雷歇距离 [3] 是衡量两条曲线相似性的指标之一。我们测量由这些方法生成和选择的轨迹与人类遥操作轨迹之间的相似性。较低的距离表示较高的相似度。

表1报告了每种方法和场景在100帧上的平均结果。结果表明,TGS在大多数情况下优于其他SOTA方法。具体而言,我们在平均可通行性方面实现了至少3.35%和至多47.74%的改进率,在平均弗雷歇距离方面实现了至少20.61%和至多40.98%的改进率。总体而言,平均改进

在可通行性方面的比率约为22.07%,在弗雷歇距离方面约为30.53%。CONVOI在可通行性方面取得了可比较的结果。然而,这是因为CONVOI计算的轨迹相对较短,这意味着航点落在不可通行区域的可能性要小得多。我们观察到,因为CONVOI只考虑两个航点的可通行性,而不考虑线性连接这两个选定点的点,所以中间点通常位于不可通行区域。我们还观察到MTG在可通行性方面的结果非常低。这不仅是因为我们的基准场景是基于难以用LiDAR检测的场景选择的,而且还因为MTG在关注目标最优性的同时,常常未能考虑可通行性。在弗雷歇距离方面,MTG和TGS产生了良好的结果,因为它们输出的轨迹长度与我们比较的15米长的人工操作轨迹相似。相比之下,CONVOI生成的线性轨迹与典型的人工操作轨迹有显著不同,导致相似性较低。

表1. 定量结果: 与MTG [24]、ViNT [39]、NoMaD [43]和CONVOI [34]在可通行性和类人导航相似性方面的比较。TGS在可通行性方面至少提高了3.35%,在弗雷歇距离方面至少提高了20.61%。在输入列中,L表示LiDAR点云,I表示RGB图像。
在这里插入图片描述

4.4 消融研究

为了评估我们创新中不同组件的能力,我们将TGS与两种不同的设置进行比较。首先,我们与仅使用MTG,并采用启发式方法选择到目标最短行驶距离的设置进行比较。这种比较显示了我们的视觉标记和VLM如何处理需要周围环境上下文信息的更多样化和更具挑战性的场景。其次,我们与仅使用带有视觉注释的VLM [30],并采用随机采样方法生成轨迹进行比较。这种比较显示了给VLM一组好的候选轨迹如何使我们的方法受益。
如图3和图2所示,当比较MTG和TGS时,MTG未能考虑那些难以从LiDAR检测的可通行性。例如,矮草花坛、路缘和人行横道就是这样的场景。TGS同时使用从LiDAR获得的几何信息生成多个候选轨迹,以及从图像获得的语义信息来选择可行的轨迹。特别是因为MTG使用启发式方法(到目标的距离)选择轨迹,它通常会导致轨迹越过草地或路缘。这显示了视觉提示方法如何帮助做出人类水平的轨迹选择决策。与使用基于CVAE的轨迹生成方法生成候选轨迹不同,图3©展示了随机采样的候选轨迹,这是PIVOT [30]探索的一种视觉提示方法。我们随机采样了前方5米到15米范围内的航点,然后线性连接这些点以生成轨迹。与PIVOT方法不同,我们没有应用迭代提问方法,这不适用于我们的实时导航流程,而是生成了10个随机点。虽然这种方法可以从提供的候选轨迹中选择最佳轨迹,但与TGS相比,它在与人类操作轨迹的相似性方面并未产生最优轨迹。这突显了轨迹生成的重要性,即为VLM提供高质量的候选轨迹。
图4展示了不同的视觉标记方法。红线和数字是提供给VLM的输入标记。绿线表示VLM选择的轨迹。CONVOI使用数字标记无障碍区域并选择数字进行导航。尽管标记的区域可能是无障碍的,但它不考虑中间的航点。这可能导致穿过障碍物。PIVOT随机生成子目标,并线性连接它们。由于目标是随机生成的,它通常无法生成好的候选轨迹。TGS结合了这两种方法的优点。虽然基于CVAE的轨迹生成产生多样化的轨迹,但它利用带有线条和数字的视觉提示来辅助VLM的空间推理,最终选择最可行的轨迹。

5 结论、局限性和未来工作

我们提出了TGS,一种新颖的多模态轨迹生成和选择方法,用于无地图室外导航。TGS将基于CVAE的轨迹生成方法与基于VLM的轨迹选择过程相结合,以在具有挑战性的室外环境中计算几何和语义上可行的轨迹。我们的方法在可通行性方面至少提高了3.35%,在与人类操作轨迹的相似性方面提高了20.61%。
我们的方法有一些局限性。由于TGS依赖于VLM,其性能可能取决于VLM的鲁棒性。然而,随着VLM的不断改进(目前正在发生),我们方法的鲁棒性也可以得到增强。此外,我们的轨迹生成方法可以随时被更好的方法所取代,从而可能带来进一步的性能提升。

相关文章:

【VLNs篇】05:TGS-在无地图室外环境中使用视觉语言模型进行轨迹生成和选择

栏目内容论文标题TGS: Trajectory Generation and Selection using Vision Language Models in Mapless Outdoor Environments (TGS:在无地图室外环境中使用视觉语言模型进行轨迹生成和选择)研究问题在具有非结构化越野特征(如建筑物、草地、路缘&#x…...

【未来展望】云、AI与元宇宙的融合架构

未来展望:云、AI与元宇宙的融合架构 一、技术背景与发展:从独立演进到深度融合二、技术特点:异构协同与场景化适配三、技术细节:架构层解构与核心组件四、未来发展:技术趋势与产业机遇五、结语:硅基与碳基文明的共生演进一、技术背景与发展:从独立演进到深度融合 云计算…...

React+Taro 微信小程序做一个页面,背景图需贴手机屏幕最上边覆盖展示

话不多说 直接上图 第一步 import { getSystemInfoSync } from tarojs/taro;第二步 render() {const cardBanner getImageUrlByGlobal(member-merge-bg.png);const { safeArea, statusBarHeight } getSystemInfoSync();const NAV_BAR_HEIGHT 44;const navBarHeight NAV…...

Linux笔记---信号(下)

1. sigaction函数 #include <signal.h>int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); 功能&#xff1a;sigaction函数用于检查或修改与指定信号相关联的处理动作。它可以用来设置信号处理函数、信号掩码等。 参数 signum&#…...

腾讯云媒体AI解码全球视频出海智能密码

当短剧平台撞上多语种字幕困境&#xff0c;当直播电商遭遇文化审核危机&#xff0c;当经典影视困于格式壁垒——这些内容出海的难题&#xff0c;正被腾讯云媒体AI的智能引擎逐个破解。从东南亚的直播卡顿到中东的宗教符号雷区&#xff0c;从老片的低清画质到元宇宙的渲染瓶颈&a…...

Django的请求和响应+template模板

&#x1f31f; 如果这篇文章触动了你的心弦&#xff0c;请不要吝啬你的支持&#xff01; 亲爱的读者&#xff0c; 感谢你花时间阅读这篇分享。希望这里的每一个字都能为你带来启发或是让你会心一笑。如果你觉得这篇文章有价值&#xff0c;或者它解决了你一直以来的一个疑问&a…...

JAVA8怎么使用9的List.of

在 Java 8 中&#xff0c;List.of 方法并不可用&#xff0c;因为这是从 Java 9 开始引入的用于创建不可变列表的便捷方法。要在 Java 8 中达到类似的效果&#xff0c;您需要使用其他方式来创建列表。常规的方法是先创建集合对象然后再添加元素 List<String> list new A…...

无人机避障——深蓝学院浙大Ego-Planner规划部分

ESDF-free&#xff1a; 被这种类型的障碍物死死卡住的情况&#xff1a; 在一定范围内建立ESDF&#xff1a; Ego-Planner框架&#xff1a; 找到{p,v} pair&#xff1a; 【注意】&#xff1a;首先根据在障碍物内航迹上的点Q&#xff0c;以及与它相邻但不在障碍物内的两个点&#…...

Qt 最新版6.9.0使用MQTT连接腾讯云详细教程

Qt 最新版6.9.0使用MQTT连接腾讯云详细教程 一、MQTT介绍二、MQTT库编译1、源码下载2、源码编译 三、库的使用方法四、MQTT连接设备1、包含头文件 2、定义一个mqtt客户端3、实例并连接相关信号与槽4、连接服务器5、订阅topic 一、MQTT介绍 1. 概述 全称: Message Queuing Tel…...

无人机避障——深蓝学院浙大栅格地图以及ESDF地图内容

Occupancy Grid Map & Euclidean Signed Distance Field: 【注意】&#xff1a;目的是为了将有噪声的传感器收集起来&#xff0c;用于实时的建图。 Occupancy Grid Map&#xff1a; 概率栅格&#xff1a; 【注意】&#xff1a;由于传感器带有噪声&#xff0c;在实际中基于…...

Vitis 2021.1安装步骤

1.将压缩文件解压 2.打开解压后的文件夹&#xff0c;双击应用程序 3.安装版本2021.1&#xff0c;不安装2024.2&#xff0c;点击“continue”,然后点击“next” 4.选择“vitis”&#xff0c;然后点击“next” 5.点击“next” 6.选择“I Agree”&#xff0c;点击“next…...

【Harmony】【鸿蒙】List列表View如果刷新内部的自定义View

创建自定义View Component export struct TestView{State leftIcon?:Resource $r(app.media.leftIcon)State leftText?:Resource | string $r(app.string.leftText)State rightText?:Resource | string $r(app.string.rightText)State rightIcon?:Resource $r(app.med…...

我店模式系统开发打造本地生活生态商圈

在当今快节奏的商业环境中&#xff0c;商家们面临着越来越多的挑战&#xff0c;包括市场竞争加剧、消费者需求多样化以及运营效率的提高等。为了应对这些挑战&#xff0c;越来越多的商家开始寻求信息化解决方案&#xff0c;以提升运营效率和客户体验。我的店模式系统平台应运而…...

LeetCode[222]完全二叉树的节点个数

思路&#xff1a; 这个节点个数可以使用递归左儿子个数递归右儿子个数1&#xff0c;这个1是根节点&#xff0c;最后结果为节点个数&#xff0c;但我们没有练习到完全二叉树的性质. 完全二叉树的性质是&#xff1a;我简单说一下&#xff0c;大概就是其他节点都满了&#xff0c;就…...

电机试验平台:实现高效精密测试的关键工具

电机是现代工业中广泛应用的关键设备&#xff0c;其性能直接影响着生产效率和产品质量。为了确保电机的可靠运行和优化设计&#xff0c;电机试验平台成为不可或缺的工具。本文将探讨电机试验平台的概念、功能和应用&#xff0c;以及其在实现高效精密测试中的关键作用。 一、电…...

基于 ZigBee 的 LED 路灯智能控制器的设计

标题:基于 ZigBee 的 LED 路灯智能控制器的设计 内容:1.摘要 本文围绕基于 ZigBee 的 LED 路灯智能控制器展开研究。背景在于传统路灯控制方式存在能耗高、管理不便等问题&#xff0c;为实现路灯的智能化控制和节能目的&#xff0c;采用 ZigBee 无线通信技术来设计 LED 路灯智…...

LeetCode Hot100 (哈希)

1. 两数之和 比较简单&#xff0c;建立个map&#xff0c;看看有没有当前对应的相反的值就可以了 class Solution {public int[] twoSum(int[] nums, int target) {TreeMap<Integer, Integer> arrnew TreeMap<Integer, Integer>();int x10;int x20;for(int i0;i<…...

【力扣题目分享】二叉树专题(C++)

目录 1、根据二叉树创建字符串 代码实现&#xff1a; 2、二叉树的层序遍历 代码实现&#xff1a; 变形题&#xff1a; 代码实现&#xff1a; 3、二叉树的最近公共祖先 代码实现&#xff1a; 4、二叉搜索树与双向链表 代码实现&#xff1a; 5、从前序与中序遍历序列构…...

【烧脑算法】单序列双指针:从暴力枚举到高效优化的思维跃迁

目录 相向双指针 1498. 满足条件的子序列数目 1782. 统计点对的数目 581. 最短无序连续子数组 同向双指针 2122. 还原原数组 ​编辑 2972. 统计移除递增子数组的数目 II ​编辑 思维拓展 1920. 基于排列构建数组 442. 数组中重复的数据 448. 找到所有数组中消失的…...

如何排查服务器 CPU 温度过高的问题并解决?

服务器CPU温度过高是一个常见的问题&#xff0c;可能导致服务器性能下降、系统稳定性问题甚至硬件损坏。有效排查和解决服务器CPU温度过高的问题对于确保服务器正常运行和延长硬件寿命至关重要。本文将介绍如何排查服务器CPU温度过高的问题&#xff0c;并提供解决方法&#xff…...

YOLO篇-3.1.YOLO服务器运行

1.服务器 服务器网站&#xff1a;AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL(这个是收费的) 2.数据集上传 进入网站&#xff0c;租用自己的服务器&#xff0c;租用好后点击jupyter。(这里需要先有一个数据集哦) 在根目录下进入datasets创建自己的工程名 在工程文件下…...

数智读书笔记系列034《最优解人生》对编程群体的理念契合

📘 书籍简介 核心观点 《Die with Zero》(中文译为《最优解人生》)由美国对冲基金经理比尔柏金斯(Bill Perkins)撰写,核心理念是“财产归零”。其核心主张是: 金钱是实现体验的工具:金钱本身无意义,其价值在于转化为有意义的体验,如旅行、学习、家庭时光或慈善活动…...

深度学习相比传统机器学习的优势

深度学习相比传统机器学习具有显著优势&#xff0c;主要体现在以下几个方面&#xff1a; 1. 特征工程的自动化 传统机器学习&#xff1a;依赖人工设计特征&#xff08;Feature Engineering&#xff09;&#xff0c;需要领域专家从原始数据中提取关键特征&#xff08;如边缘检测…...

深入探究C++11的核心特性

目录 引言 C11简介 统一的列表初始化 1. {} 初始化 2. std::initializer_list 变量类型推导 1. auto 2. decltype 3. nullptr 右值引用和移动语义 1. 左值引用和右值引用 2. 左值引用与右值引用比较 3. 右值引用使用场景和意义 移动赋值与右值引用的深入应用 1. 移…...

nltk-英文句子分词+词干化

一、准备工作 ①安装好nltk模块并在&#xff1a; nltk/nltk_data: NLTK Data 链接中手动下载模型并放入到对应文件夹下。 具体放到哪个文件夹&#xff0c;先执行看报错后的提示即可。 ②准备pos_map.json文件&#xff0c;放置到当前文件夹下。该文件用于词性统一 {"…...

系统性能分析基本概念(3) : Tuning Efforts

系统性能调优&#xff08;Tuning Efforts&#xff09;是指通过优化硬件、软件或系统配置来提升性能&#xff0c;减少延迟、提高吞吐量或优化资源利用率。以下是系统性能调优的主要努力方向&#xff0c;涵盖硬件、操作系统、应用程序和网络等多个层面&#xff0c;结合实际应用场…...

部署TOMEXAM

前提&#xff1a;机器上有MySQL&#xff0c;nginx&#xff0c;jdk&#xff0c;tomcat 1.配置MySQL [rootjava-tomcat1 ~]# mysql -u root -pLiuliu!123 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. C…...

Nginx 1.25.4交叉编译问题:编译器路径与aclocal.m4错误解决方案

Nginx 1.25.4交叉编译问题&#xff1a;编译器路径与aclocal.m4错误解决方案 一、问题描述 在对Nginx 1.25.4进行交叉编译时&#xff0c;遇到以下复合问题&#xff1a; 编译器路径失效&#xff1a;尽管在脚本中配置了交叉编译器&#xff08;如CCaarch64-himix100-linux-gcc&a…...

FPGA通信之VGA

文章目录 基本概念&#xff1a;水平扫描&#xff1a;垂直扫描&#xff1a; 时序如下&#xff1a;端口设计疑问为什么需要输出那么多端口不输出时钟怎么保证电子枪移动速度符合时序VGA转HDMI 仿真电路图代码总结&#xff1a;野火电子yyds 为了做图像处理&#xff0c; 现在我们开…...

[Git] 认识 Git 的三大区域 文件的修改和提交

文章目录 认识 Git 的三大区域&#xff1a;工作区、暂存区、版本库工作区、暂存区、版本库的关系流程图解 (概念) 将文件添加到仓库进行管理&#xff1a;git add 和 git commit场景一&#xff1a;第一次添加文件到仓库查看提交历史&#xff1a;git log&#xff08;进阶理解&…...

交叉编译DirectFB报错解决方法

configure: error: *** DirectFB compilation requires fluxcomp *** Unless you are compiling from a distributed tarball you need fluxcomp available from git://git.directfb.org/git/directfb/core/flux installed in your PATH. 需要先编译安装flux git clone http…...

AllToAll通信为什么用于EP并行?

1 AllToAll通信原理 首先要明白ALLTOALL通信是做了什么事情。 假设我们有3个进程&#xff08;A、B、C&#xff09;&#xff0c;每个进程都有三段数据&#xff0c;分别是a1, a2, a3&#xff1b;b1, b2, b3&#xff1b;c1, c2, c3。 进程A想发送&#xff1a;a1到进程A自己&…...

深入掌握Node.js HTTP模块:从开始到放弃

文章目录 一、HTTP模块入门&#xff1a;从零搭建第一个服务器1.1 基础概念解析1.2 手把手创建服务器 二、核心功能深入解析2.1 处理不同请求类型2.2 实现文件下载功能 三、常见问题解决方案3.1 跨域问题处理3.2 防止服务崩溃3.3 调试技巧 四、安全最佳实践4.1 请求头安全设置4.…...

python安装与使用

Python的安装 1.官网下载python安装包 https://www.python.org/ 2.安装python 勾选add python 3.8 to api将python加入变量 选择Customize installation进行自定义安装 一直选next直到下面界面&#xff0c;根据自己需要将python安装到指定位置&#xff0c;然后install 等贷…...

2025最新版Visual Studio Code for Mac安装使用指南

2025最新版Visual Studio Code for Mac安装使用指南 Installation and Application Guide to The Latest Version of Visual Studio Code in 2025 By JacksonML 1. 什么是Visual Studio Code&#xff1f; Visual Studio Code&#xff0c;通常被称为 VS Code&#xff0c;是由…...

VSCode GitHub Copilot 安装与使用完全指南

文章目录 一、安装准备1.1 系统要求1.2 Copilot订阅选择1.3 获取访问权限 二、安装步骤2.1 安装GitHub Copilot基础扩展2.2 安装GitHub Copilot Chat扩展2.3 登录和授权 三、基本使用&#xff1a;代码自动完成3.1 内联代码建议3.2 自定义Copilot配置3.3 使用注释引导Copilot 四…...

Github超19k+ strar的实时协同编辑的开源框架yjs

Yjs 是一个用于实现实时协同编辑的开源框架&#xff0c;具有以下关键特性和应用价值&#xff1a; 核心特性 基于 CRDT 算法 Yjs 采用无冲突复制数据类型&#xff08;CRDT&#xff09;&#xff0c;确保多用户同时编辑同一文档时无需复杂锁机制或中央协调&#xff0c;最终实现数据…...

【Node.js】工具链与工程化

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js 工具链概述1.1 工具链的作用1.2 Node.js 工具链全景 2. 包管理与依赖管理2.1 npm (Node Package Manager)2.2 yarn2.3 pnpm2.4 锁文件与依赖管理2.5 工作空间与 Monorepo 3. 构建工具与打包3.1 Web…...

OceanBase数据库全面指南(函数篇)函数速查表

文章目录 一、数学函数1.1 基本数学函数1.2 三角函数二、字符串函数2.1 基本字符串函数2.2 高级字符串处理函数三、日期时间函数3.1 基本日期时间函数3.2 日期时间计算函数四、聚合函数4.1 常用聚合函数4.2 分组聚合4.3 高级聚合函数五、条件判断函数5.1 基本条件函数5.2 CASE表…...

Chrome 缓存文件路径

Chrome 缓存文件路径查看方法 启动 Chrome 浏览器, 输入 Chrome://Version Google浏览器版本号以及安装路径 Windows 缓存目录 在 “运行” 中输入 %TEMP% 可打开, 一般路径是: C:\Users\Administrator\AppData\Local\Temp, 其中 Administrator 是用户名。 Windows 目录…...

Ubuntu Desktop 24.04 常用软件安装步骤

文章目录 Ubuntu Desktop 24.04 常用软件安装步骤Snipaste F1快捷截图&#xff08;超方便 | 我6台电脑每台都用&#xff09;搜狗输入法快速浏览工具 | 空格键快速预览文件壁纸工具 | varietySSH 工具 | Termius 终端分屏工具 | TmuxCaffeine | 避免息屏小工具 一些设置将启动台…...

Chrome 插件网络请求的全面指南

在 Chrome 插件开发中&#xff0c;网络请求可以在多个上下文中实现&#xff0c;而不仅限于 background.js 和 content.js。以下是完整的网络请求实现方案&#xff1a; 一、主要请求实现位置 1. Background Script (后台脚本) 特点&#xff1a; 生命周期最长适合处理敏感数据…...

SpringBoot Day_03

目录 一、数据校验 二、统一异常处理 1、局部异常处理&#xff08;少&#xff09; 2、全局异常处理&#xff08;多&#xff09; 三、定时器 四、springboot日志 五、swagger 六、springboot自动装配原理 总结 1、如何实现参数校验功能&#xff08;掌握&#xff09; …...

Ubuntu 新建用户

在 Ubuntu 22.04 中创建新用户并赋予 root 权限的步骤如下&#xff0c;综合多篇文档推荐的安全方法&#xff1a; 一、创建新用户 使用 adduser 命令创建用户 sudo adduser your_username系统会提示设置密码及填写用户信息&#xff08;全名、电话等&#xff0c;可直接回车跳过&a…...

从法律视角看湖北理元理律师事务所的债务优化实践

债务问题解决需要专业法律支持。本文将从实务角度&#xff0c;解析湖北理元理律师事务所在债务优化领域的工作方法&#xff0c;为有需要的读者提供参考。 一、法律框架下的债务重组 利率合法性审查 识别超过法定上限的利息部分 收集相关证据材料 启动协商或诉讼程序 还款…...

# JavaSE核心知识点02面向对象编程

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 JavaSE核心知识点02面向对象编程JavaSE核心知…...

从原理到实践:一文详解残差网络

在深度学习的发展历程中&#xff0c;神经网络的深度一直是提升模型性能的关键因素之一。随着网络层数的增加&#xff0c;模型理论上可以学习到更复杂、更抽象的特征表示。然而&#xff0c;在实际训练过程中&#xff0c;研究人员发现&#xff0c;当网络深度达到一定程度后&#…...

把银河装进镜头里!动态星轨素材使用实录

仰望夜空时&#xff0c;神秘的银河与闪烁繁星总令人向往。如今&#xff0c;无需复杂拍摄&#xff0c;借助素材平台就能将绝美星轨融入创作&#xff0c;今天重点安利 制片帮素材&#xff01; 动态星轨&#xff1a;宇宙的浪漫印记 星轨是地球自转时&#xff0c;星星运动留下的轨…...

C++23中std::span和std::basic_string_view可平凡复制提案解析

文章目录 一、引言二、相关概念解释2.1 平凡复制&#xff08;Trivially Copyable&#xff09;2.2 std::span2.3 std::basic_string_view 三、std::span和std::basic_string_view的应用场景3.1 std::span的应用场景3.2 std::basic_string_view的应用场景 四、P2251R1提案对std::…...

【KWDB 2025 创作者计划】_KWDB时序数据库特性及跨模查询

一、概述 数据库的类型多种多样&#xff0c;关系型数据库、时序型数据库、非关系型数据库、内存数据库、分布式数据库、图数据库等等&#xff0c;每种类型都有其特定的使用场景和优势&#xff0c;KaiwuDB 是一款面向 AIoT 场景的分布式、多模融合、支持原生 AI 的数据库…...