[论文翻译]SKFlow: Learning Optical Flow with Super Kernels

论文翻译:

SKFlow: Learning Optical Flow with Super Kernels

摘要:

光流估计是计算机视觉中一个经典而又具有挑战性的任务。准确预测光流的一个重要因素是缓解帧间遮挡。然而,由于缺乏足够的局部信息对遮挡区域进行建模,目前性能较好的光流估计方法仍然是一个棘手的问题。在本文中,我们提出了超级核流网络( Super Kernel Flow Network,SKFlow ),一种CNN结构来改善遮挡对光流估计的影响。SKFlow得益于超核带来的扩大的感受野来补充缺失的匹配信息并恢复被遮挡的运动。 我们利用锥形连接和混合深度卷积提出了高效的超核设计。大量实验证明了SKFlow在多个基准测试集上的有效性,尤其是在遮挡区域。SKFlow在ImageNet上没有预训练的主干,在计算量小幅增加的情况下,取得了令人瞩目的性能,在目前发布的Sintel基准方法中排名第一。在具有挑战性的辛特尔干净传球和最后传球(测试)上,SKFlow在非匹配区域( 7.96和12.50)上分别超过了最佳公布结果9.09 %和7.92 %。 

1、引言

光流是对一对帧之间的每像素运动进行建模的任务,其下游应用包括行人重识别、视频分割、场景重建等。目前,光流估计仍然面临遮挡、运动模糊等严峻挑战。在这些挑战中,遮挡被认为是最困难的问题之一,但仍未得到充分的研究。值得注意的是,光流估计中的遮挡一词可以扩展到更广泛的定义[ 16 ]:像素在当前帧出现而在下一帧消失的区域。 遮挡直接违反亮度恒常性约束[ 10 ],在连续帧之间像素的强度被视为相同,因此在预测光流时存在明显的困难。因此,帧与帧之间的遮挡区域的对应匹配可能是极其困难的。 

潜在的解决方法之一是利用邻近像素恢复被遮挡区域的运动,例如通过CNNs [ 31、32、36]学习邻近关系,或者通过Markov Random Fields中的平滑项插值隐藏运动[ 4 ]。然而,卷积和插值都局限于小操作窗口内的局部信息,只注重学习局部证据。随着遮挡的加重,局部证据不足以恢复隐藏的运动,从而严重降低性能。最近的工作[ 16、43]提出通过非局部方法来建模局部描述符之间的长程依赖关系,以弥补缺失的局部证据。这些方法在一定程度上缓解了这一问题,但由于在面对严重遮挡时,局部描述符的代表能力已经被大大削弱,因此仍然趋于失败。 

在[ 21、7]的启发下,相对于更深的层,更大的内核对于更大的感受野是一种有效的方法,因此在光流估计网络中使用大内核可以说是处理遮挡问题的一种可能的解决方案,如图1所示。然而,直接应用大核并不实际,原因在于:( 1 )计算量的二次增长。当核尺寸从3 × 3增加到15 × 15时,模型的规模将扩大25倍。( 2 )优化问题。如[ 7、24、11]所示,即使在庞大的数据集上经过精心设计和训练,大型的内核网络也会花费精力进行优化,甚至容易出现性能下降。在光流网络上更具挑战性,因为训练数据往往要小得多。例如,Sintel [ 3 ]数据集只有1,041个训练样本。 

在这项工作中,我们提出了超级核流网络( SKFlow ),其中我们引入了一种新的架构设计,有效地利用了锥形连接和混合深度卷积,并相应地开发了一个有效的光流网络来处理遮挡。该方法的详细描述见第3节。SKFlow在解决严重遮挡引起的歧义性方面具有较好的性能,在标准测试集(见第4节)上取得了令人信服的性能。此外,SKFlow在精度和计算成本之间取得了很好的折中。在具有挑战性的Sintel最终通过率测试集上,SKFlow在提交时的所有公开方法中排名第1,与GMA相比,MAC的增加不到8.42 % [ 16 ]。 

我们的贡献总结如下:( 1 )首次将超核方案引入到光流任务中。( 2 )针对光流网络中的超核设计,我们探索了三种新的架构设计,并提出了一种新的光流网络SKFlow。( 3 )我们提出的SKFlow在标准测试集上取得了先进的性能,并获得了强的跨数据集泛化能力。 

 图1:不同方法的帧间遮挡和流误差图。从( a ) ~ ( b ),叶片大部分运动帧失步~ (例如,像素B1移动到像素B2)。但是由于大的感受野,被遮挡的B1的运动仍然可以通过A1在远距离的非遮挡运动来恢复。( c )和( d )表示使用普通卷积的方法(例如:卷积神经网络)得到的预测流量和真实值之间的误差。Gma )和我们的Skflow。颜色越深,误差越大。SKFlow实现了更低的端点误差( EPE ),在遮挡的叶片区域表现更好。

2、相关工作

光流估计。 传统上,光流被建模为一个能量最小化问题。基于亮度恒常性和空间平滑性,Horn和顺克[ 10 ]开创了计算光流的变分方法。在此基础上,出现了视觉相似性设计和正则化项[ 10、1、2、30]的后续改进。在深度学习时代,自FlowNet [ 8 ]以来,CNNs作为一种强大的光流估计技术应运而生。随后由粗到精的策略被广泛采用[ 31、32、12、13、41、14、44]。由粗到精的方法是有影响力的,但由于在粗级别的流动指导不准确,往往会遗漏小的运动。因此,RAFT [ 36 ]提出了一种基于所有点对域变换的迭代求精方法。它在高分辨率下保持了单一固定的流场,并取得了显著的改进,激发了许多工作,如Flow1D [ 40 ]、FM - RAFT [ 17 ]、Separable flow [ 43 ]、AGFlow [ 20 ]、GMA [ 16 ]等。 

卷积层中的核尺寸。 最近,出现了一些将大内核应用于CNNs的探索,这些探索自早期设计[ 34、35、33、27]以来并没有得到广泛的应用。ERF理论[ 21 ]指出,更大的内核比更深的层更有效地获得更大的感受野。LRNet [ 11 ]提出了局部关系层,其中7 × 7卷积被广泛使用。然而,当内核大小增加到9 × 9时,性能有所下降。GCN [ 24 ]通过密集连接的对称可分离卷积进一步扩大了分割任务中的核尺寸。 观察到当转移到其他任务时,性能有下降的趋势。CKCNN [ 26 ]和FlexConv [ 25 ]采用较大的核尺寸,同时模型尺寸和计算成本也相应增长。Rep LKNet [ 7 ]开发了重新参数化技术来帮助优化大的内核,并将内核大小扩展到31 × 31,在分类和下游任务(如检测和分割)上达到了最先进的性能。尽管它在这些高级视觉任务上取得了有竞争力的结果,但我们的实验表明它不能直接应用于光流估计(见4.4节)等稠密预测任务因此,我们探索光流网络中的大核设计,旨在缓解遮挡,提高估计性能。

 图2:超级内核块的架构设计。L和S分别表示大卷积和辅助深度卷积的核大小。Pw是Point - Wise卷积。在我们的SKFlow模型中使用了下划线设计。

3、方法

我们提出利用大的感受野来处理遮挡引起的局部歧义。由于遮挡像素的运动难以用局部模糊度估计,我们的SKFlow方法引入了超核来帮助补充局部证据,并提出了一种高效的架构设计来减少计算负担。我们在3.1节中描述了超级核块的细节。网络总体架构如3.2节所示。最后,在3.3节中展示了SKFlow的学习过程。

 图3:我们提出的SKFlow的概述。SK MoE .和SK Upd .分别表示我们提出的超核运动编码器和更新器。GMA模块是文献[ 16 ]中提出的非局部方法。 

3.1 Super kernel block designs

考虑到以下因素,我们扩大内核尺寸而不是加深层数来获得一个大的感受野。( 1 )深层导致优化问题。尽管ResNet [ 9 ]在一定程度上解决了深层网络[ 7、9]的优化问题,但最近的工作[ 6、37]仍然认为它可能表现得像浅层网络,并获得更深层的有限感受野。( 2 )有效感受野( Effective Receptive Field,ERF ) [ 21 ]随层数呈次线性增长,随核尺寸呈线性增长,说明大核尺寸更有效。 

Super kernel block组件。为了降低大尺寸卷积核带来的海量计算成本,我们提出了包含三个部分的超核块:( 1 )混合深度卷积核。受可分离卷积[ 5 ]的启发,我们首先将一个卷积拆分为两个深度卷积。即一个大小为L × L的大深度卷积核和一个大小为S × S的辅助小深度卷积核。在形状为N × Cin × H × W的输入下,该混合深度卷积的计算代价为N × Cin × H × W × ( L2 + S2) × 1。辅助核的设计是为了帮助捕获帧中的小尺度模式。( 2 )残差连接。使用残差[ 9 ] ( a )来组合大核和辅助核;( b )连接深度卷积和点卷积。( 3 )点式卷积。在混合深度卷积之后应用一个1 × 1的逐点卷积来帮助信息跨通道流动。逐点卷积不改变输入维度,计算代价为:N × Cin × H × W × Cin,输入形状为N × Cin × H × W。 

Super kernel block结构。我们为我们的超级内核块提出了三种架构设计。如图2所示,我们的设计( b、c、d列)来自a列的Direct design。具体来说,( 1 )并行(图2 ( b )) ),是在大深度卷积层中采用并行小核的层块。逐点卷积之后是并行的VGG风格卷积,并结合跳跃连接。( 2 )漏斗(图2 ( c )) ),是一个Res Net风格的层块,其中核大小从大核L减小到辅助核S。( 3 )锥形(图2 ( c )) ),类似于Funnel设计,但采用了相反顺序的混合卷积。第4.4节的实验结果表明,3种大核设计均优于普通小核卷积层,且计算量增加非常有限。 在所有这些架构中,锥形块获得了最好的性能,并被采用作为我们的最终设计,其可公式化为: 

 其中x和o分别表示输入和输出特征图。Convdw S × S、Convdw L × L分别表示大、小核深度卷积。Convpw 1 × 1为逐点卷积,σ为激活函数。 

为了匹配维度和增加更多的非线性变换,在每个超核块中执行两对1 × 1卷积。每一对卷积层首先将输入特征图从维度Cin变换到α Cin,然后从α Cin变换到C′。即计算成本为N × H × W × Cin × αCin + N × H × W × αCin × C′,其中第1对卷积层C′= Cin,第2对卷积层C′= Cout。因此,计算量为N × H × W × αCin × ( Cin + Cout + Cin + Cin)。综上所述,一个块的总计算量为N × H × W × Cin × [ L2 + S2 + Cin + α( 3Cin + Cout)]。然后我们可以计算我们的超核块和正常卷积的计算成本比为: 

 式中:Α、Cin、Cout为常数,实际中Cout为1。值得注意的是,与普通的大核相比,我们的超核的计算成本降低到O ( 1 / L2 )。除此之外,我们的超级内核还实现了引人注目的性能(结果见第4节)。 

3.2 Super kernel flow network

我们的超级核流( Super Kernel Flow,SKFlow )网络遵循与GMA类似的框架[ 16 ],除了超级核模块,超级核模块由超级核块组成。我们在下面给出了整体的网络架构。 

所有点对相关代价体。采用文献[ 36 ]提出的所有点对关联代价体对所有可能的位移进行关联建模。将两帧图像的特征进行点乘,建立不同层次的匹配关系c,即: 

 其中x1和x2是从输入帧中提取的特征图,l表示相关性水平,〈,〉表示内积函数。 

全局运动聚合( GMA )模块。 GMA模块采用自注意力机制对局部描述符之间的长程连接进行建模。遵循GMA [ 16 ],我们将该模块应用于流解码器中。给定高度为H、宽度为W的输入运动特征x,定义输出o为: 

 式中:qy和ky分别表示从上下文特征图中导出的查询和密钥向量。Vm为由x导出的值向量,f为点积注意函数,γ为可学习系数。 

大核模块。超核模块包括:( 1 )超核运动编码器,它与GMA具有相似的结构,但使用超核模块。它从代价体积向量c和预测流量f中提取运动特征,即: 

其中,SKBlock表示我们提出的超级核块,Concat为级联操作。  

( 2 )超级核更新器。与RAFT和GMA中使用的ConvGRU不同,我们直接使用我们的超核块作为更新器来优化预测的残差流∆f: 

 其中xm,xc表示运动特征和上下文特征,xg表示来自GMA模块的全局运动特征。 

SKFlow的整体架构如图3所示。值得注意的是,将超核块应用在解码器中只是基于以下考虑:由于其相对较小的尺寸,应用在解码器中更有效率。考虑到大多数库中的大深度核缺乏像普通的3 × 3核那样的高效实现,这两个大编码器中的超核在推理和训练上会花费大量的额外时间。虽然在未来更快的实现时可能会得到解决,但目前在较小的解码器部分应用超级内核带来了适度的时间增长,并实现了显著的性能提升。

3.3 监督

根据之前的工作[ 36、16 ],我们采用如下的损失函数来监督参数更新。对每次精化后的预测流量的l1损失以指数递增的系数进行加权 :

 其中| | · | | 1表示流基态fgt与输出流之间的l1距离,fi表示第i次求精时的预测流场。λ表示不同预测流上的权重,在我们的实验中设置为0.8。

 表1:Sintel和KITTI的定量结果。除非特别说明,我们报告平均端点误差( EPE )。C + T表示FlyingChairs→FlyingThings调度,+ S + K + H表示在Sintel上微调时将Sintel、KITTI和HD1K训练集合并,?表示在RAFT中采用热启动策略[ 36 ]。SKFlow在C + T和C + T + S + K + H上取得了最好的泛化性能。

4、实验:

实验设置:我们的模型在Sintel [ 3 ]和KITTI [ 22 ]数据集上进行了评估。我们采用平均端点误差( EPE )作为评价指标,它表示所有像素上的平均流误差。KITTI同样采用Fl - All ( % )度量,计算EPE大于3像素或大于5 %的像素占真值的百分比。Sintel由不同难度的不同传球组成。具体来说,Albedo pass是在没有光照影响的情况下呈现的,并且具有近似分段恒定的颜色。洁净孔型引入反射特性和各种照明。最后一关为灯光增添了运动模糊、大气效果等艺术点缀,最具挑战性。我们使用干净和最后的传球进行训练,并在所有三个传球上评估我们的方法。值得注意的是,我们的SKFlow设计方案同时适用于GMA和RAFT网络。基于RAFT的SKFlow方法的详细讨论见补充材料。 

实施细节:根据[ 36、16、43、20]的工作,我们首先使用FlyingChairs→FlyingThings调度对SKFlow进行预训练,然后使用Sintel、FlyingThings、KITTI和HD1K的组合数据集对Sintel进行微调[ 18 ]。最后,我们在KITTI上对模型进行了微调。采用Adam W [ 19 ]优化器和单周期策略[ 28 ]。我们的SKFlow使用PyTorch [ 23 ]库构建,并使用两个Tesla V100 GPU进行训练。

 

 图4:( a ) Mac、参数和性能之间的比较。更大的气泡代表更高的MAC。( b ) 3种不同核尺寸设计的比较。圆锥形风格在15 × 15的内核大小下实现了最低的误差。

4.1 量化结果

在前期工作[ 36、16、43、20]的基础上,我们在Sintel和KITTI - 2015数据集上评估了我们的SKFlow。我们首先通过在FlyingChairs和FlyingThings数据集上进行预训练来评估模型的泛化能力,并在Sintel和KITTI数据集上进行评估。接下来,我们比较了各个数据集的性能。模型在结合Sintel、HD1K和KITTI数据集的训练集上进行微调,并在Sintel和KITTI数据集上进行评估。实验结果如表1所示。 

跨数据集泛化的结果。我们的SKFlow首先在FlyingChairs和FlyingThings数据集上进行预训练,然后在Sintel和KITTI - 2015数据集上进行评估。跨数据集结果见表1 ' C + T '行。从结果中可以看出不同方法的泛化能力。具体来说,在具有挑战性的Sintel最终传球上,我们的SKFlow在所有已发表的方法中获得了最好的性能,比GMA高出10.21 %。在KITTI和clean pass上,本文方法的Fl - epe为4.27,Fl - all为15.5,EPE为1.22,比GMA分别提高了8.96 %,9.36 %和6.15 %。

在Sintel基准上的结果。 实验结果如表1 ' C + T + S + K + H '行所示。从结果可以看出,在所列出的方法中,我们的SKFlow在Sintel训练集和测试集上都取得了显著的性能提升。与GMA相比,我们的SKFlow在Sintel测试集的干净和最终通过率上分别实现了7.91 %和8.10 %的EPE降低。在训练干净传球和最后传球上,SKFlow比GMA分别高出16.13 %和26.42 %。 

Kitti基准上的结果。结果见表1 ' C + T + S + K + H '行。我们的SKFlow达到4.84,取得了有竞争力的成绩。在KITTI训练集上,本文方法实现了对GMA的改进,EPE为0.51 %,Fl - epe为0.94 %。在KITTI测试集上,我们的方法比GMA提高了6.02 %。

 图5:训练过程中Sintel上的EPE曲线。所有模型均在相同的设置下进行训练。

 表2:Sintel数据集上遮挡和非遮挡区域的性能。

4.2 模型效率 

然后,我们将SKFlow的效率与当前最先进的方法进行了比较。我们使用MAC、运行时间和模型大小来衡量模型效率。具体地,MAC使用PTFLOPS [ 29 ]库进行测量。运行时由KITTI - 15数据集上每帧的平均推理时间计算得到,报告值为3次运行的平均值。在GTX TITAN V GPU上,每个模型被应用于推理过程中的10次更新。并以参数个数衡量模型大小。所有模型都使用来自FlyingThings3D、HD1K、KITTI和Sintel训练集的组合数据集进行微调。评估在Sintel测试集上进行。如图4所示,我们提出的SKFlow与具有相似MAC的GMA ( 8.42 % )和有限增加的模型大小( 6.63 % )相比表现出更好的精度。运行时比较见补充材料。 与其他广泛采用优化后的3 × 3卷积的架构相比,SKFlow在实际应用中的运行时间略长,这是由于目前的PyTorch库中缺乏对大深度核的高效实现。

表3:Flying Chairs验证集上的结果 

4.3 遮挡分析

我们借助Sintel数据集中提供的遮挡图将像素分为遮挡( Occ )和非遮挡( Noc )。沿用之前的工作[ 16 ],使用C + T调度对模型进行预训练,然后使用C + T + S + H + K调度对模型进行微调,迭代次数为150K。Sintel数据集的Albedo pass用于验证估计遮挡运动的有效性,不用于训练。我们选择Albedo pass作为测试集,因为它是在没有光照影响的情况下呈现的,因此除了在被遮挡的区域外,它都遵循亮度恒常性约束,这突出了在遮挡情况下的性能。结果如表2所示,其中' Noc '表示非遮挡像素,' Occ '表示遮挡像素,' All '表示整体像素。我们还在Sintel测试集上的非匹配区域上测试了它们的性能。详细结果见附录。对训练集和测试集中的遮挡区域和非遮挡区域的结果如图6所示 

 表4:在Sintel训练集上的结果。 

4.4 消融研究

我们进行了一组消融实验,以显示网络设计中每个组件的重要性。结果分别见图4 ( b )和表5。所有消融版本均使用C + T计划进行训练。在我们的最终模型中使用的设置是下划线。下面,我们对每一个实验进行更详细的描述。 

训练安排。特别地,我们发现我们提出的SKFlow的性能随着训练步数的增加而不断提高。具体来说,我们在FlyingThings数据集上额外训练30K步,在Sintel数据集上额外训练60K步进行微调。为了公平比较,我们使用相同的设置对GMA和RAFT进行训练。如图5所示,随着训练步数的增加,SKFlow的EPE不断减小,与RAFT和GMA相比,性能得到了明显的提升。我们认为,大的感受野本质上有助于捕获更多的运动信息,提高网络的学习能力上界,尽管它往往难以优化。

核大小。我们探究了不同核大小的影响。具体来说,将核大小从1增加到31,每次增长2 ×。如表5所示,可以看出内核大小15 × 15取得了最好的综合性能。虽然在KITTI上获得了比7 × 7核低0.89 %和0.92 %的性能,但在Sintel clean和final pass上获得了比7 × 7核高6.98 %和5.56 %的性能。与其他设计的对比如图4 ( b )所示。当核尺寸为31时,我们也观察到了更低的性能,尤其是在KITTI这样的小数据集上,这表明在光流数据集样本数量有限的情况下,对超大核的优化仍然是一个挑战。 

 表5:超核区组设计的消融。模型使用C + T调度进行训练。 

超级内核块组件。我们在3.1节中探究了每个成分的作用。具体来说,' Res '表示残差连接,' Aux '表示辅助小核。从表5 ' Components '可以看出,通过同时使用残差连接和辅助小核,整体性能提升明显。(在Sintel Final上可比结果2.46 vs 2.45)。然而,如果没有辅助核,对于像KITTI这样的小数据集会有一个明显的下降,这说明了辅助核对优化的重要性。

超级内核块架构。我们在3.1节中探究了三种混合架构设计的性能,如表5 "架构"所示。我们可以看到,锥形连接设计实现了最好的性能,表现出了强大的优化具有大内核的光流网络的能力。与现有工作[ 7 ]不同的是,并行重新参数化结构在图像分类等高层任务中表现良好。在光流估计方面,我们的锥形结构获得了更好的性能。这可能有两个原因:( 1 )数据集分布和规模的差异。与ImageNet等样本来自现实生活的大数据集相比,大多数光流数据集是人工合成的,包含的样本要小得多,这使得大核更难优化。( 2 )任务侧重点不同。与光流任务相比,高级视觉任务更关注语义信息,而不是两幅图像之间的每像素对应关系。

辅助核大小。我们还对不同大小的辅助核进行了探索。根据表5 " Aux核大小"显示的结果,最有效的辅助核大小为1 × 1。虽然3 × 3在Sintel上取得了略好的性能,但是在KITTI数据集的Fl - epe和Fl - all上,1 × 1核比3 × 3核有更多的改进和更少的计算量。 

超级内核模块。 我们比较了在更新块和运动编码器中使用超级核的性能,结果如表5 " SK模块"所示。Upd .表示更新块,MoE .表示运动编码器。可以看出,在更新块中使用超级核,在Sintel最终传递上的性能为2.65,而在运动编码器中使用超级核,性能为2.56。当超核同时应用于SKFlow网络中的运动编码器和更新块时,在Sintel和KITTI数据集上的性能都得到了进一步的显著提升。 

深层vs大核。如表3所示,与使用大内核相比,采用更深的层带来的改进不大。我们认为,更深的层可能导致更难的优化,然后感受野将表现出类似于浅层网络中的行为,正如以前的工作[ 7 ]所提到的。所有模型均在设置相同的Flying Chairs训练集上进行训练。我们在RAFT和GMA解码器中堆叠更深的层,使它们具有与SKFlow相似的模型大小。同时也减弱了SKFlow中附加参数的影响。 

从GRU到Skblock。使用SKBlock替换GRU的动机是,我们发现直接增加GRU架构的内核大小往往不会带来性能增益。如表4所示,从GMAGRU到GMA - LargeGRU,对Sintel ( final )的改进趋于饱和,对Sintel ( clean )的性能退化较小。尽管如此,从SKBlock - Small到SKBlock,改进还是相当稳定的。所有模型都在相同的设置下使用C→T调度进行训练。值得注意的是,GMAGRU和SKBlock - Small具有相同的内核大小,而GMA - LargeGRU与SKBlock具有相同的内核大小。GMAMoE + GMAGRU是原始GMA纸的结果,( GMAMo E + GMAGRU) *是我们对GMA的再现结果。 

4.5 可视化

如图6所示,我们在来自Sintel测试集的样本图像上可视化了预测的光流。图中用红色圆圈突出显示了结果,这表明与其他方法相比,我们提出的SKFlow预测了更准确的流量,捕获了更多的细节。

 图6为不同方法在Sintel测试集上预测光流的可视化结果 

 

5、结论

在这项工作中,我们提出了SKFlow,它利用超核带来的大感受野来恢复光流估计中的遮挡运动。据我们所知,SKFlow是第一个将内核大小达到15 × 15的光流网络,具有显著的性能增益和适度的计算增长。为了利用大核的计算成本并获得更高的精度,SKFlow探索并提供了有效且高效的应用超核的设计方案,如锥形连接和混合深度卷积。综合实验证明了SKFlow的有效性。SKFlow在MAC增加不到8.42 %的情况下,在Sintel最终通过率上优于之前最先进的方法,在所有已发布的方法中排名第一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值