基于 PaddleOCR v2.6.0 的图片文字识别实战(CPU 版)

张开发
2026/4/20 0:40:33 15 分钟阅读

分享文章

基于 PaddleOCR v2.6.0 的图片文字识别实战(CPU 版)
摘要OCR光学字符识别是计算机视觉领域的经典应用可实现从图片中自动提取文本内容广泛应用于文档数字化、票据识别、证件信息提取等场景。本文以百度飞桨开源的PaddleOCR v2.6.0为核心基于 Python 3.10 CPU 环境从零搭建完整的文字识别项目涵盖虚拟环境隔离、依赖安装、代码实现、结果验证全流程解决新手常见的环境冲突、模型下载失败、识别结果解析等问题最终实现对中文图片的高精度文字识别为后续批量识别、多语言扩展提供基础方案。关键词PaddleOCR文字识别Python环境搭建OCR 实战CPU 部署一、引言随着人工智能技术的普及轻量级 OCR 工具成为开发者快速落地文本识别需求的首选。PaddleOCR 是百度飞桨推出的开源 OCR 工具包具有以下优势轻量高效支持 CPU 环境部署无需复杂的 GPU 配置多语言支持内置中文、英文、日文等 80 语言识别模型开箱即用提供预训练模型无需从零训练新手可快速上手功能丰富支持文本检测、方向矫正、多场景识别如票据、文档。本文将基于稳定版PaddleOCR v2.6.0以中文古诗图片为例完整复现从环境搭建到识别结果输出的全过程适合计算机专业学生、Python 开发者学习参考。二、环境准备与版本选择2.1 技术选型与版本说明为保证项目稳定性与兼容性本次实战选择以下核心依赖版本工具 / 库版本说明Python3.7~3.10PaddlePaddle 2.6.2 仅支持该区间版本本次使用 3.10PaddlePaddle2.6.2飞桨深度学习框架 CPU 版PaddleOCR2.8.1与 v2.6.0 仓库适配的稳定 OCR 库版本2.2 系统环境要求操作系统Windows 10/1164 位硬件配置CPU i3 及以上内存≥8GB满足模型运行基础需求辅助工具VSCode代码编辑、CMD / 终端环境操作三、虚拟环境搭建隔离依赖为避免不同 Python 项目的依赖版本冲突必须创建独立虚拟环境进行实验以下提供两种 Windows 系统下的搭建方式本次实战以用户实际操作为例3.1 步骤 1创建虚拟环境根目录新建文件夹D:\huanjing\ocr用于存放虚拟环境相关文件避免文件散乱。3.2 步骤 2创建并激活虚拟环境方式 1venv 命令创建推荐打开终端进入根目录cd D:\huanjing\ocr执行命令创建虚拟环境环境名ocrpython -m venv ocr激活虚拟环境进入D:\huanjing\ocr\Scripts目录在地址栏输入cmd打开终端执行activate终端前缀出现(ocr)即表示激活成功。方式 2图形化创建在 python 中打开项目文件夹点击左下角 Python 解释器选择器选择 “创建虚拟环境”自动完成创建与激活后续步骤与方式 1 一致。四、核心依赖安装激活虚拟环境后执行以下命令安装依赖使用清华源加速下载避免网络超时4.1 安装 PaddlePaddle CPU 版pip install paddlepaddle2.6.2 -i https://pypi.tuna.tsinghua.edu.cn/simple4.2 安装 PaddleOCR 库pip install paddleocr2.8.1 -i https://pypi.tuna.tsinghua.edu.cn/simple4.3 安装验证执行以下命令检查依赖版本是否匹配pip list | findstr paddle预期输出paddlepaddle 2.6.2 paddleocr 2.8.1五、文字识别代码实现5.1 基础版识别代码新建ocr_demo.py文件编写以下完整代码# 导入PaddleOCR核心类 from paddleocr import PaddleOCR # 1. 初始化OCR引擎 ocr PaddleOCR( use_angle_clsTrue, # 开启文字方向分类自动矫正倾斜/倒置文字 use_gpuFalse, # CPU环境必须设为FalseGPU用户可设为True show_logFalse, # 关闭模型加载日志简化输出 langch # 指定识别语言ch中文en英文japan日文 ) # 2. 指定待识别图片路径r前缀表示原始字符串避免路径转义问题 img_path rimage.png # 需将待识别图片与代码文件放在同一目录 # 3. 执行文字识别clsTrue识别时开启方向矫正 result ocr.ocr(img_path, clsTrue) # 4. 打印完整识别结果包含坐标、文本、置信度 print(完整识别结果) print(result) # 5. 解析结果提取纯文本内容 print(\n提取的文本内容) for line in result[0]: text line[1][0] # line[1][0]为识别的文本内容 confidence line[1][1] # line[1][1]为识别置信度0~1越高越可靠 print(f{text})5.2 关键参数详解参数取值说明use_angle_clsTrue/False开启后自动矫正倾斜文字提升识别准确率推荐设为Trueuse_gpuTrue/FalseCPU 环境必须设为FalseGPU 环境需匹配 CUDA 版本后设为Truelangch/en/japan/fr等支持 80 语言中文识别固定为chclsTrue/False与use_angle_cls联动识别过程中对文字方向进行矫正5.3 结果数据结构解析PaddleOCR 的ocr()方法返回嵌套列表结构如下# result [ # [ # 第一张图片的识别结果支持批量识别此处仅单张图片 # [ # [[x1, y1], [x2, y2], [x3, y3], [x4, y4]], # 文字框的四个顶点坐标 # (识别文本, 置信度值) # 文本内容与模型置信度 # ], # ... # 更多文字行 # ] # ]其中置信度值范围为0~1越接近 1 表示模型对该识别结果越自信。六、运行验证与效果分析6.1 运行步骤VSCode 终端操作将待识别图片命名为image.png放入代码文件同目录确保 VSCode 选择了虚拟环境的 Python 解释器右下角状态栏可查看打开终端执行命令python ocr_demo.py6.2 运行结果与分析本次以古诗《江雪》图片为例运行后终端输出如下完整识别结果 [[[[12.0, 13.0], [97.0, 13.0], [97.0, 44.0], [12.0, 44.0]], (江雪, 0.9995321035385132)], [[[14.0, 89.0], [252.0, 87.0], [252.0, 114.0], [14.0, 116.0]], (作者柳宗元, 0.9979780316352844)], [[[16.0, 160.0], [466.0, 160.0], [466.0, 186.0], [16.0, 186.0]], (千山鸟飞绝万径人踪灭。, 0.8252583146095276)], [[[14.0, 232.0], [469.0, 232.0], [469.0, 261.0], [14.0, 261.0]], (孤舟蓑笠翁独钓寒江雪。, 0.9771364450454711)]]] 提取的文本内容 江雪 作者柳宗元 千山鸟飞绝万径人踪灭。 孤舟蓑笠翁独钓寒江雪。 进程已结束退出代码为 0效果分析识别准确率全诗文本完整识别无错别字置信度均在 0.8 以上其中标题与作者信息置信度接近 1.0方向矫正图片中文字无倾斜矫正功能未影响识别结果若使用倾斜图片该功能可有效提升准确率结果解析通过遍历嵌套列表成功提取纯文本内容便于后续存储或处理。6.3 识别效果优化建议图片预处理使用 OpenCV 对图片进行二值化、降噪、对比度调整解决图片模糊、反光问题模型指定若默认模型识别效果不佳可手动指定预训练模型路径如ocr PaddleOCR( use_angle_clsTrue, use_gpuFalse, langch, det_model_dir./ch_PP-OCRv3_det_infer, # 文本检测模型路径 rec_model_dir./ch_PP-OCRv3_rec_infer # 文本识别模型路径 )批量识别通过循环遍历文件夹实现多张图片的批量识别。七、常见问题与解决方案问题现象可能原因解决方案终端提示 “activate 不是内部或外部命令”未进入 Scripts 目录先执行cd D:\huanjing\ocr\Scripts再运行activate导入 PaddleOCR 时提示ModuleNotFoundError虚拟环境未激活 / VSCode 解释器选择错误激活虚拟环境后在 VSCode 右下角选择虚拟环境的 Python 解释器首次运行模型下载缓慢 / 失败网络不稳定手动下载预训练模型放入C:\Users\用户名\.paddleocr\whl目录识别结果为空图片路径错误 / 图片格式不支持检查图片路径建议使用绝对路径确认图片为 jpg/png 格式中文识别乱码lang参数设置错误确认langch且图片无严重遮挡或模糊八、总结与展望本文基于 PaddleOCR v2.6.0 实现了 CPU 环境下的中文图片文字识别通过虚拟环境隔离依赖解决了新手常见的环境问题最终实现了高精度的文本提取。本次实战不仅掌握了 OCR 工具的基础使用也为后续的进阶应用打下基础如结合 OpenCV 实现复杂场景如票据、证件的文本识别部署为 Web API实现批量图片识别服务基于 PaddleOCR 的版面分析功能实现文档结构化识别。PaddleOCR 的轻量性与易用性使其成为 OCR 入门的优质选择后续将继续探索其进阶功能分享更多实战案例。参考文献[1] PaddleOCR 官方仓库. https://gitee.com/paddlepaddle/PaddleOCR/tree/v2.6.0[2] PaddleOCR 参数说明文档. https://blog.csdn.net/qq_41273999/article/details/135868038

更多文章