[深度学习] Panoptic Feature Pyramid Networks 全景FPN

何恺明大神所在的FAIR 2019新作《Panoptic Feature Pyramid Networks》论文翻译,链接 https://arxiv.org/pdf/1901.02446.pdf

Panoptic Feature Pyramid Networks 全景FPN网络

  • 作者:Alexander Kirillov,Ross Girshick,Kaiming He,Piotr Dollar
  • Facebook AI Research (FAIR)
摘要

最近引入的全景分割任务使我们社区对统一实例分割任务和语义分段任务产生了兴趣。然而,当前用于该联合任务的最先进方法使用单独的和不相似的网络,分别用于实例分割和语义分割,而两个任务并没有共享任何计算。在这项工作中,我们的目标是在架构层面统一这些方法,为这两个任务设计单一网络。我们的方法是在Mask R-CNN(一种流行的实例分割方法)中使用使用共享的特征金字塔网络(FPN)骨干的语义分段分支。令人惊讶的是,这个简单的标准模型不仅在细分分割方面仍然有效,而且还产生了一种轻量级、表现最佳的语义分割方法。在这项工作中,我们对带有FPN的Mask R-CNN的最小扩展版本进行了详细研究,我们将其称为Panopific FPN,并显示它是两个任务的稳健且准确的基线。鉴于其有效性和概念简单性,我们希望我们的方法可以作为一个强大的基线,并有助于未来的全景分割研究。

1. 介绍

我们的社区见证了语义分割的快速进展,其任务是为每个像素分配一个类标签,最近在实例分割中,其任务是检测和分割每个对象实例。这些进步得到了简单而强大的基线方法的帮助,包括完全卷积网络(FCN)[39]和Mask R-CNN [23],分别用于语义和实例分割。 这些方法在概念上简单,快速,灵活,可作为这些领域后续进展的基础。 在这项工作中,我们的目标是为全景分割的联合任务提出一个类似的简单的单网络基线[29],这个任务包括语义和实例分割。

虽然在概念上很简单,但设计一个能够实现两个任务的高精度的单一网络具有挑战性,因为这两个任务的最佳执行方法存在许多差异。 对于语义分割,具有通过扩张卷积增强的专用骨干的FCN [55,10]在流行的排行榜中占主导地位[17,14]。 例如,基于区域的Mask R-CNN [23]具有特征金字塔网络(FPN)[34]骨干,已被用作最近识别挑战中所有顶级条目的基础[35,58,41]。 虽然已经尝试统一语义和实例分割[44,1,9],但鉴于它们的并行开发和单独的基准,目前在每个中实现最佳性能所需的专业化可能是不可避免的。

鉴于这些顶级方法的架构差异,人们可能期望在任何一个实例上都会降低准确性,或者在为两个任务设计单个网络时需要语义分段。 相反,我们展示了一种简单,灵活且有效的架构,可以使用同时生成基于区域的输出(实例分割)和密集像素输出(语义分割)的单个网络来匹配两个任务的准确性。

我们的方法从流行用于实例级识别[23]的FPN [34]骨干开始,添加了一个分支,用于与现有的基于区域的分支并行执行语义分割,参见图1。我们不做任何更改添加密集预测分支时到FPN主干,使其与现有的实例分割方法兼容。 我们的方法,我们称之为Panoptic FPN,它能够通过FPN生成实例和语义分段,在Mask R-CNN框架下很容易实现[22]。

在这里插入图片描述

虽然Panoptic FPN是带有FPN的Mask R-CNN的直观扩展,但正确训练两个分支以进行基于区域和密集像素的同时预测对于获得良好结果非常重要。 我们在联合设置中进行仔细研究,以便如何平衡两个分支的损失,有效地构建小批量,调整学习率计划,以及执行数据增加。 我们还探索了语义分段分支的各种设计(所有其他网络组件都遵循Mask R-CNN)。 总而言之,虽然我们的方法对于精确的设计选择是稳健的,但正确解决这些问题是获得良好结果的关键。

当我们独立地训练每个任务时,我们的方法在COCO [35]和Cityscapes [14]的实例和语义分割方面都取得了很好的效果。例如,分段,这是预期的,因为在这种情况下我们的方法等同于掩码R-CNN。对于语义分割,我们附加到FPN的简单密集预测分支产生的精确度与最新的基于扩张的方法相当,例如经过精心设计的DeepLabV3 + [12]。

对于全景分割[29],我们证明通过适当的训练,使用单个FPN同时解决两个任务产生的精度相当于训练两个单独的FPN,基本上是计算的一半。使用相同的计算,两个任务的联合网络以健康的余量超出两个独立的网络。示例全景分割结果如图2所示。

在这里插入图片描述

Panoptic FPN具有内存和计算效率,仅比Mask R-CNN产生轻微的开销。通过避免使用具有高开销的扩张,我们的方法可以使用任何标准的顶级骨干(例如大的ResNeXt [53])。我们相信这种灵活性,加上我们方法的快速训练和推理速度,将有助于未来的全景分割研究。

我们使用了我们模型的初步版本(仅语义分段分支)作为2017年COCO Stuff Segmentation [6]轨道中第一名获奖作品的基础。此单分支模型已被多个条目采用和推广在2018年的COCO和Mapillary Challenges中,展示了其灵活性和有效性。我们希望我们提出的联合全景分割基线同样具有影响力。

2. 相关工作

全景分割:事物和东西分割的联合任务具有丰富的历史,包括早期的场景解析[49],图像解析[50]和整体场景理解[54]。 随着最近引入的联合全景分割任务[29],其中包括一个简单的任务规范和精心设计的任务指标,人们对联合任务产生了新的兴趣。

今年的COCO和Mapillary Recognition Chal- lenge [35,41]以全景分割曲目为特色。 然而,全景挑战中的每个竞争性条目都使用单独的网络和语义分段,没有共享计算.1我们的目标是设计一个对两个任务都有效的网络,可以作为未来工作的基线。

实例分割:基于区域的对象检测方法,包括慢速/快速/快速/掩模R-CNN系列[21,20,46,23],它们在候选对象区域应用深度网络,已经证明非常成功。所有最近COCO检测挑战的获胜者都建立在面具R-CNN [23]与FPN [34],包括2017年[37,43]和2018.1.1最近的创新包括Cascade R-CNN [7],可变形卷积[ 15],并同步批量规范[43]。在这项工作中,带有FPN的原始Mask R-CNN作为我们基线的起点,为我们提供了出色的实例分割性能,并使我们的方法与这些最新进展完全兼容。

基于区域的实例分割的替代方案是从像素方式的语义分段开始,然后执行分组以提取实例[30,36,1]。这种方法具有创新性和前景。然而,这些方法倾向于使用单独的网络来预测实例级信息(例如,[30,1,36]使用单独的网络来分别预测实例边缘,边界框和对象断点)。我们的目标是为联合任务设计单一网络。另一个有趣的方向是使用位置敏感的像素标记[33]来完全卷积编码实例信息; [44,9]以此为基础。

尽管如此,基于区域的方法在检测排行榜上依然占据主导地位[35,58,41]。虽然这促使我们从基于区域的实例分割方法开始,但我们的方法将与密集预测分支完全兼容,例如分段。

语义分割:FCN [39]作为现代语义分割方法的基础。为了提高产生高质量结果所必需的特征分辨率,最近的顶级方法[12,56,5,57]主要依赖于扩张卷积的使用[55](也称为萎缩卷积[10]) 。虽然有效,但是这种方法可以显着增加计算和存储器,从而限制了可以使用的骨干网络的类型。为了保持这种灵活性,更重要的是保持与Mask R-CNN的兼容性,我们选择了不同的方法。

作为扩张的替代方案,编码器 - 解码器[2]或“U-Net”[47]架构可用于增加特征分辨率[25,42,19,45]。编码器解码器逐步上采样并将来自前馈网络的高级特征与低级特征相结合,最终生成具有语义意义的高分辨率特征(见图5)。虽然扩张网络目前更受欢迎并占据排行榜,但编码器解码器也被用于语义分割[47,2,19]。

在我们的工作中,我们采用编码器 - 解码器框架,即FPN [34]。与’对称’解码器[47]相比,FPN使用轻量级解码器(见图5)。 FPN是为实例分段而设计的,它是Mask R-CNN的默认主干。我们表明,无需更改,FPN也可以非常有效地进行语义分割。

多任务学习:我们的方法与多任务学习有关。 一般而言,使用单个网络来解决多种不同的任务会降低性能[31],但各种策略可以减轻这种影响[28,40]。 对于相关任务,可以从多任务学习中获益,例如, Mask R-CNN中的box分支受益于掩码分支[23],并且事物类的联合检测和语义分割也显示增益[3,8,16,44]。 我们的工作研究了多任务训练对东西和事物分割的好处。

3. Panoptic Feature Pyramid Network

我们的方法Panoptic FPN是一个简单的单基线网络,其目标是在实例和语义分割以及它们的共同任务上实现最佳性能:全景分割[29]。 我们的设计原则是从具有FPN的Mask R-CNN开始,这是一个强大的实例分割基准,并且进行最小的更改以生成语义分段密集像素输出(参见图1)。

3.1 Model Architecture

FPN:我们首先简要回顾一下FPN [34]。 FPN采用具有多种空间分辨率特征的标准网络(例如,ResNet [24]),并增加了一个带有横向连接的轻型自上而下通道,见图1a。 自上而下的路径从网络的最深层开始,逐步对其进行上采样,同时从自下而上的路径添加更高分辨率的特征的转换版本。 FPN生成金字塔,通常具有从1/32到1/4分辨率的比例,其中每个金字塔等级具有相同的通道维度(默认为256)。

实例分割分支(Instance segmentation branch):FPN的设计,特别是对所有金字塔等级使用相同的通道维度,可以轻松连接基于区域的物体检测器,如Faster R-CNN [46]。 更快的R-CNN在不同的金字塔等级上执行感兴趣区域(RoI)汇集,并应用共享网络分支来预测每个区域的精炼框和类标签。 为了输出实例分割,我们使用Mask R-CNN [23],它通过添加FCN分支来扩展更快的R-CNN,以预测每个候选区域的二进制分段掩码,见图1b。

Panoptic FPN:正如所讨论的,我们的方法是使用FPN修改Mask R-CNN,以实现逐像素语义分段预测。 然而,为了实现准确的预测,用于此任务的特征应该:(1)具有适当的高分辨率以捕获精细结构,(2)编码足够丰富的语义以准确预测类标签,以及(3)捕获 多尺度信息,用于预测多种分辨率的东西区域。 虽然FPN是为物体检测而设计的,但这些要求 - 高分辨率,丰富,多尺度的特征 - 确切地识别了FPN的特征。 因此,我们建议在FPN上附加一个简单快速的语义分段分支,下面将对此进行描述。

语义分段分支(Semantic segmentation branch):为了从FPN特征生成语义分段输出,我们提出了一种简单的设计,将来自FPN金字塔的所有级别的信息合并为单个输出。它在图3中详细说明。从最深的FPN级别(1/32比例)开始,我们执行三个上采样阶段以产生1/4比例的特征图,其中每个上采样阶段由3x3卷积组成,群体规范[52],ReLU和2x双线性上采样。 FPN比例为1 / 16,1 / 8和1/4(逐渐减少的上升阶段)重复此策略。结果是一组相同的1/4比例的特征图,然后按元素求和。最终的1x1卷积,4x双线性上采样和softmax用于生成原始图像分辨率的每像素类标签。除了东西类之外,这个分支还为属于对象的所有像素输出一个特殊的“其他”类(以避免为这些像素预测东西类)。

在这里插入图片描述

实现细节: 我们使用标准FPN配置,每个标度有256个输出通道,我们的语义分段分支将其减少到128个通道。 对于(FPN前)主干,我们使用批量标准(BN)[27]在ImageNet [48]上预训练的ResNet/ResNeXt [24,53]模型。 当用于微调时,我们用固定的通道仿射变换代替BN,这是典型的[24]。

3.2 推论和训练 Inference and Training

全景推理(Panoptic inference): 全景输出格式[29]要求为每个输出像素分配单个类标签(或void)和实例id(对于stuff类忽略实例id)。 由于Panoptic FPN的实例和语义分段输出可能重叠; 我们应用[29]中提出的简单后处理来解决所有重叠。 这种后处理在精神上与非最大抑制相似,并通过以下方式进行操作:(1)根据其置信度得分解决不同实例之间的重叠;(2)重新解决实例和语义分段输出之间的重叠 实例,以及(3)删除标记为“其他”或在给定区域阈值下的任何填充区域。

联合训练:在训练期间,实例分割分支有三个损失[23]:Lc(分类损失),Lb(边界损失)和Lm(Mask损失)。总实例分割损失是这些损失的总和,其中Lc和Lb通过采样的RoI的数量归一化并且Lm通过前景RoI的数量归一化。语义分段损失Ls被计算为预测和地面实况标签之间的每像素交叉熵损失,通过标记图像像素的数量进行归一化。

我们观察到这两个分支的损失有不同的规模和规范化政策。简单地添加它们会降低其中一项任务的最终性能。这可以通过总实例分段丢失和语义分段丢失之间的简单损失重新加权来校正。因此,我们的最终损失是:L = λ \lambda λi(Lc + Lb + Lm)+ λ \lambda λsLs。 通过调整 λ \lambda λi λ \lambda λs,可以训练单个模型,该模型与两个独立的任务特定模型相当,但大约是计算的一半。

3.3 Analysis

我们使用FPN预测语义分段的动机是创建一个简单的单网络基线,可以执行实例和语义分段。 然而,考虑到我们的方法相对于流行用于语义分割的模型体系结构的内存和计算足迹也是有趣的。 产生高分辨率输出的最常见设计是扩张卷积(图5b)和对称编码器-解码器模型,它们具有带有纵向连接的镜像解码器(图5c)。虽然我们的主要动机是与Mask R-CNN兼容,但我们注意到FPN比通常使用的dilation-8网络轻得多,比对称编码器 - 解码器效率更高,并且大致相当于扩张-16 网络(同时产生4x更高分辨率的输出)。见图4。

在这里插入图片描述

4. Experiments

我们的目标是证明我们的方法Panoptic FPN可以作为实例分割,语义分割及其全景分割联合任务的简单有效的单网络基线[29]。对于实例分割,这是预期的,因为我们的方法扩展了掩模R-CNN和FPN。对于语义分割,由于我们只是将一个轻量级的密集像素预测分支(图3)附加到FPN,我们需要证明它可以与最近的方法竞争。最后,我们必须证明Panoptic FPN可以在多任务设置中进行训练,而不会损失各项任务的准确性。

因此,我们通过测试我们的语义分割方法开始我们的分析(我们将这个单任务变量称为语义FPN)。令人惊讶的是,这个简单的模型在COCO [35]和Cityscapes [14]数据集上实现了竞争性的语义分割结果。接下来,我们分析了语义分割分支与Mask R-CNN的集成以及联合训练的效果。最后,我们再次展示了COCO和Cityscapes的全景分割结果。定性结果显示在图2和6中。我们接下来描述实验设置。

在这里插入图片描述

4.1 Experimental Setup

COCO: COCO数据集[35]是在实例分割的基础上开发的,但最近增加了填充符号[6]。例如分段,我们使用2017年数据分割与118k/5k/20k列车/val/测试图像和80个类别。对于语义分段,我们使用2017年东西数据,40k/5k/5k分割和92个类。最后,全景分割[29]使用所有2017年COCO图像,其中包含80个物体和53个类注释。

城市风景: 城市风景[14]是一个以自我为中心的街景数据集。它具有5k高分辨率图像(1024×2048像素),具有精确的像素精确注释:2975列车,500 val和1525测试。另外还有带有粗略注释的20k图像,我们在实验中不使用这些图像。有19个类,8个带有实例级掩码。

单任务指标: 我们使用每个数据集提供的评估代码报告各个任务的标准语义和实例细分指标。对于语义分割,mIoU(平均交叉联盟)[17]是COCO和Cityscapes的主要指标。我们还在城市景观[14]上的COCO [6]和iIoU(实例级IoU)上报告了fIoU(频率加权IoU)。对于实例分段,AP(类别平均精度和IoU阈值)[35]是主要度量,AP50和AP75是选择的补充度量。

全景分割度量: 我们使用PQ(全景质量)作为测量全景FPN性能的默认度量,详见[29]。 PQ捕获识别和分割质量,并以统一的方式处理东西和事物类别。这个单一,统一的指标使我们能够直接比较方法。此外,我们使用PQSt和PQTh分别报告东西和物品的性能。请注意,在将后处理合并过程应用于语义和实例分支的输出之后,PQ用于评估Panoptic FPN预测。

COCO训练: 我们使用默认的Mask R-CNN1⇥训练设置[22]和刻度抖动([640,800]中的较短图像侧)。对于语义分段,我们预测所有80个类的53个东西类加上一个“其他”类。

Cityscapes训练: 我们从32个随机512×1024图像作物(每个GPU 4个作物)构建每个小批量,然后将每个图像随机缩放0.5到2.0x。我们训练65k次迭代,学习率为0.01,在40k和55k迭代时将其降低10倍。这与原始的Mask R-CNN设置[23]不同,但对实例和语义分割都有效。对于语义分割的最大骨干,我们执行颜色增强[38]和裁剪自举[5]。对于语义分割,预测所有事物类而不是单个“其他”标签,表现更好(对于全景视觉,我们放弃这些预测)。由于mIoU的高变异性(高达0.4),我们报告了Cityscapes上每个实验的5个试验的中位数性能。

4.2 FPN for Semantic Segmentation

Cityscapes: 我们首先将我们的基线语义FPN与表1a中Cityscapes val分割的现有方法进行比较。 我们比较了最近表现最好的方法,但没有比较通常使用集合,COCO预训练,测试时间增加等的竞争对手。 我们的方法是对FPN的最小扩展,与DeepLabV3 + [12]这样经过多次设计迭代的重型工程系统相比,能够取得强大的成果。 在我们的基线中,我们故意避免像非本地[51]或SE [26]这样的正交架构改进,这可能会产生进一步的收益。 在计算和内存方面,语义FPN比典型的扩张模型更轻,同时产生更高分辨率的特征(参见图4)。 总的来说,这些结果表明我们的方法是语义分割的强大基线。

COCO: 我们的方法的早期版本赢得了2017年COCO-Stuff挑战。结果报告在表1b中。由于这是一个早期的设计,语义分支略有不同(每个上采样模块有两个3⇥3转换层和ReLU在双线性升级到最终分辨率之前,并且功能被连接而不是求和,请与图进行比较3)。正如我们将在短期内展示的那样,结果对于确切的分支设计来说相当稳健。我们的竞赛项目通过颜色增强训练[38],并在测试时平衡了类别的分布并使用了多尺度推理。最后,我们注意到当时我们使用了特定于语义分段的训练计划,类似于我们的城市景观计划(但具有双倍学习率和减半的批量大小)。

消融: 我们执行一些消融来分析我们提出的语义分段分支(如图3所示)。为了与我们论文中的进一步实验保持一致,我们使用来自COCO Panoptic数据集的填充注释(与所讨论的不同于用于COCO Stuff竞赛的那些)。表1c显示了语义分支中具有不同通道数的ResNet-50语义FPN。我们发现128次打击在准确性和效率之间取得了很好的平衡。在表1d中,我们比较了来自不同FPN级别的聚合特征映射的元素和和串联。虽然两者的准确性是可比的,但求和更有效。总的来说,我们观察到新的密集像素标记分支的简单架构对于精确的设计选择是稳健的。

在这里插入图片描述

4.3 Multi-Task Training

我们的方法的单任务表现是非常有效的;对于语义分割,上一节中的结果证明了这一点,例如,我们从Mask R-CNN开始就知道这种分割。但是,我们可以在多任务设置中共同训练这两项任务吗?

为了将我们的语义分段分支与Mask R-CNN中的实例分段分支相结合,我们需要确定如何训练单个统一网络。之前的工作表明,多任务培训往往具有挑战性,并可能导致结果退化[31,28]。我们同样观察到,对于语义或实例分段,添加辅助任务会降低与单任务基线相比的准确性。

在表2中,我们显示使用ResNet-50-FPN,对语义分段丢失, λ \lambda λs或实例分段丢失使用简单的损失缩放权重 λ \lambda λi,我们可以获得重新加权,从而改善单任务基础上的结果 - 线。具体而言,添加具有适当 λ \lambda λs的语义分段分支改进了实例分段,反之亦然。这可以被利用来改进单任务结果。但是,我们的主要目标是同时解决这两个任务,我们将在下一节中探讨。

在这里插入图片描述

4.4 Panoptic FPN

现在转向我们的主要结果:测试Panoptic FPN用于全景分割的联合任务[29],其中网络必须联合并准确地输出物品和事物分段。对于以下实验,对于每个设置,我们从{0.5,0.75,1.0}中选择最优 λ \lambda λs λ \lambda λi,确保结果不会因固定选择 λ \lambda λ’s而偏斜。

主要结果: 在表3a中,我们比较了使用相同骨架分别用Panoptic FPN训练的两个网络。 Panoptic FPN产生的性能相当,但计算量只有一半。我们还通过比较两个独立的网络和ResNet-50骨干网以及Panoptic FPN和ResNet-101来平衡计算预算,参见表3b。使用大致相同的计算预算,Panoptic FPN明显优于两个独立的网络。总之,这些结果表明联合方法是严格有益的,并且我们的Panoptic FPN可以作为联合任务的坚实基线。

消融: 我们使用ResNet-50对Panoptic FPN进行额外消融。首先,默认情况下,我们在每次梯度更新期间将实例和语义损失结合在一起。另一种策略是在每次迭代中交替丢失(这可能有助于不同的扩充策略可以用于两个任务)。我们比较表3c中的这两个选项;综合亏损表现出更好的表现。接下来,在表3d中,我们将FPN通道分组为两组的架构进行比较,每个任务使用两个特征集中的一个作为输入。虽然结果好坏参半,但我们预计更复杂的多任务方法可以带来更大的收益。

比较: 我们通过比较Panoptic FPN和现有方法得出结论。对于这些实验,我们使用Panoptic FPN和ResNet-101骨架,没有铃声和口哨声。在表4a中,我们显示Panoptic FPN在最近的COCO Panoptic分段挑战中大大优于所有单一模型条目。这为全景分割任务建立了新的基线。在Cityscapes上,我们将Panoptic FPN与最近在表4b中[1]中提出的全景分割方法进行了比较。 Panoptic FPN的性能优于[1] 4.3点的PQ余量。

在这里插入图片描述

5. Conclusion

我们介绍了一种概念上简单但有效的全景分割基线。 该方法从具有FPN的Mask R-CNN开始,并且为其添加了用于密集像素预测的轻量级语义分段分支。 我们希望它可以作为未来研究的坚实基础。

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值