【读点论文】Scene Text Detection and Recognition: The Deep Learning Era
Scene Text Detection and Recognition: The Deep Learning Era
Abstract
- 随着深度学习的兴起和发展,计算机视觉发生了巨大的变革和重塑。场景文本检测与识别作为计算机视觉领域的一个重要研究领域,不可避免地受到了这波革命的影响,从而进入了深度学习时代。近年来,该社区在思维方式、方法论和性能方面取得了长足的进步。本综述旨在总结和分析深度学习时代场景文本检测与识别的重大变化和重大进展。通过这篇文章,我们致力于:(1)介绍新的见解和想法;(2)突出最近的技术和基准;(3)展望未来趋势。 具体来说,我们将强调深度学习带来的巨大差异和仍然存在的巨大挑战。我们希望这篇评论文章能成为该领域研究人员的参考书。相关资源也收集在我们的 Github 存储库中 GitHub - Jyouhou/SceneTextPapers: Tracking the latest progress in Scene Text Detection and Recognition: Must-read papers well organized
Introduction
-
毫无疑问,文字是人类最辉煌、最具影响力的创造之一。文字作为人类语言的书面形式,使得人们能够跨越时间和空间可靠、有效地传播或获取信息。从这个意义上说,文字构成了人类文明的基石。
-
一方面,文本作为重要的沟通与协作工具,在现代社会中发挥着越来越重要的作用;另一方面,文本所蕴含的丰富而精准的高级语义对理解我们周围的世界大有裨益。例如,文本信息可以广泛应用于图像搜索 、即时翻译 、机器人导航 和工业自动化 等众多现实世界应用中。因此,如图 1 所示,从自然环境中自动读取文本,又称场景文本检测和识别 或 PhotoOCR ,已成为计算机视觉领域中越来越受欢迎且重要的研究课题。
-
图 1:场景文本检测与识别示意图。图像样本来自 TotalText 。
-
然而,尽管经过多年的研究,在自然环境下检测和识别文本仍可能面临一系列重大挑战。这些困难主要来自三个方面:
- 自然场景中文本的多样性和多变性:与文档中的脚本不同,自然场景中的文本表现出更高的多样性和多变性。例如,场景文本的实例可以采用不同的语言、颜色、字体、大小、方向和形状。此外,场景文本的纵横比和布局可能会有很大差异。所有这些变化都对针对自然场景中的文本设计的检测和识别算法提出了挑战。
- 背景的复杂性与干扰自然场景的背景几乎是不可预测的,可能存在与文本极其相似的图案(例如树叶、交通标志、砖块、窗户、栅栏等),也可能存在外来物体的遮挡,这些都可能造成混淆和错误。
- 成像条件不佳:在不受控制的情况下,文本图像和视频的质量无法得到保证。即在成像条件较差的情况下,文本实例可能由于拍摄距离或角度不合适而导致分辨率低且严重失真,或因失焦或抖动而模糊,或因光线不足而产生噪点,或因高光或阴影而损坏。
-
这些困难在深度学习在计算机视觉以及其他领域展现其潜力之前一直存在。随着 AlexNet 赢得 ILSVRC2012 比赛后深度学习开始受到关注,研究人员转向深度神经网络进行自动特征学习,并开始进行更深入的研究。 社区现在正在研究越来越具有挑战性的目标。近年来取得的进展可以总结如下:
-
深度学习的结合几乎所有最近的方法都是建立在深度学习模型之上的。最重要的是,深度学习将研究人员从反复设计和测试手工制作的特征的繁重工作中解放出来,从而催生出了大量进一步突破极限的作品。具体来说,使用深度学习大大简化了整个流程,如图 3 所示。此外,这些算法在标准基准上比以前的算法有显著的改进。基于梯度的训练程序也有助于端到端的可训练方法。
-
面向挑战的算法和数据集: 研究人员现在转向更具体的方面和挑战。针对现实场景中的困难,新发布的数据集具有独特和代表性的特征。例如,分别有以长文本、模糊文本和弯曲文本为特征的数据集。在这些数据集的推动下,近年来发布的几乎所有算法都是为应对特定挑战而设计的。例如,一些算法被提出来检测有方向的文本,而另一些则针对模糊和失焦的场景图像。这些想法也被结合起来,以形成更通用的方法。
-
辅助技术的进步除了用于主要任务的新数据集和模型之外,一些不直接解决任务的辅助技术也在这个领域找到了用武之地,例如合成数据和引导程序。
-
代表性场景文本检测和识别系统流程的图示。 (a) Jaderberg 等人 (2016) 和 (b) Yao 等人 (2016) 是代表性的多步骤方法。 © 和 (d) 是简化的流程。 在 © 中,检测器和识别器是分开的。在 (d) 中,检测器将裁剪的特征图传递给识别器,从而实现端到端训练。
-
-
在本综述中,我们概述了基于深度学习的静态场景图像文本检测和识别的最新发展。我们从不同角度回顾了各种方法,并列出了最新的数据集。我们还分析了现状和未来的研究趋势。
-
目前已经有几篇优秀的综述论文 ,它们也整理和分析了与文本检测和识别相关的工作。然而,这些论文是在深度学习在该领域流行之前发表的。因此,它们主要关注更传统和基于特征的方法。 我们也推荐读者阅读这些论文,以便更全面地了解该领域的历史。本文将主要关注从静止图像中提取文本信息,而不是视频。 对于视频中的场景文本检测和识别 。
-
本文的其余部分安排如下:在第 2 部分中,我们简要回顾了深度学习时代之前的方法。在第 3 部分中,我们按层次顺序列出并总结了基于深度学习的算法。请注意,我们不是按一篇一篇论文的顺序介绍这些技术,而是基于方法的分类。如果一些论文对多个方面有贡献,它们可能会出现在几个部分中。在第 4 部分中,我们将介绍数据集和评估协议。最后,在第 5 部分和第 6 部分中,我们介绍了潜在的应用以及我们对当前现状和未来趋势的看法。
Methods before the Deep Learning Era
-
在本节中,我们回顾了深度学习时代之前的算法。对于文本检测和识别,注意力一直集中在特征的设计上。在这一时期,大多数文本检测方法要么采用连通分量分析 (CCA),要么基于滑动窗口 (SW) 进行分类。基于 CCA 的方法首先通过各种方式(例如,颜色聚类或极端区域提取)提取候选成分,然后使用手动设计的规则或在手工制作的特征上自动训练的分类器滤除非文本成分(见图 2)。在滑动窗口分类方法中,不同大小的窗口在输入图像上滑动,每个窗口被分类为文本片段/区域或不是。被分类为正样本的样本通过形态学操作、条件随机场 (CRF) 和其他基于图的替代方法 进一步分组为文本区域。
-
图 2:具有手工制作特征的传统方法的说明:(1)最大稳定极值区域 (MSER) ,假设每个字符内的色度一致性;(2)笔画宽度变换 (SWT),假设每个字符内的笔画宽度一致。
-
对于文本识别,一个分支采用了基于特征的方法。提出了基于字符段的识别算法。 利用标签嵌入直接执行字符串和图像之间的匹配。 笔画和字符关键点也被检测为分类特征。另一个将识别过程分解为一系列子问题。已经提出了各种方法来解决这些子问题,包括文本二值化、文本行分割、字符分割、单字识别和词语校正。
-
人们也致力于开发集成系统(即我们今天所说的端到端系统) 。在 Wang et al 的研究中,字符被视为物体检测中的一种特殊情况,并通过基于 HOG 特征 训练的最近邻分类器进行检测,然后通过基于图像结构 (PS) 的模型 将其分组为单词。Neumann and Matas 提出了一种决策延迟方法,该方法将每个字符的多个分割保留到最后阶段,此时每个字符的上下文已知。他们使用极值区域检测字符分割,并通过动态规划算法解码识别结果。
-
综上所述,深度学习时代之前的文本检测和识别方法主要提取低级或中级的手工图像特征,这需要繁琐而重复的预处理和后处理步骤。受手工特征的有限表示能力和流程复杂性的限制,这些方法很难处理复杂的情况,例如 ICDAR 2015 数据集中的模糊图像 。
Methodology in the Deep Learning Era
-
正如本节标题所暗示的,我们希望将最近的进展视为方法论的变化,而不仅仅是新方法。我们的结论基于以下段落中解释的观察结果。
-
近年来的方法具有以下两个特点:(1)大多数方法使用基于深度学习的模型;(2)大多数研究人员从不同的角度来处理问题,试图解决不同的挑战。深度学习驱动的方法具有自动特征学习的优势,可以节省我们设计和测试大量潜在的手工特征的时间。同时,来自不同角度的研究人员正在丰富和推动社区进行更深入的工作,针对不同的目标,例如更快更简单的流程、不同长宽比的文本和合成数据。正如我们在本节中进一步看到的那样,深度学习的结合彻底改变了研究人员处理任务的方式,并极大地扩大了研究范围。这是与前一个时代相比最显著的变化。
-
在本节中,我们将现有方法分为层次分类法,并以自上而下的方式介绍它们。首先,我们将它们分为四类系统:(1)文本检测,检测和定位自然图像中的文本;(2)识别系统,将检测到的文本区域的内容转录并转换为语言符号;(3)端到端系统,在一个统一的管道中执行文本检测和识别;(4)辅助方法,旨在支持文本检测和识别的主要任务,例如合成数据生成。在每个类别下,我们从不同的角度回顾了最近的方法。
Detection
-
我们承认,场景文本检测在分类上可以归入一般物体检测,分为单阶段方法和双阶段方法。事实上,许多场景文本检测算法主要受到一般物体检测器的启发并遵循其设计。因此,我们也鼓励读者参考最近关于物体检测方法的调查 。然而,场景文本检测具有一组不同的特征和挑战,需要独特的方法和解决方案。因此,许多方法依赖于场景文本的特殊表示来解决这些非平凡问题。
-
因此,场景文本检测算法的演进经历了三个主要阶段:(1)第一阶段,基于学习的方法配备了多步骤流程,但这些方法仍然缓慢而复杂。 (2)然后,通用对象检测的思想和方法被成功地植入到这一任务中。 (3)在第三阶段,研究人员基于子文本组件设计特殊的表示来解决长文本和不规则文本的挑战。
Early Attempts to Utilize Deep Learning
-
早期基于深度学习的方法 将文本检测任务分解为多个步骤。它们使用卷积神经网络(CNN)预测局部片段,然后应用启发式后处理步骤将片段合并为检测线。
-
在早期的尝试中 ,CNN 仅用于将局部图像块分类为文本和非文本类。他们提出使用 MSER 特征挖掘此类图像块。然后将正样本块合并到文本行中。后来,CNN 以完全卷积的方式应用于整个图像。TextFlow 使用 CNN 来检测字符,并将字符分组任务视为最小成本流问题 。
-
在 (Scene text detection via holistic) 中,卷积神经网络用于预测输入图像中的每个像素 (1) 是否属于字符、(2) 是否在文本区域内以及 (3) 像素周围的文本方向。 连通的正响应被视为检测到的字符或文本区域。对于属于同一文本区域的字符,应用 Delaunay 三角剖分 ,然后根据预测的方向属性,使用图形分区算法将字符分组为文本行。
-
类似地, 首先预测指示文本行区域的分割图。对于每个文本行区域,应用 MSER 来提取字符候选。字符候选揭示了底层文本行的比例和方向信息。最后,提取最小边界框作为最终的文本行候选。
-
He 等人 (Multi-scale fcn with cascaded instance aware segmentation for arbitrary oriented word spotting in the wild) 提出了一种检测过程,该过程也包含几个步骤。首先,提取文本块。然后,模型裁剪并仅关注提取的文本块以提取文本中心线 (TCL),其定义为原始文本行的缩小版本。每条文本行代表一个文本实例的存在。然后将提取的 TCL 图拆分为多个 TCL。然后将每个拆分的 TCL 连接到原始图像。然后,语义分割模型将每个像素分类为与给定 TCL 属于同一文本实例的像素和不属于同一文本实例的像素。
-
总体而言,在这一阶段,场景文本检测算法仍然具有长而慢的流程,尽管它们已经用基于学习的特征取代了一些手工制作的特征。设计方法是自下而上的,并基于关键组件,例如单个字符和文本中心线。
Methods Inspired by Object Detection
-
后来,研究人员从快速发展的通用物体检测算法中汲取灵感 。在此阶段,场景文本检测算法通过修改通用检测器的区域提议和边界框回归模块来直接定位文本实例 ,如图 4 所示。它们主要由堆叠的卷积层组成,将输入图像编码为特征图。特征图上的每个空间位置对应于输入图像的一个区域。然后将特征图输入到分类器中,以预测每个这样的空间位置上文本实例的存在和定位。
-
图 4:受一般物体检测启发的方法的高级说明:(a)类似于 YOLO ,在每个锚点位置基于默认边界框回归偏移量。(b)SSD 的变体,在不同尺度的特征图上进行预测。(c)在每个锚点位置进行预测并直接回归边界框。(d)双阶段方法,其中有一个额外的阶段来校正初始回归结果。
-
这些方法大大简化了流程,使其成为一个端到端可训练的神经网络组件,使训练变得更容易,推理速度更快。我们在这里介绍最具代表性的作品。
-
受到单阶段物体检测器的启发,TextBoxes 通过将默认框定义为具有不同纵横比规格的四边形,采用 SSD 来适应文本的不同方向和纵横比。
-
EAST 通过采用 U 形设计 来集成来自不同层次的特征,进一步简化了基于锚点的检测。输入图像被编码为一个多通道特征图,而不是 SSD 中不同空间大小的多个层。每个空间位置的特征用于直接回归底层文本实例的矩形或四边形边界框。具体而言,预测文本的存在,即文本/非文本,以及几何形状,例如矩形的方向和大小,以及四边形的顶点坐标。EAST 以其高度简化的流程和实时推理的效率,在文本检测领域产生了重大影响。
-
其他方法采用 R-CNN 的两阶段物体检测框架 ,其中第二阶段根据感兴趣区域 (ROI) 池化获得的特征来校正定位结果。在 (Arbitrary-oriented scene text detection via rotation proposals) 中,旋转区域提议网络被调整为生成旋转区域提议,以适应任意方向的文本,而不是轴对齐的矩形。
-
在 FEN 中,使用了不同大小的 ROI 池化的加权和。最终的预测是通过利用 4 个不同大小的池化的文本性得分来进行的。【Look more than once: An accurate detector for text of arbitrary shapes】提出递归执行 ROI 和定位分支,以修改文本实例的预测位置。这是一种在边界框边界处包含特征的好方法,它比区域提议网络 (RPN) 更好地定位文本。
-
Wang 等人 建议使用参数化实例变换网络 (ITN),该网络学习预测在基础网络提取的最后一个特征层上执行的适当仿射变换,以纠正定向文本实例。他们的方法与 ITN 一起可以进行端到端训练。
-
为了适应不规则形状的文本,提出了具有多达 14 个顶点的边界多边形 ,然后使用 Bi-LSTM 层来细化预测顶点的坐标。
-
类似地,【Arbitrary shape scene text detection with adaptive text region representation】提出使用循环神经网络 (RNN) 读取基于 RPN 的两阶段对象解码器编码的特征并预测长度可变的边界多边形。该方法不需要后处理或复杂的中间步骤,并且在 Total-Text 上实现了更快的 10:0 FPS 速度。
-
此阶段的主要贡献在于简化了检测流程,并提高了效率。然而,由于感受野的限制,单阶段方法在面对弯曲、有方向或长文本时性能仍然有限,而双阶段方法的效率也有限。
Methods Based on Sub-Text Components
-
文本检测与一般物体检测的主要区别在于,文本整体上是同质的,并且具有局部性,这与一般物体检测不同。同质性和局部性是指文本实例的任何部分仍然是文本的属性。人类不必看到整个文本实例就能知道它属于某个文本。
-
这种特性为文本检测方法的一个新分支奠定了基础,该方法仅预测子文本组件,然后将其组装成文本实例。这些方法本质上可以更好地适应上述弯曲、长和定向文本的挑战。如图 5 所示,这些方法使用神经网络来预测局部属性或片段,并使用后处理步骤来重建文本实例。与早期的多阶段方法相比,它们更多地依赖于神经网络,并且管道更短。
-
图 5:基于子文本成分的代表性方法说明:(a) SegLink :以 SSD 为基础网络,预测每个锚点位置的词段,以及相邻锚点之间的连接。(b) PixelLink :对于每个像素,预测文本 / 非文本分类以及它是否与相邻像素属于同一文本。© Corner Localization :预测每个文本的四个角,并将属于同一文本实例的角分组。(d) TextSnake :预测文本 / 非文本和局部几何形状,用于重建文本实例。
-
在像素级方法 中,端到端全卷积神经网络学习生成密集预测图,指示原始图像中的每个像素是否属于任何文本实例。然后,后处理方法根据哪些像素属于同一文本实例将像素分组在一起。基本上,它们可以看作是实例分割的特例 。由于文本可以出现在簇中,从而使预测像素相互连接,因此像素级方法的核心是将文本实例彼此分离。
-
PixelLink 通过添加额外的输出通道来指示相邻像素之间的链接,从而学习预测两个相邻像素是否属于同一个文本实例。边界学习方法【Self-organized text detection with minimal post-processing via border learning】 将每个像素分为三类:文本、边界和背景,假设边界可以很好地分隔文本实例。在 (Scene text detection with novel superpixel based character candidate extraction) 中,像素根据其颜色一致性和边缘信息进行聚类。融合的图像片段称为超像素。这些超像素进一步用于提取字符和预测文本实例。
-
在分割框架的基础上 提出添加一个损失项,最大化属于不同文本实例的像素嵌入向量之间的欧几里得距离,并最小化属于同一实例的像素嵌入向量,以更好地分离相邻的文本。
-
【Shape robust text detection with progressive scale expansion network】提出以不同的收缩尺度预测文本区域,并逐轮放大检测到的文本区域,直到与其他实例发生碰撞。然而,不同尺度的预测本身就是上述边界学习的变体 。组件级方法通常以中等粒度进行预测。组件是指文本实例的局部区域,有时会与一个或多个字符重叠。
-
代表性的组件级方法是连接文本提议网络 (CTPN) 。CTPN 模型继承了用于序列标记的锚定和循环神经网络的思想。它们将 RNN 堆叠在 CNN 之上。最终特征图中的每个位置代表相应锚点指定区域中的特征。假设文本水平出现,则每行特征都被输入到 RNN 中并标记为文本/非文本。还会预测诸如段大小之类的几何形状。CTPN 是第一个使用深度神经网络预测和连接场景文本段的方法。
-
SegLink 通过考虑片段之间的多方向链接来扩展 CTPN。 片段的检测基于 SSD ,其中每个默认框代表一个文本片段。预测默认框之间的链接以指示相邻片段是否属于同一文本实例。【Deep relational reasoning graph network for arbitrary shape text detection】 通过使用图卷积网络 来预测片段之间的链接,从而进一步改进了 SegLink。
-
角点定位方法 提出检测每个文本实例的四个角点。 由于每个文本实例只有 4 个角点,预测结果及其相对位置可以指示哪些角点应该分组到同一个文本实例中。Long 等人 认为文本可以表示为一系列沿文本中心线(TCL)滑动的圆盘,这与文本实例的运行方向一致,如图 6 所示。利用这种新颖的表示方法,他们提出了一个新模型 TextSnake,该模型可以学习预测局部属性,包括 TCL/非 TCL、文本区域/非文本区域、半径和方向。TCL 像素和文本区域像素的交集给出了像素级 TCL 的最终预测。然后使用局部几何图形以有序点列表的形式提取 TCL。利用 TCL 和半径,可以重建文本行。它在几个弯曲文本数据集以及更广泛使用的数据集上取得了最佳性能,例如 ICDAR 2015 和 MSRA-TD 500 。值得注意的是,Long 等人提出了一种跨不同数据集的交叉验证测试,其中模型仅在具有直文本实例的数据集上进行微调,并在曲线数据集上进行测试。在所有现有的曲线数据集中,TextSnake 在 F1-Score 方面比其他基线提高了高达 20%。
-
图 6:(a)-©:将文本表示为水平矩形、定向矩形和四边形。 (d):TextSnake 中提出的滑动盘表示。
-
字符级表示是另一种有效方法。Baek 等人【Character region awareness for text detection】 提出学习字符中心及其之间链接的分割图。组件和链接都以高斯热图的形式进行预测。然而,这种方法需要迭代弱监督,因为现实世界的数据集很少配备字符级标签。
-
总体而言,基于子文本成分的检测在文本实例的形状和长宽比方面具有更好的灵活性和泛化能力。主要缺点是用于将片段分组为文本实例的模块或后处理步骤可能容易受到噪声的影响,并且此步骤的效率高度依赖于实际实现,因此可能因平台而异。
Recognition
-
在本节中,我们介绍场景文本识别的方法。这些方法的输入是裁剪的文本实例图像,其中只包含一个单词。在深度学习时代,场景文本识别模型使用 CNN 将图像编码到特征空间中。主要区别在于文本内容解码模块。两种主要技术是连接主义时间分类 (CTC)和编码器-解码器框架 。我们根据文献中采用的主要技术介绍识别方法。主流框架如图 7 所示。
-
图 7:文本识别模型框架。(a)表示序列标记模型,在训练和推理中使用 CTC 进行对齐。(b)表示序列到序列模型,可以使用交叉熵直接学习。 (c)表示基于分割的方法。
-
CTC 和编码器-解码器框架最初都是针对一维顺序输入数据而设计的,因此适用于识别直文本和水平文本,这些文本可以通过 CNN 编码为特征帧序列而不会丢失重要信息。然而,定向和弯曲文本中的字符分布在二维空间中。有效地在特征空间中表示定向和弯曲文本以适应 CTC 和编码器-解码器框架仍然是一个挑战,因为这些框架的解码需要一维输入。对于定向和弯曲文本,直接将特征压缩为一维形式可能会丢失相关信息并引入背景噪声,从而导致识别准确率下降。我们将介绍解决这一挑战的技术。
CTC-Based Methods
-
CTC 解码模块源自语音识别,其中数据在时间域中是连续的。为了将 CTC 应用于场景文本识别,输入图像被视为垂直像素帧序列。网络输出每帧预测,指示每帧标签类型的概率分布。然后应用 CTC 规则将每帧预测编辑为文本字符串。在训练期间,损失计算为所有可能通过 CTC 规则生成目标序列的每帧预测的负对数概率之和。因此,CTC 方法使其仅使用字级注释即可进行端到端训练,而无需字符级注释。CTC 在 OCR 领域的首次应用可以追溯到 手写识别系统。目前该技术在场景文本识别中被广泛应用。
-
第一个尝试可以称为卷积循环神经网络 (CRNN)。这些模型由在 CNN 之上堆叠 RNN 组成,并使用 CTC 进行训练和推理。DTRN 是第一个 CRNN 模型。它在输入图像上滑动 CNN 模型以生成卷积特征切片,然后将其输入到 RNN 中。(An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition) 进一步改进了 DTRN,采用完全卷积方法对输入图像进行整体编码以生成特征切片,利用 CNN 不受输入空间大小限制的特性。
-
【Reading scene text with attention convolutional sequence modeling】采用了堆叠卷积层代替 RNN,有效地捕捉输入序列的上下文依赖性,具有计算复杂度更低、更易于并行计算的特点。【Scene text recognition with sliding convolutional character models】通过将文本行图像与字符模型滑动来同时检测和识别字符,这些模型是在用文本记录标记的文本行图像上进行端到端学习的。
Encoder-Decoder Methods
-
序列到序列学习的编码器-解码器框架最初是为机器翻译提出的。编码器 RNN 读取输入序列并将其最终潜在状态传递给解码器 RNN,解码器 RNN 以自回归方式生成输出。编码器解码器框架的主要优势在于它提供可变长度的输出,这满足了场景文本识别的任务设置。编码器-解码器框架通常与注意力机制 结合使用,共同学习对齐输入序列和输出序列。
-
Lee 和 Osindero 提出了一种带有注意力模型的递归循环神经网络,用于无词典场景文本识别。该模型首先将输入图像通过递归卷积层以提取编码的图像特征,然后通过具有隐式学习的字符级语言统计数据的循环神经网络将其解码为输出字符。基于注意力的机制执行软特征选择,以更好地利用图像特征。
-
Cheng 等人 观察到现有基于注意力的方法中存在的注意力漂移问题,并提出对注意力得分施加局部化监督来减弱这一问题。
-
【Edit probability for scene text recognition】提出了一种编辑概率 (EP) 指标来处理基本事实字符串与注意力的概率分布输出序列之间的不一致。与上述基于注意力的方法(通常采用逐帧最大似然损失)不同,EP 尝试估计从以输入图像为条件的概率分布的输出序列生成字符串的概率,同时考虑到可能出现的缺失或多余字符。
-
Liu 等人 提出了一种高效的基于注意的编码器-解码器模型,其中编码器部分在二元约束下进行训练以降低计算成本。
-
CTC 和编码器-解码器框架都简化了识别流程,使得仅使用单词级注释而不是字符级注释来训练场景文本识别器成为可能。与 CTC 相比,编码器-解码器框架的解码器模块是一个隐式语言模型,因此它可以包含更多的语言先验。出于同样的原因,编码器-解码器框架需要更大的训练数据集和更大的词汇量。否则,在读取训练期间未见过的单词时,模型可能会退化。相反,CTC 对语言模型的依赖性较小,并且具有更好的字符到像素对齐。因此,它在具有大量字符集的语言(例如中文和日语)上可能会更好。这两种方法的主要缺点是它们假设文本是直的,因此无法适应不规则的文本。
Adaptions for Irregular Text Recognition
-
校正模块是解决不规则文本识别的常用方法。Shi 等人提出了一种文本识别系统,该系统结合了空间变换器网络 (STN) 和基于注意机制的序列识别网络。 STN 模块使用全连接层预测文本边界多边形,以便进行薄板样条变换,将输入的不规则文本图像校正为更规范的形式,即直文本。 校正被证明是一种成功的策略,并成为 ICDAR 2019 ArT 不规则文本识别竞赛中获胜解决方案 的基础。
-
基于矫正的识别也出现了几种改进版本。Zhan 和 Lu (Esir: End-to-end scene text recognition via iterative image rectification) 建议多次进行矫正,逐步矫正文本。他们还用多项式函数替换文本边界多边形来表示形状。Yang 等人 建议以类似于 TextSnake 的方式预测文本中心区域内像素的局部属性,例如半径和方向值。方向定义为底层字符框的方向,而不是文本边界多边形。基于这些属性,边界多边形以矫正字符透视失真的方式进行重建,而 Shi 等人和 Zhan 等人的方法可能仅在文本级别进行矫正,导致字符失真。
-
【Learning to read irregular text with attention mechanisms】 引入了辅助密集字符检测任务,以鼓励学习有利于文本模式的视觉表征。 他们采用对齐损失来规范每个时间步骤的估计注意力。此外,他们使用坐标图作为第二个输入来增强空间意识。
-
Cheng 等人 认为,像大多数方法那样将文本图像编码为一维特征序列是不够的。他们将输入图像编码为四个方向的四个特征序列:水平、反向水平、垂直和反向垂直。应用加权机制来组合这四个特征序列。
-
Liu 等人 提出了一种分层注意力机制 (HAM),它由一个循环 RoIWarp 层和一个字符级注意力层组成。他们采用局部变换来模拟单个字符的扭曲,从而提高了效率,并且可以处理难以通过单个全局变换建模的不同类型的扭曲。
-
【Scene text recognition from twodimensional perspective】 将识别任务归结为语义分割,并将每种字符类型视为一个类。该方法对形状不敏感,因此对不规则文本有效,但缺乏端到端训练和序列学习,容易出现单字符错误,尤其是在图像质量较低的情况下。他们也是第一个通过填充和变换测试图像来评估其识别方法的鲁棒性的人。
-
不规则场景文本识别的另一种解决方案是二维注意力 ,这已得到验证。与顺序编码器-解码器框架不同,二维注意力模型维护二维编码特征,并计算所有空间位置的注意力分数。与空间注意力类似,【A new perspective for flexible feature gathering in scene text recognition via character anchor pooling】提出首先检测字符。然后,沿字符中心线插入和聚集特征以形成顺序特征框。
-
除了上述技术外,【Towards unconstrained end-to-end text spotting】还表明,只需将特征图从二维展平为一维,并将得到的序列特征输入基于 RNN 的注意力编码器-解码器模型,就足以在不规则文本上产生最先进的识别结果,这是一种简单而有效的解决方案
-
除了定制的模型设计之外, 还合成了曲线文本数据集,这显著提高了现实世界曲线文本数据集的识别性能,同时又不牺牲直文本数据集的性能。
-
虽然已经提出了许多优雅而简洁的解决方案,但它们仅基于相对较小的数据集 CUTE80(仅包含 288 个单词样本)进行评估和比较。此外,这些工作中使用的训练数据集仅包含可忽略不计的不规则文本样本比例。在更大的数据集和更合适的训练数据集上进行评估可能有助于我们更好地理解这些方法。
Other Methods
-
在图像分类框架下,通过将图像归类到预定义的词汇集中来进行单词识别。 该模型由合成图像训练,并在一些仅包含英文单词的基准上取得了最佳表现。然而,这种方法的应用相当有限,因为它不能用于识别电话号码和电子邮件地址等看不见的序列。
-
为了提高在诸如遮挡等给单字识别带来歧义的困难情况下的性能,【Towards accurate scene text recognition with semantic reasoning networks】提出了一个基于 Transformer 的语义推理模块,该模块将解码器输出的粗略、易出错的文本输出转换为精细的、经过语言校准的输出,这与机器翻译的审议网络【Deliberation networks: Sequence generation beyond one-pass decoding】有相似之处,即先翻译然后重写句子。
-
尽管我们已经看到了进展,但对识别方法的评估却落后于时代。由于大多数检测方法可以检测有方向和不规则的文本,有些甚至会纠正它们,因此对此类文本的识别似乎有些多余。另一方面,当使用略有不同的边界框进行裁剪时,识别的稳健性很少得到验证。这种稳健性在现实世界场景中可能更为重要。
End-to-End System
-
过去,文本检测和识别通常被看作两个独立的子问题,它们结合起来从图像中读取文本。最近,许多端到端的文本检测和识别系统(也称为文本识别系统)被提出,它们从设计可微分计算图的思想中获益良多,如图 8 所示。构建此类系统的努力已经获得了相当大的发展势头,成为一种新趋势。
-
图 8:主流端到端框架说明。(a):在 SEE 中,检测结果表示为网格矩阵。图像区域在输入识别分支之前被裁剪和变换。(b):一些方法从特征图中裁剪并将它们输入到识别分支。 (c):虽然(a)和(b)利用基于 CTC 和基于注意力的识别分支,但也可以将每个字符检索为通用对象并撰写文本。
-
两步流水线早期工作: 首先检测输入图像中的单个字符,而近期系统通常检测和识别字级或行级文本。一些系统首先使用文本检测模型生成文本提议,然后用另一个文本识别模型 识别它们。 结合使用边缘框提议 和经过训练的聚合通道特征检测器 来生成候选词边界框。提议框经过过滤和校正,然后送入 提出的识别模型。 结合基于 SSD 的文本检测器和 CRNN 来识别图像中的文本。在这些方法中,检测到的单词是从图像中裁剪出来的,因此检测和识别是两个独立的步骤。两步方法的一个主要缺点是检测和识别模型之间的误差传播将导致性能不太令人满意。
-
两阶段管道,最近,提出了端到端可训练网络来解决此问题 ,其中特征图而不是图像被裁剪并输入到识别模块。Bartz 等人 提出了一种解决方案,利用 STN 循环关注输入图像中的每个单词,然后分别识别它们。联合网络以弱监督的方式训练,不使用单词边界框标签。Li 等人 用基于编码器-解码器的文本识别模型替代 Faster-RCNN 中的对象分类模块,并组成他们的文本识别系统。Liu 等人 开发了统一的文本检测和识别系统,其整体架构非常相似,由检测分支和识别分支组成。 Liu et al 和 Busta et al 分别采用 EAST 和 YOLOv2 作为检测分支,并且具有类似的文本识别分支,其中文本提案通过双线性采样池化为固定高度张量,然后通过基于 CTC 的识别模块转录为字符串。
-
He et al 还采用了 EAST 来生成文本提议,并在基于注意机制的识别分支中引入字符空间信息作为显式监督。Lyu et al 提出了对 Mask R-CNN 的修改。 对于每个感兴趣的区域,都会生成字符分割图,指示单个字符的存在和位置。将这些字符从左到右排序的后处理步骤给出了最终结果。 与上述基于有向边界框执行 ROI 池化的工作相比,Qin et al 提出使用轴对齐边界框,并使用 0/1 文本分割掩码 来掩蔽裁剪的特征。 单阶段流水线除了两阶段方法外,Xing et al 还并行预测字符和文本边界框以及字符类型分割图。然后使用文本边界框对字符框进行分组,以形成最终的单词转录结果。这是第一个单阶段方法。
Auxiliary Techniques
- 最近的进展不仅限于旨在直接解决任务的检测和识别模型。我们还应该感谢发挥重要作用的辅助技术。
Synthetic Data
-
大多数深度学习模型都对数据非常渴求。只有当有足够的数据可用时,它们的性能才能得到保证。在文本检测和识别领域,这个问题更加紧迫,因为大多数人工标记的数据集都很小,通常仅包含大约 1K - 2K 个数据实例。幸运的是,已经有一些工作( Verisimilar image synthesis for accurate detection and recognition of texts in scenes;Synthtext3d)可以生成相对高质量的数据,并且已被广泛用于预训练模型以获得更好的性能。
-
【Synthetic data and artificial neural networks for natural scene text recognition】 提出生成用于文本识别的合成数据。他们的方法将文本与从人工标记的数据集中随机裁剪的自然图像进行混合,这些图像经过字体、边框/阴影、颜色和失真渲染。结果表明,仅对这些合成数据进行训练就可以实现最佳性能,并且合成数据可以作为所有数据集的增强数据源。
-
SynthText 首次提出将文本嵌入自然场景图像中以进行文本检测训练,而之前的大部分工作只是在裁剪区域打印文本,这些合成数据仅用于文本识别。在整个自然图像上打印文本带来了新的挑战,因为它需要保持语义连贯性。为了生成更真实的数据,SynthText 利用深度预测 和语义分割 。语义分割将像素组合在一起作为语义簇,每个文本实例打印在一个语义表面上,而不是与多个语义表面重叠。密集深度图进一步用于确定文本实例的方向和扭曲。仅在 SynthText 上训练的模型在许多文本检测数据集上都达到了最佳水平。后来它还用于其他工作 以及初始预训练。
-
此外,Zhan 等人 (Verisimilar ) 将文本合成与其他深度学习技术相结合,以生成更逼真的样本。他们引入了选择性语义分割,这样单词实例只会出现在可感知的物体上,例如桌子或墙壁,而不是某人的脸上。他们作品中的文本渲染会根据图像进行调整,以便它们符合艺术风格,不会显得突兀。
-
SynthText3D 使用著名的开源游戏引擎虚幻引擎 4 (UE4) 和 UnrealCV 来合成场景文本图像。文本与场景一起渲染,因此可以实现不同的光照条件、天气和自然遮挡。然而,SynthText3D 只是遵循 SynthText 的流水线,只使用游戏引擎提供的真实深度和分割图。因此,SynthText3D 依赖于手动选择摄像机视图,这限制了它的可扩展性。此外,所提出的文本区域是通过裁剪从分割图中提取的最大矩形边界框生成的,因此仅限于大而明确的区域的中间部分,这是一种不利的位置偏差。
-
UnrealText 是另一项使用游戏引擎合成场景文本图像的工作。它的特点是在合成过程中与 3D 世界进行深度交互。提出了一种基于光线投射的算法,可以有效地在 3D 世界中导航,并能够自动生成不同的相机视图。文本区域提议模块基于碰撞检测,可以将文本放到整个表面上,从而消除位置偏差。UnrealText 实现了显着的加速和更好的检测器性能。
-
Text Editing 最近提出的文本编辑任务也值得一提(Editing text in the wild; Swaptext)。这两项工作都试图在保留自然图像中文本样式(例如字符的空间排列、文本字体和颜色)的同时替换文本内容。文本编辑本身在使用手机摄像头进行即时翻译等应用中很有用。它在增强现有场景文本图像方面也具有巨大潜力,尽管我们还没有看到任何相关的实验结果。
Weakly and Semi-Supervision
-
字符框引导:字符级注释更准确、更好。然而,大多数现有数据集不提供字符级注释。由于字符较小且彼此接近,字符级注释成本更高且不方便。已经有一些关于半监督字符检测的研究。基本思想是初始化字符检测器并应用规则或阈值来挑选最可靠的预测候选者。然后使用这些可靠的候选者作为额外的监督源来改进字符检测器。它们都旨在通过字符级注释来增强现有数据集。它们的区别如图 9 所示。
-
图 9:半监督和弱监督方法概述。现有方法在过滤方式上有所不同。(a):WeText ,主要通过阈值置信度和通过单词级注释进行过滤。(b):基于评分的方法,包括 WordSup ,它假设文本是直线,并使用基于特征值的度量来测量其直线度。(c):通过使用真实单词边界框将字符分组为单词,并比较字符数量 。
-
WordSup 首先通过在合成数据集上训练 5K 次热身迭代来初始化字符检测器。对于每幅图像,WordSup 都会生成字符候选,然后使用词框进行过滤。对于每个词框中的字符,计算以下分数以选择最可能的字符列表:
-
s = w ⋅ a r e a ( B c h a r s ) a r e a ( B w o r d ) + ( 1 − w ) ⋅ ( 1 − λ 2 λ 1 ) , ( 1 ) s = w · \frac{area(Bchars)}{area(Bword)} + (1 − w) · (1 − \frac{λ2} {λ1} ) ,(1) s=w⋅area(Bword)area(Bchars)+(1−w)⋅(1−λ1λ2),(1)
-
其中 Bchars 是所选字符框的并集;Bword 是封闭的单词边界框;λ1 和 λ2 是协方差矩阵 C 的第一和第二大特征值,由所选字符框的中心坐标计算得出;w 是权重标量。直观地说,第一项衡量所选字符对单词框的覆盖程度,而第二项衡量所选字符是否位于直线上,这是大多数数据集中单词实例的主要特征。
-
-
WeText 从字符级别注释的小型数据集开始。它遵循两种引导范式:半监督学习和弱监督学习。在半监督设置中,检测到的字符候选会用高阈值进行过滤。在弱监督设置中,使用真实单词框来掩盖外部的假阳性。以任何一种方式检测到的新实例都会添加到初始小数据集中并重新训练模型。
-
在 (Character region awareness for text detection) 和 (Convolutional character networks) 中,候选字符通过单词级标注进行筛选。对于每个单词实例,如果单词边界框内检测到的字符边界框数量等于真实单词的长度,则认为该字符边界框是正确的。
-
部分标注 :为了提高端到端单词识别模型在弯曲文本上的识别性能, 提出使用现成的直场景文本识别模型来标注大量未标注的图像。这些图像被称为部分标注图像,因为现成的模型可能会遗漏一些单词。这些部分标注的直文本被证明可以大大提高不规则文本上的性能。
-
另一个类似的努力是 (Chinese street view text: Large-scale chinese text reading with partially supervised learning) 提出的大型数据集,其中每幅图像仅用一个主要文本进行注释。他们还设计了一种算法来利用这些部分标记的数据,他们声称这种算法的注释成本更低。
Benchmark Datasets and Evaluation Protocols
- 随着尖端算法在现有数据集上取得更好的表现,研究人员能够解决问题中更具挑战性的方面。针对不同现实挑战的新数据集已经或正在被创建,这将进一步促进检测和识别方法的发展。
- 在本节中,我们列出并简要介绍现有数据集和相应的评估协议。我们还将在适用的情况下确定当前针对广泛使用的数据集的最新方法。
Benchmark Datasets
-
我们收集了现有的数据集,并在表 1 中总结了它们的统计数据。我们从一些数据集中选择了一些有代表性的图像样本,如图 10 所示。为了方便读者,我们在摘要中提到的 Github 存储库中也收集了这些数据集的链接。在本节中,我们选择了一些有代表性的数据集并讨论它们的特征。
-
表 1:场景文本检测与识别的公开数据集。EN 代表英文,CN 代表中文。请注意,HUST-TR 400 是 MSRA-TD 500 的补充训练数据集。ICDAR 2013 指 ICDAR 2013 聚焦场景文本竞赛。ICDAR 2015 指 ICDAR 2015 偶然文本竞赛。 最后两列表示数据集是否为检测和识别任务提供注释。
-
图 10:从 Chars74K、SVT-P、IIIT5K、MSRA-TD 500、ICDAR 2013、ICDAR 2015、ICDAR 2017 MLT、ICDAR 2017 RCTW 和 Total-Text 中选择的样本。
-
ICDAR 2015 附带文本专注于小文本和定向文本。图像由 Google Glasses 拍摄,没有考虑图像质量。图像中很大一部分文本非常小、模糊、遮挡和多方向,非常具有挑战性。
-
ICDAR MLT 2017 和 2019 数据集分别包含 9 种和 10 种语言的文字。它们是迄今为止唯一的多语言数据集。
-
Total-Text 中弯曲文本占比很大,而之前的数据集中弯曲文本很少。这些图像主要取自街头广告牌,并标注为具有可变顶点数量的多边形。
-
Chinese Text in the Wild (CTW) 数据集 包含 32;285 张高分辨率街景图像,以字符级别进行注释,包括其底层字符类型、边界框以及是否使用艺术字等详细属性。该数据集是迄今为止最大的数据集,也是唯一包含详细注释的数据集。但是,它仅提供中文文本的注释,而忽略了其他脚本,例如英语。
-
LSVT 由两个数据集组成。 一个数据集完全标注了单词边界框和单词内容。另一个数据集虽然大得多,但只标注了主要文本实例的单词内容。 作者建议研究这种成本低得多的部分标注数据。
-
IIIT 5K-Word 是最大的场景文本识别数据集,包含数字和自然场景图像。其字体、颜色、大小和其他噪声的变化使其成为迄今为止最具挑战性的数据集。
Evaluation Protocols
- 在本部分中,我们简要总结了文本检测和识别的评估协议。
- 作为不同算法性能比较的指标,我们通常参考它们的准确率、召回率和 F1 分数。要计算这些性能指标,首先应该将预测的文本实例列表与真实标签进行匹配。准确率(表示为 P)计算为可以与真实标签匹配的预测文本实例的比例。 召回率(表示为 R)是真实标签与预测列表中的对应项的比例。
- 然后,F1 分数通过 F 1 = 2 ∗ P ∗ R P + R F_1 = 2∗\frac{P ∗R }{P+R} F1=2∗P+RP∗R 计算,同时考虑准确率和召回率。请注意,首先要匹配预测实例和真实实例。
Text Detection
-
文本检测主要有两种不同的协议,基于 IOU 的 PASCAL Eval 和基于重叠的 DetEval。它们在匹配预测文本实例和真实文本实例的标准上有所不同。在下文中,我们使用以下符号:SGT 是真实边界框的面积,SP 是预测边界框的面积,SI 是预测边界框和真实边界框交集的面积,SU 是并集的面积。
- DetEval :DetEval 对准确率(即 S I S P \frac{S_I} {S_P} SPSI )和召回率(即 S I S G T \frac{S_I} {S_{GT}} SGTSI )都施加了约束。只有当两者都大于各自的阈值时,它们才会匹配在一起。
- PASCAL :基本思想是,如果交并值(即 S I S U \frac{S_I} {S_U} SUSI )大于指定阈值,则预测框和 GT 框匹配在一起。
-
大多数作品都遵循这两种评估协议中的一种,但略有修改。我们只讨论那些与上述两种协议不同的作品。
- ICDAR-2003/2005:匹配分数 m 的计算方式与 IOU 类似。它定义为交集面积与包含两者的最小边界矩形边界框面积之比。
- ICDAR-2011/2013:ICDAR2003/2005 的评估协议的一个主要缺点是它只考虑了一对一匹配。它没有考虑一对多、多对多和多对一匹配,这低估了实际性能。因此,ICDAR2011/2013 遵循 [Object count/area graphs for the evaluation of object detection and segmentation algorithms] 提出的方法,其中一对一匹配被赋予 1 分,而其他两种类型被惩罚为小于 1 的常数分值,通常设置为 0:8。
- MSRA-TD 500:提出了一种新的旋转边界框评估协议,其中预测和真实边界框都围绕其中心水平旋转。仅当标准 IOU 分数高于阈值且原始边界框的旋转小于预定义值(实践中为 p i 4 \frac{pi }4 4pi)时,它们才会匹配。
- TIoU :Tightness-IoU 考虑到场景文本识别对检测结果中缺失部分和多余部分很敏感的事实。 未检索到的区域将导致识别结果中出现字符缺失,而冗余区域将导致出现意外字符。所提出的指标通过按缺失区域的比例和与其他文本重叠的多余区域的比例来惩罚 IoU。
-
现有评估协议的主要缺点是它们仅考虑在测试集上任意选择的置信度阈值下的最佳 F1 分数。 还使用在一般物体检测中广泛采用的平均精度 (AP) 指标来评估他们的方法。虽然 F1 分数只是精确度-召回率曲线上的单个点,但 AP 值考虑了整个精确度-召回率曲线。因此,AP 是一个更全面的指标,我们敦促该领域的研究人员使用 AP 而不是单独使用 F1。
Text Recognition and End-to-End System
-
在场景文本识别中,直接将预测的文本字符串与事实进行对比,性能评估要么是字符级别的识别率(即识别了多少个字符),要么是单词级别的识别率(预测的单词是否与事实完全一致)。ICDAR 还引入了基于编辑距离的性能评估。在端到端评估中,首先以与文本检测类似的方式进行匹配,然后比较文本内容。
-
端到端系统最广泛使用的数据集是 ICDAR 2013 和 ICDAR 2015 。对这两个数据集的评估是在两种不同的设置[PowerPoint Presentation (uab.es)]下进行的,即 Word Spotting 设置和 End-toEnd 设置。在 Word Spotting 下,性能评估仅关注场景图像中出现在预定词汇表中的文本实例,而忽略其他文本实例。相反,在 End-to-End 下,场景图像中出现的所有文本实例都包含在内。为候选转录提供了三个不同的词汇列表。 它们包括强语境化、弱语境化和通用。表 8 总结了这三种列表。请注意,在 End-to-End 下,这些词汇表仍然可以作为参考。
-
表 8:ICDAR 2013/2015 中使用的三个词汇表的特征。S 代表强语境化,W 代表弱语境化,G 代表通用
-
下表总结了近期方法在几个广泛采用的基准数据集上的评估结果:表 2 用于 ICDAR 2013 上的检测,表 4 用于 ICDAR 2015 Incidental Text 上的检测,表 3 用于 ICDAR 2017 MLT 上的检测,表 5 用于 Total-Text 上的检测和端到端单词识别,表 6 用于 CTW1500 上的检测,表 7 用于 MSRA-TD 500 上的检测,表 9 用于在几个数据集上的识别,表 10 用于 ICDAR 2013 和 ICDAR 2015 上的端到端文本识别。请注意,如果报告了单尺度性能,我们不会报告多尺度条件下的性能。我们使用 ∗ 来表示仅报告多尺度性能的方法。由于某些工作使用了不同的主干特征提取器,除非另有说明,否则我们仅报告基于 ResNet-50 的性能。
-
表 2:ICDAR 2013 上的检测。
-
表 3:ICDAR MLT 2017 上的检测
-
表 4:ICDAR 2015 上的检测。
-
表 5:Total-Text 上的检测和端到端。
-
表 6:CTW1500 上的检测。
-
表 7:MSRA-TD 500 上的检测。
-
表 9:多个数据集中的最新识别性能。\50"、\1k"、\Full" 为词典。 \0" 表示无词典。\90k" 和 \ST" 分别是 Synth90k 和 SynthText 数据集。\ST+" 表示包括字符级注释。\Private" 表示私有训练数据。
-
表 10:ICDAR 2015 和 ICDAR 2013 上的端到端和词汇识别性能。
-
请注意,当前对场景文本识别的评估可能存在问题。大多数研究人员在引用同一数据集时实际上使用了不同的子集,从而导致性能差异。此外,进一步指出,一半被广泛采用的基准数据集的注释不完善,例如忽略了大小写和标点符号,并为这些数据集提供了新的注释。虽然大多数论文声称训练他们的模型以区分大小写的方式识别并且还包括标点符号,但他们在评估期间可能将输出限制为仅数字和不区分大小写的字符。
Application
-
文本作为人类文明的视觉和物理载体,其检测和识别使视觉与对其内容的理解更加紧密。除了本文开头提到的应用之外,在各个行业和我们的日常生活中,还有许多特定的应用场景。在这一部分,我们列出并分析了其中最突出的应用场景,这些应用场景已经或将会产生重大影响,提高我们的生产力和生活质量。
-
自动数据输入 :除了现有文档的电子存档外,OCR 还可以通过自动数据输入的形式提高我们的工作效率。 有些行业需要耗费大量时间输入数据,例如快递行业客户写的快递订单,以及金融和保险行业的手写信息表。应用 OCR 技术可以加速数据输入过程并保护客户隐私。一些公司已经在使用这些技术,例如 SF-Express 。 另一个潜在的应用是笔记记录,例如 NEBO ,这是一款在 iPad 等平板电脑上使用的笔记记录软件,可在用户记笔记时进行即时转录。
-
身份认证 :自动身份认证是 OCR 可以大显身手的另一个领域。在互联网金融和海关等领域,用户/旅客需要提供身份证明信息,例如身份证和护照。自动识别和分析所提供的文件需要 OCR 读取和提取文本内容,并且可以自动化并大大加速此类过程。一些公司已经开始研究基于人脸和身份证的识别,例如 MEGVII (Face++) 。
-
增强计算机视觉 :由于文本是理解场景的重要元素,OCR 可以通过多种方式协助计算机视觉。在自动驾驶汽车的场景中,嵌入文本的面板承载着重要信息,例如地理位置、当前交通状况、导航等。目前已有多项关于自动驾驶汽车文本检测和识别的研究 。迄今为止最大的数据集 CTW 也特别强调了交通标志。另一个例子是即时翻译,其中 OCR 与翻译模型相结合。当人们旅行或阅读外语文档时,这非常有用且节省时间。谷歌的翻译应用程序7 可以执行这种即时翻译。类似的应用程序是配备 OCR 的即时文本转语音软件,它可以帮助视障人士和文盲 。
-
智能内容分析:OCR还允许行业进行更智能的分析,主要用于视频分享网站和电子商务等平台。 可以从图片和字幕以及实时评论字幕(用户添加的一种浮动评论,例如Bilibili 和Niconico 中的评论)中提取文本。一方面,这些提取的文本可用于自动内容标记和推荐系统。它们还可用于执行用户情绪分析,例如视频的哪一部分最吸引用户。另一方面,网站管理员可以对不适当和非法的内容(例如恐怖主义宣传)进行监督和过滤。
Conclusion and Discussion
Status Quo
- 算法:过去几年,文本检测和识别算法取得了长足发展,这主要得益于深度学习的蓬勃发展。深度学习模型取代了手动搜索和设计模式和特征。随着模型能力的提升,定向和弯曲文本检测等挑战引起了研究的关注,并取得了长足的进步。
- 应用:除了努力为各种图像提供通用解决方案外,这些算法还可以训练并适应更具体的场景,例如 银行卡、身份证和驾驶执照。一些公司一直在提供此类特定于场景的 API,包括百度公司、腾讯公司和旷视科技公司。 最近开发的快速高效方法 也允许部署大规模系统 。 包括谷歌公司和亚马逊公司在内的公司也在提供文本提取 API。
Challenges and Future Trends
-
我们通过后视镜【Old book of tang.】审视现在,向未来迈进 。我们列出并讨论挑战,并分析场景文本检测和识别领域下一个有价值的研究方向是什么。
-
语言:世界上有 1000 多种语言,但目前大多数算法和数据集主要集中在英语文本上。英语的字母表比较小,而中文和日语等其他语言的字母表则大得多,有数万个符号。基于 RNN 的识别器可能会因符号集的扩大而受到影响。此外,某些语言的外观更为复杂,因此对图像质量等条件更为敏感。研究人员应首先验证当前算法对其他语言文本以及混合文本的推广效果如何。多种语言的统一检测和识别系统具有重要的学术价值和应用前景。一个可行的解决方案可能是探索能够捕捉不同语言文本实例共同模式的组合表示,并使用由文本合成引擎生成的不同语言的文本示例来训练检测和识别模型。
-
模型的鲁棒性:尽管目前的文本识别器已被证明能够很好地推广到不同的场景文本数据集,即使仅使用合成数据,但最近的工作(Scene text recognition from twodimensional perspective)表明,对错误检测的鲁棒性是一个不容忽视的问题。 实际上,在文本检测模型中也观察到了这种预测的不稳定性。 这种现象背后的原因尚不清楚。 一种猜测是,模型的鲁棒性与深度神经网络的内部运行机制有关。
-
泛化:除了 TextSnake 之外,很少有检测算法考虑过跨数据集的泛化能力问题,即在一个数据集上进行训练,在另一个数据集上进行测试。泛化能力很重要,因为某些应用场景需要适应不同的环境。例如,自动驾驶汽车中的即时翻译和 OCR 应该能够在不同情况下稳定运行:放大的图像中有大文本实例、远近单词、模糊单词、不同的语言和形状。仅将所有现有数据集汇集在一起是否足够,尤其是在目标域完全未知的情况下,这一点尚未得到证实。
-
评估:现有的检测评估指标源自一般物体检测的指标。基于 IoU 分数或像素级精度和召回率的匹配忽略了缺失部分和多余背景可能会损害后续识别过程的性能这一事实。对于每个文本实例,像素级精度和召回率都是很好的指标。但是,一旦它们与基本事实匹配,它们的分数就会被分配为 1:0,因此不会反映在最终的数据集级分数中。一种现成的替代方法是简单地将 DetEval 下的实例级分数相加,而不是先将它们分配为 1:0。
-
合成数据:虽然在合成数据集上训练识别器已成为常规做法,并且效果非常好,但检测器仍然严重依赖真实数据集。合成多样化且逼真的图像来训练检测器仍然是一项挑战。合成数据的潜在优势尚未充分挖掘,例如泛化能力。使用 3D 引擎和模型进行合成可以模拟不同的条件,例如光照和遮挡,因此值得进一步开发。
-
效率:基于深度学习的方法的另一个缺点是效率。当前大多数系统在没有 GPU 或移动设备的计算机上部署时无法实时运行。除了在其他任务中已被证明有效的模型压缩和轻量级模型外,研究如何为文本相关任务制定自定义加速机制也很有价值。
-
更大更好的数据集:大多数广泛采用的数据集的大小都很小(约 1k 张图像)。值得研究的是,当前算法获得的改进是否可以扩大规模,或者它们只是更好的正则化的偶然结果。此外,大多数数据集仅标有边界框和文本。 对不同属性的详细注释(例如艺术字和遮挡)可能会为研究人员提供针对性指导。最后,以现实世界挑战为特征的数据集对于推进研究进展也很重要,例如产品上密集的文本。另一个相关问题是大多数现有数据集没有验证集。由于对测试集的过度拟合,当前报告的评估结果实际上很可能向上偏差。我们建议研究人员应专注于大型数据集,例如 ICDAR MLT 2017、ICDAR MLT 2019、ICDAR ArT 2019 和 COCO-Text。
集:大多数广泛采用的数据集的大小都很小(约 1k 张图像)。值得研究的是,当前算法获得的改进是否可以扩大规模,或者它们只是更好的正则化的偶然结果。此外,大多数数据集仅标有边界框和文本。 对不同属性的详细注释(例如艺术字和遮挡)可能会为研究人员提供针对性指导。最后,以现实世界挑战为特征的数据集对于推进研究进展也很重要,例如产品上密集的文本。另一个相关问题是大多数现有数据集没有验证集。由于对测试集的过度拟合,当前报告的评估结果实际上很可能向上偏差。我们建议研究人员应专注于大型数据集,例如 ICDAR MLT 2017、ICDAR MLT 2019、ICDAR ArT 2019 和 COCO-Text。 -
GitHub - ZumingHuang/awesome-ocr-resources: A collection of resources (including the papers and datasets) of OCR (Optical Character Recognition).