不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析

论文地址:Show, Attend and Read: A Simple and Strong Baseline for Irregular Text Recognition

对于不规则(曲形文字、艺术字等)的识别,作者没有采用基于修正(rectification)的策略,而是提出利用基于不规则文字而构造的(tailored)基于二维注意力机制模块(2D attention module)的模型来定位逐个识别字符的弱监督方法。

之所以说是弱监督是由于该模型可以在不用额外的监督信息就可以定位单个字符(即不需要字符级别或像素级别的标注)。

先贴一下效果图:

不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第1张图片

<原图 - 基于二维注意力机制 - 基于修正策略>

网络总体结构:

不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第2张图片

网络的CNN模块用的是31层的ResNet,得到的特征图再经过基于LSTM的编码器-解码器框架(encoder-decoder framework)以及两端和feature map、解码器相连的 2D attention 模块 ,最终输出识别的字符串。

相关概念解释:

  • LSTM编码器-解码器:编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。 当前 time step 的 hidden state 是由上一 time step 的state和当前 time step 输入决定的,也就是获得了各个时间段的隐藏层以后,再将隐藏层的信息汇总,生成最后的语义向量C;通常传统的 encoder-decoder 结构将 encoder 最后的隐藏层作为语义向量C,作为 decoder 的输入;
    • 不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第3张图片
  • attention机制:对当前关注的部分赋予较大的注意力(权重),这种权重分布通过计算当前输入输出相关度来设定。这是因为传统LSTM的结构不论输入序列多长都会被编码成固定长度的向量表示,而当输入序列很长时,而编码长度固定意味着存储的信息有限,因而效果欠佳,而attention机制通过保留LSTM编码器对输入序列的中间输出结果,然后训练一个模型对这些输入进行选择性的学习并在模型输出时将输出序列与之关联,因此在序列学习的任务上提升巨大。

接下来一次分析网络的每个模块:

 

ResNet CNN 模块:

不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第4张图片

  • 共31层的ResNet,对于每个残差模块,如果输入-输出维度不同,则使用1x1卷积做projection shortcut;
  • 同时使用了2x2最大池化和1x2最大池化(为了保留更多水平轴上的信息,对于'i', 'l'这种偏瘦的字符增益较大)
  • 最终输出V为 H x W x D (高、宽、通道数)的二维特征图,以用于提取图像的整体特征(holistic feature);
  • 保持原输入图像宽高比的基础上,将图像缩放至固定高度(论文中是48)和随之变化的宽度,因此得到的特征图的宽度也是不固定的;

 

LSTM 编码器-解码器 模块

  • 不改变原文字图片(不修正)
  • 编码器encoder:
    • 不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第5张图片
    • 2层,每层各512个hidden state的LSTM模型;
    • 每一个time step编码器的一项输入(图中下方)是CNN得到的二维特征图第 i 列经过垂直方向最大池化的特征信息;
    • 经过W(特征图的宽)个time step后,第二层LSTM最后一个hidden state  h_W 就是输入图像的一个固定尺寸的特征表示,称为 holistic feature
  • 解码器decoder:
    • 不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第6张图片
    • 2层,每层各512个hidden state的LSTM模型;
    • 编码器和解码器之间不共享参数
    • h_W(初始化的输入), "START" token,以及前一层 的输出,依次作为当前step的输入,直到被"END" token终止;
    • 所有的LSTM输入都是经过one-hot向量表示后,再经过一个线性变化 \Phi() 函数;
    • 训练阶段,解码器LSTM的输入由 ground truth 的字符序列代替;
    • 每一个step的输出 y_i 由当前step的 hidden state attention的输出作为 \phi() 函数的输入得到:
      • y_t = \phi(h'_t, c_t) = softmax(W_o[h'_t;c_t]), 其中 h'_t 是当前的 hidden state,c_t 是attention模块的输出,W_o 是一个线性变化,将特征嵌入输出空间的94个类别(10个数字,26*2 个字符,31个标点符号);

 

2D Attention 模块:

  • 不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第7张图片
  • 传统的 2D Attention 模块独立处理每一个位置,不能很好的利用二维的空间信息,作者提出针对曲形文字的 tailored 2D Attention 机制:
    • 输入由feature map V和 LSTM解码器的hidden state h' 组成:
      • h' 经过 1x1 卷积维度从L转换至d,再通过tile操作(堆叠广播 H x W次)形成 H x W x d 的特征图;
      • feature map 经过 stride=1, padding=1, 3x3卷积后输出位 H x W x d  的特征图;
      • 上述两个特征图相加后经过 tanh 形成新的特征图(H x W x d), 再经过 1x1 卷积和softmax得到attention weights 这样一个 H x W 的激活图 \alpha;
      • 最终 \alpha 和 原特征图V 加权求和得到最后的 glimpse c (1 x 1 x D);
    • g_{ij}=tanh(W_vv_{ij} +\sum_{p,q\in N_{ij}}\tilde{W}_{p-i,q-j} \cdot v_{pq}+W_h h'_t)
    • \alpha_{ij}=softmax(W^T_g \cdot g_{ij})
    • c_t = \sum_{i,j}\alpha_{ij}\cdot v_{ij}, i = 1,2,...,H; j=1,2,...,W.
    • 其中 v_{ij} 是 V(feature map)在(i, j) 处 的特征向量, N{ij} 是该位置周边的8个相邻点;h'_t 是 time step t 的LSTM解码器的hidden state; W_v, W_h, \tilde{W}_s 是可学习的线性变换;\alpha_{ij} 是(i, j) 处的注意力权重(attention weight);c_t 是当下位置特征的加权和,即开始结构图中的glimpse
    • 当计算 v_{ij} 的权重时,引入 \sum_{p,q\in N_{ij}}\tilde{W}_{p-i,q-j} \cdot v_{pq},从而有效利用了当前位置周围的二维空间信息;

 

SAR 在各个数据集上均取得了不错的效果:

不规则文字识别方法之 SAR: Show, Attend and Read (2018)论文解析_第8张图片

 

你可能感兴趣的:(场景文字识别)