【論文読解めも】On Recognizing Texts of Arbitrary Shapes with 2D Self-Attention
On Recognizing Texts of Arbitrary Shapes with 2D Self-Attention
シーンテキスト認識(STR)のためのTransformerベースの文字認識手法。
ネットワーク構造
Transformerの構造であるが、Encoder側では2次元情報を保持しつつ情報を抽出する。Decoder側は、入出力がトークンとなる一般的なTransformer Decoderである。
💡Encoder側は完全なTransformerではなく、一部CNNが使用されている。
Shallow CNN block
Encoder側の入力は、まず2つのConv層+MaxPoolingの組からなる浅いCNNになっている。入力画像は1/4のサイズの特徴マップに変換される。
Adaptive 2D positional encoding
特徴マップに対してPositional Encodingを加える。ここで問題になるのは、画像中の文字は、シーケンスデータと異なり、様々な順序で現れるということである。例えば、縦書きの時と横書きの時では、どの位置から始まりどのような順番で読むかは変化するため、必要とされるPositional Encodingは異なる。そのため、特徴マップをもとに、適応的にPositional Encodingを決めるという発想が必要になる。
このような2次元の適応的PositionalEncoding(A2DPE)は、以下のように表される。
一方で、
以上のA2DPEを用いて、Multi-head attentionの入出力は、以下のように書ける。
ここで、
💡出力の
Locality-aware feedforward layer
feedforward layerも2次元対応する必要がある。単純にCNN化するだけで良いが、実験では3通りの方法を考えている。(b)と(c)が良い結果になっており、精度とFLOPsのトレードオフになる((b)のほうが精度が良くなるが、遅い)。
🤔visual transformer(ViT)よりも前に提案されている手法なので、Encoder部分はCNNとTransfomerの組み合わせになっている。タスクによってViT風の実装が良いのか、CNNも組み合わせたほうがいいのかは変わるのだろうか?