中文 OCR 与版面分析
这套工具提供中文文本检测、识别与方向分类模型,对中文排版、倾斜文本与表格图片的处理较为常用,也提供版面分析能力用于切分区域。它与通用 OCR 引擎的区别在于中文场景的默认表现更好,且检测、识别、方向分类可分别配置,适合把扫描件中的中文内容批量转成可检索文本。
基本信息
| 能力 | 文本检测、文本识别、方向分类、版面分析 |
|---|---|
| 语言 | 中文为主,也支持多语言模型 |
| 输入 | 图片或图片目录 |
| 模型权重 | 首次运行需要下载,内网环境要提前准备目录 |
| 版本差异 | 不同大版本的调用接口不同,以所装版本文档为准 |
基础识别(2.x 接口)
基础识别(2.x 接口)
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
result = ocr.ocr("scan.png", cls=True)
for line in result[0][:5]:
box, (text, score) = line
print(text, round(score, 3))使用要点
- 图像先做预处理:缩放、去噪、纠偏能明显改善倾斜文本的识别
- 保留文本框坐标:多栏与表格混排时按坐标重排才能得到正确阅读顺序
- 关注置信度:低分文本块在入库前标记出来,便于人工抽查
- 控制并发:识别是计算密集任务,批量处理时按设备能力限制并发
- 记录每页识别耗时与失败页,便于定位是个别图片问题还是流程问题
与通用引擎的差别
| 对比项 | 本方案 | 通用 OCR 引擎 |
|---|---|---|
| 中文默认表现 | 较好,中文模型开箱可用 | 需另装语言包 |
| 版面分析 | 提供区域切分能力 | 一般需自行实现 |
| 部署体积 | 依赖较重 | 相对轻量 |
| 接口稳定性 | 不同大版本接口有变化 | 命令行接口长期稳定 |
常见问题
- 表格与多栏混排时识别顺序混乱,需要按文本框坐标重新排序
- 模型权重下载失败:内网环境提前放好模型目录并指定本地路径
- 小字号文本识别率低,先放大图片再识别通常更有效
- 竖排文本需要方向分类参与,否则会得到错乱结果
新版接口与旧版写法不同(如由 ocr() 改为 predict()),升级前先确认文档与示例,避免照抄旧代码后无法运行。