Towards Accurate Scene Text Recognition with Semantic Reasoning Networks
基于语义推理网络的精确场景文本识别

摘要

场景文本图像包含两个层次的内容:视觉文本和语义信息。尽管过去几年来,已有的场景文本识别方法取得了很大的进展,但是对于挖掘语义信息来辅助文本识别的研究却很少有人关注,只探索了类RNN结构的隐式语义模型信息。但是, 我们发现基于RNN的方法存在着一些明显的缺点,如解码方式依赖时间,语义上下文的单向串行传输,极大地限制了语义信息的帮助和计算效率。为了克服这些局限性,我们提出了一种新颖的基于语义推理网络(SRN)的场景文本精确识别框架,引入全局语义推理模块(GSRM),通过多路并行传输获取全局语义上下文。通过对7个公共基准点(包括常规文本、不规则文本和非拉丁文本)的最新结果,验证了所提出方法的有效性和鲁棒性。此外,SRN的速度比基于RNN的方法有明显的优势,说明了SRN在实际应用中的价值。

1.介绍

文本具有丰富的语义信息,已在许多基于计算机视觉的应用程序中使用,例如自动驾驶[43],旅行翻译器[38],产品检索等。 场景文本识别是场景文本阅读系统中的关键步骤。 尽管在过去的十年中序列到序列的识别已经取得了一些显着的突破[19,37,41],但是由于场景文本在颜色,字体,空间布局上的显着变化,甚至是无法控制的背景,真实场景的文本识别仍然是一个很大的挑战。

最近的研究大多从提取更健壮、更有效的视觉特征的角度来提高场景文本识别的性能,如对主干网进行升级[5,21,31],增加识别模块[30,31,40,44],改进注意力机制[5,37,41]。然而,事实上,对于人类来说,场景文本的识别不仅依赖于视觉感知信息,而且还受到高层次文本语义语境理解的影响。如图1所示的一些例子,当只考虑一般特征时,很难分别区分这些图像中的每个字符,尤其是用红色虚线框高亮显示的字符。相反,考虑到文本的语义信息,人类很可能会根据单词的总内容推断出正确的结果不幸的是,对于语义信息,主流文本识别方法以单向串行传输的方式来考虑它,例如[5,30,31,37,40,41,44],它递归地感知字符语义。 -最后解码时间步长的形式,如图2(a)所示。 这种方式有几个明显的缺点:首先,它只能从每个解码时间步长感知非常有限的语义上下文,甚至在第一个解码时间步长都没有有用的语义信息。 其次,当在较早的时间步上提出错误的解码时,它可能向下传递错误的语义信息并引起错误累积。 同时,串行模式难以比拟,因此总是耗时且效率低下。
针对这些缺点,本文提出了一种称为全局语义推理模块(GSRM)的子网络结构。GSRM以一种新颖的多向并行传输方式来考虑全局语义上下文。如图2(b)所示,多路并行传输可以同时感知一个单词或文本行中所有字符的语义信息,这一点更加健壮和有效。此外,错误的单字语义内容只会对其他步骤造成一定的负面影响。

此外,我们还提出了一种新的场景文本识别框架:语义推理网络(SRN),它不仅集成了全局语义推理模块(GSRM),还集成了并行视觉注意模块(PVAM)和视觉语义融合解码器(VSFD)。PVAM的目的是在并行注意机制中提取每个时间步的视觉特征,VSFD旨在开发一种视觉信息和语义信息相结合的高效解码器。SRN的有效性和鲁棒性通过大量的实验得到证实,这些实验将在第二节中讨论。

本文的主要贡献有三个方面。首先,我们提出了一个全局语义推理模块(GSRM)来考虑全局语义上下文信息,它比单向串行语义传递方法更健壮和高效。其次,提出了一种新的场景文本识别框架语义推理网络(SRN),它有效地结合了视觉上下文信息和语义上下文信息。第三,SRN可以进行端到端的训练,在常规文本、不规则文本和非拉丁语长文本等多种文本标记上实现最先进的性能。

2.相关工作

近几年来,场景文本识别的研究取得了重大进展。在本节中,我们将首先回顾了近年来的一些文本识别方法,根据是否使用语义信息,将其归纳为语义上下文无关和语义上下文感知两大类。此外,还将介绍一些流行的上下文建模结构。

语义上下文无关方法将场景文本识别视为一个纯粹的视觉分类任务,不需要显式地使用任何语义信息。CRNN[29]首先将CNN和RNN相结合,提取给定文本图像的序列视觉特征,然后直接输入到CTC解码器中,预测每个时间步的最佳字符类别,其中CTC[8]只根据视觉分类最大化所有能到达地面真实的路径的概率每个位置。为了减轻CTC损失的反向传播计算负担,Xiet al.[39]提出了聚集交叉熵(ACE)损失,以优化每个特征在时间维上的统计频率,大大提高了效率。受视觉分割成功的启发,Liao等人[22]利用FCN对每个位置的字符类别进行像素级分类,并通过启发式规则将字符集合成文本行。然而,这种方法需要昂贵的字符级注释。Jaderberg[13]没有优化每一步的解码精度,而是直接使用CNN对90K类文本图像进行分类,每一个文本图像代表一个单词。一般来说,这些方法忽略了对语义语境的考虑。

语义上下文感知方法捕捉语义信息,辅助场景文本识别。这些方法大多遵循单向的语义传递方式,如Lee等人[19]将输入的文本图像水平编码成一维序列视觉特征,然后借助最后一步的语义信息引导视觉特征进入相应的区域。如前所述,最近的一些研究集中在如何挖掘更有效的视觉特征上,尤其是对于不规则文本。为了消除透视畸变和分布曲率带来的负面影响,Shiet al.[31]在序列识别前增加了校正模块,采用了多个均匀控制点对的空间变换网络[15]。Zhanet al.[44]利用线性拟合变换和迭代求精机制来校正不规则的文本图像。此外,yang等人[40]提出了一种基于丰富局部属性的对称约束校正网络,以产生更好的校正结果。有一些方法可以通过增强空间视觉特性来减轻不规则文本识别的挑战。cheng等人[6]从四个方向提取场景文本特征,并设计了一个过滤门来控制每个方向的特征提取,Wojnaet al.[37]在2D上引入了额外的空间坐标编码,特征图可提高对序列的敏感性命令。但是这些作品并没有充分利用语义上下文信息,这正是本文所要关注的问题。

上下文建模结构是为了捕捉特定时间或空间范围内的信息而设计的。RNN善于捕捉序列数据之间的依赖关系,但其固有的序列行为阻碍了训练和推理过程中的并行计算[37]。为了解决这些问题,ByteNet[16]和ConvS2S[7]直接使用CNNs作为en编码器。这些方法在训练和推理过程中可以完全并行化以更好地利用硬件,但由于感受野大小的限制,不能灵活地捕捉全局关系。最近,有人提出了变压器的结构[24]来捕捉全局偏差,并以恒定的计算复杂度将任意位置的两个信号关联起来。此外,transformer在计算机视觉[11,36]和自然语言处理[34]的许多任务中被证明是有效的。在本文中,我们不仅采用了transformer来增强可视化编码的特征,而且使用相似的结构来获取语义内容

3. 方法

SRN是一个端到端的可训练框架,由四部分组成:主干网、并行视觉提示模块(PVAM)、全局语义推理模块(GSRM)和视觉语义融合解码器(VSFD),在给定输入图像的情况下,首先利用主干网提取二维特征。然后,使用PVAM生成对齐的一维特征,其中每个特征对应于文本中的一个字符并捕获对齐的视觉信息。然后,这些n1-D特征被输入到我们的gsrm中,以捕获语义信息。最后,将对齐的视觉特征和语义信息进行融合,以预测字符。对于短于n的文本字符串,将填充“EOS”。SRN的详细结构如图3所示

3.1 主干网络

我们使用FPN [23]将ResNet50的第3阶段,第4阶段和第5阶段的层次结构特征图聚合为骨干网络。 因此,ResNet50 + FPN的特征图大小为输入图像的1/8,通道号为512。 受非局部机制的启发[4],我们还采用了转换器单元[34],该转换器单元由位置编码,多头注意力网络和前馈模块组成,以有效地捕获全局空间相关性。 2D特征图馈入两个堆栈变压器单元,其中多头注意中的头数为8,前馈输出维度为512。 之后,提取最终的增强型2D视觉功能,表示为V,vij∈Rd,其中d = 512。

3.2 平行视觉注意模块

注意机制在序列识别中被广泛使用[5,30]。它可以看作是特征对齐的一种形式,其中输入中的相关信息与相应的输出对齐。因此,注意力机制用于生成N功能,其中每个功能对应于文本中的字符。现有的基于注意力的方法由于一些与时间有关的术语而效率低下。在这项工作中,引入了一种新的注意方法,即所谓的平行视觉注意(PVA),旨在通过消除这些障碍来提高效率。通常,注意机制可以描述为以下情况:给定键值集( ki,vi)和一个查询q,计算出查询q与所有关键码之间的相似度。然后根据相似度对值进行汇总。具体来说,在我们的工作中,键值集是输入的2D要素(vij,vij)。遵循Bahdanau注意[2],现有方法使用隐藏状态Ht-1作为查询来生成第t个特征。为了使计算并行,将阅读顺序用作查询,而不是与时间相关的术语Ht-1。文本中的第一个字符的读取顺序为0。第二个字符具有阅读顺序1,依此类推。我们的并行注意力机制可以概括为:

We,Wo,Wv是训练的权重。Ot是从列表[0,1,…,N−1]中读取字符的顺序,fo是嵌入函数。
基于PVA的思想,我们设计了并行可视化显示模块(PVAM),以对齐所有时间步的所有视觉特征。时间步长的对齐视觉特征可以表示为:
由于计算方法与时间无关,因此PVAM并行输出所有时间步长的对齐视觉特征(G,gt∈Rd)。
如图4所示,所获得的注意图能够正确地注意到对应字符的视觉区域,验证了该算法的有效性。

3.3 全局语义推理模块

在这一部分中,我们提出了全局语义推理模块(GSRM),它遵循多路并行传输的思想,以克服单向语义上下文传递的缺点。首先,我们回顾了Bahdanau注意机制(一种典型的类RNN结构)中最大化的概率公式。它可以表达为:
其中et被视为第t个标签yt的单词嵌入。 在每个时间步骤中,类似于RNN的方法都可以在训练或推理过程中引用先前的标签或预测结果。 因此它们以顺序方式工作,因为先前的信息(如et-1和Ht-1)只能在时间步长t处捕获,这限制了语义推理的能力并导致推理效率低下。

为了克服上述问题,我们的主要见解是,我们使用了与时间无关的近似嵌入e’,而不是使用实词嵌入e。 这种改进可以带来许多好处。 1)首先,可以从等式中删除最后步骤Ht-1的隐藏状态值。 因此,由于消除了所有与时间有关的术语,因此串行转发过程将高效地升级为并行进程。 2)二,全局语义信息允许包含前一个字符和后一个字符,组合在一起并推断当前时间的适当语义内容。 因此,概率表达式可以升级为:

其中e’t是第t个时间步长et的近似嵌入信息。 等式中的fr。 4表示可以在全局语义上下文和当前语义信息之间建立连接的功能。 如果我们表示st = fr(e1···et-1et + 1···eN),并且st是语义信息S的第t个特征,则等式。 4可以简化为以下式子:
在上述基础上,我们提出了GSRM,基于Eq4的建模。 为了使假设成立并且有效。 GSRM的结构由两个关键部分组成:视觉到语义嵌入块和语义推理块。

为了生成e’而使用了视觉语义嵌入块,其详细结构如图5(a)所示。 多亏了PVAM,我们获得的特征已经与每个时间步长或每个目标角色对齐了。对齐的视觉特征G首先被馈送到具有softmax激活的全连接层,而嵌入损失Le则为交叉熵损失 加以利用,使他们更关注目标。

其次,根据argmax运算和嵌入层的输出特性,计算出嵌入向量。
语义推理模块实现全局语义推理,即对等式4中的函数进行建模,特别是GSRM的结构如图5(b)所示。几个转换器单元后跟带掩码的e’,使模型可以高效地感知全局上下文信息。 同时,一阶关系和高阶关系(例如单词语义)都可以由多个转换器单元隐式建模。 最后,通过该模块输出每个步骤的语义特征,定义为S,st∈Rd,d = 512.同时,将推理损失Lr添加到s上。 目标函数可以定义为:
通过交叉熵损失从语义信息的角度优化目标概率,减少收敛时间。值得注意的是,GSRM中的全局语义推理是并行的,使得SRN比传统的基于注意的方法运行得更快,尤其是在长文本的情况下。

3.4 视觉语义融合解码器

正如我们在1中讨论的那样。在场景文本识别中,兼顾视觉特征和语义信息是非常重要的。然而,不同的领域,其权重对于最终序列的识别在不同的情况下应该是与众不同。受[1]的启发,我们引入了一些可训练权重来平衡来自不同域的特征在VSFD中的贡献。公式如下:

其中Wz是可训练的权重,ft是第t个融合特征向量,t∈[1,N]。 所有融合特征都可以表示为F,ft∈Rd,并用于以递归方式预测最终字符,目标函数如下
结合GSRM和VSFD中的所有约束函数,最终目标函数总结如下

其中Le,Lr和Lf分别代表嵌入损失,推理损失和最终解码器损失。 将αe,αr和αf的权重设置为1.0、0.15和2.0,以权衡这三个约束。

4实验

4.1 数据集

我们选择了六个拉丁语场景文本基准来评估我们的方法.ICDAR2013(IC13)[18]包含1095项测试图像。使用在[35]的协议中,我们丢弃包含非字母数字字符或少于三个字符的图像字符.ICDAR2015年(IC15)[17]是在谷歌Glasses没有仔细定位和聚焦的情况下拍摄的。我们遵循[5]的相同协议,仅使用1811张测试图像进行评估,没有出现严重失真图像.iit5K单词(IIIT5k)[26]是从网站上收集的,包含3000个测试图片。街道viewtext(SVT)[35]有647个测试图像从Google Street获取视图。很多图像被严重破坏噪音、模糊和低决议。街道视图文本透视图(SVTP)[27]也来自Google街景。本组共有639个测试图像,其中许多是透视图-弯曲切口80(CUTE)在[28]中被提出用于曲线文本识别。288个测试图像是从完整的图像中用注释文字裁剪出来的。

4.2 实施细节

模型配置第3.1节介绍了骨干网的详细信息。对于PVAM,在等式1中,We,Wo和Wv的大小为512,而fo的嵌入为512。 GSRM中的emdding也设置为512。语义推理块由4个堆叠的转换器单元组成,其中磁头数为8,隐藏单元数为512。为公平起见,与我们的SRN已在基于CTC,基于1D-attention和2D-attention的方法中采用。 1D-attention和2D-attention中的注意单位和隐藏单位的数量均设置为512。
数据扩充输入图像的大小为64×256。我们将原始图像的宽度随机调整为4个比例(例如64、128、192和256),然后将其填充为64×256。此外,一些图像处理操作[21],例如旋转,透视变形,运动模糊和高斯噪声,被随机添加到训练图像中。分类数为37,包括0-9,az和“ EOS”。并且输出序列N的最大长度被设置为25。
模型训练该模型只在两个合成数据集上训练,即Synth90K[13,14]和synthtext[9],而不需要对其他数据集进行微调。我们的初始模型是在ImageNet上预先训练的T50,批量大小为256。训练分为热身和联合训练两个阶段。在第一阶段,我们在没有GSRM的情况下训练SRN大约3个周期。采用ADAM优化器,初始学习率为1e−4。
在联合训练阶段,我们使用相同的优化器对整个管道进行端到端训练,直到收敛。 所有实验均在带有8个NVIDIA P40显卡的工作站上实施

4.3 消融实验

4.3.1 关于主干网和PVAM的探讨

我们的SRN利用主干中的转换器单元[34],并在PVAM中添加字符读取顺序信息,以捕获全局空间依赖性。 从表1可以看出,我们的带变压器单元的骨干网在所有基准上的性能都比不带它的骨干网高出至少3%,这说明了由变压器单元捕获的全局视觉环境的重要性。 如选项卡中所示。 在大多数公共数据集中获得使用字符读取顺序的收益,特别是对于CUTE。 由于没有该术语的注意力机制实际上能够通过数据驱动的培训隐式捕获阅读顺序,因此在一些简单任务上的性能会稍有提高。

4.3.2 关于GSRM的讨论

为了评估GSRM在语义推理中的有效性,我们比较了使用/不使用GSRM的实验得出的结果。 此外,还探讨了GSRM中的变压器单元数量。 如标签所示。 如表2所示,在变压器单元数量设置为1、2、4和3的情况下,GSRM在IIIT5K中连续获得1.5%,0.2%,0.8%,0.3%的收益,在IC15中获得4.2%,0.9%,0.1%,0.0%的收益。 6.这表明语义信息对于文本识别非常重要,GSRM能够利用这些信息。 由于4-GSRM的性能与6-GSRM相似,因此在其余实验中采用4-GSRM来保持可控的计算。
为了证明全局语义推理策略的优点,我们将我们的方法与两种方法进行了比较变体:仅一个向前运行,另一个向后运行,以捕获真正的单向语义信息。此外,本文还研究了两种典型的文本识别方法:基于CTC和2D注意的文本识别方法,通过比较,证明了我们的方法优于现有的语义上下文无关方法和语义上下文感知方法。如表3.所有的语义上下文感知方法都优于语义上下文无关方法(基于CTC的方法),突出了语义的重要性信息。此外,在大多数基准测试中,全局语义推理的GSRM比单向语义推理的GSRM准确率高出约1%,验证多向语义推理的有效性。

4.3.3 特征融合策略探讨

本文介绍了一种新的特征融合策略,即选通单元。3.4条。在这一部分中,我们将我们的VSFD与三种不同的特征融合方法进行了比较,包括add、concatenate和dot。标签。4表明,其他三种改进操作将在一定程度上导致基准性能的下降。因此,在我们的方法中,VSFD被用作默认值。

4.3.4 正确/失败案例分析

为了说明语义信息如何帮助SRN改善性能,我们从基准中收集了一些个案,以比较使用/不使用GSRM的SRN的预测。 如图6所示,例如,由于字符“ r”在视觉上类似于单词“ Vernon”中的字符“ c”,没有GSRM的预测错误地给出了字符“ c”,而谓词- 使用GSRM进行的翻译可以借助全局语义上下文正确地推断字符“ r”。 “ sale”中的字符“ e”,“ precious”中的字符“ r”和“ herbert”中的字符“ n”由相同的工作模式处理。

SRN的失败案例如图7所示,可分为两类:1)SRN不能插入或删除字符,只能修改错误的字符。如果可视特征排列错误或缺少某些字符,则SRN无法推断正确的字符,例如“snout”
和“shining”。2) 当视觉和语义上下文都无法识别图像时,SRN可能不起作用,因为SRN的增益主要来自于视觉特征和语义特征的互补。如图7第二行所示,当图像来自特殊字体或质量较低且其中的单词很少出现在训练数据中时,sr很难获得视觉上下文和语义依赖关系。

4.4 与最新技术的比较

我们的方法与以前的突出方法的比较如表5所示,我们只比较没有任何词汇的结果,因为在实际应用中,词汇在识别之前总是已知的。在一般情况下,上下文感知方法的性能优于上下文无关方法,并且在GSRM的帮助下,所提出的SRN在六个公共数据集上取得了优于现有方法的性能,这证明了这种特殊设计的模块比现有的技术能更好地利用语义信息。对于常规数据集,我们分别比IC13、IIIT5K和SVT提高了0.2%、0.4%、0.9%。SVT的增益比其他两组要大得多,我们认为语义信息在低质量图像的识别中会起到更重要的作用。
。。。
中间看看就好了跳了跳了

5结论

在本文中,我们认为语义信息对于一个健壮、准确的场景文本检索器是非常重要的。在给定文本行的字符(拉丁或非拉丁)的情况下,我们使用GSRM对其语义上下文进行建模,包括字符之间的一阶关系和高阶关系。结合GSRM,本文提出了一种新的面向野外文本识别的端到端可训练框架语义推理网络(SRN),该框架包括主干网、并行视觉注意模块和融合解码模块。SRNachieves-SOTA在规则文本、不规则文本和非拉丁语长文本等几乎7个公共基准测试中都得到了结果,并进行了大量的实验,证明了其明显优于现有的方法。另外,由于SRN的所有模块都是时间无关的,SRNcan并行运行,比其他语义建模方法更实用。未来,我们将致力于提高GSRM的效率,并使其适应基于toCTC的方法,以提高其在实际应用中的价值。

Towards Accurate Scene Text Recognition with Semantic Reasoning Networks相关推荐

  1. 端到端OCR算法:Towards Accurate Scene Text Recognition with Semantic Reasoning Networks(SRN)

    1.SRN网络结构 2.Backbone Network 3.Parallel Visual Attention Module(PVAM) 4.Global Semantic Reasoning Mo ...

  2. EAST: An Efficient and Accurate Scene Text Detector 论文阅读

    EAST: An Efficient and Accurate Scene Text Detector 论文阅读 Reference 正文 摘要 引言 相关工作 方法 算法 网络设计 标签生成 损失函数 ...

  3. robust scene text recognition with automatic rectification

    Shi B, Wang X, Lv P, et al. Robust Scene Text Recognition with Automatic Rectification[J]. arXiv pre ...

  4. EAST: An Efficient and Accurate Scene Text Detector

    EAST: An Efficient and Accurate Scene Text Detector EAST:高效准确的场景文本检测器 [Abstract] 先前的场景文本检测方法已经在各种基准测 ...

  5. 论文翻译-Hamming OCR A Locality Sensitive Hashing Neural Network for Scene Text Recognition

    论文翻译-Hamming OCR A Locality Sensitive Hashing Neural Network for Scene Text Recognition 原文地址:https:/ ...

  6. 《TextScanner: Reading Characters in Order for Robust Scene Text Recognition》阅读笔记

    日常阅读论文 名词解释: 注意力漂移attention drift:由于低质量(如模糊,污损和噪音等)图片和一些复杂图片(如扭曲或者重叠字符,不同字符,不用尺寸,不同颜色或者复杂的背景)的影响,模型在 ...

  7. 【翻译】EAST: An Efficient and Accurate Scene Text Detector

    EAST: An Efficient and Accurate Scene Text Detector 论文地址 概要 以前的场景文本检测方法已经在各种基准上取得了有希望的表现.然而,即使配备深层神经 ...

  8. ReadLikeHumans: Autonomous,Bidirectional and Iterative Language Modeling for Scene Text Recognition

    ABINet 阅读笔记 论文总览 Method Vision Model Language Model 自治策略 双向表示 迭代校正 融合 监督训练 半监督整体训练 Experiment Conclu ...

  9. SPIN: Structure-Preserving Inner Offset Network for Scene Text Recognition —— 论文阅读笔记

    SPIN:用于场景文本识别的保留结构的内部偏移网络 Paper : 论文地址 本文提出的方法主要解决色彩失真的图片.如下图中的(c)和(d) SPIN(Structure-Preserving Inn ...

  10. [论文翻译]Scene text recognition from two-dimensional perspective

    二维视角下场景文字识别 摘要 受到语音识别的启发,最近最先进算法认为场景文字识别是一个序列预测问题.尽管达到极好的性能,这些方法通常忽视了一个重要的事实,图像中的文本实际上分布在二维空间.这是一种与语 ...

最新文章

  1. 赢了!赢了!赢了!反抗违法裁员,小米以绩效低为由辞退员工败诉!这里单独给大家一些应对参考!...
  2. 原创 | 基于AI的智能急性颅内出血类型检测
  3. Lucene-Analyzer
  4. Android内容观察者
  5. activemq启动wrapper stopped
  6. 把玩Alpine linux(二):APK包管理器
  7. pycharm无法导入本地模块问题
  8. sublime text_Sublime Text Editor赠品报告和获胜者
  9. 【Python 10】汇率兑换3.0(while循环)
  10. prosody之component
  11. php 图形库 锯齿,PHP imageantialias - 是否使用抗锯齿(antialias)功能 - 有码中国
  12. 跨境软体家具垂直供应链平台“品划算”获银河系千万级天使轮融资
  13. linux系统python截图不显示中文_Linux系统通过python访问SQL SERVER,无法显示数据库内中文的问题...
  14. 山西省2021年高考试成绩查询,山西省2021年普通高等学校招生体育专业考试成绩查询入口...
  15. PID:智能小车入门(位置式和增量式)
  16. flex布局---flex-wrap属性,决定排列是否换行
  17. EV2400配合bqStudio的使用及电量计相关
  18. python(remove_bg)一键抠图换背景 智能抠图
  19. 使用mnist数据集实现手写字体的识别
  20. 电磁噪声论文赏析_004变频器供电对永磁电机振动噪声源的影响研究

热门文章

  1. monkey命令——压力测试——转载参考01
  2. Faster-RCNN简易复现
  3. Lotka–Volterra equation Competitive Lotka–Volterra equations
  4. 软件工程师能力自我评价表
  5. 用cheatengine实现街头霸王的无限生命
  6. Ubuntu 使用上的一些小tip
  7. 流程图绘制工具 yEd
  8. C++中带.h与不带.h的头文件
  9. 电脑安装win10系统
  10. springcloud5-服务网关zuul及gateway