OCR の仕組み
スキャンした PDF に入っているのはページの画像で、文字のデータではありません。Markdown を取り出すには、文字認識モデルで画像を 1 枚ずつ読む必要があります。多くのサイトではファイルをサーバーにアップロードしますが、ここではモデルのほうがあなたの端末に来ます。
- 変換ツールが全ページを調べます。 テキスト層があるページはそのまま読むので、速くて正確です。テキスト層がないページや、文字に対応しない記号でできたテキスト層のページは OCR に回します。
- ページを画像として描画します。 タブの中で、小さな文字も読める解像度で描きます。
- 検出モデルが文字の行を見つけ、認識モデルが 1 行ずつ読みます。どちらも PaddleOCR のモデル(Apache 2.0)で、WebAssembly で動き、ブラウザが許せば複数のスレッドを使います。
- 行を読む順序に並べ直します。 段落をつなぎ、行の高さから見出しを推定し、列が揃った行は表として組み立て直します。あとは通常のページと同じように Markdown になります。
最初にスキャンを変換するとき、モデルをダウンロードします。ラテン文字と中国語は約 6 MB、日本語か韓国語は約 20 MB です。その後はキャッシュに残るので、OCR はすぐに始まります。
速さはどのくらい?
最近のノートパソコンなら、モデルの読み込み後、一般的なページで 1 ページ 2〜4 秒です。スマートフォンはもっと遅く、細かい文字がびっしり詰まったページは手紙より時間がかかります。進行状況の行には今どのページを読んでいるかが出て、中止でいつでも止められます。読み終えたページは残るので、もう一度始めると続きから進みます。
スキャンされたページが一部だけなら、OCR にかかるのもそのページだけです。付録の 3 ページだけがスキャンの 200 ページの報告書なら、スキャンがない場合とほとんど変わらない速さで変換できます。
OCR が自信を持てなかったページを確認する
文字認識モデルは優秀ですが、完璧ではありません。すべてを校正させる代わりに、変換ツールは行ごとにモデルの確信度を記録します。しきい値を下回る行があるページは、確認するページに「OCR が自信のない語あり」という印付きで並び、ページの画像と Markdown を見比べられます。
逆の問題もここで直せます。テキスト層が壊れている PDF があります。フォントが間違った文字に対応していて、文章が意味不明になるケースです。そうしたページには文字化けの印が付き、このページを OCR で読むを押せば、そのページだけを画像から読み直します。
モデルの選び方
| 文書の言語 | 「スキャンページ」で選ぶもの | ダウンロード |
|---|---|---|
| 英語、スペイン語、フランス語、ドイツ語、ポルトガル語などラテン文字の言語 | ラテン文字と中国語 | 約 6 MB |
| 中国語(簡体字と繁体字の活字) | ラテン文字と中国語 | 約 6 MB |
| 日本語 | 日本語 | 約 21 MB |
| 韓国語 | 韓国語 | 約 18 MB |
選んだモデルは次回も使われます。英語と日本語や韓国語が混ざった文書は、日本語や韓国語のモデルで読むのがおすすめです。どのモデルもラテン文字と数字を読めます。
スキャンの精度を上げるには
- 自分でスキャンするなら 300 dpi で。200 dpi を下回ると、小さな文字が別の文字に崩れやすくなります。
- まっすぐなページほどよく読めます。 斜めから撮ったページや、本ののどに向かって湾曲したページは、端のほうの語を取りこぼすことがあります。
- 信用できないテキスト層があるときは、スキャンページですべてのページを選びます。古いスキャナーの OCR が付けたテキスト層などです。変換ツールはそれを無視して、全ページを自分で読みます。
- スマートフォンで長いスキャンを変換するときは、メモリを節約するためにページ範囲を指定します。
OCR にまだできないこと
- 手書き文字には対応していません。モデルは活字で学習されています。
- 詰まった表や傾いた表。 スキャンした表は、列がはっきり揃っていれば Markdown の表になります。列の間隔が狭い表や斜めにスキャンされたページは、テキストの行として出力されることがあります。詳しくは PDF の表を Markdown にへ。
- 数式は LaTeX ではなく、モデルが見た文字のまま出力されます。
- 上のモデル以外の言語、たとえばアラビア語、ヘブライ語、キリル文字、ギリシャ語、タイ語、ヒンディー語は OCR の対象外です。ただし、テキスト層がある PDF なら OCR は不要なので、これらの言語でも変換できます。
ブラウザの OCR はプライバシー面で安全?
はい。各ページはこのタブの中で描画され、読み取られます。テキストはコピーかダウンロードするまでタブのメモリに残るだけです。ページの画像も文字も、どこにも送られません。スキャンした契約書や診断書など、アップロードしたくない書類にも使えます。変換中にブラウザの開発者ツールのネットワークパネルを見ても、ファイルや本文を運ぶリクエストはありません。
よくある質問
書類を撮った写真も変換できますか?
まず写真を PDF にしてください。たいていのスマートフォンは、共有メニューからスキャンや写真を PDF として保存できます。その PDF をここにドロップします。画像ファイルそのものにはまだ対応していません。
最初のスキャンだけ時間がかかるのはなぜ?
初回だけ OCR モデルをダウンロードするためです。ブラウザがキャッシュを残している限り、別の日のスキャンでもこの待ち時間はありません。
テキスト層はあるのに、文字が間違っています。どうすれば?
そのテキスト層はスキャナーが付けた OCR の結果で、品質が低いことがあります。スキャンページですべてのページを選んで変換し直すか、おかしなページでこのページを OCR で読むを使ってください。
オフラインでも使えますか?
変換が始まり、モデルがキャッシュにあれば、ネットワークは要りません。途中で接続が切れても処理は続きます。