【论文阅读】Vison-Language Navigation 视觉语言导航(1)

ACL 2022 VLN视觉和语言导航:任务、方法和未来方向综述

多模态任务新蓝海:视觉语言导航最新进展

Leader board in VLN

RXR: Room-across-Room (RxR) is a large-scale, multilingual dataset for Vision-and-Language Navigation (VLN) in Matterport3D environments. It contains 126k navigation instructions in English, Hindi and Telugu, and 126k navigation following demonstrations. Both annotation types include dense spatiotemporal alignments between the text and the visual per…
在这里插入图片描述

在这里插入图片描述

1. 【2023CVPR】CoWs on PASTURE: Baselines and Benchmarks for Language-Driven Zero-Shot Object Navigation

摘要和结论

  • 我们研究了一个简单的框架,车轮上的CLIP(CoW,CLIP on Wheels),以在不进行微调的情况下使开放词汇模型适应这项任务。
  • 为了更好地评估L-ZSON,我们引入了PASTURE基准,该基准考虑了查找不常见的对象、由空间和外观属性描述的对象以及相对于可见对象描述的隐藏对象。
  • 我们将CoW视为一个使用开放词汇表模型(open vocabulary model)和基于文本的界面在更灵活的环境中处理机器人任务的例子。

引言

  • 语言驱动的零样本物体导航(L-ZSON)是一种在机器人领域的任务,要求机器人根据自然语言描述找到特定物体,而无需在目标物体或领域上进行导航训练。这个任务比传统的物体导航和零样本物体导航(ZSON)任务更具挑战性,因为它需要机器人根据不同层次的粒度(例如,“玩具飞机”、“床下的玩具飞机"或"木质玩具飞机”)找到目标物体。在L-ZSON中,机器人必须在不使用预先训练好的导航模型的情况下,通过自然语言描述推断目标物体的位置。
  • 我们设计 PASTURE(如图 1 所示)来研究传统对象导航代理(在一组固定类别上进行训练)所不具备的功能。我们考虑以下能力:
    (1)不常见物体(例如“扎染冲浪板”),
    (2)在存在干扰物体的情况下通过 空间和外观属性 找到物体(例如“青苹果”与“红苹果”) ”),以及
    (3)无法用肉眼观察到的物体(例如“床下的杯子”)。

模型框架

问题定义:
语言驱动的零样本对象导航(L-ZSON),导航到语言指定的目标对象,无需明确的训练即可实现。让 O 表示具有潜在属性的目标对象的一组自然语言描述(例如,“植物”、“蛇植物”、“床下的植物”等)。让S表示导航场景的集合。让 p_0 描述代理的初始姿势。导航episode τ ∈ T 被写为元组 τ = (s, o, p_0), s ∈ S, o ∈ O。每个 τ 都是零样本任务,因为在训练期间看不到这种形式的元组。从 p_0 开始,具体代理的目标是找到 o(目标)。代理 agent 接收观察结果和传感器读数 I_t(例如 RGB-D 图像)。在每个时间步 t,代理执行导航动作 a ∈ A。特殊动作 STOP ∈ A 终止情节。如果智能体位于 o 的 c 个单位内并且满足可见性标准,则该事件成功。

在这里插入图片描述
CoW 将一个以自我为中心的 RGB-D 图像和一个用语言指定的对象目标作为输入。当 CoW 移动时,它会更新使用 RGB-D 观察和姿势估计创建的自上而下的世界地图(第 4.1 节)。每个 CoW 都有一个探索策略(exploration policy)和一个零样本对象定位模块(zero-shot object localization module),如图 2 所示。为了观察场景的不同视图,CoW 使用策略进行探索(第 4.2 节)。当 CoW 漫游时,它使用对象定位模块(第 4.3 节)及其自上而下的地图来跟踪其对目标对象位置的置信度。当 CoW 的置信度超过阈值时,它会计划目标位置并发出 STOP 操作。

在这里插入图片描述

4.1 Depth-based Mapping 基于深度的地图建模: 当 CoW 移动时,它会使用输入深度、姿势估计和已知的代理高度构建一个自上而下的地图。靠近地板的单元格被认为是自由空间(图3(a)中的白点),而其他单元格被认为是占用的(图3(a)中的蓝点)。

4.2 Exploration基于边界的探索,使用简单的探索启发式进行导航:移动到自由空间和未知空间之间的边界以发现新区域。一旦导航器到达边界(如图 3 (a) 中的紫色点所示),它就会贪婪地移动到下一个最近的边界。 可学习的探索,具体来说,我们采用了一个冻结的 CLIP 主干,带有可训练的 GRU 和用于动作和批判网络的线性头。

可学习的探索我还是没懂?涉及到强化学习。

4.3. Object Localization : 从 2D 图像中提取的高对象相关性区域被投影到基于深度的映射(图 3 (b)),它们用作自然导航目标。(类似注意力热图)①k个referring expresssion推理表达式,将k个文本嵌入与CLIP视觉特征进行匹配。②将图片打成patch,如果目标对象在一个patch中,则patch的相关性得分就高。③④

实验

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. 【CVPR2022】HOP: History-and-Order Aware Pre-training for Vision-and-Language Navigation

多模态任务新蓝海:视觉语言导航最新进展

摘要和结论

  • 以前的VLN预训练方法要么缺乏预测未来行动的能力,要么忽略了轨迹上下文,这对贪婪导航过程至关重要。

  • 为了促进对时空-视觉-文本对应关系的学习以及智能体的决策能力,我们提出了一种新的历史和顺序感知预训练范式(HOP,history-and-order aware pre-training paradigm),该范式具有VLN特定的目标,利用过去的观测结果并支持未来的行动预测

  • 具体来说,除了常用的掩蔽语言建模(MLM)和轨迹构造匹配(TIM)外,我们还设计了两个代理任务来对时间顺序信息进行建模:轨迹顺序建模(TOM)和组顺序建模(GOM)(Trajectory Order Modeling (TOM) and Group Order Modeling (GOM))。此外,我们的导航动作预测还通过引入历史动作预测(APH,Action Prediction with History)任务来增强,该任务考虑了历史视觉感知。

引言

  • 尽管存在差异,但代理的导航主要被表述为顺序的文本到图像的基础问题。也就是说,位于预定义连接图上的特定节点处,代理通过选择图像表示和指令之间具有最大对应关系的相邻节点来遍历环境。 (离散的点,discrete navigation
    因此,视觉文本匹配被认为是解决 VLN 任务的关键。
  • VLN-BERT和AirBERT在预训练期间都放弃了导航动作预测,削弱了所学习的表示与最终目标(导航动作预测)之间的关系。相比之下,PREVALENT[9]引入了一个单步动作预测任务,旨在学习面向动作的通用视觉语言表示,该任务可应用于贪婪搜索VLN。(先前的方法)
  • 然而,PREVALENT在很大程度上忽略了预训的重要历史背景。
    它只将单个步骤的静态全景图像作为视觉输入,而没有考虑历史轨迹信息。事实上,VLN是一个部分可观测的马尔可夫决策过程(POMDP),其中主体在很大程度上依赖于过去的经验来做出未来的行动决策。
    此外,VLN是一个对轨迹的序列顺序敏感的时空任务。因此,时序推理能力也有利于行动决策。然而,上述三种方法都没有明确地从指令或视觉观察中挖掘时间顺序信息。(有什么直觉上的缺点,说出来大家觉得这个缺点是对的)

在这里插入图片描述

  • **(我们针对缺点的改进)**为了解决上述问题,在这项工作中,我们提出了一种新的历史和顺序感知预训练范式,以增强VLN任务的视觉-文本对应关系的学习。
    首先,我们为动作预测任务提供历史视觉观察,称为 Action Prediction with History (APH),这有助于模型定位要执行的子指令,从而提高动作预测的准确性。其次,我们设计了两个感知订单的代理任务,Trajectory Order Modeling (TOM)Group Order Modeling (GOM)。给定指令,TOM要求模型从细粒度水平恢复混洗的视觉轨迹的顺序,GOM要求模型从粗略水平预测两组子轨迹的顺序。这两项任务明确地为模型提供了理解指令中的时间顺序的能力,以及视觉文本匹配能力。拟议的预训练和微调任务的总体情况如图1所示。

在这里插入图片描述

模型框架

在这里插入图片描述
该模型以 指令轨迹对(instruction-trajectory pair) 为输入,首先利用语言编码器和视觉编码器分别从指令和图像序列中提取单模态表示。然后,这些表示被馈送到跨模态编码器中,以实现两种模态之间的交互,并生成最终的融合表示。
在这里插入图片描述
在这里插入图片描述

我们首先使用在ImageNet上预训练的ResNet-152[10]来提取每个前视图图像vi的2048维图像。计算航向角α和仰角β的方向特征,表示为rsinα、cosα、sinβ、cosβ,并重复32次以构成一个128维方向特征向量vd。将两者进行串联,组成2176维向量。

在这里插入图片描述

在这里插入图片描述
跨模态编码器的输出被用作预训练和下游任务的跨模态特征。

预训练任务设置

Masked Language Modeling (MLM): 对于VLN预训练,MLM的目标是通过对周围单词wzm和轨迹τ的推理来恢复掩蔽单词wm。
Trajectory-Instruction Matching (TIM) : TIM是一个全局匹配任务,旨在预测给定的图像轨迹和指令是否是匹配的一对。TIM的输入是指令轨迹对(w, t)。在训练过程中,我们通过用不匹配的轨迹随机替换轨迹来生成负样本,概率为50%。 具体而言,生成的负样本仅从同一环境中选择,因此模型可以专注于区分路径而不是环境。我们使用[CLS]的特殊令牌的输出表示作为指令轨迹对的联合表示,然后将其馈送到具有sigmoid函数的FC层中,以预测匹配分数sθ(w,τ)。

Trajectory Order Modeling (TOM): VLN对 轨迹的序列顺序 很敏感,因此我们设计了TOM任务,使模型能够学习指令中的时间顺序以及视觉文本对应关系。TOM的输入是指令w和重新排序的轨迹τ1。具体而言,我们随机选择原始轨迹τ的50%图像进行混洗。TOM的目标是重建正确的顺序r“xr1,r2,…,rN是参考给定指令w的原始轨迹τ,其中N是轨迹的步数。

Group Order Modeling (GOM): 与 TOM 具有相同的动机,但在子轨迹 sub-trajectory 级别。它预测两个子轨迹之间的前一个、下一个或随机关系。如图 3 所示,GOM 的输入是指令 w 和从轨迹 τ 导出的图像序列组 (G1, G2)。具体来说,我们将轨迹依次均匀地分为两部分(G1,G2)。

在这里插入图片描述
Action Prediction with History (APH): 该任务的动机是使学习到的表示有利于最终目标:预测导航动作。

3. 【CVPR2022】Bridging the Gap Between Learning in Discrete and Continuous Environments for Vision-and-Language Navigation

将离散设置下的GT中的waypoints,以一种新的预测的形式挪用到连续导航的setting下。算是在连续的设置下,模型计算出的离散的点。(还算直白)

摘要和结论

  • 大多数视觉和语言导航(VLN)领域的现有工作都集中在离散或连续环境上,训练代理无法在这两者之间进行泛化。尽管学习在连续空间中导航更接近现实世界,但训练这样的智能体比在离散空间中训练智能体要困难得多。然而,由于域间隙,离散 VLN 的最新进展很难转化为连续 VLN。
    两种设置之间的根本区别在于,离散导航假设环境连接图的先验知识,因此代理可以有效地将低级控制的导航问题转移到具有高级操作的从一个节点跳转到另一个节点接地到可导航方向的图像。

  • 为了弥合离散与连续之间的差距,我们提出了一个预测器来在导航过程中生成一组候选路径点,以便使用高级动作设计的代理可以转移到连续环境中并在连续环境中进行训练。我们细化 Matterport3D 的连接图以适应连续的 Habitat-Matterport3D,并使用细化的图训练路点预测器,以在每个时间步生成可访问的路点。此外,我们证明了预测的路点可以在训练过程中增强,以使视图和路径多样化,从而增强代理的泛化能力

引言

  • VLN研究提出了两种不同的场景,即在离散环境(R2R,RxR)和连续环境(R2R-CE,RxR CE)中的导航。离散环境和连续环境中导航的根本区别在于对连通图的依赖,连通图包含分布在环境的可访问空间中的稀疏节点(路点)的数量。
  • 通过从离散的可导航方向集中选择一个方向,传送到图形上的相邻航路点。与连续环境中的导航(通常依靠有限的视野来推断低级别的控制(例如,左转15度或向前移动0.25米)相比,具有全景动作和连通图的导航通过将其表述为明确的文本到图像的基础任务,简化了复杂的决策问题。首先,从感官输入中推断出可达性的重要概念(开放空间与障碍物)。其次,每个导航方向都可以定义不同的视觉表示,因此智能体只需要将指令中的上下文线索与视觉选项相匹配即可移动,这大大减少了智能体的状态空间,便于学习 具有相同架构的代理在离散空间和连续空间中导航的成功率仍有约20%的差距。

模型框架

  • 在VLN-CE中,agent需要从自我中心的观察中推断低级动作(左转15度,右转15度,向前移动0.25米或停止)。
    在这里插入图片描述

附录

在这里插入图片描述

3. 【2023/10/16】Vision and Language Navigation in the Real World via Online Visual Language Mapping

摘要和结论

  • 由于视觉领域的差距和缺乏关于看不见的环境的先验知识,将模拟中训练的SOTA导航策略直接转移到现实世界是具有挑战性的。
  • 提出了一个新的导航框架来解决现实世界中的VLN任务,利用强大的基础模型,提出的框架包括四个关键组成部分:
    (1) 基于LLM的指令解析器,其将语言指令转换为预定义的宏动作描述序列,
    (2)在线视觉语言映射器,其构建实时视觉语言映射以保持对看不见的环境的空间和语义理解,
    (3)将每个宏动作描述固定到地图上的航路点位置的基于语言索引的定位器,
    (4)预测动作的基于DD PPO的本地控制器。

引言

  • 人类可以很容易地想象从家里的任何地方到咖啡机的路径,因为他们不仅保持对环境的空间理解,而且保持对环境的语义理解。增强移动机器人遵循自然语言指令的能力将有效改善在看不见的场景中的导航。
  • 在最初的VLN任务中,移动机器人在预先收集的环境导航图上的节点之间进行传送。为了解决这个限制,进一步将VLN扩展到连续环境(VLNCE),其中机器人通过采取原始离散动作或通过控制线速度和角速度在物理空间中连续移动。尽管VLN-CE取得了重大进展,但大多数最新方法主要是在模拟中进行评估,忽略了复杂和嘈杂的现实世界。
  • 由于视觉域差距和缺乏先验环境信息,将仿真训练的VLN智能体转移到现实世界是具有挑战性的。为了缓解这些挑战,建议融合额外的传感器信息(例如激光扫描)并采用域随机化技术。此外,最近的工作表明,使用基础模型,如大型语言模型(llm)和大型视觉语言模型(vlm),可以在现实世界中有益于导航。LLM用于将指令解析为地标或可执行代码,利用其强大的文本解释功能。
  • 我们利用大型语言模型(LLM)将指令解析为一系列预定义的机器人宏动作描述,这些描述描述了机器人的可执行动作和相关地标。为了处理不可见环境中复杂和有噪声的观测结果,我们使用大型视觉语言模型(VLM)构建了在线视觉语言地图。使用最新的地图和解析的宏操作描述,基于语言索引的本地化器将每个宏操作描述与地图上的路点位置联系起来。将航路点作为点目标,采用现成的DD-PPO局部策略来预测下一步动作。

问题阐述

  • 我们考虑连续环境下的视觉语言导航任务(VLN-CE)。其中,连续设置是指机器人在遵循自然语言指令的情况下,必须采取原始动作(如向前移动、向左转弯),才能在物理空间中导航到期望的目标。

-

模型框架

在这里插入图片描述
① 给定一条自然语言的指令,我们首先使用一个大型语言模型(即ChatGPT)将其解析为一系列包含宏操作名称和相关地标的初步宏操作描述。② 在每个时间步,在线视觉语言映射器维护来自前视图RGB-D观察的视觉语言地图。③ 使用最新的地图和宏操作描述,基于语言索引的定位器输出地图上的路点位置。④ DD-PPO同时接受RGB-D观测和相对点目标,从地图上的航路点位置和代理位置计算,并预测下一个动作。

  • Instruction parser指令解析:我们观察到VLN-CE任务中的指令由几个子指令组成。例如,在room - to- room (R2R)任务中,机器人被要求按照指令从一个房间移动到另一个相邻的房间。一个典型的指示可能是这样的:“走出卧室,向左拐。径直走过灰色的沙发,停在地毯旁边。”整个指令可以被解析成一系列的子指令,例如⟨“Exit The bedroom”,“Turn left”, “Walk straight passed The gray couch”, “stop near The rug”⟩。此外,我们已经注意到, 每个解析的子指令要么描述一个纯粹的机器人运动(例如,“左转”),要么描述运动和相关的地标 。例如,“直走经过灰色沙发”包含了“直走”的运动和地标“灰色沙发”。然而,这些解析后的子指令不能由机器人直接执行。
    我们定义了10个宏动作描述,每个描述都表示为一个Python字典,其中包括动作的名称和相关参数。例如,“直行经过灰色沙发”对应于“{”名称“:”移动到“,”地标“:”灰色沙发“}”。我们通过几次提示工程与 ChatGPT 进行交互,并在进行导航实验之前解析每条指令。

  • Online visual-language Mapper在线视觉语言地图:
    在VLN-CE中,从目标环境收集数据是禁止的,因为它们被认为是不可见的。因此,我们将VLMaps扩展到在线设置,并引入一个在线制图器,逐步构建看不见的环境的视觉语言地图。
    一般来说,视觉语言图融合了从 VLM 计算出的视觉语言特征和二维占用网格 。与语义标签相比,这些视觉语言特征通过合并更丰富的语义特征来增强二维占用图的表示。

  • Language indexing-based localizer:基于语言索引的定位器
    对于纯运动宏动作描述,例如“{”name”:“向前移动”,“dist”:D}”,路径点位置计算为 ⟨xt + D × cos θt, yt + D × sin θt, θt ⟩。当没有指定移动距离时,我们将默认移动距离设置为半米。类似的策略也适用于纯转弯动作。

  • DD-PPO-based local controller:
    为了处理现实世界中的噪声观测,我们使用在大规模点目标导航任务上预先训练的 DD-PPO 导航策略作为本地控制器 。具体来说,控制器将前视 RGBD 观测值 {Irgb,I深度} 和表示为 2 维自心极坐标 (ρ,φ) 的点目标作为输入。现成的本地策略 π(at | I_rgb, I_depth, (ρ, φ)) 预测下一个动作 at。具体来说,动作空间是离散的并且包含四个原始动作,包括指示终止或到达目标点的“停止”动作。
    对于与地标相关landmark-associated的宏观动作,例如“{”name”:“向左移动”,“landmark”:“椅子”}”,我们首先通过语言索引在视觉语言地图上定位地标对象。
    具体来说,我们构建一个标签列表[ltarget, l2default, …, lkdefault, other],其中第一个世界是地标标签,其余的是默认标签。请注意,“其他”是 LSeg 的默认标签,用于表示任何超出范围的对象类。 LSeg 的文本编码器接收标签列表并输出文本嵌入特征矩阵 f_text ∈R^C×(K+1)。每个网格单元上每个标签的相似度得分可以计算为 M_t ×f_text,其中 M_t ∈ R ^H×W ×C 。利用相似度矩阵,我们通过选择具有最大相似度得分的标签来为每个网格单元选择标签。因此,在每个时间步都会生成语义图。为了定位所需的地标,我们首先应用基于密度的空间聚类(DBSCAN)来查找所有地标标签的中心。接下来,我们计算机器人当前位置与地图中心之间的方向和欧几里德距离。我们选择机器人前面最近的标签,并使用相应的中心位置作为路径点。这种设计选择是因为 VLN-CE 中的指令是从机器人的自我中心视图的角度生成的。结合在线地图,我们可以减轻导航过程中的对象模糊问题(见图 3)。航路点表示为二维自心极坐标 (ρ, φ),其中 ρ 表示航路点的相对距离(以米为单位),而 φ 是以半径为单位的朝向航路点的自心方向。

实验

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 【NeurIPS 2023】HomeRobot: Open-Vocabulary Mobile Manipulation

摘要和结论

  • 定义:Open-Vocabulary Mobile Processing (OVMM) 是在任何看不见的环境中选择任何对象并将其放置在命令位置的问题。
  • 这是机器人在人类环境中成为有用助手的一个基本挑战,因为它涉及到解决机器人的子问题:感知、语言理解、导航和操作都是OVMM的关键。此外,这些子问题的解决方案的整合也带来了巨大的挑战
  • 为了推动这一领域的研究,我们引入了HomeRobot OVMM基准,其中代理导航家庭环境以掌握新对象并将它们放置在目标容器上。

引言

  • 开放词汇移动操作(Open-Vocabulary Mobile Manipulation) 定义为机器人社区的一项新的关键任务。“开放词汇移动操作要求代理在特定位置搜索以前看不见的对象,并将其移动到正确的容器中。

在这里插入图片描述

  • 我们还提出了HomeRobot,这是一种软件框架,可促进在模拟和物理环境中进行广泛的基准测试。它包括在两种环境中实现的相同API,使研究人员能够进行可以在模拟和真实世界环境中复制的实验。表1将OVMM+HomeRobot与文献进行了比较。HomeRobot库还支持许多子任务,包括操作学习、导航和目标导航。

  • 我们使用HomeRobot来比较两类方法:一种是启发式解决方案,使用运动规划器进行真实世界的对象搜索[2],另一种是强化学习(RL)解决方案,学习如何导航到给定深度的对象并预测对象分割。

  • 在本文中,我们使用HomeRobot比较了两类方法:一种是启发式解决方案,使用运动规划器进行真实世界的对象搜索[2],另一种是强化学习(RL)解决方案,学习如何导航到给定深度的对象并预测对象分割。

Open-vocabulary 移动操作 mobile manipulation

  • 形式上,我们的任务设置为以下形式的指令:ª将(对象)从(start_receptacle)移动到(goal_receptacle)。º 该对象是一个小型且可操作的家用物品(例如,杯子、毛绒玩具或盒子) 。相比之下,start_receptacle 和goal_receptacle 是大型家具,其表面可以放置物体。机器人被放置在未知的单层家庭环境中(例如公寓),并且必须根据 start_receptacle、object 和 goal_receptacle 的语言名称,拾取已知位于 start_receptacle 上的对象并将其移动到任意位置。

  • 如果指定的对象确实从开始情节的 start_receptacle 移动到任何有效的 goal_receptacle,则代理成功。我们对机器人完成的每个步骤给予部分信任:1.找到带有物体的start_receptacle,2.拾取物体,3.找到goal_receptacle,4.并将物体放在goal_receptacle上。可以有多个满足每个查询的有效对象。

  • 虚拟数据集: 栖息地合成场景数据集(Habitat Synthetic Scenes Dataset,HSSD)由200多个人类创作的3D家庭场景组成,其中包含超过18000个真实世界物体的单个模型。

  • 真实世界数据集: 实际测试期间,我们选择了在模拟训练期间未出现的对象实例池,但在类之间进行了划分这在训练中出现过,也没有出现过。我们使用了八个不同的类别,其中五个在训练期间见过(杯子、碗、毛绒玩具、药瓶和玩具动物),三个没有(魔方、玩具钻和柠檬)。我们在 Stretch 机器人上针对两种不同的基线和七种不同的容器类别进行了 20 次实验:柜子、椅子、沙发、柜台、水槽、凳子、桌子

Baseline Agent Implementation

我们提供了基线和工具,我们在 HomeRobot 中包含两种类型的基线:
启发式基线,其中我们使用众所周知的运动规划技术 [2] 和简单的规则来执行抓取和操纵动作;
以及强化学习基线,我们使用一种现成的 策略学习算法 DDPPO 来学习探索和操作技能。
此外,我们还实现了最近发布的几篇论文中的示例项目,测试了不同的功能,例如对象目标导航 、技能学习 、持续学习 和图像实例导航 。由于任务具有挑战性、长期性,我们实施了一项名为 OVMMAgent 的高级策略,它调用一系列技能来完成任务。我们将代理分为四种技能:
在这里插入图片描述

  • 28
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值