このページの内容
結論:精度を重視するなら、既定の PP-OCRv6 medium のままにしてください。私たちのテストでは 124 項目中 123 項目を正確に読み取りました。CPU アプリや対話的な用途なら small に切り替えます。テストでは medium より約 3.3 倍速く(1 ページあたり 0.90 秒対 2.92 秒)、誤りは 2 項目多いだけでした。エッジデバイスには tiny(6.3 MB)を使えますが、日本語には絶対に使わないでください。かなを読めません。韓国語、アラビア文字、キリル文字、デーヴァナーガリー文字、タイ語、ギリシャ語、タミル語、テルグ語は、今も PP-OCRv5 のモデルを使います。
PP-OCRv6 とは(そして「PaddleOCR v6」ではないもの)#
PP-OCR は、PaddleOCR のテキスト行 OCR システムの名前です。テキスト行をすべて見つけてポリゴンを返す検出モデルと、切り出した行を読み取る認識モデルで構成されます。PP-OCRv6 はこのモデルの組の第 6 世代です。2026年6月11日に paddleocr パッケージのバージョン 3.7.0 とともにリリースされ、既定のモデルになりました。3
バージョン番号は混同しやすいので注意してください。「PaddleOCR v6」というパッケージは存在せず、最新のパッケージは PaddleOCR 3.7.0 です。「v6」はモデルの世代を指します。同じパッケージで PP-OCRv5、v4、v3 のモデルも引き続き読み込めます。PP-OCRv6 が対応していない言語では、自動的にそれらが読み込まれます(後述)。
Baidu は PP-OCRv6 を、エッジ/IoT(tiny)、モバイル/デスクトップ(small)、サーバー(medium)向けの 3 つのティアからなる 1 つのファミリーと説明しています。PP-OCRv5 からの最大の変更点は対応言語です。small と medium の認識モデルは 1 つのモデルで 50 言語(簡体字中国語、繁体字中国語、英語、日本語、ラテン文字の 46 言語)を読み取るため、フランス語やベトナム語のために別のモデルを用意する必要はなくなりました。1 PaddleOCR() をそのまま呼び出すと、medium ティアが使われます。6
from paddleocr import PaddleOCR
ocr = PaddleOCR() # lang=None, ocr_version=None -> PP-OCRv6_medium_det + PP-OCRv6_medium_rec3 つのティア:パラメータ数、サイズ、言語#
各ティアは PP-OCRv6_<tier>_det と PP-OCRv6_<tier>_rec の 2 つのモデルで構成されます。パラメータ数は Hugging Face のモデルカードから、サイズは公式のモジュールのドキュメントから取りました。後者は MiB(1,048,576 バイト)で数えると Hugging Face のファイルと一致します。45
| ティア | 用途 | det パラメータ数 | rec パラメータ数 | 合計 | det MB | rec MB | 合計 MB | 言語数 |
|---|---|---|---|---|---|---|---|---|
| PP-OCRv6 medium | サーバー(既定) | 15.5M | 19M | 34.5M | 59.4 | 73.3 | 132.7 | 50 |
| PP-OCRv6 small | モバイル/デスクトップ | 2.48M | 5.2M | 7.7M | 9.6 | 20.4 | 30.0 | 50 |
| PP-OCRv6 tiny | エッジ/IoT | 0.43M | 1.1M | 1.5M | 1.9 | 4.4 | 6.3 | 49 — 日本語なし |
det と rec のパラメータ数を足すと、丸めた結果が Baidu の公表するティアごとの合計(1.5M / 7.7M / 34.5M)になります。3 MB 列の合計は、公表されているモデルごとのサイズを私たちが足したものです。
tiny ティアは日本語を読めない — どれほど読めないかを計測しました#
公式ドキュメントではこの点に一節("tiny supports 49, excluding Japanese")で触れているだけで、OCR パイプラインのドキュメントに PP-OCRv6_tiny は japan に対応していないという補足があります。17 理由は中国語版のアルゴリズムのドキュメントに書かれています。約 4,000 字の漢字とかなが、tiny の認識モデルの 1.1M パラメータの出力層に与える影響を避けるため、日本語を除外したというものです。2 各モデルに同梱されている辞書を数えたところ、tiny は 6,904 エントリでひらがなもカタカナも 1 文字も含まれていません。small と medium はどちらも 18,708 エントリで、そのうち 180 がかなです。12
実際にどうなるかというと、日本語の店舗掲示で tiny の文字誤り率は 47.3% で、small と medium は 0% でした。8 行のうち正しく読めたのは 1 行だけで、漢字と数字だけの行です。PaddleOCR は警告を出さず、信頼度スコアもしきい値フィルタをすり抜けるほど高めに出ます。1112
| 正解 | PP-OCRv6 tiny の出力 | スコア |
|---|---|---|
| 臨時休業のお知らせ | 臨時休業⑦书知5世 | 0.880 |
| いつもご利用いただき誠にありがとうございます。 | 八⊃毛己利用大龙老誠仁亡方己忒末寸。 | 0.706 |
| 設備点検のため、下記の日程で臨時休業いたします。 | 設備点梭D大女、下記D日程飞臨時休業大L末寸。 | 0.808 |
| 休業日:2026年11月18日(水) | 休業日:2026年11月18日(水) | 0.950 |
| 営業再開:2026年11月19日(木)午前10時 | 當業再開:2026年11月19日(木)午前10時 | 0.948 |
| お客様にはご迷惑をおかけしますが、 | 书客様C己迷惑左书力L末寸、 | 0.801 |
| 何卒ご理解のほどよろしくお願い申し上げます。 | 何卒己理解D話∑上弓L<书顧申L上伏末寸。 | 0.725 |
| みなと町ベーカリー 店主 | 办太亡町心一力一店主 | 0.778 |
かなはすべて、tiny の辞書にある形の似た文字に置き換えられています。の は ⑦ に、お は 书 に、し は L になります。medium と small は 8 行すべてを正しく読み取りました。入力に日本語が含まれる可能性があるなら、small か medium を使ってください。ブラウザで動く私たちのオンラインツールが既定で small を使うのも、これが理由です。
PP-OCRv6 の仕組みをわかりやすく#
- 2 つの処理に 1 つのバックボーン。PPLCNetV4 は MetaFormer のパターン(低コストな「トークンミキサー」の後に「チャネルミキサー」)に従い、構造的再パラメータ化を使います。学習時には追加の分岐が役立ち、推論時にはそれらが 1 つの畳み込みにまとめられます。検出では画像を縦横両方向に縮小し、認識では高さだけを縮小するので、テキスト行は左から右への系列になります。1
- 検出はより広い文脈を見る。新しい RepLKFPN ネックは 3×3 ではなく 7×7 の depthwise 畳み込みを使い、パラメータ数は PP-OCRv5 の RSEFPN より 31% 少なくなっています(118K 対 172K)。1
- 認識は局所と大域の視点を組み合わせる。EncoderWithLightSVTR ネックは、隣り合う文字を見る小さな畳み込みと、行全体を見る 1〜2 層の self-attention を組み合わせます。テキストは CTC ヘッドが出力し、NRTR ヘッドは学習時にのみ使われ、推論時には取り除かれます。1
- tiny は蒸留モデル。tiny の認識モデルにはネックがまったくなく、medium モデルを模倣するように学習されています(知識蒸留)。1
- 50 言語で 1 つの辞書。文字セットに約 200 のダイアクリティカルマーク付き文字が追加されました。これにより、1 つのモデルで中国語と並んでポーランド語、ベトナム語、アイスランド語も読めるようになっています。1
公式の精度:PP-OCRv6 と PP-OCRv5 の比較#
これらの数値はBaidu 自身が社内のマルチシナリオベンチマークで計測したもので、検出 16 カテゴリ、認識 15 カテゴリからなります。テストセットは公開されていないため、ベンダー公表値として扱ってください。1
検出 Hmean(16 カテゴリの平均)と認識精度(15 カテゴリの加重平均)、%。Baidu 社内ベンチマーク。
| モデル | 検出 Hmean | 認識精度 |
|---|---|---|
| PP-OCRv6 medium | 86.2% | 83.2% |
| PP-OCRv6 small | 84.1% | 81.3% |
| PP-OCRv6 tiny | 80.6% | 73.5% |
| PP-OCRv5 server | 81.6% | 78.1% |
| PP-OCRv5 mobile | 75.2% | 73.7% |
目立つ点が 2 つあります。small(パラメータ数 7.7M)は、はるかに大きい PP-OCRv5 server を両方の平均で上回っています。また tiny の認識の平均(73.5%)は、ダウンロードサイズが約 3 分の 1 でありながら PP-OCRv5 mobile(73.7%)と同等です。ただし、カテゴリ別の表を見ると、手書き文字では大きく劣ります。
カテゴリ別の検出 Hmean(%)#
| モデル | 平均 | 手書き中国語 | 手書き英語 | 印刷中国語 | 印刷英語 | 繁体字 | 古籍 | 日本語 | ぼやけ | 絵文字 | 歪み | ピンイン | アート | 表 | 回転 | 産業 | 一般 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| v6 medium | 86.2 | 83.7 | 84.0 | 95.1 | 93.7 | 86.3 | 80.2 | 84.3 | 94.1 | 99.6 | 88.6 | 74.0 | 69.0 | 96.8 | 93.8 | 73.3 | 82.8 |
| v6 small | 84.1 | 80.5 | 87.1 | 94.2 | 93.6 | 85.7 | 72.6 | 82.3 | 92.6 | 99.7 | 87.6 | 69.6 | 65.3 | 95.6 | 93.7 | 67.6 | 78.2 |
| v6 tiny | 80.6 | 79.4 | 85.9 | 93.1 | 92.3 | 83.7 | 63.0 | 76.6 | 89.3 | 99.8 | 86.1 | 59.0 | 60.1 | 94.7 | 91.0 | 62.0 | 73.8 |
| v5 server | 81.6 | 80.3 | 84.1 | 94.5 | 91.7 | 81.5 | 67.6 | 77.2 | 90.1 | 96.2 | 87.6 | 67.1 | 67.3 | 97.1 | 80.0 | 64.3 | 79.7 |
| v5 mobile | 75.2 | 74.4 | 77.7 | 90.5 | 91.0 | 82.3 | 58.1 | 72.7 | 87.4 | 93.6 | 82.7 | 57.5 | 52.5 | 92.8 | 64.7 | 52.8 | 72.1 |
検出で最も改善したのは回転したテキストです(v5 server の 80.0 に対して 93.8)。表(97.1 対 96.8)と手書き英語(84.1 対 84.0)では、今も PP-OCRv5 server が medium をわずかに上回っています。1
カテゴリ別の認識精度(%)#
| モデル | 加重平均 | 手書き中国語 | 手書き英語 | 印刷中国語 | 印刷英語 | 繁体字 | 古籍 | 日本語 | 形の似た文字 | 特殊文字 | 一般 | ピンイン | アート | 産業 | 画面 | カード |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| v6 medium | 83.2 | 62.1 | 67.8 | 91.5 | 94.1 | 78.6 | 72.4 | 90.5 | 64.9 | 61.7 | 87.5 | 78.1 | 71.2 | 77.4 | 82.5 | 88.1 |
| v6 small | 81.3 | 57.6 | 61.1 | 90.5 | 93.3 | 77.0 | 71.1 | 88.2 | 64.1 | 60.2 | 85.7 | 75.9 | 68.4 | 76.4 | 79.7 | 86.9 |
| v6 tiny | 73.5 | 40.1 | 39.3 | 86.7 | 88.4 | 65.0 | 68.4 | 89.8 | 52.3 | 57.1 | 78.0 | 65.4 | 54.7 | 62.1 | 71.2 | 80.5 |
| v5 server | 78.1 | 58.0 | 59.6 | 90.1 | 85.1 | 74.7 | 60.4 | 73.7 | 59.4 | 56.8 | 86.5 | 74.4 | 64.0 | 70.2 | 68.1 | 87.6 |
| v5 mobile | 73.7 | 41.7 | 50.9 | 86.0 | 86.0 | 72.0 | 57.8 | 75.8 | 55.7 | 54.8 | 80.7 | 72.5 | 54.0 | 59.3 | 57.6 | 81.7 |
Baidu は、v5 server に対する medium の改善として、日本語(+16.8 ポイント)、古籍(+12.0)、画面テキスト(+14.4)を強調しています。2 この表には不自然なセルがあります。tiny は日本語で 89.8% と medium に近いスコアですが、tiny はかなを読めません。このセルの元になったテストセットについてドキュメントに説明はありません。実際の日本語テキストについては、上で示した計測結果を信頼してください。
同じ表には視覚言語モデル(Gemini-3.1-Pro、GPT-5.5、Qwen3-VL-235B)も含まれており、Baidu のテストセットではいずれも PP-OCRv6 medium より低いスコアです。パラメータ数 34.5M のモデルが「VLM を上回る」という主張の根拠はこれです。1
サイズと精度#
Baidu の認識精度(加重平均)と det + rec の合計モデルサイズ。サイズの軸は対数目盛。
| モデル | サイズ(MB) | 認識精度 |
|---|---|---|
| v6 tiny | 6.3 MB | 73.5% |
| v6 small | 30.0 MB | 81.3% |
| v6 medium | 132.7 MB | 83.2% |
| v5 mobile | 20.7 MB | 73.7% |
| v5 server | 165.3 MB | 78.1% |
tiny から small にすると、24 MB 増えて精度が 7.8 ポイント上がります。small から medium にすると、さらに 103 MB 増えて 1.9 ポイントの向上です。前世代と比べると、small は 9 MB 多いだけで PP-OCRv5 mobile を 7.6 ポイント上回り、medium はサイズが小さいのに PP-OCRv5 server を 5.1 ポイント上回り、tiny は 3 分の 1 未満のサイズで PP-OCRv5 mobile と同等です。
公式の速度表(ハードウェア付き)#
Baidu は、画像の読み込み、前処理・後処理、2 つのモデルを含むパイプライン全体の時間を、一般画像と文書画像 200 枚で計測しました。値は画像 1 枚あたりの秒数です。ドキュメントにハードウェアは記載されていますが、スレッド数やバッチの設定は書かれていません。1
| ハードウェア | バックエンド | v6 medium | v6 small | v6 tiny | v5 server | v5 mobile | v4 mobile |
|---|---|---|---|---|---|---|---|
| NVIDIA A100 | PaddlePaddle | 0.29 | 0.25 | 0.13 | 0.32 | 0.25 | 0.14 |
| NVIDIA A100 | TensorRT | -- | 0.32 | 0.16 | -- | 0.33 | 0.16 |
| NVIDIA V100 | PaddlePaddle | 0.72 | 0.49 | 0.21 | 0.66 | 0.50 | 0.25 |
| NVIDIA V100 | ONNX Runtime | 0.67 | 0.53 | 0.29 | 0.77 | 0.46 | 0.27 |
| NVIDIA V100 | TensorRT | 0.77 | 0.60 | 0.23 | 0.73 | 0.59 | 0.27 |
| Intel Xeon 8350C | PaddlePaddle | 2.05 | 0.79 | 0.32 | 2.04 | 0.80 | 0.62 |
| Intel Xeon 8350C | OpenVINO | 1.40 | 0.59 | 0.20 | 7.30 | 0.78 | 0.60 |
| Intel Xeon 8350C | ONNX Runtime | 3.31 | 0.61 | 0.22 | 6.36 | 0.61 | 0.49 |
| Apple M4 | PaddlePaddle | 8.82 | 3.07 | 0.96 | >10 | 5.82 | 5.65 |
| Apple M4 | ONNX Runtime | 5.55 | 1.29 | 0.35 | 7.20 | 1.10 | 1.02 |
見出しの数字ではなく、行ごとに読んでください。GPU では、medium は A100 で v5 server よりわずかに速いだけで(0.29 秒対 0.32 秒)、V100 の PaddlePaddle では遅くなっています(0.72 秒対 0.66 秒)。Baidu が挙げる大きな高速化(OpenVINO での medium の 5.2 倍、Apple M4 での tiny の 6.1 倍)は、PP-OCRv5 server や mobile が極端に遅い CPU の行から来ています。1 Apple Silicon では、この表のすべてのモデルで ONNX Runtime が PaddlePaddle より速くなっています。
モジュールのドキュメントには、4 つの推論エンジン(PaddlePaddle の静的グラフと動的グラフ、Transformers、ONNX Runtime)でのモデルごとの処理時間も NVIDIA A100 と Xeon Gold 6248 について掲載されていますが、どの数値がどのデバイスのものかが書かれていないため、ここには載せていません。4
私たちの CPU ベンチマーク:精度、速度、メモリ、ディスク#
現行の 5 つのモデルすべてを、4 vCPU の Intel Xeon @ 2.10 GHz、15 GB RAM、GPU なしの環境で、PaddleOCR 3.7.0 と 2 つのエンジン(PaddlePaddle 3.2.0 と ONNX Runtime)で実行しました。テストセットは、既知のテキストが 124 項目ある 5 つの文書です。きれいなレシート、同じレシートを斜めから撮影したもの、英語の請求書、中国語と英語の掲示、日本語の掲示です。各数値はウォームアップ後 3 回の中央値で、文書の向き補正、歪み補正、行の向き分類はオフにしました。詳しい方法と生データはベンチマークページ (EN) にあります。11
| モデル | 正確な項目 /124 | CER(5 文書すべて) | CER(日本語を除く) | 秒/ページ Paddle 3.2.0 | 秒/ページ ONNX Runtime | ピーク RAM Paddle | ピーク RAM ORT | ディスク上 |
|---|---|---|---|---|---|---|---|---|
| v6 medium | 123 | 0.03% | 0.03% | 4.51 | 2.92 | 2,579 MB | 2,890 MB | 139.2 MB |
| v6 small | 121 | 0.17% | 0.21% | 1.23 | 0.90 | 1,503 MB | 1,858 MB | 31.6 MB |
| v6 tiny | 111 | 9.83% | 0.46% | 0.39 | 0.26 | 1,259 MB | 1,427 MB | 6.6 MB |
| v5 server | 117 | 0.34% | 0.43% | 5.25 | 35.70 | 3,521 MB | 5,206 MB | 173.6 MB |
| v5 mobile | 117 | 0.67% | 0.84% | 0.90 | 0.73 | 1,433 MB | 1,846 MB | 22.1 MB |
列の見方:CER は文字誤り率で、正解と出力の両方の全角記号、ダッシュ、空白を正規化してから計算し、文書ごとの値を平均したものです。ピーク RAM は、5 文書すべてを処理する間の Python プロセス全体の最大常駐メモリです。ディスク上は PaddlePaddle エンジン用にダウンロードした det + rec のモデルフォルダーのサイズで、10 進の MB(106 バイト)で示しています。ONNX のフォルダーとの差は 1 MB 以内です。11
4 vCPU の Xeon での 1 ページあたりの秒数。5 文書の平均(それぞれウォームアップ後 3 回の中央値)。短いほど高速。
| モデル | PaddlePaddle 3.2.0 | ONNX Runtime |
|---|---|---|
| PP-OCRv6 tiny | 0.39 s | 0.26 s |
| PP-OCRv5 mobile | 0.90 s | 0.73 s |
| PP-OCRv6 small | 1.23 s | 0.90 s |
| PP-OCRv6 medium | 4.51 s | 2.92 s |
| PP-OCRv5 server | 5.25 s | 35.70 s — 範囲外 |
ここからわかること:
- テストしたモデルで最も正確なのは medium です。124 項目で唯一の誤りは、請求書の "600x600" を乗算記号を使った "600×600" と読んだもので、これはすべてのモデルが同じ誤りをしました。精度(123 対 117)と速度(PaddlePaddle で 4.51 秒対 5.25 秒)の両方で PP-OCRv5 server も上回りました。
- CPU では small が最もバランスに優れます。ONNX Runtime で medium より約 3.3 倍速く、ピークメモリは 36〜42% 少なく、ダウンロードサイズは 4 分の 1 未満で、誤りは 2 つ多いだけでした(2 枚のレシートの両方で "Order" を "0rder" と読んだもの)。
- tiny は本当に小さくて速い — 1 ページ 0.26 秒です。日本語以外での誤り率(0.46%)は PP-OCRv5 server(0.43%)に近い値でした。
- PP-OCRv5 server + ONNX Runtime の異常。PP-OCRv5 server は ONNX Runtime で 1 ページ 35.7 秒かかり、PaddlePaddle では 5.2 秒でした。出力テキストは同じです。Baidu 自身の Xeon の行でも、はるかに小さい差ながら同じ傾向が見られます(ONNX Runtime 6.36 秒対 PaddlePaddle 2.04 秒)。後日、同じ v5 server の検出モデルと小さな韓国語認識モデルを使う
lang="korean"で確認したところ、同じパターン(画像 1 枚あたり 12.35 秒対 1.80 秒)が見られたため、遅いのは検出モデルのようです。CPU で v5 server や PP-OCRv5 の言語を使う必要がある場合は、PaddlePaddle エンジンを使ってください。114 - medium についての私たちの CPU の結果は、ONNX Runtime(3.31 秒)が PaddlePaddle(2.05 秒)より遅かった Baidu の Xeon 8350C の行とは異なります。CPU、スレッド数、エンジンのバージョンが違うとこれらの数値は大きく変わるので、採用する前に自分のハードウェアでベンチマークしてください。
paddlepaddle==3.2.0 を使ったのは、PyPI の現在のリリースである 3.3.1 では、oneDNN を無効にしない限り CPU で PaddleOCR 3.7.0 がクラッシュするためです。また enable_mkldnn=False にすると、medium は 1 ページ 11.9 秒かかりました。対処法はトラブルシューティングのページに、インストールコマンドはインストールガイドにあります。
どのティアを使うべきか#
| 状況 | 使うもの | 理由 |
|---|---|---|
| 精度を最も重視するサーバーやバッチ処理 | v6 medium | Baidu の表でも私たちのテストでも最高スコア(123/124)。既定なのでコードの変更は不要です。 |
| 手書き文字、古籍、文字の詰まったスクリーンショット | v6 medium | Baidu の認識の表で small との差が最も大きい項目:手書き英語 67.8 対 61.1、手書き中国語 62.1 対 57.6。 |
| CPU のみのアプリ、対話的なツール、デスクトップソフト | v6 small | 4 コアの CPU と ONNX Runtime で 1 ページ 0.9 秒。モデルは 31 MB。 |
| ブラウザやモバイルアプリ | v6 small | PaddleOCR.js は ocrVersion: "PP-OCRv6" を small に対応付け、公式 iOS デモの既定のプリセットも small です。Android デモには small と tiny が含まれています。 |
| エッジや IoT デバイス、非常に大量の処理、ラテン文字か中国語のみ | v6 tiny | 6.3 MB、私たちのテストで 1 ページ 0.26 秒。手書き文字に弱い(手書き英語 39.3%)。 |
| 日本語が含まれる可能性がある | v6 small または medium | tiny の辞書にはかながありません。 |
| 韓国語、アラビア文字、キリル文字、デーヴァナーガリー文字、タイ語、ギリシャ語、タミル語、テルグ語 | PP-OCRv5 多言語 | PP-OCRv6 の対象外です。lang を渡せば 3.7 が適切なモデルを選びます。対応言語を参照してください。 |
| PaddleOCR 3.0〜3.6 の結果を再現する必要がある | PP-OCRv5 server | ocr_version="PP-OCRv5"。3.7 の PP-StructureV3 が既定で使うのもこのモデルです。 |
出典:プラットフォームの行は PaddleOCR.js のソースコードと iOS・Android のデプロイのドキュメント、精度は上記の Baidu の表、速度は私たちのベンチマークです。11113 自分の画像で small と tiny を並べて試すには、オンライン OCR ツールを使ってください。
Python と CLI でティアを選ぶ方法#
ここが多くの人がつまずくところです。lang と ocr_version で選べるのは medium ティアだけです。PP-OCRv6 の言語であれば、PaddleOCR 3.7 は必ず PP-OCRv6_medium_det + PP-OCRv6_medium_rec を返します。small や tiny を使うには、モデル名を明示的に指定します。6
from paddleocr import PaddleOCR
ocr = PaddleOCR(
text_detection_model_name="PP-OCRv6_small_det", # or PP-OCRv6_tiny_det
text_recognition_model_name="PP-OCRv6_small_rec", # or PP-OCRv6_tiny_rec
use_doc_orientation_classify=False,
use_doc_unwarping=False,
use_textline_orientation=False,
engine="onnxruntime", # optional: fastest CPU engine in our test
)
for res in ocr.predict("receipt.jpg"):
print(res["rec_texts"])paddleocr ocr -i receipt.jpg \
--text_detection_model_name PP-OCRv6_small_det \
--text_recognition_model_name PP-OCRv6_small_rec \
--use_doc_orientation_classify False \
--use_doc_unwarping False \
--use_textline_orientation False \
--engine onnxruntimeモデル名やモデルのディレクトリを渡すと、PaddleOCR は lang と ocr_version を無視し、次の警告をログに出します。6
`lang` and `ocr_version` will be ignored when model names or model directories are not `None`.そのため PaddleOCR(lang="japan", text_recognition_model_name="PP-OCRv6_tiny_rec") は、エラーを出さずに日本語テキストを tiny で処理してしまいます。そのほかの選び方は次のとおりです。
- 以前の世代:
PaddleOCR(ocr_version="PP-OCRv5")はPP-OCRv5_server_det+PP-OCRv5_server_recを読み込みます。ocr_version="PP-OCRv4"はlang="ch"と"en"でのみ動作し、v4 の mobile モデルを読み込みます。それ以外のバージョン文字列はValueErrorになります。6 - その他の文字体系:
PaddleOCR(lang="korean")はPP-OCRv5_server_det+korean_PP-OCRv5_mobile_recを読み込みます。私たちの言語コード検索で、すべてのコードについて使われるモデルを確認できます。 - ブラウザ:PaddleOCR.js は
ocrVersion: "PP-OCRv6"を small ティアに対応付けます。こちらでも tiny を使うにはモデル名の明示が必要です。PaddleOCR.js ガイド (EN) を参照してください。 - PP-StructureV3 の中:既定では今も PP-OCRv5 server でテキストを読み取ります。PP-OCRv6 のモデルを渡すと、私たちの請求書で誤認識していた 3 行が直りました。方法。
コード生成ツール (EN) を使えば、HTTP 版や JavaScript 版も含めてこれらのコードを自動で作成できます。
PP-OCRv6 の対象外の文字体系:PP-OCRv5 の多言語モデル#
PP-OCRv6 が対応するのは中国語、日本語、ラテン文字の言語です。PaddleOCR 3.7 でそれ以外の言語を担当するのは、2025年6月から10月にかけてリリースされた小さな PP-OCRv5 の認識モデルで、PP-OCRv5_server_det 検出モデルと組み合わせて使われます。精度の数値は Baidu によるもので、それぞれ別のテストセットで計測されているため、「前世代比」の列とだけ比べてください。8
| 認識モデル | 読める言語 | 精度 | 前世代比(%) | テスト画像数 |
|---|---|---|---|---|
korean_PP-OCRv5_mobile_rec | 韓国語、英語 | 88.0% | +65.0 | 5,007 |
arabic_PP-OCRv5_mobile_rec | アラビア語、ペルシャ語、ウイグル語、ウルドゥー語、パシュトー語、クルド語、シンド語、バローチー語、英語 | 81.27% | +22.83 | 2,676 |
cyrillic_PP-OCRv5_mobile_rec | キリル文字の 33 言語、英語 | 80.27% | +21.2 | 7,600 |
eslav_PP-OCRv5_mobile_rec | ロシア語、ベラルーシ語、ウクライナ語、英語 | 81.6% | +31.4 | 7,031 |
devanagari_PP-OCRv5_mobile_rec | ヒンディー語、マラーティー語、ネパール語ほか 10 言語、英語 | 84.96% | +68.26 | 3,611 |
th_PP-OCRv5_mobile_rec | タイ語、英語 | 82.68% | – | 4,261 |
el_PP-OCRv5_mobile_rec | ギリシャ語、英語 | 89.28% | – | 2,799 |
ta_PP-OCRv5_mobile_rec | タミル語、英語 | 94.2% | +39.23 | 2,121 |
te_PP-OCRv5_mobile_rec | テルグ語、英語 | 87.65% | +43.47 | 2,478 |
このほかの 2 つの PP-OCRv5 多言語モデル、latin_ と en_PP-OCRv5_mobile_rec は、現在はほぼ PP-OCRv6 に置き換えられています。ただし 3.7 は、PP-OCRv6 が明示的に除外しているパーリ語(pi)にはラテン文字のモデルを読み込みます。6 ka の 1 コードだけは PP-OCRv3 のモデルしかありません。全 112 コードの対応は対応言語のページにあります。
PP-OCRv5 と PP-OCRv6 の比較一覧#
| PP-OCRv5 | PP-OCRv6 | |
|---|---|---|
| リリース | 2025年5月20日(PaddleOCR 3.0) | 2026年6月11日(PaddleOCR 3.7.0) |
| ティア | mobile、server | tiny、small、medium |
| メインモデルの言語 | 簡体字・繁体字中国語、ピンイン、英語、日本語 | 50:中国語(簡体字・繁体字)、英語、日本語、ラテン文字の 46 言語 |
| その他の文字体系 | 個別の多言語認識モデル | なし — v5 の認識モデルにフォールバック |
| Baidu のベンチマーク、rec / det | server 78.1 / 81.6 · mobile 73.7 / 75.2 | medium 83.2 / 86.2 · small 81.3 / 84.1 · tiny 73.5 / 80.6 |
| 私たちのテスト、正確な項目 /124 | server 117 · mobile 117 | medium 123 · small 121 · tiny 111 |
| 3.7 での既定 | PP-StructureV3 のテキストモデル、v6 非対応の言語 | PaddleOCR() |
アップグレードすべきでしょうか。中国語、英語、日本語、ラテン文字のテキストなら、答えは「はい」です。Baidu の数値でも私たちの数値でも、medium と small は v5 server や v5 mobile より正確です。私たちの CPU では、medium は v5 server より速くもありました。small は v5 mobile よりわずかに遅いものの(ONNX Runtime で 0.90 秒対 0.73 秒)、誤りは 4 つ少なくなっています。v5 にとどまるのは、v6 が対応していない文字体系を使う場合か、以前の出力を正確に再現する必要がある場合だけです。111
PP-OCR のバージョン履歴#
- 最初の軽量モデル — "Open source 8.6M lightweight Chinese OCR model"。9
- PP-OCR — 最初に名前の付いたシステム。論文は arXiv:2009.09941(2020年9月21日)。9
- PP-OCRv2 — PaddleOCR 2.3 とともにリリース。arXiv:2109.03144。9
- PP-OCRv3 — PaddleOCR 2.5 とともにリリースされ、6 月に論文 arXiv:2206.03001 が続きました。3.7 でも
lang="ka"に使える認識モデルはこれだけです。9 - PP-OCRv4 — release/2.7、mobile 版と server 版。公式の一覧で論文がない唯一の世代です。9
- PP-OCRv5 — PaddleOCR 3.0 とともにリリース。3.0.1(2025年6月5日)で既定が mobile から server に変わりました。9
- PP-OCRv5 多言語モデル — 3.1.0 でフランス語、スペイン語、ロシア語、韓国語など 37 言語の認識モデル、3.2.0 で英語、タイ語、ギリシャ語、3.3.0 でキリル文字、アラビア文字、デーヴァナーガリー文字、テルグ語、タミル語が追加されました。39
- PP-OCRv6 — tiny、small、medium の 3 ティア、1 つのモデルで 50 言語。PaddleOCR 3.7.0 で既定に。論文は arXiv:2606.13108。39
モデルの世代ではなくパッケージのリリースについては PaddleOCR のリリース (EN) を、古い 2.x のコードを 3.x の API に移行するには移行ガイドをご覧ください。
公式資料どうしの食い違い#
このページの数値をすべて確認する中で、次の食い違いが見つかりました。どちらかを選ぶ必要がある場合は、ソースコードか実際のファイルに従いました。
- 「GPU 推論 2.37 倍高速化」。PP-OCRv6 のドキュメントは冒頭の段落で medium について PP-OCRv5 server 比でこう主張していますが、同じドキュメントの速度表では A100 で 0.29 秒対 0.32 秒(ドキュメント自身が "1.1× faster" と書いています)で、V100 の PaddlePaddle と TensorRT では medium のほうが遅くなっています。2.37 倍を裏付ける表は見つかりませんでした。README は別の数値(OpenVINO を使った CPU で 5.2 倍、Apple M4 の tiny で 6.1 倍)を挙げています。13
- 48 言語か 50 言語か。英語版のドキュメントと認識モデルのカードは 50 としています。Hugging Face の 3 つの検出モデルのカードは "Supports 48 languages" で、中国語版のドキュメントは 48 とする箇所と 50 とする箇所があります。コードが受け付ける PP-OCRv6 のコードは 52 個で、そのうち 2 つ(
french、german)は別名なので、50 言語です。256 - モデルサイズ。PP-OCRv5_server_det はモジュールのドキュメントでは 84.3 MB、
model_list.mdでは 101 MB で、ファイルの合計は 84.24 MiB です。ch_RepSVTR_rec は 1 つのドキュメントで 22.1 MB、ほかの 2 つで 48.8 MB です。韓国語、ラテン文字、東スラブ語の v5 認識モデルはいずれも 14 MB と記載されていますが、ファイルは 13.0、7.8、7.7 MiB です。公表されている「MB」は実質的に MiB です。上で示したディスク上の数値はモデルフォルダー全体を 10 進の MB で表したものなので、数パーセント大きくなります。4510 - 同じモデルでスコアが異なる。PP-OCRv5_server_rec は、どのドキュメントを読むかによって 86.38%、0.8401、78.1% になります。3 つの異なるベンチマークです(上の注意を参照)。48
- PP-OCRv5 の多言語対応は 106 言語か 109 言語か。v5 の多言語のドキュメントは 106、2025年10月のリリース後の README は 109 としています。38
- PP-OCRv6 の行がない。
model_list.mdでは PP-OCRv6 の精度、レイテンシ、サイズが "-" で、標準の T4 レイテンシ表でも PP-OCRv6 は "- / -" です。410
ほかの食い違いを見つけた場合や、これらが上流で修正された場合は、hello@paddleocr.dev までメールでお知らせください。
よくある質問#
PP-OCRv6 とは何ですか?
PP-OCRv6 は PaddleOCR のテキスト検出・文字認識モデルの第 6 世代で、2026年6月11日に PaddleOCR 3.7.0 とともにリリースされました。tiny(パラメータ数 1.5M)、small(7.7M)、medium(34.5M)の 3 つのティアがあり、small と medium の認識モデルは 1 つのモデルで 50 言語を読み取ります。PaddleOCR 3.7 の既定は medium です。
PaddleOCR v6 はありますか?
パッケージとしてはありません。paddleocr の最新リリースは 3.7.0 です。「v6」は、3.7.0 が既定で使う PP-OCRv6 というモデルの世代を指します。pip install paddleocr==3.7.0 で PP-OCRv6 が使えます。
PaddleOCR のモデルのサイズはどれくらいですか?
検出と認識の合計で、PP-OCRv6 tiny は 6.3 MB、small は 30.0 MB、medium は 132.7 MB です(公表サイズ)。PP-OCRv5 mobile は 20.7 MB、PP-OCRv5 server は 165.3 MB です。ダウンロードしたモデルフォルダーをディスク上で計測すると、6.6、31.6、139.2、22.1、173.6 MB(10 進)でした。私たちの CPU で実行したときのプロセスのピークメモリは、PaddlePaddle で約 1.3 GB(tiny)から 3.5 GB(v5 server)でした。
PP-OCRv6 は PP-OCRv5 より優れていますか?
中国語、英語、日本語、ラテン文字のテキストなら、はい。Baidu のベンチマークでは、medium の認識精度は 83.2% で、PP-OCRv5 server は 78.1% です。私たちの 5 つのテスト文書では、medium が 124 項目中 123 項目を正確に読み取ったのに対し、v5 server は 117 項目で、CPU では medium のほうが速くもありました。PP-OCRv6 は韓国語、アラビア文字、キリル文字、デーヴァナーガリー文字、タイ語、ギリシャ語、タミル語、テルグ語には対応しておらず、これらは今も PP-OCRv5 のモデルを使います。
medium の代わりに PP-OCRv6 の small や tiny を使うには?
両方のモデル名を渡します:PaddleOCR(text_detection_model_name="PP-OCRv6_small_det", text_recognition_model_name="PP-OCRv6_small_rec")。CLI でも同じフラグを使います。lang と ocr_version で選べるのは medium だけです。
PP-OCRv6 tiny は日本語に対応していますか?
いいえ。辞書にひらがなもカタカナもありません。私たちのテストでは、日本語の掲示で文字誤り率が 47.3% になりました。警告は一切出ず、信頼度スコアもほとんどが 0.7 を超えていました。日本語には small か medium を使ってください。
PP-OCRv5 や PP-OCRv4 に戻すには?
v5 の server モデルなら PaddleOCR(ocr_version="PP-OCRv5") を、v4 の mobile モデルなら lang="ch" または "en" とともに ocr_version="PP-OCRv4" を使います。CLI では paddleocr ocr -i img.png --ocr_version PP-OCRv5 です。
PP-OCRv6 に GPU は必要ですか?
いいえ。GPU なしの 4 vCPU の Xeon で、ONNX Runtime を使うと small は 1 ページ平均 0.9 秒、medium は 2.9 秒でした。Baidu の A100 の数値は、画像 1 枚あたり 0.25 秒と 0.29 秒です。
出典
- PP-OCRv6 アルゴリズムのドキュメント(英語)— ティア、50 言語、アーキテクチャ、検出・認識の表、エンドツーエンドの速度表:docs/version3.x/algorithm/PP-OCRv6/PP-OCRv6.en.md(3〜123 行目、リポジトリのコミット dab3fe3)。
- PP-OCRv6 アルゴリズムのドキュメント(中国語)— tiny が日本語を除外する理由(138 行目)、「48 言語」という記述(65 行目)、カテゴリ別の改善幅(107 行目):PP-OCRv6.md。
- PaddleOCR の README — 2026.06.11 の 3.7.0 リリース、ティアごとの合計 "tiny (1.5M) / small (7.7M) / medium (34.5M)"、3.3.0 の多言語リリース:README.md(71〜131 行目)。
- モジュールのドキュメント — モデルサイズ、PP-OCRv5/v4 のモジュール表(NVIDIA T4 / Intel Xeon Gold 6271C)、エンジン別の処理時間:text_detection.en.md と text_recognition.en.md。
- PaddlePaddle/PP-OCRv6_{tiny,small,medium}_{det,rec} の Hugging Face モデルカードとファイル一覧 — パラメータ数、検出モデルのカードにある "Supports 48 languages"、ファイルサイズ、
inference.yml内の辞書。2026-10-27 取得。 - PaddleOCR 3.7.0 のソースコード paddleocr/_pipelines/ocr.py — v6 の言語セット(58〜62 行目)、モデル名による上書きと警告(102〜127 行目)、
_get_ocr_model_names(318〜422 行目)、CLI フラグ(434〜565 行目)。PyPI の 3.7.0 wheel とバイト単位で同一。 - OCR パイプラインのドキュメント —
ocr_versionごとに対応するlang、tiny と日本語に関する注記(2862 行目):OCR.en.md。 - PP-OCRv5 のドキュメント — PP-OCRv5.en.md と PP-OCRv5_multi_languages.en.md(多言語モデルごとの精度は 154〜179 行目、言語一覧は 244〜256 行目)。
- リリース履歴 — docs/update/update.en.md、docs/papers.en.md、docs/index/index.en.md(PP-OCRv4、58〜60 行目)。
- docs/version3.x/model_list.md — 別のサイズの数値(PP-OCRv5_server_det 101 MB、ch_RepSVTR_rec 48.8 MB)と、PP-OCRv6 の行の "-"。
- paddleocr.dev ベンチマーク、2026-10-27:Linux x86-64、4 vCPU の Intel Xeon @ 2.10 GHz、15 GB RAM、GPU なし、Python 3.13、paddleocr 3.7.0、paddlex 3.7.2、paddlepaddle 3.2.0 または onnxruntime 1.31.1。5 文書、既知のテキスト 124 項目、ウォームアップ後 3 回の中央値。文書の前処理とテキスト行の向き分類はオフ。生データ:
results.jsonlとsummary.json。方法 (EN)。 - paddleocr.dev による、日本語の掲示での PP-OCRv6 tiny の再実行、2026-10-27(ONNX Runtime エンジン、同じマシン)。出力テキストはそのまま引用。辞書のサイズは、各モデルの Hugging Face の
inference.ymlから私たちが数えたもの。 - クロスプラットフォームのデプロイ:PaddleOCR.js のソースコード(
paddleocr-js/packages/core/src/pipelines/ocr/shared.ts、PP-OCRv6→ small)、iOS デプロイのドキュメント(プリセット、既定は small)、Android デプロイのドキュメント。 - paddleocr.dev、2026-10-28:きれいなレシート画像に対する
PaddleOCR(lang="korean")(PP-OCRv5_server_det + korean_PP-OCRv5_mobile_rec)、同じマシン、ウォームアップ後 3 回の中央値:onnxruntime 1.31.1 で 12.35 s、paddlepaddle 3.2.0 で 1.80 s。全モデルの項目ごとの誤認識は /benchmarks (EN) に掲載。