概述

文字识别OCR(Optical Character Recognition)提供多场景、多语种、高精度的文字检测与识别服务,多项ICDAR指标居世界第一。广泛适用于金融服务、财税报销、法律政务、保险医疗、快递物流、交通出行、教育培训等场景,显著提升信息提取和录入效率,实现信息处理的“电子化”、“自动化”,助力企业加快数字化建设和智能化升级。

方法

创建应用获取API key
注册百度智能云,创建应用
地址:https://console.bce.baidu.com/ai/#/ai/ocr/app/detail~appId=5459122
 

python代码示例

import requests
import base64
import time

API_KEY = ""
SECRET_KEY = ""

def get_access_token():
    """
    使用 AK,SK 生成鉴权签名(Access Token)
    :return: access_token,或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    response = requests.post(url, params=params)
    if response.status_code == 200:
        return response.json().get("access_token")
    else:
        print("Error fetching access token:", response.text)
        return None

def ocr_image(image_path):
    """
    识别图片中的文字
    :param image_path: 图片路径
    :return: 识别结果
    """
    access_token = get_access_token()
    if not access_token:
        return "Failed to get access token"

    url = f"https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token={access_token}"

    with open(image_path, "rb") as image_file:
        encoded_image = base64.b64encode(image_file.read()).decode("utf-8")

    payload = {
        "image": encoded_image,
        "detect_direction": "false",
        "paragraph": "false",
        "probability": "false"
    }

    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Accept': 'application/json'
    }

    retry_count = 0
    max_retries = 3
    delay = 5  # 初始延迟时间

    while retry_count < max_retries:
        response = requests.post(url, headers=headers, data=payload)

        if response.status_code == 200:
            return response.json()
        elif response.json().get("error_code") == 18:
            print(f"QPS limit reached. Retrying in {delay} seconds...")
            time.sleep(delay)
            delay *= 2  # 指数退避策略
            retry_count += 1
        else:
            return {"error": "Failed to recognize text", "details": response.text}

    return {"error": "Failed to recognize text after multiple retries", "details": response.text}

if __name__ == '__main__':
    image_path = r""  # 替换为你的图片路径,识别其中文字
    result = ocr_image(image_path)
    print(result)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐