在开发过程中,我们经常需要对图片进行文字识别,例如身份证识别、发票识别、文档扫描等场景。使用 OCR(Optical Character Recognition,光学字符识别)API 可以快速实现这些功能。本文将以 Python 为例,带你完成 OCR 文字识别 API 接入全过程,并提供在线体验和实用优化建议。
一、准备工作
-
注册 OCR API 服务
我们以石榴智能OCR接入API为示例,注册后可获得
API Key和Secret Key。 -
安装 Python 依赖库
bashpip install requests pillow-
requests:用于发送 HTTP 请求 -
Pillow:用于图片处理,可选
-
-
准备测试图片
图片可以是身份证、票据、文档扫描件等。
二、API 请求方式简介
OCR API 通常需要发送以下参数:
-
image:图片 Base64 编码或 URL -
type:识别类型(如id_card、invoice、general) -
language:可选,多语言识别
示意请求格式:
请求URL:
python
POST http(s)://ocr-api.shiliuai.com/api/advanced_general_ocr/v1
请求方式:
请求头
| 参数 | 类型 | 说明 |
|---|---|---|
| Authorization | string | 'APPCODE ' + 您的AppCode |
| Content-Type | string | application/json |
请求体
| 参数 | 是否必填 | 类型 | 说明 |
|---|---|---|---|
| image_base64 | 选填 | string | 图片Base64;与image_url二选一;像素[15,8192];小于20M |
| image_url | 选填 | string | 图片URL;与image_base64二选一;像素[15,8192];小于20M |
| is_line | 选填 | bool | 是否为单行文字,默认False |
返回信息:
返回结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 错误码 |
| msg | string | 错误信息(英文) |
| msg_cn | string | 错误信息(中文) |
| success | bool | 识别是否成功 |
| image_id | string | 请求图片ID |
| request_id | string | 唯一请求ID |
| data | data | 具体看下面 |
以下是返回示例
python
data 成功示例:
data = {
"content":
[
{
"text": "你好", // string, 文字内容
"prob": 0.995, // float, [0, 1], 文字内容置信度
"keypoints": [ // list, 文字区域四个角的位置,以文字的左上角为起点,按顺时针顺序排列,单行文字没有此项
{"x":50, "y":20},
{"x":150, "y":20},
{"x":150, "y":60},
{"x":50, "y":60}
]
},
......
]
}
data 失败示例:
data = {}
三、Python 接入示例
python
# API文档:https://market.shiliuai.com/doc/advanced-general-ocr
# -*- coding: utf-8 -*-
import requests
import base64
import json
# 请求接口
URL = "https://ocr-api.shiliuai.com/api/general_ocr/v1"
# 图片转base64
def get_base64(file_path):
with open(file_path, 'rb') as f:
data = f.read()
b64 = base64.b64encode(data).decode('utf8')
return b64
def demo(appcode, file_path):
# 请求头
headers = {
'Authorization': 'APPCODE %s' % appcode,
'Content-Type': 'application/json'
}
# 请求体
b64 = get_base64(file_path)
data = {"image_base64": b64}
# 请求
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)
四、识别效果示例

五、常见优化技巧
-
清晰图片优先
模糊、倾斜、反光的图片识别率低,建议先做简单预处理。
-
裁剪或分区识别
对身份证、发票等图片按区域识别,可提高精度。
-
批量或异步处理
对多张图片,可使用队列或多线程异步调用 API。
-
错误处理
网络异常、识别失败或 API 错误码都需处理,保证程序稳定。
六、在线体验与多语言文档
-
文档支持 Python、Java、PHP、C# 等多语言示例
-
提供身份证识别、发票识别、通用文字识别等多种接口
七、总结
本文介绍了 Python 调用 OCR API 的完整流程,包括:
-
注册 API 并获取密钥
-
Python 依赖安装及图片准备
-
API 请求示例及识别结果处理
-
图片优化和错误处理技巧
-
在线体验与文档参考
通过 OCR API,你可以快速将文字识别能力集成到网站、桌面应用或移动端应用中,实现身份证识别、票据识别、文档扫描等多场景需求。