CC-SAM:SAM with Cross-feature Attention and Context for Ultrasound Image Segmentation跨特征注意力和上下文SAM分割

这篇文章介绍了一种名为CC-SAM的改进模型,旨在提升Segment Anything Model (SAM)在医学图像分割中的性能,特别是针对超声图像。主要内容包括:

  1. 问题背景:SAM在自然图像分割中表现出色,但在医学图像(如低对比度、模糊边界、复杂形态和小尺寸物体)中表现不佳。

  2. 改进方法

    • 引入冻结的CNN分支:与SAM的ViT编码器协同工作,增强局部空间信息的捕捉。

    • 特征和位置适配器:在ViT分支中引入适配器,优化编码器的表示。

    • 变分注意力融合模块:改进CNN和ViT分支特征的融合,提升模型性能。

    • 文本提示:利用ChatGPT生成文本提示,提供上下文信息,显著提高分割准确性。

  3. 实验与结果

    • 数据集:在多个公共医学图像数据集上进行测试,包括TN3K、BUSI、CAMUS等。

    • 性能提升:CC-SAM在多个任务中表现优异,超越了现有的任务特定方法和基础模型。

    • 泛化能力:CC-SAM在未见数据集上表现出色,展示了强大的泛化能力。

  4. 结论:CC-SAM通过结合CNN和ViT的优势,利用变分注意力融合和文本提示,显著提升了SAM在医学图像分割中的性能,为通用图像分割模型在医学领域的应用提供了新的方向。

这篇文章的主要贡献在于提出了一种针对医学图像分割的优化模型,通过多种技术创新显著提升了分割性能,并展示了其在多个数据集上的优越表现。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

摘要

Segment Anything Model (SAM) 在自然图像分割领域取得了显著的成功,但在医学影像领域的应用却遇到了挑战。具体来说,该模型在处理低对比度、模糊边界、复杂形态和小尺寸物体的医学图像时表现不佳。为了解决这些问题并提升SAM在医学领域的性能,我们引入了一种全面的改进。首先,我们引入了一个冻结的卷积神经网络(CNN)分支作为图像编码器,通过一种新颖的变分注意力融合模块与SAM原有的视觉Transformer(ViT)编码器协同工作。这种集成增强了模型捕捉局部空间信息的能力,这在医学图像中通常至关重要。此外,为了进一步优化SAM在医学影像中的应用,我们在ViT分支中引入了特征和位置适配器,改进了编码器的表示。我们发现,与当前通过提示策略微调SAM进行超声医学分割的方法相比,使用文本描述作为SAM的文本提示显著提高了性能。利用ChatGPT的自然语言理解能力,我们生成的提示为SAM提供了上下文信息和指导,使其能够更好地理解超声医学图像的细微差别,并提高其分割准确性。我们的方法整体上代表了在使通用图像分割模型在医学领域更具适应性和效率方面迈出了重要一步。

1 引言

深度学习已经彻底改变了图像[20, 25, 28]、视频分类[15, 19]和医学视觉[17, 46, 51, 57]领域,使这些领域的准确性和效率达到了前所未有的水平。医学图像分割在描绘和强调医学扫描中的特定器官、组织和异常方面起着关键作用,构成了计算机辅助诊断系统的基石[36]。众多用于自主医学图像分割的深度学习模型的发展标志着该技术潜力的转变[7, 46, 51, 57]。然而,这些模型通常针对特定任务进行专门设计,当用于不同任务时需要重新校准,这一限制在医学数据中带来了重大挑战。

Segment Anything Model (SAM) [32] 作为一种通用的视觉分割基础模型,因其能够分割各种对象并展现出强大的零样本泛化能力而受到广泛关注。通过用户驱动的提示(如点、边界框和粗略掩码),SAM能够动态分割相关对象。这种适应性使SAM成为众多分割用例的理想工具,促进了多个离散医学图像分割任务的整合,增强了其在临床应用中的实用性[30]。

然而,尽管SAM拥有广泛的数据集(SA1B),但由于缺乏全面的临床注释,其在医学领域的表现有所下降[30]。为了提升SAM在医学图像分割中的性能,许多方法被提出,例如调整掩码解码器[38]、在图像编码器中应用LoRA策略[54]、在ViT图像编码器中引入任务特定信息的适配器[52]。先前通过优化医学数据集来适应SAM进行医学图像分割的尝试遇到了局限性,因为它们的标记化方法可能会模糊关键的局部数据。

随后引入了SAMUS [34],旨在将SAM的卓越分割能力和强大的泛化能力移植到医学图像分割中,同时确保计算效率。SAMUS中的显著改进包括重新设计的ViT图像编码器、并行CNN分支的集成以及跨分支注意力机制的引入等。

在本文中,我们介绍了CC-SAM,这是一种基于SAMUS的新型模型。值得注意的是,CC-SAM用固定的CNN替换了可调整的CNN,并通过适配器进行了增强,并采用了新颖的变分注意力融合模块,而不是跨注意力分支。利用ChatGPT生成的描述来提示模型,我们在现有针对医学导向SAM的提示策略上取得了显著的性能提升。

图1:使用SAM进行医学图像分割的方法比较。

CC-SAM的主要贡献如下:

  • 开发了CC-SAM:一种针对通用医学图像分割优化的基础模型,计算效率高。

  • 引入了带有适配器的静态CNN,补充了SAMUS的ViT编码器,进一步降低了计算成本。

  • 创新性地集成了变分注意力融合,增强了CNN和ViT分支特征之间的协同作用。

  • 使用基于文本的提示,源自ChatGPT,以明确分割问题,显著提高了医学环境中的分割性能。

2 相关工作

医学图像分割

医学图像分割对于识别和测量医学图像中的结构至关重要。在深度学习之前,常用的方法包括阈值化、聚类和活动轮廓模型[44]。然而,CNN,特别是U-Net [46],由于其即使在数据有限的情况下也能提供高质量的结果,已经主导了这一领域。

U-Net的扩展,如DRINet [7],解决了类别不平衡和高分辨率输出的问题。U-Net++ [57] 使用嵌套和密集的跳跃路径来改进分割,而UNeXt [49] 通过使用基于卷积MLP的网络优化了医学分割的速度和效率。

图像Transformer的兴起[9]带来了新的方法。FAT-Net [51] 引入了特征自适应Transformer,用于详细分割。UNeTR [23] 将Transformer与U形设计结合,用于3D医学成像。我们的方法结合了CNN和Transformer,以利用局部和全局特征提取,创建了一个混合框架,充分利用了两种范式的优势。

适应基础模型

基础模型通常在大型数据集上进行预训练,提供了对数据中复杂模式的通用理解。这些模型在许多现代机器学习工作流程中是关键的基石。然而,为了有效地利用它们进行特定任务,需要一种深思熟虑的适应策略。

适配器模块[27]提供了一种解决方案,允许主网络权重保持不变,同时为每个Transformer层添加可学习层。这以较少的开销增加了任务特定的能力,确保了高效的迁移学习。这种方法保留了基础知识,同时适应了新任务。

这些模块在各种语言任务中表现出色[13, 37, 48]。例如,它们在问答任务中取得了顶级结果,参数比标准微调少95% [43]。在文本蕴含任务中,AdaMix [50] 发现适配器的表现与完全微调相当,但仅增加了3%的参数。它们在计算机视觉任务中也表现出色,如图像[10, 12]和视频分类[16, 18, 41]。本质上,它们通过在固定网络中添加最少的层来确保跨任务的高效迁移学习。

我们基于适配器的思想,冻结了CNN和ViT主干,仅使用适配器对两个模型进行高效微调。

适应SAM用于医学图像

Segment Anything Model (SAM) [32] 展示了使用各种输入提示进行零样本分割的显著能力。然而,其在医学图像上的表现不佳[26, 47]。

已经提出了几种策略来适应SAM用于医学成像。MedSAM优化了掩码解码器以实现高效微调。SAMed [54] 冻结了图像编码器,并采用了低秩微调策略,同时调整了提示编码器和掩码解码器。MSA [52] 在ViT图像编码器中使用了适配器。为了解决Transformer主干的局限性,SAMUS [34] 引入了基于CNN的主干,以改进局部特征学习。

基于SAMUS [34],我们优化了其框架。我们没有进行端到端的CNN微调,而是使用了冻结的预训练CNN和适配器。我们发现,使用文本提示,特别是与Grounding DINO [35] 结合使用,显著提高了SAMUS的性能。这种方法不仅更有效,而且更快。我们使用GPT-4 [40] 从类别标签生成文本提示。

图2:CC-SAM概述。我们使用适配器(或在CNN的情况下使用全连接层)来增强局部和全局特征,用于超声分割。‘OPaE’指重叠的补丁嵌入,‘PE’指位置嵌入。

3 提出的方法

图2详细展示了我们的方法。我们使用ViT-B [9](SAM的预训练图像编码器)和ResNet50 [25] 处理图像,ResNet50在RadImageNet [39] 上进行了预训练。特征提取后,适配器对这些表示进行细化。然后使用变分注意力机制融合特征,形成SAM掩码解码器的组合特征。

对于提示,我们使用GPT-4生成的标签描述,并使用Med-BERT [45] 进行嵌入。未在医学数据上训练的Grounding DINO模型从该嵌入中创建边界框,输入到提示编码器中。与变分注意力特征一起,提示编码器帮助掩码解码器创建最终的分割掩码。

冻结主干与适配器

我们通过引入位置适配器和五个特征适配器增强了SAM的图像编码器(ViT分支),以更好地适应较小的输入和医学图像,遵循SAMUS [34]。这些适配器以较少的参数高效地微调ViT分支。

具体来说,位置适配器修改位置嵌入以匹配嵌入序列的分辨率。它首先使用最大池化对这些嵌入进行下采样,然后通过卷积操作进行细化,使ViT能够更好地处理较小的输入。五个特征适配器中的每一个都遵循一致的设计,具有向下的线性投影、激活和向上的投影。这在数学上表示为:

与SAMUS的端到端CNN训练不同,我们使用静态的、在RadImageNet [39] 上预训练的ResNet-50模型。我们在其分类层之前添加了一个可训练的全连接层,作为适配器。两个分支的输出特征随后进入我们的变分注意力融合块。

图3:提出的变分注意力融合模块的概述。每个“模式”都有一个模态内不确定性学习编码器(在图中表示为E’或E”),这些编码器在潜在子空间中获取稳健的模态特定特征。随后,变分注意力融合(VAF)模块结合这些输入,并通过估计每个模态特定的权重来构建多模态表示,从而有效地捕捉它们之间的依赖关系。

变分注意力融合块

我们做出的一个主要贡献是变分注意力融合块,它巧妙地融合了局部CNN特征和全局ViT特征。虽然SAMUS引入了跨分支注意力模块,但我们的方法通过建模这些特征的不确定性并应用变分注意力融合,表现优于它(详见第4.3节)。参见图3的概述。

3.2.1 不确定性学习

3.2.2 变分注意力融合

CNN和ViT从图像中捕捉不同的特征方面(局部和全局)。我们将这些视为两种模式:v 代表ViT,c 代表CNN。由于不同的置信水平,结合它们并不简单。标准方法从数据中获取权重,忽略了每种模式的独特特征。为了解决这个问题,我们开发了一个变分注意力融合(VAF)模块。该模块旨在通过确定模式特定的权重来实现无缝集成。

指导提示编码器

SAM的掩码解码器[32]需要 hh 和提示编码器的输入。虽然过去适应SAM用于医学成像使用点提示,但我们的结果表明,合理的边界框可以提高性能。创建这个边界框需要一个专门的模型。使用随机边界框可能会阻碍结果,需要特定的提示。我们使用Grounding-DINO [35] 生成边界框。虽然Grounding-DINO并非专门为医学图像训练,但它是一个有效的对象检测器。我们使用GPT-4 [40] 为特定类别标签生成文本提示,然后MedBERT [45] 生成Grounding-DINO的嵌入输入。虽然这确实提高了我们使用点提示的性能,但我们在补充材料中展示了使用相同的随机点提示集,我们优于所有其他医学基础模型。

输入到GPT-4 “为医学图像分析任务创建一个简洁的描述。该任务涉及使用超声图像分割和识别特定的解剖结构或病理。使用[target]来创建一个可以适应任何分割目标的通用描述。” GPT-4的输出 “在超声图像中分割和识别[target]。这需要从周围组织中精确描绘[target],从而实现准确的诊断和评估。挑战包括处理超声图像质量的固有变异性,包括斑点噪声、阴影和患者之间的广泛解剖变异。该任务的成功取决于算法一致且准确地识别和勾勒[target]的能力,为医学决策过程提供关键信息。” 其中[target]根据每个数据集进行修改。

损失函数

我们的整体损失函数如公式8所示。这里,​ 是分割损失:二元交叉熵和Dice损失。

4 实验分析

数据集

为了与SAMUS [34] 进行比较,我们在相同的七个公共数据集上测试了CC-SAM:TN3K [14]、DDTI [42]、TG3K [53]、BUSI [1]、UDIAT [3]、CAMUS [33] 和 HMC-QU [8]。我们还重新创建了SAMUS的US30K数据集以进行更广泛的比较。数据集详细信息见补充材料。

TN3K和TG3K数据集遵循TRFE [14] 进行训练、验证和测试的分割。BUSI随机按7:1:2的比例分割用于这些目的。CAMUS最初根据挑战[33]分为训练和测试,后来使用10%的训练数据进行验证。

为了模型的可推广性,US30K数据集在训练和验证期间保持未见。与SAMUS一致,我们将US30k分为可见和未见数据集。然后我们在未见数据集(DDTI、UDIAT、HMC-QU)上进行评估,这些数据集未用于训练或验证。这使得我们能够直接比较与其他最先进模型的泛化能力。此外,我们通过在完整的US30K数据集上训练并在不同任务上测试来对比CC-SAM与其他基础模型。

实现细节

我们遵循SAMUS设置超参数和适配器大小。我们将SAMUS中的完全可调CNN更改为静态ResNet50。模型使用Adam优化器进行训练,初始学习率为0.01,每50个epoch减少十分之一,总共200个epoch。编码器是完全连接的网络,潜在空间维度为1024。所有全连接层具有Leaky RELU激活函数和0.5的dropout概率。

我们使用lxA100 GPU,容量为40 GB。但我们也验证了单个3090 Ti,内存为24 GB,足以训练模型。我们设置的批量大小为32。

消融研究

我们将SAMUS [34] 作为基线模型,并消融我们添加的组件。具体来说,我们展示了用固定的预训练模型替换端到端CNN模型可以提高性能。进一步在末尾添加FC层略微提高了性能。关键的是,用我们的变分注意力融合替换交叉注意力融合显著提高了性能。此外,用我们的基于文本的提示替换基于点的提示,我们获得了最佳结果。我们在TN3K和BUSI两个数据集上展示了这些结果,如表1所示。

我们在补充材料中进一步分析了提示与不同提示策略的比较。

与最先进技术的比较

我们考虑两种场景来与最先进的模型进行比较,遵循SAMUS [34]。我们将CC-SAM与任务特定方法和基础模型进行比较。

 任务特定方法

遵循SAMUS [34],选择了十三种最先进的任务特定技术进行评估,涵盖基于CNN、基于Transformer和CNN-Transformer混合方法。除了SAMUS之外,基于CNN的技术包括U-Net [46]、CPFNet [11]、CA-Net [21]、CE-Net [22] 和 AAU-Net [5]。基于Transformer的方法包括SwinUnet [4]、SETR [56] 和 MISSFormer [29]。CNN和Transformer的混合方法包括TransUNet [6]、TransFuse [55]、FAT-Net [51] 和 H2Former [24]。

表2:我们的CC-SAM方法与最先进(SOTA)任务特定技术在分割甲状腺结节(TN3K)、乳腺癌(BUSI)、左心室(CAMUS-LV)、心肌(CAMUS-MYO)和左心房(CAMUS-LA)方面的定量比较。我们使用Dice分数(%)和Hausdorff距离(HD)评估了性能。表现最佳的结果以粗体标出。

表2总结了各种任务特定方法在TN3K、BUSI、CAMUS-LV、CAMUS-MYO和CAMUS-LA上的数值结果。相比之下,CC-SAM在所有这五个任务中始终表现出色,为SOTA结果设定了新的基准。虽然CC-SAM在大多数基准测试中超越了最近的SOTA,但在使用Hausdorff距离(HD)评估CAMUS-MYO时,它以非常小的差距落后。

定性分析。图4展示了各种方法的分割结果,包括U-Net [46]、AAU-Net [5]、MISSFormer [29]、H2Former [24]、SAMUS [34] 和我们提出的CC-SAM。分割超声图像特别具有挑战性,因为它们的对比度低、特征不一致且对象边界不清晰。许多现有技术在精确区分目标与其背景方面面临困难,通常导致显著的假阴性或假阳性。相比之下,SAMUS在保持目标区域的完整性和最小化假阳性方面表现出色。我们的CC-SAM进一步改进了SAMUS的结果,证明了SAM的内在优势以及CC-SAM中集成的定制修改和创新。

泛化能力。评估各种任务特定方法的泛化性能至关重要,因为它提供了这些方法在适应和功能方面的见解。图5提供了这方面的定量评估。当我们评估已知(可见)和未知(未见)数据集之间的性能差异时,CC-SAM在所有方法中表现出最小的性能下降,强调了CC-SAM在多种医学图像分割情况下的显著泛化能力和适应性。

 基础模型

我们还与五种最先进的基础模型进行了比较。这些包括原始SAM [32]、SAMed [54]、SAMUS [34]、MSA [52] 和 MedSAM [38]。SAM在SA-1B上训练并保持冻结,因为微调的成本很高。所有其他基础模型都在US30k数据集上进行了预训练,并使用Dice和HD在TN3K、BUSI、CAMUS-LV、CAMUS-MYO和CAMUS-LA数据集上进行了评估。

定量分析。表3总结了各种基础方法在TN3K、BUSI、CAMUS-LV、CAMUS-MYO和CAMUS-LA上的数值结果。相比之下,CC-SAM在所有任务中始终表现出色,为基础模型设定了新的基准。

定性分析。图6展示了各种基础模型的定性分割结果,包括SAM、MedSAM、SAMed、MSA、SAMUS和CC-SAM。SAM在没有针对医学图像进行调整的情况下,分割失败。然而,MedSAM、SAMed和MSA通过调整恢复了一些分割能力,但在准确定义边界方面仍然存在困难,导致许多假阳性和假阴性。相比之下,SAMUS在识别精确的分割边界方面表现出色,即使在低对比度下,这表明将局部数据与图像编码器集成有助于在医学图像分割中更好地保留边界和形状。CC-SAM更进一步,改进了SAMUS的性能,并设定了新的基准。

泛化能力。通常,在US30K上训练的基础模型在医学图像分割任务中表现出比原始SAM更好的泛化性能。当考虑三个特定的分割任务:甲状腺结节分割、乳腺癌分割和心肌分割时,很明显,所有基础模型在心肌分割方面都面临重大挑战,而在乳腺癌分割任务中表现相对较好。CC-SAM显著优于所有基础模型。这突出了CC-SAM的显著泛化能力,因为它始终超越其他基础模型,特别是在不熟悉的领域中。图7提供了这方面的定量评估。我们看到原始SAM表现最差,这是预期的,而提出的CC-SAM在所有数据集上获得了新的最先进水平。

与其他基础模型的部署成本比较。我们以更详细的方式比较了CC-SAM与其他基础模型。我们查看了“泛化能力/Dice (%)”、“GPU内存/G”、“参数/M”、“计算/GFLOPs”、“推理速度/FPS”和“分割性能/Dice (%)”。这方面的蜘蛛图可以在图8中看到。

5 结论

Segment Anything Model (SAM) 虽然在自然图像分割方面表现出色,但在医学成像中遇到了低对比度、模糊边界和其他复杂性的问题。在本研究中,我们识别并解决了SAM在应用于医学成像时的局限性,特别是在具有低对比度和复杂形态的图像中。我们的增强方法将CNN分支与SAM的原始Vision Transformer (ViT) 编码器集成,利用独特的变分注意力融合模块捕捉医学图像中关键的局部空间信息。通过在ViT分支中引入特征和位置适配器,进一步改进了模型的表示。值得注意的是,我们发现使用文本提示,特别是利用ChatGPT生成的提示,显著提高了SAM在超声医学分割中的性能。这些创新标志着在提高通用图像分割模型在医学领域的适应性和效率方面迈出了重要一步。

<think>嗯,用户的问题是关于如何通过超声SAM适配器对SAMSegment Anything Model)进行调整以实现乳腺病变分割的。首先,我需要理解SAM的基本架构它的适配方法。SAM是一个通用的图像分割模型,但在医学图像,特别是超声图像中,由于噪声大、边界模糊等特点,直接应用可能效果不佳。因此,需要对其进行适配调整。 根据引用中的信息,比如引用[3]提到使用了条件生成对抗网络(cGAN)并添加了空洞卷积层来学习不同分辨率的特征,这可能是一个有用的思路。此外,频道方向加权块特定的损失函数(如SSIML1范数)也被用来提升分割效果。这些方法可能可以应用到SAM的适配器中。 接下来,用户需要具体的实现步骤。首先,可能需要分析SAM的架构,确定在哪里插入适配模块。比如,在编码器中加入轻量级适配层,或者在解码器中进行特征融合。然后,针对超声图像的特点,可能需要设计特定的模块,比如多尺度特征提取或边界细化模块,类似于FRBNet中的反馈细化边界网络(引用[1])。 另外,数据预处理增强也是关键,因为超声图像的质量可能参差不齐。可能需要使用动态对比度增强等技术来改善图像质量。在训练策略上,迁移学习两阶段训练可能有效,先冻结SAM的大部分参数,只训练适配层,再微调整个网络。 还需要考虑如何结合领域知识,比如形状特征边界信息,可能需要在损失函数中加入边界敏感的部分,如Dice损失边界加权损失的组合。同时,引用[3]提到的分类阶段使用的统计特征,可能可以用于后续的良恶性分类,但用户当前的问题集中在分割部分。 最后,实现步骤可能包括代码层面的修改,比如在SAM的编码器中插入适配层,定义新的损失函数,并进行训练验证。需要确保代码示例正确,并参考现有的医学图像分割框架,如nnUNet或MONAI,以提高可靠性。</think>### Ultrasound SAM Adapter实现乳腺超声图像病灶分割的关键步骤 根据现有医学影像分割领域的研究成果[^1][^3],实现SAM模型在乳腺超声图像中的适配需要以下核心步骤: 1. **特征适配层设计** -SAM的ViT编码器中插入轻量级适配模块,公式表示为: $$ h_{adapted} = h_{SAM} + \alpha \cdot \text{Conv3x3}(h_{SAM}) $$ 其中$\alpha$为可学习参数,用于保留原始特征的同时注入超声图像特征[^3] - 添加多尺度特征提取模块,使用空洞卷积组合: ```python class DilatedConvBlock(nn.Module): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(256, 128, 3, dilation=2) self.conv2 = nn.Conv2d(256, 128, 3, dilation=4) ``` 2. **边界敏感机制** 采用FRBNet的边界细化思想,在解码阶段建立双路径特征交互: ```python def boundary_refinement(mask_feat, boundary_feat): edge_weights = torch.sigmoid(boundary_feat) return mask_feat * (1 + edge_weights) ``` 3. **超声图像预处理** - 动态对比度增强算法: $$ I_{enhanced} = \frac{I - \mu}{\sigma + \epsilon} \cdot \gamma + \beta $$ 其中$\gamma,\beta$为自适应参数,根据图像局部统计特性计算 4. **混合损失函数** 结合结构相似性边界约束: $$ \mathcal{L} = \lambda_1 \text{Dice}(y,\hat{y}) + \lambda_2 \text{SSIM}(y,\hat{y}) + \lambda_3 \sum_{p\in \partial}||\nabla \hat{y}_p||_2 $$ 参数设置$\lambda_1=0.6, \lambda_2=0.3, \lambda_3=0.1$ 5. **实现代码框架** ```python class SAMAdapter(nn.Module): def __init__(self, sam_model): super().__init__() self.sam = sam_model self.adapter_layers = nn.ModuleList([ AdapterBlock(hidden_size=256) for _ in range(4) # 在4个关键层插入适配器 ]) def forward(self, x): features = self.sam.image_encoder(x) for i, layer in enumerate(self.adapter_layers): features[i] = layer(features[i]) return self.sam.mask_decoder(features) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Together_CZ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值