python调用百度图片识别api

时间:2022-07-25
本文章向大家介绍python调用百度图片识别api,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一.先去百度识别官网注册开通服务且获得ak和sk

链接:https://cloud.baidu.com/doc/Reference/s/9jwvz2egb

二.代码模板

import cv2
import base64
import requests
import numpy as np
import traceback
from retrying import retry

token_list=[
    {
        "ak":"xxxxxx",
        "sk":"xxxxxxxxxx"
    },
]

def get_token(ak,sk):
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {
        "grant_type": "client_credentials",
        "client_id": ak,  # AK
        "client_secret": sk  # SK
    }
    eaders={
        "Content-Type":"application/json; charset=UTF-8",
    }
    response = requests.get(url,params=params,headers=headers,timeout=8)
    res = response.json()
    access_token = res["access_token"]
    return access_token



def baidu_api(image,token):
    """
    百度通用文字识别
    :return:
    """
    # 通用文本识别接口
    url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
    # 网络图片识别接口
    # url = "https://aip.baidubce.com/rest/2.0/ocr/v1/webimage"
    params = {
        "access_token": token,
    }
    data = {
        "image": base64.b64encode(image)  #图标的bs64编码
    }
    response = requests.post(url, params=params, data=data)
    data_res = response.json()
    print(data_res)
    words = [i["words"] for i in data_res["words_result"]]
    return words

def baidu_image_recognition(img_content):
    img2=img_content
    for i in range(len(token_list)):
        token = get_token(token_list[i]["ak"], token_list[i]["sk"])
        words = baidu_api(img2,token)
    	return words