OCRの解像度はRAGインデックスのサイズにどのような影響を与えるか?

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

OCRの解像度は、DPIそのものではなく、認識できる情報量、ノイズ、レイアウト出力、保持される画像を通じて、間接的にRAGインデックスのサイズに影響します。

同じページ寸法で家族のアーカイブを600 DPIでスキャンすると、300 DPIの4倍のピクセル数になりますが、テキストのみのベクトルインデックスはそれらのピクセルを保存しません。サイズは、OCR後に出力される文字、レイアウトオブジェクト、チャンク、メタデータ、埋め込みによって決まります。高解像度では実際のテキストをより多く復元できる一方、非常に低品質な画像では、回答の改善につながらないノイズの多いトークンが生成され、インデックスが大きくなることもあります。

テキストがインデックスに入る前にピクセル数が増える

線形解像度を2倍にすると画像のピクセル数は4倍になり、デコード、前処理、一時ストレージ、OCR処理の負荷が増加します。パイプラインがページ画像、切り抜き、サムネイルをベクトルとともに保持する場合、それらのアセットがストレージの大部分を占める可能性があります。テキストのみのインデックスでは、抽出後にラスター画像の大部分が破棄されます。

Tesseractの認識品質に関するガイダンスでは、一般に300 DPI程度の画像で認識精度が向上し、低解像度の入力では拡大処理が役立つ場合があると説明されています。これは認識品質に関する推奨であり、埋め込みデータベースが300 DPIのピクセルを保存するという意味ではありません。

したがって、ストレージの境界を明確にする必要があります。元ファイル、OCR派生物、テキストチャンク、ベクトルペイロード、サムネイルは別々のレイヤーです。最終的なドキュメント数が変わらなくても、DPIの変更は各レイヤーに異なる影響を与えます。

認識できる情報量によってトークン数とチャンク数が変わる

より鮮明なスキャンでは、低解像度では読み取れない脚注、小さなラベル、表のセル、句読点を復元できます。有効なテキストが増えるとトークン数が増え、追加のチャンクやベクトルが生成される可能性があります。反対に、崩れた文字や繰り返し現れる無意味な文字列は、トークナイザーが破損した文字列を非効率的に分割するため、トークン数を増加させることがあります。

低解像度OCRに関する研究では、超低解像度のドキュメントからの認識を評価し、300 DPIのテキストを前提に設計されたシステムが、縮小や拡大の後に異なる動作をする理由を説明しています。結果は、解像度と文字の大きさが、単なる画像ファイルのサイズだけでなく、抽出されるコンテンツにも影響することを示しています。

レイアウト対応OCRでは、座標、読み順、信頼度、表構造などが追加される場合があります。これらのペイロードはプレーンテキスト自体を上回ることがあるため、引用のために空間的な証拠を保持するかどうかによって、同じ認識結果の単語でもインデックスサイズが異なる可能性があります。

字形の詳細が飽和すると、高DPIの効果は止まる

OCRモデルが文字の線を十分に認識できるようになると、それ以上のピクセル数を増やしても、テキストが増えないまま計算量と派生画像のサイズだけが増加する可能性があります。高DPIでも、圧縮アーティファクト、ぼやけ、傾き、手書き文字、誤った言語モデルなどが制約要因として残ることがあります。

OCRmyPDFのOCR画像の最適化では、認識後にページ画像を再圧縮または変換できる最適化段階について説明しています。これは、OCR後のPDFサイズが、スキャン時の解像度だけでなく、画像のエンコード方式と最適化ポリシーにも左右される理由を示しています。

問題となるのは、インデックスの増大がOCRの改善を証明すると考えてしまうことです。インデックスは、有用なテキストを復元したために大きくなることもあれば、重複するチャンクを作成したため、より大きな画像を保持したため、またはノイズを生成したために大きくなることもあります。これらの原因を区別できるのは、正解データに基づく認識テストと検索テストだけです。

OCRの解像度とインデックスストレージに関するFAQ

RAGでは600 DPIのほうが常に300 DPIより優れていますか?

いいえ。600 DPIは小さな文字や細部の多い帳票に役立つことがありますが、通常の印刷文字がすでに十分認識できる状態では、処理負荷や画像ストレージを増やすだけになることがよくあります。デフォルトで最高のスキャナー設定を選ぶのではなく、文字認識精度と検索性能をテストしてください。

スキャンのDPIが上がると、埋め込みのサイズも大きくなりますか?

特定の埋め込みモデルを使用する場合、ベクトルの次元数は通常変わりません。インデックスが大きくなるのは、高解像度OCRによってチャンク数、メタデータ、追加の領域埋め込み、または保持される画像派生物が増えた場合だけです。この影響は、想定するホームサーバーのワークロードで測定できる状態にしておく必要があります。

低解像度OCRによってインデックスが大きくなることはありますか?

はい。文字化けした文字列は多数の断片にトークン化され、ノイズの多いチャンクを作成することがあります。そのため、小さな元画像でも、きれいなスキャンより多くのテキストトークンを生成しながら、検索結果や引用の品質は低下する可能性があります。複数のパイプライン段階が同じストレージとメモリの予算を共有する場合、この違いは重要です。

パイプラインのレイヤーごとにストレージを測定する

通常のテキスト、小さな文字、表、手書き文字、劣化したスキャンを含むページを選びます。OCRモデル、言語、チャンク分割、埋め込みの次元数、保持ポリシーを一定にしたまま、複数の実効解像度で処理し、文字認識精度、トークン数、チャンク数、ベクトルのバイト数、メタデータのバイト数、派生物、一時的なピーク使用量、検索品質を記録します。

表や帳票がある場合は、読み順の確認を使用してください。すべてのバイトを元画像、OCR出力、チャンク、ベクトル、サムネイルのいずれかに割り当て、大きくなったディレクトリをベクトルインデックスの増大と誤って報告しないようにします。

各ドキュメントクラスで、認識と引用の目標を満たす最低解像度を選択してください。後で再処理する必要がある場合に限って高解像度の元画像を保存し、ピクセル数を増やすことでナレッジベースが改善すると結論づける前に、ノイズの多いOCRや重複する派生物を削除してください。

テック&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.