はじめに

クイックスタートと APIインストールオンライン OCRCode generator (EN)

モデルとパイプライン

PP-OCRv6 モデル対応言語PP-StructureV3PaddleOCR-VL

デプロイと連携

Serving & API (EN)PaddleOCR.js (EN)MCP server (EN)

トラブル対応と移行

トラブルシューティング2.x からの移行Releases (EN)

評価

Our benchmark (EN)Compare OCR tools (EN)License & cost (EN)

ツール

オンライン OCRインストールコマンド生成Code generator (EN)エラー解決ツール2.x → 3.x 変換言語コード検索

言語

English简体中文日本語オンラインで OCR
リファレンス + 無料ツール

PaddleOCR 対応言語:全 lang コードと読み込まれるモデル

PaddleOCR 3.7 が受け付ける lang コードは 112 個です。中国語・英語・日本語と 46 のラテン文字言語、計 50 言語は 1 つの PP-OCRv6 モデルで読み取ります。韓国語、アラビア文字、キリル文字、デーヴァナーガリー文字、タイ語、ギリシャ語、タミル語、テルグ語は PP-OCRv5 のモデルにフォールバックします。下で言語を検索すると、コード、モデル、コピーして使える Python 1 行が表示されます。

PaddleOCR 3.7.0 で確認済み更新日 11 分で読めますブラウザ内で実行
このページの内容
  1. lang コードを調べる
  2. PaddleOCR が lang からモデルを選ぶ仕組み
  3. ValueError になるコード
  4. 文字の種類別の対応状況
  5. PP-OCRv6 以外の言語の速度とサイズ
  6. 複数言語が混在する文書
  7. ブラウザで使える言語
  8. 公式の言語リストの誤り
  9. 全 112 個の lang コード
  10. よくある質問

結論:ISO コードではなく、PaddleOCR 独自のコードを渡します — ch、chinese_cht、japan、korean、en、fr、ar、hi、ru… 中国語・英語・日本語と 46 のラテン文字言語なら、lang の指定自体が不要です。デフォルトの PP-OCRv6 モデルが 50 言語すべてを読み取り、lang="fr" を渡してもまったく同じモデルが読み込まれます。それ以外の文字では、lang を指定することで PaddleOCR が正しい PP-OCRv5 認識モデルを読み込みます。1

lang コードを調べる#

日本語名、英語名、現地語の名前、ISO コード、文字の種類で検索できます。各結果には、PaddleOCR 3.7 が受け付けるコード、読み込まれる 2 つのモデル、ブラウザで動くかどうか、コピーして使える Python 1 行が表示されます。en + fr や韓国語と英語のように、2 つの言語をまとめて調べることもできます。

言語コード検索#

ブラウザ内で実行
文字
この検索ツールには JavaScript が必要です。すべてのコードは一覧表にも掲載しています。

PaddleOCR が lang からモデルを選ぶ仕組み#

PaddleOCR 3.7 の lang パラメータの役割は 1 つだけです。検出モデルと認識モデルを選ぶことです。処理は _get_ocr_model_names() にあり、次の順で判定されます。1

  1. lang も ocr_version も指定しない#

    PP-OCRv6_medium_det + PP-OCRv6_medium_rec が読み込まれ、50 言語を読み取れます。

  2. PP-OCRv6 の対応言語#

    ch、chinese_cht、en、japan、および pi を除くすべてのラテン文字のコード(52 コード、50 言語 — french と german は fr と de の別名)。どれもデフォルトと同じ 2 つの medium モデルを読み込みます。

  3. それ以外の対応文字#

    韓国語、タイ語、ギリシャ語、テルグ語、タミル語と、アラビア文字・東スラブ語・キリル文字・デーヴァナーガリー文字のグループ、さらにパーリ語(Pali)は、PP-OCRv5_server_det と文字ごとの *_PP-OCRv5_mobile_rec を使います(59 コード)。

  4. ka#

    いまも PP-OCRv3 が使われる唯一のコードです:PP-OCRv3_mobile_det + ka_PP-OCRv3_mobile_rec。

  5. それ以外の値#

    PaddleOCR() は ValueError: No models are available for lang='…' and ocr_version=None. を発生させます。

PaddleOCR 3.7 で各 lang コードが読み込むモデル

自動選択される認識モデルごとの lang コード数(全 112 コード)。バーにカーソルを合わせると該当するコードが表示されます。

認識モデルlang コード
PP-OCRv6 medium(統合モデル)52
PP-OCRv5 キリル文字30
PP-OCRv5 デーヴァナーガリー13
PP-OCRv5 アラビア文字7
PP-OCRv5 東スラブ3
PP-OCRv3 ka(カンナダ語?)1
PP-OCRv5 ギリシャ語1
PP-OCRv5 韓国語1
PP-OCRv5 ラテン文字(パーリ語のみ)1
PP-OCRv5 タミル語1
PP-OCRv5 テルグ語1
PP-OCRv5 タイ語1
paddleocr.dev。PaddleOCR 3.7.0 の paddleocr/_pipelines/ocr.py にある _get_ocr_model_names() から生成。

公式ドキュメントには明記されていない結果が 3 つあります。

  • PP-OCRv6 の対応言語では、lang を指定しても何も変わりません。PaddleOCR(lang="fr")、PaddleOCR(lang="en")、PaddleOCR() は同じモデルを読み込み、同じ結果を返します。18
  • lang で PP-OCRv6 の small や tiny が選ばれることはありません。使うには text_detection_model_name と text_recognition_model_name を指定します。この場合、PaddleOCR は警告を出して lang を無視します。ティアの選び方を参照してください。1
  • lang と ocr_version を組み合わせると、旧モデルが読み込まれます。ocr_version="PP-OCRv5" では、en は英語専用の en_PP-OCRv5_mobile_rec を、fr は latin_PP-OCRv5_mobile_rec を読み込みます。PP-OCRv4 が対応するのは ch と en だけで、PP-OCRv3 は 110 コード(th と el 以外のすべて)に対応します。1

ValueError になるコード#

PaddleOCR のコードは独自のものです。ISO 639-1 と一致するもの(fr、ar、hi)もありますが、一致しないものも多くあります。以下のコードを 3.7.0 の PaddleOCR(lang=…) で 1 つずつ試したところ、すべて ValueError: No models are available for lang=… で失敗しました。最初の 6 つは公式の PP-OCRv5 言語リストにそのまま載っているコードです。348

指定したコード代わりに使うコード誤ったコードの出どころ
srrs_cyrillic または rs_latin公式の PP-OCRv5 リスト
rslatinrs_latin公式の PP-OCRv5 リスト
ababq公式の PP-OCRv5 ドキュメント(「Abkhaz」)。コード側の abq は、OCR ドキュメントでは Abaza とされています
avava(アヴァル語)公式の PP-OCRv5 ドキュメント
ceche(チェチェン語)公式の PP-OCRv5 ドキュメント
lkilbe(ラク語)公式の PP-OCRv5 ドキュメント
zhch または chinese_chtISO 639-1 の習慣
ja、jpjapanISO コード/国コードの習慣
ko、krkoreanISO コード/国コードの習慣
knka(ka の問題を参照)カンナダ語の ISO コード
"en+fr"、"en,fr"コードを 1 つだけ、または指定なしlang に渡せるコードは 1 つだけです — 複数言語が混在する文書を参照

文字の種類別の対応状況#

中国語と日本語#

簡体字の中国語には ch、繁体字には chinese_cht、日本語には japan を使います。あるいは何も指定しなくてもかまいません。デフォルトの PP-OCRv6 モデルは、この 3 つと英語をすべて読み取ります。Baidu 社内のベンチマークでは、日本語の認識精度は PP-OCRv6 medium が 90.5%、PP-OCRv5 server が 73.7% です。5私たちのテストでも、medium と small は日本語の掲示と中国語+英語の掲示を全行正しく読み取りました。9

PP-OCRv6 tiny は日本語を読めません。認識辞書にかなが含まれておらず、私たちの日本語の掲示では警告なしに文字誤り率 47.3% となりました。lang="japan" は常に medium を読み込むため、この問題が起きるのは自分で tiny を選んだ場合だけです。実際の出力を見る。

英語、フランス語、ドイツ語、スペイン語などのラテン文字言語#

46 のラテン文字言語と英語は、すべて同じ PP-OCRv6 モデルで読み取ります:アフリカーンス語、アルバニア語、アゼルバイジャン語、バスク語、ボスニア語、カタルーニャ語、クロアチア語、チェコ語、デンマーク語、オランダ語、エストニア語、フィンランド語、フランス語、ガリシア語、ドイツ語、ハンガリー語、アイスランド語、インドネシア語、アイルランド語、イタリア語、クルド語、ラテン語、ラトビア語、リトアニア語、ルクセンブルク語、マレー語、マルタ語、マオリ語、ノルウェー語、オック語、ポーランド語、ポルトガル語、ケチュア語、ルーマニア語、ロマンシュ語、セルビア語(ラテン文字)、スロバキア語、スロベニア語、スペイン語、スワヒリ語、スウェーデン語、タガログ語、トルコ語、ウズベク語、ベトナム語、ウェールズ語。12注意点が 2 つあります。

  • パーリ語(pi)はラテン文字のリストに含まれていますが、PP-OCRv6 からは明示的に除外されているため、代わりに latin_PP-OCRv5_mobile_rec を読み込みます。ocr_version="PP-OCRv6" を指定して lang="pi" を渡すと ValueError になります。1
  • クルド語(ku)はラテン文字とアラビア文字の両方のリストに含まれています。ラテン文字の判定が先に行われるため、lang="ku" は常にラテン文字の PP-OCRv6 モデルになります。アラビア文字のクルド語には、text_recognition_model_name="arabic_PP-OCRv5_mobile_rec" を自分で指定してください。12

韓国語#

lang="korean" は korean_PP-OCRv5_mobile_rec を読み込みます。Baidu によると、このモデルは韓国語と英語を読み取り、5,007 枚の韓国語テストセットで精度 88.0%、前世代から 65.0% 向上(Baidu の表現)としています。4PP-OCRv6 は韓国語に対応しておらず、PaddleOCR.js も同様です。

pythonkorean.py
from paddleocr import PaddleOCR

ocr = PaddleOCR(lang="korean")   # PP-OCRv5_server_det + korean_PP-OCRv5_mobile_rec
print(ocr.predict("menu_ko.jpg")[0]["rec_texts"])

アラビア語、ペルシア語、ウルドゥー語などのアラビア文字言語#

ar、fa、ur、ug、ps、sd、bal の 7 コードは arabic_PP-OCRv5_mobile_rec を読み込みます。Baidu は 2,676 枚のテストセットで精度 81.27%(前世代から 22.83% 向上)と報告しており、アラビア語、ペルシア語、ウイグル語、ウルドゥー語、パシュトー語、クルド語、シンド語、バローチー語、英語を読み取るモデルとしています。4アラビア文字の文書はまだ私たち自身では検証していないため、右から左に書く文書では、使う前に rec_texts の並び順を自分のページで確認してください。

ロシア語、ウクライナ語などのキリル文字言語#

ロシア語(ru)、ウクライナ語(uk)、ベラルーシ語(be)は東スラブ語モデル eslav_PP-OCRv5_mobile_rec(7,031 枚で 81.6%)を読み込みます。残りの 30 のキリル文字のコード — ブルガリア語、セルビア語(rs_cyrillic)、マケドニア語、カザフ語、キルギス語、モンゴル語、タタール語、チェチェン語など — は cyrillic_PP-OCRv5_mobile_rec(7,600 枚で 80.27%)を読み込みます。14

ヒンディー語、マラーティー語、ネパール語などのデーヴァナーガリー文字言語#

devanagari_PP-OCRv5_mobile_rec を読み込むのは 13 コードです:hi(ヒンディー語)、mr(マラーティー語)、ne(ネパール語)、sa(サンスクリット語)、bh、bho、mai、mah、new、gom、bgc、ang、sck。Baidu は 3,611 枚で精度 84.96%、前世代から 68.26% 向上と報告しています。4ドキュメントでは 2 つの名称が食い違っています。ang は言語表では「Old English」、モデルの言語リストでは「Angika」、sck は一方で「Sadri」、もう一方で「Santali」です。34

pythonhindi.py
from paddleocr import PaddleOCR

ocr = PaddleOCR(lang="hi")   # PP-OCRv5_server_det + devanagari_PP-OCRv5_mobile_rec

タイ語、ギリシャ語、タミル語、テルグ語#

それぞれ専用の PP-OCRv5 認識モデルがあり、英語も読み取れます:th(82.68%)、el(89.28%)、ta(94.2%)、te(87.65%)。Baidu の言語別テストセット(2,121〜4,261 枚)での値です。4

ka の問題:ジョージア語か、カンナダ語か#

OCR パイプラインのドキュメントでは、ka はジョージア語とされています。ところが、このコードで読み込まれる唯一のモデル ka_PP-OCRv3_mobile_rec は、同じドキュメントの別の 2 か所でカンナダ語のモデルとして説明されています。文字も異なる、別の言語です。36どちらの言語にも PP-OCRv5/v6 のモデルはありません。資料からは判断できなかったため、ジョージア語やカンナダ語に使う前に、お手元の文書のサンプルで lang="ka" を試してください。

PP-OCRv6 以外の言語の速度とサイズ#

PP-OCRv5 の言語ルートはすべて、小さな文字別の認識モデルと大きな PP-OCRv5_server_det 検出モデル(ドキュメントでは 84.3 MB)の組み合わせです。認識モデル自体は小さく、Baidu は 2025 年 10 月のモデル群を「only 2M parameters」と説明しています。そのため CPU では処理の大半を検出モデルが占めます。410

これは ONNX Runtime を使う場合に問題になります。私たちのベンチマークでは、PP-OCRv5 server パイプラインは ONNX Runtime で 1 ページ平均 35.7 秒、PaddlePaddle 3.2.0 では 5.2 秒でした。lang="korean" でもレシート画像(韓国語モデルが読み取れるとされている英語のテキスト)を使って再確認したところ、1 枚あたり ONNX Runtime で 12.35 秒、PaddlePaddle で 1.80 秒でした。ウォーム状態で 3 回実行した中央値で、出力はどちらも同じ 27 行です。11韓国語の認識モデルは小さな mobile モデルなので、遅さの原因は ONNX Runtime 上の server 検出モデルにあると考えられます。PP-OCRv6 では、どのティアでも ONNX Runtime のほうが速かったのとは逆の結果です。

CPU で韓国語、アラビア文字、キリル文字、デーヴァナーガリー文字、タイ語、ギリシャ語、タミル語、テルグ語を使うときは、PaddlePaddle エンジンで実行してください(paddlepaddle==3.2.0。インストールを参照)。engine="onnxruntime" に切り替える前に、必ずベンチマークを取ってください。エンジン別の全結果はベンチマーク (EN) にあります。

複数言語が混在する文書#

1 つの PaddleOCR インスタンスが使う認識モデルは 1 つです。lang に渡せるのはコード 1 つだけで、"en+fr" や "en,fr" のような文字列は ValueError になります。8どうするかは、言語の組み合わせによって変わります。

文書に混在する言語対処法
英語+フランス語(またはラテン文字言語どうし)PaddleOCR() または PaddleOCR(lang="fr") — 同じ PP-OCRv6 モデルで両方を読み取れます。
中国語または日本語+英語PaddleOCR()。PP-OCRv6 は CJK とラテン文字を 1 回で読み取ります。私たちの中国語+英語の掲示では 10/10 行が完全一致しました。9
韓国語、アラビア語、ヒンディー語、ロシア語、タイ語など+英語その文字のコードを使います(lang="korean"、"ar"、"hi"…)。これらの認識モデルはどれも英語も読み取れるとされています。4
PP-OCRv6 の対象外の非ラテン文字 2 種類(例:韓国語+ロシア語)、または中国語+韓国語文字ごとにインスタンスを 1 つずつ実行し、結果をまとめます — 下記参照。

最後のケースでは、同じ画像に両方のパイプラインを実行し、テキスト領域ごとに rec_scores の高いほうの行を採用する方法があります。これは私たちの提案で、ベンチマークは取っていません。知らない文字を読んだ認識モデルが、自信満々に誤った結果を返すこともあります。PP-OCRv6 tiny で日本語を読んだ例がその一例です。

pythontwo_scripts.py
from paddleocr import PaddleOCR

common = dict(use_doc_orientation_classify=False, use_doc_unwarping=False,
              use_textline_orientation=False)
ko = PaddleOCR(lang="korean", **common)   # korean_PP-OCRv5_mobile_rec
ru = PaddleOCR(lang="ru", **common)       # eslav_PP-OCRv5_mobile_rec

a = ko.predict("sign.jpg")[0]
b = ru.predict("sign.jpg")[0]
for name, r in (("korean", a), ("russian", b)):
    for text, score, box in zip(r["rec_texts"], r["rec_scores"], r["rec_boxes"]):
        print(name, round(score, 3), box.tolist(), text)

GPU があり、複数の文字が混在するページが大量にあるなら、PaddleOCR-VL という選択肢もあります。Baidu によると、1 つの視覚言語モデルで 109 言語に対応しています。10

ブラウザで使える言語#

公式のブラウザ向け SDK である PaddleOCR.js には、PP-OCRv6 small、PP-OCRv6 tiny、PP-OCRv5 mobile の 3 つのモデルセットが含まれています。7

  • ocrVersion: "PP-OCRv6" は PP-OCRv6 small を読み込み、ch、chinese_cht、en、japan と pi 以外のラテン文字のコードを受け付けます。Python と同じ 50 言語です。
  • ocrVersion: "PP-OCRv5" が受け付けるのは ch、chinese_cht、en、japan だけです。それ以外のコードでは Unsupported lang/ocrVersion combination がスローされます。
  • tiny には lang の対応付けがなく、モデル名で読み込みます。また、日本語は読めません。

韓国語、アラビア文字、キリル文字、デーヴァナーガリー文字、タイ語、ギリシャ語、タミル語、テルグ語は、現時点では Python でしか使えません。私たちのオンライン OCR ツールは PaddleOCR.js を使っているため、読み取れるのは PP-OCRv6 の対応言語だけです。上の検索ツールでは、言語ごとにその区別を表示しています。組み込み方の詳細は PaddleOCR.js ガイド (EN) にあります。

公式の言語リストの誤り#

ドキュメントを langs.py と ocr.py と比較しました。実際に動くのはコードなので、このページの検索ツールと一覧表はコードに従っています。

  • OCR パイプラインのドキュメントにある PP-OCRv5 のリストには、コードが受け付けない rslatin、sr、ab、av、ce、lki が含まれ、受け付ける french、german、abq、ava、che、lbe、rs_latin、rs_cyrillic が抜けています。3
  • PP-OCRv5 のドキュメントでは ab を Abkhaz(アブハズ語)と呼んでいますが、コードが受け付ける abq は OCR ドキュメントで Abaza(アバザ語)とされています。別の 2 つの言語です。34
  • ka は、ある表ではジョージア語、モデルの説明ではカンナダ語です(上記)。
  • OCR ドキュメントの「Supported Languages」表は 81 行ですが、コードは 112 コードを受け付けます。表に載っていないのは、タイ語、ギリシャ語、カタルーニャ語、バスク語、フィンランド語、ガリシア語、ルクセンブルク語、ロマンシュ語、ケチュア語、パシュトー語、シンド語、バローチー語と、カザフ語、キルギス語、タジク語、マケドニア語、タタール語を含む 18 のキリル文字言語です。3
  • ドキュメントの PP-OCRv3 のリストには、コード上は PP-OCRv3 のモデルに振り分けられる 27 コードが載っていません。たとえば kk → cyrillic_PP-OCRv3_mobile_rec です。13
  • 言語数の表記もばらばらです。PP-OCRv5 の多言語モデルは、自身のドキュメントでは「106 languages」、README では「109 languages」です。410

全 112 個の lang コード#

英語の言語名順に並べています。「認識モデル」は、lang だけを渡したときに PaddleOCR 3.7.0 が読み込むモデルです。検出モデルは、PP-OCRv6 の行では PP-OCRv6_medium_det、PP-OCRv5 の行では PP-OCRv5_server_det、ka では PP-OCRv3_mobile_det です。「v6 tiny」は PP-OCRv6 tiny がその言語を読めるかどうか、「ブラウザ」は PaddleOCR.js と私たちのオンラインツールが読めるかどうかを示します。3.7.0 のソースコードから生成しており、検索ツールも同じデータを使っています。12

PaddleOCR 3.7.0 が受け付ける全 112 個の lang コード
言語英語名lang=認識モデル(3.7)v6 tinyブラウザ文字
アバザ語Abazaabqcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
アディゲ語Adygheadycyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
アフリカーンス語AfrikaansafPP-OCRv6_medium_recはいはいラテン文字
アルバニア語AlbaniansqPP-OCRv6_medium_recはいはいラテン文字
アラビア語Arabicararabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
アヴァル語Avaricavacyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
アゼルバイジャン語AzerbaijaniazPP-OCRv6_medium_recはいはいラテン文字
バローチー語Balochibalarabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
バシキール語Bashkirbacyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
バスク語BasqueeuPP-OCRv6_medium_recはいはいラテン文字
ベラルーシ語Belarusianbeeslav_PP-OCRv5_mobile_rec対象外いいえキリル文字
ボージプリー語Bhojpuribhodevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
ビハール語Biharibhdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
ボスニア語BosnianbsPP-OCRv6_medium_recはいはいラテン文字
ブルガリア語Bulgarianbgcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
ブリヤート語Buriatbuacyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
カタルーニャ語CatalancaPP-OCRv6_medium_recはいはいラテン文字
チェチェン語Chechenchecyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
中国語(簡体字)Chinese (Simplified)chPP-OCRv6_medium_recはいはい漢字(簡体字)
中国語(繁体字)Chinese (Traditional)chinese_chtPP-OCRv6_medium_recはいはい漢字(繁体字)
チュヴァシ語Chuvashcvcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
クロアチア語CroatianhrPP-OCRv6_medium_recはいはいラテン文字
チェコ語CzechcsPP-OCRv6_medium_recはいはいラテン文字
デンマーク語DanishdaPP-OCRv6_medium_recはいはいラテン文字
ダルギン語Dargwadarcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
オランダ語DutchnlPP-OCRv6_medium_recはいはいラテン文字
英語EnglishenPP-OCRv6_medium_recはいはいラテン文字
エストニア語EstonianetPP-OCRv6_medium_recはいはいラテン文字
フィンランド語FinnishfiPP-OCRv6_medium_recはいはいラテン文字
フランス語FrenchfrPP-OCRv6_medium_recはいはいラテン文字
フランス語FrenchfrenchPP-OCRv6_medium_recはいはいラテン文字
ガリシア語GalicianglPP-OCRv6_medium_recはいはいラテン文字
ジョージア語Georgiankaka_PP-OCRv3_mobile_rec対象外いいえカンナダ文字またはジョージア文字(ドキュメントで記載が異なる)
ドイツ語GermandePP-OCRv6_medium_recはいはいラテン文字
ドイツ語GermangermanPP-OCRv6_medium_recはいはいラテン文字
ギリシャ語Greekelel_PP-OCRv5_mobile_rec対象外いいえギリシャ文字
ハリヤーンウィー語Haryanvibgcdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
ヒンディー語Hindihidevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
ハンガリー語HungarianhuPP-OCRv6_medium_recはいはいラテン文字
アイスランド語IcelandicisPP-OCRv6_medium_recはいはいラテン文字
インドネシア語IndonesianidPP-OCRv6_medium_recはいはいラテン文字
イングーシ語Ingushinhcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
アイルランド語IrishgaPP-OCRv6_medium_recはいはいラテン文字
イタリア語ItalianitPP-OCRv6_medium_recはいはいラテン文字
日本語JapanesejapanPP-OCRv6_medium_recいいえsmall のみ日本語(漢字・かな)
カバルド語Kabardiankbdcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
カルムイク語Kalmykxalcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
カラカルパク語Karakalpakkaacyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
カザフ語Kazakhkkcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
コミ語Komikvcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
コンカニ語Konkanigomdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
韓国語Koreankoreankorean_PP-OCRv5_mobile_rec対象外いいえハングル
クルド語KurdishkuPP-OCRv6_medium_recはいはいラテン文字
キルギス語Kyrgyzkycyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
ラク語Laklbecyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
ラテン語LatinlaPP-OCRv6_medium_recはいはいラテン文字
ラトビア語LatvianlvPP-OCRv6_medium_recはいはいラテン文字
レズギ語Lezghianlezcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
リトアニア語LithuanianltPP-OCRv6_medium_recはいはいラテン文字
ルクセンブルク語LuxembourgishlbPP-OCRv6_medium_recはいはいラテン文字
マケドニア語Macedonianmkcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
マガヒー語Magahimahdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
マイティリー語Maithilimaidevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
マレー語MalaymsPP-OCRv6_medium_recはいはいラテン文字
マルタ語MaltesemtPP-OCRv6_medium_recはいはいラテン文字
マオリ語MaorimiPP-OCRv6_medium_recはいはいラテン文字
マラーティー語Marathimrdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
マリ語Marimhrcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
モルドバ語Moldovanmocyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
モンゴル語Mongolianmncyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
ネパール語Nepalinedevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
ネワール語Newarinewdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
ノルウェー語NorwegiannoPP-OCRv6_medium_recはいはいラテン文字
オック語OccitanocPP-OCRv6_medium_recはいはいラテン文字
古英語Old Englishangdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
オセット語Ossetianoscyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
パーリ語Palipilatin_PP-OCRv5_mobile_rec対象外いいえラテン文字
パシュトー語Pashtopsarabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
ペルシア語Persianfaarabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
ポーランド語PolishplPP-OCRv6_medium_recはいはいラテン文字
ポルトガル語PortugueseptPP-OCRv6_medium_recはいはいラテン文字
ケチュア語QuechuaquPP-OCRv6_medium_recはいはいラテン文字
ルーマニア語RomanianroPP-OCRv6_medium_recはいはいラテン文字
ロマンシュ語RomanshrmPP-OCRv6_medium_recはいはいラテン文字
ロシア語Russianrueslav_PP-OCRv5_mobile_rec対象外いいえキリル文字
サドリ語Sadrisckdevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
サハ語Sakhasahcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
サンスクリット語Sanskritsadevanagari_PP-OCRv5_mobile_rec対象外いいえデーヴァナーガリー文字
セルビア語(キリル文字)Serbian (Cyrillic)rs_cyrilliccyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
セルビア語(ラテン文字)Serbian (Latin)rs_latinPP-OCRv6_medium_recはいはいラテン文字
シンド語Sindhisdarabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
スロバキア語SlovakskPP-OCRv6_medium_recはいはいラテン文字
スロベニア語SlovenianslPP-OCRv6_medium_recはいはいラテン文字
スペイン語SpanishesPP-OCRv6_medium_recはいはいラテン文字
スワヒリ語SwahiliswPP-OCRv6_medium_recはいはいラテン文字
スウェーデン語SwedishsvPP-OCRv6_medium_recはいはいラテン文字
タバサラン語Tabassarantabcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
タガログ語TagalogtlPP-OCRv6_medium_recはいはいラテン文字
タジク語Tajiktgcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
タミル語Tamiltata_PP-OCRv5_mobile_rec対象外いいえタミル文字
タタール語Tatarttcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
テルグ語Telugutete_PP-OCRv5_mobile_rec対象外いいえテルグ文字
タイ語Thaithth_PP-OCRv5_mobile_rec対象外いいえタイ文字
トルコ語TurkishtrPP-OCRv6_medium_recはいはいラテン文字
トゥヴァ語Tuviniantyvcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
ウドムルト語Udmurtudmcyrillic_PP-OCRv5_mobile_rec対象外いいえキリル文字
ウクライナ語Ukrainianukeslav_PP-OCRv5_mobile_rec対象外いいえキリル文字
ウルドゥー語Urduurarabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
ウイグル語Uyghurugarabic_PP-OCRv5_mobile_rec対象外いいえアラビア文字
ウズベク語UzbekuzPP-OCRv6_medium_recはいはいラテン文字
ベトナム語VietnameseviPP-OCRv6_medium_recはいはいラテン文字
ウェールズ語WelshcyPP-OCRv6_medium_recはいはいラテン文字

よくある質問#

PaddleOCR はいくつの言語に対応していますか?

PaddleOCR 3.7.0 が受け付ける lang コードは 112 個です。デフォルトの PP-OCRv6 モデルは 50 言語(別名の french と german を含めて 52 コード)を読み取ります。59 コードは PP-OCRv5 の多言語モデルを、1 コード(ka)は PP-OCRv3 のモデルを使います。Baidu 自身は、PP-OCRv5 の多言語モデルの対応言語数をドキュメントによって 106 言語または 109 言語としています。

中国語・日本語・韓国語の lang コードは?

ch(簡体字中国語)、chinese_cht(繁体字中国語)、japan、korean です。ISO コードの zh、ja、ko は ValueError になります。

英語とフランス語が混在する文書を OCR するには?

コードを 1 つだけ指定するか、何も指定しません。PaddleOCR() と PaddleOCR(lang="fr") は同じ PP-OCRv6 モデルを読み込み、英語、フランス語、その他 48 言語をまとめて読み取ります。lang="en+fr" は無効で、ValueError になります。

PaddleOCR はアラビア語に対応していますか?

対応しています。PaddleOCR(lang="ar") は arabic_PP-OCRv5_mobile_rec を読み込みます。Baidu はこのモデルの精度を 81.27% と報告しており、アラビア語、ペルシア語、ウイグル語、ウルドゥー語、パシュトー語、クルド語、シンド語、バローチー語、英語を読み取るとしています。PaddleOCR.js と私たちのブラウザ版ツールでは使えません。

PaddleOCR はヒンディー語に対応していますか?

対応しています。lang="hi" で devanagari_PP-OCRv5_mobile_rec(Baidu のデーヴァナーガリー文字テストセットで 84.96%)が読み込まれます。同じモデルが、マラーティー語、ネパール語、サンスクリット語と、さらに 9 つのデーヴァナーガリー文字のコードにも使われます。

「No models are available for lang」と表示されるのはなぜですか?

PaddleOCR が知らないコードを渡しているためです。よくある原因は、ISO コード(zh、ja、ko)、公式の PP-OCRv5 リストからコピーしたもののコードが受け付けないコード(sr、rslatin、ab、av、ce、lki)、1 つの文字列に複数のコードを入れた場合です。上の検索ツールで正しいコードを調べてください。

特定の言語で PP-OCRv6 の small や tiny を使えますか?

PP-OCRv6 の 50 言語(tiny は日本語を除く 49 言語)なら使えますが、lang では選べません。text_detection_model_name="PP-OCRv6_small_det" と text_recognition_model_name="PP-OCRv6_small_rec" を指定します。モデルがすべての言語を読み取るので、言語を指定する必要はありません。

出典

  1. PaddleOCR 3.7.0 のソースコード paddleocr/_pipelines/ocr.py — PP-OCRv6 の言語セットと Pali の除外(58–62 行目)、未知のコードに対する ValueError(113–119 行目)、モデルの振り分け _get_ocr_model_names(318–422 行目)。PyPI の 3.7.0 wheel とバイト単位で一致。
  2. paddleocr/_utils/langs.py — LATIN_LANGS、ARABIC_LANGS、ESLAV_LANGS、CYRILLIC_LANGS、DEVANAGARI_LANGS(17–126 行目)。
  3. OCR パイプラインのドキュメント OCR.en.md — 言語表(2765–2844 行目、ka = Georgian は 2800 行目)、ocr_version ごとに対応する lang(2856–2886 行目)、ka_PP-OCRv3_mobile_rec を Kannada とする記述(632 行目)。
  4. PP-OCRv5 多言語モデルのドキュメント PP-OCRv5_multi_languages.en.md — 「106 languages」(7 行目)、モデルごとの精度とテストセットの規模(154–179 行目)、ab、av、ce、lki を含む言語コード(215–219 行目)、モデルごとの対応言語(244–256 行目)。
  5. PP-OCRv6 アルゴリズムのドキュメント PP-OCRv6.en.md — 50 言語、tiny は日本語を除く 49 言語(3 行目)、Baidu 社内の認識評価表(91–102 行目)。
  6. テキスト認識モジュールのドキュメント text_recognition.en.md — ka_PP-OCRv3_mobile_rec を Kannada として掲載(471–478 行目)、および PP-OCRv3 の多言語モデル。
  7. PaddleOCR.js のソースコード(paddleocr-js/packages/core/src/pipelines/ocr/shared.ts、68–167 行目と 525–542 行目)と README、npm @paddleocr/paddleocr-js 0.4.2:github.com/PaddlePaddle/PaddleOCR/tree/main/paddleocr-js。
  8. paddleocr.dev が 2026-10-27 に paddleocr 3.7.0(Python 3.13、Linux)で確認:PaddleOCR(lang=…) は ab、av、ce、lki、sr、rslatin、zh、ja、jp、ko、kr、kn、"fr+en" で ValueError になりました。各コードのモデル名は _get_ocr_model_names から取得。
  9. paddleocr.dev のベンチマーク、2026-10-27:4 vCPU Intel Xeon @ 2.10 GHz、メモリ 15 GB、GPU なし、paddleocr 3.7.0。5 つのテスト文書に中国語+英語の掲示と日本語の掲示を含みます。手法と生データ (EN)。
  10. PaddleOCR のリリースノート:docs/update/update.en.md(3.1.0、3.2.0)と README.md(3.3.0:多言語モデルは「covering recognition of 109 languages」、PaddleOCR-VL は「supports 109 languages」)。
  11. paddleocr.dev、2026-10-28:PaddleOCR(lang="korean")、文書の前処理とテキスト行の向き分類はオフ、私たちのきれいなレシート画像で、同じ 4 vCPU マシンを使用。ウォームアップ 1 回の後、ウォーム状態で 3 回実行した中央値。paddlepaddle 3.2.0 と onnxruntime 1.31.1 の比較、paddleocr 3.7.0。
更新日 2026年10月27日·事実確認の方法