Python OCR 文字识别 API 接入完整教程

在开发过程中,我们经常需要对图片进行文字识别,例如身份证识别、发票识别、文档扫描等场景。使用 OCR(Optical Character Recognition,光学字符识别)API 可以快速实现这些功能。本文将以 Python 为例,带你完成 OCR 文字识别 API 接入全过程,并提供在线体验和实用优化建议。

一、准备工作

  1. 注册 OCR API 服务

    我们以石榴智能OCR接入API为示例,注册后可获得 API Key 和 Secret Key。

  2. 安装 Python 依赖库

    bash 复制代码
    pip install requests pillow
    • requests:用于发送 HTTP 请求

    • Pillow:用于图片处理,可选

  3. 准备测试图片

    图片可以是身份证、票据、文档扫描件等。

二、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)

四、识别效果示例

五、常见优化技巧

  1. 清晰图片优先

    模糊、倾斜、反光的图片识别率低,建议先做简单预处理。

  2. 裁剪或分区识别

    对身份证、发票等图片按区域识别,可提高精度。

  3. 批量或异步处理

    对多张图片,可使用队列或多线程异步调用 API。

  4. 错误处理

    网络异常、识别失败或 API 错误码都需处理,保证程序稳定。

六、在线体验与多语言文档

七、总结

本文介绍了 Python 调用 OCR API 的完整流程,包括:

  • 注册 API 并获取密钥

  • Python 依赖安装及图片准备

  • API 请求示例及识别结果处理

  • 图片优化和错误处理技巧

  • 在线体验与文档参考

通过 OCR API,你可以快速将文字识别能力集成到网站、桌面应用或移动端应用中,实现身份证识别、票据识别、文档扫描等多场景需求。

相关推荐
专注仿真3 小时前
卷积神经网络(CNN)算法详解
人工智能·python·算法·代码·大模型训练
FII工业富联科技服务3 小时前
多智能体如何进入制造现场?从业务协同到数字孪生验证
大数据·人工智能·算法·机器人·制造·数字孪生
golang学习记3 小时前
IDEA 开始换芯,发布全新AI版终端
java·人工智能·intellij-idea
武子康3 小时前
给游戏 Agent 接口时,隐藏答案会从哪条路漏出去?
人工智能
qq_158895411114 小时前
AI音乐生成后的工程化质检:响度、格式、命名和交付
api·ai音乐·音频工程
vipxieliang4 小时前
ValidX 正则表达式预编译优化:Pattern 复用策略
java·spring boot·后端
指针向南4 小时前
批量压缩视频有文件没变小?HandBrake等3款对比
图像处理·人工智能·计算机视觉·音视频
isfox4 小时前
Python3 协程:异步编程的核心机制与实战
python
Whoami!4 小时前
F-《AI接口协议:API调模型、MCP接工具、A2A连Agent》
人工智能·mcp·a2a·ai协议
lhbweilai4 小时前
QT项目(串口助手)
开发语言·qt