PDF OCR(文字認識)について
スキャナーやスマートフォンのスキャンアプリは、1 枚ごとに画像として保存します。PDF ビューアーにはピクセルしか見えないため、名前を検索しても何も見つからず、カーソルでドラッグすると文ではなくページ全体がつかまれてしまいます。光学文字認識(OCR)は、そのピクセルを分析して、どの文字が写っているかを割り出します。
このページでは、ファイルの各ページを pdf.js で 300 DPI で描画し、オープンソースの OCR エンジン Tesseract のブラウザ版である tesseract.js(Apache-2.0 ライセンス)に渡します。認識された語は、見えないテキストレイヤーとして、元のページの対応する位置に重ねて PDF に書き戻されます。見えているページには手を加えません。スキャン画像、その色、スタンプや印影、署名は以前とまったく同じに見えます。変わるのは、文書が検索に応えるようになり、パソコンで作った PDF と同じように文字をハイライトしてコピーできるようになることです。文字だけが必要な場合は、認識した内容をすべてプレーンな .txt ファイルとしても取得できます。
認識する言語
Tesseract は、どの言語を読むのかがわかっているほうが正確に認識できます。既定では日本語が選択されています。英語、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語、中国語(簡体字)、中国語(繁体字)も選べます。各言語モデルは、初めて選んだときに pd00.com から約 0.7〜3 MB ダウンロードされ、以降の実行に備えてブラウザにキャッシュされます。
PDF OCR(文字認識)の使い方
- スキャンした PDF を選ぶファイルを選ぶか、ツールにドロップします。パスワードで保護されたスキャンは事前に「PDF パスワード解除」にかける必要があり、その手順にはパスワードそのものが必要です。
- 読み取る言語を指定する日本語のままにするか、文書で使われている言語を選びます。複数の言語が混在するページなら、最大 3 つまで選べます。
- 認識してダウンロードする「検索可能にする」を押し、ページを処理している間はタブを開いたままにしておきます。終わったら検索可能な PDF を保存し、文字だけが必要なら .txt ファイルも保存します。
主な利用シーン
署名済み契約書の条項を探す
署名済みの契約書がスキャンで返送されてきました。OCR 後は、当事者の名前や「解除」といった語を検索すれば、何十枚もの画像をめくらなくても該当する段落に移動できます。
何年後かに探したい紙の記録
保管のためにスキャンした請求書、保証書、手紙も、それぞれにテキストレイヤーがあればパソコンのファイル検索で索引に登録され、ファイル名だけでなく書かれている内容で見つけられるようになります。
コピーした章から引用する
授業用の資料集に入っている、スキャンした本の章や論文は、打ち直さなければ引用できません。OCR をかければ該当箇所を選択してコピーでき、そのあとページの画像と照らし合わせて、誤認識された文字を見つけられます。
テキストの精度を左右するもの
OCR はスキャンに写っているものしか読めないため、どんな設定よりも元の画像のほうが重要です。最も良い結果が得られるのは、300 DPI で取り込まれ、まっすぐ置かれ、明るい背景に濃い文字が印刷されたページです。次のような場合は精度が下がります。
- 解像度が低い、またはぼやけている。300 DPI で描画しても、低解像度のスキャンで記録されなかった細部は戻りません。手ぶれしたスマートフォンの写真に写った小さな文字は、1 文字あたりのピクセルが少なすぎます。
- 傾いたページや横向きのページ。傾いた行や本ののど付近の湾曲は、語をばらばらにしてしまいます。横向きになっているページは、始める前に PDF 回転でまっすぐ立ててください。
- 手書き文字。Tesseract は印刷された文字や入力された文字を読むためのものです。手書きのメモ、署名、手書きで記入した欄は、確実には認識されません。
- 言語の指定漏れ。ドイツ語の手紙を英語だけで読ませると、ウムラウトが抜けたり語を取り違えたりしがちです。ページで使われているすべての言語を選択してください。
きれいなスキャンでも、数字の 1 をアルファベットの l と読んだり、カタカナの「ロ」と漢字の「口」を取り違えたりといった誤りはときどき混じります。検索ではたいていの語が見つかりますが、重要な文書にコピーする内容は必ず校正してください。
認識にかかる時間
ノートパソコンで 1 ページあたり数秒、スマートフォンではそれ以上かかると考えてください。2 ページの手紙ならすぐに終わりますが、長いレポートでは数分かかることもあり、終わるまでタブを開いたままにしておく必要があります。長いファイルはパソコンで処理するのがおすすめです。大きなスキャンの一部だけが必要な場合は、PDF ページ抽出でそのページを切り出し、短くなったファイルに OCR をかけてください。
「すでにテキストがあるページはスキップ」は既定でオンになっており、末尾に署名ページのスキャンが付いたパソコン作成のレポートのような、混在した文書で時間を節約できます。認識されるのはテキストのないページだけです。すべてのページを読み取らせたい場合はオフにしてください。
検索可能なコピーに残るもの
見えているページには、補正もゆがみの修正も追加も一切行わないため、結果は画面でも紙でも、追加したスキャンと同じに見えます。追加されるテキストは画像に比べてごく小さいので、ファイルサイズは通常わずかに増えるだけです。PDF を小さくもしたい場合は、別の手順として PDF 圧縮にかけてください。アーカイブ用にわかりやすいタイトルを付けたい場合は、PDF メタデータ編集で設定できます。
OCR が不要なファイル
- すでに選択できるテキストがある PDF。ビューアーで文字をハイライトできるなら OCR は不要です。PDF テキスト抽出で文字をコピーするか、PDF → Markdown 変換で見出しや箇条書きを保ったまま取り出してください。
- 編集したい文書。OCR はスキャンを検索可能にするもので、編集可能にするものではありません。各ページは背後にテキストを持つ画像のままなので、その場で文章を打ち直すことはできません。
ページの描画と読み取りは、このブラウザのタブ内で行われます。追加でダウンロードされるのは pd00.com から取得する言語モデルだけで、スキャンもその文字もどこにも送信されません。確認方法はこちらです。