如果你是用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了!