文本检测综述

OCR(Optical Character Recignition) 光学字符识别

文本检测 + 文本识别

传统OCR

图像预处理;版面处理;图像切分;特征提取、匹配及模型训练;识别后处理

  1. 预处理:灰度化、二值化、倾斜检测与矫正,平滑、规范化
  2. 版面处理:版面分析、版面理解、版面重构
  3. 图像切分:行(列)切分和字切分
  4. 特征提取与模型训练:特征提取及匹配、模型训练
  5. 识别后处理:版面恢复和识别矫正

文本检测:

SWT(Stroke Width Transform) 笔画宽度变化

MSER(Robust wide-baseline stereo from maximally stable extremal regions) 最大稳定极值区域

对文字形状变化(文字模糊、笔画粘连、断笔、黑白不均、油墨反透)的适应性和抗干扰性比较差


深度OCR

简单说一下为什么通用目标检测不能用于文本检测:

目标检测

候选区域、特征提取、分类、位置精修

RCNN

  1. 一整图像生成1K~2K个候选区域(Selective Search)
  2. 对每个候选区域,使用深度网络提取特征
  3. 特征送入每一类的SVM分类器,判别是否属于该类
  4. 使用回归器精细修正候选框位置

Fast-RCNN

  1. 整张图归一化后直接送入深度网络
  2. 在ROI Pooling层才输入候选框
  3. 然后再进行分类和回归

Faster-RCNN

区域生成网络 + Fast-RCNN (使用区域生成网络代替 Fast-RCNN中的 Selective Search 方法)

文本检测综述_第1张图片

  1. 基础网络做特征提取
  2. 特征送入RPN做候选框提取
  3. 分类层对候选框内物体进行分类,回归层对候选框的坐标进行精细调整

文本特点:

使用通用目标检测方法做文本检测效果不好,因为文本有自己独有的特点,这种通用的文本检测并不能很好的解决文本的这些特点:

  1. 文本大多数以长矩形形式存在,与普通的目标检测中的物体不一样(长宽比接近于1)
  2. 普通物体存在明显的闭合边缘轮廓,而文本没有
  3. 文本中包含多个文字,而文字之间是有间隔的,如果检测做的不好,我们就会把每个字都当成文本行给框出来而非整行作为文本框,这与我们的期望不一样

基于以上文本检测的特点,必须对Faster-RCNN这类通用网络进行改进,设计出适合文本检测全新架构。


文本检测

1. CTPN(Detecting Text in Natural Image with Connectionist Text Proposal Network)

文本检测综述_第2张图片

  1. 考虑到文本框以长矩形存在,首先检测文本的一小部分,判断是不是文本的一部分,然后将同一个文本框的小文本框合并,得到一个完整的、大的文本框。
  2. 考虑到文本都是连续字符,连续的上下文本信息很重要,所以使用了RNN(BLSTM)来进一步提升效果。还有就是如果仅仅根据一个文本框的信息预测该框内含不含有文字是很草率的,如果参考这个框的左边和右边的信息后,也就是使用RNN将左右信息利用起来,会大大提升预测的准确率。
  3. 对 y 轴中心和高度的偏移进行回归(宽度固定为16,高度在 11-283之间)
  4. 使用边缘细化方法精修边缘
  5. 将各部分进行文本行构建

文本检测综述_第3张图片

缺点:对于非水平文本的检测效果不好,比如弯曲文本、多向文本(垂直文本)。

2. SegLink(Detecting Oriented Text in Natural Images by link Segments)
  1. 与CTPN思想类似,都是先找出文本行的一部分,然后再连接所有的部分,组成一个完整的文本行;
  2. 在SSD基础上加入了旋转角度的学习;
  3. 在小部分文本框之前用连接线(相邻框的中点连线)来表示属不属于同一个文本框,也是用网络来学习;
  4. 使用融合规则将各个阶段的框信息和线信息进行融合,组成文本行。

[外链图片转存失败(img-xDAPMPAU-1567046118443)(./images/SegLink结构图.png)]

缺点:不能检测间隔很大的文本行,不能检测弯曲文本

3. EAST(EAST: An Efficient and Accurate Scene Text Detector)

把完整文本行先分割检测再合并的思路,做法比较麻烦,把文本检测切割成多阶段来进行,增大了文本检测精度的损失和时间消耗,中间处理影响效果。(候选框选取,候选框过滤,bbox回归,候选框合并)

  1. 通过FCN结构的网络直接学习是不是文本框以及文本框的坐标和角度(或者八个坐标);
  2. 局部感知NMS(先合并再NMS),降低了NMS的复杂度。
  3. 精度和速度都有所提高

文本检测综述_第4张图片

缺点:感受野不大,对于长文本检测不是很好,比较适合短文本行检测

AdvancedEAST:score map -> 文本头部、中部和尾部三部分,没有从根本上解决长文本检测。

4. PSENet(Shape Robust Text Detection with Progressive Scale Expansion Network)

bbox回归的方法对弯曲文本的检测不准确,分割的方法对文字紧靠的情况分割效果不好。

亮点:渐进式扩展算法

  1. 是一个基于像素分割的方法,能够精确地定位任意形状的文本实例;
  2. 提出了渐进式扩展算法,即使两个文本实例离得很近也可以分开,从而保证文本实例的准确位置

从最小尺度的kernels开始扩展,最小的kernels可以把紧靠的文本实例分开;逐渐扩展到更大的kernels;直到扩展到最大的kernels,组成最终的结果。

文本检测综述_第5张图片

缺点:对于不同的数据集,超参数的选取较为重要(最小尺度比例和分割结果数)。

5. LSAE(Learning Shape-Aware Embedding for Scene Text Detection)

亮点:嵌入形状感知

  1. 分离紧靠的文本实例
  2. 解决文本行过长的问题

文本检测综述_第6张图片

使用输出的三个结果做聚类。

6. ATRR(Arbitrary Shape Scene Text Detection with Adaptive Text Region Representation)

使用LSTM网络学习应该使用多少个点来表示文本框。

类似于Faster-RCNN,增加了基于自适应文本表示的LSTM分支。

文本检测综述_第7张图片

7. CRAFT(Character Region Awareness for Text Detection)

通过精确的定位每一个字符,然后再把检测到的字符连接成一个文本。

  1. 生成两部分GT,字符框 + 亲和框(同一文本框中的相邻字符),使用高斯热图
  2. 字符感知方法,只需要很小的感受野就可以了处理长的弯曲文本
    文本检测综述_第8张图片

缺点:对粘连字符的检测效果不好;对标注数据的要求高;使用弱监督学习生成伪GT造成的损失;训练复杂,需要先进行弱监督训练得到字符级标注框,再训练网络。

参考资料:

传统OCR

目标检测

2017文本检测

2018文本检测

文本检测

你可能感兴趣的:(图像处理)