京东
NeuHub图像垃圾分类申请:http://neuhub.jd.com/gwtest/init/242
文档:https://aidoc.jd.com/image/garbageClassification.html
import base64 import wx_sdk #我是将wx_sdk.py移同当前文件夹了 import json url = \'https://aiapi.jd.com/jdai/garbageImageSearch\' f = open(\'nfsq.jpg\', \'rb\') #转成base64 image_base64 = str(base64.b64encode(f.read()), encoding=\'utf-8\') #自己xjb并凑的 bodys = "{\"cityId\"" + \':\' + "\"310000\"" + ", " + "\"imgBase64\"" + \':\' + "\"" + image_base64 + "\"" "}" #bodyStr = \'{ "cityId":"310000", "imgBase64":"image_base64"}\' params = { \'appkey\' : \'你的appkey\', \'secretkey\' : \'你的secretkey\'} response = wx_sdk.wx_post_req(url, params, bodyStr=bodys) #print(response.text) #将json格式转成字典 result = json.loads(response.text) #输出自己想要的一些信息 for key in result["result"]["garbage_info"]: if(key["confidence"] > 0.5): #只输出置信度超过0.5的,官方建议为0.7 print(key["cate_name"], key["confidence"], key["garbage_name"])
百度
百度图像识别api :https://ai.baidu.com/docs#/ImageClassify-API/ebc492b1
1. 安装百度api
pip3 install baidu-aip
2. 代码
from aip import AipImageClassify """ 你的 APPID AK SK """ APP_ID = \'你的APP_ID\' API_KEY = \'你的APP_KEY\' SECRET_KEY = \'你的SECRET_KEY\' client = AipImageClassify(APP_ID, API_KEY, SECRET_KEY) def get_file_content(filePath): with open(filePath, \'rb\') as fp: return fp.read() image = get_file_content(\'nfsq.jpg\') #返回百科信息的结果数,默认为0,不返回;2为返回前2个结果的百科信息,以此类推。 options = {} options["baike_num"] = 5 """ 带参数调用通用物体识别 """ result = client.advancedGeneral(image, options) # print(result) result_num = result[\'result_num\'] for i in range(0, result_num): print(result[\'result\'][i][\'keyword\'])
另一种使用api的方式是使用access_token
//检测图像中的主体位置,通用物体和场景识别的高级版是收费的?
1. 获取access_token
from urllib import request import ssl import json gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1) # client_id 为官网获取的AK, client_secret 为官网获取的SK host = \'https://aip.baidubce.com/oauth/2.0/token?grant_\' \ \'type=client_credentials&client_id=你的AK&client_secret=你的SKreq = request.Request(host) response = request.urlopen(req, context=gcontext).read().decode(\'UTF-8\') result = json.loads(response) if (result): print(result[\'access_token\'])
2. 将图片用base64编码
import base64 f = open(\'tiger.jpg\', \'rb\') img = base64.b64encode(f.read()) print(img)
3. 调用api
import requests import base64 host = \'https://aip.baidubce.com/rest/2.0/image-classify/v1/object_detect\' headers={ \'Content-Type\':\'application/x-www-form-urlencoded\' } access_token= \'xxx\' #步骤1中获得的token host=host+\'?access_token=\'+access_token f = open(\'destop.jpg\', \'rb\') img = base64.b64encode(f.read()) # print(img) data={} data[\'access_token\']=access_token data[\'image\'] =img res = requests.post(url=host,headers=headers,data=data) req=res.json() print(req[\'result\'])
参考链接:
1. https://blog.csdn.net/cool_bot/article/details/90465167
2. https://blog.csdn.net/qq_40484582/article/details/82054009