今日、サプライヤーからPDFを受け取りました。これには、署名付きの印刷およびスキャンされたページがいくつか含まれていました。AcrobatReader DCで開きました。しかし、驚いたことに、明らかにスキャンされた画像からテキストを選択し、テキストとしてコピーできました。スクリーンショットをご覧ください:
コピーされたテキストに間違いが含まれているため、この背後には明らかにOCRがあります。しかし、これはどのように可能ですか?私はこれを見たことがありません、これはどのように作成できますか?
今日、サプライヤーからPDFを受け取りました。これには、署名付きの印刷およびスキャンされたページがいくつか含まれていました。AcrobatReader DCで開きました。しかし、驚いたことに、明らかにスキャンされた画像からテキストを選択し、テキストとしてコピーできました。スクリーンショットをご覧ください:
コピーされたテキストに間違いが含まれているため、この背後には明らかにOCRがあります。しかし、これはどのように可能ですか?私はこれを見たことがありません、これはどのように作成できますか?
回答:
これは(ここでのいくつかの他の答えとは反対に)おそらくAcrobatとはまったく関係ない。
ほとんどの(すべて?!)プロフェッショナルドキュメントスキャナーとほとんどのセミプロフェッショナルスキャナーは、[PDFとして保存]を選択し、設定で[検索可能]チェックボックスをオンにすると、自動的にOCRを実行します。安価な「消費者グレード」モデルは、接続されたPCでOCRを実行しますが、典型的なネットワークスキャナーは内部で実行します。
「検索可能」という言葉は、スキャナーがOCRを実行し、スキャンされたビットマップを含むページを生成し、OCRの不可視の文字でそれらをオーバーレイすることを意味します。
そうすれば、魔法のように「ビットマップ」を検索し、選択、コピー、および貼り付けできます。ただし、魔法ではありません。現実には、目に見えないテキストをコピーしているだけです。
スキャナーは、再利用される多くの小さなタイルから大きな画像を合成するなど、いくつかの追加の魔法を行うこともあります。これにより、実際に可能なサイズよりもはるかに小さいドキュメントサイズになりますが、XCRが請求書のストーリーを変更するなど、皮肉なことにOCRが行われない場合でも、ファームウェア上。
しかし、これはどのように可能ですか?
基本的に、プログラムは入力ファイルに対してOCRを実行し、画像の上に目に見えないテキストレイヤーを配置します。または、画像の下にテキストの可視レイヤーを配置して、同じ効果を与えることもできます。
何かを選択しても、テキストレイヤーが選択されるため、画像は重要ではありません。
これはどのように作成できますか?
いくつかの方法があります。Acrobatが既に提案されていることを考えると、無料のオプションをいくつか追加します(幸いなことに、それらを使用するためにWindowsを強制する必要はありません)。
これはTracker SoftwareによるネイティブWindowsプログラムです。32ビットプレフィックスで32ビットエディションを使用する場合、フリーウェアバージョンはWineで正常に動作します。したがって、Windows、macOS、Linuxで使用できます。最後の2つのケースでは、それぞれPlayOnMacまたはPlayOnLinuxが必要です。
これは、 Ghostscript、Tesseract、およびUnpaperに基づいて、Pythonで記述されたマルチプラットフォームプログラムです。ドキュメントから:
OCRmyPDFの機能
OCRmyPDFはPDFの各ページを分析して、コンテンツを失うことなくそのページのすべての情報をキャプチャするために必要な色空間と解像度(DPI)を決定します。Ghostscriptを使用してページをラスタライズし、ラスタライズされた画像に対してOCRを実行して、OCR「レイヤー」を作成します。その後、レイヤーは元のPDFにグラフトされます。
DebianおよびUbuntuの派生製品に簡単にインストールできます。
apt-get install ocrmypdf
またはmacOSの場合:
brew tap jbarlow83/ocrmypdf
brew install ocrmypdf
Windowsでは、Dockerイメージを使用する必要があります。詳細については、公式ドキュメントを参照してください。
使用方法は非常に簡単です。より良い結果を得るには、オプションの-d
(デスキュー)および-c
(クリーン)パラメーターを使用することをお勧めします。OCRプロセスを実行する前に、すべてのページを真っ直ぐにし、小さなドット/欠陥をクリーンアップします。
を使用して言語を提供できます(また提供する必要があります)-l
。
以下は、イタリア語で書かれたこの歪んだ文書からの例です。
使用したコマンドは次のとおりです。
ocrmypdf -l ita -d -c input.pdf output.pdf
同じことを行うオンラインツールがいくつかあります。注目すべきことに、PDF24は、制限なしで使用できるOCRmyPDFの無料のWebベースバージョンをホストしています。
こちらもご覧ください:
これは、Acrobat OCR機能が原因である可能性があります。
Acrobatは、多数の言語のPDFまたは画像ファイルのテキストを認識できます。スキャンするドキュメントまたは画像をOCRで開き、ツールバーの右上にある青い[ツール]ボタンをクリックするだけです。そのサイドバーで、[テキストの認識]タブを選択し、[このファイル内]ボタンをクリックします。
...
テキストが認識されると、通常のすべてのマークアップツールを使用してPDFをマークアップできます。テキストの強調表示、取り消し線などを使用できます。検出された書式を使用してテキストをコピーすることもできますが、多くの場合、テキスト認識自体よりも正確ではありません。
スキャンされたPDFファイル内のテキストを認識する
紙の文書をスキャンしてPDFにすると、実際にはそれらの文書の写真を撮っているだけです。これは写真やその他の印刷画像に最適ですが、特定の単語やフレーズを見つける必要がある200ページのドキュメントがある場合はどうでしょうか。Acrobatを使用して、スキャンしたファイル内のテキストを認識し、テキストコンテンツを検索可能かつ使用可能にします。
- スキャンしたドキュメントをAcrobatで開いた状態で、[ツール]ペインを開き、[テキスト認識]パネルを展開します。[ツール]ペインに[テキスト認識]が表示されない場合は、右上隅のメニューを選択して追加できます(下の画像-小さな赤い矢印が指す場所を参照してください。クリックします)。
- 「このファイル」をクリックして、開いたドキュメントをスキャンします。デフォルトの設定をそのまま使用し、[テキストの認識]ボックスが表示されたら[OK]をクリックします。Acrobatは画像を使用可能なテキストに変換します。テストするには、コンテンツ編集パネルで単語や文を編集してみてください。すごいですね!?