Convolutional Recurrent Neural Network

论文使用结合 DCNN, RNN 和 CTC loss, 提出一个 End2End 的场景文字识别框架。

Contributions

论文将场景文本识别中的特征提取,序列建模和转录(transcription)融合进一个统一的框架,提出 Convolutional Recurrent Neural Network(CRNN),其具有以下优点:

  • 能够进行 end2end 训练;
  • 不需要设计手工特征和预处理步骤,包括二值化、分割和组件定位等;
  • 可以处理任意长度的序列,不需要字符分割和水平尺度归一化,只需要在训练阶段和测试阶段对高度进行归一化;
  • 不限于任何预定义的词典,在无词典和基于的词典的场景文字识别中都有显著的表现;
  • 模型参数更少,占用更少的存储空间。

Architecture

CRNN 由三部分组成,如图 1 所示:



Convolutional layers:

  • 基于 VGG-Net 修改,7 conv + 4 max-pooling + 2 bn ;
  • 2 个 max-pooling 的窗口由 $2 \times 2$ 改成 $1 \times 2$;
  • 图片送进网络前,其高度缩放成同一高度;
  • 输出 feature map 的宽度为 1,将其从左到右排成 feature sequence。

Recurrent Layers:

  • 使用 Bidirectional LSTM,保留双向的上下文信息;
  • 同时用两个 Bidirectional LSTM 堆叠。

Transcription layers:

  • 将 RNN 的每帧预测结果转换成 label 序列,即找到最高概率分布的 label 序列;
  • 概率函数采用 Connectionist Temporal Classification (CTC)[2] 算法;
  • 有两种模式的转录层,lexicon-free 和 lexicon-based。前者直接输出概率最高的 label sequence,后者在词典里查找最像的一个候选文本,候选文本的选取采用 BK-tree。

Connectionist Temporal Classification

CTC 一般放在 RNN 的顶层,解决输入序列与标注序列不对齐的问题,其方法是在标注符号集中加一个空白符号 blank,然后利用RNN进行标注,对于输入序列的每一帧,网络能够输出一个标签或者 blank, 最后把 blank 符号和预测出的重复符号消除。

标注序列:$l$
输入序列:$\mathbf{y}= y_1,\cdots,y_{T}$, $T$ 是序列的长度
标注符号集:$ \mathcal{L}^{‘} = \mathcal{L} \cup blank$
$\pi$ 为标注序列的一个对齐路径, $\pi \in \mathcal{L}^T$, 则其概率为:

$$
p(\pi|y) =\prod_{t=1}^{T} y_{\pi_t}^{t}
$$

$y_{\pi_t}^{t}$ 表示在第 $t$ 步是标签 $\pi_{t}$ 的概率。
定义一个 seq2seq 的映射函数 $\beta$,通过去除重复的标签和 blank,将 $\pi$ 映射到 $l$ 上,所以最终条件概率就是将所有的 $\pi$ 映射到 $l$ 的概率之和:
$$
p(\mathbf{l}|\mathbf{y}) = \sum_{\pi: \beta(\pi)=\mathbf{l}} p(\pi|\mathbf{y})
$$

我们需要得到最大的条件概率,那么接下来该如何计算这个条件概率呢?

论文里使用 forward-backward 算法,当然还有其他解法,这里就不展开讲。

Objective Function

训练集为 $\mathcal{X} = {I_i,l_i }_i$, $I_i$ 是训练图片,$l_i$ 是真实的 label sequence, 所以目标函数是最小化 RNN 产生的 $\mathbf{y_i}$ 和 $l_i$ 的 negative log-likelihood 条件概率:
$$
\mathcal{O}= - \sum_{I_i.l_i \in \mathcal{X}} \log p(l_i|\mathbf{y}_i)
$$

Personal Thoughts

  • 有点不明白为什么把输入图片的高度归一化成统一高度。
  • 如何应对倾斜文本呢?
  • LSTM + CTC 本质是 seq2seq 建模,换成最近流行的 TCN 或 self-attention ,用全卷积网络来做,效果如何呢?

Authors

Huazhong University of Science and Technology

References

  • [1]An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition [TPAMI-2017] paper code
  • [2] Connectionist temporal classification: labelling unseg- mented sequence data with recurrent neural networks [ICML-2006] paper
  • [3] Sequence Modeling With CTC
请作者吃酒!