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了!