您的位置:  首页 > 技术杂谈 > 正文

文本检测算法新思路:基于区域重组的文本检测

2022-02-16 12:00 https://my.oschina.net/u/4526289/blog/5448569 华为云开发者社区 次阅读 条评论
摘要:文本检测是文本读取识别的第一步,对后续的文本识别有着重大的影响。本文主要介绍基于区域重组的文本检测算法。

本文分享自华为云社区《技术综述十三:弯曲文本检测算法(一)》,作者: 我想静静 。

背景介绍

文本检测是文本读取识别的第一步,对后续的文本识别有着重大的影响。一般场景下,可以通过对通用目标检测算法进行配置修改,来实现对文本行的检测定位。然而在弯曲文字场景,通用目标检测算法无法实现对文字边框的精准表述。因此,近年来很多学术论文都提出了新颖的解决场景文字检测的算法,主要包括两种思路:1. 基于区域重组的文本检测;2. 基于像素分割的文本检测。本文主要介绍基于区域重组的文本检测算法。

PixelLink

PixelLink主要是针对相邻文本难以分离这个问题而提出的。该方法主要是预测文本/非文本区域,以及每个像素和它的上、下、左、右、左上、右上、左下、右下的像素之间的连接关系。在推理阶段,被预测为文本的像素和与该像素具有连接关系的像素被连接在一起。最后每个连接组件的最小外接矩形作为文本边框。

图1. PinxelLink 算法框架

由于使用了基于连通域的方法进行文本像素汇聚,导致该方法对噪声比较敏感,在推理阶段容易生成一些面积较小的false positives。作者通过去除掉短边小于10个像素或者面积小于300个像素的检测结果来缓解这个问题。

TextSnake

TextSnake 主要是针对使用四边形框不能有效地检测任意形状文本而提出的。该方法使用一系列重叠的圆盘来表示文本区域,每个圆盘有特定的圆心、半径、方向。如图1所示,通过预测文本区域、文本中心线(实际上是中心区域)、文本中心线上每个点对应的半径以及角度来重建文本轮廓。后处理阶段需要从预测的文本中心区域获得多个中心点作为圆盘的圆心,然后根据圆心对应的半径画圆,最后将所有圆的轮廓包围起来得到最终的文本边界框。

图2. TextSnake 文本表征方法

图3. 中心点机制

获得圆盘中心点的步骤如图3所示,首先在预测的文本中心区域随机取一个点,然后根据预测的方向做该点的切线和法线,法线和文本中心区域的两端的交点的中点(图(a)的红点)即是该处的中心点(作为圆盘的圆心)。中心点沿着两个相反的方向前进一定的步长,得到两个新的点,而后根据这两个新的点再寻找对应的中点。以此类推,直到进行到文本中心区域的两端。

该方法能有效地检测任意形状、方向的文本,但是后处理比较复杂且耗时。

CRAFT

CRAFT主要是针对基于字符级的文本检测方法对于曲形文本检测存在限制的问题而提出的,但同样适用于弯曲文本检测。该论文的思路是通过回归字符和字符间的亲和力来检测任意形状文本,这里的亲和力是用于表示相邻的字符是否属于同一个文本实例。此外,由于很多数据集没有提供字符级标注,本文提出一个弱监督算法来从字级标注中生成字符级标注。

图4. CRAFT网络架构

如图4所示,字符区域和相邻字符亲和力都是通过一个通道进行回归得到。

图5. CRAFT 字符区域的ground-truth生成方法

用于训练模型的字符区域得分和亲和力得分的ground truth生成过程如图5所示。对于字符区域得分,首先生成一个2D高斯图,然后计算该高斯图变换到对应的字符框的透视变换矩阵,最后使用这个矩阵将2D高斯图变换到相应的字符区域。对于亲和力得分的ground-truth的生成也是使用相同的方法,前提只需要获得亲和力框。获得亲和力框的过程如下:1. 每个字符框连接对角线将字符框划分为4个三角形,取上下方的三角形的中心作为亲和力框的顶点。2.相邻两个字符框得到的2个上三角形和下三角形的中心作为四边形的顶点构成了一个亲和力边框。

弱监督字符生成算法生成字符伪标签的过程: 1. 使用在合成数据集训练好的模型预测剪裁下来的文本区域的字符区域得分;2. 使用分水岭算法得到每个字符区域;3. 将坐标变换到原图得到实际的字符边框坐标。

图6. CRAFT 弱监督学习过程

后处理:在推理阶段,预测出字符和亲和力图之后,置信度大于指定阈值的字符区域和亲和力区域都被置为1。然后标记每个连通区域。最后,对于四边形文本,使用最小外界矩形作为边框。

图7. 弯曲文本边框重组过程。

对于曲形文本,获得文本轮廓的过程如图7所示:第一步是沿着字符的方向找到每个字符区域的局部最长线;每条线的中心连接起来的线为中心线;每条局部最长线旋转到与中心线垂直;两端的线移动到文本区域的两端;将所有端点连接得到曲形文本边框。

本文主要介绍了基于区域重组的文本检测算法,下篇文章将继续介绍基于像素分割的文本检测算法,敬请关注。

Reference

[1]. Deng D, Liu H, Li X, et al. Pixellink: Detecting scene text via instance segmentation[C] //Proceedings of the AAAI Conference on Artificial Intelligence. 2018, 32(1).

[2]. Long S, Ruan J, Zhang W, et al. Textsnake: A flexible representation for detecting text of arbitrary shapes[C]//Proceedings of the European conference on computer vision (ECCV). 2018: 20-36.

[3]. Baek Y, Lee B, Han D, et al. Character region awareness for text detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 9365-9374.

 

点击关注,第一时间了解华为云新鲜技术~

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接