集智书童 | MobileViCLIP横空出世:55倍速度碾压InternVideo2-L14,移动设备视频文本理解首次超越云端

本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。

原文链接:https://mp.weixin.qq.com/s/TTcJEX9WXa2i_JCHTy10AQ

精简阅读版本

本文主要解决了什么问题

  1. 1. 现有视频预训练模型主要关注具有高延迟的ViT架构,很少有工作尝试在移动设备上构建高效架构。

  2. 2. 现有视频文本模型参数量大、计算资源需求高、训练时间长,难以在移动设备上部署。

  3. 3. 参数高效的迁移学习(PETL)方法通常聚焦于简单的视频分类任务,未能直接探究更复杂视频-文本任务中的视觉-文本表征。

  4. 4. 图像与视频之间的领域差距以及缺乏时序建模限制了图像文本模型在视频文本理解方面的能力。

本文的核心创新是什么

  1. 1. 提出了MobileViCLIP,这是第一个具有高效结构且能够高效部署在移动设备上的视频文本模型。

  2. 2. 引入了时空结构重参化(Spatiotemporal RepMixer)和时空注意力(Spatiotemporal Attention)模块,赋予模型时序建模能力。

  3. 3. 通过将现有高效图像文本模型(MobileCLIP)适配化,并在大规模高质量视频文本数据集(InternVid)上进行训练,实现了在移动设备上的高效视频理解。

  4. 4. 对当前视频文本模型在移动设备上每个基本模块的延迟进行了深入分析,找出了未来高效视频文本模型设计的关键要素。

结果相较于以前的方法有哪些提升

  1. 1. 在移动设备的推理速度方面,MobileViCLIP-Small比InternVideo2-L14快55.4倍,比InternVideo2-S14快6.7倍。

  2. 2. 在零样本检索性能方面,MobileViCLIP-Small与InternVideo2-L14性能相似,在MSR-VTT上比InternVideo2-S14高出6.9%。

  3. 3. 在零样本动作识别方面,MobileViCLIP-Small在Kinetics400上比InternVideo-S14的Top-1准确率提升了+1.0,在UCF-101上提升了+2.0,在HMDB-51上提升了+1.2。

  4. 4. 在其他视频下游任务(如视频时序定位、零样本时序动作检测和视频字幕生成)上也表现出更强的泛化性能。

局限性总结

  1. 1. 在长视频数据集(如ActivityNet)上,MobileViCLIP的表现不如一些大型模型。

  2. 2. 在SomethingSomething V2数据集上,MobileViCLIP-Small的零样本动作识别性能比InternVideo-S14降低了-0.3。

  3. 3. 由于GPU上transformer的优化,MobileViCLIP在GPU上的表现略逊于InternVideo2-S14。

  4. 4. MobileViCLIP参数量较小的视频片段模型上限较低,在微调的文本到视频检索任务中只能达到与ViCLIP相当的性能。

深入阅读版本

导读

高效的轻量级神经网络正受到越来越多的关注,因为它们具有更快的推理速度,并且更容易在移动设备上部署。然而,现有的视频预训练模型仍然主要关注具有高延迟的常见ViT架构,且很少有工作尝试在移动设备上构建高效架构。本文通过将时序结构重参化引入高效图像文本模型,并在大规模高质量视频文本数据集上进行训练,弥补了这一差距,从而得到一个能够在移动设备上运行、具有强大零样本分类和检索能力的高效视频文本模型,称为MobileViCLIP。具体而言,在移动设备的推理速度方面,作者的MobileViCLIPSmall比InternVideo2-L14快倍,比InternVideo2-S14快。在零样本检索性能方面,作者的MobileViCLIP-Small与InternVideo2-L14性能相似,在MSR-VTT上比InternVideo2-S14高出。

代码 https://github.com/McG-NJU/MobileViCLIP

1. 引言

大视觉文本模型[9, 27, 51, 72]在多种下游任务中展现了出色的零样本性能。学习可迁移的视频文本表征已成为视频理解领域的一项基本任务。随着高质量视频语言数据集[2, 8, 42, 64]的出现,用于大规模预训练,一些强大的视频文本基础模型[28, 63, 65]应运而生。这些模型通常从头开始训练,并在视频文本检索和动作识别等多种下游任务中取得了优异成果。然而,为了确保性能,这些工作大多采用ViTL[15]或更大规模的 Backbone 网络。模型尺寸限制了其在存储能力有限的移动设备上的部署可能性。此外,过高的计算资源需求(需要数十张A100 GPU)、过长的训练时间(数千小时的GPU训练时间)以及大量预训练数据集(超过1亿的数据集集合)增加了训练成本,使得这些工作对于大学实验室而言难以复现。

参数高效的迁移学习(PETL)[30, 33, 44, 71]正成为适应大型图像-文本模型进行视频理解的理想且高效的范式,因为这些模型参数数量庞大且全量微调的计算成本极高。这些方法已成功将图像表征迁移至视频识别任务,并在多个动作分类数据集上取得了良好的零样本识别结果[5, 19, 24, 50]。然而,这些迁移学习方法通常聚焦于简单的视频分类任务,未能直接探究更复杂视频-文本任务中的视觉-文本表征。作者认为视频-文本模型应更具灵活性,能够处理更多样化的下游视频理解任务。此外,尽管这些迁移学习工作的可训练参数数量极小,但其使用的图像-文本模型(如ViT-B或ViT-L)仍然过大,难以部署在移动设备上。开发适用于移动设备的有效视频-文本模型仍是一项挑战。

对于图像文本模型,已有若干研究[14, 56, 57, 60, 66, 74]探索了适用于移动设备的神经网络架构。其中大多数采用混合架构,通过结合视觉 Transformer(ViT)利用自注意力机制捕获全局上下文,以及轻量级卷积神经网络(CNN)以实现参数效率和低延迟。借助高质量的大规模图像文本数据集[18, 47, 49],这些模型[12, 41, 58]在多项图像分类和检索任务中取得了良好效果。然而,图像与视频之间的领域差距以及缺乏时序建模限制了它们在视频文本理解方面的能力。作者旨在通过将这些图像片段模型适配化,以实现在移动设备上的视频理解能力。

具体而言,作者设计了一种能够在移动设备上运行的高效视频文本模型,命名为MobileViCLIP。MobileViCLIP的参数数量少于所有现有的视频文本模型,这使得它能够在移动设备上部署。此外,MobileViCLIP的延迟与其他高效图像文本模型相当,显著快于现有的视频文本模型。为了避免先前视频文本模型[10, 65]的复杂设计和多阶段训练过程,作者借助现有模型的图像文本理解能力[58],并在额外的、高质量且大规模的视频文本数据集[64]上进行再训练,以学习强大且可迁移的视频文本表示。为了赋予MobileViCLIP时序建模能力,作者用Spatiotemporal RepMixer和Spatiotemporal Attention替换原始模块,以捕获时序动态和空间表示。作者仅使用8块NVIDIA GeForce RTX 3090 GPU,通过完全微调视频分支并冻结文本分支来训练MobileViCLIP。在InternVid数据集上训练仅需2天。如图1所示,生成的MobileViCLIP-Small在零样本文本到视频检索任务上取得了与InternVideo2[65](命名为InternVideo2-L14)相当的结果,但具有更低的延迟和更少的参数。

总之,作者的贡献如下:

  • • 作者介绍了MobileViCLIP,这是第一个具有高效结构且能够高效部署在移动设备上的视频文本模型。作者的MobileViCLIP学习到了良好的视频文本表示,并在多个数据集上取得了优异的零样本评估结果。

  • • 作者首次对当前视频文本模型在移动设备上每个基本模块的延迟进行了深入分析,试图找出未来高效视频文本模型设计的关键要素。

  • • 作者验证了MobileViCLIP在包括文本视频检索和时间 grounding 在内的下游任务上的泛化性能,表明其泛化性能强于 Baseline 模型。

2. 相关工作

视觉语言预训练。通过利用大规模图像文本对数据进行训练,CLIP [46] 展示了强大的零样本物体识别能力。此外,一些High-Level研究工作 [9, 11, 52, 53] 探索了扩大对比语言图像预训练规模的极限。这些模型拥有数十亿参数,需要数十亿个预训练数据集和数万小时的GPU训练时间。这些研究在广泛使用的识别和检索数据集上取得了与全监督模型相当的结果。对比语言图像预训练的成功也启发了视频和音频等其他模态的预训练任务。

视频语言预训练。CLIP的成功启发了视频领域。鉴于其广泛的应用,视频语言预训练的研究正变得越来越关键。遵循图像文本预训练的理念,视频领域已经诞生了几个基础模型[7, 17, 28, 29, 61, 68, 73]。这些工作从不同角度探索了视频模态与其他模态之间的关系,在各种视频任务中取得了领先的结果。毫无疑问,这些工作仍然需要巨大的计算资源和训练数据,模型参数数量庞大。作者的MobileViCLIP试图在有限的计算资源内,提出一个对移动设备友好的基础模型,具有更快的推理速度、更低的延迟和更少的参数。

基于CLIP的动作模型。受预训练图像文本CLIP模型强大表征能力的启发,许多视频识别方法[6, 21, 30, 34, 43, 44, 48, 62, 71]基于CLIP提出。尽管这些方法成功地将知识从图像领域迁移到视频领域,但这些模型仍远未达到基础模型(foundation models)的水平。这些模型通常在视频分类数据集[5, 24, 50]上完全微调[34, 48, 62],或在 Agent 视频动作分类数据集[6, 30, 43, 44, 71]的基础上进行部分微调。这些模型通常不具备视频文本检索能力,也无法作为下游任务的特征提取器。作者的MobileViCLIP基于大规模预训练视频文本数据集[64]进行微调,在更多任务上展现出优异的泛化能力。

高效的CLIP模型。近年来,越来越多的研究工作[14, 56-58, 60, 74]认识到在移动设备上部署CLIP模型的重要性,并提出了一系列架构,这些架构在资源受限的设备上完成视觉任务方面展现出巨大的潜力。这些架构可以大致分为纯卷积[14, 20, 57]、基于Transformer[35, 37]以及卷积-Transformer混合架构[56, 60, 74]等。然而,考虑到移动设备的低延迟需求,这些模型的架构通常较小,其准确率远低于传统CLIP模型[52]。为解决这一问题,MobileCLIP尝试通过附加信息增强数据集[18],并学习良好的图像-文本表示。基于此,作者在Video TokenMixer中添加高效的时间建模模块,并使用大规模、高质量的视频多模态数据集[64]进行微调,使得MobileViCLIP能够在保持低延迟的同时,在多个视频-文本检索和动作识别任务上依然展现出优异的零样本性能。

3. 方法

3.1. MobileCLIP再探

Backbone  Baseline 。作者从MobileCLIP [58]设计的图像-文本 Backbone 的描述开始。作者采用MobileCLIP的两个版本:MobileCLIP-SO和MobileCLIP-S2,分别构建作者的MobileViCLIP-Tiny和MobileViCLIP-Small。对于图像 Backbone ,它是一个基于FastViT [56]的改进型混合视觉Transformer,称为MCi。MobileCLIP-S0采用MCi0,其阶段配置与MobileOne [57]相似,而MobileCLIP-S2采用MCi2,是MCi0的更宽更深版本。对于文本编码器,MobileCLIP-SO使用MCt,它是一种受FastViT [56]中可重参化卷积 Token 混合(RepMixer)启发的有效混合文本编码器。MobileCLIP-S2采用一个类似于ViT-B/16-CLIP [46]的12层Transformer。

3.2. MobileViCLIP概述

3.2.1. 块设计

MCi是一种混合视觉Transformer架构,结合了卷积和Transformer设计,旨在有效捕捉局部和全局信息。然而,作为一种图像-文本基础模型,它缺乏理解时间关系的能力。在本部分,作者提出了模块改进,以更好地理解视频内部的空间时间关系。

时空重混器。受[4, 55, 70]的启发,引入一个简单的时序建模模块可以有效地提升模型的视频理解能力。具体而言,作者在图3所示的2D深度卷积层之前构建了一个一维深度卷积层来处理时序建模。具体来说,对于输入张量X,时空重混器可以表示为:

时空注意力。由于MCi中的注意力模块旨在学习全局图像信息,受ViCLIP[64]的启发,作者将原生注意力更新为时空注意力,同时保留其他设计元素,包括图4中所示的条件位置编码。MCi采用由深度卷积算子生成的条件位置编码(CPE),但只能捕捉空间关系。作者在CPE之前添加一个可学习的时序位置编码(TPE),为模型提供时序位置信息。具体而言,对于输入张量,添加位置编码的过程可描述如下:

通过这种方式,作者成功地将空间和时间位置编码添加到输入中,并将其发送到后续的时空注意力模块,以进行全局时空表示建模。

3.3. 训练

设置。对于MobileViCLIP的视频输入,作者从原始视频中采样8帧,输入分辨率为。作者使用AdamW [38]优化器对MobileViCLIP-Tiny和MobileViCLIP-Small进行训练,训练3个epoch,学习率为1e-5,并将warm-up epoch设置为0.6,采用线性调度。在训练过程中,作者使用checkpoint技术来降低模型的内存需求,但会牺牲训练速度,然后采用8块NVIDIA GeForce RTX 3090 GPU,每个GPU的batch size设置为64。当作者在下游文本到视频检索数据集[1, 23, 69]上完全微调MobileViCLIP时,作者也设置batch size为64,采用10个epoch,学习率为1e-5,并将warm-up epoch设置为1。由于作者的MobileViCLIP足够轻量,与其他基础模型[9, 28, 65]相比,所需的训练数据更少,这显著低于其他视频文本基础模型。

预训练数据集。作者的 Baseline 模型MobileCLIP [58]采用了强化DataComp [18],利用其多模态数据集强化策略,通过强化DataComp-1B创建了DataCompDR-1B。这种真实与合成文本相结合,以及经过筛选的高质量图像的组合,使MobileCLIP能够获得最佳的零样本检索和分类性能。基于高质量预训练阶段,作者可以直接在视频-文本数据集上微调模型,直接学习视频-文本表示,而无需设计多阶段对齐和理解。作为作者的训练数据集,作者使用InternVid-10M-FLT [64],其中包含10M个涵盖16个场景、约6000个动作的高质量YouTube视频。由大语言模型(LLM)提供支持的超细粒度视频文本能够确保对这些视频内部复杂交互的准确描述。数据集的总结如表1所示,充足的训练语料库数据确保了MobileViCLIP的泛化性能。

评估数据集与指标。作者使用以下三个文本到视频检索数据集来验证视频文本表征性能并探索架构设计:MSR-VTT [69]、DiDeMo [1] 和 ActivityNetCaptions [23]。MSRVTT 是一个广泛使用的文本到视频检索数据集,包含约 10,000 个跨不同场景的视频片段,每个视频片段配有 20 个独特的文本描述。DiDeMo 包含超过 10,000 个视频,分为 26,892 个五秒视频片段,每个片段对应多个描述。ActivityNet 是一个大规模数据集,包含 200 个类别,大多数视频时长在 5 到 10 分钟之间。作者还使用作者的 MobileViCLIP 在四个广泛使用的动作识别数据集上测试,以验证零样本动作分类的能力:Kinetics-400 [5]、UCF-101 [50]、HMDB-51 [24] 和 Something-Something V2 [19]。Kinetics-400 是一个成熟的动作识别数据集,包含 400 个不同的动作类别,视频片段长度约为 10 秒。UCF-101 包含 13,320 个视频片段,分为 101 个不同的动作类别。HMDB-51 包含 6,766 个短视频片段,分为 51 个独特的动作类别。Something-Something V2 是一个包含 220,847 个视频的大规模数据集,捕捉了涉及日常物体交互的各种动作。对于 SomethingSomething V2,作者将其转换为多项选择任务,即 SSV2-MC。每个视频与 173 个描述配对,其中 172 个为负干扰项。模型需要检索唯一的正确描述。作为作者的评估指标,作者仅报告这三个文本到视频检索数据集 [1, 23, 69] 上的 Top-1(Recall @ 1)文本到视频(T2V)和视频到文本(V2T)检索准确率。作者在四个动作分类数据集 [5, 19, 24, 50] 上零样本设置下报告 Top-1 准确率(Acc)。具体来说,作者为这些动作类别构建模板,例如“一个动作的视频”,并通过评估 Top-1 V2T 来验证模型的零样本分类能力。

4 主要结果

文本到视频检索。作者在表2和表3中展示了MobileViCLIP与其他模型在视频文本检索任务中的对比。作者报告了文本到视频(T2V)和视频到文本(V2T)任务的分数以评估检索性能。此外,作者还评估了模型在GPU上的吞吐量、参数、FLOPs和延迟,涵盖了包括Intel Xeon Gold 6248 CPU、V100 GPU和iPad Air 2020移动设备在内的多个平台。iPad Air 2020采用了与广泛采用的iPhone 12 Pro Max[58]相同的A14 Bionic SoC——即六核CPU、四核GPU和基于64位ARMv8.5-A架构的16核神经引擎——唯一的硬件区别在于内存容量(分别为4 GB和6GB LPDDR4X)。对于iPad的延迟测量,作者使用Core ML Tools(v7.1)和iOS 18导出模型。延迟基准测试批量大小设置为1,因为在现实场景中这是最优的批量大小,用于在内存耗尽前测量吞吐量。如表2和表3所示,MobileViCLIP的两个版本在推理过程中引入了可忽略的额外延迟,同时实现了卓越的性能。对于零样本文本到视频检索,MobileViCLIP-Small的性能与InternVideo2-L14在MSR-VTT [69]上的性能相当(T2V/V2T零样本分数分别为),并在DiDeMo [1]上优于InternVideo2-B14(T2V/V2T零样本分数分别为)。除了包含数分钟长视频的长视频数据集(如ActivityNet [23]),

MobileViCLIP-Small仍然优于InternVideo2-S14(在 T2V/V2T零样本得分上)。对于微调的文本到视频检索,尽管作者的MobileViCLIP参数量较小的视频片段模型上限较低,但MobileViCLIP-Small仍能达到与ViCLIP [64]相当的性能。在评估这些模型的效率相关指标时,作者发现作者的MobileViCLIP比现有的视频文本模型更高效。与InternVideo2-S14相似的参数数量下,MobileViCLIP-Small的FLOPs仅为其一半,并在移动设备上快6.75倍。然而,由于GPU上transformer的优化,MobileViCLIP在GPU上的表现略逊于InternVideo2-S14。与其他更大规模的视频文本模型相比,MobileViCLIP在这些指标上具有显著优势。总之,作者的MobileViCLIP展现出可靠的视频文本检索性能,其基于高效图像文本理解模型的结构在延迟、FLOP、Params和吞吐量方面赋予其相对于其他视频CLIP的显著优势。

零样本动作识别。作者进一步探索了MobileViCLIP在零样本设置下的动作识别能力。作者根据[65]提供的 Prompt ,随机构建每个动作的完整描述句子,并使用分数对视频到文本任务进行评估,以评估MobileViCLIP提供的Top-1准确率。如表4所示,MobileViCLIP-Small在Kinetics400 [5]上实现了比InternVideo-S14更好的动作识别能力,Top-1准确率提升了+1.0,在UCF-101上提升了+2.0,在HMDB-51上提升了+1.2,但在SomethingSomething V2上降低了-0.3。作者还发现MobileViCLIP在HMDB-51 [24]数据集上表现良好,甚至优于InternVideo2-L14。尽管MobileViCLIP在视频文本检索数据集上进行了微调,但它所学习的丰富视频文本对仍然使MobileViCLIP能够实现强大的零样本动作识别能力。

5. 消融研究

块设计在MobileViCLIP中的有效性。在本节中,作者移除了MobileViCLIP中的块设计。为了进行公平的比较,作者基于MSR-VTT移除了以下实验,因为该数据集具有充足的训练数据和多样化的文本描述,然后基于该数据集测试集上的文本到视频的分数评估这些变体。如表5所示,Spatiotemporal RepMixer和Spatiotemporal Attention都能取得更高的结果。作者还可以注意到,时间位置编码对于帮助模型更好地理解视频的时间变化非常重要。因此,作者在MobileViCLIP中保留了它们。

是否冻结文本分支。作者进一步消融实验以探究在训练过程中是否冻结文本分支,因为部分工作[48]同时训练视觉和文本分支,而另一些工作[65]则冻结文本分支。如表6所示,作者发现激活文本分支对最终的视频到文本检索结果没有帮助,反而增加了额外的训练消耗。因此作者冻结了文本分支。

验证视频-文本表征能力用于视频下游任务。为验证作者的MobileViCLIP在其他视频下游任务中的泛化性能,作者在以下视频下游任务上报告了结果,包括视频时序定位、零样本时序动作检测和视频字幕生成。视频时序定位旨在从视频中识别与文本描述相对应的特定时刻或高光时刻,它依赖于优秀的视频-文本对表征。为验证MobileViCLIP的视频-文本表征能力,作者将MobileViCLIP作为QVHighlights [25]的特征提取器,并使用CG-DETR [40]作为时序定位检测器。

为了进行公平比较,作者还使用InternVid-10M-FLT微调MobileCLIP-S0,并使用它作为特征提取器,让MobileCLIP学习视频-文本表征。如表7所示,MobileViCLIP-Small在时刻检索和高光检测任务上表现出更强的泛化性能,甚至优于许多时序定位模型 [36, 40]采用的CLIP [46]和SlowFast [16]特征组合。零样本时序动作检测旨在在动作标签未知的未修剪视频中识别和定位动作。如表8所示,作者的MobileViCLIP-Small在T3AL [31]上的表现略优于ViT-L/14。作者还将在CLIP4Caption [54]上的视频字幕生成任务中评估作者的MobileViCLIP,发现MobileViCLIP-Small的表现优于VIT-B/32。

6. 延迟分析

如表2和表3所示,ViT模型[10, 28, 64, 65]的延迟是高效模型的[58]的几十倍甚至几百倍。为了深入探究原因,作者对卷积和注意力模块进行分解以进行进一步探索。如表10所示,作者用"Conv"表示作者的时空RepMixer,用"Attn"表示时空注意力。作者还比较了作者在MobileViCLIP中设计的通道映射层"ConvFFN",该层也在FastViT[56]中被设计,以及所有ViT模型中采用的通道混合器"FFN"。之后,作者还通过尝试不同的输入尺寸和通道维度来模拟输入张量的各种使用场景。作者假设原始输入为8帧,块大小为(ViT-L/14 [63]采用),(ViT-B/16 [63]采用),(CLIP4CLIP [46]采用)。对于通道维度,作者尝试64、128、256、384、512、768和1024,这些维度被许多模型[14, 56, 60, 65, 74]采用。在这些实验中,作者可以得出以下结论:

在公平条件下,移动设备的延迟远大于GPU。如表10所示,当输入大小和通道维度相同时,作者在移动设备上测试的延迟显著高于GPU。在公平条件下,差距约为10倍(比较0.343毫秒与3.97毫秒),并且当空间尺寸更大时,差距会进一步增加。这表明在移动设备上部署模型需要考虑移动设备的计算能力有限,从而对模型提出了更高的要求。

延迟与输入大小呈正相关。当输入具有更大的特征维度或时空尺寸时,如表10所示,移动设备和GPU上的延迟都会增加。作者还注意到,移动设备上的注意力延迟与不考虑的计算复杂度一致(当宽度和高度加倍时,延迟从增加到),但GPU延迟并不符合这种复杂度。这表明GPU对注意力机制操作进行了优化[13],而移动设备没有。控制输入张量的尺寸也是减少移动设备延迟的有效措施。

堆叠更多注意力层导致更大的延迟。表10显示注意力机制比卷积产生的延迟更大。当作者为表11中所示每个模块构建更多层时,可以发现增加更多卷积层对延迟影响不大,但注意力层引入的延迟显著增加。具体来说,在移动设备上,注意力层的延迟随着堆叠层数呈指数增长(当堆叠10层时,从24.7毫秒增加到296.4毫秒)。这表明移动设备没有针对注意力机制的GPU优化。

7. 结论

作者提出了一种适用于移动设备的视频文本模型MobileViCLIP。通过对高效图像文本模型的空间建模模块进行少量修改,作者的MobileViCLIP在时空表征理解能力上优于 Baseline 模型。MobileViCLIP适用于通用任务,并在多个视频文本检索和动作识别数据集上取得了良好性能。此外,作者对现有的视频文本模型进行了全面比较,并分析了导致更高延迟的原因。作者希望这能为未来的研究提供指导。

参考

[1]. MobileViCLIP: An Efficient Video-Text Model for Mobile Devices

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值