STR 深度学习算法综述

随着深度学习在计算机视觉上的巨大成功,越来越多的场景文字检测和识别引入深度学习。本文旨在总结和分析场景文字检测与识别在深度学习时代的主要变化和重大进展,还将分析现状和未来的研究趋势。

什么是 STR

光学字符识别(Optical Character Recognition, OCR)传统上指对输入扫描文档图像进行分析处理,识别出图像中文字信息。场景文字识别(Scene Text Recognition, STR)指识别自然场景图片中的文字信息。也有人将 OCR 泛指所有图像文字检测和识别技术,包括 OCR 和 STR。

对于 STR,主要存在两种方案:

  1. 文字检测+文字识别
  2. 端到端的文字识别模型

STR 研究背景和发展现状

三个挑战

  1. 自然场景中文本的多样性与可变性
  2. 背景的复杂性和干扰
  3. 成像条件不理想

转折点
在深度学习能够像在其他领域一样在计算机视觉领域显示出其潜力之前,这些困难一直存在。随着深度学习在 AlexNet 赢得 ILSVRC2012 比赛后变得引人注目,研究人员转向用深度神经网络进行自动特征学习,并开始进行更深入的研究。

最近进展
近年来取得的进展总结如下:

  1. 融入深度学习 几乎所有最近的方法都建立在深度学习模型的基础上。最重要的是,深度学习将研究人员从反复设计和测试手工设计特征的繁重工作中解放出来,这使得大量的工作更加深入。具体而言,如 Fig.1 所示,使用深度学习本质上简化了整个流程。此外,这些算法在标准基准上比以前的算法有显著的改进。基于梯度的训练程序也有助于端到端的训练方法。

  2. 面向挑战的算法和数据集 研究人员现在转向更具体的方面和挑战。 在现实世界中遇到困难时,收集了具有独特和代表性特征的新发布的数据集。 例如,存在具有长文本,模糊文本和弯曲文本的数据集。 在这些数据集的驱动下,近年来发布的几乎所有算法都旨在解决特定挑战。 例如,提出了一些检测定向文本的方法,而另一些则针对模糊和未聚焦的场景图像。 这些想法也被组合起来以形成更多通用的方法。

  3. 辅助技术的进步
    除了专门用于主要任务的新数据集和模型之外,也有相关的辅助技术在发展。例如合成数据和引导程序。

20210416典型的场景文本检测与识别的系统流程图
Fig.1 典型的场景文本检测与识别的系统流程图。(a)和(b)是具有代表性的多步骤方法。(c)和(d)是简化的流程。在(c)中,检测器和识别器是分开的。在(d)中,检测器将裁剪后的特征图传递给识别器,从而允许端到端训练。

深度学习之前的 STR

这部分将简单回顾一下深度学习时代之前的算法,包括文字检测、文字识别和端到端

1.文本检测

(1) 连接成分分析(Connected Components Analysis,CCA)
(2) 基于滑动窗口(Sliding Window,SW)的分类

2.文本识别

(1) 基于特征的方法
(2) 将识别过程分解为一系列子问题:文本二值化、文本行分割、字符分割、单个字符识别和单词校正

3.端到端

也有人致力于集成(即我们今天所称的端到端)系统,这里不介绍了。

总得来说,深度学习时代之前的文本检测与识别方法主要是提取低层或中层手工制作的图像特征,这些特征包含了复杂且重复的预处理和后处理步骤。受限于手工特征的有限表示能力和流程的复杂性,这些方法很难处理复杂的情况,例如 ICDAR 2015 数据集中的模糊图像。

深度学习时代的 STR

近年来的研究方法主要有以下两个特点:(1)大多数方法采用基于深度学习的模型;(2)大多数研究者从不同的角度来研究问题,试图解决不同的挑战。由深度学习驱动的方法的优点是,自动特征学习可以避免我们设计和测试大量潜在的手工特征。同时,来自不同观点的研究人员正在丰富和推动社区进行更深入的工作,针对不同的目标,例如更快更简单的流程、不同长宽比的文本和合成数据。深度学习的引入彻底改变了研究人员处理任务的方式,并扩大了研究范围。

首先,我们将其分为四类系统:

  1. 文本检测,对自然图像中的文本进行检测和定位;
  2. 文本识别,将检测到的文本区域的内容转录并转换为语言符号;
  3. 端到端系统,在一个统一的流程中执行文本检测和识别;
  4. 辅助系统旨在支持文本检测和识别主要任务的方法,例如合成数据生成。

在每个类别下,我们从不同的角度回顾最近的方法。

1.文本检测

虽然场景文本检测按照类别可以归入一般的目标检测。一般的目标检测分为一阶段检测和两阶段检测,许多场景文本检测算法主要是受一般目标检测器的启发并遵循其设计。然而,场景文本的检测具有不同的特点和挑战,需要独特的方法和解决方案。因此,许多方法依赖于场景文本的特殊表示来解决这些重要的问题。

因此,场景文本检测算法的发展经历了三个主要阶段:
(1) 第一阶段,基于学习的方法都有多步流程,但这些方法仍然缓慢复杂。
(2) 第二阶段,将一般目标检测的思想和方法成功地植入到该任务中。
(3) 第三阶段,研究人员设计了基于子文本组件的特殊表示,以解决长文本和不规则文本的挑战。

1.1 利用深度学习的早期尝试

基于早期深度学习的方法将文本检测的任务分为多个步骤。他们使用卷积神经网络(CNN)预测局部片段,然后应用启发式后处理步骤将片段合并为检测路线。

在这个阶段,场景文本检测算法仍然有很长很慢的流程,尽管他们已经用基于学习的方法替换了一些手工制作的特征。设计方法是自下而上的,并基于关键组件,如单个字符和文本中心线。

1.2 受目标检测启发的方法

主要方法:
TextBoxes/TextBoxes++/EAST

后来,研究人员从快速发展的通用目标检测算法中得到启示。在此阶段,通过修改通用检测器的区域建议和边界框回归模块来设计场景文本检测算法,以直接定位文本实例。它们主要由叠加的卷积层组成,将输入图像编码成特征图。特征图上的每个空间位置对应于输入图像的一个区域。然后将特征映射输入分类器,以预测文本实例在每个空间位置的存在性和定位。这些方法大大减少了流程,使得训练更容易,推理速度更快。

这一阶段的主要贡献是简化了检测流程并提高了效率。然而,由于感受野的限制,单阶段方法在面对扭曲、定向或长文本时,其性能有限,而两阶段方法的效率有限。

1.3 基于子文本组件的方法

像素级方法:PixelLink
组件级方法:CTPN/SegLink/TextSnake
字符级表示方法:具体可看论文

文本检测与一般目标检测的主要区别在于,文本作为一个整体是同质的,具有局部性,这与一般目标检测不同。通过同质性和局部性,我们指出文本实例的任何部分仍然是文本的属性。人类不必看到整个文本实例就知道它属于某个文本。

这样的特性为文本检测方法的一个新分支奠定了基础,该分支只预测子文本组件,然后将它们组装到文本实例中。这些方法,就其性质而言,可以更好地适应上述扭曲,定向和长文本。

其中,CTPN 是在 ECCV 2016 提出的一种文字检测算法。CTPN 结合 CNN 与 LSTM 深度网络,能有效的检测出复杂场景的横向分布的文字,是目前比较好的文字检测算法。

这个阶段的方法使用神经网络来预测局部属性或片段,并使用后处理步骤来重建文本实例。与早期的多阶段方法相比,它们更多地依赖于神经网络,流程更短。

2.文本识别

输入是仅包含一个单词的裁剪的文本实例图像。

主要方法:
CRNN:CNN+RNN+CTC
首先CNN提取图像卷积特征
然后LSTM进一步提取图像卷积特征中的序列特征
最后引入CTC解决训练时字符无法对齐的问题

CNN+Seq2Seq+Attention
与经典RNN结构不同的是,Seq2Seq结构不再要求输入和输出序列有相同的时间长度!

2.1 基于CTC的方法

语音识别采用 CTC 解码模块,数据在时域上是连续的。为了将 CTC 应用于场景文本识别,将输入图像视为一系列垂直像素帧(说人话就是把输入图像按照垂直方向分为一个个小块,每个小块视为时域上的一帧。类似朗读英文,按照一个方向阅读并说出来,这样就将图像转换为语音了)。网络输出每帧预测,指示每帧的标签类型的概率分布。然后应用 CTC 规则编辑文本字符串的每帧预测。在训练过程中,损失被计算为所有可能的性能帧预测的负对数概率之和,这些性能帧预测可以通过 CTC 规则生成目标序列。因此,CTC 方法使得它只需要单词级的注释就可以进行端到端的训练,而不需要字符级的注释(也就是朗读英文中只需要知道每个单词怎么读,没必要具体到每个字母)。CTC 在 OCR 领域的首次应用可以追溯到 2008 年 Graves等人的手写识别系统。目前该技术已广泛应用于场景文本识别。

第一次尝试可以称为卷积递归神经网络(CRNN)。这些模型是将 RNN 叠加在 CNN 上,利用 CTC 进行训练和推断。DTRN是第一个 CRNN 模型。它将 CNN 模型滑动到输入图像上,生成卷积的特征切片,然后将其输入 RNN。

2.2 基于编解码器(Seq2Seq)方法
用于序列到序列学习的编码器-解码器框架最初在 Seq2Seq 中针对机器翻译提出。编码器 RNN 读取输入序列并将其最终潜在状态传递给解码器 RNN,解码器 RNN 以自回归的方式生成输出。编码器-解码器框架的主要优点是可以提供可变长度的输出,满足场景文本识别的任务设置。编码器-解码器框架通常与注意力机制(Attention Mechanism)相结合,后者共同学习对齐输入序列和输出序列。

基于 CTC 和 编解码器方法的优缺点
CTC 和编解码框架都简化了识别流程,使得只使用单词级注释而不是字符级注释来训练场景文本识别器成为可能。与 CTC 相比,编解码框架的解码模块是一个隐式的语言模型,因此可以包含更多的语言先验知识。出于同样的原因,编解码器框架需要更大的训练数据集和更大的词汇量。否则,当阅读训练过程中看不见的单词时,模型可能退化。相反,CTC 对语言模型的依赖性较小,并且具有更好的字符-像素对齐。因此,在汉字和日语等字符集较大的语言上,它可能会更好。这两种方法的主要缺点是假设文本是直的,因此不能适应不规则文本。

2.3 不规则文本识别的自适应
尽管已经提出了许多优雅而简洁的解决方案,但它们仅基于一个相对较小的数据集(CUTE80)进行评估和比较,CUTE80 只包含 288 个单词的样本。此外,这些工作中使用的训练数据集只包含很少比例的不规则文本样本。对更大的数据集和更合适的训练数据集的评估可以帮助我们更好地理解这些方法。

3.端到端系统

20210422端到端系统
Fig.2 (a)两步式流程,(b)两段式流程,(c)一段式流程

在过去,文本检测和识别通常被看作是两个独立的子问题,最近,许多端到端的文本检测和识别系统被提出。

两步式流程
将检测词(早期是单个字符,近期是单词或者行)的图像从整个图像中裁剪出来,然后输入给识别网络。检测和识别是两个独立的步骤。两步方法的一个主要缺点是检测和识别模型之间的误差传播会导致性能不佳。

两段式流程
将检测词的特征图提取出来,然后输入给识别网络。

一段式流程

Xing等人并行预测字符和文本边界框以及字符类型分割图。然后使用文本边界框对字符框进行分组,形成最终的单词转录结果。这是第一个一段式方法

4.辅助系统

合成数据

弱监督和半监督

数据集和评估方法

数据集
20210422STR数据集
Fig.3 数据集

评估方法
详情看Reference给出的原论文

挑战和未来趋势

更大更好的数据集
语言多且复杂
模型的鲁棒性
模型泛化能力
评估指标
效率

Reference

Scene Text Detection and Recognition: The Deep Learning Era

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020-2022 Eureka Tesla
  • Visitors: | Views:

请我喝杯咖啡吧~