在很多企业系统中,文档解析 OCR已经成为必备能力,例如:
- 财务系统自动解析发票
- 合同自动提取关键信息
- PDF 文档转结构化数据
- 表格自动录入系统
如果完全依赖人工录入,不仅效率低,还容易出错。
因此越来越多系统开始接入 文档解析 OCR API。
本文从工程实践角度,讲清楚文档 OCR 的实现思路以及如何快速接入。
一、什么是文档解析 OCR
很多人认为 OCR 只是:
图片 → 文字
但在真实业务中,文档 OCR 往往需要做到:
- 提取段落
- 提取表格
- 提取字段
- 输出结构化数据
也就是:
文档 → 版面分析 → OCR识别 → 数据结构化
二、文档 OCR 的核心技术流程
一个完整的文档解析流程通常包含以下步骤:
文档输入
↓
版面分析
↓
文本检测
↓
文字识别
↓
结构化输出
1 文档预处理
常见输入包括:
- PDF 文档
- 扫描图片
- 拍照文档
为了提高识别率,一般需要:
- 去噪
- 矫正倾斜
- 提高对比度
2 版面分析(Layout Analysis)
版面分析的作用是识别:
- 标题
- 段落
- 表格
- 图片
例如一份 PDF 文档可能包含:
- 标题区域
- 表格区域
- 文本区域
只有识别出这些区域,后续 OCR 才能准确解析。
3 文本检测
这一阶段负责:
找到所有文字位置
输出结果通常是:
文字区域坐标
例如:
(x1,y1,x2,y2)
4 文本识别
这一阶段才是真正的:
文字内容识别
常见技术包括:
- CRNN
- Transformer OCR
- 深度学习序列模型
5 数据结构化
这一步是 业务系统最需要的能力。
例如一张表格:
| 商品 | 数量 | 金额 |
解析后可以输出:
[ {商品:A, 数量:10, 金额:100}]
这样就可以直接写入数据库。
三、文档 OCR API 接入实战
如果完全自研文档 OCR,通常需要:
- OCR 模型
- 表格识别模型
- 版面分析模型
开发周期可能 数月以上。
因此很多系统会直接接入 文档解析 API。
Step1 上传文档
前端上传 PDF 或图片。
<input type="file">
Step2 调用 OCR API
可以直接通过接口提交文件。
接口文档:market.shiliuai.com/doc/doc-ext…
示例代码:
# 接口文档:https://market.shiliuai.com/doc/doc-extract
# OCR 调用python示例
import requests
import base64
import json
# 请求接口
URL = "https://ocr-api.shiliuai.com/api/doc_extract/v1"
# 图片/pdf文件转base64
def get_base64(file_path):
with open(file_path, "rb") as f:
data = f.read()
return base64.b64encode(data).decode("utf8")
def demo(appcode, file_path):
# 请求头
headers = {
"Authorization": "APPCODE %s" % appcode,
"Content-Type": "application/json"
}
# 请求体
b64 = get_base64(file_path)
data = {
"file_base64": b64,
"prompt": ""
}
# 请求
response = requests.post(url=URL, headers=headers, json=data)
content = json.loads(response.content)
print(content)
if __name__ == "__main__":
appcode = "你的APPCODE"
file_path = "本地文件路径"
demo(appcode, file_path)
Step3 解析返回结果
OCR API 返回通常包含:
- 文本内容
- 表格数据
- 坐标信息
- JSON 结构
示例:
成功示例:
{
'code': 200,
'msg': 'OK',
'msg_cn': '成功',
'success': True,
'file_id': file id,
'request_id': request id,
'data': {
"page_count": 5, // int, 文件页面总数
"process_pages": 5, // int, 处理页面数
"content": content // 文档提取结果
}
}
四、文档 OCR 常见应用场景
在实际项目中,文档解析 OCR 常见应用包括:
1 财务系统
自动识别:
- 发票
- 报销单
- 收据
2 企业文档管理
批量解析:
- PDF 文档
- 扫描合同
- 档案文件
3 RPA 自动化
机器人自动读取:
- 报表
- 表格
- 订单信息
4 AI 工具网站
例如:
- PDF 转文字
- 文档数据提取
- 表格识别
五、文档 OCR 常见问题
图片模糊
建议:
- 图片分辨率 ≥ 1000px
文档倾斜
需要:
- 自动旋转矫正
表格识别
推荐使用:
- 专门的表格 OCR
六、什么时候用在线 OCR,什么时候用 API
简单判断:
在线工具
适合:
- 临时识别
- 少量文档
- 手动操作
如果只是想测试效果,可以先在线识别一份文档看看结果。识别效果可以参考下面图片
API 接入
适合:
- 批量文档处理
- 系统自动化
- SaaS 平台
七、总结
文档解析 OCR 不只是文字识别,更重要的是:
- 版面理解
- 表格提取
- 数据结构化
对于需要处理大量文档的系统来说,接入 OCR API 通常是效率最高的方案。