🚀 PP-OCRv4_server_rec_doc
PP-OCRv4_server_rec_docは、PP-OCRv4_server_recをベースに、より多くの中国語文書データとPP-OCRの学習データを混合したデータセットで学習されたものです。これにより、一部の繁体字、日本語文字、特殊記号の認識能力が強化され、15000文字以上をサポートしています。文書関連のテキスト認識能力を向上させるだけでなく、一般的なテキスト認識能力も強化されています。
🚀 クイックスタート
📦 インストール
1. PaddlePaddleのインストール
以下のコマンドを参考に、pipを使用してPaddlePaddleをインストールしてください。
python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/
python -m pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
PaddlePaddleのインストールの詳細は、PaddlePaddle公式サイトを参照してください。
2. PaddleOCRのインストール
PyPIから最新バージョンのPaddleOCR推論パッケージをインストールします。
python -m pip install paddleocr
💻 使用例
基本的な使用法
単一のコマンドで機能をすぐに試すことができます。
paddleocr text_recognition \
--model_name PP-OCRv4_server_rec_doc \
-i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/QmaPtftqwOgCtx0AIvU2z.png
また、テキスト認識モジュールのモデル推論をあなたのプロジェクトに統合することもできます。以下のコードを実行する前に、サンプル画像をローカルにダウンロードしてください。
from paddleocr import TextRecognition
model = TextRecognition(model_name="PP-OCRv4_server_rec_doc")
output = model.predict(input="QmaPtftqwOgCtx0AIvU2z.png", batch_size=1)
for res in output:
res.print()
res.save_to_img(save_path="./output/")
res.save_to_json(save_path="./output/res.json")
実行後、以下のような結果が得られます。
{'res': {'input_path': '/root/.paddlex/predict_input/QmaPtftqwOgCtx0AIvU2z.png', 'page_index': None, 'rec_text': 'the number of model parameters and FLOPs get larger, it', 'rec_score': 0.9796906113624573}}
可視化画像は以下の通りです。
コマンドとパラメータの説明の詳細は、ドキュメントを参照してください。
高度な使用法
単一のモデルの能力には限界がありますが、複数のモデルで構成されるパイプラインは、実際のシーンの難題を解決するためのより強力な能力を提供することができます。
PP-OCRv4
汎用OCRパイプラインは、画像からテキスト情報を抽出し、文字列形式で出力することで、テキスト認識タスクを解決します。パイプラインには5つのモジュールがあります。
- 文書画像方向分類モジュール(オプション)
- テキスト画像補正モジュール(オプション)
- テキスト行方向分類モジュール(オプション)
- テキスト検出モジュール
- テキスト認識モジュール
単一のコマンドを実行して、OCRパイプラインをすぐに試すことができます。
paddleocr ocr -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/818ebrVG4OtH3sjLR-NRI.png \
--text_recognition_model_name PP-OCRv4_server_rec_doc \
--use_doc_orientation_classify False \
--use_doc_unwarping False \
--use_textline_orientation True \
--save_path ./output \
--device gpu:0
結果はターミナルに表示されます。
{'res': {'input_path': '/root/.paddlex/predict_input/818ebrVG4OtH3sjLR-NRI.png', 'page_index': None, 'model_settings': {'use_doc_preprocessor': True, 'use_textline_orientation': True}, 'doc_preprocessor_res': {'input_path': None, 'page_index': None, 'model_settings': {'use_doc_orientation_classify': False, 'use_doc_unwarping': False}, 'angle': -1}, 'dt_polys': array([[[ 0, 10],
...,
[ 0, 72]],
...,
[[189, 915],
...,
[190, 960]]], dtype=int16), 'text_det_params': {'limit_side_len': 64, 'limit_type': 'min', 'thresh': 0.3, 'max_side_limit': 4000, 'box_thresh': 0.6, 'unclip_ratio': 1.5}, 'text_type': 'general', 'textline_orientation_angles': array([1, ..., 0]), 'text_rec_score_thresh': 0.0, 'rec_texts': ['国8866', 'PPSS', '登机牌', 'BOARDING', '座位号', 'SEAT NO.', '舱位', 'CLASS', '序号', '日期DATE', 'SERIAL NO.', '航班FLIGHT', 'W', '035', 'MU237903DEC', '始发地', 'FROM', '登机口', 'GATE', '登机时间BDT', '目的地TO', '福州', 'TAIYUAN', 'G11', 'FUZHOU', '身份识别IDNO.', '姓名', 'NAME', 'ZHANGQIWEI', '票号TKTNO.', '张祺伟', '票价FARE', 'ETKT7813699238489/1', '登机口于起飞前1O分钟关闭 GATESCLOSE1OMINUTESBEFOREDEPARTURETIME'], 'rec_scores': array([0.80317128, ..., 0.96791613]), 'rec_polys': array([[[ 0, 10],
...,
[ 0, 72]],
...,
[[189, 915],
...,
[190, 960]]], dtype=int16), 'rec_boxes': array([[ 0, ..., 72],
...,
[189, ..., 960]], dtype=int16)}}
save_path
を指定した場合、可視化結果はsave_path
以下に保存されます。可視化出力は以下の通りです。

コマンドライン方式はすぐに試すのに便利です。プロジェクトに統合する場合は、数行のコードで済みます。
from paddleocr import PaddleOCR
ocr = PaddleOCR(
text_recognition_model_name="PP-OCRv4_server_rec_doc",
use_doc_orientation_classify=False,
use_doc_unwarping=False,
use_textline_orientation=True,
device="gpu:0",
)
result = ocr.predict("https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/818ebrVG4OtH3sjLR-NRI.png")
for res in result:
res.print()
res.save_to_img("output")
res.save_to_json("output")
パイプラインでデフォルトで使用されるモデルはPP-OCRv5_server_rec
です。そのため、パラメータtext_recognition_model_name
でPP-OCRv4_server_rec_doc
を指定する必要があります。また、パラメータtext_recognition_model_dir
を使用して、ローカルのモデルファイルを使用することもできます。コマンドとパラメータの説明の詳細は、ドキュメントを参照してください。
✨ 主な機能
PP-OCRv4_server_rec_docには以下の主な機能があります。
- PP-OCRv4_server_recをベースに混合データセットで学習され、繁体字、日本語文字、特殊記号の認識能力が強化されています。
- 15000文字以上をサポートし、文書関連のテキストと一般的なテキストの認識能力が向上しています。
📚 ドキュメント
属性 |
詳細 |
モデルタイプ |
PP-OCRv4_server_rec_doc |
学習データ |
より多くの中国語文書データとPP-OCRの学習データを混合したデータセット |
📄 ライセンス
このプロジェクトはApache-2.0ライセンスを採用しています。
🔗 関連リンク
⚠️ 重要な注意事項
一行の中の任意の文字(句読点を含む)が誤認識された場合、その行全体が誤りとしてマークされます。これにより、実際のアプリケーションでより高い精度が保証されます。