在开发过程中,我们经常需要对图片进行文字识别,例如身份证识别、发票识别、文档扫描等场景。使用 ocr(optical character recognition,光学字符识别)api 可以快速实现这些功能。本文将以 python 为例,带你完成 ocr 文字识别 api 接入全过程,并提供在线体验和实用优化建议。
一、准备工作
注册 ocr api 服务
我们以石榴智能ocr接入api为示例,注册后可获得 api key 和 secret key。
安装 python 依赖库
pip install requests pillow
requests:用于发送 http 请求pillow:用于图片处理,可选
准备测试图片
图片可以是身份证、票据、文档扫描件等。
二、api 请求方式简介
ocr api 通常需要发送以下参数:
image:图片 base64 编码或 urltype:识别类型(如id_card、invoice、general)language:可选,多语言识别
示意请求格式:
请求url:
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 | 具体看下面 |
以下是返回示例
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 接入示例
# 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 错误码都需处理,保证程序稳定。
六、在线体验与多语言文档
- 在线体验:https://market.shiliuai.com/general-ocr
- 文档支持 python、java、php、c# 等多语言示例
- 提供身份证识别、发票识别、通用文字识别等多种接口
七、总结
本文介绍了 python 调用 ocr api 的完整流程,包括:
- 注册 api 并获取密钥
- python 依赖安装及图片准备
- api 请求示例及识别结果处理
- 图片优化和错误处理技巧
- 在线体验与文档参考
通过 ocr api,你可以快速将文字识别能力集成到网站、桌面应用或移动端应用中,实现身份证识别、票据识别、文档扫描等多场景需求。
以上就是使用python接入ocr文字识别api的全教程的详细内容,更多关于python ocr文字识别api接入的资料请关注代码网其它相关文章!
发表评论