ぱんだツールズぱんだツールズ

技術背景

OCRとは — 画像・PDFからテキストを抽出する仕組みと使い方

約6分

スキャンした書類の文字をWordに貼り付けたい、ホワイトボードの写真をテキストに変換したい—— そんな場面で活躍するのがOCR(光学文字認識)です。 この記事ではOCRの仕組み、PDFテキスト抽出との違い、そしてブラウザだけでOCRが動く理由を解説します。

OCRとは — 光学文字認識の仕組み

OCRは画像の中に写っている文字を解析してテキストデータに変換する技術です。 1990年代はスキャナと専用ソフトが必要でしたが、2020年代には機械学習モデルの進化によって スマホアプリやブラウザ上でもリアルタイムに動かせるようになりました。

OCRの処理は大きく3段階に分かれます。

  1. 前処理 — 画像の傾き補正・コントラスト調整・ノイズ除去を行い、文字を認識しやすい状態に整える
  2. 文字認識 — 学習済みモデルが文字の形状パターンを照合し、最も可能性の高い文字列を出力する
  3. 後処理 — 言語モデルが文脈を考慮して誤認識を修正し、単語・文章として整形する

PDFテキスト抽出とOCRの違い

混同されやすいのが「PDFテキスト抽出」と「OCR」の違いです。PDFには2種類あります。

PDFの種類特徴テキストの取り出し方
テキスト型PDFWordや印刷設定から生成。文字情報がデータとして内部に存在するPDFテキスト抽出ツールで直接取り出せる(OCR不要)
スキャンPDF(画像型)紙の文書をスキャナで取り込んだもの。内部はただの画像テキスト抽出では取れない。OCRが必要

見分け方は簡単です。PDFをAcrobat ReaderやブラウザのPDFビューアで開き、文字をマウスで選択(ドラッグ)できるかを確認してください。 選択できればテキスト型、選択できなければ画像型(スキャンPDF)です。 まずPDFテキスト抽出を試し、 取れない場合にOCRを使うという順番がおすすめです。

ブラウザでOCRが動く理由 — Tesseract.jsとWebAssembly

ぱんだツールズのOCRにはTesseract.jsを使っています。 これはGoogleが開発したオープンソースOCRエンジン「Tesseract」を WebAssembly(C++コードをブラウザ実行可能な形式に変換する技術)でJavaScriptに移植したライブラリです。

日本語の学習済みモデルを内蔵しており、ファイルをサーバーに送信することなく、 お使いのデバイス上だけでOCR処理が完結します。 機密書類や個人情報を含む文書でも安心して使える設計です。 詳しい仕組みはブラウザでファイル処理できる理由の記事も参考にしてください。

画像OCRを使う手順

  1. ファイルを用意する — スキャン文書・ホワイトボード写真・スクリーンショットなど。 解像度が高いほど認識精度が上がります(目安:300dpi以上)
  2. ツールを開く — 画像ファイルは日本語OCRツール、 スキャンPDFはPDFテキスト抽出を使用
  3. ファイルをアップロードして実行 — ドラッグ&ドロップまたはクリックしてファイルを選択し、「テキスト抽出」を押す
  4. 結果を確認してコピー・保存 — 認識結果を目視確認してから使用する。重要文書は誤字を確認することを推奨

OCRが苦手なケース

OCRが精度よく動くのは「明瞭な印刷文字が正面から撮影されている」状態が前提です。 以下のケースでは精度が落ちやすいため、あらかじめ知っておきましょう。

苦手なケース対処法
解像度が低い(スマホ遠撮り)近づいて再撮影・高解像度でスキャンし直す
斜めに傾いた文書傾きなく正面から再撮影する
背景が複雑(メモ帳の格子・写真の上の文字)白紙の上に置いて撮影する
崩し字・草書・筆記体手書きOCRの場合は認識後に手動修正が前提
極端に小さいフォント(6pt以下)画像を拡大してから処理する

まとめ

  • OCRは画像内の文字を認識してテキストデータに変換する技術。前処理・認識・後処理の3段階で動く
  • PDFからのテキスト取り出しは「テキスト型PDF」→テキスト抽出、「スキャンPDF・画像」→OCRの順で試す
  • ぱんだツールズのOCRはTesseract.js+WebAssemblyによりブラウザ完結で動作。ファイルはサーバーに送信されない
  • 精度を上げたい場合は300dpi以上・傾きなし・白背景の状態で処理するのが基本
  • 認識結果は目視確認を推奨。重要文書はそのまま使わず確認してから利用する

よくある質問

OCRとは何の略ですか?

OCRはOptical Character Recognition(光学文字認識)の略です。画像や印刷物に写った文字をカメラや画像データとして読み取り、コンピューターが扱えるテキストデータに変換する技術です。スキャナで取り込んだ紙の文書や、スマホで撮影したホワイトボードの写真などからテキストを取り出す場面で使われます。

PDFテキスト抽出とOCRの違いは何ですか?

PDFには「テキスト情報を内部に持つPDF」と「画像として埋め込まれたPDF」の2種類があります。前者はOCR不要でテキストを直接取り出せます(コピー&ペーストできるPDFがこれです)。後者はスキャンしたPDFで、文字が画像として保存されているためOCR処理が必要です。どちらか迷う場合は、PDFテキスト抽出ツールを試して、テキストが取れなければOCRツールを使うのが手順です。

手書き文字もOCRで認識できますか?

読めますが、活字(印刷文字)より精度は落ちます。ブラウザベースのOCR(Tesseract.jsなど)は活字の認識に特化して設計されており、崩し字・筆記体・極端に小さい手書きは誤認識しやすい傾向があります。手書きの重要文書は認識後に必ず目視確認することをおすすめします。

日本語のOCR精度はどのくらいですか?

解像度が十分(300dpi以上)で、明瞭な印刷文字であれば95〜99%程度の認識精度が期待できます。ただし以下のケースでは精度が下がります:解像度が低い画像(スマホのスクリーンショットなど)、斜めに傾いた文書、背景が複雑な画像、フォントが特殊な場合(明朝体・ゴシック体以外)。

スキャンしたPDFからテキストを取り出すにはどうすればいいですか?

スキャンしたPDFはまず「PDFテキスト抽出」ツールを試してください。テキストが取れない場合、PDFを一度画像(JPEGまたはPNG)に変換してから「日本語OCR」ツールに読み込ませる方法が有効です。複数ページある場合はページごとに画像化してOCRにかける必要があります。

ぱんだツールズのOCRはどんな技術を使っていますか?

Tesseract.jsというオープンソースOCRエンジンをブラウザ上で動作させています。GoogleがオリジナルのTesseract(C++製)を開発し、現在はオープンソースとして公開されているものをJavaScript/WebAssemblyに移植したライブラリです。日本語の学習済みモデルを内蔵しており、インターネット接続があれば追加のサーバー処理なしに認識が完結します。

OCRの精度が低い・テキストが正しく取れない場合はどうすればいいですか?

次の点を試すと改善することが多いです。①画像の解像度を上げる(スマホで再撮影する場合は明るい環境・手ブレなし)②画像を傾きなく正面から撮影する③画像の白黒コントラストを高める(スキャナのスキャン設定で「文字モード」を選択)④ノイズの多い背景を除く(白紙の上に文書を置くなど)。処理前に画像を確認して、文字がはっきり見える状態になっているかが判断基準です。

ファイルはサーバーに送信されますか?プライバシーは大丈夫ですか?

ぱんだツールズのOCRはすべてブラウザ内で完結します。アップロードした画像やPDFはサーバーに送信されず、処理もお使いのデバイス上で行われます。機密文書・個人情報を含む文書でも安心してご利用いただけます。ページを閉じると処理結果も消去されます。

この記事で紹介したツール