CV不存在了???Meta最新!Segment Anything:CV GPT-3来了!

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【语义分割】技术交流群

后台回复【分割综述】获取语义分割、实例分割、全景分割、弱监督分割等超全学习资料!

摘要

本文介绍了Segment Anything(SA)项目:一个用于图像分割的新任务、模型和数据集。在数据收集循环中使用论文的高效模型,本文建立了迄今为止最大的分割数据集(到目前为止),在1100万张许可和尊重隐私的图像上有超过10亿个mask。该模型被设计和训练为可提示的,因此它可以将零样本转换为新的图像分布和任务。作者评估了其在许多任务上的能力,发现其零样本性能令人印象深刻,通常与之前的完全监督结果相竞争,甚至优于这些结果。开源地址:https://segment-anything.com/

简介

在网络规模数据集上预先训练的大型语言模型正以强大的零样本和较少的样本泛化革新NLP[10]。这些“基础模型”[8]可以推广到训练过程中看到的任务和数据分布。这种功能通常通过提示工程来实现,在提示工程中,手工制作的文本用于提示语言模型为手头的任务生成有效的文本响应。当使用来自网络的大量文本语料库进行缩放和训练时,这些模型的零样本和少样本性能与微调模型(在某些情况下甚至匹配)相比出奇地好[10,21]。经验趋势表明,这种行为随着模型规模、数据集大小和总训练计算的增加而改善[56,10,21,51]。

基础模型也在计算机视觉中进行了探索,尽管程度较低。也许最突出的插图将来自网络的成对文本和图像对齐。例如,CLIP[82]和ALIGN[55]使用对比学习来训练对齐两种模态的文本和图像编码器。经过训练后,工程文本提示可以实现对新视觉概念和数据分布的零样本泛化。这种编码器还与其他模块有效组合,以实现下游任务,如图像生成(例如,DALL·e[83])。虽然在视觉和语言编码器方面已经取得了很大进展,但计算机视觉包括了超出这一范围的广泛问题,而且对于其中许多问题,还不存在丰富的训练数据。本文的目标是建立一个图像分割的基础模型。也就是说寻求开发一个可提示的模型,并使用能够实现强大泛化的任务在广泛的数据集上对其进行预训练。有了这个模型,论文的目标是使用即时工程解决新数据分布上的一系列下游分割问题。

这个计划的成功取决于三个组成部分:任务、模型和数据。为了开发它们,本文解决了以下关于图像分割的问题:

  • What task will enable zero-shot generalization?

  • What is the corresponding model architecture?

  • What data can power this task and model?

这些问题错综复杂,需要综合解决。论文首先定义了一个可提示的分割任务,该任务足够通用,可以提供强大的预训练目标,并实现广泛的下游应用。此任务需要一个支持灵活提示的模型,并且可以在提示时实时输出分割掩码,以便进行交互使用。为了训练模型,则需要一个多样化的、大规模的数据源。不幸的是,没有用于分割的网络规模的数据源;为了解决这个问题,本文构建了一个“数据引擎”,即我们在使用高效的模型来帮助数据收集和使用新收集的数据来改进模型之间进行迭代。接下来介绍每个互连的组件,然后是创建的数据集和证明本文方法有效性的实验。

任务:在NLP和最近的计算机视觉中,基础模型是一个很有前途的发展,它可以对新数据集和任务执行零样本和少样本学习,通常使用“提示”技术。受这项工作的启发,本文提出了可提示的分割任务,其中的目标是在给定任何分割提示的情况下返回有效的分割掩码(见图1a)。提示只是指定在图像中分割什么,例如,提示可以包括标识对象的空间或文本信息。有效输出掩码的要求意味着,即使提示不明确,并且可能涉及多个对象(例如,衬衫上的一个点可能指示衬衫或穿着衬衫的人),输出也应该是这些对象中至少一个的合理掩码。我们使用可提示的分割任务作为预训练目标,并通过提示工程解决一般的下游分割任务。

9c692c2f4adff5e79b80bef21cbff562.png

模型:可提示的分割任务和现实世界使用的目标对模型体系结构施加了约束。特别是,该模型必须支持灵活的提示,需要实时计算掩码以允许交互式使用,并且必须具有模糊性。令人惊讶的是,论文发现一个简单的设计满足了所有三个约束:一个强大的图像编码器计算图像嵌入,一个提示编码器嵌入提示,然后将这两个信息源组合在一个预测分割掩码的轻量级掩码解码器中论文们将此模型称为Segment Anything Model或SAM(见图1b)。通过将SAM分离为图像编码器和快速提示编码器/掩码解码器,可以在不同提示下重用相同的图像嵌入(并分摊其成本)。在给定图像嵌入的情况下,提示编码器和掩码解码器在web浏览器中从提示预测掩码,时间为~50ms。我们专注于点、框和掩码提示,并通过自由形式的文本提示显示初始结果。为了让SAM意识到模糊性,论文将其设计为预测单个提示的多个掩码,使SAM能够自然地处理模糊性,例如衬衫对人的例子。

数据引擎:为了实现对新数据分布的强泛化,论文发现有必要在一组庞大而多样的掩码上训练SAM,超越现有的任何分割数据集。虽然基础模型的一种典型方法是在线获取数据[82],但mask并不自然丰富,因此需要一种替代策略。我们的解决方案是建立一个“数据引擎”,即我们与模型在环数据集注释共同开发我们的模型(见图1c)。数据引擎有三个阶段:辅助手动、半自动和全自动。在第一阶段,SAM帮助注释器标注掩码,类似于经典的交互式分段设置。在第二阶段,SAM可以通过提示可能的目标位置来自动生成对象子集的掩码,注释器专注于注释其余对象,有助于增加掩码的多样性。在最后阶段,我们用前景点的规则网格提示SAM,平均每张图像产生约100个高质量mask。

数据集:最终数据集SA-1B包括来自11M许可和隐私保护图像的超过1B个mask(见图2)。SA-1B是使用我们的数据引擎的最后阶段完全自动收集的,其掩码比任何现有的分割数据集都多400倍[66,44,117,60],正如我们广泛验证的那样,掩码具有高质量和多样性。除了将其用于训练SAM以使其稳健和通用之外,我们希望SA-1B成为旨在建立新基础模型的研究的宝贵资源。

负责任的AI:我们研究并报告了使用SA-1B和SAM时潜在的公平问题和偏见。SA-1B中的图像跨越了地理和经济上不同的国家,我们发现SAM在不同人群中表现相似。论文希望这将使我们的工作在现实世界的用例中更加公平。

实验:论文对SAM进行了广泛的评估。首先,使用一套新的23个分割数据集,我们发现SAM从单个前景点生成高质量的掩模,通常仅略低于手动注释的GT。其次使用提示工程在零样本传输协议下的各种下游任务上发现了一致的强定量和定性结果,包括边缘检测、对象建议生成、实例分割和文本到掩码预测的初步探索。这些结果表明,SAM可以与即时工程一起开箱即用,以解决涉及SAM训练数据之外的对象和图像分布的各种任务。

Segment Anything Task

论文从NLP中获得了灵感,在NLP中,下一个令牌预测任务用于基础模型预训练,并通过即时工程解决不同的下游任务[10]。为了建立分割的基础模型,我们的目标是定义一个具有类似功能的任务。任务:论文首先将提示的概念从NLP转换为分割,其中提示可以是一组前景/背景点、粗略框或掩码、自由格式文本,或者通常是指示在图像中分割什么的任何信息。那么,可提示的分割任务是在给定任何提示的情况下返回有效的分割掩码。“有效”掩码的要求只是意味着,即使提示不明确,并且可能涉及多个对象(例如,回忆衬衫与人的例子,见图3),输出也应该是其中至少一个对象的合理掩码。这一要求类似于期望语言模型对不明确的提示输出一致的响应。论文选择此任务是因为它会产生一种自然的预训练算法和一种通过提示将零样本转移到下游分割任务的通用方法。

b500d0b035456147207595bd8aa7efc4.png

预训练:可提示分割任务提出了一种自然的预训练算法,该算法模拟每个训练样本的提示序列(例如,点、框、掩码),并将模型的掩码预测与基本事实进行比较。论文将这种方法从交互式分割中进行了调整[10970],尽管与交互式分割不同,交互式分割的目的是在足够的用户输入后最终预测有效的掩码,但我们的目的是始终预测任何提示的有效掩码,即使提示不明确。这确保了预先训练的模型在涉及歧义的用例中是有效的,包括我们的数据引擎所要求的自动注释。

零样本迁移:直观地说,论文的预训练任务赋予了模型在推理时对任何提示做出适当响应的能力,因此下游任务可以通过设计适当的提示来解决。例如,如果有一个猫的边界框检测器,则可以通过向我们的模型提供检测器的框输出作为提示来解决猫实例分割。一般来说,一系列实用的分割任务可以作为提示。

相关任务:分割是一个广泛的领域:有交互式分割[57109]、边缘检测[3]、超像素化[85]、对象建议生成[2]、前景分割[94]、语义分割[90]、实例分割[66]、全景分割[59]等。我们的可提示分割任务的目标是通过即时工程生成一个功能广泛的模型,该模型可以适应许多(尽管不是全部)现有和新的分割任务。这种能力是任务泛化的一种形式[26]。请注意,这与之前关于多任务分割系统的工作不同。在多任务系统中,单个模型执行一组固定的任务,例如联合语义、实例和全景分割[114,19,54],但训练和测试任务是相同的。我们工作中的一个重要区别是,为可提示分割训练的模型可以在推理时通过充当更大系统中的组件来执行新的不同任务,例如,为了执行实例分割,将可提示分割模型与现有的目标检测器相结合。

讨论:提示和组合是功能强大的工具,使单个模型能够以可扩展的方式使用,有可能完成模型设计时未知的任务。这种方法类似于其他基础模型的使用方式,例如CLIP[82]是DALL·e[83]图像生成系统的文本图像对齐组件。我们预计,与专门为固定任务集训练的系统相比,以快速工程等技术为动力的可组合系统设计将实现更广泛的应用程序。从合成的角度比较可提示分割和交互式分割也很有趣:虽然交互式分割模型是在考虑人类用户的情况下设计的,但为可提示分割训练的模型也可以组成一个更大的算法系统,正如我们将要演示的那样。

Segment Anything Model

接下来将描述用于可提示分割的Segment Anything Model(SAM)。SAM有三个组件,如图4所示:图像编码器、灵活提示编码器和快速掩码解码器。论文建立在Transformer视觉模型[14,33,20,62]的基础上,对(摊销的)实时性能进行了特定的权衡。

4807c87a8a60248d1408383bea747f94.png

图像编码器:受可扩展性和强大的预训练方法的启发,论文使用了MAE[47]预训练的视觉Transformer(ViT)[33],该Transformer至少适用于处理高分辨率输入[62]。图像编码器每个图像运行一次,并且可以在提示模型之前应用。

提示编码器:我们考虑两组提示:稀疏(点、框、文本)和密集(掩码)。论文通过位置编码[95]来表示点和框,这些位置编码与每个提示类型的学习嵌入相加,并使用CLIP[82]的现成文本编码器来表示自由格式文本。密集提示(即掩码)使用卷积嵌入,并与图像嵌入逐元素求和。

掩码解码器:掩码解码器有效地将图像嵌入、提示嵌入和输出令牌映射到mask。该设计受到[14,20]的启发,采用了对Transformer解码器块[103]的修改,然后是动态掩码预测头。论文修改的解码器块在两个方向上使用提示自注意力和交叉注意力(提示到图像嵌入,反之亦然)来更新所有嵌入。在运行两个块之后,对图像嵌入进行上采样,MLP将输出令牌映射到动态线性分类器,然后动态线性分类器计算每个图像位置的掩码前景概率。

解决歧义:对于一个输出,如果给出不明确的提示,模型将平均多个有效掩码。为了解决这个问题,本文修改了模型,以预测单个提示的多个输出掩码(见图3)。我们发现,3个掩码输出足以解决大多数常见情况(嵌套掩码通常最多有三个深度:整体、部分和子部分)。在训练过程中,只在mask上反向传播最小的损失[15,45,64]。为了对掩码进行排序,该模型预测每个掩码的置信度得分(即估计的IoU)。

效率:整体模型设计在很大程度上是出于效率的考虑。给定预先计算的图像嵌入,提示编码器和掩码解码器在网络浏览器中运行,在CPU上运行,时间约为50ms。这种运行时性能使我们的模型能够无缝、实时地进行交互式提示。

损失和训练:使用focal loss[65]和dice loss[73]的线性组合来监督掩模预测。我们使用几何提示的混合来训练可提示的分割任务。遵循[92,37],论文通过在每个掩码的11轮中随机采样提示来模拟交互式设置,使SAM能够无缝集成到我们的数据引擎中。

Segment Anything Data Engine

由于互联网上的分割掩码并不丰富,论文建立了一个数据引擎来收集我们的1.1亿掩码数据集SA-1B。数据引擎有三个阶段:(1)模型辅助的手动注释阶段,(2)混合了自动预测掩码和模型辅助注释的半自动阶段,以及(3)全自动阶段,在该阶段中,论文的模型在没有注释器输入的情况下生成掩码。

辅助手动阶段:在第一阶段,类似于经典的交互式分割,一组专业注释人员通过使用SAM提供的基于浏览器的交互式分割工具点击前景/背景对象点来标注mask。mask可以使用像素级“画笔”和“橡皮擦”工具进行细化。我们的模型辅助注释直接在浏览器内实时运行(使用预先计算的图像嵌入),从而实现真正的交互式体验。论文没有对标记目标施加语义约束,注释器可以自由地标记“东西”和“事物”[1]。

半自动阶段:在这个阶段,我们的目标是增加mask的多样性,以提高模型分割任何东西的能力。为了将注释器集中在不太突出的目标上,首先自动检测到高置信度的掩码。然后向注释器展示了预先填充了这些掩码的图像,并要求他们注释任何其他未注释的目标。为了检测高置信度的掩码,使用通用的“对象”类别在所有第一阶段掩码上训练了一个边界框检测器[84]。在此阶段,论文在180k张图像中额外收集了590万个掩模(总共1020万个掩膜)。

全自动阶段:在最后阶段,注释是完全自动的。这是可行的,因为模型有两个主要的增强。首先,在这个阶段开始时,我们收集了足够的mask,以大大改进模型,包括前一阶段的各种mask。其次,到了这个阶段,我们已经开发了模糊感知模型,它使我们能够预测有效的掩码,即使在模糊的情况下也是如此。对于模糊感知模型,如果一个点位于部分或子部分上,我们的模型将返回子部分、部分和整个目标。模型的IoU预测模块用于选择置信掩码,此外,我们只识别和选择了稳定的掩码。最后,在选择了置信和稳定的掩码后,应用非最大抑制(NMS)来过滤重复。

Segment Anything Dataset

本文的数据集SA-1B由11M多样、高分辨率、许可和隐私保护的图像和使用论文的数据引擎收集的1.1B高质量分割掩码组成。我们将SA-1B与现有数据集进行比较,并分析mask质量和属性。我们正在发布SA-1B,以帮助未来计算机视觉基础模型的开发。

图像:论文从一家直接与摄影师合作的供应商那里获得了一组1100万张新图像的许可。这些图像具有高分辨率(平均3300×4950像素),由此产生的数据大小可能会带来可访问性和存储方面的挑战。因此,我们正在发布最短边设置为1500像素的下采样图像。即使在下采样之后,图像的分辨率也明显高于许多现有的视觉数据集(例如,COCO[66]图像的分辨率为~480×640像素)。请注意,目前大多数模型的输入分辨率要低得多。在公布的图像中,人脸和车牌被模糊了。

Masks:我们的数据引擎产生了11亿个掩码,其中99.1%是完全自动生成的。因此,自动mask的质量至关重要。我们将其直接与专业注释进行比较,并查看各种掩码财产与显著分段数据集的比较。结论是自动mask质量高,对训练模型有效。

Mask质量:为了估计掩模质量,我们随机采样了500张图像(~5万个掩模),并要求我们的专业注释人员提高这些图像中所有掩模的质量。注释人员使用我们的模型和像素精确的“画笔”和“橡皮擦”编辑工具来完成这项工作。这一过程产生了一对自动预测和专业校正的口罩。我们计算了每对之间的IoU,发现94%的对的IoU大于90%(97%的对的IoU大于75%)。为了进行比较,先前的工作估计注释器之间的一致性为85-91%IoU[44,60]。

Mask属性:在图5中,与现有最大的分割数据集相比,论文绘制了SA-1B中目标中心的空间分布。

dc29f8f12c76bda776ce82ca05d2d15e.png 4947ac63e0906610456b98d10ee9bb03.png

Segment Anything RAI Analysis

接下来通过调查使用SA-1B和SAM时潜在的公平问题和偏见,对我们的工作进行负责任的人工智能(RAI)分析。

地域和收入代表性:我们推断国家图像是使用标准方法拍摄的。在图7中可视化了SA-1B(左)和图像最多的50个国家(右)中的每个国家的图像计数。注意到,排名前三的国家来自世界不同地区。接下来,在表1中,我们比较了SA-1B、COCO[66]和Open Images[60]的地理和收入表示。

1b4fe3004789b93152def9e0a6f29ce6.png b6a6eea2633502a0a9bea103097e9f12.png

细分人群的公平性:我们通过测量各组之间SAM的表现差异,调查了感知性别表现、感知年龄组和感知肤色的潜在公平问题。我们使用更具包容性的人群注释(MIAP)[87]数据集来进行性别表示和年龄,并使用专有的肤色数据集。表2(左上角)显示了感知性别表现的结果。

a8c99d3f667759944709fc337c4d37cd.png

零样本迁移实验

本节将介绍SAM的零样本迁移实验,即Segment Anything Model。论文考虑了五个任务,其中四个任务与用于训练SAM的即时分段任务显著不同。这些实验在数据集和训练过程中没有看到的任务上评估SAM(我们使用的“零样本迁移”遵循CLIP中的用法[82])。数据集可能包括新的图像分布,例如水下或以自我为中心的图像(例如图8),据我们所知,这些图像没有出现在SA-1B中。

87cac75867c4ce012c4efd3287ba98c3.png

零样本单点有效掩模评估

论文使用所有23个数据集进行mIoU评估。对于人类研究,论文使用图9b中列出的子集(由于此类研究的资源需求)。该子集包括SAM根据自动度量优于和低于RITM的两个数据集。首先使用mIoU对23个数据集的全套数据集进行自动评估。我们比较了图9a中每个数据集的结果与RITM。图9c显示了额外的基线,SimpleClick[67]和FocalClick[18],它们获得的单点性能低于RITM和SAM。随着点数从1增加到9,我们观察到方法之间的差距减小。随着任务变得更容易,这是意料之中的事。此外,SAM并没有针对非常高的IoU状态进行优化。最后,在图9d中,我们将默认的中心点采样替换为随机点采样。我们观察到SAM和基线之间的差距越来越大,并且SAM能够在任何一种采样方法下获得可比较的结果。

106c450f7483cf0499f0adee67bd45c1.png

零样本边缘检测

论文在图10中可视化了具有代表性的边缘图:

4812ae1c52ca88e864f86d60d06824cc.png 4a8475f215f8ee996134dd79bf6f97a8.png

零样本目标proposal

在表4中毫不奇怪地看到,使用来自ViTDet-H的检测作为object proposals(即,游戏AR的DMP方法[16])总体上表现最好。

3a5d8cdd91edc28f7d87629195ad6681.png

零样本实例分割

论文比较了表5中SAM和ViTDet对COCO和LVIS预测的掩码。在图11中,我们观察到SAM在人类研究中始终优于ViTDet。

31e231f70d80395cbf7e3600f5ec9b74.png

零样本Text-to-Mask

可视化结果如图12所示:

8af8eef3fa6cb0fcc219afa2a2873f9a.png

消融实验

图13(左)绘制了根据数据引擎阶段的累积数据进行训练时SAM的性能。可以观察到,每个阶段都会提升mIoU。在所有三个阶段的训练中,自动标注的数量远远超过手动和半自动标注。

a636071a22ef4a865fa29ba0cc196061.png

讨论

基础模型:自机器学习的早期以来,预训练的模型已经适应了下游任务[99]。近年来,随着对规模的日益重视,这种范式变得越来越重要,这类模型最近被(重新)称为“基础模型”:即“在大规模的广泛数据上训练并适应广泛下游任务的模型”[8]。我们的工作与这一定义有很好的相关性,尽管我们注意到图像分割的基础模型本质上是有限的,因为它代表了计算机视觉的一个重要但部分的子集。论文还将我们的方法的一个方面与[8]进行了对比,后者强调了自我监督学习在基础模型中的作用。虽然本文的模型是用自监督技术(MAE[47])初始化的,但其绝大多数能力来自大规模的监督训练。在数据引擎可以扩展可用注释的情况下,如我们的情况,监督训练提供了一个有效的解决方案。

组成:经过预训练的模型可以提供新的能力,甚至超出训练时的想象。一个突出的例子是CLIP[82]如何在更大的系统中用作组件,如DALL·E[83]。本文的目标是通过SAM使这种合成变得简单。通过要求SAM预测各种分割提示的有效掩码来实现这一点。其效果是在SAM和其他组件之间创建一个可靠的接口。例如,MCC[106]可以很容易地使用SAM来分割感兴趣的对象,并实现对看不见的对象的强泛化,以便从单个RGB-D图像进行3D重建。在另一个例子中,SAM可以通过可穿戴设备检测到的注视点来提示,从而启用新的应用程序。由于SAM能够推广到以自我为中心的图像等新领域,因此此类系统无需额外训练即可工作。

局限性:虽然SAM总体表现良好,但并不完美。它可能会错过精细的结构,有时会产生小的断开的组件的幻觉,并且不会像“放大”的计算密集型方法那样清晰地产生边界,例如[18]。通常,当提供许多点时,论文预计专用的交互式分割方法会优于SAM,例如[67]。与这些方法不同,SAM是为通用性和使用广度而设计的,而不是高IoU交互式分割。此外,SAM可以实时处理提示,但当使用重型图像编码器时,SAM的总体性能不是实时的。我们对文本屏蔽任务的尝试是探索性的,并不完全稳健,尽管我们相信可以通过更多的努力来改进。虽然SAM可以执行许多任务,但尚不清楚如何设计实现语义和全景分割的简单提示。最后,还有一些特定领域的工具,如[7],我们预计它们在各自的领域中会优于SAM。

结论:Segment Anything项目试图将图像分割提升到基础模型时代。本文的主要贡献是一项新任务(可提示分割)、模型(SAM)和数据集(SA-1B),使这一飞跃成为可能。SAM是否达到了基础模型的地位,还有待于它在社区中的使用方式,但无论我们对这项工作的前景如何,超过1B个mask的发布和我们可推广的细分模型都将有助于为未来铺平道路。

参考

[1] Segment Anything

视频课程来了!

自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、传感器部署、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知、决策规划、轨迹预测等多个方向学习视频,欢迎大家自取(扫码进入学习)

6754c2b667e071357b2f0686556fdef3.png

(扫码学习最新视频)

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、Occpuancy、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

d021b621e5cf8073e15d4a2cf18cd545.jpeg

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;

61b815004e6404b0c1e7121764c5342e.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值