☰
PaddleOCR:Python API 30 秒跑通你的第一个 OCR 任务
2026/10/24 3:57:08 网站建设 项目流程

PaddleOCR:Python API 30 秒跑通你的第一个 OCR 任务

【免费下载链接】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 就是干这个的——飞桨生态里的多语言 OCR 工具包,一句话概括:给它图片,它还文字和位置。Python 接口非常直接:几行代码就能出第一个 OCR 结果,开箱支持 80+ 种语言。

一张表看懂 PaddleOCR 能干啥

PaddleOCR 的核心不只是一个识别模型,而是一条流水线:图片进来,先做文档预处理(自动转正、去弯曲),再做text detection(找到"字在哪",即文本检测),接着做text recognition(认出"字是什么",即文本识别),最后输出文字、置信度和坐标框。你也可以把检测、识别拆出来单独用,还有 PPStructureV3 这条线专门处理文档版面和表格结构。

能力适用场景
整条 OCR 流水线图片 → 文本 + 置信度 + 位置框
TextDetection / TextRecognition只要框、或只要文字,模块单用
PPStructureV3文档版面分析、表格结构识别
80+ 语言模型中英日韩、阿拉伯文、西里尔文等
CLI 与 Python 双接口一行paddleocr ocr -i xxx.png快速验证

装完 30 秒跑通第一个任务

安装分两步:先装推理引擎,再装 PaddleOCR 本体。

python -m pip install paddlepaddle==3.2.0 python -m pip install "paddleocr[all]"

跑通的最短路径:

from paddleocr import PaddleOCR ocr = PaddleOCR() # 不指定语言时默认中文模型,首次运行自动下载 img = "deploy/ios_demo/PaddleOCRDemo/Resources/SampleImages/general_ocr_002.jpg" res = ocr.predict(img)[0] for text, score in zip(res.json["rec_texts"], res.json["rec_scores"]): print(text, round(score, 4))

rec_texts是识别出的文字,rec_scores是逐行置信度,rec_polys是每行的多边形坐标。想要带框的可视化图,直接res.save_to_img("output")。不想写 Python 也有 CLI:paddleocr ocr -i ./xxx.png --engine paddle。

一个行为要留意:2.x 时代传det_model_dir这类旧参数名会自动映射成新名并给出警告,老代码照着改一下就行。

最常用的 6 个参数,什么时候调

参数不用记全,日常基本就动这几个:

参数类型默认值作用何时调整
langstrch决定自动选用哪套识别模型处理非中文文档时
ocr_versionstr自动算法版本(PP-OCRv3~v6)精度与速度权衡、对齐旧模型
use_textline_orientationboolTrue按文本行方向先转正再识别文字都是横排时关掉提速
text_det_limit_side_lenint736检测输入的最大边长小字漏检就调大
text_det_box_threshfloat0.6检测框置信度阈值漏检调低,误检调高
text_rec_score_threshfloat0.0识别结果置信度过滤噪声字多就调高

还有个小坑:显式传了text_detection_model_name/text_recognition_model_dir之类参数后,lang和ocr_version会被忽略并触发警告,别两头都写。

两个高频实战用法

批量处理一个图片文件夹

from pathlib import Path for res in ocr.predict_iter(Path("invoices").glob("*.png")): lines = res.json["rec_texts"] print(res.json["input_path"], "共", len(lines), "行") res.save_to_json("output") # 按需保存结构化结果

坑在哪:predict会把所有图片的结果一次性装进列表,上千张图建议换成predict_iter逐张消费,内存占用会稳定得多。

只要检测,或者只要识别

from paddleocr import TextDetection, TextRecognition det = TextDetection() # 只出文本框坐标 rec = TextRecognition() # 只出文字

坑在哪:TextRecognition吃的是裁剪好的文本行图片,把整页图直接丢进去,识别效果会一塌糊涂。

卡住了?常见现象与对应解法

  • 首次运行卡在下载或报错→ 模型自动拉取但网络不通 → 用text_detection_model_dir、text_recognition_model_dir指向本地模型目录。
  • 小字、密集表格漏检→ 图片被缩到 limit_side_len 以下,细节丢了 → 调大text_det_limit_side_len,必要时下调text_det_thresh(默认 0.3)。
  • 框出很多噪声框→ 检测过敏感 → 把text_det_box_thresh从 0.6 往上加一点。
  • CPU 上跑得慢→ 预处理全开 → 关闭use_doc_orientation_classify、use_doc_unwarping、use_textline_orientation,官方 quick start 的提速示例就是全关。

适合用它,和不适合的场景

通用文字——票据、表单、截图、路牌,加上多语言和轻量部署需求,PaddleOCR 直接上手,Python、C++ 推理到端侧都有现成路径。但如果你要的是复杂版面的深度理解,比如跨页表格、公式语义、图表内容抽取,别在基础流水线上硬调参数,直接看 PPStructureV3 或 PaddleOCR-VL 更合适。参数和行为细节可以去仓库里的 OCR 流水线文档 查,源码在 paddleocr/ 目录,核心逻辑都在_pipelines/和_models/下,值得翻一翻。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询