Rethinking Text Segmentation: A Novel Dataset and A Text-Specific Refinement Approach

Rethinking Text Segmentation: A Novel Dataset and A Text-Specific Refinement Approach
重新思考文本分割:一种新的数据集和文本细化方法
代码地址:https://github.com/SHI-Labs/Rethinking-Text-Segmentation

作者模型测试结果:
在这里插入图片描述
自己训练模型测试结果:
在这里插入图片描述

摘要
文本分割是大多数文本相关任务中的先决条件,例如:文本风格迁移、场景文本擦除。然而,由于缺乏高质量的数据集和专门的研究,这一关键的先决条件在许多工作中被作为一个假设,并在很大程度上被目前的研究所忽视。为了弥补这一差距,作者提出TextSeg数据集,这是一个大型的像素级的文本数据集,具有六种类型的注释:单词和字符级别候选框,masks和transcripts。文中还介绍了文本细化网络(TexRNet:Text refine Network),这是一种新的文本分割方法,可以适应文本的非凸边界(non-convex boundary)、多样化纹理等独特特征,而这些特征往往会给传统的分割模型带来负担。在作者的TexRNet中,作者提出了针对文本的网络设计来解决这类挑战,包含关键特征池化和基于注意力的相似度检查。作者还引入了trimap和鉴别器损失,显示了文本分割的显著性能。在作者的TextSeg数据集和其他现有的数据集上进行了广泛的实验。作者发现,与其他的先进分割方法相比,TexRNet持续提高了近2%的文本分割性能。数据集和代码见: https://github.com/SHI-Labs/Rethinking-Text-Segmentation
在这里插入图片描述
TextSeg数据集的示例图像和注释,从左到右分别是图像、单词和字符级边界框、像素级单词(深灰色)和字效果(浅灰色)masks,以及像素级字符masks。

介绍
文本分割是许多与文本相关的计算机视觉任务的基础。它作为计算机视觉的主要研究方向之一已经被研究了几十年了,并在许多应用中发挥着重要作用【引用论文 2,55,56,47,9】。与此同时,近年来深度神经网络技术的快速发展,为文本相关的各种研究提供了新的课题,也对文本提出了新的视觉挑战。智能应用程序,例如:字体风格转换、场景文本删除、交互式文本图像编辑,需要有效的文本分割方法来准确解析复杂场景中的文本。毫无疑问,文本分割对于工业应用是至关重要的,因为它可以将传统的文本处理工具升级为更加智能和自动化的工具,轻松地手动指定文本区域。
然而,目前文本分割在数据集和方法上都落后了。最后一次的公共文本分割挑战是在2013-2015年,由ICDAR【引用论文26】。之后引入了Total-Text【引用论文10】、COCO_TS【引用论文5】、MLT_S【引用论文6】三个数据集。但是Total-Text数据集数量有限,而COCO_TS和MLT_S数据集还需要进一步提高【如图5】。此外这三个数据集都只包含常见的场景文本,不利于其他视觉条件下的文本,例如艺术设计和文本效果。结果是这些数据集不符合现在研究标准,如大规模的像素级注释。因此,作者提出了一个新的文本分割数据集:TextSeg,它从更广泛的来源中收集图像,包括场景和设计文本,并具有更加丰富的精确注释集。该数据集将进一步促进文本分割研究。
在这里插入图片描述
此外,文本分割的算法和方法近几年落后于其他研究课题,部分原因是缺乏合适的数据集。与其他分割研究的快速进展不同,只有少数研究【引用论文46,6,14】带来了新的文本分割思想。同时,这些研究并没有提供与现代SOTA分割方法的直观比较,也无法证明其相对于其他技术的优势。如上所述,有效的文本分割模型在应用中很有价值。主语弥补这一差距的强烈动机,作者提出了文本细化网络(TexRNet),并在五个文本分割数据集上全面测试了它的性能。作者的设计原则和网络结构的细节在第三节给出,实验和消融实验在第五节中显示。
总结,这篇论文的主要贡献体现在三个方面:
1、作者引入了一个新的大型像素级的文本分割数据集TextSeg,它由4024张文本图像组成,包括具有各种艺术效果的场景文本和设计文本。TextSeg对每个图像都有六种类型的注释,即单词级和字符级边界框、像素级mask和transcriptions,TextSeg在以下方面超过了以前的数据集:1)来源更加广泛,更多样化的文本字体/风格;2)更全面的注释;3)更准确的分割掩码。
2、作者提出一种新的文本分割方法,Text Refinement Network(TexRNet)旨在解决文本分割所带来的的独特挑战。作者设计了有效的网络模块(eg:关键特征池化和基于注意力机制的相似度检查)和损失(例如trimap损失和字形判别器)来应对这些挑战,例如多样化的纹理和任意尺度/形状。
3、详细的实验证明了论文提出的TexRNet的有效性,在TextSeg和其他四个代表性数据集上的性能优于SOTA、此外,作者给出了从文本分割显著受益的下游应用的前景

2、相关工作
2.1当前对于分割的研究
语义和实例分割是现代研究的热点。在语义分割中,像素被划分为一组固定的标签。在这个任务中经常使用数据集PASCAL VOC【引用论文15】、Cityscapes【引用论文12】、COCO【引用论文34】和ADE20K【引用论文61】。传统的图形模型有MRF【引用论文31】和CRF【引用论文29】通过探索像素间关系预测分割。在CNN成为流形的框架之后【引用论文28】,使用dilated convolution【引用论文60,7,8,50】、编码器-解码器结构【引用论文44,60,8,33】和注意力模块【引用论文51,48,16】。实例分割方法预测预测每个对象实例的不同像素标签。这些方法大致可以分为自顶向下方法【引用论文20,32,21,35,53,27】和自底向上方法【引用论文4,17,37,54,40】。自顶向下的方向是两阶段方法,首先定位对象边界框,然后在这个框中分割对象mask。自底向上方法定位关键点【引用论文57,40】,找到边缘和亲缘关系(affinities)【引用论文17,37,54,4】,以辅助分割过程。

2.2文本分割
早期的方法经常使用阈值【引用论文41,45】进行分割,特别是对文档文本图像。但对于颜色和纹理复杂的场景文本图像,该方法不能得到满意的结果。其他方法使用低级特征【引用论文36,52,3】和马尔科夫随机场(MRF)【引用论文38】对bipartite(两部分)场景文本图像进行处理。在【引用论文36】中,由边缘密度/方向生成文本特征被输入到多尺度的基于边缘的提取算法中进行分割。在【引用论文52】中,提出了一种两阶段方法,即利用第一阶段的前景颜色分布来细化第二阶段的结果。在【引用论文3】中,从低级特征中提取文本和背景的种子点(seed points),然后用于分割。受到MRF【引用论文38】启发,在一个图模型中将像素表示为随机变量,然后用两个预先选定的种子对这个模型进行图切割。近几年,针对文本分割提出了几种深度学习方法【引用论文46,14,6】。【引用论文46】提出的方法是基于CNN的三阶段模型,在这三阶段中分别对候选文本区域进行检测、优化和筛选。另一种方法是SMANet与数据集MLT_S在【引用论文6】中提出的,它们采用PSPNet【引用论文60】的编码器-解码器结构,创建了一个新的多尺度注意模块,用于准确的文本分割。
2.3文本数据集
Spotlight数据集激励研究人员发明有效方法来解决计算机视觉问题。例如手写体数字【引用论文30】的MNIST数据集为例,验证了KNN【引用论文1】,PAC【引用论文42】,SVM【引用论文13】等等。近几年,深度学习的巨大成功激励了研究人员创建更具挑战性的数据集,推动视觉研究的前沿。许多文本数据集是为了OCR目的而创建的,如CUTE80【引用论文43】,MSRA-TD500【引用论文58】,ICDARs【引用论文25,26,39】,COCO-Text【引用论文49】和Total-Text【引用论文10】,这些都是带有字符集边界框的场景文本数据集。其他数据集例如Synth90K【引用论文24】和Synth-Text【引用论文19】是用于识别和检测的合成文本数据集。在这些数据集中,ICDAR13【引用论文26】和Total-Text【引用论文10】提供用于文本分割的像素级标签。最近,Bonechi等人将分割标签引入COCO-Text和ICDAR17 MLT,形成了两个新的文本分割数据集COCO_TS【引用论文5】和MLT_S【引用论文6】。一般来说,ICDAR13和Total-Text是相对较小的集合,COCO_TS和MLT_S是规模较大的集合,但它们的标签质量并不精确。
在这里插入图片描述
这就是TextSeg数据集,主要由这四大部分组成。左边四列是现有文本分割中常出现的场景文本。其余的列是设计文本,有或没有文本效果,这将TextSeg与所有其他相关数据集区分开来。

3、文本优化网络(Text Refinement Network)
作者提出一种针对文本分割的新方法,即文本优化网络(TexRNet)。由于文本分割在本质上与现在语义分割相似,可以利用相关的最先进的方法为作者提出的TexRNet提供基础。图3概述了TexRNet的流程图,它由两个组件组成:1)主干网络,2)为文本区域优化主干的关键特征池化和注意力模块。后一个模块的设计灵感来自于文本分割的独特性,其原理将在3.1节中讨论。网络结构及相应的损失函数将分别在3.2节和3.3节中详细介绍。
在这里插入图片描述
3.1设计原则
文本分割与目前语义分割之间存在着诸多独特的挑战,因此激发了文本分割的具体设计。在语义分割中,树木、天空、汽车等常见物体倾向于在不同场景中共享纹理。然而,在文本分割中,文本纹理在不同的场景中可能非常不同。为了适应更大的纹理多样性,TexRNet根据低置信度区域与高置信度区域的局部相似性,即图3中的黄色块,动态激活低置信度区域,目的是为了放松模型“记忆”不同纹理的同时,自适应的发现同一场景中相似的纹理。
文本分割的另一个挑战是任意缩放的文本。在语义分割中常用的卷积层会限制接受域,降低对不同尺度和宽高比的自适应能力。为了达到更高的规模适应性,作者采用流形的non-local concept概念【引用论文51,48】。作者使用点积和softmax来加强对整个图像相似纹理的关注。

3.2网络结构
如上所述,主干可以使用任意的语义分割网络。这里,作者选择了Res101-DeeplabV3+【引用论文8】和HRNetV2-W48【引用论文50】这两个具有代表性的作品,因为它们分别是语义分割领域的里程碑和最先进的作品。本节的其余部分将重点介绍TexRNet的新设计,即图3中的黄色块,它是提高文本分割性能的关键。
假设输入图像大小X∈RHW3,这里H和W分别代表图像的高和宽。从主干中提取的特征图为Xf。TexRNet的其余部分在以下三个部分顺序描述:
最初的预测
与大多数传统的分割模型类似,特征图Xf是通过带有偏置的卷积层(卷积核大小是11)映射到语义特征Xsem。在softmax层之后,Xsem称为初始分割预测X’sem,可以通过真值标签进行监督,如下图所示:
在这里插入图片描述
这里的X’sem = Softmax(Xsem),Xgt是真值标签。
关键特征池化:
由于文本没有一个标准的纹理,可以在训练时学习,网络必须在推理(inference)时确定文本纹理。具体来说,如果同一类的低置信度区域与高置信度区域具有相似的纹理,则网络应该对低置信度区域进行修正。为了实现这一目标,作者需要汇集每个类i∈C的高置信度区域的关键特征向量,来总结该类的全局视觉属性。在作者的例子中,|C|=2,对应于文本和背景。更具体地说,作者对初始预测X’sem进行修改的余弦相似性,将X’sem转换为X’sem并使用其输出作为新的偏差,X’sem是关键特征池化的权重映射。这里面的余弦相似性如公式2,假设X’sem∈Rc
n,这里面的c = |C|表示类别的数量,n是单个通道的像素数。
在这里插入图片描述
这里的CosSim()表示修改后的余弦相似性函数。其中X’sem(i,)表示X’sem的第i个通道,即类别i的预测得分图。从作者的实验研究来看,余弦相似性Xij表明了对类别i和类别j之间预测的模糊性。例如,当Xij接近于1时,说明像素在X’sem(i)和X’sem(j)中同样被激活,因此不能被信任。因此,作者在第i类上使用零偏差,并对i≠j使用与Xij成比例的偏差,以降低i类的置信度分数。这些区域在第i类中仍然保持高激活状态,因此对关键池化层有足够的的自信度。最终关键池化是特征映射Xf和权重映射X^’sem归一化权重之和:
在这里插入图片描述
这里的Xf∈Rmn表示特征图有m个channels,每个channel有n个像素断,Vi∈Rm1表示类别i的池化向量,V∈Rm*c是来自Vi的连接矩阵。
基于注意力的相似度检查:
作者采用注意力层,以V作为key,Xf作为query,通过点积(dot-product)计算query-key相似度Xatt,然后进行softmax:
在这里插入图片描述
Xatt会激活那些由于初始预测X’sem的低置信度,而可能被忽略的文本区域。然后通过几个额外的卷积层(图3中橙色块)将Xatt和输入图像X与主干特征Xf融合到作者的细化结果Xrfn中。注意,作者的注意力层与传统的query-key-value注意力【引用论文48】有几处不同。传统注意力要求query和key矩阵维度相同,而作者的方法使用的key V明显小于query Xf。同时,传统的注意力通过点积来融合value和Attention,而作者的注意力则通过深度模型来融合Xatt和其他特征。最终的Xrfn输出是通过真值来监督训练的:
在这里插入图片描述
3.3 Trimap Loss和Glaph Discriminator
由于人类的视觉对文本边界很敏感,沿着文本边界的分割精度是至关重要的。此外,文本通常在前景和背景之间有一个相对高的对比度,以使其更具可读性。因此,采用以边界为中心的损失函数将进一步提高文本分割的精度。受到【引用论文23】的启发,作者提出的trimap损失如下:
在这里插入图片描述
这里面Wtri是二值图,其中文本边界值为1,其他地方值为0,WCE()是x和y之间的交叉熵,由spatial map W 加权。
文本的另一个独特属性是它的可读性,也就是说,字符的分割应该在感知上是可识别的。考虑到字符部分分割会降低其可读性,作者训练字符识别器来提高文本段的可读性。值的注意的是,字符判别器还提高了评价得分(evaluation score),如评价中所示。更具体地说,作者预先训练一个分类器来识别给定训练集中的真值字符边界框(TextSeg数据集中提供了这些注释)。在作者的例子中,一共有37个类,即26个字母,10个数字和其他的一些类别(符号)。在TexRNet的训练过程中,将预先训练好的分类器冻结并应用到初始预测的X’sem中,作为字符鉴别器。如图3所示,根据字符位置将X’sem裁剪成patches,然后送到判别器中,得到判别损失函数Ldis,这展示了这些patches是否被识别、如何被识别。
和Ltri作用于Xrfn不同,字符判别器应用到初始预测X’sem中主要有两个原因:1)Ltri关注的是文本的边界精度,而Ldis关注的是文本的主体结构,如果他们应用在同一个预测图上,则会“分散”彼此。作者的实验研究还表明,如果它们在相同的输出上合作,Ltri和Ldis的提升将会降低,这与作者的分析一致。2)Ltri可以直接影响性能,因此它监督模型的最终输出Xrfn,而Ldis加强文本的深度预测,因此他可以放置在更早的layers中。因此,TexRNet的最终损失函数是:
在这里插入图片描述
这里面的α、β、γ是0到1之间的超参数,在实验里,作者将α=0.5,β=0.5,γ=0.1。作者选择这些损失权重的方式是两个分支上的权重之和大致平衡(即0.5+0.5≈1+0.1)。

4.一个新的数据集TextSeg
鉴于现实世界中的文本极为多样化,为了将文本分割与现实世界联系起来,适应文本视觉研究的快速发展,作者提出了一个新的数据集TextSeg,它是一个专注于但不限于分割的多用途文本数据集。
4.1图像收集
TextSeg中的4024张图片来自海报、贺卡、封面、标识、路标、广告牌、数字设计、手写等。不同的图像来源大致可以分为两种文本类型:1)场景文本,如路牌、广告牌;2)设计文本,如海报设计中的艺术文本。图2显示了两种类型的示例。现有的文本相关数据集倾向于关注场景文本,而TextSeg平衡了两种文本类型,以实现更真实和多样化的数据集。此外,拟议的TextSeg并没有专注于文本行,而是包含了大量时髦的文本。TextSeg共享了这些有代表性的文本分割数据集的语言设置主要关注英文(及区分大小写的字母、数字、标点符号)。
4.2注释
和现有的数据集相比,TextSeg提供了更全面的注释。更具体地说,TextSeg为每个单词和字符标注了最小的四边形、像素级掩码和transcription。TextSeg标注了阴影、3D、光晕等文本效果,将文本与传统对象区分开来,对文本分割有很大影响。据作者所知,拟议的TextSeg是目前唯一具有如此全面的文本分割注释的数据集。
最小四边形被注释为紧密结合的单词、字符、标点符号。这些四边形记录在图像坐标中(即左上角为原点,x轴水平向右,y轴垂直向下),四个定点按照自然读取方向从左上角开始顺时针顺序排列。最小的四边形将单词或字符紧密地连接在一起,如图1所示。在某些情况下,比如模糊的文本或长笔画,四边形会忽略模糊的边界或装饰性笔划,覆盖文本的核心区域。
像素级掩码包括字掩码,字符掩码,字效果掩码。字掩码是字效果掩码的子集,因为字掩码在没有阴影和装饰灯效果的情况下标注了字变卖,而字效果掩码同时覆盖了字和效果。与字掩码类似,字符掩码为没有这些效果的字符表面贴上标签。借用现代分割的概念,字分割掩码允许语义分割,字符掩码允许实例分割。对于字符掩码来说,最具挑战的是手写字和艺术字体风格,因为字符之间没有明确的界限。因此,标准是使得所有掩码在感知上是可以识别的。
在这里插入图片描述
COCO_TS中的14,690张图像是COCO-Text中总共53,686张图像中的一个子集。同样,MLT_S中的6,898张图像是ICDAR17 MLT中10,000张图像中的一个子集。因此,它们的词边界多边形可以直接从它们的父数据集中提取。

4.3统计数据分析
表1列出了TextSeg与四组有代表性的文本分割数据集ICDAR13 FST【引用论文26】,MLT_S【引用论文6】,COCO_TS【引用论文5】和Total-Text【引用论文10】。一般来说,TextSeg有更多多样化的文本类型和所有类型的注释。另一个提供字符级注释的数据集是ICDAR13 FST,但是它的数据量远小于其他数据集,仅有462张。COCO_TS和MLT_S比较大,但是缺少字符级的注释,主要集中在场景文本上。Total-Text数据集范围和其他数据集相似。
TextSeg数据集中的4024张图像被分为训练集、验证集和测试集,分别有2646张、340张、1038张。在TextSeg及其所有分割中,场景文本和设计文本的数量比例大致为1∶1。图4a统计了不同单词和字符数量的图片数量,其中以每张图片12-16个字符,2-4个字为多数。图4b显示了文本覆盖率的分布,其中蓝色的线是字掩码,橙色的线是字效果掩码。从蓝色向右移动到橙色表示由于单词效应的覆盖增量。最后图c显示了TextSeg中的字符频率,大致与英语语料库中的字符频率一致。
在这里插入图片描述
4.4定性比较
图5显示了以上提出的5个数据集之间的定性比较。ICDAR13 FST有许多box-shape掩码(被认为是被忽略的字符),这在TextSeg中并不常见。其他的数据集仅有字级别掩码。注意COCO_TS和MLT_S引入了大量被忽略的区域,特别是沿着文本边界的,这将阻碍模型精准预测文本边界。这些忽略边界的标注是由于使用监督模型自动标注引起的。与TextSeg类似,Total-Text是手动标注的,但是它的尺寸比TextSeg小得多,而且缺少字符和文本效果的注释。

5实验评估
为了证明论文提出的TexRNet的有效性,将在这几个数据集中用最先进的方法进行较。

5.1实验设置
比较中的每个模型将在前面提到的每个文本分割数据集上重新训练。通过ImageNet预训练初始化模型,然后使用权值衰减为0.0005的SGD在4个GPU上并行训练,迭代次数为20500次。前500次迭代采用linear warm-ups【引用论文18】,其余迭代使用从0.01【引用论文8】开始的poly decayed learning rates。需要注意的是,ICDAR13 FST由于数据量较小,如表1所示,对其进行了5500次迭代。对于TextSeg,作者的模型使用字掩码作为前景拿来训练和评估,而不是使用字效果掩码。对于数据扩充,作者将输入图像的短边随机缩放从513到1025,并在训练中随机裁剪513*513patch作为输入。TexRNet中的字形鉴别器采用ResNet50分类器【引用论文22】,该分类器在TextSeg训练集和验证集的字符patches上进行训练。在TextSeg测试集上,分类准确率达到93.38%。由于只有TextSeg和ICDAR13 FST提供字符级别边界框,字形判别器只应用于这两个数据集,而在其他三个数据集上禁用。
作者使用标准的513短边图像从0.75X到2.5X的8个尺寸的多尺度无翻转集合来评估作者的模型。为了配合现代分割任务,作者使用前景fgIoU作为主要指标。此外,已与【引用论文11,26】相同的方式提供对前景像素的典型F-score度量。前景表示预测和真值的文本区域。

5.2模型性能
这节将TexRNet与其他文本的语义分割方法进行比较。为了证明TexRNet的有效性,作者在包括TextSeg的五个数据集上进行了比较。如之前所述,作者采用DeeplabV3+【引用论文8】和HRNetV2-W48【引用论文50】作为作者的backbone和baseline。作者还比较了最先进的语义分割模型:HRNetV2-W48+对象上下文表示(OCR)【引用论文59】。PSPNet和SMANet结果来自于【引用论文5,6】,其中他们的模型在ICDAR13 FST和SynthText【引用论文19】增强的Total-Text上训练。表2显示了总体结果。如表所示,作者提出的TexRNet方法在所有的数据集上都优于其他方法。
在这里插入图片描述
5.3消融实验
这节对key pooling和attention、trimap loss和(glyph discriminator)字形判别器进行消融实验。本实验以DeeplabV3+作为backbone,在TextSeg上对模型进行训练和评估。从TexRNet的基础版本开始,增加key pooling和注意力(Att),trimap loss(Ltri),字形判别器(Ldis),如表3所示,其中报告了fgIou和F-score,呈现出持续增加的趋势。最终的final TexRNet达到了最好的效果,与DeeplabV3+相比,fgIoU大约增加了2%。
在这里插入图片描述
一个有趣的观察是,TexRNet(final)和TexRNet(base)的参数数量完全相同,但他们之间的部分贡献达到了最高的性能。为了进一步研究性能的提高是否来自于参数的增加,作者将TexRNet与HRNetV2-W48+OCR等模型进行了对比,如图6所示。作者发现,与HRNetV2-W48+OCR相比,TexRNet在参数更少的情况下实现了更高的精度,展现了TexRNet的有效性。

5.4下游应用程序
这节给出TexRNet和TextSeg数据集的前景,特别是在引领下游应用方面。
文本擦除是图片和视频编辑中的一个实际问题,也是一个具有较高工业要求的应用。例如,媒体服务提供商家经常需要从他们的视频中删除品牌,以避免法律问题。由于该任务是一个背景填充的问题,因此采用Deep Image Prior【引用论文47】,并提供不同类型的文本掩码来比较文本删除的性能。通常,字或字符边界框是标准的文本掩码,因为它们很容易从现有的文本检测方法中获得。相比之下,TexRNet提供了精确的文本掩码。图7比较了使用者三种文本掩码(即character bounding polygon,word bounding polygon,text segmentation mask)的结果。显然更好的mask会带来更好的效果。
在这里插入图片描述
文本风格转换在工业应用和研究上是另一种流行的任务,大多数情况下,文本风格转换依赖于精准的文本掩码。在这个实验中,作者使用Shape-Matching GAN【引用论文56】来作为下游方法,他需要文本mask作为输入。在他们的论文中,所有的演示图像都是使用真值文本mask生成的,这在现实世界的应用中可能是不切实际的。因此作者使用Shape-Matching GAN来实现任意文本图像上的场景文本风格转换。图8显示了一些示例,在补充部分里面可以找到更多示例。
在这里插入图片描述

6、总结
作者介绍了一种新的文本分割数据集TextSeg,它由4024个场景文本和设计文本的综合注释,包括字和字符级别边界框,掩码和transcriptions。作者也提出了一种新的有效的文本分割方法TexRNet,作者证明了自己的模型在五个数据集上优于其他先进的语义分割模型。为了支持作者的观点,即文本分割在行业中有巨大的潜力,作者引入了两个下游应用,即文本删除和文本风格转换,以展示使用TexRNet的文本分割掩码有一个好的结果。总之,文本分割是一项重要的任务。作者希望自己的新数据集和方法将成为未来文本分割研究的基石。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一蓑烟雨渡平生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值