【PaddleOCR】PP-StructureV3 命令行和python方式的快速运行

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【PaddleOCR】PP-StructureV3 命令行和python方式的快速运行

一、PP-StructureV3 简介

  PP-StructureV3 是在通用版面解析 v1 产线基础上强化升级的新一代文档解析解决方案。它在版面区域检测、表格识别、公式识别等方面能力大幅提升,还新增了图表理解和多栏阅读顺序恢复功能,甚至能将结果转换为 Markdown 文件,极大地提升了文档数据的可用性和易用性。

二、快速开始

  在本地使用 PP-StructureV3 产线前,请确保您已经按照安装教程完成了 wheel 包安装。安装完成后,可以在本地使用命令行体验或 Python 集成。

2.1 命令行方式体验

  一行命令即可快速体验 PP-StructureV3 产线效果:

paddleocr pp_structurev3 -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/pp_structure_v3_demo.png

  通过参数调整功能:

# 通过 --use_doc_orientation_classify 指定是否使用文档方向分类模型
paddleocr pp_structurev3 -i ./pp_structure_v3_demo.png --use_doc_orientation_classify True

# 通过 --use_doc_unwarping 指定是否使用文本图像矫正模块
paddleocr pp_structurev3 -i ./pp_structure_v3_demo.png --use_doc_unwarping True

# 通过 --use_textline_orientation 指定是否使用文本行方向分类模型
paddleocr pp_structurev3 -i ./pp_structure_v3_demo.png --use_textline_orientation False

# 通过 --device 指定模型推理时使用 GPU
paddleocr pp_structurev3 -i ./pp_structure_v3_demo.png --device gpu

  命令行支持更多参数设置,以下是命令行参数的详细说明:

参数参数说明参数类型默认值
input待预测数据,必填。支持多种输入类型,如图像文件、PDF 文件的本地路径或 URL 链接。str
save_path指定推理结果文件保存的路径。如果不设置,推理结果将不会保存到本地。str
layout_detection_model_name版面区域检测的模型名称。如果不设置,将会使用产线默认模型。strNone
layout_detection_model_dir版面区域检测模型的目录路径。如果不设置,将会下载官方模型。strNone
layout_threshold版面模型得分阈值。0-1 之间的任意浮点数。如果不设置,默认初始化为 0.5。floatNone
layout_nms版面检测是否使用后处理 NMS。如果不设置,默认初始化为 True。boolNone
layout_unclip_ratio版面区域检测模型检测框的扩张系数。如果不设置,默认初始化为 1.0。floatNone
layout_merge_bboxes_mode版面检测中模型输出的检测框的合并处理模式。如果不设置,默认初始化为 large。strNone
chart_recognition_model_name图表解析的模型名称。如果不设置,将会使用产线默认模型。strNone
chart_recognition_model_dir图表解析模型的目录路径。如果不设置,将会下载官方模型。strNone
chart_recognition_batch_size图表解析模型的 batch size。如果不设置,默认设置为 1。intNone
region_detection_model_name文档图像版面子模块检测的模型名称。如果不设置,将会使用产线默认模型。strNone
region_detection_model_dir文档图像版面子模块检测模型的目录路径。如果不设置,将会下载官方模型。strNone
doc_orientation_classify_model_name文档方向分类模型的名称。如果不设置,将会使用产线默认模型。strNone
doc_orientation_classify_model_dir文档方向分类模型的目录路径。如果不设置,将会下载官方模型。strNone
doc_unwarping_model_name文本图像矫正模型的名称。如果不设置,将会使用产线默认模型。strNone
doc_unwarping_model_dir文本图像矫正模型的目录路径。如果不设置,将会下载官方模型。strNone
text_detection_model_name文本检测模型的名称。如果不设置,将会使用产线默认模型。strNone
text_detection_model_dir文本检测模型的目录路径。如果不设置,将会下载官方模型。strNone
text_det_limit_side_len文本检测的图像边长限制。大于 0 的任意整数。如果不设置,默认初始化为 960。intNone
text_det_limit_type文本检测的图像边长限制类型。支持 min 和 max,默认初始化为 max。strNone
text_det_thresh检测像素阈值,默认初始化为 0.3。floatNone
text_det_box_thresh检测框阈值,默认初始化为 0.6。floatNone
text_det_unclip_ratio文本检测扩张系数,默认初始化为 2.0。floatNone
textline_orientation_model_name文本行方向模型的名称。如果不设置,将会使用产线默认模型。strNone
textline_orientation_model_dir文本行方向模型的目录路径。如果不设置,将会下载官方模型。strNone
textline_orientation_batch_size文本行方向模型的 batch size。如果不设置,默认设置为 1。intNone
text_recognition_model_name文本识别模型的名称。如果不设置,将会使用产线默认模型。strNone
text_recognition_model_dir文本识别模型的目录路径。如果不设置,将会下载官方模型。strNone
text_recognition_batch_size文本识别模型的 batch size。如果不设置,默认设置为 1。intNone
text_rec_score_thresh文本识别阈值,默认初始化为 0.0。floatNone
table_classification_model_name表格分类模型的名称。如果不设置,将会使用产线默认模型。strNone
table_classification_model_dir表格分类模型的目录路径。如果不设置,将会下载官方模型。strNone
wired_table_structure_recognition_model_name有线表格结构识别模型的名称。如果不设置,将会使用产线默认模型。strNone
wired_table_structure_recognition_model_dir有线表格结构识别模型的目录路径。如果不设置,将会下载官方模型。strNone
wireless_table_structure_recognition_model_name无线表格结构识别模型的名称。如果不设置,将会使用产线默认模型。strNone
wireless_table_structure_recognition_model_dir无线表格结构识别模型的目录路径。如果不设置,将会下载官方模型。strNone
wired_table_cells_detection_model_name有线表格单元格检测模型的名称。如果不设置,将会使用产线默认模型。strNone
wired_table_cells_detection_model_dir有线表格单元格检测模型的目录路径。如果不设置,将会下载官方模型。strNone
wireless_table_cells_detection_model_name无线表格单元格检测模型的名称。如果不设置,将会使用产线默认模型。strNone
wireless_table_cells_detection_model_dir无线表格单元格检测模型的目录路径。如果不设置,将会下载官方模型。strNone
table_orientation_classify_model_name表格方向分类模型的名称。如果不设置,将会使用产线默认模型。strNone
table_orientation_classify_model_dir表格方向分类模型的目录路径。如果不设置,将会下载官方模型。strNone
seal_text_detection_model_name印章文本检测模型的名称。如果不设置,将会使用产线默认模型。strNone
seal_text_detection_model_dir印章文本检测模型的目录路径。如果不设置,将会下载官方模型。strNone
seal_det_limit_side_len印章文本检测的图像边长限制。大于 0 的任意整数。如果不设置,默认初始化为 736。intNone
seal_det_limit_type印章文本检测的图像边长限制类型。支持 min 和 max,默认初始化为 min。strNone
seal_det_thresh检测像素阈值,默认初始化为 0.2。floatNone
seal_det_box_thresh检测框阈值,默认初始化为 0.6。floatNone
seal_det_unclip_ratio印章文本检测扩张系数,默认初始化为 0.5。floatNone
seal_text_recognition_model_name印章文本识别模型的名称。如果不设置,将会使用产线默认模型。strNone
seal_text_recognition_model_dir印章文本识别模型的目录路径。如果不设置,将会下载官方模型。strNone
seal_text_recognition_batch_size印章文本识别模型的 batch size。如果不设置,默认设置为 1。intNone
seal_rec_score_thresh印章文本识别阈值,默认初始化为 0.0。floatNone
formula_recognition_model_name公式识别模型的名称。如果不设置,将会使用产线默认模型。strNone
formula_recognition_model_dir公式识别模型的目录路径。如果不设置,将会下载官方模型。strNone
formula_recognition_batch_size公式识别模型的 batch size。如果不设置,默认设置为 1。intNone
use_doc_orientation_classify是否使用文档方向分类模块。boolFalse
use_doc_unwarping是否使用文本图像矫正模块。boolFalse
use_textline_orientation是否使用文本行方向分类模块。boolTrue
use_seal_recognition是否使用印章文本识别子产线。boolTrue
use_table_recognition是否使用表格识别子产线。boolTrue
use_formula_recognition是否使用公式识别子产线。boolTrue
use_chart_recognition是否使用图表解析模块。boolFalse
use_region_detection是否使用文档区域检测子产线。boolTrue
device用于推理的设备。支持指定具体卡号,默认优先使用 GPU。strNone
enable_hpi是否启用高性能推理。boolFalse
use_tensorrt是否启用 TensorRT 子图引擎。boolFalse
precision计算精度,如 fp32、fp16。str“fp32”
enable_mkldnn是否启用 MKL-DNN 加速推理。boolTrue
mkldnn_cache_capacityMKL-DNN 缓存容量。int10
cpu_threads在 CPU 上进行推理时使用的线程数。int8
paddlex_configPaddleX 产线配置文件路径。strNone

2.2 Python 脚本方式集成

  命令行方式是为了快速体验查看效果,一般来说,在项目中,往往需要通过代码集成,您可以通过几行代码即可完成产线的快速推理,推理代码如下:

from paddleocr import PPStructureV3

pipeline = PPStructureV3()
output = pipeline.predict("./pp_structure_v3_demo.png")
for res in output:
    res.print()  # 打印预测的结构化输出
    res.save_to_json(save_path="output")  # 保存当前图像的结构化 JSON 结果
    res.save_to_markdown(save_path="output")  # 保存当前图像的 Markdown 格式的结果

  如果是 PDF 文件,会将 PDF 的每一页单独处理,每一页的 Markdown 文件也会对应单独的结果。如果希望整个 PDF 文件转换为 Markdown 文件,建议使用以下的方式运行:

from pathlib import Path
from paddleocr import PPStructureV3

input_file = "./your_pdf_file.pdf"
output_path = Path("./output")

pipeline = PPStructureV3()
output = pipeline.predict(input=input_file)

markdown_list = []
markdown_images = []

for res in output:
    md_info = res.markdown
    markdown_list.append(md_info)
    markdown_images.append(md_info.get("markdown_images", {}))

markdown_texts = pipeline.concatenate_markdown_pages(markdown_list)

mkd_file_path = output_path / f"{Path(input_file).stem}.md"
mkd_file_path.parent.mkdir(parents=True, exist_ok=True)

with open(mkd_file_path, "w", encoding="utf-8") as f:
    f.write(markdown_texts)

for item in markdown_images:
    if item:
        for path, image in item.items():
            file_path = output_path / path
            file_path.parent.mkdir(parents=True, exist_ok=True)
            image.save(file_path)

在这里插入图片描述
在这里插入图片描述

  注:PP-StructureV3 产线使用的默认文本识别模型为中英文识别模型,对于纯英文的识别能力有限,对于全英文场景,您可以设置 text_recognition_model_name 参数为 en_PP-OCRv4_mobile_rec 等英文识别模型以取得更好的识别效果。对应其他语言场景,也可以参考前文的模型列表,选择对应的语言识别模型进行替换。

  在示例代码中,use_doc_orientation_classifyuse_doc_unwarpinguse_textline_orientation 参数默认均设置为 False,分别表示关闭文档方向分类、文本图像矫正、文本行方向分类功能,如果需要使用这些功能,可以手动设置为 True

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云天徽上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值