PaddleOCRとは何ができるツール?3つのモデルの違いから
PaddleOCRでできること——文字を抜くだけでは終わらない理由
PaddleOCRの3つのモデルの違い
PP-OCRv6
- 汎用のテキスト認識
- 中国語・英語・日本語を含む50言語を単一モデルで認識
- tiny 1.5M / small 7.7M / medium 34.5Mの3段階
- mediumはv5_server比で検出+4.6%、認識+5.1%
- 34.5Mで巨大なVLMを上回る
PaddleOCR-VL
- 文書解析に寄せた軽量VLM
- 0.9Bの軽量VLM
- 表・数式・印鑑・古文書など読むのが難しい紙が得意
室谷代表取締役PaddleOCRって名前だけ見ると「画像から文字を抜く道具」に見えるんですけど、中身は3本柱なんですよね。汎用のテキスト認識、文書解析に寄せた軽量VLM、レイアウトを構造化するモデル。
性格がまるで違う・・・
性格がまるで違う・・・
テキトー教師DotAI 認定講師たしかに。初めて触る人が最初に戸惑うのがまさにそこで、「どれを入れればいいんですか」で止まるんですよ。
入り口が3つあるよ、というのが最初の関門ですね。
入り口が3つあるよ、というのが最初の関門ですね。
室谷代表取締役しかもこれ、Apache License 2.0で商用利用も改変も再配布も無料なんですよ。この選択肢がライセンス費用ゼロで並ぶのは、経営目線だと普通に怖い話で。
テキトー教師DotAI 認定講師現場でよく聞くのは「無料だと精度が落ちるんでしょ」なんですけど、そこは実際に数字を見た方が早いんですよね。
PP-OCRv6とPaddleOCR-VLは何が違うのか
室谷代表取締役PP-OCRv6は汎用のテキスト認識で、中国語・英語・日本語を含む50言語を単一モデルで見るんですよね。tinyが1.5M、smallが7.7M、mediumが34.5Mの3段階。
テキトー教師DotAI 認定講師言語ごとにモデルを切り替えなくていいのが大きいですね。以前は言語指定で迷う人が多かったので、そこが消えるのは現場としてはかなり楽です。
室谷代表取締役mediumで従来のv5_server比が検出+4.6%、認識+5.1%。34.5Mのパラメータで巨大なVLMを上回るという話なんで、これは推論コストの構造が変わる話なんですよ。
テキトー教師DotAI 認定講師一方のPaddleOCR-VLは0.9Bの軽量VLMで、表・数式・印鑑・古文書みたいな「読むのが難しい紙」が得意。同じOCRでも守備範囲が分かれてるんですね。
PP-StructureV3はどんな文書に向いているのか
テキトー教師DotAI 認定講師現場で多いのが、複雑なPDFをレイアウトごとMarkdownにしたい、という相談なんですよ。表が崩れると後段の処理が全部崩れますから。
室谷代表取締役そこを担うのがPP-StructureV3で、複雑なPDFや画像をレイアウトを保ったままMarkdownやJSONに変換する。これもApache 2.0で、ローカルにデプロイすれば追加コストはかからないんですよね。
テキトー教師DotAI 認定講師縦書きや複数列の読み順もここで効いてきます。認識モデル単体だと順序の情報を持たないので、構造化まで含めて選ぶ必要があるんですよ。
室谷代表取締役なるほど、それは精度の話じゃなくて構造の話なんですね。ここを混ぜると設計を間違える。
誰が開発していて、どこで使われているのか
室谷代表取締役開発元はBaiduのPaddlePaddleチーム。GitHubのスターが92.2k、6.9千以上のプロジェクトが依存していて、Dify、RAGFlow、MinerU、Umi-OCR、haystack、OmniParserあたりが採用してるんですよ。
最新は3.7.0。
最新は3.7.0。
テキトー教師DotAI 認定講師つまりRAGの前処理として組み込まれているケースが多い、ということですか。
室谷代表取締役そう。OCR単体のツールというより、AIにデータを取り込む入り口として業界の土台になってる。
だから日本語を扱う現場でも避けて通れない立ち位置になってるんですよね。
だから日本語を扱う現場でも避けて通れない立ち位置になってるんですよね。
テキトー教師DotAI 認定講師派手さはないですけど、地味に効くところで基盤を握ってる感じですね。
3.x系のインストール手順——古い記事のコマンドでつまずかないために
推論エンジンと本体を分けて入れる2段階の手順
3.x系インストールの2段階手順
- 01推論エンジン(PaddlePaddle)を先に入れるCPU版: python -m pip install paddlepaddle==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
- 02PaddleOCR本体を入れる試すだけなら python -m pip install paddleocr
- 03必要に応じて全機能を追加文書解析や情報抽出まで使うなら python -m pip install "paddleocr[all]"
- 04推論エンジンを差し替える場合はバックエンド選択PaddlePaddle以外ならTransformersバックエンドを選ぶ構成もある
- 推論エンジン(PaddlePaddle)を先に入れる。CPU版は
python -m pip install paddlepaddle==3.2.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ - PaddleOCR本体を入れる。まず試すだけなら
python -m pip install paddleocr - 文書解析や情報抽出まで使うなら
python -m pip install "paddleocr[all]" - 推論エンジンをPaddlePaddle以外にする場合は、Transformersバックエンドを選ぶ構成もある
室谷代表取締役モデルの話のあとは、実際に入れる話なんですけど。3.x系って、
推論エンジンと本体が分かれてるので。
pip install paddleocr だけじゃ終わらないんですよね。推論エンジンと本体が分かれてるので。
テキトー教師DotAI 認定講師そうなんですよ。先にエンジン側、そのあと本体。
この順番を知らないと「入れたのに動かない」で止まります。
この順番を知らないと「入れたのに動かない」で止まります。
室谷代表取締役上の手順でいう1と2が必須で、3は必要になってからでいい。うちの現場でも、まず素で入れて最小構成で動作確認する方が早いんですよ。
テキトー教師DotAI 認定講師はい、最初から全部入れると重いので。目的が決まってないなら素の
paddleocr から、が無難です。CPU版とGPU版でコマンドはどこが変わる?
テキトー教師DotAI 認定講師GPUがある人は、エンジンのインストールURLだけ差し替えるイメージです。CPU版は
stable/cpu、GPU版は cu118 などのURLを使う、と公式ドキュメントに書かれています。
室谷代表取締役本体側のコマンドは同じなんですね。
テキトー教師DotAI 認定講師そこは変わりません。ただGPU環境はドライバの都合も絡むので、先にCPUで通してから乗せ替えるほうが切り分けは楽です。
室谷代表取締役その順番は合理的ですね。検証の初手で環境構築に半日溶かすのが一番もったいないので。
古い2.x系チュートリアルが動かない理由
室谷代表取締役ここが今日の本題で。ネット上の入門記事、まだ2.x系のコマンドのままなんですよね。
paddlepaddle==2.6.0 とか paddleocr>=2.7 とか。
テキトー教師DotAI 認定講師はい、
PaddleOCR(lang="japan", use_angle_cls=True) みたいな書き方も見かけます。3.x系ではそのままでは動かない可能性が高い、と公式が明言してるんですよ。
室谷代表取締役公式がそう言ってるなら、記事の鮮度を見ないと時間が消えるだけなんですよね。現行は3.7.0で、2026年6月11日のリリースですし。
テキトー教師DotAI 認定講師現場でよく聞くのも「記事通りにやったのにエラーが出る」なんですよ。原因が自分の環境じゃなくて、記事の世代だったというパターンです。
Pythonバージョンとオプション依存でハマるポイント
テキトー教師DotAI 認定講師あと地味なのがPythonのバージョンで。本体とdoc2mdは3.8以降、他の拡張機能は3.9以降が必要と公式に書かれています。
PyPIの表記は3.8〜3.13です。
PyPIの表記は3.8〜3.13です。
室谷代表取締役拡張を入れた瞬間に要求が上がる、と。
テキトー教師DotAI 認定講師そうなんです。3.8で本体は動いても、
仮想環境を1つ切って、そこに目的別で入れていくのが安全ですね。
[all] にしたら足りない、みたいなことが起きます。仮想環境を1つ切って、そこに目的別で入れていくのが安全ですね。
室谷代表取締役了解です。ここまでが土台で、次は実際にコードを書いて文字を抜くところですね。
日本語の認識精度はどのくらい?手書き・縦書きの対応範囲
日本語は単一モデルでどこまで読めるのか
室谷代表取締役PaddleOCRの日本語まわり、モデルを切り替えなくていいのが地味に効くんですよね。PP-OCRv5の認識モデルが簡体字・繁体字・英語・日本語を1個で見てる。
テキトー教師DotAI 認定講師そうなんですよ。ちょっと前までは言語ごとにモデルを持ち替えるのが当たり前で、初めて触る人が「日本語用はどれを選ぶの?」で止まってたんです。
室谷代表取締役PP-OCRv6だと50言語まで広がってる。実務だと社内文書に英単語が混ざるのは普通なので、切替なしで拾えるのは助かります。
テキトー教師DotAI 認定講師混在文書で悩まないのは大きいですね。
手書き文字や難しい漢字はどのくらい対応している?
室谷代表取締役公式の説明だと、手書き・縦書き・ピンイン・難読字にも対応、という範囲で日本語もカバーされてる。
テキトー教師DotAI 認定講師ただ「対応している」と「自分の用途で実用精度が出る」は別物で。現場感覚で言うと、丁寧な手書きは読めるけど、走り書きや記号だらけの帳票は一度試してから判断したほうがいいです。
室谷代表取締役v6がv5_server比で認識精度+5.1%という数字も、あくまで平均の話。自社の書類で試すのが結局いちばん早いんですよね。
テキトー教師DotAI 認定講師たしかに、サンプル画像で成功しても現場の紙は別でした、というのはよく聞きます。
縦書き文書で読み順が崩れる理由
室谷代表取締役ここが落とし穴で。認識モデル自体は読み順の情報を持ってないんですよ。
文字が読めても、どの順に並べるかは別の話なんです。
文字が読めても、どの順に並べるかは別の話なんです。
テキトー教師DotAI 認定講師よくあるのが、縦書きPDFを読ませたら文字は出るのに文章がぐちゃぐちゃになるパターンで。縦書きは右から左、行の中は上から下、その順序は認識モデルが保証してくれません。
室谷代表取締役順序が崩れると、後工程で人が並べ直すことになる。地味ですけど、そこがいちばん工数を持っていくんですよね。
テキトー教師DotAI 認定講師出力を見て「精度が低い」と判断したら、実は順序の問題だった、というのはハマる人が多いところです。
縦書きを正しく読むならPP-StructureV3を使う
縦書き文書の読み取り手順
素の認識モデルで読み順が正しく出るか?
YES / そのまま利用
- 認識モデルで文字を読み取る
- 読み順が正しく保たれている
- 後工程の並べ直しが不要
NO / 構造解析に切り替え
- PP-StructureV3を併用する
- 複数列の読み順復元に対応
- レイアウトを保ったままMarkdownやJSONで出力
室谷代表取締役なので縦書きはPP-StructureV3とセットで考える。複数列の読み順復元に対応してる、と公式のメンテナーも説明してます。
テキトー教師DotAI 認定講師レイアウトを保ったままMarkdownやJSONに落とせるので、見出し構造を残したり、後から構造で検索したりがラクになります。
室谷代表取締役PP-StructureV3はApache 2.0で無料、ローカルに置けば追加コストもかからない。ここは素直に強い構成だと思います。
テキトー教師DotAI 認定講師まず素の認識で試して、順序が崩れたら構造解析に切り替える。その順番で考えると迷わないですね。
基本的な使い方——最小限のコードとCLIで文字を抽出する
Pythonの最小コードで画像から文字を出す
室谷代表取締役まず一番短い形から見ましょう。PaddleOCR をインポートして、インスタンスを作って、predict に画像パスを渡す。
それだけで結果が返ってくるんですよね。
それだけで結果が返ってくるんですよね。
python
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_doc_orientation_classify=False, use_doc_unwarping=False, use_textline_orientation=False, engine="paddle")
result = ocr.predict("./image.png")
for res in result:
res.print()
テキトー教師DotAI 認定講師そうなんですよ。ただ、ここで最初に戸惑うのが、ネットに転がっているコードをそのまま貼ると動かないケース。
2.x系の書き方のまま
2.x系の書き方のまま
use_angle_cls=True とか書いてあるやつですね。
室谷代表取締役公式が「3.xは2.xから大きくAPIが変わった」と明言しているので、そこは割り切るしかない。うちでも古いスニペットをコピって動かなくて、結局クイックスタートに戻る、みたいなことを何度かやりました。
テキトー教師DotAI 認定講師引数の名前が違うだけなんですけど、エラー文が英語なので心が折れるんですよね。
use_doc_orientation_classify のように長い名前になっているので、そこだけ合わせれば大丈夫です。CLIならコマンド1行で実行できる
室谷代表取締役コードを書かずに試したいときは、コマンド1行でいけるんですよ。
bash
paddleocr ocr -i ./image.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False --engine paddle
テキトー教師DotAI 認定講師-i に画像を渡すだけなので、初めて触る人でもここは通りやすいですね。公式のサンプルも、この3つを False にした形で載っています。
室谷代表取締役前処理を有効にするかは、まっすぐ読める書類かどうかで判断すればいい。傾いた撮影を大量に流す業務なら、逆に効かせたくなる部分ですし。
解析結果を画像とJSONで保存して中身を確認する
室谷代表取締役結果は画面に出すだけで終わらせず、画像とJSONに落とせるんですよね。
res.save_to_img("output") と res.save_to_json("output") を回すだけです。
テキトー教師DotAI 認定講師ここ、地味に大事なんですよ。テキストだけ見て「合っている」と判断すると、どこをどう読んだのか分からないまま次の画像に行ってしまう。
画像に重ねた結果を見ると、枠の取り方がズレているのか、文字自体を読み違えているのかが切り分けられます。
画像に重ねた結果を見ると、枠の取り方がズレているのか、文字自体を読み違えているのかが切り分けられます。
室谷代表取締役業務で使うなら、その出力が残るかどうかは効いてきますね。読み取り結果だけ受け取って終わりにすると、後から検証できない。
JSONが手元にあれば、判定ロジックを後で差し替えられますから。
JSONが手元にあれば、判定ロジックを後で差し替えられますから。
テキトー教師DotAI 認定講師出力先は同じディレクトリ名を渡す形なので、まずは1枚で試して、どんなファイルが出るか眺めるのがおすすめです。
PDFや複数ページ、表組みのレイアウトはどこまで解析できる?
複数ページのPDFをまとめて処理する考え方
室谷代表取締役PDFの契約書を30ページ丸ごと読ませたい、みたいな相談が来るんですよ。まずは1ページずつ確実に文字が取れるかが勝負で、そこが崩れると後段が全部崩れるんですよね。
テキトー教師DotAI 認定講師現場でよく聞くのは、そこなんですよ。PDFをそのまま渡せば中身を全部理解してくれると思われがちで。
実際はページを画像にして順に流す発想に切り替える必要があります。
実際はページを画像にして順に流す発想に切り替える必要があります。
室谷代表取締役なるほど。バッチで回すときにページ番号を持たせておけば、あとから「何ページの何行目」を追えると。
テキトー教師DotAI 認定講師そうなんです。ページ番号を捨てると、あとで元資料と突き合わせるときに地獄を見ます。
PaddleOCR 3.x系はページ単位の処理を前提に組むのが素直です。
PaddleOCR 3.x系はページ単位の処理を前提に組むのが素直です。
表組み・段組みを構造ごとMarkdown/JSONに変換する
室谷代表取締役表が入ってる書類だと、文字を拾うだけでは足りないんですよね。セルの中身がバラバラの行として出てきて、行と列の関係が消える・・・
テキトー教師DotAI 認定講師たしかに。数字だけ拾っても意味が分からない状態になります。
そこをレイアウトごとMarkdownやJSONに落とすのがPP-StructureV3の役割です。
そこをレイアウトごとMarkdownやJSONに落とすのがPP-StructureV3の役割です。
室谷代表取締役Markdownで構造が残ると、そのまま検索用のデータに流し込めるのが大きいんですよ。前処理のエンジニア工数がまるごと削れるので。
テキトー教師DotAI 認定講師表・数式・印鑑・図表あたりに強いモデルも揃っていますから、請求書みたいな定型書類はかなり楽になります。軽量なVLMでも文書解析の評価で高い数字が出ている、という話もありますし。
レイアウト解析が崩れやすい文書のパターン
テキトー教師DotAI 認定講師逆に崩れやすいのが、縦書きと段組みが混ざった文書ですね。認識モデル自体は読み順の情報を持っていないので、順番がぐちゃっとなるんですよ。
室谷代表取締役読み順が壊れると、抽出したテキストが意味の通らない文章になる。実務だとこれが一番痛いんですよね。
テキトー教師DotAI 認定講師そこはPP-StructureV3の読み順復元に任せるのが筋で。複数列のレイアウトでも順番を直してくれます。
古文書のような資料も、モデルの得意不得意が出ます。
古文書のような資料も、モデルの得意不得意が出ます。
室谷代表取締役縦書きの名簿とか、段組みのチラシとか。人の目には自然でも、機械には不自然なんですよね。
PP-StructureV3が無料で使える理由
室谷代表取締役で、こういう構造解析っていわゆる従量課金のイメージがあるじゃないですか。ここが追加コストなしで済むのが不思議なんですけど・・・
テキトー教師DotAI 認定講師ライセンスがApache 2.0なので、PaddleOCRをローカルにデプロイすれば追加費用はかからないんです。ライセンス費用の行が丸ごと消えるのは大きいですよね。
室谷代表取締役経営目線で言うと、ページ数が増えるほど効く話なんですよ。何万ページを毎月処理する前提だと、従量課金の見積もりがそのまま利益を削るので。
テキトー教師DotAI 認定講師ただし手元のマシンの上限はありますからね。どこまで速く回せるかは、また別の話になってきます。
精度を上げるコツと、GPUなしでも動くかの速度の現実
前処理とパラメータで精度を上げる
精度を上げる手順(失敗しにくい順番)
- 01歪み補正を有効にする傾いたスキャン画像をそのまま入れず、まず歪み補正をオンにする
- 02文書の向き分類を有効にするサンプルコードのFalse指定は速度優先の見本。実運用は逆で有効化から
- 03文字行の向きを確認するそれでも崩れる場合に文字行の向きを見る
- 04mediumで精度の天井を確認する34.5Mでも軽い部類。先にmediumで精度の上限を見る
- 05遅ければ下の階へ落とす遅すぎる場合にtiny・smallへ下げる。小さいモデルから始めて諦める順は避ける
室谷代表取締役精度の話、まずどこから手を付けるのがいいんでしょう。さっきレイアウト解析の話をしたので、その手前の部分を聞きたいんですけど。
テキトー教師DotAI 認定講師最初に戸惑うのが、傾いたスキャン画像をそのまま放り込んでしまうケースですね。向き分類や歪み補正を切ったままだと、精度が出ない原因がコード側なのか画像側なのか分からなくなるんですよ。
室谷代表取締役サンプルコードって、そういう補正をむしろ False で明示してるじゃないですか。あれ、速度優先の見本だからですよね。
テキトー教師DotAI 認定講師そこなんですよ。実運用は逆で、まず歪み補正と文書の向き分類を有効にする。
それでも崩れるなら文字行の向きを見る、という順番が現場感覚だと失敗しにくいです。
それでも崩れるなら文字行の向きを見る、という順番が現場感覚だと失敗しにくいです。
tiny・small・mediumのモデルサイズをどう選ぶか
室谷代表取締役モデルの階層が3段階あって、パラメータ数が1.5M、7.7M、34.5M。どう選ぶのが正解ですか。
テキトー教師DotAI 認定講師現場でよく聞くのは「大きい方が賢いんでしょ」なんですが、数字だけ見ると34.5Mでもかなり軽い部類なんです。先にmediumで精度の天井を見てから、遅すぎるなら下の階へ落とす。
この順番が一番遠回りしないですね。
この順番が一番遠回りしないですね。
室谷代表取締役逆から入る人、多いですよね。小さいので始めて精度が出ずに諦める。
うちも精度が出ないと仕事にならないので、最初からmediumで見ます。
うちも精度が出ないと仕事にならないので、最初からmediumで見ます。
テキトー教師DotAI 認定講師mediumは前世代のサーバー向けモデルと比べて検出で4.6%、認識で5.1%上がってる数字がありますし、日本語を含む50言語を単一モデルで見ますから、言語ごとにモデルを切り替える手間がないのが効きます。
CPUとGPUで速度はどれくらい変わる?
室谷代表取締役ここが一番聞かれるところで。GPUを積まないと動かないのか、という。
テキトー教師DotAI 認定講師動きます。medium階でIntel Xeon CPUにOpenVINOを組み合わせた場合、前世代の7.30秒から1.40秒へ、5.2倍速くなったという数字が出てます。
1ページ1.4秒なら、業務のバッチ処理でも回る範囲ですよね。
1ページ1.4秒なら、業務のバッチ処理でも回る範囲ですよね。
室谷代表取締役じゃあA100で0.13秒、みたいな数字は別の階の話だと。そこを混ぜると見積もりを間違えるんですよ。
テキトー教師DotAI 認定講師そうなんです、階層を混ぜると誤解のもとで。軽い階ではApple M4で前世代比6.1倍という数字も出ていて、CPUだけでも選択肢になる。
GPU前提で組んだ構成を一度見直す価値はあります。
GPU前提で組んだ構成を一度見直す価値はあります。
OpenVINOやONNX Runtimeで推論を速くする
室谷代表取締役その高速化の正体がOpenVINOなんですよね。経営目線で言うと、GPUを積まずに済むかどうかで固定費の形がまるで変わるので、ここは無視できないんです。
テキトー教師DotAI 認定講師OpenVINOのほかにONNX Runtime、TensorRTも選べます。ONNX形式への変換にも対応しているので、すでに推論基盤を持っているところはそこに載せられる。
マルチGPUやマルチプロセスでの並列推論もあるので、大量ページを回す前提ならCPUを並べる方が安く上がる、という判断もありえますね。
マルチGPUやマルチプロセスでの並列推論もあるので、大量ページを回す前提ならCPUを並べる方が安く上がる、という判断もありえますね。
室谷代表取締役なるほど。速度の話はハードの買い足しではなく、どの実行基盤に載せるかで解くべき問題なんですね。
ライセンスはどうなっていて、商用利用でコストはかかる?
Apache License 2.0でどこまで自由に使えるのか
室谷代表取締役ここ、導入を判断する側としては一番気になるところなんですけど、PaddleOCRはApache License 2.0で、商用利用も改変も再配布も無料、ライセンス費用はゼロなんですよね。
テキトー教師DotAI 認定講師現場でよく聞くのが「これ、会社の仕事で使って怒られないんですか」という不安なんですよ。そこが最初の関門だったりします。
室谷代表取締役再配布まで認められているのは大きいんですよね。社内ツールに組み込んで配る、みたいな使い方もできますし。
まあ条文の細かいところは公式のライセンス表記を見てもらう前提ですけど・・・
まあ条文の細かいところは公式のライセンス表記を見てもらう前提ですけど・・・
テキトー教師DotAI 認定講師たしかに。そこは自己判断で済ませず、一度原典に当たるのが安全ですね。
有料のOCRライブラリとコスト構造を並べてみる
室谷代表取締役比較のために、.NET向けのIronOCRを見てみると分かりやすいんですよ。Tesseractをベースにした商用ライブラリで、永続購入型、価格は$999から。
30日間の返金保証と1年間のサポートが付く形です。
30日間の返金保証と1年間のサポートが付く形です。
テキトー教師DotAI 認定講師なるほど、サポートが付く安心感にお金を払う構造なんですね。
| 項目 | PaddleOCR | IronOCR |
|---|---|---|
| ライセンス | Apache License 2.0 | 永続購入型の商用ライセンス |
| 費用 | 無料 | $999から |
| サポート | コミュニティ中心 | 1年間付帯 |
室谷代表取締役経営目線で言うと、この差は「初期費用を払って安心を買うか、ゼロで始めて自前で面倒を見るか」の選択なんですよ。前者は導入ハードルが下がる、後者は人数を増やしても費用が膨らまない。
どっちが得かは規模で変わります。
どっちが得かは規模で変わります。
テキトー教師DotAI 認定講師そうなんですよね。無料だから必ず得、ではなくて、困ったときに誰に聞くかまで含めて判断する話だと思います。
TesseractとPaddleOCRは何が違うのか
テキトー教師DotAI 認定講師同じApache 2.0でも中身はかなり違います。Tesseractはヒューレット・パッカード研究所で開発が始まって、2018年までGoogleが開発を続けたあとコミュニティ管理に移っていて、100以上の言語に対応、v4以降はLSTMベースの認識になっています。
室谷代表取締役歴史が長いぶん、資料も知見も多いわけですよね。
テキトー教師DotAI 認定講師ただ日本語で使うと、前処理をかなり作り込まないと数字や記号の取りこぼしが出やすい印象です。PaddleOCRは日本語を含む言語を単一モデルで扱えるので、そこが体感の差になりやすいところですね。
室谷代表取締役既存のパイプラインに組み込む前提なら、どちらが運用で疲れないかで選ぶのが現実的かなと思います。
クラウドOCR APIとローカル実行、どちらを選ぶか
室谷代表取締役コストの観点だと、ローカルにデプロイしてしまえば推論の従量課金は発生しないんですよね。PP-StructureV3もApache 2.0で、追加コストなしで動かせます。
テキトー教師DotAI 認定講師初めて触る人が戸惑うのが、公式のオンライン体験センターやAPIが無料で公開されているぶん、「本番もそのまま無料で回せる」と受け取ってしまうところで。中国語の公式ドキュメントには1日あたりの文書解析上限が20,000ページと書かれているので、大量処理はローカル前提で考えるのが素直です。
室谷代表取締役あとはデータの置き場所ですね。社外に出せない書類を扱うなら、最初からローカルで組んでおいたほうが後で揉めないです。
テキトー教師DotAI 認定講師たしかに。試すのはAPI、量をさばくのはローカル、という役割分担が分かりやすいかもしれません。
自分のアプリや業務システムに組み込むには?
Flaskで包んでWeb APIにする
- アプリ起動時にPaddleOCRのインスタンスを1回だけ生成する
- 画像パスを受け取るエンドポイントを作り、predict() の結果をJSONに書き出して返す
- 常駐プロセスとして動かし、リクエストは外側のワーカーでさばく
python
from flask import Flask, request, jsonify
from paddleocr import PaddleOCR
app = Flask(__name__)
ocr = PaddleOCR(use_doc_orientation_classify=False,
use_doc_unwarping=False,
use_textline_orientation=False,
engine="paddle")
@app.route("/ocr", methods=["POST"])
def run_ocr():
path = request.json["path"]
result = ocr.predict(path)
for res in result:
res.save_to_json("output")
return jsonify({"status": "ok", "output": "output"})
室谷代表取締役一番短いルートはこれで、Pythonで書いた処理をそのままHTTPの口にするだけなんですよね。既存の呼び出し側を触らずに裏側だけ差し替えられるのが、API化する一番の価値だと思ってます。
テキトー教師DotAI 認定講師最初に戸惑うのが、リクエストのたびにモデルを読み直す実装にしてしまうパターンですね。起動時に一回だけ作って常駐させる、これだけで体感が別物になります。
室谷代表取締役そこ、運用コストに直結するんですよ。プロセスを立ち上げ直すたびにモデルをロードする設計だと、台数を増やすほど無駄が出る。
最初の設計で決まる部分です。
最初の設計で決まる部分です。
C++やC#、Javaから呼び出してサービス化する
室谷代表取締役業務システムがJavaやC#で動いてる会社だと、全部Pythonに置き換える判断は普通しません。公式がC++・C#・Javaなどからの利用を挙げているので、PaddleOCRをサービスとして立てて外から呼ぶ形が現実的です。
テキトー教師DotAI 認定講師現場でよく聞くのが「Python以外の基幹系からどう叩くか」なんですよ。HTTPの口を1本立てておけば、言語の壁はほぼ消えます。
室谷代表取締役呼び出しの具体的な手順は公式ドキュメントで確認してほしいところですが、設計としては「OCRは別サービス、業務側は結果だけ受け取る」に寄せるのが後々楽なんですよね。
マルチGPU・マルチプロセスで並列処理する
室谷代表取締役大量の書類を流すとボトルネックは推論になります。公式がマルチGPU・マルチプロセスでの並列推論に対応と明記していて、NVIDIA GPUやIntel CPU、Kunlunxin XPUなんかも対象に入ってます。
テキトー教師DotAI 認定講師ここでハマる人が多いのが、プロセスを増やせば比例して速くなると思ってしまうところで。GPU1枚に詰め込みすぎると、かえって待ち行列になるんですよね。
室谷代表取締役GPUを何枚積むかは完全にコスト判断で、台数を増やす前にどこまで並列で捌ければ足りるかを決めた方がいい。ROIで見ると、そこが一番効くポイントです。
テキトー教師DotAI 認定講師速度側の逃げ道として、ONNX RuntimeやTensorRTでの高速化、ONNX形式への変換という選択肢もあります。CPUしかない環境ならOpenVINO寄りで考える感じですね。
MCPサーバーやエージェント連携の選択肢
室谷代表取締役面白いのが、公式リポジトリの中にmcp_serverとskillsのディレクトリがあることなんですよ。自前でラッパーを書かなくても、エージェント側からOCRを道具として呼べる道が用意されてる。
テキトー教師DotAI 認定講師エージェントに読ませたいだけなら、APIを自分で設計するよりそっちの方が早いケースがありますね。まず動かして感触を見たい人は、無料公開されてるオンラインの体験センターやAPIで試す手もあります。
室谷代表取締役業界構造としても、OCR単体を売る商売からエージェントの一機能になっていく流れははっきりしてきてて。ブラウザ内で動くPaddleOCR.jsまで出てるのは、その方向の布石に見えます。
テキトー教師DotAI 認定講師組み込み先を選ぶときは、常駐APIにするのか、エージェントの道具として持たせるのか、先に決めておくと後で揉めないですよ。
よくある質問
Q1. オフライン環境でも動かせますか?
室谷代表取締役ネットにつながない環境で使いたい、という相談は導入時に必ず出るんですよね。PaddleOCRはローカルで動かす前提の構成が取れるので、社内ネットワーク限定の案件でも検討しやすいんですよ。
ただ初回のモデル取得だけはネットが必要になることがあるので、そこは構成次第で確認してほしいところです。
ただ初回のモデル取得だけはネットが必要になることがあるので、そこは構成次第で確認してほしいところです。
テキトー教師DotAI 認定講師現場でよく聞くのは「閉域網で動かしたい」なんですけど、初回セットアップをどう通すかで詰まる人が多いんですよ。モデルを先に持ってくる運用にしておくと、実際の業務フローに乗せやすくなります。
Q2. 他のOCRエンジンとはどう選び分ければいい?
室谷代表取締役比較の相談はよく来るんですけど、結局は「帳票のレイアウトをどこまで扱いたいか」で見方が変わるんですよね。PaddleOCRは文字の検出と認識を組み合わせて使う前提なので、単純な文字起こしだけでなく、位置情報込みで扱いたい案件に向いてる印象です。
テキトー教師DotAI 認定講師最初に比べる時って精度の数字だけ見がちなんですけど、前処理や後処理の作りやすさで体感がけっこう変わるんですよ。運用に乗せた後の修正コストまで含めて見たほうがいいですね。
室谷代表取締役そうなんですよね。PoCで終わるか本番まで行くかの差は、だいたいそこに出るんですよ。
Q3. 更新やメンテナンスは自分で追いかける必要がありますか?
室谷代表取締役OSSなので、更新を誰かが自動で面倒見てくれるわけではないんですよね。どのバージョンを使うか、いつ上げるかは自分たちで決める必要があります。
業務システムに組み込むなら、上げるタイミングを決めておくのが大事です。
業務システムに組み込むなら、上げるタイミングを決めておくのが大事です。
テキトー教師DotAI 認定講師初めて触る人は、動いたバージョンのまま放置しがちなんですよ。でも周辺のライブラリとの組み合わせで急に動かなくなることがあるので、構成をメモしておくだけでもだいぶ違います。
Q4. WindowsやMacでも同じように使えますか?
室谷代表取締役Pythonが動く環境なら検討できるんですけど、GPU周りの差が大きいんですよね。WindowsとMacで同じ手順というわけにはいかないので、まずは公式のインストール手順を環境ごとに確認するのが確実です。
テキトー教師DotAI 認定講師ここ、ハマる人多いんですよ。資料によって前提が違うので、自分のOSとPythonのバージョンに合った手順を探すところから始めたほうがいいですね。
Q5. カメラ映像からリアルタイムに文字を読むことはできますか?
室谷代表取締役フレームを画像として切り出して処理する形になるので、速度設計が要になります。GPUなしだと厳しい場面もあるので、まずはオフラインの画像で精度を見てから考えるのが現実的です。
テキトー教師DotAI 認定講師リアルタイム系は、認識精度より「遅れをどこまで許容するか」の設計でつまずきやすいんですよ。現場だと、全部読もうとせずに読むタイミングを絞るだけでも安定することがあります。
まとめ
室谷代表取締役PaddleOCRは、日本語のOCRを自前で組みたいときに選択肢になるツールなんですよね。ただ3.x系は古い記事のコマンドとズレていることがあるので、導入時は公式の手順を基準にしたほうが安全です。
テキトー教師DotAI 認定講師そうですね。精度は前処理とレイアウトの扱い方で体感が変わるので、いきなり全部を任せるより、特定の帳票で試すほうが判断しやすいんですよ。
室谷代表取締役うちでもOCRの相談は来るんですけど、最初に全部置き換えるんじゃなくて、一点だけ置き換えて効果を見るのが現実的なんですよね。ライセンスや商用利用の条件は、使う前に公式で確認しておいてほしいところです。
テキトー教師DotAI 認定講師最初の一歩としては、手持ちのPDFを1枚だけ通して、どこが読めてどこが読めないかを見るだけでも十分だと思います。そこから前処理を足していくほうが、遠回りに見えて早いんですよ。
