通用圖像識別——百度API調用

基於python 2.7

'''
獲取access_token
'''
import urllib, urllib2, sys
import ssl

# 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】'
request = urllib2.Request(host)
request.add_header('Content-Type', 'application/json; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
if (content):
    print(content)
# 提取其中"access_token":"************",下面會用到

'''
通用物體和場景識別:批量識別文件夾下圖片,並將識別結果寫入本地txt文件
'''
import base64
import urllib
import urllib2
import os
import time

path = '本地圖片保存目錄'
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"
for i in os.listdir(path):
    if i.endswith('jpg'):
        # 二進制方式打開圖片文件
        f = open(os.path.join(path, i), 'rb')
        img = base64.b64encode(f.read())
        
        params = {"image": img}
        params = urllib.urlencode(params)

        access_token = "************"  # 上面保存的
        request_url = request_url + "?access_token=" + access_token
        request = urllib2.Request(url=request_url, data=params)
        request.add_header('Content-Type', 'application/x-www-form-urlencoded')
        response = urllib2.urlopen(request)
        content = response.read()
        if content:
            f = open('本地txt文件path', 'a+')
            f.write(i+'\n'+content+'\n')
            f.close()
            print(i+'\n'+content+'\n')
        # os.remove(os.path.join(path, i))  #刪除本地已識別過的圖片,慎選
        time.sleep(2)  # 免費版批量調用不保證併發量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章