python调用百度ai文字识别api详细教学

如果你是用python调用百度ai平台提供的人工智能api时,你会发现百度的说明文档写的呵呵了。如果你特别详细的阅读了他的说明文档,那么恭喜你,入坑了,你应该是获取不到结果的。接下来我就详细给你介绍一下如何通过python调用百度ai平台的API。

一.在百度智能云注册账号

如果你有百度云或者百度的账号,那就不用注册了,全部都是通用的。

 

 

二. 查看文字识别API文档

 

 点击进入之后选择技术文档:

 

 选择身份证识别,我们以身份证识别为例:进行研究:

 本页的下面有势力代码:

# encoding:utf-8

import requests
import base64

'''
身份证识别
'''

request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())

params = {"id_card_side":"front","image":img}
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

这里最关键的就是获取access_token,虽然百度文档中有获取access_token的链接,点击进入之后,是通过下面代码获取access_token的:

# encoding:utf-8
import requests 

# client_id 为官网获取的AK, client_secret 为官网获取的SK
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
response = requests.get(host)
if response:
    print(response.json())

接下来就是坑了,这个坑是官网获取AK、SK,而百度的api中没有介绍如何设置AK、SK,然后你就通过各种资料查询,有人肯定像我一样这样设置的:

(下面就是错误示例,看一下就行)

 

 接下来,你就进入恶性循环了,从这里设置AK、SK之后,你是获取不到access_token的,因为文档说明了:

 

只要你点击进入百度云鉴权认证机制,你成功入坑,你会发现有获取AK、SK的文档:

 

 坑就在这里:这个是认证字符串使用的指定用户AK、SK,而不是获取access_token的AK、SK!!!重要的事情说三遍:不是获取access_token的AK、SK!!!不是获取access_token的AK、SK!!!

 所以,你应该悬崖勒马,不研究了。哈哈。开个玩笑。IT猿要有将南墙创破的精神。 所以原因是我们获取AK、SK的方式不对!应该这样获取AK、SK。

你研究的文字识别,就要在文字识别的的列表创建一行数据:

 

 然后你通过这个AK、SK就可以获取到access_token了,获取这个之后,再通过调用百度ai接口,将图片穿上去,就会返回最终的消息啦!

你在想研究百度其他的人工智能的接口,如果遇到获取access_token,原理是一样的,在对应的列表中获取AK、SK,剩下的按照文档的执行就ok了!

 

posted @ 2019-12-29 10:33  太白*金星  阅读(3093)  评论(1编辑  收藏  举报