【技术白皮书(2)】第三章第三节:端到端的文本检测与识别方法
- 2023-05-24 17:24:00
- 刘大牛 转自文章
- 231
3 . 3 端到端的 文本 检测与识别方法
基于深度学习的可端到端训练的自然场景检测与识别算法 (text spotting) 由于其简洁高效且统一的结构 , 逐渐取代了过去将检测与识别分阶段训练然后拼接在一起的方案 , 成为自然场景文本检测与识别的主流研究方向之一。端到端自然场景文本检测和识别网络一般都共享特征提取分支 , 根据提取的特征进行文本检测 , 然后将检测得到的文本特征送入识别模块进行文本识别。
目前的主流算法也可以分成单阶段和两阶段两大类两阶段的方法都是基于目标检测和实例分割中常用的算法 Faster R-CNN 和 Mask R-CNN 。
Li 等人 (2017a) 提出了第 1 个基于深度学习的端到端自然场景文本检测和识别算法 , 该方法基于 Faster R-CNN 进行检测 , 将通过 RoI-Pooling 提取的共享特征送入基于注意力机制 (Attention) 的识别器进行文本识别 , 但该方法只能检测识别水平方向的文本。
Lyu 等人 (2018b) 基于 Mask R-CNN 提出了 MaskTextSpotter, 该方法在 RoI-Align 之后额外增加了一个单字实例分割的分支 , 对文本的识别也是依赖于该分支的单字符分类。它能够检测并识别任意形状的文本 , 但训练的时候需要依赖字符级别的标注。作者后续在这个工作的基础上提出了 Mask TextSpotter v2(Liao 等 ,2021), 它加入了基于 Attention 机制的序列识别分支以提高识别器性能 , 其结构如图 13 所示。
Qin 等人 (2019) 也是在 Mask R-CNN 上进行改进 , 在预测出分割结果和文本最大外接检测框之后通过 RoI Masking 的操作得到只有文本区域的特征图送入文本识别网络。
后来 Liao 等人 (2020a) 考虑到 RPN 得到的文本候选区域对于任意形状的文本不鲁棒 , 于是提出了 MaskTextSpotter v3, 它首先设计了一个 Anchor-free 的分割区域提取网络 ( segmentation proposal network,SPN) 替代 RPN 预测任意形状文本的显著图 , 然后根据每个文本的掩码 mask 进行 Hard RoI Masking 操作 , 得到该文本的特征并送入识别网络 , 检测和识别分支的设计思路都沿用作者之前的 MaskTextSpotter v2 。
两阶段的端到端文本检测识别算法的性能通常受到 RoI-Pooling 等特征对齐操作的影响 , 所以很多学者也提出了单阶段的方法。 Liao 等人 (2017) 提出的 TextBoxes(Liao 等人 ,2017) 和 TextBoxes + +(Liao 等人 ,2018a) 都是基于单阶段目标检测器 SSD 进行改进 , 在得到文本检测框之后送入 CRNN(Shi 等人 ,2017b) 进行文本识别。其中 TextBoxes 只能识别水平文本 , 而 TextBoxes ++ 由于加入了角度预测 , 所以能识别任意方向的四边形文本。 He 等人 (2018) 使用 EAST 算法先检测到任意方向的文本 , 然后通过 Text Align 层在检测框内进行采样得到文本区域特征送入识别分支进行识别。 Liu 等人 (2018c) 提出的 FOTS(fast oriented text spotting) 也是和 He 等人的思想类似 , 同样使用 EAST 作为检测分支 , 不同之处在于 FOTS 是通过 RoI rotate 转换任意方向文本的特征送入识别器进行文本识别。
Xing 等人 (2019) 提出的 CharNet 则是和 Mask TextSpotter 一样使用单字符实例分割作为识别单元 , 检测单元则是基于单字检测和文本行检测的结合。此外 ,CharNet 引入了和 CRAFT 类似的迭代字符检测方法以得到单字检测结果 , 提高端到端的性能。
基于文本组件的方法还有 Feng 等人 (2019a) 提出的 Text-Dragon, 它不需要与 CharNet 一样的单字符级别标注 , 其检测分支先检测文本的任意四边形组件 , 然后通过 RoI slide 操作与 CTC 算法结合进行文本识别。 Qiao 等人 (2020a) 提出的 TextPerceptron 基于分割的方法对任意形状的文本进行检测 , 然后通过一个形状变换模块 (shape transform module) 将检测到的文本区域矫正成规则形态并送入识别分支。 Wang 等人 (2020a) 的工作则是通过检测任意形状文本的边界点 , 并通过 TPS 变换对文本进行矫正 , 然后送入识别分支输出最后的结果。
Liu 等人 (2020) 基于不需要锚点框 (anchor-free) 的单阶段目标检测器 FCOS(fully convolutional one-stage object detector) (Tian 等 ,2019) 提出了 ABCNet(adaptive Bezier-curve network), 用三次贝塞尔曲线对不规则文本进行建模 , 通过学习贝塞尔曲线控制点检测文本实例 , 并提出了 Bezier Align 更高效地连接检测与识别的特征 , 极大提高了端到端文本检测与识别的效率和性能 ,ABCNet 的结构如图 14 所示。
Baek 等人 (2020) 以他们之前自然场景文本检测的工作 CRAFT 为基础 , 提出 CRAFTS, 在检测到不规则文本后对区域特征做 TPS 变换得到矫正后的文本特征结合单字检测的结果 , 然后将其送入识别器进行文本识别。
3 .3.1 常用的端到端 文本 检测与识别模型
FOTS
FOTS 由中国科学院深圳先进技术研究所发表的论文《 FOTS: Fast Oriented Text Spotting with a Unified Network 》提出 。 一个统一的端到端可训练的快速定向文本定位(FOTS)网络,用于同时检测和识别,在两个互补的任务之间共享计算和视觉信息。
特别地,引入了旋转旋转来共享检测和识别之间的卷积特征。得益于卷积共享策略,FOTS与基线文本检测网络相比,计算 消耗 很小,并且联合训练方法学习了更多的通用特征,使 FOTS 方法比这两阶段方法表现得更好。实验ICDAR 2015,ICDAR 2017 MLT和ICDAR 2013数据集表明,该方法优于最先进的方法,在 ICDAR 2015上取得89.84%的F1,帧率达到22.6fps。
在本文中,提出同时考虑文本检测和识别。它产生了快速端到端训练的文本定位系统(FOTS)。与之前的两阶段文本定位相比, FOTS 的方法通过卷积神经网络学习更一般的特征,这些特征在文本检测和文本识别之间共享,而这两个任务的监督是互补的。由于特征提取通常需要大部分时间,因此它将计算范围缩小为一个单一的检测网络,如图1所示。连接检测和识别的关键是 ROIRotate ,它根据定向的检测边界框从特征图中得到合适的特征 。
F OTS 算法原理:
FOTS是一个端到端可训练的框架,它可以同时检测和识别自然场景图像中的所有单词。它由共享卷积、文本检测分支、旋转操作和文本识别分支四个部分组成。
其体系结构如图2所示。首先利用共享卷积的方法提取特征图。在特征图之上建立了基于全卷积网络的面向文本检测分支来预测检测边界框。旋转操作符从特征图中提取与检测结果对应的文本建议特征。然后将文本建议特征输入 循环 神经网络(RNN)编码器和基于神经网络的时序类分类(CTC)解码器进行文本识别。由于网络中的所有模块都是可微的,所以整个系统可以进行端到端进行训练。
backbone
共享 卷积层 的主干 网络 是ResNet-50 。受FPN 的启发, FOTS 连接了低级特征映射和高级语义特征映射。由共享卷积产生的特征图的分辨率为输入图像的1/4。文本检测分支使用共享卷积产生的特征输出文本的密集每像素预测。利用检测分支产生的面向文本区域的建议,所提出的旋转旋转将相应的共享特征转换为固定高度的表示,同时保持原始区域的高宽比。最后,文本识别分支识别区域提案中的单词。采用CNN和LSTM对文本序列信息进行编码,然后采用CTC解码器。
文本检测分支( the text detection branch)
受 EAST与DDRN的启发, FOTS 采用完全卷积网络作为文本检测器。 由于自然场景图像中有许多小文本框, FOTS 将共享卷积中原始输入图像的1/32到1/4大小的特征映射放大。 在提取共享特征之后,应用一个转换来输出密集的每像素的单词预测。 第一个通道计算每个像素为正样本的概率。 与EAST类似,原始文本区域的缩小版本中的像素被认为是正的。 对于每个正样本,以下4个通道预测其到包含此像素的边界框的顶部,底部,左侧,右侧的距离,最后一个通道预测相关边界框的方向。 通过对这些正样本应用阈值和NMS产生最终检测结果。
RoIRotate操作
RoIRotate对定向特征区域进行变换,得到轴对齐的特征图,如图4所示。在这项工作中,我们固定了输出高度,并保持高宽比不变,以处理文本长度的变化。与RoI pooling 和RoI Align相比,RoI旋转提供了一个更通用的提取感兴趣区域特征的操作。 FOTS 还与RRPN中提出的RRoI pooling 进行了比较。RRoI pooling 通过最大池化将旋转区域转换为固定大小的区域,同时我们使用双线性插值来计算输出的值。该操作避免了RoI与提取的特征之间的不一致,并使输出特征的长度成为变量,更适合于文本识别。
RoIRotate以共享卷积生成的特征图作为输入,生成所有文本提案的特征图,高度固定和高宽比不变。与目标分类不同,文本识别对检测噪声非常敏感。预测文本区域的一个小误差可能会切断几个字符,这对网络训练有害,因此 FOTS 在训练过程中使用地面真实文本区域而不是预测的文本区域。在测试时,应用阈值化和NMS来过滤预测的文本区域。旋转后,转换后的特征映射被输入到文本识别分支。
文本识别分支( the text recognition branch)
文本识别分支的目标是利用共享卷积提取和RoIRotate的区域特征来预测文本标签。考虑到文本区域中标签序列的长度,LSTM的输入特征只减少了两次(减少为1/4)沿着宽度轴通过共享的卷积从原始图像。否则,将消除紧凑文本区域中可区分的特征,特别是那些窄形字符的特征。 FOTS 的文本识别分支包括VGGlike 序列卷积、仅沿高度轴缩减的池、一个双向LSTM 、一个全连接和最终的CTC解码器。
实验结果:
F OTS 选择三个具有挑战性的公共基准数据集: ICDAR 2015、ICDAR 2017 MLT和ICDAR 2013对方法进行评估 。
ICDAR 2015是ICDAR 2015鲁棒阅读竞赛的挑战4,该竞赛通常用于定向场景文本检测和定位。该数据集包括1000张训练图像和500张测试图像。这些图像由谷歌眼镜捕获,不考虑位置,因此场景中的文本可以是任意方向。 对于文本识别任务,它提供了三个特定的词汇列表,供测试阶段参考,分别命名为“ STRONG ”、“W EAK ”和“G ENERIC ”。“S TRONG ”词典为每张图片提供 100个单词,包括图片中出现的所有单词。“ W EAK”词汇包括整个测试集中出现的所有单词。“ G ENERIC”词汇是一个90k单词词汇。在 训练 中,首先使用ICDAR 2017 MLT 训练 和验证数据集中的9000张图像对模型进行 训练 ,然后使用1000张ICDAR 2015 训练 图像和229张ICDAR 2013 训练 图像对模型进行微调。
ICDAR 2017 MLT是一个大型多语言文本数据集,包括7200个训练图像、1800个验证图像和9000个测试图像。 该数据集由来自 9种语言的完整场景图像组成,其中的文本区域可以是任意方向的,因此更具多样性和挑战性。这个数据集没有文本检测任务,所以只报告文本检测结果。
ICDAR 2013由229张训练图像和233张测试图像组成, 但与上述数据集不同,它只包含水平文本。本识别任务提供了“S TRONG ”、“W EAK ”和“G ENERIC ”词汇。。虽然 FOTS 方法是针对定向文本设计的,但该数据集的结果表明,所提出的方法也适用于水平文本。由于训练图像太少,首先使用 ICDAR 2017 MLT训练和验证数据集中的9000张图像来训练预训练模型,然后使用229张ICDAR 2013训练图像进行微调。
与以往将文本检测和识别分为两个不相关的任务的工作不同, FOTS 将这两个任务联合训练,并且文本检测和识别可以相互受益。为了验证这一点,我们构建了一个两阶段系统,其中文本检测和识别模型分别进行训练。在F OTS 网络中,检测网络是通过去除识别分支来构建的,同样,检测分支也是从原始网络中去除的,从而得到识别网络。对于识别网络,从源图像裁剪的文本行区域被用作训练数据,类似于以前的文本识别方法 【《 An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition 》 、 《 Reading scene text in deep convolutional sequences. 》 、 《 Star-net: A spatial attention residue network for scene text recognition 》】 。
如表 2、3、4所示, FOTS显著优于文本定位任务中的两阶段方法“O ur detection ”和文本定位任务中的“Our Two-Stage”。结果表明, F OTS的联合训练策略使模型参数达到了更好的收敛状态。
FOTS在检测方面表现更好,因为文本识别监控有助于网络学习详细的字符级特征。为了进行详细分析,我们总结了文本检测的四个常见问题,未命中:丢失一些文本区域,错误:将一些非文本区域错误地视为文本区域,拆分:将整个文本区域错误地拆分为几个单独的部分,合并:将几个独立的文本区域错误地合并在一起。如图5所示,与“O ur detection ”方法相比,FOTS大大减少了所有这四种类型的错误。具体来说,“O ur detection ”方法侧重于整个文本区域特征,而不是字符级特征,因此当文本区域内部存在较大差异或文本区域与其背景具有相似模式等情况下,该方法 效果不佳。因为文本识别监管迫使模型考虑字符的细微细节, FOTS学习具有不同模式的单词中不同字符之间的语义信息。它还增强了具有相似模式的角色和背景之间的差异。
如图5所示,对于未命中的情况,“我们的检测”方法未命中文本区域,因为它们的颜色与其背景相似。对于错误的情况,“O ur detection ”方法错误地将背景区域识别为文本,因为它具有“类似文本”的模式(例如,具有高对比度的重复结构条纹),而FOTS在考虑拟议区域中的字符细节的认识损失训练后避免了这种错误。对于拆分情况,“O ur detection ”方法将文本区域拆分为两个,因为该文本区域 的左侧和右侧具有不同的颜色,而 FOTS将该区域作为一个整体进行预测,因为该文本区域中的字符模式是连续且相似的。对于合并案例,“O ur detection ”方法错误地将两个相邻的文本边界框合并在一起,因为它们太近且具有相似的模式,而FOTS利用文本识别提供的字符级信息并捕获两个单词之间的空间
在 ICDAR 2015 数据集的实验结果如下图所示:
在 ICDAR 2017 数据集的实验结果如下图所示:
在 ICDAR 2013 数据集的实验结果如下图所示:
将 FOT与最先进的方法进行比较。如表2、3、4所示, F OTS的方法在所有数据集中都比其他方法有很大的优势。由于ICDAR 2017 MLT没有文本检测任务, 实验 只报告文本检测结果。ICDAR 2013中的所有文本区域都由水平边界框标记,而其中许多区域略微倾斜。由于 F OTS的模型是使用ICDAR 2017 MLT数据进行预训练的,因此它还可以预测文本区域的方向。 F OTS的最终文本定位结果保持预测方向以获得更好的性能,并且由于评估协议的限制, F OTS的检测结果是网络预测的最小水平外接矩形。值得一提的是,在2015年ICDAR文 本识别任务中,F OTS 的方法在 F measure 方面比之前的最佳方法 【《 Detecting oriented text in natural images by linking segments. 》、《 An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition 》 】要好15%以上。
对于单尺度测试,对于ICDAR 2015、ICDAR 2017 MLT和ICDAR 2013,FOTS分别将输入图像的长边大小调整为2240、1280、920,以获得最佳结果, F OTS采用3-5尺度进行多尺度测试。
结论:
FOTS,一个面向场景文本识别的端到端可训练框架。提出了一种新的旋转操作,将检测和识别统一到端到端的流水线中。 F OTS 具有 模型小,速度快,精度高,支持多角度 等 特点 , 在标准基准测试上的实验表明, F OTS 的 方法在效率和性能方面明显优于以前的方法。
ABCNet
ABCNet(Adaptive Bezier Curve Network)是一个端到端的可训练框架,用于识别任意形状的场景文本。直观的pipeline如图所示。采用了单点无锚卷积神经网络作为检测框架。移除锚定箱可以简化我们任务的检测。该算法在检测头输出特征图上进行密集预测,检测头由4个步长为1、填充为1、3×3核的叠层卷积层构成。接下来,分两部分介绍拟议的ABCNet的关键组成部分:
1) 贝塞尔曲线检测
2) bezier align和识别分支。
ABCNet 算法原理:
Bezier Curve Detection
为了简化任意形状的场景文本检测,采用回归方法,我们认为贝塞尔曲线是曲线文本参数化的理想概念。Bezier曲线表示一个以伯恩斯坦多项式为基的参数曲线c (t)。其定义如式(1)所示。
式中,n表示度数,bi表示第i个控制点, 表示伯恩斯坦基多项式,如式(2)所示:
其中 是二项式系数。为了用贝塞尔曲线确定文本的任意形状,我们从现有的数据集中全面地观察任意形状的场景文本。在现实世界中,我们通过经验证明,三次贝塞尔曲线(即n为3)在实践中对不同类型的任意形状的场景文本是足够的。三次贝塞尔曲线如图所示。
Bezier Ground Truth Generation
在本节中,将简要介绍如何基于原始注释生成贝塞尔曲线地面真值。任意形状的数据集,例如Total text和CTW1500,对文本区域使用多边形注释。给定曲线边界上的注记点 ,其中pi表示第i个注记点,主要目标是获得方程(1)中三次Bezier曲线c(t)的最佳参数。为此,可以简单地应用标准最小二乘法,如等式(4)所示:
这里m表示曲线边界的注释点数量。对于total-text和ctw1500,m分别为5和7。t是通过使用累积长度与多段线周长的比率来计算的。根据方程(1)和方程(4),我们将原始的多段线注释转换为参数化的贝塞尔曲线。注意,我们直接使用第一个和最后一个注释点分别作为第一个(b0)和最后一个(b4)控制点。可视化比较如图5所示,其结果表明,生成的结果在视觉上甚至比原始地面真实性更好。此外,基于结构化的Bezier曲线边界框,可以很容易地使用 前文 中描述的Bezier对齐将曲线文本扭曲成水平格式,而不会产生明显的变形。Bezier曲线生成结果的更多示例如图所示。 ABCNet 方法的简单性允许它在实践中推广到不同类型的文本。
Bezier Curve Synthetic Dataset
对于端到端的场景文本识别方法,总是需要大量的自由合成数据,如表2所示。然而,现有的800k SynText数据集只为大多数直文本提供四边形边界框。为了丰富和丰富任意形状的场景文本,我们尝试用VGG合成方法合成了150k个合成数据集(94723个图像包含大部分直线文本,54327个图像包含大部分曲线文本)。特别地,从COCO文本中过滤出40k个无文本背景图像,然后用[32]和[17]准备每个背景图像的分割遮罩和场景深度,用于以下文本渲染。为了扩大合成文本的形状多样性,对VGG合成方法进行了改进,将场景文本与各种艺术字体和语料库合成,并对所有文本实例生成多边形标注。然后使用注释通过Bezier Ground Truth Generation中描述的生成方法生成Bezier Ground Truth 。综合数据的示例如图8所示。
Bezier Align
为了实现端到端训练,以往的大多数方法都采用了各种采样(特征对齐)的方法来连接识别分支。通常,一个采样方法表示一个网络内的区域裁剪过程。换句话说,给定一个特征图和感兴趣区域(RoI),使用抽样方法来选择RoI的特征,并有效地输出一个固定大小的特征图。 然而,以往基于非分割的方法的采样方法,如 RoI Pooling , RoIRotate , Text-Align-Sampling or RoI Transform ,都不能正确地对齐任意形状文本的特征(RoISlide大量预测片段)。利用一个紧凑的贝塞尔曲线边界盒的参数化性质, ABCNet 提出了用于特征采样的BezierAlign。
Bezieralign是从RoIAlign 扩展而来的。与RoIAlign不同,BezierAlign的采样网格的形状不是矩形的。相反,任意形状的网格中的每一列都与文本的贝塞尔曲线边界正交。采样点的宽度和高度分别具有等距间隔,它们相对于坐标进行双线性插值
形式化地给出输入特征映射和Bezier曲线控制点,同时处理hout×wout大小的矩形输出特征映射的所有输出像素。以具有位置(giw,gih)的像素gi(来自输出的特征图)为例,通过公式(5)计算t:
然后用t和方程(1)计算上Bezier曲线的边界点tp和下Bezier曲线的边界点bp。利用tp和bp,我们可以通过方程(6)对采样点op进行线性索引:
利用op的位置,可以很容易地应用双线性插值来计算结果。
识别分支
得益于共享的主干特性和BezierAlign,设计了一个轻量级的识别分支,如表1所示,以便更快地执行。 它由6个卷积层、1个双向LSTM 层和1个全连接层组成。基于输出分类分数,使用一个经典的CTC Loss 来进行文本字符串(GT)对齐。请注意,在训练过程中,直接使用生成的Bezier曲线GT来提取RoI特征。因此,检测分支并不影响识别分支。在推理阶段,RoI区域被检测Bezier曲线所取代。实验部分的消融研究表明,所提出的BezierAlign可以显著提高识别性能。
实验结果:
A BCN ets在 两个最近引入的任意形状的场景文本基准上评估了方法,即Total-Text和CTW1500,它们也包含大量的连续文本。 A BCN ets 还在Total-Text进行了简化研究,以验证方法的有效性。
数据集: Total-Text数据集是在2017年提出的最重要的任意形状场景文本基准之一。它收集了各种场景,包括类文本复杂场景和低对比度的背景。它包含1555张图像,其中1255张用于训练,300张用于测试。为了模拟真实的场景,这个数据集的大多数图像都包含大量的常规文本,同时保证每个图像至少有一个弯曲文本。文本实例使用多边形进行单词级注释。它的扩展版本改进了训练集的注释,按照文本识别序列为每个文本实例添加了一个固定的10点注释。数据集只包含英文文本。为了评估端到端的结果,我们使用与以前相同的度量方 法,即使用 F-measure来测量单词的准确性。
简化研究 :BezierAlign。为了评估提出的组件的有效性, 实验 对这个数据集进行简化研究。首先对采样点的数量如何影响端到端的结果进行敏感性分析,如表4所示。从结果中可以看出,采样点的数量对最终的性能和效率有很大的影响。 实验 发现在 (7,3 2 ) F-measure与FPS之间达到最佳平衡,在接下来的实验中作为最后的设置。进一步评估BezierAlign , 表3中显示的结果表明,BezierAlign可以显著改善端到端结果。定性的例子如图9所示
简化研究:贝塞尔曲线检测。 另一个重要的组成部分是贝塞尔曲线检测,它可以实现任意形状的场景文本检测。因此,也进行了实验来评估的时间消耗贝塞尔曲线检测。表5中的结果表明与标准边界盒检测相比,贝塞尔曲线检测没有引入额外的计算。
先进性对比: ABCNet的一些结果质量如图10所示。结果表明,该方法能准确地检测和识别任意形状的文本。此外,ABCNe的方法还可以很好地处理直文本,具有近似四边形的紧密边界框和正确的识别结果。图中也出现了一些错误,这些错误主要是由于错误地识别了其中一个字符。
CTW1500实验结果
数据集: CTW1500是2017年提出的另一个重要的任意形状场景文本基准。与Total-Text相比,该数据集包含中英文文本。此外,注释是基于文本行级别的,它还包括一些类似文档的文本,即,无数可以堆叠在一起的小文本。CTW1500包含1k训练图像,500张测试图像。
实验:由于该数据集中中文文本的占用非常小,训练时直接将所有中文文本视为“未见”类 。实验结果如表6所示,表明在端到端场景文本定位方面,ABCNet可以显著地超越以前最先进的方法。此数据集的示例结果如图11所示。从图中,可以看到一些长文本行实例包含许多单词,这使得完全匹配单词准确性变得非常困难。也就是说一个字符识别错误将导致整个文本零分。
关键字 :算法, 人工智能, 智能识别, 文本识别
联系人: | 透明七彩巨人 |
---|---|
Email: | weok168@gmail.com |