【PaddleOCR】快速集成 PP-OCRv5 的 Python 实战秘籍--- PaddleOCR实例化 OCR 对象的参数介绍
🧑 博主简介:曾任某智慧城市类企业
算法总监
,目前在美国市场的物流公司从事高级算法工程师
一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907
)
💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。
【PaddleOCR】快速集成 PP-OCRv5 的 Python 实战秘籍--- PaddleOCR实例化 OCR 对象的参数介绍
- 一、引言
- 二、Python 集成 PP-OCRv5 实战代码解析
- 三、PaddleOCR() 实例化 OCR 对象的参数介绍
- 四、总结
一、引言
在数字化浪潮的推动下,光学字符识别(OCR)技术成为了信息采集与数据处理领域的关键力量。PaddleOCR,作为百度 PaddlePaddle 团队精心打造的开源 OCR 工具包,凭借其卓越的多语言识别能力、惊人的高精度文本解析性能以及出色的扩展性,在全球开发者社区中收获了极高的人气。
随着 PaddleOCR 3.0 版本的震撼发布,PP-OCRv5 模型系列横空出世,它不仅在文本识别的精准度上实现了高达 13% 的史诗级跃升,更是在多场景文档解析方面展现出了无与伦比的强大实力。今天,就让我们一同深入探索如何在 Python 环境下轻松集成并高效运用 PP-OCRv5,快速实现文本识别的实战应用,开启智能文档处理的新篇章。
二、Python 集成 PP-OCRv5 实战代码解析
来到核心实战环节,我们通过简洁高效的 Python 代码,轻松驾驭 PP-OCRv5 模型,实现文本识别的快速推理。
from paddleocr import PaddleOCR# 创建 PaddleOCR 实例,自定义配置 PP-OCRv5
ocr = PaddleOCR(use_doc_orientation_classify=False, # 禁用文档方向分类模块use_doc_unwarping=False, # 禁用文本图像矫正模块use_textline_orientation=False, # 禁用文本行方向分类模块ocr_version="PP-OCRv5" # 明确指定使用 PP-OCRv5 版本
)# 执行图片文本预测
result = ocr.predict("./general_ocr_002.png")# 输出识别结果
for res in result:res.print() # 打印识别文本与位置信息res.save_to_img("output") # 将识别结果保存为图片res.save_to_json("output") # 将识别结果保存为 JSON 格式
在上述 Python 脚本中,执行了如下几个步骤:
(1)通过 PaddleOCR() 实例化 OCR 对象。
(2)调用 OCR 产线对象的 predict() 方法进行推理预测,该方法会返回一个结果列表。另外,产线还提供了 predict_iter() 方法。两者在参数接受和结果返回方面是完全一致的,区别在于 predict_iter() 返回的是一个 generator,能够逐步处理和获取预测结果,适合处理大型数据集或希望节省内存的场景。可以根据实际需求选择使用这两种方法中的任意一种。
(3)对预测结果进行处理,每个样本的预测结果均为对应的Result对象,且支持打印、保存为图片、保存为json文件的操作;
本文重点介绍 PaddleOCR() 实例化 OCR 对象的具体参数说明。
三、PaddleOCR() 实例化 OCR 对象的参数介绍
通过 PaddleOCR() 实例化 OCR 产线对象,具体参数说明如下:
参数名称 | 参数说明 | 参数类型 | 默认值 |
---|---|---|---|
doc_orientation_classify_model_name | 文档方向分类模型的名称。如果设置为 None,将会使用产线默认模型。 | str|None | None |
doc_orientation_classify_model_dir | 文档方向分类模型的目录路径。如果设置为 None,将会下载官方模型。 | str|None | None |
doc_unwarping_model_name | 文本图像矫正模型的名称。如果设置为 None,将会使用产线默认模型。 | str|None | None |
doc_unwarping_model_dir | 文本图像矫正模型的目录路径。如果设置为 None,将会下载官方模型。 | str|None | None |
text_detection_model_name | 文本检测模型的名称。如果设置为 None,将会使用产线默认模型。 | str|None | None |
text_detection_model_dir | 文本检测模型的目录路径。如果设置为 None,将会下载官方模型。 | str|None | None |
textline_orientation_model_name | 文本行方向模型的名称。如果设置为 None,将会使用产线默认模型。 | str|None | None |
textline_orientation_model_dir | 文本行方向模型的目录路径。如果设置为 None,将会下载官方模型。 | str|None | None |
textline_orientation_batch_size | 文本行方向模型的 batch size。如果设置为 None,将默认设置 batch size 为 1。 | int|None | None |
text_recognition_model_name | 文本识别模型的名称。如果设置为 None,将会使用产线默认模型。 | str|None | None |
text_recognition_model_dir | 文本识别模型的目录路径。如果设置为 None,将会下载官方模型。 | str|None | None |
text_recognition_batch_size | 文本识别模型的 batch size。如果设置为 None,将默认设置 batch size 为 1。 | int|None | None |
use_doc_orientation_classify | 是否加载并使用文档方向分类模块。如果设置为 None,将使用产线初始化的该参数值,默认初始化为 True。 | bool|None | None |
use_doc_unwarping | 是否加载并使用文本图像矫正模块。如果设置为 None,将使用产线初始化的该参数值,默认初始化为 True。 | bool|None | None |
use_textline_orientation | 是否加载并使用文本行方向模块。如果设置为 None,将使用产线初始化的该参数值,默认初始化为 True。 | bool|None | None |
text_det_limit_side_len | 文本检测的图像边长限制。int:大于 0 的任意整数;None:如果设置为 None,将使用产线初始化的该参数值,默认初始化为 64。 | int|None | None |
text_det_limit_type | 文本检测的边长度限制类型。str:支持 min 和 max,min 表示保证图像最短边不小于 det_limit_side_len,max 表示保证图像最长边不大于 limit_side_len;None:如果设置为 None,将使用产线初始化的该参数值,默认初始化为 min。 | str|None | None |
text_det_thresh | 文本检测像素阈值,输出的概率图中,得分大于该阈值的像素点才会被认为是文字像素点。float:大于 0 的任意浮点数;None:如果设置为 None,将使用产线初始化的该参数值(默认为 0.3)。 | float|None | None |
text_det_box_thresh | 文本检测框阈值,检测结果边框内,所有像素点的平均得分大于该阈值时,该结果会被认为是文字区域。float:大于 0 的任意浮点数;None:如果设置为 None,将使用产线初始化的该参数值(默认为 0.6)。 | float|None | None |
text_det_unclip_ratio | 文本检测扩张系数,使用该方法对文字区域进行扩张,该值越大,扩张的面积越大。float:大于 0 的任意浮点数;None:如果设置为 None,将使用产线初始化的该参数值(默认为 2.0)。 | float|None | None |
text_det_input_shape | 文本检测的输入形状。 | tuple|None | None |
text_rec_score_thresh | 文本识别阈值,得分大于该阈值的文本结果会被保留。float:大于 0 的任意浮点数;None:如果设置为 None,将使用产线初始化的该参数值(默认为 0.0,即不设阈值)。 | float|None | None |
text_rec_input_shape | 文本识别的输入形状。 | tuple|None | None |
lang | 使用指定语言的 OCR 模型。附录中的表格中列举了全部支持的语言。 | str|None | None |
ocr_version | OCR 模型版本。PP-OCRv5:使用 PP-OCRv5 系列模型;PP-OCRv4:使用 PP-OCRv4 系列模型;PP-OCRv3:使用 PP-OCRv3 系列模型。注意不是每个 ocr_version 都支持所有的 lang,请查看附录中的对应关系表。 | str|None | None |
device | 用于推理的设备。支持指定具体卡号:CPU:如 cpu 表示使用 CPU 进行推理;GPU:如 gpu:0 表示使用第 1 块 GPU 进行推理;NPU:如 npu:0 表示使用第 1 块 NPU 进行推理;XPU:如 xpu:0 表示使用第 1 块 XPU 进行推理;MLU:如 mlu:0 表示使用第 1 块 MLU 进行推理;DCU:如 dcu:0 表示使用第 1 块 DCU 进行推理;None:如果设置为 None,将默认使用产线初始化的该参数值,初始化时,会优先使用本地的 GPU 0 号设备,如果没有,则使用 CPU 设备。 | str|None | None |
enable_hpi | 是否启用高性能推理。 | bool | False |
use_tensorrt | 是否启用 Paddle Inference 的 TensorRT 子图引擎。如果模型不支持通过 TensorRT 加速,即使设置了此标志,也不会使用加速。对于 CUDA 11.8 版本的飞桨,兼容的 TensorRT 版本为 8.x(x>=6),建议安装 TensorRT 8.6.1.6。对于 CUDA 12.6 版本的飞桨,兼容的 TensorRT 版本为 10.x(x>=5),建议安装 TensorRT 10.5.0.18。 | bool | False |
precision | 计算精度,如 fp32、fp16。 | str | “fp32” |
enable_mkldnn | 是否启用 MKL-DNN 加速推理。如果 MKL-DNN 不可用或模型不支持通过 MKL-DNN 加速,即使设置了此标志,也不会使用加速。 | bool | True |
mkldnn_cache_capacity | MKL-DNN 缓存容量。 | int | 10 |
cpu_threads | 在 CPU 上进行推理时使用的线程数。 | int | 8 |
paddlex_config | PaddleX 产线配置文件路径。 | str|None | None |
四、总结
通过本文的深入讲解,相信大家已经掌握了在 Python 环境下利用 PaddleOCR 快速集成 PP-OCRv5 的全过程。从环境搭建的每一步骤,到实战代码的每个细节,再到关键参数的深层含义,我们对PaddleOCR() 实例化 OCR 对象的参数介绍。如今,你已经具备了将 PP-OCRv5 强大的文本识别能力融入自身项目的能力,无论是处理日常办公文档、优化信息采集流程,还是开展更复杂的智能文档分析项目,都能游刃有余。踏上文本智能处理的新征程,PP-OCRv5 将成为你最得力的助手,助力你在数字化时代浪潮中一往无前。