画像からテキストへ (OCR)

光学文字認識(OCR)を使って、写真やスキャン画像からテキストをブラウザ内で直接抽出します — アップロード不要、一度読み込めばオフラインでも動作します。

247回閲覧

このツールは写真やスキャン画像用であり、すでにテキストレイヤーが埋め込まれているPDFには使用しません。実際のテキストが含まれるPDFには、代わりに「PDFテキスト抽出」ツールを使用してください。

ブラウザは実際にどうやって写真を「読む」のか

光学文字認識(OCR)とは、見た目が文字のように見えるピクセルを、実際に選択可能なUnicodeテキストへと変換する処理であり、計算負荷が高いという理由からこれまでは伝統的にサーバー側の処理とされてきました。このツールが実行しているのはTesseractです — もともと1980年代にHPラボで開発され、その後オープンソース化されてGoogleがメンテナンスしており、利用可能なオープンソースOCRエンジンの中でも特に精度が高いと広く評価されています。これをWebAssemblyにコンパイルしています。WebAssemblyは、C++コードをブラウザ内でネイティブに近い速度で実行できるバイナリ命令形式です。このコンパイルの工程こそが、サーバーなしでこれを実現可能にしています。多くのデスクトップ・モバイルのスキャンアプリで使われているのとまったく同じ認識エンジンが、あなたのデバイス上でローカルに動作するのです。

最新のTesseract(バージョン4以降)は、Tesseract 3以前で使われていた古い文字単位のパターンマッチングではなく、LSTMニューラルネットワーク(Long Short-Term Memory、時系列データに適したリカレントニューラルネットワークの一種)を使ってテキストを認識します。一文字ずつ切り出して分類しようとするのではなく、LSTMモデルは1行全体を一つの系列として読み取り、周囲の文脈を使って曖昧な形状を解決します — そのため、単に形を個別に照合するのではなく、実質的に「ここにはどの単語が意味をなすか」を予測しているため、「l」と「1」、「O」と「0」を、従来のエンジンよりもはるかに信頼性高く区別できるのです。

認識の精度は、読み込まれる言語モデルに大きく左右されます。このツールは、初めて使用する際に選択した言語(英語またはトルコ語)専用の学習済みモデルファイルをダウンロードします。このファイルには、その言語の文字の形、よくある文字の並び、辞書に関する統計的パターンが含まれています。スキャンの前に正しい言語を選択することで精度は大きく向上します。トルコ語のテキストで学習されたモデルは、トルコ語特有の文字(ç, ğ, ı, ö, ş, ü)を、英語専用モデルよりもはるかにうまく処理できるからです。

言語モデルはそれなりの容量(数メガバイト)のダウンロードになるため、ブラウザは初回使用後にこれをキャッシュします。そのため、同じ言語での以降のスキャンは、再度取得する必要がなく、目に見えて速く開始できます。

より良い結果を得るために

  • 鮮明で照明が十分、コントラストの高い写真は、ぼやけていたり暗すぎる写真よりもはるかにうまく機能します — ニューラルネットワークは、人間の目でも判読に苦労するのと同じピクセルを扱っているため、OCRの品質は画像品質にほぼそのまま連動します。
  • エンジンはある程度自動的な傾き補正を行いますが、それでも正面から撮った回転のない写真の方が、急な角度で撮った写真よりも確実に認識されます。
  • このエンジンにとって、手書き文字は印刷された文字よりも本質的に難しい対象です — Tesseractは主に印刷書体で学習されているため、筆記体や非常に装飾的な手書き文字では精度が目に見えて低下します。
  • このツールは、このサイトのPDFテキスト抽出ツールとは異なるものです。こちらはピクセルに対して実際の文字認識を行うのに対し、PDFツールはファイル内にすでに選択可能なテキストとして埋め込まれているテキストを読み取ります — 読み取るべき実際のテキストレイヤーが存在しない場合にのみOCRを使用してください。

よくある質問

文字認識がサーバーなしでブラウザ内で実行できるのはなぜですか?

もともとHPラボで開発され、現在はGoogleがメンテナンスしているTesseract OCRエンジンが、C++コードをブラウザ内でネイティブに近い速度で実行するバイナリ形式であるWebAssemblyにコンパイルされているためです。これにより、完全な光学文字認識をすべてデバイス上だけで実現できます。

正しい言語を選ぶことがなぜ重要なのですか?

各言語は、その言語の文字の形、よくある並び、辞書に関する統計的パターンを含む独自の学習済みモデルファイルをダウンロードします。トルコ語で学習されたモデルは、ç, ğ, ı, ö, ş, üといったトルコ語特有の文字を、英語専用モデルよりもはるかに正確に認識します。

手書き文字が印刷された文字に比べてうまく認識されないのはなぜですか?

Tesseractのニューラルネットワークは主に印刷書体で学習されています。LSTMモデルはテキストを一つの系列として読み取り、文脈を使って曖昧な形状を解決しますが、これは一貫性のある印刷文字の形には非常によく機能する一方、筆記体や装飾的な手書き文字のように変動が大きいものには弱いのです。

画像はサーバーにアップロードされますか?

いいえ。認識処理はすべてWebAssemblyを通じてブラウザ内で実行され、画像がどこかに送信されることは一切ありません。エンジンが必要とする学習済みデータを持てるように、言語モデルファイル自体だけが一度ダウンロードされ(その後キャッシュされ)ます。

このツールとPDFテキスト抽出ツールとの違いは何ですか?

このツールはピクセルに対して実際の光学文字認識を行うため、下地にテキストがない写真やスキャン画像に対して機能します。一方PDFテキスト抽出ツールは、PDF内にすでに選択可能な埋め込みテキストとして保存されているテキストを読み取るもので、そのテキストレイヤーが存在する場合はまったく別の(そしてはるかに高速で正確な)処理になります。

コメント

まだコメントはありません — 最初のコメントを書いてみましょう!

関連ツール