SRT——基于模仿学习的手术机器人:来自约翰霍普金斯大学和斯坦福ALOHA团队

前言

如果按之前的计划,我在解读完llama3.1的92页paper之后,本应该继续完善TTT那一篇解读的,然此计划又被一事给变化了..

7.17,我司七月九周年司庆之际,我机器人方向的技术合伙人姚博士发我一篇文章,这篇文章提道:

姚博士当时评论道:他们的策略就是ACT和diffusion policy(本博客内皆详细介绍过),说明只要数据集足够,很多功能都能实现

我当时稍微看了下,发现手术任务确实非常适合模仿学习

  1. 一方面,使用远程操作机器人完成的手术超过 1200 万例,产生了大量可供模仿的高质量数据流
  2. 另一方面,基于模型/模拟的方法则难以应对器官和组织的复杂物理特性

而该项目的关键在于

  1. 硬件
    达芬奇可以说是目前最直观的远程操作系统,但它存在运动学误差:如果改变工具的方向,跟踪性能就会发生变化
    如果动作空间是绝对的,那么这将带来问题。为了解决这个问题,该项目开发了一个混合关系动作空间,其中增量位置在内窥镜框架中定义,增量旋转在末端执行器框架中定义。这减少了运动误差并提高了性能
  2. 模仿学习
    该项目为每个任务收集了 200-500 次演示,然后对 ACT 和 Diffusion Policy 进行了训练。该项目发现,增加腕部摄像头能显著提高更精细的子任务的性能

考虑到我司七月正在扩展更多新领域的机器人解决方案,故本文来了,至于更多则见我司七月官网首页的「大模型机器人(具身智能)线下营 [实操20万的实体机器人]」

第一部分 背景知识:手术机器人的现状与问题

1.1 手术机器人目前的问题与解决思路

1.1.1 手术机器人目前的挑战

目前市面上有一款手术机器人——达芬奇机器人,如下图所示

  • 左):达芬奇手术研究工具包(da Vinci Surgical Research Kit,简称dVRK)系统配备了手术内窥镜和腕相机(surgical endoscope and wrist cameras)
  • 右):学习了三项基本的手术任务,包括提起组织(即组织牵引,即lift tissue)、针拾取和交接(needle-pickup and handover),以及打结(knot-tying),这些都是最常见的手术任务之一

然而,在达芬奇机器人上进行机器人学习面临的挑战有:

  1. 由于基于电位计的关节测量、滞后以及其机制的整体灵活性和松弛,硬件的前向运动学不准确 [4],这些限制导致机器人无法执行简单的视觉伺服任务 [5]
  2. 总之,天真地使用这种近似的运动学数据训练策略几乎总是导致任务失败。 例如,训练输出绝对末端执行器姿态的策略(这是训练机器人策略的常见策略)在本工作探索的所有任务中,包括组织提升、针拾取和交接以及打结,成功率几乎为零

1.1.2 Johns Hopkins和斯坦福:相对动作表示训练策略,再搭配腕部摄像头

具体而言,为了实现大规模的机器人学习,必须设计一种策略,有效利用这种近似的运动学数据

为此,来自 Johns Hopkins University和Stanford University的Ji Woong Kim, Tony Z. Zhao, Samuel Schmidgall, Anton Deguet, Marin Kobilarov, Chelsea Finn, Axel Krieger的研究者们提出了一种在da Vinci上使用其近似运动学数据进行机器人学习的方法(如你所见,之前斯坦福mobile aloha团队Zipeng Fu、Tony Z. Zhao、Chelsea Finn中的二作、三作都在这个team里)——即present an approach for robot learning on the da Vinci using its approximate kinematics data

  1. 直观地说,他们的方法基于这样一个前提:即机器人的相对运动比其绝对前向运动学要一致得多(our approach is based on the observation that the relative motion of the robot is much more consistent than its absolute forward kinematics)
  2. 因此,我们将策略动作建模为差分运动——differential motion,并进一步探索其变体,以设计最有效的da Vinci动作表示(We thus model policy actions as differential motion and further explore its variants to design the most effective action representation for the da Vinci)

使用这种相对公式训练模仿学习算法对机器人的各种配置变化表现出鲁棒性,即使是那些已知会显著破坏机器人前向运动学的变化(We find that training an imitation learning algorithm using such relative formulation shows robustness to various configuration changes to the robot, even those known to significantly disrupt the robot’s forward kinematic)

具体来说,da Vinci工具可以被移除和重新安装,所有的机器人关节都可以自由移动,包括众所周知不准确的设置关节[4],而不会显著影响策略性能

总之,相对于绝对运动,达芬奇手术机器人的相对运动更加一致,且精心选择的相对动作表示可以充分训练策略,使其在外科操作任务中达到高成功率

此外,我们还探索了在手术工作流程中使用腕部摄像头。 尽管在临床环境中不常使用,腕部摄像头已证明在提高策略性能和促进泛化到分布外场景(如不同工作空间高度或不熟悉的视觉干扰)方面有效 [总之,使用腕部摄像头显著提高了策略性能,特别是在手术过程中需要精确深度估计的阶段,详见6]

而在鲁棒性测试中,通过设计可拆卸支架来评估它们对性能和实际潜力的影响,这些支架可以在各种手术器械之间轻松共享(即有泛化到新场景的能力,例如在存在未见过的3D缝合垫和动物组织的情况下,显示出未来扩展到临床前研究的潜力)

至于效果上

  1. 在使用大致的运动学数据且无需进一步运动学校正的情况下,成功展示了在达芬奇手术机器人上进行模仿学习,同时大幅超越了基线方法
  2. 实验表明,模仿学习可以有效地学习复杂的手术任务,并推广到新的场景,例如在存在未见过的真实组织的情况下
  3. 消融实验展示了腕部摄像头在学习手术操作任务中的重要性

1.2 dVRK系统与现有的局限性

1.2.1 达芬奇机器人dVRK系统的具体配置

如下图所示,dVRK系统,包括机器人和用于用户交互的远程操作控制台「dVRK具有一个内窥镜摄像头操作器(ECM)和两个共享同一机器人基座的病人侧操作器(PSM1,PSM2)

三个部分

  1. 一个是机器人基座Robot Base{A}
  2. 一个是中间的ECM是内窥镜操作器:ECM base{D}-ECM Tip{E}
  3. 最后一个PSM则相当于是病人侧操作器,类似人类两只手一样,有两个
    最右边的是PSM1 Base{F}-PSM1 Tip{G}
    最左边的是PSM2 Base{B}-PSM Tip{C}

其中,每个手臂是设置关节(SUJ)和主动关节的顺序组合被动的设置关节(上图蓝色表示)仅使用电位计进行关节测量,精度不太高,主动的活动关节是电动的(上图粉色表示),其同时使用电位计和电机编码器,提高了精度

然而,总体而言,由于所有关节都使用了电位计,导致手臂的正向运动学不准确,误差甚至高达5厘米[4]

对于,dVRK控制台,用户收集任务的许多演示,获取数据集D=\left\{\tau_{1}, \ldots, \tau_{N}\right\},其中每个轨迹\tau_{i}=\left\{\left(o_{1}, x_{1}, a_{1}\right), \ldots,\left(o_{T}, x_{T}, a_{T}\right)\right\}是一个在时间步t收集的观察o_t、本体感受x_t和动作a_t的集合,具体来说

  • 观测值o_t包括左右手术内窥镜图像和左右手腕相机图像,总共4幅图像,如下图所示

  • 本体感知是当前PSM相对于手术内窥镜尖端框架的姿态,表示为x_{t}=\left\{g_{t}^{l}, g_{t}^{r}\right\},其中g=(p, R) \in S E(3)并且{l, r}表示分别左右抓手
  • 动作是通过远程操作控制指定的期望航点,表示为a_{t}=\left\{\hat{g}_{t}^{l}, \hat{g}_{t}^{r}\right\}

1.2.2 以前的方法:需要手眼校准下的精确数据,且泛化性不足

做好手术机器人为何不容易呢,一方面,外科手术任务需要做一系列精确操作,二方面,会经常遇到光照不一致和遮挡,以及手术机器人的本体感知有时或经常不准确、和动作执行时的滞后等问题

  1. 虽然,在dVRK社区中,已经通过手眼校准[46, 47, 48]解决了机器人的不准确性。然而,手眼校准在数据收集和推理过程中都进行时是有效的,在这种情况下,真实的运动学数据将始终可用
    然而,在很多场景中,示范数据集经常是在没有手眼校准的情况下收集的(比如对于大规模的临床数据,在训练期间是无法获得精确的真实运动学数据的)。 虽然手眼校准仍然可以在推理过程中进行,并且可能有所帮助,但它不是解决问题的根本方法
  2. 此外,以往在自主手术方面的工作主要集中在为特定任务设计特定的策略,例如缝合[49,50, 51, 52]、内窥镜控制[53, 54]、导航[55, 56, 57]和组织操作[58, 59],再比如在猪体内自动化肠吻合术(缝合两个管状结构)[60]
    然而,这些方法通常不能很好地扩展到各种任务,也不能很好地适应不同的环境条件

相比之下,端到端模仿学习通过只需要良好的机器人演示,提供了一个相对简单的解决方案。 虽然之前的工作也探索了模仿学习在手术任务中的应用[61, 62, 63, 55],但其在复杂操作任务如打结中的应用仍未被探索,并且在达芬奇手术系统上的实际设计选择也未得到解决

第二部分 如何通过模仿学习训练手术机器人

接下来的目标是通过模仿学习来学习外科操作任务,鉴于机器人不准确的正向运动学,选择适当的动作表示至关重要

2.1 三种动作表示

对此,他们研究了三种动作表示:以摄像头为中心、以工具为中心和混合相对,如下图所示

  • 以相机为中心的方法作为基准,其将动作建模为相对于内窥镜尖端框架的绝对末端执行器姿态,突出了将动作建模为末端执行器的绝对姿态的局限性
  • 以工具为中心的方法通过将动作建模为相对运动——将动作建模为相对于当前末端执行器框架定义的位移和旋转变化,提供了改进的公式,导致更高的成功率
  • 混合相对方法则针对以上两种情况做了下综合,其将动作建模为相对于内窥镜尖端框架定义的位移变化相对于当前末端执行器框架定义的旋转变化
    其进一步改进了工具为中心的方法,从而提高了平移运动的准确性

2.1.1 相机为中心的动作

他们将相机为中心的动作建模为相对于内窥镜尖端框架的末端执行器的绝对姿态。 该设置类似于如何实现基于位置的视觉伺服应用(PBVS),并且是dVRK上的自然选择

具体来说

  1. 目标是学习一个策略 π,该策略在给定时间t的观察o_t下,预测动作序列A_{t, C}=\left(a_{t}, \ldots, a_{t+C}\right),其中 C表示动作预测范围
  2. 因此,策略可以定义为\pi: o_{t} \mapsto A_{t, C}

2.1.2 以工具为中心的动作

将工具中心动作建模为相对于当前末端执行器框架的相对运动,这是一个移动的主体框架。 工具中心动作可以定义为

A_{t, C}^{t o o l}=\left\{\left(g_{t}^{i}\right)^{T} \hat{g}_{s}^{i} \mid s \in[t, t+C] ; i \in\{l, r\}\right\}

直观地说,期望的姿态\hat{g}_{s}^{i}通过使用SE(3) 减法规则从当前末端执行器姿态g_{t}^{i}中减去,对于每个时间点直到horizon C,并且对于每个对应的左右夹持器(the desired poses ˆgis are subtracted by the current end-effector poses git using the SE(3) subtraction rule, for each time up to horizon C and for each corresponding left and right grippe)

采用这种动作表示法有两个主要好处。 使用了相对运动公式,与手臂的绝对正向运动学相比,这种公式更为一致

此外,减法抵消了内窥镜正向运动学项,动作可以仅用PSM的正向运动学来表示。 这有效地减少了错误的余地,因为涉及的关节较少。 然而,这种方法的一个缺点是增量运动是相对于一个移动的参考框架定义的

2.1.3 混合相对动作

类似于以工具为中心的动作,混合相对动作被建模为相对运动,但不同的是,其相对于两个不同的参考框架

如上文所说,位移变化是相对于内窥镜尖端框架定义的,而旋转变化是相对于当前末端执行器框架定义的,如下公式所示

A_{t, C}^{h y b r i d}=\left\{\hat{g}_{s}^{i} \ominus g_{t}^{i} \mid s \in[t, t+C] ; i \in\{l, r\}\right\}

其中减法操作 ⊖定义为

\hat{g}_{s}^{i} \ominus g_{t}^{i}=\left(\hat{p}_{s}^{i}-p_{t}^{i},\left(R_{t}^{i}\right)^{T} \hat{R}_{s}^{i}\right)

减法是在相应的平移和旋转元素之间进行的,即位置的向量减法和 SO(3)旋转的减法。 这种方法与工具中心方法的一个关键区别在于,以内窥镜尖端的固定框架为基准建模增量平移,而不是以末端执行器的移动框架为基准

这种方法消除了策略需要定位末端执行器的方向以沿定位轴生成增量平移的负担,从而提高了平移运动的质量

策略可以定义为\pi: o_{t} \rightarrow A_{t, C}^{h y b r i d}

2.2 动作预测的策略:ACT、Diffusion Policy

为了训练机器人的策略,他们使用了带有transformer的动作分块(ACT)[23]和扩散策略[64]

策略是使用内窥镜和腕部摄像头图像作为输入进行训练的

  1. 手术内窥镜图像的原始输入尺寸为 1024 × 1280 × 3
  2. 腕部图像的原始输入尺寸为 480 × 640 × 3

这些图像都被缩小到 224 × 224 ×3的尺寸

运动学数据没有作为输入提供,这是因为在其他模仿学习方法中常见的做法,由于dVRK的设计限制,运动学数据通常不一致。 策略输出包括末端执行器的(增量)位置、(增量)方向和两个手臂的钳口角度

2.2.1 ACT

对于 ACT(如果不了解ACT,请参见此文:ACT的原理解析:斯坦福炒虾机器人Moblie Aloha的动作分块算法ACT),主要修改包括

  1. 更改输入层以接受四个图像,其中包括左右手术内窥镜视图和左右手腕摄像头视图
  2. 输出维度也被修改为生成末端执行器的姿态,每个手臂的输出为一个10维向量(position [3]+ orientation [6] + jaw angle [1] = 10),因此两个手臂总共为一个20维向量

    方向使用6D旋转表示建模,遵循[21],其中6个元素对应旋转矩阵的前两列。 由于网络预测可能不会生成正交单位向量,因此执行Gram-Schmidt过程将其转换为正交单位向量,并对两个向量进行叉积以生成旋转矩阵的剩余第三列

具体参数如下表所示

2.2.2 Diffusion Policy

对于扩散策略,进行了类似上面ACT的修改,例如适当地更改网络的输入和输出维度,具体参数如下表所示

第三部分 模型评估:相对运动表示、策略选择、腕部摄像头、泛化能力

最后,他们做了一系列实验,旨在理解以下关键问题

  1. 模仿学习是否足以学习具有挑战性的手术操作任务?
  2. dVRK的相对运动是否比其绝对前向运动学更一致?
  3. 使用腕部摄像头对于实现高成功率是否至关重要?
  4. 他们提出的模型在未见过的新场景中表现如何?

为了回答这些问题,我们比较了使用各种策略训练的任务成功率

在数据收集期间,机器人如下配置(通过在各种机器人配置下重复记录的参考轨迹,测试所有动作表示的重复性)

  • 左): 第一列显示了所有动作表示的参考轨迹的完美重建,因为自从收集参考轨迹以来,机器人关节没有移动
  • 中间,右边)当机器人向左或向右移动时,以摄像头为中心的动作表示无法跟踪参考轨迹,而相对动作表示则能较好地跟踪它们。 这主要是由于设置关节的移动,导致了显著的关节测量误差
    该实验证明,在关节测量不一致的情况下,相对运动可以更加一致

在这种配置下,收集了224次提起组织的试验,250次拾取和交接针头的试验,以及500次打结的试验,所有试验均由单个用户在多天内收集

在所有实验中,使用一个模拟人类腹部的圆顶来大致放置手臂和内窥镜,使其通过相同的孔大致位于相似的位置(During all experiments, a dome simulating the human abdom was used to roughly place the arms and the endoscope in an approximately similar location using the same holes),且放置只是大致的,因为孔比内窥镜和工具轴的尺寸大得多,工具必须通过移动设置关节(set-up joints)手动放入孔中

3.1 评估相对运动与绝对正向运动学的一致性

在本节中,试图了解在dVRK上相对运动是否比其绝对正向运动学更一致。 为了测试这个假设,他们远程操作一个参考轨迹,例如上图所示的无限符号

然后,使用第2.1节中介绍的公式将该轨迹表示为各种动作表示

接下来,将末端执行器放置在相同的初始姿态下,并在不同的机器人配置下使用各种动作表示重放轨迹(这些不同的配置包括将机器人工作空间向左和向右移动)

这些工作空间的移动会导致机器人设置关节(set-up joints)移动,而这些关节由于仅使用电位计进行关节测量,容易导致较大的关节测量误差

为了比较它们的跟踪误差,重放的轨迹在图像坐标中的末端执行器(即控制点)处进行了注释并绘制

在参考配置(在下图中,参考配置用reference表示)中,所有动作表示都精确地重建了参考轨迹,因为设置关节(set-up joints)尚未移动。 然而,当通过移动设置关节(set-up joints)改变机器人配置并获得新的错误关节测量时,基于相机的动作表示无法重建参考轨迹

此外,这种误差在不同的机器人配置中并不一致(比如下表中的ref config、Eval config 1、Eval config 2三种配置)。 对于相对动作表示,包括工具中心和混合相对动作公式,参考轨迹重复得更一致,其数值误差如下表所示没有显著差距

总之,这项实验表明,在存在不一致的关节测量误差的情况下,相对于其绝对正向运动学,dVRK的相对运动更为一致

3.2 使用各种动作表示的策略性能

在组织提升(tissue lift)、针拾取和交接(needle pickup and handover)、以及打结(knot-tying)等任务上评估了使用各种动作表示的策略性能,如下表所示——使用各种动作表示的三种手术任务的成功率

可以看到

  • 基于相机的动作表示在所有三个任务中表现不佳由于dVRK的关节测量不一致,末端执行器几乎总是无法到达目标物体(例如组织角、针和线——tissue corner, needle, and string),并且经常危险地与底部的橡胶垫碰撞
  • 使用工具中心动作表示训练的策略在所有三个任务中表现出改进的性能。 然而,在涉及大旋转的针拾取和交接过程中,任务的交接阶段经常失败。 特别是,在拾取针后,左夹持器必须进行 ∼ 90度旋转以将针转移到对侧手臂如下图所示

    在这个运动阶段,夹持器的方向看起来是正确的,然而,平移运动看起来不正确,似乎是任务失败的原因
    推测这个原因是由于将策略动作固定在一个移动的末端执行器框架上。该策略需要使用图像观测来定位移动末端执行器的方向,并沿着定位的主要方向轴生成增量平移,这可能是一项具有挑战性的任务
  • 为了解决这个问题,使用了混合相对运动动作,该动作将平移运动固定在内窥镜尖端的固定框架上
    这种公式在前述的针传递阶段改进了平移误差,并最终在所有三个任务中达到了最高的成功率。 这种表现最好的动作表示也在扩散策略上实现了,然而,性能不如ACT

3.3 评估腕部摄像头的重要性

他们还评估了添加腕部摄像头的重要性及其对任务成功的贡献。为了证明这一点,在针拾取和传递以及打结任务中使用混合相对动作公式训练了没有腕部摄像头——no wrist cam的策略

总体而言,可以观察到省略腕部摄像头会导致性能显著下降

对此,推测腕部摄像头在需要精确深度估计的情况下会有所帮助。 例如,在针头拾取和交接任务中,特别是在后期阶段传递针头时,腕部视角清楚地显示了针头是否从远处被导航到对侧夹持器中。 这种额外的视角可能为任务的成功提供了更好的上下文。 然而,从第三人称内窥镜视角很难辨别这种信息水平

3.4 评估泛化能力

他们还评估了我们的模型在新场景中的泛化能力,例如在使用动物组织(猪肉和鸡肉)和未见过的3D缝合垫的更具临床相关性的背景下,其中,大部分评估仍然是定性的

  • 在定量结果方面,他们在猪腰背景下评估了混合相对动作公式在针头拾取和交接——Needle pickup and handover任务中的表现,且观察到其整体成功率相当高(如上表所示),然而,与核心实验中观察到的相比,运动质量和针头抓取的准确性要低得多
  • 在定性结果方面,观察到在猪肉组织上成功打结——Knot tying的多个实例,以及在鸡肉背景和未见过的3D垫子上的针抓取
  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

v_JULY_v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值