OCR Low Accuracy onScanned Documents? 5 Root Causes and Fixes

You scanned a stack of documents, ran them through OCR, and the output is full of errors — numbers where letters should be, half the lines missing, and text that looks like it was run through a blender. A 5-degree page skew alone can increase word error rate by 15%, and documents scanned below 200 DPI routinely lose 10–20% of character-level accuracy before the OCR engine even starts working. The problem is rarely the engine itself. It is almost always the interaction between a specific image defect and how the engine processes it.

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す
登録不要 · カード不要 · 10秒で結果
スキャン文書の山。品質の低いスキャンにおけるOCR精度の課題を示す

重要ポイント

  1. スキャン文書のOCR結果がめちゃくちゃな場合、原因はほぼエンジンではなく、5つの画像欠陥が真犯人であり、それぞれに診断可能な特徴があります。
  2. わずか3度のページ傾きで単語誤り率が15%増加し、150 DPI以下のスキャンではOCRエンジンが処理を始める前に文字精度が20%も低下します。
  3. 各欠陥には特定の順序で行う的を絞った修正方法があり、前処理の限界に達した場合の解決策は、損傷したピクセルと一対一で戦うのではなく、文書を意味で読み取る別のパラダイムです。

スキャン文書は、デジタルネイティブのPDFとは根本的に異なります。デジタルで作成された文書では、テキストはクリーンなベクター形状として存在します。スキャン文書は印刷ページの写真です。その写真に存在するすべての画像欠陥が、OCRエンジンが1文字を認識する前に解決しなければならない問題となります。人間の目には「ほぼ同じ」に見えるものでも、ピクセルレベルで動作するアルゴリズムには絶望的に曖昧に見えることがあります。

朗報:スキャン文書における低いOCR精度には、予測可能なパターンがあります。各根本原因には診断可能な兆候があり、どの欠陥に対処しているかを特定できれば、修正方法は再現可能です。

原因1 — 低DPI:最も一般的な精度低下要因

症状: 拡大すると文字がギザギザに見える。OCRが類似した字形を混同する — 8B5S と誤認識。単語が予期せず分割され、句読点が頻繁に欠落する。

理由: DPI(1インチあたりのドット数)は、スキャナが物理的なページの1インチあたりに取り込むピクセル数を決定します。200 DPI未満では、1文字あたりのピクセル数が非常に少なくなり、異なる字形が同一に見え始めます。小文字の ec はどちらも数ピクセルの塊になります。150 DPIでは、ほとんどのエンジンで文字レベルの精度が90%を下回ります。100 DPI(スマートフォンを腰の高さから撮影した写真と同程度)では、小さな文字を含む文書では精度が実用になりません。

修正方法: 最低300 DPIでスキャンしてください。これはOCRの業界標準であり、ファイルサイズと認識品質のバランスが取れています。10ポイント未満のテキストの場合は、400~600 DPIに上げてください。再スキャンできない場合は、超解像度アップスケーリングを用いた前処理パイプラインにより、劣化が激しく使用できないように見える画像からも測定可能な精度を回復できます。

クイックチェック: スキャン画像を100%ズームで開いてください。文字のエッジが滑らかに見えれば、DPIは十分です。階段状に見えたり、四角いピクセルが見えたりする場合は、閾値を下回っています。

原因2 — 傾きと回転:ページがまっすぐでない場合

症状:テキスト行が斜めになる。一部の単語は正しく認識されるが、同じ行の隣接単語が断片化する。表の列がずれ、本来1列に収まるデータが次の列にはみ出す。

原因:従来のOCRはテキストが水平直線上にあると仮定する。人間の目にはほとんどわからない3度の傾きでも、文字がエンジンの想定するベースラインから外れる。行分割アルゴリズムが単語を行をまたいで分割し、文字認識は回転した参照とグリフを照合しようとして失敗する。影響は拡大し、左上の3度の傾きが右下では数ミリのずれになる。

修正方法:ほとんどの前処理ライブラリには自動傾き補正機能がある。これは支配的なテキスト角度を検出し、画像を回転して補正するアルゴリズムである。傾き補正は2値化に適用する。2値画像は角度検出に必要な微妙なグラデーション情報を失うからだ。ここが、ビジョンベースのAI抽出が従来のOCRと異なる点でもある。ビジョンモデルはページ全体を視覚的なシーンとして処理し、回転に対して本質的に寛容である。

原因3 — ノイズと圧縮アーティファクト

症状:出力に余分な文字(元のページにないランダムな点、カンマ、断片)が現れる。きれいな白い領域に見える部分に、抽出結果では「ゴーストテキスト」が含まれる。

原因:ごま塩ノイズ(白黒の斑点)は、ファックス文書や汚れたスキャナーガラスからのスキャンでよく発生する。JPEG圧縮アーティファクトは文字のエッジ周辺にブロック状の歪みを生み、OCRがそれをグリフの一部と解釈する。スタンプや印鑑が印刷テキストに重なると、文字境界の検出が混乱する。エンジンはスタンプのインクと印刷インクを分離しようとして、両方を誤認識することが多い。

修正方法:メディアンフィルタ(カーネルサイズ3×3または5×5)は、ガウシアンブラーよりも文字エッジを保持しながらごま塩ノイズを除去する。JPEGアーティファクトには、バイラテラルフィルタがテキストをぼかさずに圧縮境界を平滑化する。スタンプが主な問題なら、HSV空間での色ベースフィルタリングで重なったスタンプインクを分離・除去してからOCRにかける。透かしやセキュリティ印刷などの背景パターンには、適応的閾値処理(大津法またはSauvola法)を使用する。これは局所的な明るさレベルを計算し、ページ領域ごとに異なる閾値を適用する。単一のグローバル閾値では達成できない、背景抑制と文字保存の両方を実現する。

原因4 — 退色と低コントラスト:見えない文字

症状:出力からテキスト行全体が欠落します。エンジンが検出できるのは断片的なものだけです — 認識可能な単語の途中の文字欠落、部分的な単語など。出力は原文をランダムにサンプリングしたように見えます。

原因:インクの退色、経年した感熱紙、カーボンコピーには共通の問題があります:インクと用紙のコントラストが低すぎて、OCRが確実に分離できません。エンジンが画像を2値化する際、明るさのしきい値以下のピクセルは「背景」として分類され破棄されます。インクが薄すぎるか、用紙が黄変していると、文字は単に消えてしまいます。感熱紙のレシートは特に顕著で、印刷された瞬間から画像層は劣化し続け、6ヶ月前には読めたレシートが今では白紙の出力になることもあります。

対策:CLAHE(コントラスト制限適応ヒストグラム均等化)が最も効果的です — 均一な領域のノイズを過度に増幅することなく、局所的なコントラストの差を増幅します。クリップリミット2.0〜3.0、タイルグリッドサイズはテキストサイズに合わせて適用します。全体的に暗くなった感熱紙の場合は、処理前に画像を反転します — エンジンの2値化は、暗い背景に明るいテキストの方がうまく機能することがあります。不均一な退色には、適応的2値化(Sauvola法)がグローバルな方法よりも局所的な変動に対応できます。

原因5 — 折れ目と物理的損傷

症状:OCR出力に暗い帯が現れ、その帯に沿った文字が欠落したり、無意味な文字に置き換わります。折り目付近では、テキストがずれたり重複して表示されることがあります。

原因:物理的な折れ目はスキャン時に影の線を生成します — エンジンの2値化が前景オブジェクトとして扱うほど暗くなります。影と交差する文字は隠されたり、断片に分割されます。折れ目の多い文書では、折り目での用紙の高さ変化によりページがスキャナーの被写界深度から外れ、影にぼけの帯が加わります。この組み合わせにより、高いコントラスト変動、焦点の合っていない文字、壊れたグリフ形状という、OCRにとって最悪の入力が生まれます。

対策:インペインティング — 周囲のピクセルから補間して損傷領域を埋める — が最も効果的な修復方法です。OpenCVのcv2.inpaint()をTeleaアルゴリズムで使用すると、下のテキストを保持しながら折れ目影を除去できます。インペインティング半径は3〜5ピクセルから始めます。テキストが物理的に欠損した破れ端には、モルフォロジー膨張(2値画像に2×2カーネル)で途切れたストロークを再接続し、認識できない断片を読み取り可能なグリフに戻すことがよくあります。

複数の欠陥を処理する前処理パイプラインの構築

実際のスキャン文書のほとんどは、複数の欠陥を持っています。ファックスで送られた契約書は、低DPIとノイズアーティファクトの両方を伴うことがあります。古い注文書は、インクが薄くなっていることに加えて、折り目がついている可能性があります。前処理の手順を適用する順序が重要です。

複数の品質問題があるスキャン文書に対する推奨パイプラインの順序:

1
傾き補正 — 最初にページの回転を補正します。角度検出は、フィルタリングによって依存するグラデーション情報が除去される前の、元のグレースケール画像で最も効果的に機能します。
2
ノイズ除去 — メディアンフィルタまたはバイラテラルフィルタを適用して、テキストのエッジをぼかさずに、センサーノイズ、ファックスアーティファクト、圧縮ブロックを除去します。
3
コントラスト強調 — CLAHEまたは適応ヒストグラム均等化を使用して、薄くなったテキストを2値化のしきい値以上に引き上げます。
4
インペインティング — 折り目の影、ホッチキスの穴、折り線を除去します。これらはテキストオブジェクトとして誤認識される可能性があります。
5
適応2値化 — ページ全体の背景の変化に適応する局所しきい値法(SauvolaまたはOtsu)を使用して、白黒に変換します。

このパイプラインは理論上のものではなく、複数のOCRベンチマークにおいて、数千もの劣化した文書画像で検証されています。OCR精度向上のための専用ガイドでは、言語モデルベースの補正、フィールドレベルの検証、信頼度スコアリングを含む、追加の後処理技術について説明しています。

前処理だけでは不十分なケース

前処理により、文書は「読めない」状態から「使える」状態になりますが、それにも限界があります。元の文書が72 DPIで汚れたフラットベッドスキャナーで読み取られ、さらにFAXされ、再度スキャンされた場合、アルゴリズムによる修復には限界があります。ある時点で、問題は「この画像をどう修正するか」から「適切な抽出方法を使っているか」へと変わります。

従来のOCR(Tesseract、ABBYY FineReader、ほとんどのクラウドOCR API)は、個々の文字の形状を認識することで機能します。これは基本的にピクセルレベルです。ピクセルが損傷していると、出力も損傷します。最新のビジョンベースのAI抽出は、文書全体を視覚的なシーンとして読み取ります。ピクセルの一部が欠けていても、単語を単語として理解します。これは、文字の形状テンプレートではなく、意味に基づいて照合するためです。

その違いは、複数の欠陥がある文書で最も顕著に現れます。かすれた紫色の印刷、ステープル跡によるわずかな傾き、ベンダー住所にまたがる折り目があるカーボンコピーの請求書の場合、従来のOCRではフィールド精度が60~70%になる可能性があります。ビジョンAIツールは、折り目の影を「テキストではない」と扱い、その周囲を読み取ることで、90%以上の精度を達成できます。文書の種類によって精度低下への反応は異なりますが、原則は一貫しています。損傷がピクセルにある場合、解決策はパラダイムの変更にあるかもしれません。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す
登録不要 · カード不要 · 10秒で結果

よくある質問

スキャン文書で信頼性の高いOCRに必要な最低DPIは?

300 DPIが業界標準です。200 DPIを下回ると、ほとんどのOCRエンジンで文字レベルの精度が著しく低下します。150 DPI未満では、標準的な印刷テキストの精度は90%を下回ります。10ポイント未満の小さな文字の場合は、400~600 DPIが推奨されます。600 DPIを超えると効果は頭打ちとなり、解像度を上げてもファイルサイズが増大するだけで、一般的な文書テキストの精度向上にはつながりません。

AIは非常に低品質なスキャン文書からデータを抽出できますか?

ビジョンAIモデルは、従来のOCRよりも画像の欠陥に対する許容度がはるかに高くなります。これは、ピクセル単位ではなく、ページを意味的に処理するためです。人間の目で読める文書(かろうじて読める程度でも)は、通常抽出可能です。ただし、テキストが完全に不可視(インクが完全に消失、または物理的に破れている)の文書は例外です。画像内に存在しないデータを復元できる技術はありません。

傾き補正はOCR精度を有意に向上させますか?

はい。5度の傾きは、従来のOCRエンジンで単語誤り率を10~15%増加させます。10度では、損失が30%を超える可能性があります。傾き補正は、最も費用対効果の高い前処理ステップの一つです。処理時間はほぼゼロで、一貫した改善効果が得られます。

スキャンに低DPIとノイズの両方がある場合、どちらを先に修正すべきですか?

まずノイズを修正し、次に解像度に対処します。低解像度画像のノイズ除去は、その逆よりも効果的です。先にアップスケールすると、テキストとともにノイズも増幅されます。このガイドのパイプラインの順序はこの原則に従っています。ノイズ除去の後にコントラスト強調、そして解像度に依存する操作の前にコントラスト強調を行います。

フラットベッドスキャナの代わりにスマートフォンの写真を使用できますか?

スマートフォンの写真には、フラットベッドスキャナにはない、透視歪み、レンズのぼけ、不均一な照明が生じます。フラットベッドスキャナが利用可能な場合は、より一貫した結果が得られます。どうしてもスマートフォンを使用する必要がある場合は、ページの真上から撮影し、均一な自然光の下で、最大解像度で撮影してください。最新のスマートフォンのほとんどは、十分に近づけて撮影すれば、300 DPI相当を超えます。

体系的なアプローチが勝利する

スキャン文書のOCR精度が低いのは偶然ではありません。特定可能な画像欠陥の結果であり、それぞれに既知のメカニズムと的を絞った修正方法があります。多くの人が犯す間違いは、汎用的な「強調」フィルターを問題に適用し、明るさとコントラストを闇雲に調整して、何かがうまくいくことを期待することです。

体系的なアプローチはよりシンプルです。OCR出力を確認し、エラーパターンを特定し、根本原因を突き止め、単一の修正を適用します。低DPI→アップスケールまたは再スキャン。傾き→傾き補正。ノイズ→メディアンフィルター。かすれ→CLAHE。折り目→インペインティング。文書に複数の欠陥がある場合は、依存関係の順序で修正を適用します。ノイズは解像度の前に、傾き補正はすべての前に。

正しい修正を正しい順序で適用しても、精度がワークフローに必要なレベルに達しない場合、制約は前処理ではなく、抽出パラダイムにあります。ピクセルの形状ではなく意味によって文書を読み取るビジョンAIツールは、実用的な結果へのより速い道かもしれません。前処理だけでは不十分な場合のフィールドレベル検証と精度検証方法の詳細をご覧ください。

📮 contact email: [email protected]