2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

論文まとめ:Gated Recurrent Convolutional Neural Network for OCR

Last updated at Posted at 2018-02-12

はじめに

NIPS2017から、J. Wang らの Gated Recurrent Convolutional Neural Network for OCR をまとめてみた。

NIPS2017の論文ページはこちら。
http://papers.nips.cc/paper/6637-gated-recurrent-convolution-neural-network-for-ocr

著者らのコードはこちら。
https://github.com/Jianfeng1991/GRCNN-for-OCR

概要

  • OCRタスクのモデル
  • RCNN(recurrent convolutional neural network)に gate を加えた GRCNN(Gated RCNN)を用いた
  • この gate はRCL(recurrent convolution layer)における context modulation を制御し、feed-forwardな情報とrecurrentな情報とを調整する。
  • シーケンス・モデルとしてはBLSTM(Bidirectional LSTM)を用いる
  • このGRCNN+BLSTMなモデルで既存の性能を上回った

GRCNNの中身

RCNN

RCNNはこちらの論文
M. Liang, et. al 'Recurrent Convolutional Neural Network for Object Recognition'
https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Liang_Recurrent_Convolutional_Neural_2015_CVPR_paper.pdf
などで発表された仕組みで、RecurrentにConvolutionを組み合わせたもの。

前の層からの出力を $u(t)$、前の時刻の隠れ層からの出力を $x(t-1)$ とすると一般的なRNNは

x(t) = \mathcal{F} (u(t), x(t-1), \theta )

ここで $\mathcal{F}$ はReLUなどの非線形な活性化関数、$\theta $ はパラメータ。RCNNの場合は

x(t) = \mathcal{F} ((w^f \ast u(t), w^r \ast x(t-1))

となる。ここで $\ast$ は convolution。重みがフィルタになって convolution するだけ。

GRCNN

T=2の時の gated recurrent convolution layer の模式図は以下。

スクリーンショット 2018-02-12 23.47.10.png

右側の gate な部分がなければ通常の RCNN。

この gate の部分は

G(t) = \begin{cases}
    0 & t=0 \\
    sigmoid(BN(w^f_g \ast u(t)) + BN(w^r_g \ast x(t-1))) & t>0
  \end{cases}

となっていて、LSTMの gate に似ている。BN は batch normalizationで、これが特徴的。

G(t) = \begin{cases}
    ReLU(BN(w^f \ast u(t)) & t=0 \\
    ReLU(BN(w^f \ast u(t)) + BN(BN(w^r \ast x(t-1))\odot G(t))) & t>0
  \end{cases}

$\odot$ はHadamard積。イメージとしてはLSTMのhidden unitに対するgateだけがある形に似ている。ただ、決定的に違うのは、conv-LSTMは動画などのシーケンシャルなフレームを1つずつ1時刻に入力するが、このこの仕組みは1つの画像をそれぞれのタイムステップそれぞれに入力する。

また注意点としては、Batch normalizationのパラメータを別の時刻と共有しないこと。

アーキテクチャ全体

アーキテクチャの全体図。

スクリーンショット 2018-02-13 0.21.57.png

まとめると以下の3ステップ。

  1. Feature Sequence Extraction
  2. Sequence Modeling
  3. Transcription

Feature Sequence Extraction

ここではGRCNNを使う。入力と同じ画像を出力させ、これを左から右にスライスする。GRCNNは以下のようにGRCLユニットとpooling、convの組み合わせ。

スクリーンショット 2018-02-13 0.28.38.png

Sequence Modeling

ここではbidirectionalなLSTMを用いる。

スクリーンショット 2018-02-13 0.36.49.png

peepholeに対してかける $\gamma_i$ は indication factor になっていて0、1をとる。これは peephole の効果を検証するため。

Transcription

ここでは言語モデルにありがちなCTC(connectionist Temporal Classification)を使う。

実験と結果

GRCNNの効果

スクリーンショット 2018-02-13 1.01.01.png

RCNNよりもGRCNNの方が性能いいし、GRCNNの中でもよりiterationが多い方が性能がいい。

LSTM の中のpeephole効果

スクリーンショット 2018-02-13 1.01.05.png

peepholeが無い方が性能がいい。

他のモデルとの比較

スクリーンショット 2018-02-13 1.01.14.png

おおよそ、本モデルが最も性能がいい。

下から2番目の ResNet-BLSTM は、本モデルの GRCNN を ResNetの20層に置き換えたもの。これよりも GRCNN を用いた方が性能がいい。

ちなみにいい勝負をしている Baoguang et al はこちら。
http://ieeexplore.ieee.org/document/7801919/
arXivには2015ヴァージョンの論文が載ってる。
https://arxiv.org/abs/1507.05717

読み取れた例と失敗した例

以下の左が読み取りに成功した例、右が失敗した例。

スクリーンショット 2018-02-13 1.16.47.png

ARMADA の例みたいに AとRがくっついていると、うまく読み取れない。

Bloom の前の記号を O と読み取ったところは面白い。

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?