🚀 阿拉伯語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許可證。