🚀 PP-LCNet_x1_0_doc_ori
文檔圖像方向分類模塊主要用於區分文檔圖像的方向,並通過後處理對其進行校正。在文檔掃描或身份證照片拍攝等過程中,為了獲得更清晰的圖像,設備可能會被旋轉,從而導致圖像出現各種方向。標準的OCR流程可能無法有效處理這些圖像。通過利用圖像分類技術,可以預先確定包含文本區域的文檔或身份證的方向並進行調整,從而提高OCR處理的準確性。
📦 安裝指南
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 doc_img_orientation_classification \
--model_name PP-LCNet_x1_0_doc_ori \
-i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/4ifXaBJmFByG_mAnF86Vv.png
你也可以將文本識別模塊的模型推理集成到你的項目中。在運行以下代碼之前,請將示例圖像下載到本地機器。
from paddleocr import DocImgOrientationClassification
model = DocImgOrientationClassification(model_name="PP-LCNet_x1_0_doc_ori")
output = model.predict(input="4ifXaBJmFByG_mAnF86Vv.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/4ifXaBJmFByG_mAnF86Vv.png', 'page_index': None, 'class_ids': array([2], dtype=int32), 'scores': array([0.90971], dtype=float32), 'label_names': ['180']}}
可視化圖像如下:
使用命令和參數說明的詳細信息,請參考文檔。
高級用法
單個模型的能力是有限的。但是由多個模型組成的管道可以提供更多的能力來解決現實場景中的難題。
doc_preprocessor
文檔圖像預處理管道集成了兩個關鍵功能:文檔方向分類和幾何畸變校正。文檔方向分類模塊自動識別文檔的四種可能方向(0°、90°、180°、270°),確保文檔以正確的方向進行處理。文本圖像去畸變模型旨在校正文檔拍攝或掃描過程中出現的幾何畸變,恢復文檔的原始形狀和比例。此管道適用於數字文檔管理、OCR預處理任務以及任何需要提高文檔圖像質量的場景。通過自動進行方向校正和幾何畸變校正,該模塊顯著提高了文檔處理的準確性和效率,為圖像分析提供了更可靠的基礎。該管道還提供了靈活的面向服務的部署選項,支持在多個硬件平臺上使用各種編程語言進行調用。此外,該管道支持二次開發,允許你在自己的數據集上對模型進行微調,並無縫集成訓練好的模型。管道中有2個模塊:
- 文檔圖像方向分類模塊(可選)
- 文本圖像去畸變模塊(可選)
運行單條命令快速體驗OCR管道:
paddleocr doc_preprocessor -i https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/pY6sY6wLDuoHF1-cGUvDr.png \
--use_doc_orientation_classify True \
--use_doc_unwarping True \
--doc_orientation_classify_model_name PP-LCNet_x1_0_doc_ori \
--save_path ./output \
--device gpu:0
結果會打印到終端:
{'res': {'input_path': '/root/.paddlex/predict_input/pY6sY6wLDuoHF1-cGUvDr.png', 'page_index': None, 'model_settings': {'use_doc_orientation_classify': True, 'use_doc_unwarping': True}, 'angle': 180}}
如果指定了save_path
,可視化結果將保存到save_path
下。可視化輸出如下:
命令行方法適用於快速體驗。對於項目集成,也只需要幾行代碼:
from paddleocr import DocPreprocessor
ocr = DocPreprocessor(
doc_orientation_classify_model_name="PP-LCNet_x1_0_doc_ori",
use_doc_orientation_classify=True,
use_doc_unwarping=True,
device="gpu:0",
)
result = ocr.predict("https://cdn-uploads.huggingface.co/production/uploads/681c1ecd9539bdde5ae1733c/pY6sY6wLDuoHF1-cGUvDr.png")
for res in result:
res.print()
res.save_to_img("output")
res.save_to_json("output")
📚 詳細文檔
屬性 |
詳情 |
模型類型 |
基於PP-LCNet_x1_0的文檔圖像分類模型,有四個類別:0°、90°、180°和270° |
識別平均準確率(%) |
99.06 |
模型存儲大小 (M) |
7 |
📄 許可證
本項目採用Apache-2.0許可證。
🔗 相關鏈接