🚀 PP-OCRv4_server_seal_det
PP-OCRv4のサーバーサイドの印章テキスト検出モデルは、より高い精度を持ち、良好な構成のサーバーにデプロイするのに適しています。このモデルは、印章テキスト検出の難題を効果的に解決し、文書処理などのシナリオで正確な印章テキスト認識サポートを提供します。
🚀 クイックスタート
📦 インストール
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
💻 使用例
基本的な使用法
1つのコマンドでこの機能をすぐに体験できます。
paddleocr seal_text_detection \
--model_name PP-OCRv4_server_seal_det \
-i https://cdn-uploads.huggingface.co/production/uploads/63d7b8ee07cd1aa3c49a2026/k02u35x60XZmaL9hzeQ0T.png
また、印章テキスト検出モジュールのモデル推論をあなたのプロジェクトに統合することもできます。以下のコードを実行する前に、サンプル画像をローカルにダウンロードしてください。
from paddleocr import SealTextDetection
model = SealTextDetection(model_name="PP-OCRv4_server_seal_det")
output = model.predict(input="k02u35x60XZmaL9hzeQ0T.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': 'k02u35x60XZmaL9hzeQ0T.png', 'page_index': None, 'dt_polys': [array([[165, 469],
...,
[161, 466]]), array([[444, 444],
...,
[441, 443]]), array([[466, 346],
...,
[462, 345]]), array([[324, 38],
...,
[320, 37]])], 'dt_scores': [0.989991263358307, 0.9934761181445114, 0.9916670610495292, 0.9857514344934838]}}
可視化後の画像は次の通りです。

コマンドとパラメータの説明の詳細情報は、ドキュメントを参照してください。
高度な使用法
単一のモデルの能力には限界がありますが、複数のモデルで構成されるパイプラインは、より強力な能力を提供し、現実のシナリオでの難題を解決することができます。
印章テキスト認識パイプライン
印章テキスト認識は、文書や画像から自動的に印章内容を抽出して認識する技術です。印章テキスト認識は文書処理の一部であり、契約照合、倉庫入出庫審査、請求書経費精査など、さまざまなシナリオで多くの応用があります。このパイプラインには5つのモジュールが含まれています。
- 印章テキスト検出モジュール
- テキスト認識モジュール
- レイアウト検出モジュール(オプション)
- 文書画像方向分類モジュール(オプション)
- テキスト画像矯正モジュール(オプション)
以下のコマンドを実行して、OCRパイプラインをすぐに体験してください。
paddleocr seal_recognition -i https://cdn-uploads.huggingface.co/production/uploads/63d7b8ee07cd1aa3c49a2026/k02u35x60XZmaL9hzeQ0T.png \
--seal_text_detection_model_name PP-OCRv4_server_seal_det \
--use_doc_orientation_classify False \
--use_doc_unwarping False \
--save_path ./output \
--device gpu:0
結果はターミナルに表示されます。
{'res': {'input_path': '/root/.paddlex/predict_input/k02u35x60XZmaL9hzeQ0T.png', 'model_settings': {'use_doc_preprocessor': True, 'use_layout_detection': True}, 'doc_preprocessor_res': {'input_path': None, 'page_index': None, 'model_settings': {'use_doc_orientation_classify': False, 'use_doc_unwarping': False}, 'angle': -1}, 'layout_det_res': {'input_path': None, 'page_index': None, 'boxes': [{'cls_id': 16, 'label': 'seal', 'score': 0.9755404591560364, 'coordinate': [6.19458, 0.17910767, 634.38385, 628.8424]}]}, 'seal_res_list': [{'input_path': None, 'page_index': None, 'model_settings': {'use_doc_preprocessor': False, 'use_textline_orientation': False}, 'dt_polys': [array([[320, 38],
...,
[315, 38]]), array([[461, 347],
...,
[456, 346]]), array([[439, 445],
...,
[434, 444]]), array([[158, 468],
...,
[154, 466]])], 'text_det_params': {'limit_side_len': 736, 'limit_type': 'min', 'thresh': 0.2, 'max_side_limit': 4000, 'box_thresh': 0.6, 'unclip_ratio': 0.5}, 'text_type': 'seal', 'textline_orientation_angles': array([-1, ..., -1]), 'text_rec_score_thresh': 0, 'rec_texts': ['天津君和缘商贸有限公司', '发票专用章', '吗繁物', '5263647368706'], 'rec_scores': array([0.99340463, ..., 0.9916274 ]), 'rec_polys': [array([[320, 38],
...,
[315, 38]]), array([[461, 347],
...,
[456, 346]]), array([[439, 445],
...,
[434, 444]]), array([[158, 468],
...,
[154, 466]])], 'rec_boxes': array([], dtype=float64)}]}}
save_path
を指定した場合、可視化結果はsave_path
以下に保存されます。可視化出力は次の通りです。

コマンドライン方式は、すぐに体験するのに適しています。プロジェクトへの統合については、数行のコードで済みます。
from paddleocr import PaddleOCR
ocr = PaddleOCR(
seal_text_detection_model_name="PP-OCRv4_server_seal_det",
use_doc_orientation_classify=False,
use_doc_unwarping=False,
device="gpu:0",
)
result = ocr.predict("https://cdn-uploads.huggingface.co/production/uploads/63d7b8ee07cd1aa3c49a2026/k02u35x60XZmaL9hzeQ0T.png")
for res in result:
res.print()
res.save_to_img("output")
res.save_to_json("output")
パイプラインで使用されるデフォルトのモデルはPP-OCRv4_server_seal_det
です。コマンドとパラメータの説明の詳細情報は、ドキュメントを参照してください。
📚 ドキュメント
属性 |
詳細 |
モデルタイプ |
サーバーサイドの印章テキスト検出モデル |
学習データ |
文書に記載なし |
✨ 主な機能
PP-OCRv4_server_seal_detモデルには以下の特性があります。
- 高精度:重要な精度指標であるHmeanが98.21%に達します(PaddleXのカスタムテストデータセットに基づき、500枚の円形印章画像を含む)。
- サーバーデプロイに適しています:良好な構成のサーバーにデプロイするのに適しています。
- 複数の使用方法をサポート:コマンドラインですぐに体験できるだけでなく、プロジェクトに統合して使用することもできます。
- 強力なパイプライン能力:他のモジュールとパイプラインを構成し、現実のシナリオでの複雑な問題を解決できます。
📄 ライセンス
本プロジェクトはApache-2.0ライセンスを採用しています。
🔗 関連リンク
⚠️ 重要な注意
上記の指標は、PaddleXのカスタムテストデータセットに基づいており、500枚の円形印章画像を含んでいます。
💡 使用上の提案
コードを実行する前に、PaddlePaddleとPaddleOCRが正しくインストールされていることを確認し、サンプル画像をローカルにダウンロードしてください。