🚀 PP-OCRv4_mobile_rec
PP-OCRv4_mobile_recは、PaddleOCRチームによって開発されたPP-OCRv4_recシリーズのテキスト行認識モデルです。PP-OCRv4はPP-OCRv3のアップグレード版で、全体的なフレームワークはPP-OCRv3と同じ流れを維持しながら、検出と認識モデルのデータ、ネットワーク構造、トレーニング戦略などの複数のモジュールを最適化しています。一般的な中国語と英語のシーンでのテキスト行認識をサポートしていますが、主に中国語に重点を置いています。主要な精度指標は以下の通りです。
🚀 クイックスタート
✨ 主な機能
PP-OCRv4_mobile_recは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
💻 使用例
基本的な使用法
以下のコマンドを使用して、モデルの機能をすぐに体験できます。
paddleocr text_recognition \
--model_name PP-OCRv4_mobile_rec \
-i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/QmaPtftqwOgCtx0AIvU2z.png
また、テキスト認識モジュールのモデル推論をあなたのプロジェクトに統合することもできます。以下のコードを実行する前に、サンプル画像をローカルマシンにダウンロードしてください。
from paddleocr import TextRecognition
model = TextRecognition(model_name="PP-OCRv4_mobile_rec")
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.9915317893028259}}
可視化画像は以下の通りです。
使用コマンドとパラメータの説明に関する詳細情報は、ドキュメントを参照してください。
高度な使用法
単一のモデルの能力には限界がありますが、複数のモデルで構成されるパイプラインは、実際のシーンでの難題を解決するためのより強力な能力を提供できます。
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_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/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': ['准动国本008866', 'SSS', '登机牌', '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', '登机口于起飞前10分钟关闭GATESCL0SE10MINUTESBEFOREDEPARTURETIME'], 'rec_scores': array([0.34848779, ..., 0.96997255]), '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_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/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_mobile_rec
を指定する必要があります。また、パラメータtext_recognition_model_dir
を使用してローカルのモデルファイルを使用することもできます。使用コマンドとパラメータの説明に関する詳細情報は、ドキュメントを参照してください。
📚 ドキュメント
属性 |
詳細 |
モデルタイプ |
テキスト行認識モデル |
トレーニングデータ |
未記載 |
🔧 技術詳細
PP-OCRv4はPP-OCRv3のアップグレード版で、全体的なフレームワークはPP-OCRv3と同じ流れを維持しながら、いくつかの重要なモジュールで最適化されています。データモジュールでは、より豊富で代表的なトレーニングデータを使用することで、モデルの汎化能力を向上させています。ネットワーク構造に関しては、検出と認識モデルのネットワークを調整し、改善することで、テキストの特徴をよりよく捉えることができるようになっています。トレーニング戦略では、より高度な最適化アルゴリズムや正則化手法を使用することで、モデルの収束を加速し、過学習を防止しています。これらの最適化措置により、中国語と英語のテキスト行認識タスクでのモデルの性能が向上しています。
📄 ライセンス
このプロジェクトはApache-2.0ライセンスを採用しています。
🔗 関連リンク
⚠️ 重要な注意事項
行内の任意の文字(句読点を含む)が誤っている場合、その行全体が誤りとしてマークされます。これにより、実際のアプリケーションでの精度が向上します。
💡 使用上のヒント
モデルを使用して推論を行う際は、実際のハードウェア環境に合わせて適切なインストール方法を選択することをおすすめします。例えば、GPUを使用して推論を高速化すると、処理速度を大幅に向上させることができます。また、モデルをプロジェクトに統合する際は、ドキュメントの詳細な説明を参考に、パラメータを適切に調整して、最適な認識結果を得ることができます。