首发:AI公园公众号
作者:Noé
编译:ronghuaiyang
导读
回顾了场景文本检测和识别领域的3篇论文,分别是检测,识别以及端到端的方法。
基于深度学习的方法可以在自然图像中检测和识别复杂的文本实例。
介绍
光学字符识别(OCR)包括自动解码图像中的文本实例。此任务的复杂性因应用而异。一方面,从扫描的报纸上阅读单词是比较容易的,因为文本是直的,一致的,和背景有很好的对比。另一方面,在自然图像中使用创造性字体的弯曲文本实例不仅读起来更有挑战性(文本识别):它还需要一个棘手的初步步骤来定位图像中的文本(文本检测)。传统的计算机视觉技术可以很好地处理前者,而后者需要先进的(SOTA)深度学习方法结合CNNs和RNNs。
阅读场景文本,即阅读文本实例“in the wild”,需要两个步骤:
- 文本检测:找到图像中的文本实例的位置。
- 文本识别:解码检测到的文本实例的每个字符。
场景文本检测的pipeline
由于字体的复杂性,上图中的“_Metropolitain_”和“_Rome_”这两个单词很有挑战性!
为了更好地理解场景文本检测和识别,本文会讨论:
- Textsnake [Long et al., 2018],一种文本检测算法,能够处理非常复杂的文本形状。
- MORAN [Luo et al., 2019],一种使用校正网络和注意力机制纠正和阅读复杂文本框的文本识别算法。
- FOTS [Liu et al., 2018],一种共享检测步骤和识别步骤卷积的端到端方法,提高了鲁棒性和效率。
- 一个有趣的实验结果,将FOTS和Textsnake结合。
文本检测
这些SOTA检测算法都使用了U-net结构。它们通常由于选择输出的通道和后处理方法而有所不同。事实上,分割通常不够精确,后处理是重建文本框的必要条件。
U-net用在上下文检测中
下图显示的编码器每一步的分割图是在那一层执行一次反卷积的结果(图像来自[Zhang et al., 2019])。这种可视化强调了编码器是如何以失去空间信息的代价逐步提取深度特征的。因此,逐步地将编码的映射合并到解码的映射(灰色箭头)可以取回编码期间丢失的空间信息。
给出了U-net的总体结构,并在每个编码步骤中给出了深层次特征的可视化描述。每一步的卷积和通道的数量取决于主干架构。
Textsnake: A Flexible Representation for Detecting Text of Arbitrary Shapes [Long et al., 2018]
与大多数检测算法不同,Textsnake处理任意形状的文本结构。为此,算法计算一条1像素的粗线,穿过文本实例的中心,如下图中的绿色所示。与这条线的每个点相关的半径r使绘制描绘文本区域的圆成为可能。此外,角度θ表示用于拉平文本时所必要的旋转。
Textsnake的检测参数
输出通道如下:
- TR (Text Region): 指示了文本和非文本区域的分割图。
- TCL (Text Center Line): 穿过文本实例中心的区域。
- radius, cos θ, sin θ: 用来构建圆所需的参数。
对于TCL的训练,只考虑TR中的像素。因此,TCL不学习区分文本和非文本像素,从而简化了其任务。因此,TR图可以用来掩码TCL图从而可以过滤误报。然后使用迭代striding算法为剩下的每个TCL区域获取一串像素。最后,重建文本框。
Textsnake的输出以及文本框重建pipeline
Textsnake只需要文本框坐标来训练。事实上,训练TCL图不需要任何额外的标记,因为它的GT可以直接从边界框计算出来(更多细节见论文)。
该算法可以在in the wild场景准确检测出复杂文本框的轮廓。下图b和c展示了Textsnake的将文本拉平的能力。它在稍微弯曲的文本实例上执行得非常好。但是,随着角度的增加,从“STARBUCKS”的首字母和尾字母可以看出,矫正的质量会下降。
Textsnake的结果,(a) 绿色: ground truth. 黄色: 检测到的文本轮廓。(b) 文本确认和矫正。(c) 和 (b) 一样,但是用的是我们自己的实现
文本识别
文本识别主要有两种方法,都是使用CNN对图像进行预处理,然后使用RNN对文本进行解码。
- CRNN + CTC [Shi et al., 2016]:目前最常用的方法(例如Tesseract)。CRNN = 在CNN后面接一个RNN。
- CNN + Attention RNN:目前文本识别的主要研究领域,本节详细介绍的论文就是采用这种方法。
文本识别中的注意力RNNs
如上所述,CNN首先对输入的文本图像进行预处理。这包括(大多数时候)通过将图像高度降低到1像素和增加通道数量来使图像变平。然后,得到的阵列在宽度轴上被分割成w个向量,w是宽度,构成注意力神经网络的输入。
注意力机制允许RNN在产生每个输出时,即文本中的每个字母,聚焦于正确的输入。因此,它指定了应该对每个输入(即图像的每个区域)给予多少关注,而不管它们在序列中的哪个位置。下图是注意力机制的示意图。
注意力机制
Moran: A multi-object rectified attention network for scene text recognition [Luo et al., 2019]
Moran的结构结合了两个网络。第一个检测网络MORN在第二个检测网络ASRN读取文本之前对文本框进行了修正(与Textsnake一样,但并非所有的检测网络都是这样做的)。
- MORN首先处理输入图像(即文本框),用CNN对图像进行校正。为此,它的输出图为图像的每个对应区域指定在x和y方向(即2个输出映射)上应该移动的像素数,以拉直文本。
- ASRN使用注意力RNN来解码文本。自然图像中大量的噪声经常误导网络聚焦在图像的错误部分。ASRN通过一种称为分部拾取的正则化方法克服了这个问题。它由随机混合邻近输入的注意力权重的分数组成。
MORAN结构
MORAN的一个显著特点是它只需要弱标签,即输出文本。事实上,网络是用单一的损失函数端到端训练的。通过向后传播解码错误,MORN可以学会矫正图像!
MORN在弯曲文本中的表现不如在倾斜文本中的好,下图a。然而,它仍然设法删除了可能混淆注意力层的无用特征(红色圆圈)。为了解码文本,ASRN将其注意力一个一个地吸引到每个字母上(下图b)。此外,由于分部拾取,它不会被阴影等特征混淆。虽然MORN矫正还远远不够完美,但它足够有效地允许ASRN正确解码文本(下图c)。
Moran的结果 (a) MORN的结果。(b) 使用/不使用分部拾取的解码。(c) MORAN和其他网络的比较。
端到端的方法
Fots: Fast oriented text spotting with a unified network [Liu et al., 2018]
用于文本检测和识别的神经网络都是为了从输入图像中提取文本特征。因此,它们是高度相关的。因此,对这两个步骤使用不同算法的主要缺点是计算两次相同的信息。FOTS通过在CRNN+CTC解码器(上述)中重用检测算法EAST (Efficient and Accurate Scene Text Detector) [Zhou et al., 2017]的卷积计算解决了这个问题。
在FOTS中,文本框直接从共享特征中提取,而不是从原始图像中提取。在共享特征表示检测步骤的倒数第二层生成的特征映射,即计算检测输出的映射。因此,识别部分可以使用较小的CNN,因为它的输入已经被处理过了。
FOTS非常高效。事实上,它利用EAST来避免无用的计算,EAST以其高速和共享特征而闻名。该算法还可以处理倾斜的文本实例,方法是将从共享特征中裁剪出来的相应文本框进行调整。此外,端到端方法提高了检测步骤的鲁棒性。
FOTS和传统方法的比较
实验:Textsnake 和 FOTS 结合
在之前的实验中,我实现了一个基于FOTS的自定义算法,但是检测部分使用的是Textsnake而不是EAST。弯曲的文本可以被矫正,但是在共享特征内的矫正而不是对原始图像的矫正。该算法在检测和识别方面都有很好的表现。然而,对文本的纠正有时是非常糟糕的,甚至对人来说识别都是一个挑战。但在下图的情况下,解码器的输出效果很好:只有“MEDECINS”中的“M”缺失了!实际上,共享特征的每个元素都有一个很大的感受野,因此,框中的元素包含关于字母缺失部分的信息。例如,关于“MONDE”中字母“E”缺失部分的信息包含在共享特征中。
结合FOTS和Textsnake得到的结果,文本校正效果较差,但识别效果更好。请注意,从原始图像校正的文字只是为了可视化。
参考文献
Liu, Xuebo, et al. "Fots: Fast oriented text spotting with a unified network." _Proceedings of the IEEE conference on computer vision and pattern recognition_. 2018.
Long, Shangbang, et al. "Textsnake: A flexible representation for detecting text of arbitrary shapes." _Proceedings of the European conference on computer vision (ECCV)_. 2018.
Luo, Canjie, Lianwen Jin, and Zenghui Sun. "Moran: A multi-object rectified attention network for scene text recognition." Pattern Recognition 90 (2019): 109-118.
Shi, Baoguang, Xiang Bai, and Cong Yao. "An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition." IEEE transactions on pattern analysis and machine intelligence 39.11 (2016): 2298-2304.
Zhou, Xinyu, et al. "East: an efficient and accurate scene text detector." _Proceedings of the IEEE conference on Computer Vision and Pattern Recognition_. 2017.
Zhang, Zheng, et al. "Multi-oriented text detection with fully convolutional networks." _Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition_. 2016.
—END—
英文原文:https://www.sicara.ai/blog/ocr-text-detection-recognition
推荐阅读
关注图像处理,自然语言处理,机器学习等人工智能领域,请点击关注AI公园专栏。
欢迎关注微信公众号