(2023,属性敏感性)FD:关于理解深度特征空间对人脸生成评估的作用

FD: On understanding the role of deep feature spaces on face generation evaluation

公众号:EDPJ

目录

0. 摘要

1. 简介

1.1 相关工作和背景

2. 方法

2.1 衡量语义属性差异对 Fréchet 距离的影响

2.2 衡量模糊语义区域对 Fréchet 距离的影响

3. 实验

3.1 特征空间对图像特征的因果敏感性

3.2 不同特征空间的人脸生成器分析

4. 讨论

4.1 限制

5. 结论

6. 更广泛的影响

参考

S. 总结

S.1 主要思想

S.2 Fréchet Inception Distance (FID)

S.3 样本生成

S.4 实验

S.5 分析


0. 摘要

感知指标,如 Fréchet Inception Distance (FID),被广泛用于评估生成的图像和真实图像之间的相似性。 这些指标背后的关键思想是计算深度特征空间中的错误,该空间捕获感知和语义丰富的图像特征。 尽管它们很受欢迎,但不同的深度特征及其设计选择对感知指标的影响尚未得到很好的研究。 在这项工作中,我们使用几个流行的深度特征空间执行因果分析,将语义属性的差异和面部图像分布之间的失真与 Fréchet Distance (FD) 联系起来。 我们分析的一个关键组成部分是使用深度面部生成器创建合成的反事实面部(counterfactual faces)。 我们的实验表明,FD 受其特征空间的训练数据集和目标函数的影响很大。 例如,FD 使用从 ImageNet 训练模型中提取的特征,着重强调帽子而不是眼睛和嘴巴等区域。 此外,使用面部性别分类器特征的 FD 在身份(识别)特征空间中更强调头发长度而不是距离。 最后,我们评估了几个跨特征空间的流行人脸生成模型,发现 StyleGAN2 的排名始终高于其他人脸生成器,除了身份(识别)特征。 这表明在评估生成模型和使用针对感兴趣领域的细微差别调整的特征空间时需要考虑多个特征空间。

1. 简介

生成图像模型的快速发展,例如变分自动编码器 (VAE)、生成对抗网络 (GAN) 和扩散模型,预示着合成图像未来将在社会中发挥重要作用。 因此,持续评估和改进我们评估这些生成模型性能的方式至关重要。 特别是,综合评估指标应该捕捉几个因素,包括与人类感知的相关性、对微不足道的变化和噪声的鲁棒性,以及对特定领域语义的敏感性。

评估图像生成质量的黄金标准是人工注释,它可以提供细微且可解释的感知反馈,但要以金钱和时间为代价。 自动评估的当前标准是深度感知指标,如感知损失 (LPIPS) 和 Fréchet Inception Distance (FID)。 这些指标将图像嵌入到在一般辅助任务上训练的深度神经网络的激活空间中,并计算该特征空间中的距离。 与经典指标(例如 PSNR)相比,深度感知指标与人类评估的相关性更好。 不幸的是,深层特征空间的复杂性也使它们变得不透明且难以解释。 例如,深度特征空间将强调某些属性而不是其他属性(正如我们在实验中所展示的那样),甚至可能受到与感兴趣领域无关的虚假特征的影响。 鉴于深度生成模型现在通常相互竞争少于 5 个 FID 点,因此尚不清楚这些差异在语义上意味着什么。 在评估人脸生成器时,回答诸如“不平衡的肤色生成对 FID 有什么影响?”或“眼睛持续变形对 FID 有什么影响?”等问题。 对于帮助工程师更好地理解他们的评估指标至关重要,这最终将使他们能够减轻模型中固有的偏差和/或提高生成质量。

在这项工作中,我们提出了一种策略来因果评估特定领域特征的影响变化对使用合成数据的感知评估指标的影响。 我们专注于人脸生成,这是图像合成研究中最受欢迎的领域,在人脸分析/识别 、深度伪造、虚拟化身甚至医疗保健等应用中具有许多重要的社会影响。 我们考虑两种类型的面部操作:语义属性(例如,帽子、肤色、头发长度)和扭曲(模糊)。 我们进行因果研究,使用单次操纵图像的单个特征的实验干预,并测量它们对跨不同图像空间的评估指标(在我们的实验中,Fréchet 距离)的影响。 对于语义干预,我们使用深度人脸生成器来构建合成人脸对(pairs)的数据集,这些人脸对(大约)只有一个感兴趣的特征不同。 对于失真,我们将模糊应用于面部分割模型推断的语义面部区域。

使用这些合成数据,我们评估了在通用域(ImageNet、CLIP)和域内(人脸)数据集上训练的六个深度特征空间中的 Fréchet 距离 (FD),并使用全监督、半监督 和无监督目标函数。 我们发现 FD 对语义属性的敏感性在很大程度上取决于用于训练特征空间的训练数据集和目标函数。 例如,在 ImageNet 上训练的特征空间往往会过分强调帽子和眼镜等配饰,而忽略重要的面部语义,如眼睛、表情、几何形状和皮肤纹理。 此外,在具有对比学习目标的域内人脸数据集上训练的特征空间强调皮肤的特征(例如肤色和纹理),但忽略与头发和背景相关的细节。 最后,我们使用在这些特征空间上计算的 FD、精度和召回(recall)指标评估了流行的深度生成人脸模型。 我们的研究结果表明,虽然 StyleGAN2 在大多数特征空间上优于其他生成器,但在面部身份(识别)特征空间中,它的召回率和 FD 明显低于流行的扩散模型(LDM),并且精度低于 3D 感知 GAN(EG3D)。

这项研究的结果表明,由于训练数据和目标函数,深度特征空间对域内属性具有显着且独特的偏差。 研究人员在综合评估期间应了解这些偏差。 此外,我们对人脸生成器的实验证明了在评估过程中考虑多个特征空间的重要性,尤其是那些针对感兴趣领域的关键细节进行调整的特征空间。

1.1 相关工作和背景

深度生成模型评估涉及计算生成图像分布与真实图像分布之间的相似性。 Inception Score (IS) 和 Fréchet Inception Distance (FID) 等指标将图像嵌入到低维感知特征空间中,该空间源自经过在 ImageNet 上训练的深度卷积神经网络 (InceptionV3) 的最后一层。

FID 是目前事实上的图像生成评估指标。 它假设两个 Inception 嵌入图像分布是多元高斯分布,并计算 Fréchet 距离 (FD),也称为 2-Wasserstein 或地球移动者距离(Earth Mover’s distance):

其中 (μ1,Σ1) 和 (μ2,Σ2) 是图像集(即真实图像和生成图像)embedding 的样本均值和协方差,Tr(·) 是矩阵迹。

最近的几项工作揭示了 FD 的局限性,并提出了替代评估指标。

  • FD 的一个主要缺点是它的高偏差,需要 50,000 个或更多样本才能产生准确的估计值。
  • 为了解决这个问题,Bi'nkowski 等人提出使用多项式内核放宽高斯假设并计算平方最大均值差异,
  • 而 Chong 等人建议通过使用分数与 1/N 呈线性这一事实的外推分数来估计无偏差 FD。
  • FD 的另一个限制是它混淆了样本质量和变化。
  • 为了避免这种情况,Sajjadi 等人和 Kynkäänniemi 等人建议将评估的这两个组成部分分成单独的指标:精度,它量化样本质量,召回率,它量化样本覆盖率。 

最近,FID 已被证明受到不必要的偏差和敏感性的限制。

  • Parmar 等人表明 FID 对由图像处理操作(如调整大小、压缩和量化)引起的难以察觉的伪影敏感。
  • Kynkäänniemi 等人表明人脸图像背景中的域外 (ImageNet) 特征也强烈影响 FID。
  • Morozov等人提倡使用自监督特征空间计算 FD,认为这些特征比 Inception 中的特征更具可转移性和鲁棒性。

2. 方法

对于给定的深度特征空间,我们的目标是量化评估指标对图像特征的敏感性。 在我们的实验中,我们专注于面部图像和 FD,因此我们在该语境中描述我们的方法。 我们针对给定的特征空间形成两个问题:

  • 两个人脸图像集的语义属性分布之间的差异如何定量影响 FD?
  • 局限于面部语义区域的扭曲如何定量影响 FD?

这些问题与生成模型必须捕获的两个广泛图像特征相一致:(1) 域的语义属性,以及 (2) 现实细节。 回答这些问题需要因果推理(causal reasoning),理想情况下需要反事实(counterfactual)数据集,该数据集由除了一个特征(即语义属性或失真)上的差异外完全相同的成对面孔组成。 真实面部数据集包含显着的属性相关性,因此不合适。替代地,我们提出了一种合成方法。 在以下各节中,我们概述了构建合成数据以回答每个问题的方法。 通过所提出的方法合成的示例图像如图 1 所示。

2.1 衡量语义属性差异对 Fréchet 距离的影响

考虑具有特征分布 p_A(x) 和 p_B(x) 的两个图像集 A 和 B,其中 x ∈ R^D 是图像的特征空间。 此外,假设 A 和 B 同分布,除了它们在一个值为 a ∈ {0, 1} 的语义二元属性上的分布不同,我们用 p_A(a) 和 p_B(a) 表示。 我们的目标是量化 p_A(a) 和 p_B(a) 之间属性比例的差异(从同分布时的 0% 到完全不同时的 100%)如何影响

图 2 描述了我们这样做的分析方法。 我们使用深度生成模型(如下所述)构建多组几乎相同的面孔,每组包含不同比例的 a 值,并计算这些对之间的 FD 以产生总结因果效应的曲线(参见图 2-右和图 3 )。

此分析需要创建集合 A 和 B,即仅基于 a 的不同的反事实面孔集合。 我们使用两步过程来综合创建这些数据。

首先,我们合成了一组基本面孔,这些面孔表现出浅肤色和短发的预定义统一特征,不包含:面部毛发、化妆、皱眉的表情、帽子或眼镜。 为此,我们基于在 Flickr-Faces-HQ (FFHQ) 数据集和正交线性隐空间遍历 (orthogonalized linear latent space traversals,OLLT) 上训练的 StyleGAN2,获得了先前面部因果基准研究的面部生成模型。我们通过人工评估过滤这些面孔,以确保它们符合定义的标准。 在我们的实验中,我们总共使用了 1427 个经过过滤的基本面孔。

在第二步中,我们从每个属性 a 的基本面中合成反事实对。 在我们的实验中,我们分析与各种面部语义相对应的 12 个二进制属性,包括几何形状、肤色、皮肤纹理、发型和配饰。 分析的属性由图 1a 中的列显示。根据属性类型使用三种不同的图像处理方法之一:(1) OLLT,(2) StyleCLIP, (3) 使用稳定扩散进行图像修复。 我们根据对每种方法在保持其他属性不变的情况下操纵属性的能力的定性评估,为每个属性选择最佳方法。 我们在图 1a 中展示了一些反事实属性示例。 我们在补充材料中提供了用于创建合成数据集的模型、实验参数和详细信息的完整说明。 

2.2 衡量模糊语义区域对 Fréchet 距离的影响

此分析的目的是了解面部生成器针对特定语义区域(例如,鼻子、头发)输出的系统失真如何影响 FD。 在我们的实验中,我们专注于严重模糊(参见图 1),尽管还可以探索许多其他区域。对于每个区域,我们使用包含该区域的真实 FFHQ 人脸图像(帽子和眼镜等配件并非在每个图像中)作为一个分布(集合 A),并使用从公共面部分割模型(集合 B)获得的分割掩码仅在该区域对这些图像应用高斯模糊。我们在实验中考虑了 9 个区域,如图 1b 所示。对于 在我们的分析中,我们简单地报告了关于扭曲每个语义区域的 FD(见图 4)。

3. 实验

我们使用六个具有公开可用参数的深度特征空间进行分析(模型和参数 URL 的列表在补充材料中):

  • Inception:在 ILSVRC-2012 (ImageNet) 数据集上训练的用于分类的 V3 模型。
  • CLIP:使用对比损失在 OpenAI 专有的图像文本对数据集上训练的 ViT-B/32 模型。
  • SwAV:在 ILSVRC-2012 (ImageNet) 上训练的 ResNet-50 模型,用于通过对比聚类分配进行视觉特征的无监督学习。
  • FairFace:在 FairFace 上训练的 ResNet-34 模型用于种族、年龄和性别分类。
  • SwAV-FFHQ:在 FFHQ 上训练的 ResNet-50 模型,用于通过对比聚类分配进行面部特征的无监督学习。
  • Identity:在 Glint360k 上训练的 ResNet-34 模型用于具有对比损失的面部识别。

前三个特征空间在通用域(非人脸)数据上进行训练,而后三个特征空间仅在人脸上进行训练。

3.1 特征空间对图像特征的因果敏感性

我们首先介绍 FD 关于面部属性比例的敏感性分析。 我们的总数据集包含 1427 个反事实面孔对,我们从中随机抽取 1000 对来构建面孔集,如图 2 中所述。图 3 显示了我们的结果。 为清楚起见,我们仅绘制了 8 个属性(所有 12 个属性的完整结果在补充中)。 图中显示的点和误差条对应于平均值和标准差,其中后者是通过 1000 对人脸的 10 次随机抽取计算得出的。 跨特征空间直接比较 FD 值是没有意义的,因为距离的比例因特征而异。 然而,可以跨图比较属性曲线之间的趋势差异。 例如,Inception 和 SwAV 相对于其他特征空间明显强调帽子,而 FairFace 和 SwAV-FFHQ 强调肤色。

接下来,我们介绍 FD 对局部失真的敏感性分析。 为了比较不同特征空间的 FD,我们通过将距离除以该特征空间中原始图像和完全模糊图像(图 1 中的“所有”类别)之间的距离来归一化距离。我们在补充材料中显示每个特征空间的非归一化 FD。每个特征空间受区域扭曲影响的方式存在显着差异,例如 Inception 和 SwAV 与其他空间相比几乎不受眼睛影响,而 Identity 受鼻子影响最大。

3.2 不同特征空间的人脸生成器分析

接下来,我们使用在每个特征空间中计算的指标对四种流行的、公开可用的人脸生成模型进行评估:StyleGAN2、EG3D、隐扩散模型 (LDM) 和 Nouveau 变分自动编码器 (NVAE)。对于 StyleGAN2 和 EG3D,我们评估了有和没有截断的模型(ψ = 0.7,截断 cutoff = 14)。 我们使用 FD 和 k-最近邻精度和召回指标来评估模型。 这些精确度和召回率分别衡量近似样本质量(真实性)和样本覆盖率。 我们使用整个 FFHQ 数据集(70, 000 张图像)和来自每个生成模型的 50000 个样本。 完整的结果如表 1 所示。

4. 讨论

无论训练目标如何,使用 ImageNet 学习的特征空间都没有充分强调重要的面部语义。 图 3 说明使用 ImageNet(Inception 和 SwAV)学习的特征空间中的 FD 对帽子的差异最敏感,这与 Kynkäänniemi 等人的发现一致。然而,有趣的是,使用 SwAV 特征计算的 FD 也对帽子敏感,即使该模型没有明确训练以对 ImageNet 类进行分类。 这是合理的,因为已知自监督学习是 ImageNet 分类的有效预训练策略。 

这些图还说明使用 ImageNet 学习空间计算的 FD 对皮肤纹理(“皱纹”和“光滑”)、几何形状(“胖乎乎(chubby)”)和表情(“皱眉”)的分布差异高度不敏感。 该结果还受到等式 1 中 FD 的均值和迹线项(trace terms)之间微妙相互作用的影响。 随着两个分布在我们的敏感性分析中变得更加倾斜(在图 3 中趋向于 0 或 100%),分布均值变得更加不同,但它们的方差也减少并减少了迹线项。 这表明单独使用 FD 的另一个挑战:它们可以混淆分布模式与分布形状的差异。

图 4 显示使用 Inception 和 SwAV 空间计算的 FD 对眼睛的模糊不敏感,而 SwAV 对鼻子和嘴巴的模糊不敏感。 这表明眼睛、鼻子或嘴巴的变化不会影响基于 ImageNet 的特征空间中的 FD。 生成模型设计者应该格外注意这些语义“盲点”。

训练目标影响深度特征空间强调哪些面部语义

  • 图 3 显示,虽然域内特征空间(FairFace、SwAV-FFHQ、Identity)都对肤色、皮肤纹理和面部配件的差异高度敏感,但确实存在几个显着的差异。 例如,与 SwAV-FFHQ 和 Identity 相比,FairFace 对头发长度敏感得多。与 FairFace 相比,头发模糊对 SwAV-FFHQ 和 Identity 的影响相对较小,进一步支持了这一点。
  • 另一个值得注意的区别是,FairFace 和 SwAV-FFHQ 都无法捕获局限于眼睛、鼻子、嘴巴和嘴唇的扭曲,而 Identity 可以。我们推测这些差异是特征空间捕获与训练期间使用的目标函数最相关的语义特征的结果。 FairFace 经过训练可以对与头发长度相关的感知性别进行分类。 另一方面,Identity 被训练来匹配对应于同一个人的面孔,这应该不受发型和头发长度的影响。 SwAV 被训练来匹配图像的裁剪视图,对于图像,头发长度可能不是一个强大的特征。
  • 因此,我们建议生成模型设计者不应天真地期望域内特征空间对所有特定于域的语义敏感。 相反,我们提倡仔细考虑训练目标如何影响特征,并根据经验调查这些敏感性。

在大量通用数据集上训练的图像语言模型(CLIP)捕获了面部的许多重要语义特征。

  • 语义属性和失真的敏感性分析表明 CLIP 特征对所有研究的特征都很敏感。
  • 特别是,CLIP 为所有扭曲的面部区域提供了重要的 FD,无论该区域的像素大小如何。
  • 这可能有两个原因:(1) CLIP 是在海量数据集上训练的,(2) 文本为图像编码器提供了丰富的感知特征信息来源,而这些信息是无法通过经典监督学习的。
  • 基于这些结果,我们鼓励生成模型设计者放弃从在 ImageNet(Inception、VGG、SwAV)上训练的模型中提取的感知特征,并使用像 CLIP 这样的大型图像语言模型。

StyleGAN2 始终优于其他人脸生成器,除了对应于 identity 的。

  • 表 1 显示,在几乎所有特征空间和评估指标中,StyleGAN2 都优于其他人脸生成器。 然而,当使用 identity 空间时,LDM 和 EG3D 以不同的方式优于 StyleGAN2。
  • 我们推测,因为 EG3D 经过训练可以感知 3D 几何形状,它可以对鼻子和眼睛等特征进行建模(如图 4 所示),这在身份空间中很重要,从而产生更高的精度。
  • 与 GAN 模型相比,LDM 可能能够捕获更广泛的身份多样性,因为它不易受到已知困扰 GAN 的模式崩溃问题的影响,从而产生更高的召回率和 FD。
  • 与 EG3D 相比,NVAE 的身份指标进一步加强了这一观察结果。
  • 尽管 NVAE 生成的样本在身份上不如 StyleGAN2 和 EG3D 精确,它取代了 GAN 模型,使其在 Recall 和 FD 方面位居第三。

4.1 限制

我们对语义属性的因果分析假设完全反事实的面孔对(pairs)。 然而,由于生成器从其训练分布中学习到的相关性,在使用深度生成器时不可能将一个属性与其他属性完全隔离开来。 例如,在操作眼镜时,我们发现由于年龄和戴眼镜倾向之间的相关性,皮肤纹理变得更加皱纹。 此外,在合成皱纹脸的情况下,我们发现这种操作也会导致脸部出现斜眼。 然而,一般来说,已知这种相关性在真实数据集中更加显着,这使得合成生成成为此类分析更有吸引力的选择。

我们的语义属性分析使用每组 1000 张图像的样本大小,这导致有偏差的 FD 估计。 然而,鉴于样本量在整个实验过程中是一致的,图 3 中显示的曲线趋势和形状是准确的。 这种样本量偏差也是我们分析语义区域(例如帽子和眼镜)失真的一个因素,这些语义区域仅存在于整个 FFHQ 数据集的较小子集(∼ 10, 000)中。

我们为特征空间使用了公开可用的深度网络,但这些网络在架构类型、大小和最终层特征数方面各不相同(例如,Inception 和 SwAV 特征有 2048 维,而其他有 512 维)。 这些因素可能是我们因果分析中的潜在混杂因素,尽管我们认为训练集组成和目标函数可能对我们的结果有更大的影响。

5. 结论

在这项工作中,我们提出了一种策略,在人脸生成的背景下使用合成数据来因果评估特定领域特征的变化对生成评估指标的影响。 我们对使用几个深度特征空间计算的 FD 对面部属性的敏感性进行了全面研究。 此外,我们提供了对在这些特征空间中评估的流行的深度生成模型的分析。 这项研究的结果表明,由于训练数据和目标函数,深度特征空间对域内属性具有显着且独特的偏差。

总之,研究人员在将给定特征空间的偏差用于综合评估之前,应该充分理解它们。 我们对人脸生成器的实验证明了在评估过程中考虑多个特征空间的重要性——尤其是那些调整到感兴趣领域的关键细节的特征空间(比如人脸的身份)——以全面了解模型的优缺点。 随着图像生成模型继续快速改进,这种仔细的评估对于取得有意义的进展是必要的,包括减轻偏差和提高生成图像模型的整体质量。

6. 更广泛的影响

提高对图像生成评估指标的理解将使研究人员和开发人员能够更有效地评估不同生成模型的性能。 这反过来又促进了更准确、更现实、更可靠的发电系统的发展。 评估指标在减轻人脸生成模型的偏差方面也起着至关重要的作用。 尽管如此,我们认识到人脸生成技术具有深远的影响,包括涉及深度造假和身份操纵的潜在有害应用。 因此,改进此类方法的评估程序可能会增加与 AI 生成的面部内容相关的风险和危害。

参考

Kabra K, Balakrishnan G. FD: On understanding the role of deep feature spaces on face generation evaluation[J]. arXiv preprint arXiv:2305.20048, 2023.

S. 总结

S.1 主要思想

不同的模型对不同属性的敏感程度不同。例如,FD 使用从 ImageNet 训练模型中提取的特征,着重强调帽子而不是眼睛和嘴巴等区域。 此外,使用面部性别分类器特征的 FD 在身份(识别)特征空间中更强调头发长度而不是距离。

作者通过模糊不同的属性来探索这些属性对评估指标(FID)的影响。这种更细致的评估可以减轻偏差以及提高生成模型的整体质量。

S.2 Fréchet Inception Distance (FID)

FID 假设两个 Inception 嵌入图像分布是多元高斯分布,计算公式如公式 1 所示:

其中 (μ1,Σ1) 和 (μ2,Σ2) 是图像集(即真实图像和生成图像)embedding 的样本均值和协方差,Tr(·) 是矩阵迹。

S.3 样本生成

真实数据集包含显著的属性相关性,为了测试单个属性对评估指标的影响,作者使用生成的数据集。该数据集的生成有两步:

  • 首先,合成一组基本面孔,这些面孔表现出浅肤色和短发的预定义统一特征,不包含:面部毛发、化妆、皱眉的表情、帽子或眼镜等与各种面部语义相对应的 12 个二进制属性。
  • 然后,分别合成包含上述12个属性的样本。

S.4 实验

实验方法是,保持其他属性不变,仅改变(模糊)一个属性,然后观察它对 FID 的影响。

用于生成的模型是在不同数据集上训练的不同架构的模型,从而获得不同的特征空间。

为了比较不同特征空间的 FID,先计算该特征空间中原始图像与模糊图像之间的 FID,然后除以原始图像和完全模糊图像之间 FID 来获得归一化的 FID。

S.5 分析

实验的一部分结果如上图所示。以 SwAV-FFHQ(在 FFHQ 上训练的 ResNet-50 模型)为例

  • 对头发的模糊程度增加(0%→100%)时,FID 基本没有变化,说明该特征空间对头发这一属性不敏感;
  • 对肤色(skin tone)的模糊程度增加(0%→100%)时,FID 明显增加,说明该特征空间对肤色这一属性十分敏感。

差异分析

  • 作者推测这些差异是特征空间捕获与训练期间使用的目标函数最相关的语义特征的结果。
  • CLIP 特征对所有研究的特征都很敏感,这可能有两个原因:(1) CLIP 是在海量数据集上训练的,(2) 文本为图像编码器提供了丰富的感知特征信息来源,而这些信息是无法通过经典监督学习的。
  • 虽然特征空间使用了在架构类型、大小和最终层特征数方面各不相同的网络, 这些因素会对实验结果造成影响,但作者认为更大的影响来自于训练集和目标函数。 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值