Skip to content
← Blog

OCRが曲がったテキストや傾いたテキストで失敗する隠れた理由

Based on: 2D Rotary Position Embedding for Scene Text Recognition with Transformers — Zobeir Raisi

シャンプーボトルをスマホで撮影して、曲面に巻かれた成分表示を読み取ってみましょう。私たちの目は、文字が曲がったり傾いたり端に向かって小さくなったりするのを、無意識のうちに追跡します。しかし、多くのOCRモデルはこれほどうまく処理できず、新しいプレプリントは、その理由として非常に具体的な説明を提供しています。それは、モデルに画像が2次元であることを教えたことがないからです。

画像を処理するために構築されたシステムにとって、これは荒唐無稽に聞こえるかもしれません。しかし、一度その説明を理解すると、「なるほど」と納得してしまうような、なぜこれほど長い間見過ごされていたのか不思議に思える瞬間です。

curved beverage bottle label text

なぜ直線という仮定は現実のテキストには不適切なのか

シーンテキスト認識(STR)とは、クリーンなスキャン画像ではなく、現実世界の写真に含まれるテキストを読み取る特定のタスクです。道路標識、製品ラベル、ナンバープレート、照明条件が悪い状態で撮影されたレストランのメニューなどが対象となります。これはPDFやWord文書を読み取る問題とは異なり、テキスト自体が物理世界の影響によって歪んでいます。ボトルの表面に沿って曲がっていたり、斜めから撮影されていたり、カメラを揃えずに標識を撮影した際に傾いていたり、レンズから遠い文字が遠近法によって引き伸ばされていたりします。

現代のSTRシステムは、大規模言語モデルの背後にあるのと同じアーキテクチャであるTransformerが主流です。エンコーダが画像を解析し、小さなパッチのグリッドに分割した後、デコーダが言語モデルが次の単語を予測するのと同様に、文字を1文字ずつ読み出します。このアプローチは、規則的で正面を向いたテキストには効果的ですが、テキストが直線として振る舞わなくなる瞬間には不安定になります。

見落としがちな重要な点は、Transformerには位置に関する内蔵された感覚がないということです。位置情報が一切ない画像パッチの無秩序な集合をTransformerに与えても、上下や左右を区別することはできません。すべてのTransformerには何らかの位置エンコーディングを追加する必要がありますが、このエンコーディングの選択は、多くの人が想定する以上に重要であることが分かっています。

トランスフォーマーが位置をどう知るか、そしてそのショートカットがどこで破綻するか

言語モデルから借用された位置エンコーディング方式はRoPE(Rotary Position Embedding、回転位置埋め込み)と呼ばれます。LLaMAを含む、現代の多くのオープン言語モデルで使用されています。このアイデアは、シーケンス内の位置に応じて各トークンのベクトルを回転させることで、アテンション計算で2つのトークンを比較した際に、その結果が自然にそれらの距離を反映するようにすることです。時計の針をイメージしてください。1ステップごとに一定量回転させれば、2本の針の角度からそれらの距離が、距離を明示的に保存することなくわかります。

RoPEは1次元シーケンス(1つずつ並ぶ文の単語)のために設計されました。画像は2次元であるため、研究者たちはビジョントランスフォーマー用のaxial 2D-RoPEという拡張版を構築しました。これは回転を2つの独立した部分に分割し、1つは行位置を、もう1つは列位置を追跡します。

この拡張版には当初から2つの前提が組み込まれており、本論文では、これら両方がシーンテキスト(画像内の文字)において破綻すると主張しています。

最初の前提は、画像がほぼ正方形であるというものです。回転の予算を行と列で均等に分割すれば、顔や風景の写真では問題ありません。しかし、「STOP」といった切り抜かれた単語は、高さの4倍の幅を持つかもしれません。垂直方向にはほとんど特徴的な変化がないのに、位置分解能の半分を高さにつぎ込めば、実際に重要なのは、文字の左から右への順序を担う次元が資源不足に陥ることになります。

2つ目の前提は、エンコーディングが適用される箇所です。従来の2D-RoPEの研究では、画像パッチが互いにアテンションを向けるエンコーダ内部でのみベクトルを回転させていました。しかし、文字認識(STR)モデルはエンコーダ-デコーダ構造であり、デコーダは文字を1文字ずつ生成し、各ステップでクロスアテンションを通じてエンコーダの画像パッチグリッドを参照します。ここでモデルは「すでに読んだ文字を踏まえて、次は画像のどこを見るべきか」を決定します。位置計算がこのステップに一切関与しない場合、デコーダはコンパスなしで2次元画像をナビゲすることになります。そのため、「上」「下」「左側」「右側」といった実際の空間概念を含まない、汎用的な学習済み位置タグに頼らざるを得なくなります。

2つの修正、新規パラメータなし

この論文の修正は、両方のギャップに直接的に対処しており、私が本当に魅力的だと感じる点は、どちらの変更もモデルに新しい重みを追加しないことです。これはより大きなネットワークや、後から付け足された新しいモジュールではありません。既存の回転数学の構成方法を変更するものです。

最初の修正は、回転次元を不均等に割り当て、50/50に分割するのではなく、実際のテキストクロップのアスペクト比に合わせます。幅が広く高さが低いクロップは、情報の実際に存在する場所に合わせ、幅方向にはより多くの位置分解能を、高さ方向には少ない分解能を割り当てます。

2番目の修正は、同じ回転結合をクロスアテンションにも拡張し、デコーダのクエリとエンコーダの2Dグリッドに共有された幾何学的な参照枠を与えます。実際には、これは「次に予測しようとしている文字」を「文字の曲線に沿って、最後の文字の直後の画像パッチ」と関連付けることができることを意味し、画像全体を区別のないトークンの山として扱うのではなく、より文脈に即した処理が可能になります。

機械学習において、これほど具体的な「無料の昼食」は稀なので、完全に信じるには、著者自身の実行結果以外の環境でもこの修正が再現されるのを見たいものです。しかし、理論は整合しており、実際に製品写真のOCRを試した誰もが即座に認識できる失敗モードに適合しています。

tilted street sign photograph

希望的思考に耐えるように設計されたプロトコル

この論文が「我々の位置エンコーディングにより数値が向上した」という典型的な結果と異なる点は、改善が著者らが主張する箇所から生じており、再学習に伴う無関係な副作用によるものではないことを証明するために細心の注意を払っていることです。

この役割を果たすための3つのチェックがあります。第一に、制御されたアブレーションペアです。モデル全体を同一に保ち、位置エンコーディングモジュールのみを交換し、1次元RoPE、2次元正弦波エンコーディング、2次元学習可能エンコーディング、および彼らの新しい2D-RoPE-STRを互いに比較します。これにより、変化した唯一の変数が分離されます。

第二に、画像レベルの不整合分析です。単一の集計精度数値(平坦な平均値が、一部の画像での大きな勝利を他の画像での損失が相殺することで隠蔽するため、明らかにするよりも隠すことが多い)を報告するのではなく、著者らはベースラインと新しい手法の間で、どの特定の画像が誤答から正答に、またその逆に変化したかを調べます。これは、著者らが利益が不均一に薄く分散されているのではなく、特定の箇所に集中していることを示さなければならないため、不正に利用しにくいより厳しいテストです。

第三に、アテンションの可視化です。デコーディング中にエンコーダのアテンション重みがどこに配置されるかを文字通りプロットし、モデルがベンチマークで運良く正解しているのではなく、期待通りにテキストの曲線を目視で追跡しているかを確認します。

性能向上が実際に現れる箇所

ここで使用されている6つのベンチマーク、IIIT5K、SVT、ICDAR 2013、ICDAR 2015、CUTE80、およびSVTPは、このサブフィールドにおける標準的なテストセットです。最初の3つは、主に正面から撮影された水平なテキストで比較的単純なものです。最後の3つは、研究者が不規則なテキストに対するストレステストに特に使用するものです。ICDAR 2015には傾いたテキストや低品質な看板が多く含まれており、CUTE80は曲線状のテキストで構成され、SVTPは視差歪みに大きく依存しています。

抄録によると、性能向上は主に2番目の、より困難なグループ、つまり読み取り順序が直線的な水平線から外れる曲線状、回転、視差歪みのあるレイアウトに集中しています。これは散発的なものではなく、一貫した物語です。これは、多くの「より良い位置エンコーディング」の論文が各ベンチマークを同様の小さなマージンで押し上げるのではなく、修正がその背後にある推論が予測した通りに正確に機能していることを示しています。

明らかな注意事項を指摘しておきます。arXivの抄録には実際の精度表は掲載されておらず、リスト自体から具体的なパーセントの向上を引き出すことはできませんでした。この論文は現在、International Journal on Document Analysis and Recognitionでレビュー中です。したがって、完全な数値が公開され、元のチーム以外の誰かがそれらを再現するまで、これを確立された結果ではなく、有望でメカニズム的に十分に論証された結果として扱うべきです。

まだ証明されていないこと

興奮しすぎる前に、いくつか考慮すべき点があります。

これはまだピアレビュー中であり、受理されていない単一著者の論文です。これが間違っていることを意味するわけではありませんが、通常のコミュニティによる厳格な検証(再現性確認、敵対的レビュー、異なるデータセットでの破綻テストなど)は、まだ行われていないということです。

6つのベンチマークはすべて学術的なもので、英語中心であり、2003年から2016年の間に作成されました。これらは「写真内のテキスト」の妥当なプロキシ(代用指標)ですが、本番環境のOCRパイプラインが直面する、多様な文書とは異なります。例えば、混合スクリプト、スマホカメラのノイズ、暗所、モーションブラー、深夜に劣悪なスマホで撮影されたレシートなどです。この位置エンコーディングの修正が、そのような複雑な状況にも一般化できるかどうかは、論文でも回答を主張していない未解決の課題です。

また、範囲について正確に理解することも重要です。これは認識ステップを対象としており、上流の検出器がすでにテキストを含むと特定した切り出し画像内の文字を読み取ることに焦点を当てています。ドキュメントのレイアウト、表構造、または全ページの読み取り順序には触れていません。もしあなたのOCRの問題がスキャンされた請求書や契約書に関連するものであれば、この修正は、そこで通常問題となる失敗モードとは異なる対象を扱っています。

OCRの構築・選定においてなぜ重要なのか

OCRに入力するデータの大半が、請求書やスキャンされた契約書、フォームなどの整然とした正面撮影のドキュメントであれば、この特定の修正が精度に大きな影響を与えるとは期待しないでください。論文自体の結果も、改善効果が不規則なレイアウトに集中していることを示しており、整然としたドキュメントは定義上、不規則ではありません。

しかし、あなたの製品が物理世界の写真、製品ラベル、道路標識、パッケージ、あるいはスマートフォンで斜めから撮影されたレシートなどを扱う場合、これはデモでOCRシステムを困らせる典型的な失敗モード、つまり曲がったり傾いたり、透視変形で歪んだテキストを正確にターゲットにしています。これは現実的で一般的な入力カテゴリであり、「モデルに文字の2次元的位置感覚が全くない」という説明は、そこでなぜ失敗し続けるのかに対する納得感があり、かつ修正可能な理由です。

エンジン評価において最も重要視すべき点は、「新しいパラメータなし」という主張です。これが独立したテストで裏付けられれば、歪んだテキストの処理改善には、より大きく、遅く、高価なモデルを追加する必要がないことを意味します。これは、messyな実世界の画像での精度向上を追求しながら、推論コストを現実的な範囲に抑えようとする場合に、真に有用な特性です。現時点では、この研究動向に即座に行動を起こすのではなく、注視し続けるのが賢明です。完全版論文の表や独立した再現結果を見守り、OCRエンジンの評価は主に自社のユーザーが実際にアップロードするデータでのパフォーマンスに基づいて行いましょう。ベンチマークは注目すべき箇所を示しますが、顧客が実際に送ってくるであろう奇妙で曲がり、照明の悪い写真に対するテストを置き換えるものではありません。なお、日本語の縦書きや漢字のレイアウトは多くのOCR/VLMモデルにとって最も困難なケースの一つですが、本論文が英語のみを対象とし縦書きを無視している場合、日本語ユーザーにとって漢字や縦書きレイアウトがカバーされていないという欠落を意味します。