Text Detection and Recognition.

文本检测与识别根据环境场合不同,可分为:

本文主要关注场景文字识别。

本文目录:

  1. Benchmarks
  2. (文本检测)EAST
  3. (文本识别)CRNN
  4. (文本检测与识别)Mask TextSpotter

1. Benchmarks

文本检测与识别常用的数据集包括:

2. EAST

EAST是一种文本检测的方法,可以检测出图像中的文本区域。

网络结构

EAST的网络结构总共包含三个部分:

特征提取分支部分,使用PVANet作为backbone卷积网络,主要由四层卷积层组成,并使用每一层得到的feature map。

特征合并分支部分,借鉴了U-net的思想,只是U-net采用的是反卷积的操作,而这里采用的是反池化的操作。

输出层部分,主要有两部分,一部分是用单个通道的卷积得到score map;另一部分是多个通道的卷积得到geometry map,在这一部分,几何形状可以是RBOX(旋转盒子)或者QUAD(四边形)。对于RBOX,主要有5个通道,其中四个通道表示每一个像素点与文本线上、右、下、左边界距离(axis-aligned bounding box,AABB),另一个通道表示该四边形的旋转角度。对于QUAD,则采用四边形四个顶点的坐标表示,共有8个通道。

ground truth

很多数据集(如ICDAR2015)是用QUAD的方式标注的,需要生成score mapgeometry map的真实标签。

对于score map:对标注框进行缩放(shrink),缩放框内的像素标注为1,外的像素标注为0。得到score map的标签:

对于geometry map:选择score map为正的像素点,其QUAD对应的标签直接是他们与四个顶点的偏移坐标,即顶点的差值;而对于RBOX,则首先会选择一个最小的外接矩形框住真实的四边形,然后计算每个正例像素点与该矩形四条边界的距离。

Local-Aware NMS

该算法得到的检测框太多,直接使用非极大值抑制计算量大,作者提出了一种Local-Aware NMS

假设来自附近相邻像素的几何形状往往高度相关,对这些像素的候选框进行逐步的合并,之后对合并的候选框进行常规的NMS。这里合并的四边形坐标是通过两个给定四边形的得分进行加权平均的。

3. CRNN

CRNN(卷积循环神经网络)是一种文本识别的方法,可以从含有文本的区域中识别出具体的文字。

CRNN的网络结构总共包含三个部分:

CRNN在训练之前,先把输入图像按比例缩放到相同高度,论文中使用的高度值是32。提取的特征序列向量是从卷积特征图上从左到右按照顺序生成的,每个特征向量表示了图像上一定宽度上的特征。双向LSTM把特征序列向量转化成输出的标签分布。转录层将LSTM网络预测的特征序列的所有可能的结果进行整合,经过去除空格(blank)和去重操作,就可以得到最终的序列标签。

4. Mask TextSpotter

Mask TextSpotter是一种端到端同时实现文本检测和识别的方法,可以检测任意方向的文本。

网络结构

Mask TextSpotter的网络结构基于Mask R-CNN,同时使用目标检测和实例分割的方法。

Mask R-CNN中的mask branch主要是做实例分割以及辅助目标检测,会将两者的结果结合起来;

Mask TextSpotter中的mask branch是主要的网络结构,而目标检测部分则是做到一个辅助结果,网络是将fast rcnn检测出的结果输入mask branch中,做到快速和高精度的分割。

Mask branch

经过卷积层和转置卷积层,最终输出通道数为$38$层,包括:

Pixel Voting

测试时使用Pixel Voting,即对Background map进行二值化,再对其中属于文本的区域对应的Character map取最大概率,对应某个字符。

Weighted Edit Distance

使用Weighted Edit Distance衡量两个字符串的相似程度,作为损失函数,其中$p$表示该字符对应的预测概率:

该方法的主要限制:受Character map数量限制,不能检测字符很多的文本(如中文)。