PaddleOCR 中文教程:零基础把图片和 PDF 变成可复制文字
2026-09-21发表于
人工智能一、速览
入门
PaddleOCR 是一个开源的 OCR 工具包。OCR(光学字符识别)有点像“把照片里的字变成电脑能复制的文字”:你给它一张合同照片、一个路牌截图或一页扫描版 PDF,它就能输出可以复制、搜索、编辑的文本。
它解决的最直接问题是:以前遇到扫描件、证件照、街景招牌,只能自己对着图手动敲字;现在可以让程序自动完成提取,速度快、能批量处理。
PaddleOCR 由百度飞桨团队维护,支持 100 多种语言,中英文识别效果尤其成熟。它既可以在普通电脑 CPU 上运行,也支持 GPU 加速,还能嵌入到 Python 程序里,作为文档处理或 AI 应用的数据入口。
如果你只是想从几张图片里复制文字,用它就够了;如果你想做更复杂的表格还原、PDF 转 Markdown,它也有对应的文档解析组件可以继续扩展。
二、快速部署
入门
在开始之前,你需要准备一台能联网的电脑或 Linux 服务器。联网是因为安装工具和首次下载识别模型都需要访问网络。电脑上要安装 Python 3.8 到 3.12 之间的版本,因为 PaddleOCR 目前只支持这些环境。
Python 可以理解为“程序运行所需的翻译官”,电脑里的很多脚本和工具都要靠它执行。你可以打开终端(Windows 叫命令提示符,macOS/Linux 叫终端),输入下面的命令检查版本:
python --version
如果显示 Python 3.10.x 之类的信息,就说明环境没问题。如果提示找不到 Python,需要先去 python.org 下载安装。
建议使用虚拟环境,它相当于一个独立的工具箱子,不会因为你给这个项目装的依赖而影响电脑里其他 Python 项目。创建并进入虚拟环境:
python -m venv paddle_env
source paddle_env/bin/activate # macOS / Linux
paddle_env\Scripts\activate # Windows
激活成功后,命令行开头会出现 (paddle_env)。接下来安装 PaddleOCR。这里要安装两个包:paddlepaddle 是运行引擎,paddleocr 是识别工具本身。pip 可以理解为 Python 的“应用商店”,用来下载安装这些包。
pip install paddlepaddle paddleocr
如果你在国内,下载速度可能较慢,可以在命令后面加上国内镜像源:
pip install paddlepaddle paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,先验证工具是否能正常调用:
paddleocr --help
如果屏幕打印出一长串帮助信息,说明安装成功。接下来随便找一张带文字的图片,手机拍的照片也可以,放到当前目录。第一次运行会下载识别模型,这有点像“第一次用厨房前先买食材”,下载后会被缓存起来,以后就不需要重复下载。
paddleocr --image_dir ./test.jpg --lang ch
这里 --lang ch 表示按中文识别。运行结束后,终端里会输出识别到的文字,同时结果也会保存到 inference_results 目录,包含文本文件和 JSON 文件。
三、功能导览
进阶 · 推荐细读
命令行是最简单的使用方式,适合一次识别一张或整个文件夹的图片。把 --image_dir 指向一个文件夹路径,PaddleOCR 就会自动处理里面所有图片,结果同样汇总到结果目录。
如果你想在程序里自动识别,可以使用 Python API。API 可以理解为“程序之间对话的接口”,你写一段 Python 代码,它把图片交给 PaddleOCR,再把结果拿回来。
下面是一个最小示例:
from paddleocr import PaddleOCR
ocr = PaddleOCR(lang='ch') # 初始化识别器,语言为中文
result = ocr.ocr('test.jpg')
for line in result[0]:
print(line[1][0]) # 输出识别出的文字
运行这段代码后,识别结果会逐行打印到控制台。每一行结果除了文字本身,还包含它在图片中的位置坐标和置信度。置信度可以理解为模型的“自信程度”,数值越接近 1,说明模型认为这句识别结果越可靠。
对于扫描版 PDF,直接喂给 PaddleOCR 并不总是能一步到位,常见做法是先把 PDF 的每一页转成图片,再交给 OCR 处理。如果 PDF 本身是文字版,直接从阅读器复制文本即可,不需要 OCR。对于表格还原、版面分析等更复杂的需求,PaddleOCR 生态里还有 PP-Structure 组件,可以后续再接触。
四、配置详解
进阶 · 推荐细读
PaddleOCR 的行为由多个参数控制。参数就是放在命令后面、用 -- 开头的一串选项,你可以在命令行里随时调整它们。
下面这张表列出了最常用的参数:
| 参数 | 作用 | 示例 |
|---|---|---|
--lang |
指定识别语言,ch 表示中文,en 表示英文 |
--lang ch |
--use_angle_cls |
是否开启方向分类,帮助识别旋转、倒置的文字 | --use_angle_cls true |
--use_gpu |
是否使用显卡加速,没有独显就设为 false |
--use_gpu false |
--output |
指定结果保存目录 | --output ./result |
识别模型分为“轻量移动端”和“服务端高精度”两种思路。默认下载的是速度较快、占用资源较少的模型,适合在普通电脑上跑;如果你处理的是清晰度低、文字密集的文档,可以换用更准确的模型。具体可切换的模型名称,可以通过 paddleocr --help 查看 --ocr_version 等参数说明。
语言方面,新版 PaddleOCR 支持用一个统一模型同时识别中文、英文、日文以及 46 种拉丁字母语言,处理多语言混排文档时不需要反复切换模型。对于其他语言,也提供了单独的模型包。
如果你在服务器上长期运行,不建议依赖每次自动下载模型。可以提前下载模型文件,并把路径传给 --det_model_dir 和 --rec_model_dir,这样启动更快,也方便离线部署。
五、常见问题
入门
刚上手时最常遇到的是环境问题。比如运行 Python 代码时提示 No module named paddle,通常是因为安装 PaddleOCR 时用的虚拟环境和当前运行代码的环境不是同一个。激活对应虚拟环境再运行即可。
另一个常见现象是第一次识别时卡住不动,这多半是正在从网络下载模型文件。如果网络不稳定,下载会变慢甚至失败。建议保持网络顺畅,或者使用国内镜像源安装依赖。
识别准确率不理想时,问题往往不在工具本身,而在图片质量。模糊、倾斜、反光、文字太小都会影响结果。可以优先用清晰、正向的图片,开启 --use_angle_cls true 处理旋转文字,或者把大图裁剪到目标区域再识别。
如果处理超大图片时内存占用过高,可以先缩小图片尺寸,或者把批处理改成一张一张执行。对于普通个人使用,CPU 模式足够;只有批量处理大量文档时,才需要考虑 GPU 或服务化部署。
PaddleOCR 本身不监听网络端口,所以不存在端口冲突问题。初学者不需要担心反向代理、SSL 证书这些服务器运维概念,先把本地识别跑通,再考虑把命令封装成接口提供给别人使用。
项目信息
| 项目 | 值 |
|---|---|
| 仓库 | PaddlePaddle/PaddleOCR |
| 语言 | Python |
| Star | 89,887 |
| Fork | 11,373 |
| 主页 | https://www.paddleocr.com |
参考链接
延伸阅读
想继续探索?这些同领域的教程可能也适合你:
137
72
1
1810
文章目录
评论