🚀 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许可证。
🔗 相关链接