e4exp / paper_manager_abstract

0 stars 0 forks source link

TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models #645

Open e4exp opened 3 years ago

e4exp commented 3 years ago

テキスト認識は、文書のデジタル化のための長年の研究課題である。 既存のテキスト認識アプローチは、通常、画像理解のためのCNNと、文字レベルのテキスト生成のためのRNNに基づいて構築されている。 さらに、全体的な精度を向上させるために、通常は後処理として別の言語モデルが必要となる。 本論文では、事前に学習された画像トランスフォーマーモデルとテキストトランスフォーマーモデルを用いたエンドツーエンドのテキスト認識アプローチ、すなわち、画像理解と文字レベルのテキスト生成の両方にトランスフォーマーアーキテクチャを活用するTrOCRを提案します。 TrOCRモデルはシンプルでありながら効果的であり、大規模な合成データで事前に学習し、人間がラベルを付けたデータセットで微調整することができます。 実験によると、TrOCRモデルは、印刷されたテキストと手書きのテキストの両方の認識タスクにおいて、現在の最新モデルを上回る性能を示しています。 このコードとモデルは、このhttpsのURLで公開されます。

https://aka.ms/TrOCR

e4exp commented 3 years ago

1 はじめに

光学式文字認識(Optical Character Recognition:OCR)とは、スキャンした文書、文書の写真、風景写真、画像に重ねて表示された字幕テキストなど、タイプされたテキスト、手書きのテキスト、印刷されたテキストの画像を、電子的または機械的に変換することです。 通常、OCRシステムには、テキスト検出モジュールとテキスト認識モジュールの2つの主要モジュールが含まれています。

テキスト検出は、テキスト画像内のすべてのテキストブロックを、単語レベルまたはテキストラインレベルでローカライズすることを目的としています。 テキスト検出タスクは通常、YoLOv5やDBNet(Liao et al., 2019)などの従来のオブジェクト検出モデルが適用できるオブジェクト検出問題として考えられます。 一方、テキスト認識は、テキスト画像コンテンツを理解し、視覚信号を自然言語トークンに転写することを目的としている。 テキスト認識タスクは通常、エンコーダ-デコーダ問題として組み立てられており、既存のアプローチでは、画像理解のためにCNNベースのエンコーダを活用し、テキスト生成のためにRNNベースのデコーダを活用しています。

本論文では、文書画像のテキスト認識タスクに焦点を当て、テキスト検出は今後の課題とする。 最近のテキスト認識の進歩(Diazら、2021年)では、Transformer(Vaswaniら、2017年)アーキテクチャを活用することで、大幅な改善が見られました。 しかし、既存のアプローチは依然としてCNNをバックボーンとしており、テキスト画像を理解するためのエンコーダーとして、CNNバックボーンの上に自己言及が構築されています。 デコーダとしては、通常、Connectionist Temporal Classification (CTC) (Graves et al., 2006)を文字レベルの外部言語モデルと複合して使用し、全体の精度を向上させている。 ハイブリッド・エンコーダ/デコーダ法が大きな成功を収めたにもかかわらず、事前に学習されたCVモデルやNLPモデルには、まだ改善の余地があります。

1)既存の手法のネットワークパラメータは、合成データや人間のラベルが付いたデータセットを用いてゼロから学習されており、大規模な事前学習モデルは未開拓である。 2) 画像トランスフォーマーがますます普及し(Dosovitskiy et al., 2021; Touvron et al., 2021a)、特に最近の自己教師付き画像事前学習(Bao et al., 2021)では、事前に学習された画像トランスフォーマーがCNNバックボーンを置き換えることができるかどうかを調査することは容易であり、一方で事前に学習された画像トランスフォーマーを利用して、事前に学習されたテキストトランスフォーマーと一緒に単一のフレームワークでテキスト認識タスクで動作させることも可能である。

この目的のために、我々は、事前学習されたCVモデルとNLPモデルを備えた、エンドツーエンドのトランスフォーマーベースのテキスト認識モデルであるTrOCRを提案する(図1)。 既存のテキスト認識モデルとは異なり、TrOCRはCNNをバックボーンとして使用しない、シンプルかつ効果的なモデルです。 その代わり、(Dosovitskiy et al., 2021)に従って、まず入力テキスト画像を384×384にリサイズし、次に画像を16×16パッチのシーケンスに分割して、画像トランスフォーマーの入力として使用します。 エンコーダー部とデコーダー部の両方で、自己注意メカニズムを備えた標準的なトランスフォーマーのアーキテクチャが活用されており、ワードピースユニットが入力画像から認識されたテキストとして生成されます。

TrOCRモデルを効果的に学習するために、エンコーダは事前に学習したViTスタイルのモデル(Dosovitskiy et al., 2021; Touvron et al., 2021a; Bao et al., 2021)で初期化し、デコーダは事前に学習したBERTスタイルのモデル(Devlin et al., 2019; Liu et al., 2019; Dong et al. したがって、TrOCRの利点は3つあります。 第一に、TrOCRは、画像理解と言語モデリングのための大規模なラベルなしデータの利点を生かして、事前に訓練されたImage TransformerモデルとText Transformerモデルを使用し、外部の言語モデルを必要としません。 また、TrOCRはバックボーンに高度な畳み込みネットワークを必要としないため、モデルの実装と保守が非常に容易です。 最後に、OCRベンチマークデータセットを用いた実験の結果、TrOCRは複雑な前処理/後処理を行うことなく、印刷されたテキストと手書きのテキストの両方の認識タスクで最先端の結果を得ることができました。 さらに、TrOCRは、デコーダ側で多言語の事前学習モデルを利用することで、最小限の労力で多言語テキスト認識に拡張することができます。

本論文の貢献は以下のようにまとめられます。

  1. 我々は、事前に学習されたCVモデルとNLPモデルを用いた、テキスト認識のためのエンドツーエンドのTransformerベースOCRモデルであるTrOCRを提案する。我々の知る限り、これはOCRにおけるテキスト認識タスクのために、事前に訓練された画像とテキストのTransformerを共同で活用した最初の研究である。
  2. TrOCRは、標準的なTransformerベースのエンコーダデコーダモデルを用いて、最先端の精度を達成しています。
  3. TrOCR のモデルとコードは https://aka.ms/TrOCR で公開されます。
e4exp commented 3 years ago

2 TrOCR

2.1 モデルアーキテクチャ

TrOCRは、視覚的特徴を抽出するImage Transformerと言語モデリングを行うText Transformerを含むTransformerアーキテクチャで構築されています。 TrOCRでは、Transformerのエンコーダ・デコーダ構造を採用しています。 エンコーダは、画像パッチの表現を得るために設計されており、デコーダは、エンコーダの出力と前の世代に注意しながら、ワードピースのシーケンスを生成するために設計されています。

2.1.1 エンコーダー

エンコーダーは、入力画像x_img∈<3×H0×W0>を受け取り、固定サイズ(H、W)にリサイズします。 トランスフォーマーのエンコーダは、生の画像が入力トークンの連続でないと処理できないため、エンコーダは、入力画像を、固定サイズ(P, P)のN = HW/P2個の四角いパッチに分解し、リサイズされた画像の幅Wと高さHは、パッチサイズPで割り切れることが保証されています。

その後、パッチはベクトルに平坦化され、D次元のベクトルに線形投影されます。 これがパッチエンベッディングであり、DはTransformerのすべての層を通した隠れたサイズです。 ViT(Dosovitskiy et al., 2021)やDeiT(Touvron et al., 2021b)と同様に、画像分類タスクに通常使用される特別なトークン「[CLS]」を保持します。 CLS]"というトークンは、すべてのパッチ埋め込みからのすべての情報をまとめて、画像全体を表します。 一方、エンコーダの初期化にDeiTで事前学習したモデルを使用する際にも、入力シーケンスに蒸留トークンを残しておくことで、モデルが教師モデルから学習することができます。 パッチ埋め込みと2つの特別なトークンには、その絶対位置に応じて学習可能な1次元位置埋め込みが与えられる。 次に、入力シーケンスは、同一のエンコーダ層のスタックに渡されます。 各トランスフォーマー層には、マルチヘッドの自己注意モジュールと、完全に接続されたフィードフォワードネットワークが搭載されています。 この2つの部分はいずれも、残差接続と層の正規化が行われる。 注目メカニズムは、値に異なる注目を分配し、それらの加重和を出力するというもので、値の重みは対応するキーとクエリによって計算される。 自己注意モジュールでは、クエリ、キー、値のすべてが同じシーケンスから来ています。 アテンション出力の行列は次のように計算されます。

image

ソフトマックス関数の勾配が極端に小さくなるのを避けるため、√1dkのスケーリングファクターを適用しています。 マルチヘッドの注意点は、クエリ、キー、値を学習可能な異なる重みでh回投影することであり、これによりモデルは異なる表現サブスペースからの情報を共同で収集することができる。 CNNのようなネットワークで抽出された特徴とは異なり、Transformerモデルは画像特有の誘導バイアスを持たず、画像をパッチのシーケンスとして処理するため、モデルは画像全体と独立したパッチのどちらにも異なる注意を払うことができます。

2.1.2 デコーダー

TrOCRでは、オリジナルのTransformerデコーダーを使用しています。 標準的なTransformerデコーダもまた、エンコーダの層と同様の構造を持つ同一の層のスタックを持っていますが、デコーダは、エンコーダの出力に異なる注意を分配するために、マルチヘッド自己注意とフィードフォワードネットワークの間に「エンコーダ-デコーダ注意」を挿入しています。 エンコーダ-デコーダ・アテンション・モジュールでは、キーと値はエンコーダの出力から、クエリはデコーダの入力から送られてくる。 さらに、デコーダは自己注目のアテンションマスキングを活用して、学習時に予測よりも多くの情報を得られないようにしている。 デコーダの出力は、デコーダの入力から1つ右にシフトするという事実に基づき、アテンションマスキングは、位置iの出力が、iより小さい位置の入力である既知の出力にのみ注意を払えるようにする必要がある。

image

デコーダからのエンベッディングは、モデル次元から語彙サイズVの次元に投影されます。 語彙に対する確率はソフトマックス関数によって計算され,ビームサーチを用いて最終的な出力を得る.

2.2 モデルの初期化

エンコーダー、デコーダーともに、大規模なラベル付きおよびラベルなしのデータセットで事前に学習されたパブリックモデルで初期化される。

2.2.1 エンコーダの初期化

TrOCRモデルのエンコーダの初期化には、DeiT(Touvron et al., 2021a)およびBEiT(Bao et al., 2021)モデルを使用しています。 DeiTは、ImageNetを唯一の学習セットとして画像トランスフォーマーを学習し、データ効率の良い方法でモデルを作るために、さまざまなハイパーパラメータやデータ増強を試みます。 さらに、強力な画像分類器の知識を、最初のエンベッディングに含まれるトークンに蒸留することで、CNNベースのモデルと比較して競争力のある結果を導き出しています。 マスクド・ランゲージ・モデルの事前学習タスクを参考に、BEiTは、画像トランスフォーマーを事前学習するためのマスクド・イメージ・モデリング・タスクを提案します。 各画像について、画像パッチと視覚的トークンの2つのビューに変換する。 元の画像を離散VAE(Ramesh et al., 2021)の潜在的なコードによって視覚的トークンにトークン化し、いくつかの画像パッチをランダムにマスクして、モデルに元の視覚的トークンを復元させる。 基本的に、BEiTの構造はイメージトランスフォーマーと同じであり、DeiTと比較した場合、蒸留されたトークンがありません。

2.2.2 デコーダの初期化

デコーダの初期化には、RoBERTaモデルを使用します。 一般的に、RoBERTaは(Devlin et al., 2019)の複製研究であり、多くの主要なハイパーパラメータとトレーニングデータサイズの影響を注意深く測定しています。 BERTに基づいて、彼らは次の文の予測目的を削除し、Masked Language Modelのマスキングパターンを動的に変更します。 RoBERTa モデルをデコーダにロードする際、構造は完全には一致しません。 例えば、エンコーダとデコーダの注意層は、RoBERTa モデルには存在しない。 この問題に対処するために、デコーダを RoBERTa モデルで初期化し、存在しない層をランダムに初期化する。

2.3 タスクパイプライン

本作品におけるテキスト認識タスクのパイプラインは、テキストライン画像が与えられると、モデルは視覚的特徴を抽出し、画像と以前に生成されたコンテキストに基づいて単語のトークンを予測します。 一連のグランドトゥルーストークンの後には、通常、文の終わりを示す「[EOS]」トークンが続きます。 このトークンは、通常、文の終わりを示すものですが、学習の際には、文を1つ後ろに回転させ、「[EOS]」トークンを先頭に移動させます。 回転させたグランドトゥルースシーケンスはデコーダに入力され、その出力はクロスエントロピー損失を持つオリジナルのグランドトゥルースシーケンスによって監視されます。 推論では、デコーダは「[EOS]」トークンから開始して、新たに生成された出力を次の入力として継続的に取り込みながら、出力を反復的に予測します。

2.4 事前学習

事前学習には、テキスト認識タスクを使用します。 このタスクは、視覚的特徴抽出と言語モデルの両方の知識をモデルに学習させることができるからです。 事前学習は、使用するデータセットに応じて2段階に分けて行います。 第一段階では、何億もの印刷されたテキストライン画像とそれに対応するテキストコンテンツからなる大規模なデータセットを合成し、そのデータセットに対してTrOCRモデルの事前学習を行います。 第2段階では、印刷されたテキストライン画像と手書きのテキストライン画像をそれぞれ数百万枚ずつ含む、比較的小さな2つのデータセットを構築します。 その後、第1段階のモデルで初期化された第2段階の印刷データと手書きデータに対して、2つの別々のモデルを事前に学習させます。

2.5 微調整

事前に学習したTrOCRモデルを、印刷および手書きのテキスト認識タスクで微調整します。 TrOCRモデルの出力は、BPE(Byte Pair Encoding)(Sennrich et al.2015)に基づいており、タスクに関連するボキャブラリには依存していません。

2.6 データ補強

事前学習データと微調整データの種類を増やすために、データ補強を活用する。 本研究では,7種類の画像変換(元の入力画像を維持することを含む)を行う. 各サンプルでは,どの画像変換を行うかを均等な可能性でランダムに決定する. ランダムな回転(-10〜10度)、ガウスぼかし、画像拡張、画像浸食、ダウンスケール、アンダーライン、オリジナルのまま、などで入力画像を拡張します。