OCRのレイアウト解析は、どのように表や複数段組みの読み取り順序を再構成するのか?

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

OCRレイアウト解析は、認識された単語と、そのジオメトリ、領域タイプ、テーブルの関係性、推定された読み取り順序を組み合わせて、複雑なページを再構成します。

スキャンされた銀行取引明細書、請求書、家電製品の予定表、学校の書類、雑誌ページ、技術マニュアルは、単なる単語の集合ではありません。意味は、トークンがどこに現れるか、どの見出しが段落を管理しているか、どのヘッダーがテーブルの値を示しているか、次にどの列を読むべきかによって決まります。文字OCRはテキストと座標を提供しますが、レイアウト解析は、これらの検出結果を検索またはRAGパイプラインが一貫性を保ったまま扱えるドキュメントへ変換する構造レイヤーを追加します。

OCRはまず、ページのジオメトリに紐付いたテキスト要素を生成する

再構成は、単語、行、スパン、バウンディングポリゴン、信頼度、向きなど、ページ単位の検出結果から始まります。ジオメトリは、プレーンテキストでは失われてしまう証拠を保持します。

スパンと位置情報を持つページ要素は、認識されたテキストをページ内のジオメトリとともに保持します。これにより、後続のレイアウト処理で、行、領域、元の位置をグループ化するための証拠を利用できます。

x=800にある単語が、x=100にある単語より本質的に「後」にあるわけではありません。2段組みのページでは、両者の幾何学的な関係が、1つの左から右へ進む文ではなく、別々の読み取りストリームを示している可能性があります。したがって座標レイヤーはグループ化のための空間的な生データとして機能しますが、見出し、キャプション、テーブルヘッダー、フッターといった意味上の役割を判断するには、ジオメトリだけでは不十分です。

レイアウトモデルはページを平坦化する前に領域を分類する

レイアウトアナライザーは、段落、タイトル、見出し、テーブル、図、リスト、ヘッダー、フッターなど、より大きな領域を検出します。各領域にはコンテンツとページ上の位置の両方が含まれます。

幾何学的および論理的な役割を分類することで、ページを平坦化する前に、テーブルや図などの物理的な領域と、タイトル、見出し、フッターなどの意味上の役割を分離できます。

この領域処理により、ページ番号、サイドノート、キャプション、本文の段落が、1つの平坦なストリーム内にある同等の行として扱われるのを防げます。

また、後続のテーブル処理や読み取り順序のロジックが、単語一つひとつの関係を個別に解決するのではなく、接続対象となるコンテナも作成します。

テーブルの再構成は、OCRテキストの周囲に行、列、セル、スパンを追加する

「$128.50」と認識しても、それが小計、免責額、月額料金、または別の列の値なのかは分かりません。アナライザーは、そのトークンを所有するセルと、その周囲にあるグリッドの関係性を推定する必要があります。

テーブル構造とコンテキスト上の関係を復元することで、OCRトークンを、インデックス作成後も意味を維持できる行、列、セル、ヘッダー、セクション対応オブジェクトへ変換できます。

セルの境界は、目に見える罫線、空白、配置パターン、学習済みの視覚的特徴、またはこれらの手がかりの組み合わせから導き出されます。生成された構造には、行と列の所属が記録され、結合セルやヘッダーの役割も保持される場合があります。

これにより、ローカルRAGパイプラインは、座標を保持して元データを検証できる状態で、テーブルを構造化された行、Markdown、HTML、キーと値のペア、またはテーブル対応チャンクとしてシリアライズできます。

読み取り順序は、領域間の関係として推定される

領域を検出した後も、システムはどの要素の次にどの要素が続くのかを判断する必要があります。単純な上から下への並べ替えでは、2段組み、サイドバー、折り返されたキャプション、図の周囲を回り込むテキストに対応できません。

読み取り順序をグラフ問題としてモデル化すると、複雑な多段組みレイアウトにおいて、テキスト行または領域間の候補遷移を評価してから、全体のシーケンスを選択できます。

商用のレイアウトシステムは異なるモデルを使用する場合がありますが、概念的なタスクは同じです。ジオメトリ、テキスト、領域クラス、学習済みのレイアウトパターンから後続関係を判断します。出力では、左列の段落を完了してから右列の上部へ移動し、近くにあるキャプションを本文へ挿入するのではなく、図に紐付けられる必要があります。

階層は見出し、段落、テーブル、図をセクションに接続する

読み取り順序はシーケンスを提供しますが、検索では階層も役立ちます。「保証の例外事項」の下にある段落は、取得されたチャンクから見出し自体が数行離れていても、その見出しとのつながりを維持する必要があります。

ドキュメントレイアウトツリーは親子階層を保持するため、段落やテーブルのチャンクが、元のドキュメント内での役割を定義する見出しのコンテキストを維持できます。

これはプライベートRAGで特に有用です。取得されたテーブルの行は、セクションタイトルや、その値を定義する列ヘッダーがなければ曖昧になる可能性があるためです。

そのため、構造を考慮したチャンク分割は、平坦化されたOCRテキストからページ間の関係を再発見することをチャンク分割処理に強いるのではなく、再構成の後に実行できます。

構造化された出力は、検索と検証のためのプロヴェナンスを保持する

堅牢なパーサーは、再構成された要素からページ番号や元の座標へ戻るマッピングを保持する必要があります。これにより、検索インターフェースは、生成された構造を追跡不能な新しいドキュメントとして扱うのではなく、元のテーブルや段落を表示できます。

失われたOCRテーブルの関係を修復するには、抽出されたコンテンツを通常の検索チャンクへ変換する前に、行、列、ヘッダー、スパンの関連付けを追加する必要があります。

家庭の請求書であれば、プロヴェナンスによって、取得された金額をテーブルのセル、行ラベル、列ヘッダー、ページ、バウンディングボックスに紐付けられます。多段組みのマニュアルであれば、正確な段落の順序を保持できます。これにより、レイアウト解析は単なる見た目の整形以上のものになります。ベクトルインデックスやキーワードインデックスが後でランク付けする証拠単位と、引用で表示できる元の領域を決定するからです。

レイアウト解析では、OCRが取得できなかった証拠を確実に再構成できない

構造モデルは、利用可能な視覚的およびテキスト上の手がかりに依存します。ひどいぼけ、端の切り取り、手書き文字、傾き、重なったスタンプ、破損したスキャン、誤った文字認識は、セルや関係性の特定に必要な情報を失わせる可能性があります。

レイアウト検出と読み取り順序を共同でモデル化することで、ドキュメント全体の再構成において、領域の認識と、それらを読むべき順序を結び付けやすくなります。

スキャンページ間で一貫しないOCRと、レイアウト順序のエラーを区別することで、基盤となる文字が誤認識されている場合に、パーサーが構造の再構成を原因だと誤って判断するのを防げます。

両方を評価してください。再構成された出力がプライベート検索またはRAGシステムの証拠になる前に、テキストの正確性、テーブルセルの所属、ヘッダーとの関連付け、セクション階層、読み取り順序、座標による追跡可能性を確認します。

テック&AIハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.