前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于分割思想的文本检测算法

基于分割思想的文本检测算法

作者头像
带萝卜
发布2020-10-23 14:50:57
1.7K0
发布2020-10-23 14:50:57
举报

本文使用 Zhihu On VSCode 创作并发布

在文本检测任务中,较少出现字符重合的情况(重合的字符人也认不出来啊),所以基于分割思想的文本检测算法也能得到很好的效果。

1. 使用人工特征

文本检测领域常见的人工特征算法有两种:SWT和MSER,这些方法的效率比滑窗法更高,精度也更好。

SWT算法思路:图片中的文本都具有一致宽度的线条。

其计算步骤如下:

  1. 计算梯度图;
  2. 在梯度图中寻找梯度方向相反的边缘像素对;
  3. 根据像素对得到连通域,然后使用人工规则对连通域进行筛选,得到字符区域;
  4. 将字符区域拼接成文本行。

MSER算法的思路:单个文本内部的像素值不会有太大差异, 类似于分水岭算法

其计算步骤如下:

  1. 从0到255,选择不同的阈值对图片进行二值化;
  2. 记录下不同阈值下的二值化图像的各个连通域的面积变化;
  3. 寻找在一定阈值范围内,面积变化较为稳定的连通域;
  4. 根据人工规则从这些稳定连通域中筛选出文本区域;

opencv里面有MSER的实现,可以直接拿来用。

连通域法更关注局部的特征,这种局部特征难以区分图片中的类字符物体,如何剔除误检是这种方法首要解决的问题。

除这两种算法以外,还可以尝试使用一些通用的局部特征算子,我曾经用过harris角点,在文档和证件场景下的效果还是不错的。

2. 深度学习文本检测

深度学习算法在误检方便表现比传统方法要好。

另外,虽然文本检测中比较少有重合字符,却还是需要处理字符粘连的情况,所以各种深度学习的模型在得到连通域之后,都需要再进行一步特殊的后处理过程。实现字符实例之间的区分。

下面四个算法采用了四种不同的方式实现了文本实例的分隔。

EAST

网络结构如下:

EAST

模型的输出包含两个部分:

一个是score map,是图片中的每个像素为文本像素的可能性(text/non-text),其训练标签是ground truth基础上进行收缩之后得到的分割图

一个是score map上每个对应的检测框的坐标,这里的坐标有两种表示方式:(1)点到四个边界的距离+检测框的倾斜角度(2)检测框的四个顶点坐标。

因为score map上每个达到阈值的点都会对应一个检测框,会产生很多高度重合的检测框。所以EAST算法中在NMS之前添加了检测框融合的操作,称之为LocalNMS。

注意:

  1. 倾斜矩形或者四边形的LocalNMS计算量较大,纯靠numpy或者pytorch接口很难实现实时检测,需要借助shapely、opencv或者用C/C++自己写。
  2. 因为感受野的问题,EAST对长文本效果较差,有长文本检测需求的可以尝试AdvancedEAST。

PixelLink

网络结构如下:

PixelLink

网络的输出也包含两个部分:

一个是score map, 也是图片中的每个像素为文本像素的可能性(text/non-text)。

一个是link predict, 即每个像素的八个相邻位置与该像素同属一个文本实例的可能性。

在预测过程时,只要有一个方向的link成立则认为两个像素属于同一个文本实例,然后使用并查集算法将这些像素点合并,合并之后用opencv找最小包含矩形即可。

PSENet

网络结构如下:

PSENet

在训练之前,将ground truth进行多次不同比例的收缩,并生成对应的分割图。

预测不同粗细的文本区域,从细区域开始使用广度优先搜索,逐级膨胀得到连通域。

CRAFT

全名:Character Region Awareness for Text Detection

网络结构如下:

CRAFT

网络的输出也包含两个部分:

一个是region map, 是字符区域的高斯map 一个是affinity map, 是字符之间的连接区域的高斯map

对于icdar15这样的只提供了单词级标签的数据集,需要借助预训练的模型来完成字符分割。

字符级的高斯map让文本实例的分隔变得更加简单。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用人工特征
  • 2. 深度学习文本检测
    • EAST
      • PixelLink
        • PSENet
          • CRAFT
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档