OCR PDF
スキャンした PDF を、選択・検索できる文書に変換します。100% ブラウザー内で完結し、ファイルが端末から出ることはありません。
スキャンした PDF を選択
または PDF をここにドラッグ — Tesseract.js でローカルに処理されます
—
300 DPI のきれいな印刷スキャンで最良(精度約 98%)。低解像度のスキャン、色あせたコピー、小さなフォントは精度が下がります。手書きは確実には対応していません。
Your file is ready
Processed entirely in your browser — the file never left your device.
PDF を OCR する方法
3 ステップ。何もアップロードされません。
スキャンした PDF を選ぶ
PDF を開くかドラッグします。ブラウザーの中にとどまります。
言語と出力を選ぶ
文書の言語と、検索可能な PDF にするかテキストだけにするかを選びます。
実行してダウンロード
Tesseract.js(WebAssembly)がタブ内で各ページを認識し、その後に結果をダウンロードします。
OCR とは何か、実行すると何が変わるのか
光学文字認識(OCR)は、テキストの画像を、コンピューターがコピー・検索・ インデックス化できる本物の文字へと変換します。「スキャンした」PDF とは、 PDF というコンテナの中に貼り付けられたページ画像の束にすぎません。 見えている言葉は文字ではなくピクセルです。OCR の後、文書はそれらの ピクセルの上に見えないテキスト層が重ねられた状態になり(見た目は 同じですが Ctrl+F が効きます)、あるいはテキストを書式なしの .txt ファイルに抽出して、別の場所に貼り付けられるようになります。 上ではどちらのモードも選べます。
このページの OCR の仕組み
Google のオープンソースエンジン Tesseract を WebAssembly にコンパイルした Tesseract.js を、お使いのブラウザータブの中で実行しています。 OCR を実行をクリックすると、次のことが起こります。
- PDF の各ページが PDF.js によって 300 DPI でキャンバスにラスタライズされます。
- キャンバスのピクセルが Tesseract.js に渡され、認識したテキストと行ごとの境界ボックスが返されます。
- 検索可能な PDFでは、元のページを新しい PDF にコピーし、認識したテキストを不透明度 0 で重ねます。目には見えませんが、選択でき、検索できます。
- テキストのみでは、各ページのテキストを 1 つの .txt ファイルに連結します。
このパイプラインのどこもサーバーを呼び出しません。PDF.js、Tesseract.js、 pdf-lib はすべてクライアント側で実行されます。OCR に関係するネットワーク リクエストは、学習済み言語モデルの 1 回限りのダウンロード(言語あたり およそ 5〜15 MB)だけで、その後はブラウザーが次回のためにキャッシュします。
正直な期待値
- 300 DPI のきれいな印刷テキスト:通常、文字あたり 95〜98% の精度。検索や、わずかな修正でのコピー&ペーストには十分です。
- 低解像度(200 DPI 未満)や写真撮影したページ:精度は急落します。Tesseract には鮮明な文字の輪郭が必要です。可能ならより高い DPI で再スキャンしてください。
- 複数段組のレイアウトや表:テキストは段をまたいで行ごとに返されます。論理的な読み順には並べ替えません。表には PDF to Excel をご検討ください。
- 手書き:確実には対応していません。Tesseract は印刷書体で学習されており、手書き文字はたいてい判読不能なまま返ってきます。
- 複数の文字体系が大きく混在:1 ページがアラビア語と半分ラテン文字なら、優勢な方を選んでください。複数文字体系の OCR は可能ですが、より遅く、精度も落ちます。
プライバシーとセキュリティ
OCR は、ブラウザー内処理がとりわけ価値を持つ分野です。スキャンした文書は、 人が持つものの中でも最も機微なもの(パスポートの写し、納税申告書、契約書、 診療記録、賃貸契約)であることが多く、それを第三者のサーバーに送ると、 消すことのできない痕跡が残ります。パイプラインのすべてのバイトがローカルで 実行されるため、記録すべきアップロードも、押収されうる一時ファイルも、 信頼を委ねる保持期間もありません。OCR エンジン自体がオープンソースで、 検証可能です。
よくある質問
対応言語で印刷された文書を 300 DPI できれいにスキャンした場合、文字精度はおおむね 95〜98% を見込めます。低解像度のスキャン(200 DPI 未満)、色あせたコピー、傾いたページ、小さなフォントでは精度が目に見えて下がります。手書き文字は Tesseract では確実には認識できません。手書きのメモには、通常は別の(クラウド専用の)エンジンが必要です。
いいえ。認識エンジン(WebAssembly にコンパイルされた Tesseract.js)は、お使いのブラウザータブの中で完全に動作します。選択した PDF はメモリーに読み込まれ、各ページはキャンバスにラスタライズされ、そのキャンバスのピクセルがそのまま Tesseract に渡されます。文書がネットワークでアップロードされることも、サーバー側の処理もありません。ブラウザーのネットワークタブで確認できます。取得されるのは言語モデルだけ(1 回だけ、その後はキャッシュ)です。
imisspdf.com 自体が使う 12 言語をあらかじめ用意しています。英語、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語、インドネシア語、日本語、韓国語、中国語(簡体字)、アラビア語、ヒンディー語です。Tesseract はさらに約 100 言語に対応しています。言語ボックスに任意の ISO 639-3 コード(「vie」や「tha」など)を貼り付ければ、対応するモデルが必要に応じて取得されます。
ある言語で初めて OCR を実行するとき、Tesseract はその言語の学習済みモデル(通常 5〜15 MB)と WebAssembly エンジン(約 30 MB)をダウンロードします。その後はブラウザーにキャッシュされるため、以降の実行は 1〜2 秒以内に始まります。タブを閉じてもキャッシュは消えません。
元の文書の見た目を保ったまま、テキストを選択可能・Ctrl+F で検索可能にしたいなら、検索可能な PDF を選んでください(OCR テキストは見えない形で上に重ねられます)。単に文字だけが必要なら、たとえばメモアプリに貼り付けたり別のツールに渡したりする場合は、テキストのみを選んでください。