運営者
- 名称
- おたすけ(Otasuke)
- サイト
- https://otasuke.app/
- 連絡先
- contact@otasuke.app
- 形態
- 個人事業として運営しています。本サービスは無料で、商品の販売や有料プランの提供は行っていません。
このサービスの目的
紙の資料を文字に起こしたいという用事は、事務作業でも調べ物でもよく起きます。一方で、精度の高い OCR の多くはクラウドのサービスで、読み取りたい画像をいったんサーバーへアップロードする仕組みです。契約書や個人情報を含む書類、社外に出せない資料は、そもそもアップロードできないことがあります。
日本語 OCR は、レイアウトの検出も文字の認識もすべてブラウザの中で行い、画像は端末の外に出ません。読み取った文字も送信しません。縦書きや手書きを含む日本語の資料を、送信せずに文字へ起こせることを目的に作っています。
処理の仕組み
読み取りには、国立国会図書館が公開している NDLOCR-Lite の学習済みモデルを使っています。まず DEIMv2 でページから文字の行を検出し、次に PARSeq の 3 つのモデルを行の長さに応じて使い分けて文字を認識し、最後に XY-Cut で段組みや縦書きを判別して人が読む順に並べ替えます。
これらのモデルは ONNX Runtime Web を通じて Web Worker の中で実行します。モデルは本サイト自身が配信しており、初回の読み取り時に一度だけダウンロードし、以降はブラウザに保存したものを使います。画像そのものがサーバーへ渡ることはありません。
利用しているソフトウェアと帰属表示
本サービスは、次のソフトウェアを利用・改変しています。いずれも作成者による本サービスの保証や推奨を示すものではありません。
- 国立国会図書館「NDLOCR-Lite」(モデルおよびコード、CC BY 4.0) — https://github.com/ndl-lab/ndlocr-lite
- PaddlePaddle「PaddleOCR」(PP-OCRv6 の行検出モデル、Apache License 2.0) — https://github.com/PaddlePaddle/PaddleOCR。高速モードで使う ONNX 形式の配布物は RapidAI「RapidOCR」(Apache License 2.0)から取得しています。
- 橋本悠太氏(Yuta Hashimoto)「NDLOCR-Lite Web」(CC BY 4.0) — https://github.com/yuta1984/ndlocrlite-web。ブラウザで動かすための実装(前処理と後処理、読み順の決定、Worker でのモデル管理)を参考にしました。
主な変更点は次のとおりです。
- PARSeq のデコードから連続する重複文字の除去を取り除きました(先行実装の Issue #3 のバグ修正。「民主主義」が「民主義」に縮む問題)
- WASM をマルチスレッドで動かすようにしました(COOP/COEP による分離)
- モデルをこのサイト自身から配るようにし、ハッシュによる検証を追加しました
- UI を作り直しました
推論には onnxruntime-web(MIT ライセンス)を、PDF の読み込みには pdf.js(Apache License 2.0)を利用しています。
他のツール
他のツールは https://otasuke.app/ を参照してください。
お問い合わせ
読み取りの誤り、掲載内容の修正依頼、その他のご質問は contact@otasuke.app までお送りください。数日以内に返信します。脆弱性の報告は security.txt をご確認ください。