论文阅读笔记之——《Deep Plug-and-Play Super-Resolution for Arbitrary Blur Kernels》

本博文为论文的阅读笔记。

论文的链接(https://www.researchgate.net/publication/332109956_Deep_Plug-and-Play_Super-Resolution_for_Arbitrary_Blur_Kernels

开源的代码:https://github.com/cszn/DPSR

本文其实相当于盲超分(传统的超分就是做bicubic),做的就是超分+模糊+去噪。

关键词plug-and play image restoration(即插即用图像恢复),通过将复原的各个模块,看作是工具箱一样,即插即用,具有较高的灵活性。本文就是通过这样的一个即插即用的框架来实现对任意模糊kernel的处理。

通过设计一个新的SISR退化模型来代替盲去模糊的模糊核估计。并引入能量函数来优化新的退化模型。并通过variable splitting technique(变量分割技术)来引入即插即用的模块。which allows us to plug any super-resolver prior rather than the denoiser prior as a modular part。并且采用合成的图片和真实的图片来对算法进行评估。

通过本人之前的博客与实验,也可以发现,准确的,或者说好的退化模型处理的数据,对于SR网络的泛化能力有很重要的意义。因此本文也再次对于SISR的degradation model进行了分析(左老师之前好几篇文章都是开篇就介绍退化模型)

Given the above considerations, it is very necessary to address the following two issues: 1) designing an alternative degradation model, and 2) extending existing DNNbased methods for bicubic degradation to the new degradation model so as to exploit the power of DNN.

论文的贡献:

1、论文所提出的新的退化参数模型(比bicubic degradation模型更加真实,考虑了任意模糊核,从而使得现有的去模糊的方法可以用于模糊kernel的估计)的优点:

First, it generalizes the well-studied bicubic degradation model

Second, it enables us to adopt the available blind deblurring methods to estimate the blur kernel from the given LR image.

2、通过deep plug-and-play super-resolution (DPSR) framework 将基于深度网络的图像复原整合到a variable splitting based iterative optimization scheme。可以处理任意模糊核

模糊失真可以有效的在Fourier 域被处理。因此可以处理任意的模糊核。(本文主要focus在非盲超分的任意模糊核而不是盲超分的任意模糊核)所以这篇工作其实就是“Briefly speaking, our work makes a valuable intermediate step from existing bicubic degradation based SISR to ultimate blind SISR.”

3、引入能力函数

4、展示了即插即用模块不仅仅局限于高斯去噪(Gaussian denoiser)

 

Plug and play image restoration (接下来会专门对这部分做调研)

Plug and play image restoration对于逆问题的处理有较好的性能。它的主要思想是将energy function通过variable splitting 技术以及用任何现成的高斯降噪器替换先前相关的子问题。传统的图像复原问题采用手工制作的图片作为先验。

Different from traditional image restoration methods which employ hand-crafted image priors, it can implicitly define the plug-and-play prior by the denoiser. Remarkably, the denoiser can be learned by DNN with large capability which would give rise to promising performance.(至此,还不是看得太懂这个方法是怎么做的。接下来会针对其写一篇博客)

然后新的degradation model仅仅是(这个退化模型应该不是新的。。。。但是作者再原文中却说可以简化blur kernel的估计,可以将现有的deblur方法用于他们的模型。。。。)

而公式一则为两者本质的区别应该就是degradation的次序不一样。。。。(至于作者说,这个退化模型算他们新提出的,还能作为contribution这一点,本人实在没想明白,各位看客有想法的,欢迎来讨论哈)

定义了退化模型后,就定义能量函数

对于识别性学习(discriminative learning)方法,其inference models实际上对应于能量函数,其中退化模型由训练lr和hr进行隐式定义。这就解释了为什么现有的基于dnn的双三次退化训练的sisr方法在真实图像中表现不佳。

为了解决上式,采用variable splitting technique (可变分割技术/变量分割技术?)引入辅助变量Z,来约束优化公式

SRResNet+(没有BN,用noise level map作为输入,feature 的channel由64变为96)

作者提及“However, it is difficult to sample enough blur kernels to cover the large kernel space.” (文章3.4节的很多结论貌似都没有给出实验验证。。。我想知道评审专家怎么审的。。。。)作者还说,SRMD不能处理large complex blur kernels,言下之意就是他提出的DPSR可以了,下面看看实验怎么定义这个large complex blur kernels

blur kernel。定义了三种blurGaussian blur kernels, motion blur kernels, and disk (out-of-focus) blur kernels

然后。。。。全文没有DPSR的结构。。。。

翻译

下面是本文的翻译版本(来自于本人课题组的师弟的调研报告~)

虽然基于深度神经网络(DNN)的单图像超分辨率(SISR)方法正在迅速普及,但它们主要是针对广泛使用的双三次退化而设计的,对于任意模糊核的超分辨率低分辨率(LR)图像仍然存在根本性的挑战。同时,插件式图像恢复由于其模块化的结构,便于对去噪先验进行插件,因此具有较高的灵活性。本文提出了一种基于双三次退化的深度SISR算法框架,利用即插即用框架对任意模糊核的LR图像进行处理。具体来说,我们设计了一个新的SISR退化模型,以利用现有的盲去模糊方法进行模糊核估计。为了优化新的退化诱导能量函数,我们通过变量分裂技术推导了一个即插即用算法,该算法允许我们插入任何超分解先验而不是去噪先验作为模块部分。对合成和真实LR图像的定量和定性评价表明,所提出的深度即插即用超分辨率框架能够灵活有效地处理模糊LR图像。

 

  1. Introduction

单图像超分辨率(SISR)是一个具有较高理论和实用价值的经典问题,其目标是估计给定低分辨率(LR)图像y的干净高分辨率(HR)图像x。基本上,LR和HR图像之间的关系是由退化模型来描述的,退化模型定义了LR图像如何从HR图像退化。经验和理论研究证明,准确的降解模型对SISR的成功至关重要[20,60]。因此,有必要首先回顾SISR的降解模型。

 

事实上,现有的SISR方法大多是在一定退化模型的假设下设计的。有两种广泛使用的降解模型。第一个,承认一般SISR退化模型,给出了 (1),其中x k代表模糊内核k和HR图像之间的卷积,s代表比例因子, n是加性高斯白噪声(AWGN)噪声σ水平。这种退化模型在开发基于模型的优化方法上得到了广泛的研究[13,19]。然而,这些方法大多假设先验已知的模糊核,在实际应用中难以估计。尽管像[41,53]这样的一些工作主要关注于评估blur内核,但遗憾的是,它们的源代码并没有公开可用。这些被我们称为双三次退化的物质可能被最广泛地使用,其形式是

这里,除非另有说明,s代替了具有尺度因子s的双三次降采样器(Matlab默认函数imresize)。由于其简单性,双三次降采样器模型成为评价SISR方法的基准设置[29,36]。特别是,它极大地促进了为SISR[2]开发强大的深度神经网络(DNN)。然而,在许多实际场景中,这种简单的降级不可避免地会导致较差的结果[20,65]。然而,在扩展到更现实的退化模型方面,几乎没有做什么工作。

 

基于上述考虑,有必要解决以下两个问题:1)设计一种替代的降解模型,2)将现有的基于DNN的双三次降解方法扩展到新的降解模型中,以充分利用DNN的能量。为此,我们首先提出了一个简单而有效的退化模型,该模型假设LR图像是HR图像的双采样、模糊和噪声版本。与Eqn(1)给出的一般退化模型相比,该模型具有两个优点。首先,对Eqn(2)给出的双三次退化模型进行了推广。其次,它使我们能够采用现有的盲去模糊方法来估计给定LR图像的模糊核。为了将基于神经网络的SISR方法推广到新的退化模型中,提出了一种基于神经网络的深度即插即用超分辨(DPSR)框架,该框架将基于神经网络的超分辨器集成到一个基于变量分裂的迭代优化方案中。结果表明,在傅里叶域中可以有效地处理模糊失真。因此,可以处理任意模糊内核,这是本文的主要目标之一。此外,与现有的即插即用框架[13]不同,[13]通常将现成的高斯去噪器作为模块部分进行插拔,而本文提出的方法是通过对现有的基于dnn的超级解析器进行少量修改,实现插拔步骤。

到目前为止,值得强调的是,我们主要关注的是针对任意均匀模糊内核的非盲SISR,而不是针对任意非均匀模糊内核的盲SISR。一方面,非盲SISR对盲SISR非常重要,盲SISR通常包括交替更新模糊内核和应用非盲SISR更新超分辨率图像。虽然最近的一些工作尝试训练DNN直接估计干净图像进行盲消模糊,但其实用性还有待进一步评价。另一方面,虽然非均匀模糊核往往是一个更现实的假设,但它过于复杂,仍然是图像去模糊[31]的一个难题。事实上,对于实际应用来说,任意的均匀模糊内核假设已经比简单的双三次核要好得多。简单地说,我们的工作使一个有价值的中间步骤,从现有的双三次退化为基础的SISR到最终盲SISR。

总结了本工作的贡献:

提出了一种比双三次退化模型更符合实际的SISR退化模型。它考虑了任意的模糊内核,并支持使用现有的去模糊方法进行模糊内核估计。

提出了一种深度即插即用的超分辨率框架来解决SISR问题。DPSR不仅适用于双三次退化,而且可以处理任意模糊核的LR图像。由于迭代方法的目的是求解新的退化诱导能函数,因此提出的DPSR算法具有良好的原则性。

提出的DPSR扩展了现有的即插即用框架,表明了SISR的即插即用先验并不局限于高斯去噪。

2.Related work

2.1.DNN-based SISR

1)双三次的退化。第一个基于dnn的SISR方法被称为SRCNN[17],它使用了一个相对较浅的网络,并沿用了之前的SISR方法,如a +[55]和ScSR[61],利用双三次插值合成LR图像。从那时起,一些研究者将退化模型固定为双三次退化,开始通过DNN从不同的方面提高SISR性能,包括PSNR和SSIM值、效率以及大尺度因子下的感知视觉质量。为了在PSNR和SSIM方面提高SISR性能,Kim等人提出的甚深超分辨率(VDSR)网络表明,最直接的方法是增加网络深度。然而,VDSR对双三次插值LR图像进行处理,影响了效率。为此,提出了FSRCNN[18]和ESPCN[50]直接操作LR输入,并在网络端采用向上扩展操作。考虑到视觉结果往往在大尺度因子下被过度平滑(如4),利用VGG [52] loss和GAN[24]loss来提高感知视觉质量[34,49,58]。虽然这些方法在双三次退化上取得了很大的成功[36,44,68],但是由于退化模型的不匹配,这些方法在大多数真实图像上的性能都很差。

2) Beyond bicubic degradation. 

2)超过双三次退化。在[20]中,作者指出模糊核的精确估计比复杂图像的先验更重要。从那时起,人们已经做了几次尝试来处理双三次退化之外的LR图像。Zhang等[63]提出了一种即插即用框架(IRCNN)来求解Eqn(1)引起的能量函数。虽然理论上IRCNN可以处理任意的模糊核(请参考[13]),但在实际中这种退化模型的模糊核是很难估计的。Zhang等[65]提出了一种以两个关键降解参数为输入的基于dnn的通用解决方案(general dnn - based solution, SRMD)。然而,SRMD只考虑高斯模糊核。在[51]中,作者提出了一种零镜头超分辨率(ZSSR)方法,该方法在测试LR图像的基础上训练特定图像的DNN,并可以提取估计模糊核等退化参数来提高性能。对于内部重复结构的LR图像,ZSSR显示出令人印象深刻的效果,但对于严重模糊的LR图像,ZSSR效果较差。

如上所述,上述方法有两个主要缺点。首先,它们难以模糊内核估计。其次,它们通常是针对高斯模糊核设计的,因此不能有效地处理严重模糊的LR图像。需要注意的是,在[66]中提出了一种用于运动模糊的深度盲SISR方法。然而,它处理任意模糊内核失真的能力有限。

2.2.Plug-and-playimagerestoration

即插即用图像恢复技术在[15,57,69]首次提出,由于其在处理各种反问题时的灵活性和有效性,受到了广泛的关注。该方法利用变量分裂技术实现了能量函数的初始化,并采用任意一种现成的高斯去噪器来代替先验相关子问题(the prior associated subproblem)。与传统的基于手工图像先验的图像恢复方法不同,它可以隐式地定义即插即用先验。值得注意的是,DNN具有较强的降噪能力,能够很好地实现降噪效果。近年来,从以下几个方面开展了大量即插即用的工作:1)不同的变量分割算法,如半二次分裂(HQS)算法[1]、交替方向乘法器(ADMM)算法[8]、FISTA[4]、原对偶算法[11,42];2)不同的应用,如泊松去噪[47],去噪[26],去模糊[56],超分辨率[9,13,28,63],绘制[40];3)不同类型的去噪先验,如BM3D[14,21]、基于dnn的去噪先验[6,62]及其组合[25];4)从不动点[13,37,38]和纳什均衡[10,16,45]角度对收敛性进行理论分析。据我们所知,现有的即插即用图像恢复方法大多将高斯去噪作为先验。我们将证明,对于即插即用SISR的应用,先验并不局限于高斯去噪。相反,一个简单的超分解器先验可以用来解决一个更复杂的SISR问题。

3.Method

3.1.Newdegradationmodel

由于现有的方法广泛使用双三次下采样器来合成或增强LR图像,因此合理的假设是双三次下采样的HR图像(即,)也是一个干净的图像。根据这个假设,Eqn(3)实际上对应一个去模糊问题,然后是一个双三次退化的SISR问题。因此,我们可以充分利用现有的经过充分研究的去模糊方法来估计k。显然,这是相对于Eqn(1)给出的退化模型的显著优势。

一旦定义了退化模型,下一步就是制定能量函数。根据最大后验概率(MAP),能量函数由

3.2. Deep plug-and-play SISR

为了求解Eqn(4),我们首先采用变量分裂技术引入辅助变量z,得到如下等价约束优化公式

可以看出,Eqn.(7)和Eqn.(8)分别是关于z和x的交替极小化问题。特别地,通过假设卷积是在圆形边界条件下进行的,Eqn(7)具有快速闭形式解:

到目前为止,我们已经看到Eqn(7)和Eqn(8)给出的两个子问题相对容易求解。事实上,它们也有明确的解释。一方面,由于模糊核k只涉及到闭形式解,Eqn(7)解决了模糊的失真问题。换句话说,它使当前的估计变得不那么模糊。另一方面,Eqn(8)将不那么模糊的图像映射为更清晰的HR图像。经过多次交替迭代,最终重建的HR图像应该没有模糊和噪声。

3.3. Deep super-resolver prior

为了充分利用DNN的优点,我们需要根据Eqn(12)指定以噪声级为输入的超分解网络。受[23,64]的启发,我们只需要修改大多数现有的基于dnn的超级解析器,以一个额外的噪声水平图作为输入。或者,可以直接采用SRMD作为超级解析器,因为它的输入已经包含了噪声级映射。

在为每个尺度因子训练单独的SRResNet+模型之前,我们需要从给定的HR图像合成LR图像及其噪声水平图。根据Eqn(11)给出的退化模型,LR图像是从HR图像双三次下采样,然后被AWGN预定义的噪声水平范围σ干扰。对于相应的噪声水平图,它具有相同的空间大小的LR图片,所有的元素都是σ。在[65]之后,我们将噪声级别范围设置为[0,50]。对于HR图像,我们从DIV2K数据集[2]中选择800张训练图像。

由于这项工作主要关注具有任意模糊内核的SISR。我们省略了SRResNet+与其他方法在双三次降解方面的比较。作为一个简单的比较,SRResNet+在Set5[5]上的平均PSNR增益比SRResNet[34]高出0.15dB。

3.4. Comparison with related methods

在本节中,我们强调了所提议的DPSR方法与几个密切相关的基于dnn的方法之间的根本区别。

  1. 级联去模糊和SISR。对于具有任意模糊核的超分辨LR图像,一种启发式方法是先进行去模糊,然后对去模糊后的LR图像进行超分辨。然而,这种级联两步法的缺点是,第一步的摄动误差(the perturbation error)会在第二步放大。相反,DPSR对Eqn(4)给出的能量函数进行迭代优化。因此,DPSR趋向于提供更好的性能。
  2. Fine-tuned SISR model with more training data:也许最直接的方法是对现有的基于双三次退化的SISR模型进行微调,使用新退化模型生成的更多训练数据(即,Eqn。(3)造成所谓的盲SISR。然而,这种方法的性能会严重恶化,尤其是考虑到大的复杂模糊核时,这可能是因为模糊的失真会进一步加剧像素平均问题[34]。对于DPSR,它以blur内核作为输入,通过Eqn(9)可以有效地处理blur的失真。
  3. Extended SRMD or DPSR with end-to-end training.

受SRMD的启发[65],人们可以尝试通过考虑任意模糊内核来扩展它。但是,很难对足够多的模糊内核进行采样,以覆盖较大的内核空间。此外,训练一个可靠的模型需要大量的时间。相比之下,DPSR只需要对模型进行双三次退化的训练,训练时间大大缩短。此外,SRMD虽然可以有效地处理具有多个连续卷积层的15×15大小的简单高斯核,但对于处理较大的复杂模糊核就失去了有效性。相反,DPSR通过Eqn(9)采用了FFT更加简洁和专业的模块来消除模糊的失真。或者,可以利用DPSR的结构优势,以端到端方式联合培训DPSR。然而,我们把这留给我们未来的工作。

从上面的讨论中,我们可以得出结论,我们的DPSR原则良好,结构简单,可解释性强,并且较少涉及培训。

4.Experiments

4.1.Synthetic LR images

根据大多数图像恢复文献中常见的设置,我们使用具有真值的合成数据对所提出的DPSR进行定量分析,并与其他竞争方法进行了比较。

Blur kernel。为了全面评估提议的任意模糊内核的有效性,我们有三种广泛使用的模糊内核类型,包括高斯模糊内核、运动模糊内核和磁盘(失焦)模糊内核[12,59]。blur内核的规格如表1所示。一些内核示例如图1所示。注意,内核大小范围从5×5到35×35。如表2所示,我们进一步考虑了对于比例因子为3时的两种不同噪声水平的高斯噪声,即2.55(1%)及7.65(3%)。

参数设置。在Eqn(7)和Eqn(8)的交替迭代中,我们需要设置λ和优化来获得一个令人满意的性能。设置这些参数被认为是一项重要的任务[46]。但是,使用以下两个原则,DPSR的参数设置通常很容易。首先,由于λ是固定的,可以吸收σ,我们可以用一个标量乘以σ,因此在Eqn(8)忽略λ。

在colorbsd68数据集[39,48,62]上显示了不同降解设置的不同方法的PSNR和SSIM结果,从中我们得到了一些观察结果。首先,虽然RCAN在双三次退化方面大大优于VDSR(见[67]),但在复杂退化设置方面,它的性能可以与VDSR甚至双三次插值相媲美。这种现象在[51,65]中也有报道。其次,IRCNN经过去模糊处理后,IRCNN+RCAN可以显著提高PSNR和SSIM值。第三,DeblurGAN+RCAN和GFN导致了较差的性能,这可能是由于在处理大型复杂模糊时,连续矢量/体积/图层处理失真的能力有限。第四,由于模糊LR图像的递归性,ZSSR对大的复合模糊核的效果较差。最后,我们的DPSR直接优化给定退化的能量函数,能够有效地处理Eqn(9)的模糊失真,从而达到最佳性能。

Visual results。图2为高斯模糊超分辨LR图像的尺度因子为4的几种方法的对比图。可以看出,由于降解失配,VDSR和RCAN无疑会产生令人不快的结果。DeblurGAN+RCAN生成非常令人不愉快的伪影,与LR图像相比,并不能减轻模糊程度。GFN的性能不太好,而ZSSR对超分辨非常模糊的LR图像的效果较差。与DeblurGAN+RCAN、GFNandZSSR相比,IRCNN+RCAN产生了更好的效果,但同时也产生了一些噪声类伪影,这些伪影可能是由IRCNN引入,然后由RCAN放大。相比之下,我们的DPSR产生的视觉效果最好。

图3进一步展示了另外两种模糊内核的视觉对比。可以看出,DPSR始终能够产生最佳的视觉效果。特别是GFN虽然在一定程度上可以处理运动模糊,但其视觉效果明显不如IRCNN+RCAN和DPSR。其根本原因是,它无法盲目处理由连续卷积产生的模糊的失真。我们知道其他基于学习的方法(如[54])也存在这样的问题。

收敛性。由于我们的DPSR是SISR即插即用框架的一个特例,可以参考[10,45]来分析理论收敛性。在本文中,我们仅仅提供了一个经验证据来证明DPSR的收敛性。在图像102061上显示了所提议的DPSR的真实情况,并考虑了不同类型的模糊内核和不同的噪声水平。在图5(a)中,我们将噪声级别固定为0,并为每种内核类型选择第三个内核。在图5(b)中,我们将模糊核固定在第三个高斯核上,选择三个不同的噪声等级,分别为0、2.55和7.65。可以看出,DPSR收敛速度非常快。

值得指出的是,为了降低计算成本,我们的DPSR并不一定需要迭代求解双三次退化,因为我们采用的超分解器先验已经针对这种退化进行了端到端的训练。显然,这也是现有即插即用SISR的一个优势。对于其他降级的情况,DPSR的运行时间主要取决于迭代的总数。在单GPU上,DPSR根据不同的比例因子对大小为256x256的LR图像进行超分辨大约需要1.8秒。作为对比,ZSSR在比例因子2、3和4上分别花费了12、14和18秒。实际上,可以调整迭代的总数来平衡性能和速度。

Super-resolver prior with GAN。在上述实验中,SRResNet+采用 loss训练。提出这样一个问题是很自然的:如果对超分解器先验进行GAN损耗训练,该方法的性能是否良好?根据[58]的训练策略,我们通过L1损失、VGG loss and GAN loss的加权组合,训练出尺度因子4的SRGAN+模型。为了方便起见,我们采用了SRGAN+作为DPSRGAN的方法。在这种特殊情况下,我们将DPSRGAN与IRCNN+RCAN以及四种与gan相关的方法,包括ESRGAN[58]、IRCNN+ESRGAN和RCAN+DeblurGAN进行了比较。

图4为不同方法的可视化比较。可以看出,直接超分辨模糊的LR图像并不能提高图像质量。相比之下,IRCNN+ESRGAN可以提供更好的视觉效果,因为IRCNN在处理模糊和失真的同时,它放大了IRCNN的扰动误差,导致令人不快的视觉伪影。虽然DeblurGAN被设计用来处理运动模糊,但是RCAN+DeblurGAN并没有达到预期的效果。相比之下,我们的dpsrgan生成的视觉上最令人愉快的人力资源图像的清晰度和自然。

4.2.LR images with estimated kernel

在本节中,我们将重点研究具有估计模糊核的模糊LR图像的实验。这些实验有助于评价新退化模型的可行性、实用性和核敏感性。特别值得注意的是,我们还不知道LR图像的HR真值。

图6显示了与最先进的SISR方法(即, RCAN [67], SRMD[63]和ZSSR[51])对经典图像芯片[22]、噪声图像青蛙[33]和模糊图像颜色[43]的检测。对于芯片和颜色,模糊核由[43]估计。对于有噪声的青蛙,我们假设它没有模糊,在得到HR图像之前直接采用我们的超级分解器。注意,一旦对blur内核进行估计,我们的DPSR就可以重建具有不同尺度因子的HR图像,其中assrmd和ZSSR使用Eqn(1)需要为每个尺度因子估计一个单独的模糊核。

从图6可以看出,由于RCAN的双三次退化模型过于简化,其处理模糊和噪声的能力非常有限。SRMD和ZSSR的降解模型更一般,比RCAN在chip和frog上的降解效果更好。然而,由于图像的“颜色”是由一个大的复杂核函数模糊的,它们无法恢复潜在的HR图像。相比之下,我们的DPSR带来了最令人赏心悦目的视觉效果。因此,我们的新降解模型是一个可行的假设,而DPSR是一个有吸引力的SISR方法,因为它可以处理多种降解。

5.Conclusion

在本文中,我们提出了一种基于规则的深度即插即用超分辨率方法来处理具有任意模糊核的LR图像。首先,我们设计了一个可替代的退化模型,该模型有利于现有的用于核估计的盲去模糊方法。然后利用半二次分裂算法求解相应的能量函数,充分利用即插即用框架的优点。事实证明,我们可以很明显地处理模糊模块化的失真。这种独特的优点实际上使所提出的方法能够处理任意模糊内核。结果表明,我们可以在即插即用框架中插入超级解析器先验,而不是去噪先验。因此,我们可以充分利用现有的基于神经网络的SISR方法的优势,预先设计和训练超分解器。大量的实验结果证明了新退化模型的可行性,以及该方法对任意模糊核的超分辨问题的有效性。

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值