ブラウザで動く PaddleOCR#
画像は端末の外に送信されません設計からプライバシー重視#
このページがダウンロードするのはモデルであり、あなたの画像ではありません。認識処理はこのタブ内の ONNX Runtime Web で行われ、タブを閉じれば、キャッシュされたモデル以外は何も残りません。
1 つのモデルで 50 言語#
PP-OCRv6 small は、中国語(簡体字・繁体字)、英語、日本語、ラテン文字の 46 言語を、モデルを切り替えずに読み取ります。tiny は日本語を除く 49 言語に対応します。
Python と同じ形式で出力#
PaddleOCR 3.7 が返すのと同じ形の rec_texts・rec_scores・ポリゴンに加え、手元のマシンですぐ実行できる Python スクリプトも出力します。
日本語の画像は small で読み取ってください。tiny の認識辞書にはひらがな・カタカナが含まれていません。Python 版での実測では、日本語の掲示に対して PP-OCRv6 small は全行を正確に読み取り、tiny は文字誤り率 47.3% でした。5「日本語の掲示」サンプルを選ぶと、tiny を選択中でも自動的に small に切り替わります。
このオンライン PaddleOCR のしくみ#
このページは、PaddleOCR チームが @paddleocr/paddleocr-js として公開している公式ブラウザ SDK、PaddleOCR.js を読み込みます。処理は Python ライブラリと同じ 2 段階のパイプラインです。1
どちらのモデルも ONNX Runtime Web で動作します。SDK はブラウザが WebGPU に対応していれば WebGPU を使い、そうでなければ WebAssembly にフォールバックします。モデルファイルは Baidu の公式 CDN から取得し、失敗した場合は Hugging Face の PaddlePaddle 組織にある同一の ONNX 版を取得します。いずれの場合もブラウザのキャッシュに保存されるため、2 回目以降は数秒で起動します。3
どのモデルを選ぶべきか#
| モデル | ダウンロード | 対応言語 | 向いている用途 |
|---|---|---|---|
| PP-OCRv6 small | 31.2 MB | 50(日本語を含む) | 既定。ブラウザ版 SDK で使える最も高精度なモデル。 |
| PP-OCRv6 tiny | 6.3 MB | 49(日本語なし) | スマートフォンや低速回線、ラテン文字・中国語の簡易チェック。 |
| PP-OCRv5 mobile | 21.5 MB | 中国語、英語、日本語 | 旧世代との比較。 |
サーバー向けの PP-OCRv6 medium(Python 版の既定モデル)は、ブラウザ版 SDK では提供されていません。私たちの CPU ベンチマーク (EN) では、small は 5 つのテスト文書のうち 3 つで medium と完全に同じ結果になり、2 つのレシートではそれぞれ 1 文字だけ誤りが多い程度でした。Python ライブラリで得られる結果のプレビューとして十分に参考になります。
PaddleOCR.js 0.4.2、WebAssembly バックエンド、4 vCPU のテスト機。短いほど高速。
| モデル | 秒 |
|---|---|
| PP-OCRv6 tiny | 1.14 s |
| PP-OCRv6 small | 5.82 s |
認識精度を上げるコツ#
- 文字の部分だけを切り抜く。大きな写真はテキスト検出の前に縮小されるため、大きな写真の中の小さな文字は見落とされることがあります。切り抜きが最も効果的です。
- 文字が抜ける場合は、「検出の設定」を開いて
text_det_box_threshを下げてください(例:0.4)。薄い文字やコントラストの低い文字は、これでしきい値を超えることがよくあります。 - 端の文字が欠ける場合は、
text_det_unclip_ratioを 2.0 に上げると、検出枠が少し広く描かれます。 - 傾いたページは、ある程度の傾きまでなら問題ありません(サンプルのレシート写真は 7.5° 傾いていますが、完全に読み取れました)。上下逆や横向きのページには、Python 版パイプラインの
use_doc_orientation_classify=Trueで先に向きを補正します。 - 信頼度スライダーで不確かな行を非表示にできます。赤い枠は 0.80 未満で、誤認識の多くはこの範囲にあります。
ブラウザ版と Python 版の違い#
| このオンラインツール(PaddleOCR.js) | Python ライブラリ(PaddleOCR 3.7) | |
|---|---|---|
| インストール | 不要 | pip install+推論エンジン |
| モデル | PP-OCRv6 small/tiny、PP-OCRv5 mobile | PP-OCRv6 medium を含む全モデル、100 以上の言語 |
| 不可(ページを画像として書き出す) | 可(複数ページ対応) | |
| 表・レイアウト・数式 | 不可 | 可(PP-StructureV3 または PaddleOCR-VL) |
| 向き補正・歪み補正 | 不可 | 前処理モデルをオプションで使用可能 |
| プライバシー | ローカル処理 | ローカル処理 |
同じ OCR を自分のサイトに組み込む#
このページの機能は、すべて公式 SDK で実現できます。最小構成は次のとおりです。
import { PaddleOCR } from "@paddleocr/paddleocr-js";
const ocr = await PaddleOCR.create({
lang: "en",
ocrVersion: "PP-OCRv6", // maps to PP-OCRv6_small
ortOptions: { backend: "auto" } // WebGPU if available, else WASM
});
const [result] = await ocr.predict(fileInput.files[0]);
for (const line of result.items) {
console.log(line.text, line.score.toFixed(3), line.poly);
}バンドラー、Web Worker、WebGPU 用のヘッダー、そしてこのページを安定させるために回避が必要だった CDN の挙動については、PaddleOCR.js ガイド (EN) で解説しています。
よくある質問#
このオンライン PaddleOCR は無料ですか?
はい。アカウント登録、利用回数の制限、透かしはありません。このページは静的なページで、ブラウザがオープンソースのモデルを一度ダウンロードし、処理もブラウザ自身が行います。そのため、私たちが利用量を計測する仕組みはそもそもありません。
画像はどこかにアップロードされますか?
いいえ。画像はこのタブ内の canvas に読み込まれ、ローカルの ONNX Runtime Web に渡されます。ネットワーク通信は、SDK のコード(jsDelivr)とモデルファイル(Baidu の CDN または Hugging Face)の取得だけです。ブラウザの開発者ツールの「ネットワーク」タブで確認できます。
日本語の画像も読み取れますか?
はい。既定の PP-OCRv6 small は日本語に対応しています。ただし tiny は日本語非対応のため、日本語の画像では small を選んでください。Python 版の small による私たちの実測では、日本語の掲示を全行正確に読み取りました。
ここで PDF を OCR できますか?
直接はできません。ブラウザ版 SDK は画像のみを受け付けます。ページを PNG か JPG で書き出すか、PDF をそのまま読める Python ライブラリを使ってください。表や数式を含む PDF には PP-StructureV3 を使います。
これは PaddleOCR の公式デモですか?
いいえ。paddleocr.dev は独立したサイトで、このツールは公式の PaddleOCR.js SDK を使って作られています。PaddleOCR チームは独自のデモを運営しており、その一つが paddleocr.com のホスト型サービスです(ファイルはサーバー側で処理されます)。
初回の実行に時間がかかるのはなぜですか?
初回はモデル(ティアにより 6〜31 MB)のダウンロードと WebAssembly ランタイムの起動が必要なためです。以降はモデルがブラウザにキャッシュされ、推論の時間だけで済みます。
どの言語を読み取れますか?
PP-OCRv6 small は、中国語(簡体字・繁体字)、英語、日本語、そしてフランス語、ドイツ語、スペイン語、ポルトガル語、イタリア語、ポーランド語、トルコ語、ベトナム語などラテン文字の 46 言語に対応しています。韓国語、アラビア文字、キリル文字、タイ文字、デーヴァナーガリーなどは Python ライブラリが必要です。言語一覧 をご覧ください。
出典
- PaddleOCR.js SDK の README とソースコード(モデルのプリセット、バックエンド):github.com/PaddlePaddle/PaddleOCR/tree/main/paddleocr-js — npm
@paddleocr/paddleocr-js0.4.2(2026-06-11 公開)。 - PP-OCRv6 の対応言語(medium・small は 50 言語、tiny は日本語を除く 49 言語):PP-OCRv6 アルゴリズムのドキュメント。
- モデルのダウンロードサイズ:Baidu の CDN にある公式 ONNX アーカイブの Content-Length と、Hugging Face の PaddlePaddle 上のファイルサイズ(2026-10-27 確認)。
- ブラウザでの処理時間:paddleocr.dev が 2026-10-27 に計測。ヘッドレス Chromium(WASM バックエンド、WebGPU なし)、4 vCPU の Intel Xeon @ 2.10 GHz の Linux コンテナ。お使いの端末では結果が異なります。
- 日本語の掲示での認識結果(Python 版 PP-OCRv6 small・medium は全行正確、tiny は文字誤り率 47.3%):paddleocr.dev ベンチマーク、2026-10-27。方法と生データ (EN)。