目次を表示する

OCR技術の過去・現在・未来

Transformer時代 ── Vision TransformerとDocument AI

Transformer時代 ── Vision TransformerとDocument AI

この章で何がわかるようになるか:NLPを一変させたTransformerアーキテクチャが、OCRの世界にも革命を起こした。この章では、Vision Transformer(ViT)の仕組みからDocument AI、そしてOCR不要のエンドツーエンドモデルまでを理解し、「なぜCNN+LSTMの時代が終わりつつあるのか」を説明できるようになる。


Vision Transformer(ViT)がOCRを変えた

前章までで見てきたCNN + RNN/CTC のパイプラインは、長年にわたりOCRの標準アーキテクチャだった。しかし、2020年にGoogleが発表した Vision Transformer(ViT) が画像認識の常識を覆す。

CNNとViTの根本的な違い

❌ CNN(従来型):
  - 局所的な受容野(Receptive Field)から始まる
  - 層を重ねて徐々にグローバルな情報を取得
  - 文書の離れた位置にある情報の関連付けが苦手

✅ ViT(Vision Transformer):
  - 第1層からグローバルな文脈(Context)を捉える
  - 画像をパッチに分割し、各パッチ間の関係をSelf-Attentionで計算
  - 文書全体のレイアウト情報を最初から活用できる

ViTは画像を固定サイズのパッチ(例:16x16ピクセル)に分割し、各パッチをトークンとして扱う。NLPにおける単語トークンと同じ仕組みだ。

graph LR
    A["入力画像"] --> B["パッチ分割<br/>16x16px"]
    B --> C["線形射影<br/>+ 位置埋め込み"]
    C --> D["Transformer<br/>Encoder"]
    D --> E["分類ヘッド<br/>/ デコーダー"]
    
    style A fill:#e8f4f8,stroke:#2196F3
    style D fill:#fff3e0,stroke:#FF9800
    style E fill:#e8f5e9,stroke:#4CAF50

性能比較:ViT vs CNN

手書き文字認識のベンチマークにおいて、ViTベースのモデルはResNet(CNN)を大きく上回る結果を示している。

モデルアーキテクチャ手書き文字認識精度
ResNet-50CNN93〜94%
ViT-BaseTransformer98.26%

ただし、データ量が少ない場合はCNNが依然として有利だ。ViTの性能は大量の学習データに依存する。実務では、CNNの特徴抽出とViTのグローバル文脈理解を組み合わせた ハイブリッドCNN-ViTアーキテクチャ が現実的な選択肢として広く使われている。


TrOCR ── 純粋TransformerによるOCR(Microsoft, 2021)

2021年にMicrosoftが発表した TrOCR は、OCRの歴史における重要なマイルストーンだ。CNNもRNNも一切使わない、純粋なTransformerアーキテクチャでOCRを実現した初のモデルである。

TrOCRのアーキテクチャ

graph TB
    subgraph エンコーダー
        A["テキスト行画像"] --> B["ViTエンコーダー<br/>(画像 → 特徴量)"]
    end
    
    subgraph デコーダー
        B --> C["テキストTransformerデコーダー<br/>(特徴量 → テキスト)"]
        C --> D["出力テキスト:<br/>'Hello World'"]
    end
    
    subgraph 事前学習
        E["大規模合成データ<br/>(数百万サンプル)"] -.-> B
        F["言語モデル<br/>(BEiT / RoBERTa)"] -.-> C
    end
    
    style A fill:#e8f4f8,stroke:#2196F3
    style D fill:#e8f5e9,stroke:#4CAF50
    style E fill:#fff3e0,stroke:#FF9800
    style F fill:#fff3e0,stroke:#FF9800
TrOCRの革新点:

1. エンコーダー: ViTが画像を「読む」
   → 画像パッチをトークンとして処理
   → BEiTで事前学習済みの視覚表現を活用

2. デコーダー: テキストTransformerが「書く」
   → 言語モデル(RoBERTa等)の知識を転用
   → 自己回帰的にテキストを生成

3. 事前学習: 大規模合成データで訓練
   → 数百万件の合成テキスト画像で事前学習
   → 少量の実データでファインチューニング

TrOCRは、印刷文字・手書き文字の両方で当時の最高精度(State-of-the-Art)を達成した。CNNやRNNが不要であることを実証したこのモデルは、以降のOCR研究の方向性を決定づけた。


レイアウト解析とDocument AI

テキスト認識だけでは、実用的な文書処理には不十分だ。請求書、フォーム、契約書 ── これらの文書ではテキストの内容だけでなく、テキストが「どこに」配置されているかが意味を持つ

LayoutLMファミリーの進化

Microsoftが開発した LayoutLM シリーズは、テキスト・レイアウト・画像の3つの情報を統合的に理解するモデルだ。

graph TB
    subgraph "LayoutLM (2020)"
        A1["テキスト埋め込み"] --> D1["統合表現"]
        A2["2D位置埋め込み<br/>(x, y座標)"] --> D1
    end
    
    subgraph "LayoutLMv2 (2021)"
        B1["テキスト埋め込み"] --> D2["統合表現"]
        B2["2D位置埋め込み"] --> D2
        B3["画像特徴量<br/>(Visual Features)"] --> D2
    end
    
    subgraph "LayoutLMv3 (2022)"
        C1["テキストマスキング"] --> D3["統合表現"]
        C2["画像マスキング"] --> D3
        C3["テキスト-画像<br/>アライメント"] --> D3
    end
    
    style D1 fill:#e8f4f8,stroke:#2196F3
    style D2 fill:#fff3e0,stroke:#FF9800
    style D3 fill:#e8f5e9,stroke:#4CAF50
モデル入力モダリティ特徴
LayoutLM (2020)テキスト + 2D位置テキストの座標情報を位置埋め込みとして追加
LayoutLMv2 (2021)テキスト + 2D位置 + 画像画像の視覚特徴量を統合し、マルチモーダル化
LayoutLMv3 (2022)テキスト + 画像(統一マスキング)テキストと画像のマスキング事前学習で、フォーム理解に卓越

さらに、DiT(Document Image Transformer) は自己教師あり学習(Self-Supervised Learning)で事前学習されたViTで、大量のラベルなし文書画像から文書の視覚表現を学ぶ。文書分類やレイアウト解析で強力な性能を発揮する。


OCR不要(OCR-Free)の文書理解

ここまでの手法は、いずれも何らかの形でOCR(テキスト認識)を前提としていた。しかし2022年以降、OCRプロセスそのものを不要にするモデルが登場した。

なぜOCR-Freeが重要か

❌ 従来のOCRパイプラインの問題:
  1. OCRエンジンがテキストを誤認識 → 後段に誤りが伝播
  2. 複数のモデルを連結 → レイテンシ増大・メンテナンス複雑化
  3. OCRエンジンが対応しない言語・書体で破綻
  4. レイアウト情報がOCRの出力に十分に反映されない

✅ OCR-Freeモデルの解決策:
  1. 画像から直接、構造化された出力を生成
  2. 単一モデルでエンドツーエンド処理
  3. OCRの誤りが後段に伝播しない
  4. レイアウトと内容を同時に理解

代表的なOCR-Freeモデル

graph LR
    subgraph "従来のOCRパイプライン"
        T1["文書画像"] --> T2["レイアウト<br/>解析"]
        T2 --> T3["テキスト<br/>検出"]
        T3 --> T4["テキスト<br/>認識"]
        T4 --> T5["後処理<br/>+ 構造化"]
        T5 --> T6["構造化<br/>データ"]
    end
    
    subgraph "OCR-Free(Donut等)"
        D1["文書画像"] --> D2["エンコーダー<br/>(Swin Transformer)"]
        D2 --> D3["デコーダー<br/>(BART等)"]
        D3 --> D4["構造化<br/>JSON/テキスト"]
    end
    
    style T1 fill:#ffebee,stroke:#f44336
    style T6 fill:#ffebee,stroke:#f44336
    style D1 fill:#e8f5e9,stroke:#4CAF50
    style D4 fill:#e8f5e9,stroke:#4CAF50

Donut(Kim et al., ECCV 2022)

Donut(Document Understanding Transformer) は、OCR-Free文書理解の先駆的モデルだ。

Donutの仕組み:
  エンコーダー: Swin Transformer
    → 文書画像を視覚特徴量に変換

  デコーダー: BART(Transformer)
    → 視覚特徴量から直接JSON形式の構造化データを生成

  例: 請求書画像 → {"vendor": "ABC Corp", "total": "$1,250.00", "date": "2026-01-15"}

外部OCRエンジンへの依存がなく、OCRの認識エラーが下流タスクに伝播しない点が最大の利点だ。

Pix2Struct(Google)

Pix2Struct は、マスクされたWebページのスクリーンショットからHTMLを復元するタスクで事前学習されたモデルだ。Webページという「視覚的に構造化された文書」を大量に学習することで、文書・図表・UIの理解に幅広く応用できる。

Nougat(Meta)

Nougat は学術論文PDFに特化したモデルで、Swinエンコーダー + mBARTデコーダーのアーキテクチャを持つ。学術PDF画像からLaTeXやMarkdownの構造化テキストを直接生成する。数式の多い論文のデジタル化において、従来のOCRパイプラインを大きく上回る性能を示す。


テーブル抽出

文書中の**表(テーブル)**の抽出は、Document AIにおける重要かつ困難なタスクだ。表の構造は多様で、罫線のない表、セル結合、入れ子構造など、複雑なパターンが存在する。

表抽出の2段階アプローチ

graph TD
    A["文書画像"] --> B["テーブル検出<br/>(Table Detection)"]
    B --> C["テーブル領域の<br/>バウンディングボックス"]
    C --> D["構造認識<br/>(Structure Recognition)"]
    D --> E["行・列・セルの<br/>構造データ"]
    E --> F["セル内テキストの<br/>認識・割り当て"]
    F --> G["構造化テーブル<br/>(HTML/CSV/JSON)"]
    
    H["物体検出モデル<br/>Faster R-CNN / DETR"] -.-> B
    I["専用モデル<br/>TableFormer等"] -.-> D
    
    style A fill:#e8f4f8,stroke:#2196F3
    style G fill:#e8f5e9,stroke:#4CAF50
ステージ手法説明
テーブル検出Faster R-CNN / DETR文書画像中の表領域を物体検出として特定
構造認識TableFormer / TSR検出された表の行・列・セル境界を認識
セル内容抽出OCR + マッピング各セルの内容をテキスト認識して構造に紐づけ

最新のアプローチでは、レイアウト解析とテーブル抽出を統合し、LayoutLMv3やDonutなどのDocument AIモデルが表構造を直接理解する方向に進化している。DETR(Detection Transformer)のようなTransformerベースの物体検出モデルの登場により、テーブル検出の精度も大幅に向上した。


この章のまとめ

  • Vision Transformer(ViT) は、画像をパッチに分割しSelf-Attentionで処理することで、CNNを超えるOCR精度を実現した。ただし大量データが前提であり、データが少ない場合はCNNやハイブリッドモデルが有効
  • TrOCR は、ViTエンコーダー + テキストTransformerデコーダーという純粋Transformerアーキテクチャで、CNNもRNNも不要にした
  • LayoutLMファミリー は、テキスト + 2D位置 + 画像の3モダリティを統合し、フォーム理解や文書分類で高い性能を達成
  • Donut・Pix2Struct・Nougat などのOCR-Freeモデルは、外部OCRエンジンを不要にし、画像から直接構造化データを生成する新しいパラダイムを確立
  • テーブル抽出は、物体検出 + 構造認識の2段階アプローチから、Document AIによる統合的なアプローチへと移行しつつある