-
文本是人类获取信息及社会交流的重要手段,从图像准确读取文本对人类的生产生活至关重要。现有方法通常将文本读取细分为文本检测、文本识别、端到端文本识别三个子任务。其中文本检测的目的是定位出图像中文本的位置,文本识别旨在识别出文本区域的字符序列内容,端到端文本识别的任务是同时定位出文本区域的位置并识别出对应的文本内容。文本检测、文本识别和端到端文本识别技术被广泛应用于自动驾驶、商品检索、文本翻译等领域。从场景图像中自动检测和识别文本能显著地减少人工成本、提高工作效率、促进信息智能化的发展。因此,场景文本检测和识别技术的研究具有重要的应用价值和科研价值。
-
然而,如何准确地检测和识别场景文本仍然面临如下挑战。首先,场景文本分布的密集性和尺度的多样性,导致相邻文本难以被有效区分,以及检测多尺度文本时大文本被检测不完整而小文本被漏检。其次,由于场景文本的复杂性,存在一些模糊文本和部分遮挡文本,仅依赖视觉特征很难正确识别这些困难样本此外,对于端到端文本识别模型而言,文本检测模块和文本识别模块之间存在错误累积以及训练样本不平衡的问题。这两个问题导致文本检测模块和文本识别模块难以被有效同步优化,从而抑制了模型的整体性能。最后,标注文本的困难性以及文本阅读方向的任意性阻碍了文本检测、识别性能的进一步提升。因此,针对这些挑战,本课题分别从文本检测、文本识别、端到端文本识别三方面进行研究,并取得了以下研究成果。
-
提出了中心感知和尺度感知的文本检测算法
- 场景图像中存在许多密集分布的文本,由于缺乏辨别性的位置信息,现有方法倾向于将相邻文本实例检测为一个实例。针对这个问题,本文提出了中心感知的文本检测算法,以明确学习具有辨别性的文本中心点信息。通过使用中心点作为指导来区分相邻文本的边界像素,能有效检测密集的相邻文本。然而,该方法在检测密集的多尺度文本时会出现边界不完整的问题,并且和现有的文本检测器一样倾向于将大文本检测为多个片段并漏检小文本。
- 因此,本文基于中心感知的文本检测算法进一步提出了尺度感知的半监督文本检测算法。通过设计多尺度特征提取模块和尺度感知的损失函数来提升模型检测多尺度文本的能力,并改进了中心感知的文本检测算法的文本重建过程以获得更完整的文本边界。此外,本文提出了有效的半监督文本检测算法通过利用免费的无标签数据来提升文本检测器的性能。实验结果表明,本文方法能有效检测密集文本、多尺度文本,并且不需要大量的有标签数据即可实现最优的性能。
-
提出了基于视觉和文本语义相互促进的文本识别算法
- 场景文本的背景复杂、成像比较随机,因此存在许多模糊文本和部分遮挡文本。在识别模糊文本和部分遮挡文本时,只使用视觉模型不能提取有效且足够的特征,因此会造成识别错误。尽管使用语言模型能够在一定程度上缓解这个问题,但是对于特别模糊的文本和非英文单词的文本,仅依靠语言模型进行矫正收效甚微。因此,本文提出了一个有效的视觉和文本语义相互促进的文本识别算法。通过对齐视觉特征和文本语义信息,并设计视觉和文本语义特征增强模块来增强并交互视觉特征和文本语义信息。
- 最后通过隐藏当前正在识别的字符的视觉特征来强制将文本语义信息编码到视觉特征中。最终的实验结果表明本文提出的方法能够有效地提升模型对于模糊文本和部分遮挡文本的识别能力,并在6个公开数据集上取得了领先的性能。
-
提出了基于混合注意力和样本生成的端到端文本识别算法
- 在端到端文本识别系统中,文本检测模块和文本识别模块之间存在错误累积的问题,错误的检测结果会导致错误的识别结果,而错误的识别结果也会反过来阻碍文本检测模块的优化。针对这个问题,本文提出了基于混合注意力的端到端文本识别算法,混合注意力在文本检测阶段和文本识别阶段能有效消除噪声的干扰。此外,一个新颖的混合解码器被提出来通过提升文本识别模块的性能以防止由于识别结果错误而阻碍文本检测模块的优化。这两个措施有效地缓解了文本检测模块和文本识别模块之间的错误累积的问题。
- 针对文本检测模块和文本识别模块之间的样本不平衡问题,本文进一步提出了样本生成算法来平衡文本检测模块和文本识别模块的训练样本数,并设计了文本方向感知模块来感知文本的阅读方向,从而有效地提升了模型识别任意方向文本的能力。样本生成算法和方向感知模块能有效地提升文本识别的精度,从而进一步缓解了错误累积的问题。最后,本文提出了一种新颖的字符生成算法,能够从单词级标签生成精确的字符级标签,从而为样本生成算法的工作提供保障并显著减少人工标注成本。最终,本文的方法在常用的公开数据集上取得了领先的性能。
-
尽管当前有许多方法能有效地处理文档文本图像和图形文本图像,但场景文本图像由于具有背景复杂、成像质量低、字体形状、字体大小、字体方向多样、分布密集、真实数据不足等特点,导致场景文本图像中文本检测和识别仍然存在许多挑战。本文针对文本检测、文本识别、端到端文本识别任务进行系统性研究,并提出相应的方法以解决现有方法存在的问题。
-
票据信息处理:现实生活中每天都会产生大量的票据,如银行发票、支票、飞机票、出租车票等。这些票据包含的重要信息如姓名、金额等通常需要编辑保存到电脑,人为录入如此巨量的信息是不现实的。因此,通过文本检测和识别系统来检测并识别出这些文字并自动保存到电脑,能显著地减少人工成本、提升工作效率。
-
场景理解:街景广告、宣传海报、路标、商店门牌等包含重要的文本信息,可以通过文本检测和识别系统检测并识别出场景中的文本,从而使得计算机对周围场景进行充分的理解,为顾客提供位置信息。
-
自动驾驶:自动驾驶汽车通过文本检测和识别系统对路牌、限速标语等文本进行检测和识别,从而做出相应的操作,如减速、左转或右转等,进而准确地到达目的地,这对于加速自动驾驶时代的到来具有重大的意义。
-
文本检测的目标是定位出图像中文本的位置,它是文本识别的基础。主流的场景文本检测方法通常可以分为传统的文本检测方法和基于深度学习的文本检测方法。传统的文本检测方法通常是基于手工设计的特征,需要多个复杂的步骤来实现文本检测。基于深度学习的文本检测方法使用卷积神经网络作为特征提取器,能提取更鲁棒的特征。近年来,随着深度学习的兴起,基于深度学习的文本检测方法逐渐取代了传统的文本检测方法,并取得了显著的性能提升。本节分别介绍传统的文本检测方法和基于深度学习的文本检测方法的国内外研究现状。
- 传统的文本检测方法可分为基于滑动窗口分类的方法(Sliding Window Classifcation)和基于连通组件分析的方法(Connected Component Analysis),这些方法需要手工设计特征。在深度学习兴起之前该类方法被广泛应用,并且针对不同的场景通常需要设计不同的特征。
- 与基于滑动窗口的方法不同,基于连接组件的方法更有效、更健壮,并且它们通常具有较低的误报率。最大稳定极值区域(Max-imally Stable Extremal Regions, MSER)和笔画宽度变换(Stroke Width Trans-form,SWT)是基于连接组件分析方法的两个主要的代表性方法,它们构成了许多后续文本检测工作的基础。
- 传统的文本检测方法旨在检测单个字符或组件,这些字符或组件可能容易导致丢弃模糊字符区域或产生大量错误检测,从而降低其检测性能。此外,它们需要多个复杂的步骤,这导致错误很容易传播到后续的操作。最后,这些方法在一些困难的情况下会失败,例如在非均匀光照下检测文本,以及具有多个连接字符的文本。
-
基于回归的文本检测方法一般是从通用目标检测算法拓展而来,通过回归文本边界框/边界点来定位文本实例。受 Faster RCNN的启发,提出了一种有效的水平文本检测算法 CTPN。CTPN 首先利用垂直锚点回归机制预测小的文本候选框,然后利用循环神经网络建模检测到的文本候选框之间的关系并将属于同一行的文本片段连接在一起,从而得到文本行。该方法能够处理极长的文本。
-
随后,提出了 TextBoxes 通过调整 SSD的卷积核和锚点的比例来检测具有各种宽高比的水平文本。随后,他们对该方法进一步改进得到Textboxes++,改进了默认边框的宽高比,并设计了3x5 卷积来提取特征以适应大文本。通过预测倾斜的矩形框或者四边形框,该方法能有效地检测任意方向的文本。RRPN采用旋转区域候选框,通过向FasterRCNN添加角度信息来检测任意方向文本。Shi 等人对 SSD进行改进从而提出了SegLink,通过预测文本区域、文本区域之间的连接性来检测文本。被预测为连接的文本区域被组合成一个区域从而得到文本检测结果。
-
Deepregression通过回归四边形框的顶点来检测多方向文本。在SSTD中,引入了注意力机制,使网络专注于文本区域,并消除误检,从而有效提高了文本检测的精度。在IncepText中设计了PSRoI池化以检测多方向文本。DeRPN提出使用维度分解区域候选来处理宽高比变化大的文本。由于在四边形文本的标注中,不同的文本实例可能标注的顺序不一致,这会导致模型在训练过程中发生混淆,从而抑制了模型的性能。
-
为此,刘等人提出通过检测四边形边界框的关键边缘来检测多方向文本。即使文本框的标注顺序可能不一致,但是对于同一个文本实例,它的最大X/Y 坐标和最小 X/Y 坐标都是固定的。实验证明,该方法能有效地提升文本检测模型检测任意方向文本的能力。尽管这些方法很简单,但它们不能有效地处理任意形状的文本,因为它们使用过于简单的表示来描述文本。
-
基于分割的文本检测方法主要是从流行的语义分割网络扩展而来的,它们首先对图像进行像素级预测,然后再通过一系列后处理对分割结果进行处理,从而得到文本边界框。Zhang等人首先使用全卷积网络分割字符区域和非字符区域,然后使用 MSER提取字符区域中的边框,最后使用后处理将这些字符边框组合成文本行作为最终的检测结果。Yao等人首先用全卷积网络预测文本非文本区域、字符类别、字符间的连接方向,然后使用后处理得到完整的文本区域。虽然这些方法能有效检测任意方向和任意形状文本,但是不能有效区分相邻文本。为了区分相邻文本,PixelLinkl执行文本/非文本预测以及每个像素与它的上、下、左、右、左上、右上、左下、右下这8个方向的相邻像素之间的连接关系预测。如果两个像素属于同一个文本实例,则它们的连接关系为正,否则为负。然后,应用一系列后处理来将具有连接关系的像素连接在一起。最后,将每个文本实例的最小外接矩形作为检测框。大部分基于回归的方法使用水平矩形、倾斜矩形、或者四边形来表示文本,这些方法在检测曲形文本和相邻文本时会覆盖过多的背景和相邻文本,从而导致检测错误。
-
混合方法结合了基于分割的方法和基于回归的方法来检测文本。一种能检测任意方向文本的方法 EAST。EAST 不需要预定义锚点它通过预测文本区域和文本区域的每个像素到四边形边框的上下左右四边的距离来检测多方向文本。然而,该方法在文本尺度变化大的场景下不够鲁棒。为了检测多尺度文本,Liao等人提取旋转敏感特征和旋转不变特征,并结合这些特征来检测多尺度文本。
-
随后,Xue等人设计了一个多尺度文本检测算法MSR。MSR设计了两个具有相同结构的主干网络,不同尺度的图像被分别输入到这两个主干网络来提取特征,对应的相同尺度特征图被融合之后得到多尺度特征。得到的多尺度特征用于预测文本中心区域、文本中心区域的每个像素到该实例最近的边界点的X坐标偏移和Y坐标偏移。在推理阶段,计算出每个文本实例对应的最近的轮廓点之后,使用Alpha-Shape 算法从这些轮廓点重建出文本实例的边界。最终,该方法能比较好地处理多尺度文本,但是不能有效地区分左右相邻的文本实例,因为预测的文本中心区域只在上下两边进行缩小,而左右的分割图仍会将相邻文本分割在一起。
-
混合文本检测方法具有基于分割和基于回归的方法的优点,但是后处理通常也比较复杂。此外,上述这些方法的性能都严重依赖于大量的有标签数据,而标注文本图像是耗时耗力的,这限制了文本检测方法的性能。
-
文本识别的目的是将剪裁的文本区域中的文本内容转换为计算机可编辑的字符序列。早期的文本识别方法一般是基于词库识别的方法,它们的识别结果只能限定于给定的词库之内,而无法识别词库之外的文本。这类方法主要是使用字符或者单词分类器对手工设计的特征或者卷积神经网络提取的深度特征进行分类,从而实现文本识别。由于受到词库的限制,这类方法的研究和应用变得越来越少。
-
目前主流的文本识别方法都是不依赖于词库的深度学习方法,这些方法可以识别任意字符串的文本。此外,由于文本的上下文之间存在比较强的语义相关性,因此主流的文本识别方法常常与自然语言处理中的语言模型一起使用。根据识别的对象进行分类,现有的文本识别方法可以大致分为三类:基于字符的文本识别、基于单词的文本识别、基于序列的文本识别。
-
基于字符的文本识别方法一般先定位出每个字符的位置,然后利用字符分类网络对检测到的字符进行分类,最后将分类后的字符使用启发式方法得到字符序列。基于字符的文本识别方法一般可以细分为基于滑动窗口分类的方法和基于连通组件的方法。这些方法一般先生成字符的候选区域,然后使用训练好的字符分类器对字符进行分类,最后通过特定的方法将分类后的字符进行组合,从而得到识别结果。
-
尽管基于字符的文本识别方法的流程简单直观、网络易于训练,能够识别任意长度、任意形状的文本,它们却需要昂贵的字符级标注进行训练,而且没有利用单词内不同字符间的上下文语义信息。因此,这类方法的性能不能满足应用需求。
-
基于单词的文本识别方法无需定位每一个字符的位置,直接提取整个文本的全局表达以进行文本识别。这类方法无需字符级标注,方法简单明了。另一类方法是将输入图像和词库的单词映射到嵌入空间,然后在嵌入空间搜索最近邻的特征来识别文本。
-
基于单词的文本识别方法一般只能识别词库中的文本,而不能识别词库之外的文本,并且和基于字符的文本识别方法一样,它们没有利用同一个单词中不同字符间的语义上下文信息,从而导致该类方法的性能不能满足应用需求。
-
基于序列的文本识别方法是从自然语言处理的方法中借鉴而来的。这类方法使用编码器-解码器框架将文本图像和对应的字符序列看作是序列到序列识别的问题,因而可以识别任意长度的文本。这些方法主要可以分为基于连接时序分类(Connectionist Temporal Classifcation,CTC)损失的方法和基于注意力机制的方法。基于CTC的方法的核心思想是将循环神经网络(Recurrent NeuralNetwork,RNN)的输出当作是标签序列的概率分布。为了将网络的输出和标签进行对齐,CTC首次引入了特殊字符 ‘-’,并通过映射的方式将不符合规则的预测结果或者空白标签移除,从而进行文本识别。经过不断的优化,现有的 CTC解码器的性能已经得到了显著的提升,并且在工业上得到了广泛的应用。
- 基于 CTC的文本识别算法通常先使用CNN作为编码器来提取输入图像的卷积特征,然后将卷积特征输入到 RNN 建模视觉上下文,最后采用CTC得到字符识别结果。第一个可以端到端训练的任意长度文本识别模型CRNN。CRNN将特征提取、序列建模和转录集成到一个统一框架中,其中CNN用于提取卷积特征,RNN用于进行视觉序列建模,最后使用CTC来预测每个时间步的字符概率。在训练阶段,保持图像的宽高比不变并将高度缩放到 32,从而保证输入到 RNN之前特征的高度为1。为了加速训练和推理的速度,使用CNN 提取卷积特征并建模序列关系,然后使用CTC进行识别。为了识别不规则文本,利用空间变换网络(SpatialTransformeNetwork,STN)将不规则文本图像进行矫正,从而得到水平文本图像。然后使用神经网络作为编码器提取特征,并使用BiLSTM(Bi-directionalLong Short-Term Memory)建模特征的视觉相关性,最终使用CTC进行文本识别。基于CTC的文本识别方法一般只能识别水平文本,而不能有效识别曲形文本。
- 基于注意力机制的文本识别方法一般使用CNN作为编码器提取图像的卷积特征,然后使用RNN作为解码器预测字符概率。在编码器和解码器之间使用注意力机制从编码器输出的特征中提取每一步的感兴趣区域,并结合之前的识别结果预测得到当前时间步的识别结果。使用卷积神经网络作为编码器,LSTM(Long Short-Term Memory)作为解码器来识别文本。其中,解码器使用自回归的方式串行地解码字符序列。值得注意的是,这个方法的注意力机制能感知位置信息,并且通过将坐标信息结合到卷积特征来提升了模型对于不同像素的位置感知能力。为了有效识别透视文本和曲形文本,提出了ASTER,在文本识别之前设计了一个文本矫正网络自适应地将任意形状的文本矫正为水平文本。该矫正网络是基于薄板样条插值变换实现的,不需要监督即可进行训练。输入一幅任意形状的文本图像,矫正网络首先定位出一系列的控制点,然后根据这些控制点将文本区域划分成一系列网格区域,最后使用插值算法提取每个网格内的特征,从而将任意形状的文本矫正为水平文本。该方法的识别网络是一个基于注意力的序列到序列的模型。随后,提出了FAN,首先利用注意力网络识别每个字符,然后根据注意力掩码的位置对注意力进行修正,从而提升文本识别的精度。
-
基于CTC的方法采用并行解码的方式,效率较高。CTC在预测文本的每个时间步都是独立的,但由于可以访问整个图像区域,因此容易受到无关区域的噪声干扰。基于注意力的方法每次有选择地关注注意力关注的区域,可以减少无关区域的噪声干扰,但它采用串行解码的方式,效率较低。基于transformer的文本识别方法能有效地捕获全局上下文,并且并行解码方式使得模型的效率高。然而,这些方法没有显式地利用视觉特征和语义特征交互增强,限制了文本识别模型的性能,
-
两阶段的端到端文本识别方法将文本检测和文本识别看作是两个独立的任务,这些方法一般将两个单独训练好的文本检测器和文本识别器结合起来以检测并识别文本。尽管两阶段的端到端文本识别方法流程简单,但是这些方法将文本检测器和文本识别器单独训练,而不能在同一个模型进行端到端训练,导致文本检测器和文本识别器之间不能进行特征共享和协同优化。因此,这些模型往往只能获得次优的性能,这也导致了这类方法的研究变得越来越少。
-
可端到端训练的文本识别方法:将文本检测模块和文本识别模块集成在一个模型中以同时训练文本检测模块和文本识别模块,这是场景文本端到端识别的趋势,其中文本检测模块和文本识别模块通常使用一个特征变换层进行连接。
-
由于3阶贝塞尔曲线能拟合任意形状的曲线,因此 ABCNet在文本检测阶段使用2条3阶贝塞尔曲线分别表示任意形状文本实例的上边界和下边界。预测出两条贝塞尔曲线之后,使用BezierAlign层,将两条贝塞尔曲线包围的文本区域的特征提取出来并变换为水平的特征。首先在上下两条贝塞尔曲线分别等距离取N个点,并在每一对上下点的连线等距离取M个点,从而将任意形状文本区域分割成NxM个网格。然后,使用双线性插值的方法,将每个网格内的特征提取出来,从而得到NxM的水平特征。从图中可以看出,相比于使用水平矩形和四边形进行任意形状文本检测,使用贝塞尔曲线能够更紧致地检测任意形状文本,从而减少了背景和相邻文本的干扰。此外,相比于水平采样和四边形采样,贝塞尔对齐采样能采样到更精确的文本特征,从而有利于后续的文本识别。在识别阶段,变换后的水平特征经过一个简单的基于CTC的文本识别器即可实现准确的识别。