🚀 アラビア語PP-OCRv3モバイル認識モデル
arabic_PP-OCRv3_mobile_recは、PaddleOCRチームによって開発されたPP-OCRv3_recシリーズのテキスト行認識モデルです。このモデルは、PP-OCRv3_mobile_recをベースにアラビア文字に特化して訓練されたもので、アラビア文字の認識をサポートしています。主要な精度指標は以下の通りです。
モデル |
認識平均精度(%) |
モデル保存サイズ (M) |
説明 |
arabic_PP-OCRv3_mobile_rec |
73.55 |
7.8 M |
PP-OCRv3認識モデルをベースに訓練された超軽量のアラビア文字認識モデルで、アラビア文字と数字文字の認識をサポートします。 |
⚠️ 重要提示
一行内の任意の文字(句読点を含む)が誤認識された場合、その行は誤りとしてマークされます。これにより、実際のアプリケーションでの高精度が保証されます。
🚀 クイックスタート
📦 インストール
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 arabic_PP-OCRv3_mobile_rec \
-i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/EPkFpN_xkKTh1URMOsjE6.png
また、テキスト認識モジュールのモデル推論をあなたのプロジェクトに統合することもできます。以下のコードを実行する前に、サンプル画像をローカルマシンにダウンロードしてください。
from paddleocr import TextRecognition
model = TextRecognition(model_name="arabic_PP-OCRv3_mobile_rec")
output = model.predict(input="EPkFpN_xkKTh1URMOsjE6.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/EPkFpN_xkKTh1URMOsjE6.png', 'page_index': None, 'rec_text': 'ددعتم يبرع صن رابتخا ةلاح', 'rec_score': 0.9411801695823669}}
使用コマンドとパラメータの説明に関する詳細情報は、ドキュメントを参照してください。
高度な使用法
単一のモデルの能力には限界があります。しかし、複数のモデルから構成されるパイプラインは、現実のシーンでの難題を解決するための強力な機能を提供します。
PP-OCRv3
一般的なOCRパイプラインは、テキスト認識タスクを解決するために使用され、画像からテキスト情報を抽出して文字列形式で出力します。パイプラインには5つのモジュールがあります。
- ドキュメント画像方向分類モジュール(オプション)
- テキスト画像歪み補正モジュール(オプション)
- テキスト行方向分類モジュール(オプション)
- テキスト検出モジュール
- テキスト認識モジュール
以下の単一コマンドを実行して、OCRパイプラインをすぐに試してみてください。
paddleocr ocr -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/Z1WF0PAh9lBnXZdOYE9QL.png \
--text_recognition_model_name arabic_PP-OCRv3_mobile_rec \
--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/Z1WF0PAh9lBnXZdOYE9QL.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([[[ 6, 5],
...,
[ 6, 38]],
[[199, 32],
...,
[200, 68]]], 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([0, 0]), 'text_rec_score_thresh': 0.0, 'rec_texts': ['ددعتم يبرع صن رابتخاةلاح', 'رطسألا'], 'rec_scores': array([0.98472452, 0.99996692]), 'rec_polys': array([[[ 6, 5],
...,
[ 6, 38]],
[[199, 32],
...,
[200, 68]]], dtype=int16), 'rec_boxes': array([[ 6, ..., 38],
[199, ..., 68]], dtype=int16)}}
コマンドライン方式はすぐに試すのに便利です。プロジェクトへの統合には、数行のコードで済みます。
from paddleocr import PaddleOCR
ocr = PaddleOCR(
text_recognition_model_name="arabic_PP-OCRv3_mobile_rec",
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/Z1WF0PAh9lBnXZdOYE9QL.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
パラメータでarabic_PP-OCRv3_mobile_rec
を指定する必要があります。また、text_recognition_model_dir
パラメータを使ってローカルのモデルファイルを使用することもできます。使用コマンドとパラメータの説明に関する詳細情報は、ドキュメントを参照してください。
📚 ドキュメント
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下で提供されています。