OCRのレイアウト復元が重要なのは、文字が正確でも、ラベル、値、行、列が誤った順序で出力されると誤解を招くためです。
スキャナーは納税フォーム上のすべての単語を認識できても、金額を隣のラベルに結び付けたり、表を行単位ではなく列単位で平坦化したりすることがあります。読み取り順序は、目に見える座標とシリアル化されたテキストをつなぐ中間構造です。この構造が間違っていると、抽出、検索、RAGは、自信に満ちているものの並べ替えられた文書を引き継ぐことになります。
文字の正確さだけでは文書内の関係性を保持できない
OCRは通常、領域、行、単語、文字を検出することから始まります。これらの予測からは、どのテキストが存在し、どこに表示されているかは分かりますが、どのブロックが次に続くべきかまでは分かりません。プレーンテキストとして出力するには1つの順序を選ぶ必要があるため、レイアウト復元は位置、視覚的なグループ化、文書の慣習をもとにした別個の推論になります。
LayoutReaderの研究では、レシートやフォームにおける読み取り順序を中核的な要素として説明し、文書レイアウトのメタデータから大規模なデータセットを構築しています。その結果は、文字認識器を変更しなくても、行の順序を改善することで、十分な性能を持つOCRエンジンをさらに向上させられる理由を示しています。
この違いは構造化されたページで決定的になります。段落では行の位置がずれても無害に見えることがありますが、フォームでは同じ誤りによって1つの値が間違ったフィールドに結び付けられ、表ではすべてのセルが誤ったレコードに移動する可能性があります。
読み取り順序によって行、列、フィールドの対応関係を復元する
レイアウトモデルは、ブロックをノードとして扱い、それらの間の優先関係や近傍関係を予測します。幾何学的情報からは、整列、間隔、包含、繰り返されるベースラインなどの手掛かりが得られます。テキストからは、見出し、句読点、フィールドの種類などの手掛かりが得られます。その結果得られたグラフは、線形化されるか、表やキーと値の構造に変換されます。
順序関係に関する研究では、複雑なページ上のあらゆる有効な関係を、単一の順列では表現できない場合があると論じています。サイドバー、入れ子状の領域、複数列の要素によって複数の妥当な読み取り経路が生じる場合、ペアごとの順序付けによって、より豊かな構造を保持できます。
フォームでは、役立つ出力は1本の長い文字列ではなく、ラベルと値、チェックボックスと質問といった関係であることが多いです。表では、行と列の所属関係をシリアル化後も維持する必要があります。したがって読み取り順序は、抽出したテキストを読みやすくするだけでなく、構造の復元を支えるものです。
レイアウト復元でも起こり得る、もっともらしい誤り
回転したスキャン、結合セル、手書き文字、浮動注釈、繰り返しヘッダー、罫線のない表は、整ったページから学習した視覚的ルールを破綻させる可能性があります。特に、隣接するフィールドに互いに適合する日付、通貨、氏名が含まれている場合、モデルは列をまたいだ流暢な順序を、気付かないまま生成することがあります。
テキストとレイアウトのモデリングは、文書理解のためにテキスト、二次元位置、視覚的特徴を共同でモデル化します。この組み合わせは、座標だけでは不十分な理由を説明しますが、一方で、検出やOCRの誤りが後続の構造予測を汚染する可能性も意味します。
複数の順序が依然として妥当である文書や、誤った関連付けによってレコードが変わる文書では、そこが失敗の境界になります。その場合は、バウンディングボックスとページ画像を保持し、不確実性を示し、シリアル化されたテキストを正規データとして扱うのではなく、レビューを必須にしてください。
セルとフィールドの復元テストを実施する
複数列のテキスト、結合セル、繰り返しヘッダー、チェックボックス、ラベルと値の対応関係を含む代表的なページを10枚選びます。意図した読み取り順序に加え、各表の行、列、フォームの関連付けを記録した小規模な正解データセットを作成します。評価するのは文字誤り率だけでなく、構造化された出力です。
構造化文書検索で説明されている証拠を重視する手法に従い、復元されたテキストとその元の座標の両方をインデックス化します。ページ上に複数回現れる値を検索し、すべての回答が正しいラベル、行、列、ページ領域を指していることを確認します。
システムが正解データセットの関係性を保持し、曖昧なレイアウトにフラグを付けた場合にのみ合格とします。OCRスコアが高くても、フィールドの入れ替わりは補えません。テンプレート単位で誤りが集中する場合は、そのテンプレートを専用パーサーまたは人手によるレビューに回してください。
テック&AIハブ
もっと読む

プライベート検索スコアのキャリブレーション:生の類似度を実用的な信頼度シグナルに変換する方法
コサイン類似度が信頼度ではない理由、ラベル付きクエリでスコアをキャリブレーションする方法、そしてプライベートコーパスが変化した際のしきい値の監視方法を学びます。

ローカルAIのNUMA局所性:メモリ配置がアクセラレーターへのデータ供給速度を変える理由
CPU、RAM、PCIeトポロジーがアクセラレーターへのデータ供給に与える影響、自動配置が変動する理由、安全にNUMAバインディングをベンチマークする方法を学びます。

モデルファイルのメモリマッピング:共有ページでRAMの重複使用を削減する方法
マッピングされたモデルページがどのようにフォールトインおよび共有されるか、RSS が誤解を招く理由、さらにプロセスごとにどのキャッシュやバッファが依然として RAM を消費するのかを理解します。

