目次を表示する

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

ディープラーニング時代のテキスト検出と認識

ディープラーニング時代のテキスト検出と認識

この章のテーマ:「文字を検出する」から「テキスト領域を検出する」へ。EAST、CRAFT、DBNetなどの検出手法と、Attention-based認識、End-to-Endモデルの進化を追い、現代OCRの基盤技術を理解する。


この章を読み終えると、テキスト検出の主要アーキテクチャ(EAST、CRAFT、DBNet)の違いと使い分けを説明できるようになる。また、CTC方式とAttention方式の認識アプローチの違い、End-to-Endモデルの利点を理解できる。


「文字を検出する」から「テキスト領域を検出する」へ

前章のCRNN+CTCは、テキスト行画像が切り出された状態を前提としていた。しかし実際の文書や自然画像では、まずテキストがどこにあるかを検出する必要がある。

従来のテキスト検出は、ストロークの特徴やエッジ検出を使って「文字らしい領域」を探す手法が主流だった。しかし、ディープラーニングの台頭により、テキスト検出は物体検出(Object Detection)の一種として再定義された。この発想の転換が、検出精度を飛躍的に向上させた。


テキスト検出の革新

EAST ── シングルショットのテキスト検出(2017年)

Zhou et al. が CVPR 2017 で発表した **EAST(Efficient and Accurate Scene Text Detector)**は、テキスト検出のパイプラインを劇的に簡素化した。

❌ 従来のテキスト検出パイプライン:
  画像 → 候補領域抽出 → 候補フィルタリング → バウンディングボックス回帰 → NMS
  → 多段階で遅い。各段階のチューニングが必要

✅ EAST のアプローチ:
  画像 → FCN一発 → ピクセルごとのスコアマップ + ジオメトリマップ → NMS
  → 中間段階を全て排除。シンプルかつ高速

EASTの特徴は、U-Net型の特徴マージ(Feature Merging)構造を採用している点だ。異なるスケールの特徴マップを統合することで、小さなテキストから大きなテキストまで検出できる。

graph TB
    subgraph "EAST アーキテクチャ"
        A["入力画像"] --> B["特徴抽出<br/>(PVANet / VGG16)"]
        B --> C["特徴マージ<br/>(U-Net型)<br/>異なるスケールの特徴を統合"]
        C --> D1["スコアマップ<br/>各ピクセルが<br/>テキスト領域か否か"]
        C --> D2["ジオメトリマップ<br/>回転ボックス or<br/>四角形の頂点座標"]
        D1 --> E["NMS<br/>(局所抑制)"]
        D2 --> E
        E --> F["検出結果"]
    end

    style C fill:#4a90d9,color:#fff
    style D1 fill:#e8a838,color:#fff
    style D2 fill:#e8a838,color:#fff

出力は2種類のマップだ。スコアマップは各ピクセルがテキスト領域に属する確率を示し、ジオメトリマップは各ピクセルからテキスト領域の境界までの距離(RBOX)または四角形の頂点座標(QUAD)を示す。

720p解像度で13.2 fps ── リアルタイムに近い速度を実現した点も画期的だった。

CRAFT ── 文字レベルの精密検出(2019年)

Baek et al. が CVPR 2019 で発表した **CRAFT(Character Region Awareness for Text Detection)**は、EASTとは異なるアプローチを取った。テキスト領域を直接検出するのではなく、個々の文字領域とその連結関係を検出する。

CRAFTは2種類のヒートマップを出力する:

1. Region Score(文字領域スコア):
   → 各ピクセルが「文字の中心」にどれだけ近いかを表す
   → 文字ごとにガウス分布のような高い値を示す

2. Affinity Score(親和性スコア):
   → 隣接する文字同士の「つながり」の強さを表す
   → 文字ペア間の三角形中心を結ぶ領域に高い値を示す
graph LR
    subgraph "CRAFT の2つのヒートマップ"
        direction TB
        A["入力:'HELLO'"] --> B["Region Score<br/>各文字の中心に<br/>高スコア"]
        A --> C["Affinity Score<br/>文字間の接続に<br/>高スコア"]
        B --> D["文字領域を検出"]
        C --> D
        D --> E["Connected Components<br/>で単語領域に統合"]
    end

さらに、長いテキスト系列の検出精度を向上させるためにLinkRefinerモジュールが追加されている。離れた文字グループ間のリンクを再検討し、テキスト行全体を正しく結合する。

CRAFTの強みは、文字レベルの検出を行うため不規則な形状のテキスト(曲がったテキスト、円弧状のテキスト)にも対応しやすい点だ。

DBNet ── 微分可能な二値化(2020年)

Liao et al. が AAAI 2020 で発表した **DBNet(Differentiable Binarization)**は、テキスト検出のパイプラインにおける「二値化」のステップに着目した。

従来のセグメンテーションベースの検出では、確率マップから二値マスク(テキスト領域 / 非テキスト領域)を得るために固定の閾値を使っていた。この閾値は全ピクセルで共通であり、テキストのスケールやコントラストの違いに対応できなかった。

❌ 固定閾値による二値化:
  threshold = 0.3(全ピクセル共通)
  → 小さなテキストや低コントラストのテキストが消失
  → 閾値の調整がデータセットごとに必要

✅ DBNet の適応的二値化:
  threshold = ネットワークが学習した閾値マップ(ピクセルごとに異なる)
  → 各ピクセルに最適な閾値を自動で学習
  → 二値化がend-to-endで微分可能 → 勾配が逆伝播できる

DBNetの核心は、二値化処理を微分可能な近似関数で置き換えたことだ。ステップ関数(微分不可能)をシグモイド関数で近似し、勾配を伝播できるようにした。これにより、閾値マップを含むネットワーク全体をend-to-endで学習できる。

DBNet++ ── マルチスケール特徴の適応的融合(2022年)

2022年にTPAMIで発表された DBNet++ は、**適応的スケール融合(Adaptive Scale Fusion, ASF)**モジュールを追加した改良版だ。

DBNet++ の ASF モジュール:
  - Stage-wise Attention:各スケールの特徴マップの重要度を学習
  - Spatial Attention:空間的にどの位置が重要かを学習
  → マルチスケール特徴をただ連結するのではなく、
    「どのスケールの情報を、どの位置で重視するか」を動的に判断

これにより、小さなテキストから大きなテキストまでの検出精度がさらに向上した。

テキスト検出手法の比較

手法発表年核心的な革新速度強み弱み
EAST2017シングルショット + U-Net特徴マージ13.2 fps(720p)高速、シンプル曲線テキストが苦手
CRAFT2019文字領域 + 親和性の2ヒートマップ約8.6 fps不規則形状に強い文字レベルのアノテーションが理想的
DBNet2020微分可能な二値化約22 fps(ResNet-18)高速かつ高精度極端に小さなテキスト
DBNet++2022適応的スケール融合(ASF)DBNetと同等マルチスケールに強いモデルサイズがやや増加

テキスト認識アプローチの進化

Attention-based Seq2Seq ── 暗黙的アライメント

前章で紹介したCTC方式に対し、Attention-based Seq2Seqは別のアプローチで認識問題を解く。エンコーダ・デコーダ構造に空間的Attention(Spatial Attention)を組み込むことで、「画像のどこを見て次の文字を予測するか」をモデルが自律的に学習する。

graph LR
    subgraph "Attention-based Seq2Seq"
        A["テキスト行画像"] --> B["エンコーダ<br/>(CNN + RNN)"]
        B --> C["Attention<br/>「今どこを見るか」<br/>を動的に決定"]
        C --> D["デコーダ<br/>(RNN)<br/>1文字ずつ生成"]
        D --> E["出力: H→E→L→L→O→EOS"]
    end

    style C fill:#e8a838,color:#fff

CTCとAttention方式の違いは重要だ:

観点CTC方式Attention方式
アライメント暗黙的(全パスの確率合計)暗黙的(Attention重み)
デコード非自己回帰(並列可能)自己回帰(1文字ずつ順に)
速度高速低速(逐次デコード)
不規則テキストやや苦手(直線的な特徴列を想定)得意(任意の位置にAttend可能)
長い系列安定Attention の拡散で精度低下の可能性
学習データテキストラベルのみテキストラベルのみ

一般に、きれいな文書テキストにはCTC方式曲がったテキストや不規則配置のシーンテキストにはAttention方式が適している。近年は両者を組み合わせるハイブリッド手法も多い。


End-to-Endモデル ── 検出と認識の統合

分離パイプラインの問題

テキスト検出と認識を別々のモデルで行うと、以下の問題が生じる:

1. エラーの蓄積:検出のミスが認識に伝播し、回復不能
2. 最適化の非効率:2つのモデルが独立に最適化され、全体最適にならない
3. 推論速度の低下:画像を2回処理する必要がある
4. 特徴の重複計算:検出と認識で同じ画像特徴を別々に計算する無駄

End-to-Endモデルは、検出と認識を単一のネットワーク内で統合することで、これらの問題を解決する。

FOTS ── 特徴共有による統合(2018年)

**FOTS(Fast Oriented Text Spotting)**は、テキスト検出と認識でCNNの特徴マップを共有する。

graph TB
    subgraph "FOTS アーキテクチャ"
        A["入力画像"] --> B["共有CNN<br/>(特徴抽出)"]
        B --> C["検出ブランチ<br/>テキスト領域を検出"]
        B --> D["RoIRotate<br/>傾いたテキスト領域を<br/>水平に変換"]
        D --> E["認識ブランチ<br/>CTC / Attentionで<br/>テキストを認識"]
        C --> D
    end

    style B fill:#4a90d9,color:#fff
    style D fill:#e8a838,color:#fff

特にRoIRotateは重要なコンポーネントだ。傾いたテキスト領域をアフィン変換で水平方向に整列させることで、認識モデルの入力を正規化する。特徴マップレベルでこの変換を行うため、画像の再サンプリングを繰り返す必要がなく効率的だ。

ABCNet ── ベジェ曲線で曲がったテキストに対応(2020年)

Liu et al. が CVPR 2020 で発表した **ABCNet(Adaptive Bezier Curve Network)**は、曲がったテキストの検出と認識を統合するモデルだ。

従来の矩形バウンディングボックスでは、曲がったテキストを正確に囲むことができない:

❌ 矩形ボックスで曲がったテキストを囲む場合:
  → ボックス内に大量の背景ノイズが含まれる
  → 認識精度が大幅に低下

✅ ABCNet のベジェ曲線アプローチ:
  → 3次ベジェ曲線でテキストの上辺と下辺を表現
  → 曲がったテキストの形状にフィットするバウンディング領域
  → BezierAlignレイヤーで曲線領域の特徴を水平に変換

ABCNetのBezierAlignレイヤーは、ベジェ曲線で定義された不規則な領域から特徴を抽出し、水平な矩形特徴マップに変換する。これはFOTSのRoIRotateを曲線テキストに拡張したものと考えられる。


シーンテキストと文書OCR ── 異なる問題、異なるアプローチ

テキスト検出・認識の技術は、対象とするシーンによって求められる特性が大きく異なる。

シーンテキスト(Scene Text)の課題

自然環境中のテキスト ── 看板、標識、商品パッケージ、Tシャツの文字 ── は、以下のような困難を伴う:

シーンテキスト固有の課題:
  - 照明変動:影、逆光、夜間撮影
  - 遠近法による歪み:斜めから撮影された看板
  - 曲面上のテキスト:ボトルのラベル、曲がった看板
  - 部分的遮蔽:他の物体に隠れた文字
  - 多様なフォント・デザイン:手書き看板、装飾フォント
  - 背景の複雑さ:テクスチャ豊かな背景に埋もれた文字

文書OCR(Document OCR)の課題

一方、スキャンされた文書やPDFの処理には、シーンテキストとは異なる課題がある:

文書OCR固有の課題:
  - 複雑なレイアウト:多段組み、ヘッダー/フッター、脚注
  - 表構造の認識:セル、行、列の関係性
  - 図中テキスト:図表のキャプションやラベル
  - 劣化した画像:古い文書のスキャン、FAX、コピーの繰り返し
  - 数式・特殊記号:LaTeX的な複雑な表現
  - 読み順の推定:多段組みの場合、どの順序で読むか

アプローチの比較

観点シーンテキスト文書OCR
主な入力カメラ画像スキャン画像・PDF
テキストの形状不規則(曲線・傾き)ほぼ水平
背景複雑・多様単純(白地が多い)
検出の難しさ高い(背景との区別)中程度(レイアウト解析が鍵)
認識の難しさ高い(歪み・ノイズ)中程度(劣化・特殊記号)
重要な後処理少ない多い(読み順、表構造)
代表的モデルCRAFT、ABCNetTesseract、後のTrOCR
評価データセットICDAR、Total-Text、CTW1500IIT-CDIP、RVL-CDIP、DocBank

シーンテキストと文書OCRは同じ「テキストを読む」タスクでありながら、求められる技術スタックが異なる。現在の研究トレンドは、両者を統合的に扱えるマルチモーダルな基盤モデルに向かっている ── これは後の章で詳しく取り上げる。


この章のまとめ

  • テキスト検出の革新:EAST(2017年)がシングルショット検出でパイプラインを簡素化し、CRAFT(2019年)が文字レベルの検出で不規則テキストに対応し、DBNet(2020年)が微分可能な二値化でend-to-end学習を実現した
  • Attention-based認識:CTC方式とは異なり、自己回帰的に1文字ずつ予測するアプローチ。不規則テキストに強いが速度では劣る
  • End-to-Endモデル:FOTS(特徴共有 + RoIRotate)とABCNet(ベジェ曲線 + BezierAlign)が、検出と認識の統合で全体最適化を実現した
  • シーンテキスト vs 文書OCR:同じOCRでも、求められる技術・課題が大きく異なる。シーンテキストは検出の難しさ、文書OCRはレイアウト解析が鍵
  • DBNet++(2022年):適応的スケール融合(ASF)により、マルチスケールのテキスト検出精度をさらに向上させた