题目:Cascade EF-GAN:局部聚焦渐进式面部表情编辑
时间:2020.3
作者:Rongliang Wu, Gongjie Zhang, Shijian Lu, and Tao Chen
CVPR 2020

Abstract

  1. 目前面部表情编辑存在的问题:生成性对抗网络(GAN)的最新进展表明,面部表情编辑有了显著的改进。然而,当前的方法仍然容易在表达密集型区域周围产生伪影和模糊,并且在处理大间隙表达转换(例如从愤怒到大笑的转换)时,经常引入不希望的重叠伪影
  2. 本文提出的方案:
    (1)为了解决这些局限性,我们提出了Cascade Expression Focal GAN(Cascade EF-GAN),这是一种新的网络,可以使用局部表情焦点进行渐进式面部表情编辑。局部聚焦的引入使Cascade EF-GAN能够更好地保留眼睛、鼻子和嘴巴周围与身份相关的特征和细节,这进一步有助于减少生成的面部图像中的伪影和模糊
    (2)此外,设计了一种创新的级联变换策略,将大型面部表情变换分解为级联中的多个小型表情变换,这有助于抑制重叠伪影,并在处理大间隙表情变换时产生更逼真的编辑效果
    (3)在两个公开的面部表情数据集上进行的大量实验表明,我们提出的级联EF-GAN在面部表情编辑方面取得了优异的性能。

1.Introduction

  1. 面部表情编辑发展现状:面部表情打开了一扇了解人们内部情绪的窗口,传达了微妙的意图,关于面部表情的自动识别有很多研究工作。在数字媒体的今天和时代,面部表情编辑即将给定面部图像的表情转换为目标表情,而不丢失身份属性,有可能应用于不同的领域,比如说摄影技术、电影产业、娱乐业等。它越来越受到学术界和工业界的关注。
  2. 现有的面部表情编辑方法存在的不足:受生成性对抗网络(GANs)最近的成功启发,报告的几项研究工作已经取得了非常令人印象深刻的面部表情编辑结果。另一方面,现有的方法仍然面临一些约束。首先,现有的方法往往会产生不连贯的伪影和/或模糊,尤其是在那些表情丰富的区域,如眼睛、鼻子和嘴巴周围。第二,当源面部表情与目标面部表情存在较大差距时,现有方法往往会产生重叠伪影,例如从愤怒到大笑的转换 。
  3. 现有的面部表情编辑方法只将图像作为整体处理,没有特别关注与局部身份相关的特征(眼/鼻子/嘴巴):面部表情编辑的任务需要维护个人身份。作为人类,识别面部图像的自然方法是特别注意眼睛、鼻子和嘴巴,这主要是因为这些区域包含丰富的身份相关信息。另一方面,几乎所有基于GAN的面部表情编辑方法都只是将输入的面部图像作为一个整体进行处理,而没有特别注意与局部身份相关的特征,这可能是大多数现有方法在眼睛、鼻子和嘴巴周围产生不连贯伪影和模糊的一个主要原因。
  4. 此外,据我们所知,所有现有的基于GANs的面部表情编辑方法都对目标表情执行一步转换。另一方面,由于网络容量的限制,在处理大间隙变换时,单步变换通常会产生重叠伪影(在面部表情变化较大的区域周围)。由于面部表情的变化本质上是连续的,如果网络将其分解为许多小的变换,那么大的间隙变换应该更好地完成。
  5. 在这篇论文中,我们提出了一种新的级联表达局部GAN(级联EF-GAN),用于局部聚焦的渐进式面部表情编辑。级联EF-GAN由级联中几个相同的EF-GAN模块组成,这些模块以渐进的方式执行面部表情编辑。具体而言,设计了一种创新的级联变换策略,将大型面部表情变换分解为多个小型面部表情变换,并循序渐进的执行面部表情变换。这种渐进式面部表情转换有助于抑制重叠伪影,并在处理大间隙面部表情转换时实现更健壮、更逼真的表情编辑。此外,每个EF-GAN模块都包含许多预定义的局部焦点,分别捕捉眼睛、鼻子和嘴巴周围与身份相关的特征。EF-GAN具有与身份相关的详细特征,能够生成具有更少伪影的连贯面部表情图像。我们提出的级联EF-GAN的结果如图1所示。
  6. 本文的贡献
    (1)首先,我们确定了局部焦点在面部表情编辑中的重要性,并提出了一种新的EF-GAN,它可以捕获具有多个局部焦点的身份相关特征,并有效地减少编辑伪影和模糊。
    (2)其次,我们提出了一个创新的渐进式面部表情编辑级联设计。级联设计在处理较大间隙的表情转化时,在抑制重叠伪影方面是稳健而有效的。(重叠伪影指的是原始表达式和目标表达式在输出中混合的伪影)。
    (3)第三,大量实验表明,Cascade EF-GAN在定量和定性上都实现了出色的面部表情编辑。

2.Related Work

  1. 生成性对抗网络:生成性对抗网是一种强大的生成模型,可以同时训练生成器生成逼真的假图像,并训练鉴别器区分真假图像。一个活跃的研究主题是条件GANs,它包含条件信息去控制生成图像。此外,CycleGAN采用cycle-consistency(循环一致性)损失,并在保留关键属性的情况下实现图像到图像的转换。GANs在不同的计算机视觉任务中表现出了强大的能力,如自然图像合成、图像风格转换、超分辨率、图像修复、面部属性编辑、面部图像合成等,GAN生成的图像也被应用于不同的计算机视觉任务。我们的Cascade EF-GAN设计用于执行面部表情编辑,使用条件变量控制目标表情,并使用循环一致性以保留身份信息。
  2. 面部表情编辑:面部表情编辑很有挑战性,因为它需要对输入的面部图像进行高水平的理解,并事先了解人类表情。与只考虑特定面部区域外观修改的一般面部属性编辑相比,面部表情编辑是一项更具挑战性的任务,因为它通常涉及较大的几何变化,需要同时修改多个面部组件。近年来,随着GANs的流行,已经取得了非常令人印象深刻的进展。例如,G2-GAN和GCGAN采用面部地标作为几何先验,以控制生成的面部表情的强度,其中ground-truth图像对于提取几何信息至关重要。ExprGAN引入了一个表达式控制器来控制生成表情的强度,但它需要一个预训练的人脸识别器来保存身份信息。StarGAN可以使用单一模型跨域翻译图像,并通过最小化循环损失来保留身份特征,但它只能生成离散表达式。GANimation采用动作单元作为表情标签,可以在连续域中生成表情。它还包括注意机制来更好地保存身份信息。然而,它往往会产生伪影和模糊,无法很好地处理大间隙表情转换。
  3. 我们提出的级联EF-GAN方法没有像现有的基于GAN的方法那样在整个人脸图像上生成表情,而是将局部焦点放在眼睛、鼻子和嘴的区域上,有助于抑制伪影和清晰的保留细节。此外,级联策略以渐进的方式编辑表情,在处理非常不同的表情转换时能够有效地抑制重叠的伪影。

3.Proposed Methods

图2显示了我们提出的级联EF-GAN的总体框架。如图2所示,级联EF-GAN由级联中的多个EF-GAN组成,它们以渐进的方式执行表情编辑。每个EF-GAN共享相同的体系结构,其中包括一个表情转换器和一个细化器。具体来说,每个EF-GAN模块中都包含了几个预定义的局部焦点分支,以便更好地保存眼睛、鼻子和嘴巴周围与身份相关的特征和细节。更多细节将在接下来的小节中讨论。

3.1EF-GAN with Attention-Driven Local Focuses

  1. EF-GAN中的生成模型由一个表情转换器和一个细化器组成,前者执行带有局部焦点的表情编辑,后者融合表情转换器的输出并细化最终编辑。
  2. 表情转换器。图2显示了我们的表情转换器的架构。我们的级联EF-GAN说明:工作流显示在左侧,每个EF-GAN的详细信息显示在放大区域。表情编辑分为3个步骤,由每个EF-GAN逐步处理。EF-GAN由一个表情转换器和一个细化器组成:前者生成整个人脸图像和三个局部人脸区域的初始编辑,后者融合初始编辑并细化,生成表情图像作为最终输出
  3. 现有的方法的不足:现有的方法使用单个全局分支处理面部图像,虽然卷积核在所有空间位置共享,但每个面部区域都有不同的身份相关特征。因此,仅仅用一组卷积核将人脸图像作为一个整体进行处理,不足以捕获每个人脸区域周围与身份相关的细节
  4. 我们的表情转换器的改进:包含三个额外的局部分支,分别对眼睛、鼻子和嘴巴周围的局部区域进行预定义聚焦。通过在全局和局部分支中处理面部图像来应对现有方法的不足,其中全局分支捕获全局面部结构,局部分支关注更详细的面部特征。
  5. 具体而言,表情转换器将面部图像和目标表情标签作为输入。与GANimation类似,我们采用了面部动作编码系统(FACS),该系统将表情编码为动作单元(AUs),可以使用开源OpenFace提取动作单元。我们采用连续的AUs强度作为AUs标签来监督编辑过程。给定源面部表情图像,通过裁剪相应的局部图像块,首先将局部焦点应用于眼睛、鼻子和嘴巴区域。OpenFace还获取了每个局部焦点的地标。然后,将全局人脸图像及其局部贴片反馈给相应的表情转换器的分支,用于表情编辑。注意:所有分支共享相似的网络架构,但不共享权重。
  6. 我们还将注意力引入到全局和局部分支,以更好地捕捉细节和抑制伪影。视觉注意的使用已经在GANimation中进行了研究,在GANimation中,注意力被设计用来引导网络专注于转换表情相关区域。另一方面,在单个全局图像中应用注意通常会引入模糊的注意反应,如图3的第4列所示。这是因为全局注意力往往集中在最显著的变化上,例如图3中的口腔区域,而眼睛和鼻子周围的细微变化没有得到很好的关注。如第3栏所示,对上述局部分支的独有关注有助于在局部区域获得更清晰的回应。
  7. 具体来说,每个分支输出颜色特征图M_C和注意图M_A。对于原始输入图像I_in,每个分支的初始输出通过以下方式生成:

    ⊗ 表示按元素的乘法。这种策略大大简化了学习过程,因为网络不需要在人脸图像统计的约束下直接输出初始结果。
    表情转换器只生成初始表情编辑,如图2所示。具体来说,全局分支捕获全局面部结构和特征,但由于缺少局部细节,会在局部区域周围生成模糊和伪影。局部分支更好地保留了局部细节,但它们忽略了整个面部表情的大局。因此,这两种分支的输出被发送到细化器进行融合和进一步改进。
  8. 细化器:细化器负责融合表情转换器不同分支的输出,生成最终的表情编辑。如图2所示,三个局部分支的输出首先根据它们在面部图像中的各自位置缝合成单个图像。缝合的图像然后与全局分支的输出连接,并馈送到细化器以生成最终的表情编辑。

3.2Cascade Facial Expression Transformation

  1. 级联框架。给定输入的面部图像,上述EF-GAN在大多数情况下都能够生成高保真的表情编辑。另一方面,我们的研究表明,EF-GAN在处理大间隙表情转换时,往往会在表情变化较大的区域周围产生重叠伪影。我们将大间隙表情转换称为那些涉及大量外观和几何修改以编辑表情的转换,例如从愤怒到大笑的转换。为了解决这个限制,我们提出了级联EF-GAN,它以渐进的方式执行表情编辑。具体而言,级联EF-GAN将大间隙表情转换分解为多个小间隙表情转换,并在级联中执行大间隙表情转换。它可以更好地保存面部结构和与身份相关的特征,以及强大地处理大间隙面部变换。
  2. 如图2所示,通过将多个EF-GAN级联在一起来实现级联表情编辑,其中来自前一个EF-GAN的表情图像被馈送到下一个EF-GAN作为进一步编辑的输入。根据经验,我们使用了3个EF-GAN,图4显示了所提出的级联EF-GAN的中间和最终表情编辑。如图4所示,具有挑战性的大间隙表情编辑是通过多个步骤逐步完成的,从而平滑地生成目标表情的真实面部图像。
  3. 中间监督:实施渐进式编辑的另一个问题是如何在每个中间步骤中包含监督信息。利用输入表情和目标表情的AU标签,直接的方法是通过线性插值生成中间AU。然而,这种插值的AU可能不存在于自然AU的流形上,并导致奇怪的合成。我们通过训练插值器来生成中间AU来解决这个问题。具体来说,我们首先通过线性插值生成伪中间目标,并提取伪目标和输入表情的原始AUs标签之间的残差。原始的AUs标签和残差随后被馈送到插值器,以产生中间AUs,从而为中间表情提供监督。此外,还训练了一个鉴别器来最大化真实值和插值后的AUs之间的Wasserstein距离,而训练插值器来最小化它们之间的距离,从而使插值后的AU无法与真实样本区分开来。注:所有EF-GAN使用相同的AUs插值器。

3.3Learning the Model

  1. 损失函数训练EF-GAN的损失函数包含五项:
    (1)提高合成面部表情图像的照片真实性的对抗损失,使其与真实样本无法区分;
    (2)条件表情损失,以确保生成的面部表情图像符合提供的目标AUs标签;
    (3)内容损失,是为了保存图像内容的身份信息和一致性。
    (4)注意损失,鼓励注意模块生成稀疏注意图,并注意真正需要修改的区域.
    (5)用于约束插值AUs标签的插值损失具有期望的语义意义,并且驻留在自然AUs的流形上。总体目标函数表示为:

    其中λ1、λ2、λ3和λ4是超参数。在级联EF-GAN中,总损失是每个EF-GAN的等权损失之和。
  2. 训练方案
    (1)如果我们直接级联多个EF-GAN模块并从头开始训练,很难获得良好的表情编辑。我们推测,这在很大程度上是由于早期EF-GAN模块产生的噪声面部图像。以这种有噪声的人脸图像作为输入,级联EF-GAN的后期很容易受到影响,并产生退化的编辑。此外,不希望的编辑会累积,这使得网络参数难以优化。
    (2)我们设计了一个简单而有效的方案来解决这个问题。具体来说,我们首先训练一个EF-GAN执行一步面部表情转换。然后,我们使用训练好的EF-GAN的权重初始化级联中的所有后续EF-GAN,并端到端微调所有网络参数。通过这种训练方案,级联中的每个EF-GAN模块都将具有良好的初始化,因此中间的面部表情图像将有助于后期学习有意义的表情转换信息。

4.Experiments

4.1Datasets

  1. 通过Radboud Faces数据集(RaFD)和情绪混合面部表情数据集(CFEED)对级联EF-GAN进行评估。RaFD由8040张从不同角度收集的表情图像组成。我们使用的面部图像由90度相机捕获,生成1608张面部表情图像。CFEED包含从230名参与者收集的5060张混合表情图像。我们随机抽样90%用于训练,其余用于测试。
  2. 在我们的实验中,我们将图像裁剪成128×128个补丁,补丁的中心是人脸。三个局部补丁(即眼睛、鼻子和嘴巴的补丁)的大小分别固定为40×92、40×48和40×60。每个补丁的中心是所有训练样本中相应关键点的平均位置。

4.2Qualitative Experimental Results

  1. 级联EF-GAN是在前一节中描述的两个公开可用的面部表情数据集上进行评估的。图5显示了定性实验结果,其中第1-5列中的图像来自RaFD数据集,第6-10列中的图像来自CFEED数据集。每个列都包括一项表情编辑任务,以及通过最先进的方法——StarGAN和GANimation进行的面部表情编辑,以及我们提出的Cascade EF-GAN。
  2. 如图5所示,最先进的方法容易在眼睛、鼻子和嘴巴周围产生模糊和伪影,甚至会破坏面部表情。我们的Cascade EF-GAN生成的面部表情更逼真,模糊和伪影更少,生成的图像也更清晰。更好的合成在很大程度上归功于包含了注意力驱动的局部聚焦,这有助于更好地保留相应面部区域中与身份相关的特征和细节。此外,最先进的方法在处理大间隙表情转换时往往会产生重叠的伪影。我们的级联EF-GAN反而有效地抑制了这种重叠的伪影,这主要是因为我们的级联设计执行了类似人类的渐进式表情转换,而不是一步执行。补充材料中提供了更多结果。

4.3Quantitative Experimental Results

  1. 表情分类准确性:我们遵循StarGAN和ExprGAN的评估方法进行定量评估。具体来说,我们首先在训练集上训练不同的表情编辑模型,然后在同一个看不见的测试集上执行表情编辑。然后在不同的表情识别任务中对生成的图像进行评估。分类精度越高,表示表情编辑越准确、越真实。
  2. 设计了两个分类任务来评估生成图像的质量:1)使用原始训练图像训练表情分类器,并应用分类器对不同编辑方法生成的表情图像进行分类;2) 通过结合自然和生成的表情图像来训练分类器,从而对原始测试集图像进行分类。第一个任务评估生成的图像是否位于自然表情的流形中,第二个任务评估生成的图像是否有助于训练更好的分类器。
  3. 表1显示了RaFD和CFEED上的表情分类精度(仅针对CFEED评估了七个主要表情)。具体来说,R意味着用原始训练集图像训练分类器,然后将其应用于识别测试集图像的表情。G表示使用与R相同的分类器来识别生成图像的表情。R+G是将真实图像和不同方法生成的图像相结合来训练分类器,然后应用它们来识别测试集图像的表情。如表所示,我们的cascade EF-GAN在第一个任务中达到了最高的准确率,RaFD和CFEED的准确率分别为89.38%和85.81%,显示了它在生成更逼真的表情图像方面的优势。此外,它还可以帮助训练更精确的表情分类器,当我们生成的图像与分类器训练中的真实图像相结合时,RaFD和CFEED的准确度分别提高了1.46%和1.02%。作为比较,StarGAN和GANimation 生成的图像往往会降低分类,可能是因为生成的图像中存在伪影和模糊。
  4. PSNR和FID:我们还使用峰值信噪比(PSNR)和弗里切特起始距离(FID)指标评估生成图像的质量。PSNR是通过合成表情和相同身份的对应表情计算的,而FID分数是在真实人脸的预训练初始模型和合成人脸的最终平均池特征之间计算的。如表2所示,我们提出的级联EF-GAN在RaFD数据集上的PSNR和FID测量高出了1.01/3.19,在CFEED上高出了0.91/1.92。

4.4Ablation Study

  1. 我们在RaFD数据集上进行消融实验,以研究我们提出的局部聚焦和级联设计的贡献。训练了几个模型,包括:
    (1)基线,其中仅采用全局注意的 GANimation ;
    (2)基线+局部聚焦(即EF-GAN),将局部焦点分支纳入基线;
    (3)基线+级联,将渐进编辑(带有3个EF-GAN模块)引入到基线;
    (4)级联EF-GAN,包括渐进编辑和局部聚焦,如图2所示。
  2. 图6显示了定性结果。每列代表一个表情编辑任务,以及上述模型进行的相应编辑。很明显,基线往往会丢失眼睛和嘴巴周围的细节,导致模糊、伪影,甚至腐蚀。对于许多示例图像,生成的表情与目标表情也没有很好地对齐。基线+局部聚焦可以大大减少伪影和腐蚀,并生成更清晰、更鲜明的表情图像。基线+级联中包含级联策略有助于更好地维护身份特征和面部结构,生成的表情也能更好地与目标表情对齐。这在很大程度上是因为级联设计通过将大间隙变化分解为更小的步骤来减轻大间隙变化的复杂性。最后,包括级联设计和局部聚焦的级联EF-GAN能够生成干净、清晰的面部表情,这些表情与目标表情和输入身份一致,明显优于所有其他模型。这表明,提出的局部聚焦和级联编辑策略是相辅相成的。
  3. 我们还进行了定量实验,以评估级联EF-GAN中的每个提出的组件。表3显示了实验结果。定量实验结果进一步验证了所提出的局部聚焦和渐进转换策略的有效性。

4.5Discussion

连续表情编辑:我们的级联EF-GAN可以很容易地适应生成连续表情。给定源和目标AUs,可以使用插值器导出不同阶段的中间AUs。因此,可以使用中间AUs和源图像导出中间阶段的连续表情。图7显示了级联EF-GAN的连续编辑。

野生图像上的面部表情编辑:野生图像上的表情编辑更具挑战性,因为图像是在复杂的背景和不受控制的灯光下拍摄的。我们的级联EF-GAN可以适应处理野生图像,如图8所示,其中级联EF-GAN首先在RaFD和CFEED图像上进行预训练,然后使用来自AffectNet的野生表情图像进行微调。如图8所示,级联EF-GAN可以成功地变换表情,同时保持和表情无关的信息不变。

5.Conclusion

(1)本文提出了一种新的用于真实人脸表情编辑的级联表情局部GAN(Cascade EF-GAN)。EF-GAN的设计结合了眼睛、鼻子和嘴巴三个局部重点,以更好地保存与身份相关的特征和细节。这种与身份相关的特征减少了模型的身份不确定性,从而得到更清晰的面部表情图像。
(2)此外,所提出的级联EF-GAN以渐进的方式执行表情编辑,将大间隙表情变换更改分解为多个小间隙表情变换。因此,它在大间隙面部表情的真实变换中更具鲁棒性。
(3)在两个公开的有效的面部表情数据集上进行的大量实验表明,与最先进的技术相比,所提出的级联EF-GAN实现了更好的表情编辑。我们预计Cascade EF-GAN将激发新的见解,并在不久的将来吸引更多人对更好的面部表情编辑感兴趣。

Cascade EF-GAN: Progressive Facial Expression Editing with Local Focuses 论文解读相关推荐

  1. GAN系列之 pix2pixGAN 网络原理介绍以及论文解读

    一.什么是pix2pix GAN 论文:<Image-to-Image Translation with Conditional Adversarial Networks> pix2pix ...

  2. 表情识别综述论文《Deep Facial Expression Recognition: A Survey》中文翻译

    本篇博客为论文<Deep Facial Expression Recognition: A Survey>的中文翻译,如有翻译错误请见谅,同时希望您能为我提出改正建议,谢谢! 论文链接:h ...

  3. Joint Pose and Expression Modeling for Facial Expression Recognition 论文翻译

    Joint Pose and Expression Modeling for Facial Expression Recognition Abstract 面部表情识别是一项具有挑战性的任务,因为在任 ...

  4. 人脸表情系列——人脸表情识别(Facial Expression Recognization/FER)

    最近看了几篇关于表情识别的论文,稍微记录一下. 综述推荐一篇CVPR2019的:Deep Facial Expression Recognition: A Survey 基于深度学习的表情识别流程为: ...

  5. 【FER文献阅读】Deep Facial Expression Recognition: A Survey (Shan Li and Weihong Deng)

    论文链接:https://arxiv.org/abs/1804.08348 参考文章:https://cloud.tencent.com/developer/news/231750 这篇是北京邮电大学 ...

  6. 表情识别:Facial Expression Recognition with Two-branch Disentangled Generative Adversarial Network

    论文:Facial Expression Recognition with Two-branch Disentangled Generative Adversarial Network 代码:TDGA ...

  7. Deep Facial Expression Recognition: A Survey 笔记

    Deep Facial Expression Recognition: A Survey 论文笔记 ​ 首先是我读这篇论文的目的,我的研究方向是"基于面部表情的情感识别",是偏向于 ...

  8. 【论文阅读】面部表情识别综述(2018年)(Deep Facial Expression Recognition: A Survey)

    论文地址:https://ieeexplore.ieee.org/abstract/document/9039580 百度网盘地址:https://pan.baidu.com/s/1A8NKT_wz4 ...

  9. 论文笔记 Deep Facial Expression Recognition: A Survey深度面部表情识别调查

    论文链接:https://arxiv.org/abs/1804.08348 面部表情是人类传达其情感状态和意图的最强烈,最自然和最普遍的信号之一.下图是面部表情识别数据库和方法的进化过程,由传统的Ha ...

最新文章

  1. 常见排序算法效率比较
  2. 项目通用环境使用说明
  3. 计算机组成原理(哈工大刘宏伟)135讲(一)
  4. 汇报的时候注意的事项
  5. MPLS ××× Carrier Supporting Carrier Option AB(二)
  6. 构建smaba服务器
  7. aspx repeate控件多级关联
  8. 贴吧android客户端,百度贴吧推出Android平台手机客户端
  9. 深入浅出SpringCloud
  10. 关于git代码管理的详细操作流程
  11. 计算机鼠标老跳动,用win10系统,鼠标总是乱飞乱跳怎么回事,找到原因及解决方案了...
  12. 彻底干掉霸占我任务栏的2345好压的垃圾广告搜索以及天气预告工具栏
  13. 计算机访问网络延迟越低越好吗,网速和网络延迟(网络延迟取决于什么)
  14. 鲍尔默:我可能说过Linux是“恶性肿瘤” 但现在我爱它
  15. Android-指纹解锁
  16. idea最新版下载安装使用
  17. 美国诚实签经验(最全集合)
  18. 从天猫双“11”预测,说说GMC的市场
  19. PMP计算题公式知识点整理
  20. adb删除内置音乐软件教程

热门文章

  1. 微软停止与华为合作:Windows暂停供应新订单
  2. 数据中心2022:绿色的下一步是智能化
  3. opengl源码 实现无缝切换图片过场_手把手讲解 Android hook技术实现一键换肤
  4. java开根号函数_Java中真的只有值传递么?
  5. linux命令格式,常用10个LINUX命令说明
  6. 成功解决ModuleNotFoundError: No module named 'keras_retinanet.utils.compute_overlap'
  7. 5.1 Tensorflow:图与模型的加载与存储
  8. 朴素贝叶斯法分类器的Python3 实现
  9. C#中Lock关键字的使用
  10. 对象之function