このページの内容
結論: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 つの言語をまとめて調べることもできます。
PaddleOCR が lang からモデルを選ぶ仕組み#
PaddleOCR 3.7 の lang パラメータの役割は 1 つだけです。検出モデルと認識モデルを選ぶことです。処理は _get_ocr_model_names() にあり、次の順で判定されます。1
langもocr_versionも指定しない#PP-OCRv6_medium_det+PP-OCRv6_medium_recが読み込まれ、50 言語を読み取れます。PP-OCRv6 の対応言語#
ch、chinese_cht、en、japan、およびpiを除くすべてのラテン文字のコード(52 コード、50 言語 —frenchとgermanはfrとdeの別名)。どれもデフォルトと同じ 2 つの medium モデルを読み込みます。それ以外の対応文字#
韓国語、タイ語、ギリシャ語、テルグ語、タミル語と、アラビア文字・東スラブ語・キリル文字・デーヴァナーガリー文字のグループ、さらにパーリ語(Pali)は、
PP-OCRv5_server_detと文字ごとの*_PP-OCRv5_mobile_recを使います(59 コード)。ka#いまも PP-OCRv3 が使われる唯一のコードです:
PP-OCRv3_mobile_det+ka_PP-OCRv3_mobile_rec。それ以外の値#
PaddleOCR()はValueError: No models are available for lang='…' and ocr_version=None.を発生させます。
自動選択される認識モデルごとの 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/_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を無視します。ティアの選び方を参照してください。1langと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
| 指定したコード | 代わりに使うコード | 誤ったコードの出どころ |
|---|---|---|
sr | rs_cyrillic または rs_latin | 公式の PP-OCRv5 リスト |
rslatin | rs_latin | 公式の PP-OCRv5 リスト |
ab | abq | 公式の PP-OCRv5 ドキュメント(「Abkhaz」)。コード側の abq は、OCR ドキュメントでは Abaza とされています |
av | ava(アヴァル語) | 公式の PP-OCRv5 ドキュメント |
ce | che(チェチェン語) | 公式の PP-OCRv5 ドキュメント |
lki | lbe(ラク語) | 公式の PP-OCRv5 ドキュメント |
zh | ch または chinese_cht | ISO 639-1 の習慣 |
ja、jp | japan | ISO コード/国コードの習慣 |
ko、kr | korean | ISO コード/国コードの習慣 |
kn | ka(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 も同様です。
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
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 で日本語を読んだ例がその一例です。
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
| 言語 | 英語名 | lang= | 認識モデル(3.7) | v6 tiny | ブラウザ | 文字 |
|---|---|---|---|---|---|---|
| アバザ語 | Abaza | abq | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| アディゲ語 | Adyghe | ady | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| アフリカーンス語 | Afrikaans | af | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| アルバニア語 | Albanian | sq | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| アラビア語 | Arabic | ar | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| アヴァル語 | Avaric | ava | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| アゼルバイジャン語 | Azerbaijani | az | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| バローチー語 | Balochi | bal | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| バシキール語 | Bashkir | ba | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| バスク語 | Basque | eu | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ベラルーシ語 | Belarusian | be | eslav_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ボージプリー語 | Bhojpuri | bho | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| ビハール語 | Bihari | bh | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| ボスニア語 | Bosnian | bs | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ブルガリア語 | Bulgarian | bg | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ブリヤート語 | Buriat | bua | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| カタルーニャ語 | Catalan | ca | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| チェチェン語 | Chechen | che | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| 中国語(簡体字) | Chinese (Simplified) | ch | PP-OCRv6_medium_rec | はい | はい | 漢字(簡体字) |
| 中国語(繁体字) | Chinese (Traditional) | chinese_cht | PP-OCRv6_medium_rec | はい | はい | 漢字(繁体字) |
| チュヴァシ語 | Chuvash | cv | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| クロアチア語 | Croatian | hr | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| チェコ語 | Czech | cs | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| デンマーク語 | Danish | da | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ダルギン語 | Dargwa | dar | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| オランダ語 | Dutch | nl | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| 英語 | English | en | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| エストニア語 | Estonian | et | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| フィンランド語 | Finnish | fi | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| フランス語 | French | fr | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| フランス語 | French | french | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ガリシア語 | Galician | gl | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ジョージア語 | Georgian | ka | ka_PP-OCRv3_mobile_rec | 対象外 | いいえ | カンナダ文字またはジョージア文字(ドキュメントで記載が異なる) |
| ドイツ語 | German | de | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ドイツ語 | German | german | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ギリシャ語 | Greek | el | el_PP-OCRv5_mobile_rec | 対象外 | いいえ | ギリシャ文字 |
| ハリヤーンウィー語 | Haryanvi | bgc | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| ヒンディー語 | Hindi | hi | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| ハンガリー語 | Hungarian | hu | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| アイスランド語 | Icelandic | is | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| インドネシア語 | Indonesian | id | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| イングーシ語 | Ingush | inh | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| アイルランド語 | Irish | ga | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| イタリア語 | Italian | it | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| 日本語 | Japanese | japan | PP-OCRv6_medium_rec | いいえ | small のみ | 日本語(漢字・かな) |
| カバルド語 | Kabardian | kbd | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| カルムイク語 | Kalmyk | xal | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| カラカルパク語 | Karakalpak | kaa | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| カザフ語 | Kazakh | kk | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| コミ語 | Komi | kv | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| コンカニ語 | Konkani | gom | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| 韓国語 | Korean | korean | korean_PP-OCRv5_mobile_rec | 対象外 | いいえ | ハングル |
| クルド語 | Kurdish | ku | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| キルギス語 | Kyrgyz | ky | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ラク語 | Lak | lbe | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ラテン語 | Latin | la | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ラトビア語 | Latvian | lv | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| レズギ語 | Lezghian | lez | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| リトアニア語 | Lithuanian | lt | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ルクセンブルク語 | Luxembourgish | lb | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| マケドニア語 | Macedonian | mk | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| マガヒー語 | Magahi | mah | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| マイティリー語 | Maithili | mai | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| マレー語 | Malay | ms | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| マルタ語 | Maltese | mt | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| マオリ語 | Maori | mi | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| マラーティー語 | Marathi | mr | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| マリ語 | Mari | mhr | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| モルドバ語 | Moldovan | mo | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| モンゴル語 | Mongolian | mn | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ネパール語 | Nepali | ne | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| ネワール語 | Newari | new | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| ノルウェー語 | Norwegian | no | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| オック語 | Occitan | oc | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| 古英語 | Old English | ang | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| オセット語 | Ossetian | os | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| パーリ語 | Pali | pi | latin_PP-OCRv5_mobile_rec | 対象外 | いいえ | ラテン文字 |
| パシュトー語 | Pashto | ps | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| ペルシア語 | Persian | fa | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| ポーランド語 | Polish | pl | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ポルトガル語 | Portuguese | pt | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ケチュア語 | Quechua | qu | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ルーマニア語 | Romanian | ro | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ロマンシュ語 | Romansh | rm | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ロシア語 | Russian | ru | eslav_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| サドリ語 | Sadri | sck | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| サハ語 | Sakha | sah | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| サンスクリット語 | Sanskrit | sa | devanagari_PP-OCRv5_mobile_rec | 対象外 | いいえ | デーヴァナーガリー文字 |
| セルビア語(キリル文字) | Serbian (Cyrillic) | rs_cyrillic | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| セルビア語(ラテン文字) | Serbian (Latin) | rs_latin | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| シンド語 | Sindhi | sd | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| スロバキア語 | Slovak | sk | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| スロベニア語 | Slovenian | sl | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| スペイン語 | Spanish | es | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| スワヒリ語 | Swahili | sw | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| スウェーデン語 | Swedish | sv | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| タバサラン語 | Tabassaran | tab | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| タガログ語 | Tagalog | tl | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| タジク語 | Tajik | tg | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| タミル語 | Tamil | ta | ta_PP-OCRv5_mobile_rec | 対象外 | いいえ | タミル文字 |
| タタール語 | Tatar | tt | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| テルグ語 | Telugu | te | te_PP-OCRv5_mobile_rec | 対象外 | いいえ | テルグ文字 |
| タイ語 | Thai | th | th_PP-OCRv5_mobile_rec | 対象外 | いいえ | タイ文字 |
| トルコ語 | Turkish | tr | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| トゥヴァ語 | Tuvinian | tyv | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ウドムルト語 | Udmurt | udm | cyrillic_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ウクライナ語 | Ukrainian | uk | eslav_PP-OCRv5_mobile_rec | 対象外 | いいえ | キリル文字 |
| ウルドゥー語 | Urdu | ur | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| ウイグル語 | Uyghur | ug | arabic_PP-OCRv5_mobile_rec | 対象外 | いいえ | アラビア文字 |
| ウズベク語 | Uzbek | uz | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ベトナム語 | Vietnamese | vi | PP-OCRv6_medium_rec | はい | はい | ラテン文字 |
| ウェールズ語 | Welsh | cy | PP-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" を指定します。モデルがすべての言語を読み取るので、言語を指定する必要はありません。
出典
- 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 とバイト単位で一致。 - paddleocr/_utils/langs.py — LATIN_LANGS、ARABIC_LANGS、ESLAV_LANGS、CYRILLIC_LANGS、DEVANAGARI_LANGS(17–126 行目)。
- OCR パイプラインのドキュメント OCR.en.md — 言語表(2765–2844 行目、
ka= Georgian は 2800 行目)、ocr_versionごとに対応するlang(2856–2886 行目)、ka_PP-OCRv3_mobile_recを Kannada とする記述(632 行目)。 - PP-OCRv5 多言語モデルのドキュメント PP-OCRv5_multi_languages.en.md — 「106 languages」(7 行目)、モデルごとの精度とテストセットの規模(154–179 行目)、
ab、av、ce、lkiを含む言語コード(215–219 行目)、モデルごとの対応言語(244–256 行目)。 - PP-OCRv6 アルゴリズムのドキュメント PP-OCRv6.en.md — 50 言語、tiny は日本語を除く 49 言語(3 行目)、Baidu 社内の認識評価表(91–102 行目)。
- テキスト認識モジュールのドキュメント text_recognition.en.md —
ka_PP-OCRv3_mobile_recを Kannada として掲載(471–478 行目)、および PP-OCRv3 の多言語モデル。 - PaddleOCR.js のソースコード(
paddleocr-js/packages/core/src/pipelines/ocr/shared.ts、68–167 行目と 525–542 行目)と README、npm@paddleocr/paddleocr-js0.4.2:github.com/PaddlePaddle/PaddleOCR/tree/main/paddleocr-js。 - 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から取得。 - paddleocr.dev のベンチマーク、2026-10-27:4 vCPU Intel Xeon @ 2.10 GHz、メモリ 15 GB、GPU なし、paddleocr 3.7.0。5 つのテスト文書に中国語+英語の掲示と日本語の掲示を含みます。手法と生データ (EN)。
- 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」)。
- paddleocr.dev、2026-10-28:
PaddleOCR(lang="korean")、文書の前処理とテキスト行の向き分類はオフ、私たちのきれいなレシート画像で、同じ 4 vCPU マシンを使用。ウォームアップ 1 回の後、ウォーム状態で 3 回実行した中央値。paddlepaddle 3.2.0 と onnxruntime 1.31.1 の比較、paddleocr 3.7.0。