ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PaddleOCR 快速开始:基于 PaddleX 低代码产线的一行命令与 Python 推理实战指南

PaddleOCR 快速开始:基于 PaddleX 低代码产线的一行命令与 Python 推理实战指南 PaddleOCR 快速开始基于 PaddleX 低代码产线的一行命令与 Python 推理实战指南【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR本篇技术指南围绕 PaddleOCR 3.x 的 PaddleX 低代码产线能力展开聚焦于安装环境、统一命令行推理、Python 脚本推理三大主线并延伸到产线配置文件的导出与加载等进阶用法。读完本文你将掌握如何用一条命令或几行 Python 代码快速跑通通用 OCR、表格识别、公式识别、版面解析、印章识别等产线同时了解这些产线在仓库源码中的真实注册与调用机制。一、前置认知什么是 PaddleX 产线PaddleX 是飞桨PaddlePaddle推出的低代码开发工具依托 PaddleOCR 的先进技术支持 OCR 领域的低代码全流程开发——模型的使用、组合与定制都可以通过简单高效的方式完成。本仓库文档 PaddleOCR 与 PaddleX 明确指出PaddleOCR 在模型推理、前后处理及多模型组合等底层能力上主要依赖 PaddleX安装 PaddleOCR 时 PaddleX 会作为依赖一并安装且两者在产线名称上保持一致。模型产线Pipeline是指一系列预定义好的、针对特定 AI 任务的开发流程包含能够独立完成某类任务的单模型单功能模块组合。PaddleX 致力于实现产线级别的模型训练、推理与部署本文档quick_start.en.md提供OCR 相关产线的快速推理使用指南覆盖以下产线产线名称核心功能OCR通用 OCR文本检测 文本行方向分类 文本识别doc_preprocessor文档图像预处理文档方向分类 文档扭曲矫正table_recognition/table_recognition_v2通用表格识别 / 表格识别 v2formula_recognition公式识别seal_recognition印章文本识别layout_parsing通用版面解析PP-StructureV3通用版面解析 v3PP-StructureV3PP-ChatOCRv3-doc/PP-ChatOCRv4-doc文档场景信息抽取 v3 / v4在仓库源码中PaddleOCR 通过PaddleXPipelineWrapper这一基类将上述产线逐一封装见 paddleocr/_pipelines/base.py 与 paddleocr/_pipelines/init.py其中注册了PaddleOCR对应产线OCR、DocPreprocessor、TableRecognitionPipelineV2、FormulaRecognitionPipeline、SealRecognition、PPStructureV3、PPChatOCRv4Doc等类每个类通过_paddlex_pipeline_name属性声明自己对应的 PaddleX 产线注册名例如 paddleocr/_pipelines/ocr.py 中_paddlex_pipeline_name返回OCR。二、环境安装PaddlePaddle PaddleX❗ 在安装 PaddleX 之前请确保已具备基本的Python 运行环境目前支持 Python 3.8 至 Python 3.13。PaddleX 3.2 版本依赖的 PaddlePaddle 版本为3.0.0 及以上。2.1 安装 PaddlePaddle根据运行设备选择对应的飞桨安装命令# CPU 版本 python -m pip install paddlepaddle3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/ # GPU 版本cu118需显卡驱动程序版本 ≥450.80.02Linux或 ≥452.39Windows python -m pip install paddlepaddle-gpu3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ # GPU 版本cu126需显卡驱动程序版本 ≥550.54.14Linux 或 Windows python -m pip install paddlepaddle-gpu3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu126/❗关键提示无需关注物理机上的 CUDA 版本只需关注显卡驱动程序版本。驱动版本满足要求即可运行对应 Wheel 包这大幅降低了 GPU 环境的搭建门槛。2.2 安装 PaddleXpip install paddlex[ocr][ocr]是 PaddleX 的可选依赖标记表示只安装 OCR 类任务所需依赖避免无关依赖导致体积膨胀。这一点与 PaddleOCR 与 PaddleX 关系文档 的说明一致安装paddleocrPython 分发包时只会安装 OCR 类任务需要使用的 PaddleX 依赖。安装完成后即可使用paddlex命令行工具或通过from paddlex import create_pipeline进行 Python 开发。三、命令行使用一行命令快速体验产线PaddleX 提供了统一的命令行格式一条命令即可快速体验产线效果paddlex --pipeline [产线名称] --input [输入图片] --device [运行设备]每条产线对应特定的参数可在各自产线文档中查看详细说明。每条产线都必须指定以下三个必要参数参数说明--pipeline产线名称或产线配置文件的路径--input待处理输入文件如图片的本地路径、目录或 URL--device运行硬件设备及序号如gpu:0第 0 块 GPU也可选择 NPUnpu:0、XPUxpu:0、CPUcpu等3.1 通用 OCR 产线示例以通用 OCR 产线为例一条命令即可完成“文档方向分类 文档矫正 文本行方向分类 文本检测 文本识别”的全流程推理paddlex --pipeline OCR \ --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png \ --use_doc_orientation_classify False \ --use_doc_unwarping False \ --use_textline_orientation False \ --save_path ./output \ --device gpu:0其中--use_doc_orientation_classify、--use_doc_unwarping、--use_textline_orientation分别控制是否启用文档方向分类、文档扭曲矫正、文本行方向分类--save_path指定可视化结果与 JSON 结果的保存目录。当输入为一般场景图无旋转、无扭曲时将这三项设为False可跳过不必要的子产线提升推理效率。运行结束后终端会输出类似如下的结构化结果节选{res: {input_path: general_ocr_002.png, page_index: None, model_settings: {use_doc_preprocessor: False, use_textline_orientation: False}, doc_preprocessor_res: {input_path: None, model_settings: {use_doc_orientation_classify: True, use_doc_unwarping: False}, angle: 0}, dt_polys: [array([[ 3, 10], [82, 10], [82, 33], [ 3, 33]], dtypeint16), ...], text_det_params: {limit_side_len: 960, limit_type: max, thresh: 0.3, box_thresh: 0.6, unclip_ratio: 2.0}, text_type: general, textline_orientation_angles: [-1, ...], text_rec_score_thresh: 0.0, rec_texts: [www.99*, ...], rec_scores: [0.8980069160461426, ...], rec_polys: [array([[ 3, 10], [82, 10], [82, 33], [ 3, 33]], dtypeint16), ...], rec_boxes: array([[ 3, 10, 82, 33], ...], dtypeint16)}}对结果进行解读dt_polys/rec_polys文本检测与识别得到的四边形框坐标4 个顶点dtypeint16text_det_params本次文本检测子模块使用的实际参数包括limit_side_len960、limit_typemax、thresh0.3、box_thresh0.6、unclip_ratio2.0对应检测后处理中的阈值与文本框扩张系数rec_texts/rec_scores识别出的文本内容及置信度如0.898rec_boxes识别框以[x1, y1, x2, y2]形式输出的数组。同时--save_path ./output指定的目录下会生成可视化标注结果方便直接检查检测与识别效果。3.2 各 OCR 相关产线的命令行一览其他产线的命令行使用只需将pipeline参数调整为相应产线名称并修改为对应产线的参数即可。下表汇总了本仓库文档给出的全部产线命令产线名称使用命令文档图像预处理paddlex --pipeline doc_preprocessor --input https://paddle-model-ecology.bj.bcebos.com/paddlex/demo_image/doc_test_rotated.jpg --use_doc_orientation_classify True --use_doc_unwarping True --save_path ./output --device gpu:0通用 OCRpaddlex --pipeline OCR --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False --save_path ./output --device gpu:0通用表格识别paddlex --pipeline table_recognition --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition.jpg --save_path ./output --device gpu:0通用表格识别 v2paddlex --pipeline table_recognition_v2 --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition.jpg --save_path ./output --device gpu:0公式识别paddlex --pipeline formula_recognition --input https://paddle-model-ecology.bj.bcebos.com/paddlex/demo_image/general_formula_recognition.png --use_layout_detection True --use_doc_orientation_classify False --use_doc_unwarping False --layout_threshold 0.5 --layout_nms True --layout_unclip_ratio 1.0 --layout_merge_bboxes_mode large --save_path ./output --device gpu:0印章文本识别paddlex --pipeline seal_recognition --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/seal_text_det.png --use_doc_orientation_classify False --use_doc_unwarping False --device gpu:0 --save_path ./output通用版面解析paddlex --pipeline layout_parsing --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/demo_paper.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False --save_path ./output --device gpu:0通用版面解析 v3paddlex --pipeline PP-StructureV3 --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/pp_structure_v3_demo.png --use_doc_orientation_classify False --use_doc_unwarping False --use_textline_orientation False --save_path ./output --device gpu:0从命令可以观察到一个规律通用 OCR、版面解析、PP-StructureV3 等产线共享--use_doc_orientation_classify、--use_doc_unwarping、--use_textline_orientation三个开关参数公式识别产线还额外引入了版面检测参数--use_layout_detection、--layout_threshold、--layout_nms、--layout_unclip_ratio、--layout_merge_bboxes_mode用于先定位公式所在区域再执行识别。四、Python 脚本使用几行代码完成快速推理除了命令行PaddleX 还提供了统一的 Python 脚本接口几行代码即可完成产线的快速推理统一格式如下from paddlex import create_pipeline pipeline create_pipeline(pipeline[产线名称]) output pipeline.predict([输入图片名称]) for res in output: res.print() res.save_to_img(./output/) res.save_to_json(./output/)脚本执行了如下三个步骤create_pipeline()实例化产线对象传入图片并调用产线对象的predict()方法进行推理预测对预测结果进行处理res.print()在终端打印结构化结果res.save_to_img()保存可视化图片res.save_to_json()保存 JSON 格式的推理结果。4.1 各产线的 Python 脚本参数一览其他产线的 Python 脚本使用只需将create_pipeline()方法的pipeline参数调整为相应产线的名称即可。下表汇总了文档给出的全部产线参数产线名称对应参数通用 OCROCR文档图像预处理doc_preprocessor通用表格识别table_recognition通用表格识别 v2table_recognition_v2公式识别formula_recognition印章文本识别seal_recognition通用版面解析layout_parsing通用版面解析 v3PP-StructureV3文档场景信息抽取 v3PP-ChatOCRv3-doc文档场景信息抽取 v4PP-ChatOCRv4-doc4.2 源码视角产线对象是如何创建的从源码层面看PaddleOCR 的产线封装基于PaddleXPipelineWrapper基类见 paddleocr/_pipelines/base.py初始化时通过paddlex的load_pipeline_config加载产线默认配置再调用create_pipeline(config...)创建真实的 PaddleX 产线对象_create_paddlex_pipeline方法子类通过_get_paddlex_config_overrides()返回配置覆盖项例如 paddleocr/_pipelines/ocr.py 中定义了一整张STRUCTURE映射把PaddleOCR的 Python 参数如text_det_thresh、text_rec_score_thresh映射到 PaddleX 产线配置的SubModules.TextDetection.thresh、SubModules.TextRecognition.score_thresh等键上从而实现参数的无缝透传基类还提供export_paddlex_config_to_yaml()方法可将合并后的完整产线配置导出为 YAML 文件便于深度调参与版本管理。这也解释了为什么命令行参数与 Python 参数能够保持高度一致它们最终都汇入同一条 PaddleX 产线配置。五、进阶用法产线配置文件的导出与加载当默认参数无法满足需求时可以通过产线配置文件实现深度定制。相关能力在 PaddleOCR 与 PaddleX 关系文档 中有完整说明5.1 导出产线配置文件方式一调用 PaddleOCR 产线对象的export_paddlex_config_to_yaml方法from paddleocr import PaddleOCR pipeline PaddleOCR() pipeline.export_paddlex_config_to_yaml(ocr_config.yaml)上述代码会在工作目录下生成ocr_config.yaml产线配置文件。方式二通过 PaddleX CLI 获取指定产线注册名即可paddlex --get_pipeline_config OCR5.2 加载产线配置文件CLI 方式通过--paddlex_config参数指定配置文件路径PaddleOCR 会将其内容作为产线默认配置优先级高于各参数默认初始化值paddleocr ocr --paddlex_config ocr_config.yaml ...Python API 方式初始化产线对象时通过paddlex_config参数传入配置文件路径或配置字典from paddleocr import PaddleOCR pipeline PaddleOCR(paddlex_configocr_config.yaml)从源码实现看paddleocr/_pipelines/base.py当paddlex_config为字符串时按路径调用load_pipeline_config加载为字典时直接作为配置随后与子类的配置覆盖项通过_merge_dicts合并最终传给create_pipeline。六、版本对应关系与更多资源PaddleOCR 与 PaddleX、飞桨框架的版本对应关系摘录自 PaddleOCR 与 PaddleX 关系文档PaddleOCR 版本PaddleX 版本飞桨版本3.0.x3.0.x 3.0.03.1.x 3.1.0, 3.2.0 3.0.03.2.x 3.2.0, 3.3.0 3.0.03.3.x 3.3.0, 3.4.0 3.0.03.4.x 3.4.0, 3.5.0 3.0.03.5.x 3.5.0, 3.6.0 3.0.03.6.x 3.6.0, 3.7.0 3.0.03.7.x 3.7.0, 3.8.0 3.0.0建议在安装时保持三者版本匹配避免 API 差异导致的问题。如需进一步深入可以在本仓库中继续阅读以下资源低代码全流程开发总览产线能力矩阵、OCR 相关单功能模块清单PaddleOCR 与 PaddleX 关系介绍两者定位区别、产线注册名对应关系与版本对应表产线封装源码paddleocr/_pipelines/base.py、paddleocr/_pipelines/ocr.py、paddleocr/_pipelines/init.py产线单元测试tests/pipelines/test_ocr.py、tests/pipelines/test_doc_preprocessor.py、tests/pipelines/test_table_recognition_v2.py 等可用于验证各产线的正确调用方式与参数行为。结语通过本文你已掌握 PaddleX 低代码产线从安装、命令行体验到 Python 脚本推理的完整路径并理解了产线在 PaddleOCR 仓库中的底层封装机制PaddleXPipelineWrapper→create_pipeline→ 参数映射。无论是快速验证预训练模型效果还是通过配置文件深度定制推理参数都可以基于统一的产线 API 低成本完成为后续的高性能推理与服务化部署打下基础。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表