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