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-50 | CNN | 93〜94% |
| ViT-Base | Transformer | 98.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による統合的なアプローチへと移行しつつある