Tips & Tricks

OCR の前の前処理ステップとして PDF を画像に変換する方法

PDF 上で OCR を直接実行すると、クリーンなテキストベースのドキュメントにうまく機能します。傾いたテキスト、混合フォント、異常なレイアウト、または重度の背景ノイズを含むスキャンされたページの場合、OCR の前にページを画像として前処理すると、認識精度が大幅に向上します。 PDF の各ページを高解像度の画像に変換すると、PDF 自体には適用するのが困難または不可能なノイズ低減、スキュー補正、コントラスト調整、二値化フィルターを適用できます。

画像パイプラインによりステップが追加されます。精度の向上により、困難なスキャンにも対応できます。

前処理ステップとしての PDF から Image への変換により、視覚的なクリーンアップとテキスト認識が分離されます。各ページはスタンドアロンの画像ファイルになり、OCR エンジンに供給される前に画像強調ツールで処理できます。 WukongPDF の変換ツールと OCR PDF ツールはこのワークフローをサポートしており、クリーンな画像に対して認識を実行する前に画質を微調整できます。

How to Convert a PDF to Images as a Preprocessing Step Before OCR

画像として前処理すると OCR の精度が向上する理由

OCR エンジンは、背景に対する文字の形状を検出します。文字の境界を曖昧にするものはすべて、精度を低下させます。テキスト行が歪んでいると行検出が混乱します。背景の斑点や文書の汚れにより、誤った文字の候補が作成されます。照明が不均一であると、ページの端に近い文字がノイズの中に消えてしまうグラデーションの背景が生成されます。色あせたレシートやカーボンコピーの特徴であるテキストと紙の間のコントラストが低いため、細い文字のストロークが完全に消えてしまいます。

画像に変換すると、それぞれの問題に個別に対処できるようになります。デスキュー アルゴリズムは、テキスト行が完全に水平になるまでページを回転させ、行検出エンジンが期待どおりの結果を提供します。ノイズ低減フィルターは、文字のエッジをぼかすことなくスペックルを除去します。元のスキャンでわずかな違いしか示されていない場合でも、コントラスト カーブにより、暗いテキストと明るい背景が分離されます。 2 値化では、グレースケールが純粋な白黒に変換され、グラデーションの背景が除去されます。各ステップは 1 つの特定クラスの視覚的な問題を処理し、一緒にマージナル スキャンを OCR エンジンが高い信頼性で読み取ることができるクリーンな入力に変換します。

実数は違いを示しています。 A 1980s dot-matrix invoice scanned at 200 DPI might produce 70% character accuracy when OCR'd directly from the PDF. After deskewing, adaptive binarization, and speckle removal, the same document can reach 95% or higher.これを 500 件の請求書バッチ全体に分散すると、重大なエラーのある 125 件の請求書と、軽微な修正が必要な 25 件の請求書の差になります。前処理により、クリーンアップの悪夢が使用可能な出力に変わります。また、ページごとの処理時間 (完全な拡張パイプラインの場合は約 2 ~ 3 秒) は、節約される手動修正時間と比較すると無視できます。

WukongPDF

PDF OCRを試してみる

インストールは必要ありません。ブラウザで直接動作します。

始める →

OCR 前処理の画像形式と解像度の選択

形式の選択は、最終出力ではなくパイプラインに影響します。 TIFF は、ロスレス圧縮、ピクセルパーフェクトな保存、Tesseract などのエンジンによるネイティブ サポートといった従来の OCR 前処理形式のままです。 PNG は、最新のツールでうまく処理できる Web フレンドリーなラッパーで同じロスレス品質を提供します。圧縮アーティファクトにより文字の周囲にエッジ ノイズが発生し、達成しようとしているクリーンアップそのものが台無しになるため、中間段階では JPEG を使用しないでください。アーティファクトはわずかですが、OCR エンジンはそれらを認識します。

解像度によって精度の上限が決まります。 300 DPI がコンセンサス スイート スポットです。 200 DPI 未満では、小さなテキストや細いセリフが背景にぼやけ、精度が急激に低下します。 400 DPI を超えると、ファイル サイズは膨れ上がりますが、精度はほぼ一定になります。 6 ポイントタイプで印刷された法的脚注および医薬品ラベルには、400 ~ 600 DPI が必要な場合があります。大きな活字を使用したポスターや看板の写真は、多くの場合 200 DPI で適切に機能します。解像度は、平均ではなく、ページ上の最小のテキストに合わせてください。

フォーマット圧縮最適な用途次の場合は避けてください
TIFFロスレス (LZW または非圧縮)Tesseract OCR、アーカイブ前処理ファイルサイズは品質よりも重要です
PNGロスレス最新の OCR パイプライン、Web ベースのツールTIFF を必要とするレガシー OCR ソフトウェア
JPEGロッシークイックプレビュー、ビジュアルチェック前処理段階 (アーティファクトにより OCR が低下します)
JPEG2000ロスレスオプションが利用可能大量のアーカイブ スキャン限定的な OCR ツールのサポート

OCR の前に画像補正を適用する

デスキューが最初に行われます。ラインセグメンテーションでは水平ベースラインが想定されるため、1 ~ 2 度の歪みでも単語の精度が数ポイント低下します。ほとんどの画像処理ライブラリの自動デスキュー機能は、線の向きを分析し、線を水平にするために必要な回転を計算することにより、主要なテキスト角度を検出します。多くの場合、この 1 回の補正により、前処理ステップの中で最大の精度向上が得られます。

デスキュー後に二値化を行います。 Otsu のアルゴリズムや Sauvola の方法などの適応しきい値処理方法は、局所的な画像領域を個別に分析し、不均一な照明を持つドキュメントを 1 つのグローバル カットオフ値よりもはるかに適切に処理します。ページの中央が明るく、端が暗い場合は、領域ごとに異なるしきい値が必要であり、適応的な方法がそれを実現します。対照的に、グローバルしきい値処理では、ページ全体で 1 つのカットオフが選択され、通常は影のテキストが切り取られるか、明るい領域にノイズが残ります。 2 つのアプローチの視覚的な違いは、完全とは言えない照明の下でスキャンされた文書ではすぐに明らかです。

ノイズ除去を行って作業は完了です。孤立した黒または白の小さなピクセル、つまり、古くなった紙やざらざらした紙のスキャンによく見られるごま塩ノイズは、誤った文字の断片を作成します。半径 2 ~ 3 ピクセルのメディアン フィルターは、実際の文字のエッジを維持しながらこれらの斑点を除去します。認識できるクリーンなバイナリ出力。この処理済みの画像に対して OCR を実行すると、生のスキャンと比較して、困難なドキュメントで 10 ~ 25 パーセント ポイントの精度が向上することが日常的に示され、強化パイプライン全体が 1 ページあたり数秒で完了します。

前処理された画像に対する OCR の実行

クリーニングされた画像を個別のページとして OCR エンジンにフィードします。 Tesseract およびその他のほとんどのエンジンは、画像のディレクトリを受け入れ、ページごとにテキスト ファイルを出力します。検索可能な PDF 出力の場合、認識されたテキストと画像を再結合して、非表示のテキスト レイヤーを含む PDF を作成します。 hOCR 出力形式は、認識されたテキストをページ上の特定の位置にマップし直す必要がある場合に備えて、ページ レイアウト情報を保存します。このレイアウト データにより、検索可能な PDF でハイライト・アズ・ユー・リード機能が有効になります。

常に結果を比較してください。未加工の PDF と前処理された画像の両方で OCR を実行し、両方の出力で同じ段落をスポットチェックします。難しい文書の場合、その違いは顕著です。色あせたカーボンコピーのレシートの精度が 60% から 95% になると、使用できないか使用できるかの違いが生じます。 300 DPI で最新のレーザー印刷されたきれいなドキュメントの場合、改善は無視できる程度であり、直接 PDF OCR で完全に適切です。どのドキュメントにメリットがあるかを知ることで、出力品質を犠牲にすることなく処理時間を節約できます。

大規模なドキュメント セットのバッチ処理

何百、何千ものページには自動化が必要です。パイプラインのスクリプトを作成します。PDF ページを画像に変換し、バッチ全体に一貫した拡張パラメーターを適用し、OCR を実行し、結果をコンパイルします。 pdf2image、Pillow、pytesseract を備えた Python は、標準的なコンピューターで数千ページを一晩で処理する無料で柔軟なパイプラインを提供します。初期セットアップには 1 ~ 2 時間かかりますが、後続のすべてのバッチは 1 つのコマンドで実行されます。 1 回限りの小規模なジョブの場合は、GUI ツールを使用した手動の前処理の方がセットアップが速く、同様に効果的です。

すべてのバッチからランダムなサンプルを品質チェックします。一貫した設定は、一貫した結果を保証するものではありません。一部のページには、標準の拡張機能では見逃される固有のアーティファクトがあります。バッチの 5 ~ 10% のスポットチェックにより、文書セット全体にエラーが伝播する前に、体系的な問題、まばらなテキストを含むページのデスキューの失敗、内容が薄いページの 2 値化の崩壊を検出します。サンプルに基づいて拡張パラメータを修正し、再実行すると、バッチの残りの部分がクリーンになります。

WukongPDF

PDF OCRを試してみる

インストールは必要ありません。ブラウザで直接動作します。

始める →