OCR 文字识别
问题
OCR 的原理是什么?在 AI 应用中 OCR 有哪些用途?
答案
一、OCR 流程
二、主流 OCR 方案
| 方案 | 类型 | 特点 |
|---|---|---|
| PaddleOCR | 开源 | 中文效果最佳,轻量 |
| Tesseract | 开源 | Google 维护,多语言 |
| EasyOCR | 开源 | Python 友好 |
| Azure Document AI | 云服务 | 文档理解、表格抽取 |
| Google Cloud Vision | 云服务 | 准确率高 |
三、文档理解
现代文档理解已超越传统 OCR,融合了版面分析 + OCR + VLM:
| 能力 | 传统 OCR | VLM 文档理解 |
|---|---|---|
| 纯文本识别 | ✅ | ✅ |
| 表格抽取 | 需专门模型 | ✅ |
| 图表理解 | ❌ | ✅ |
| 语义理解 | ❌ | ✅ |
| 多页文档 | 逐页处理 | 上下文理解 |
LLM 时代的 OCR
VLM(如 GPT-4o)可以直接"看"图片理解文档内容,很多场景不再需要传统 OCR 管线。但传统 OCR 在以下场景仍有优势:
- 大批量处理(成本低)
- 精确字符级识别
- 离线/端侧场景
四、应用场景
| 场景 | 方案 |
|---|---|
| 身份证/银行卡识别 | 专用 OCR 模型 |
| PDF/发票抽取 | VLM 或 Document AI |
| 手写识别 | 专用手写 OCR |
| RAG 文档处理 | OCR → 文本 → Embedding |
常见面试问题
Q1: 如何在 RAG 系统中处理扫描版 PDF?
答案:
- OCR 提取:用 PaddleOCR 提取图片中的文字
- 版面分析:识别标题、段落、表格区域
- 结构化:按文档逻辑组织提取的文本
- 或者:直接用 VLM 将 PDF 页面作为图片输入理解
- 推荐混合方案:OCR 提取文本 + VLM 理解复杂页面
Q2: OCR 如何处理倾斜/模糊的文字?
答案:
- 倾斜矫正:Hough 变换检测文本行角度,旋转矫正
- 图像增强:二值化、去噪、锐化
- 超分辨率:用深度学习模型增强分辨率
- 数据增强:训练时加入旋转、模糊等数据增强