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

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

一、准备工作

  1. 注册 OCR API 服务

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

  2. 安装 Python 依赖库

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

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

  3. 准备测试图片

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

二、API 请求方式简介

OCR API 通常需要发送以下参数:

  • image:图片 Base64 编码或 URL

  • type:识别类型(如 id_cardinvoicegeneral

  • 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,你可以快速将文字识别能力集成到网站、桌面应用或移动端应用中,实现身份证识别、票据识别、文档扫描等多场景需求。

相关推荐
咔咔库奇19 小时前
js-执行上下文
开发语言·前端·javascript
我材不敲代码19 小时前
【OpenCV零基础实战】键盘交互、像素位运算、通道离合、色彩转换与智能抠像
人工智能·opencv·计算机外设
yubo050919 小时前
计算机视觉第二课:3 个核心操作(灰度图 + 模糊 + 边缘检测)
人工智能·opencv·计算机视觉
Apache RocketMQ19 小时前
全新 AI 消息模型:Apache RocketMQ 如何让 AI 应用拥抱事件驱动架构?
人工智能·apache·rocketmq
TMT星球19 小时前
比亚迪发布中国首款4nm制程智驾芯片,布局高等级自动驾驶
人工智能·机器学习·自动驾驶
Yeats_Liao19 小时前
6:部署Servlet-Java Web
java·后端·架构
金融Tech趋势派19 小时前
企业微信营销获客实战指南:如何用企业微信AI SCRM工具实现低成本高转化
大数据·人工智能·企业微信
风落无尘19 小时前
《智能重生:从垃圾堆到AI工程师》——第十一章 对齐与安全
人工智能·安全
weixin_4684668519 小时前
PyTorch 与 TensorFlow 实战选型与应用场景指南
人工智能·pytorch·深度学习·算法·机器学习·tensorflow·深度学习框架
生成论实验室19 小时前
降U定律:宇宙认知动力学第一定律
人工智能·深度学习·语言模型·机器人·自动驾驶