第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > python实现调用百度图像识别api得到图片识别与检测类别和详细信息以及相关准确度

python实现调用百度图像识别api得到图片识别与检测类别和详细信息以及相关准确度

时间:2022-02-10 01:40:08

相关推荐

python实现调用百度图像识别api得到图片识别与检测类别和详细信息以及相关准确度

介绍

对于我来说百度人工智能图像识别api是真香的存在

500次 准确度高 拿出来偶尔用一下还是可以的 但是你要是搞科研啥的还是务实一点慢慢来自己写!!!

分为以下四步

1.在百度得到token

挺不好找的= =

点击右侧管理控制台

向下滑

点进去 如果你没创建记得新建一个哦

新建好点击管理应用进入如下界面

2.通过api验证得到token

from urllib import requestimport sslimport jsongcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)myid='0x6########XYwzxTfOsj' #这是你的apikeymysecret='uX6l############oSKql6HB' # 这是你的apisecrethost = '/oauth/2.0/token?grant_' \'type=client_credentials&client_id='+myid+'&client_secret='+mysecretreq = request.Request(host)response = request.urlopen(req, context=gcontext).read().decode('UTF-8')result = json.loads(response)# if (result):#print(result)

## 返回的

3.图片编码

import base64f = open('test7.jpg', 'rb') #输入你的图片路径img = base64.b64encode(f.read())

4.返回检测结果

import requestshost = '/rest/2.0/image-classify/v2/advanced_general'headers={'Content-Type':'application/x-www-form-urlencoded'}access_token= result['access_token']host=host+'?access_token='+access_tokendata={}data['access_token']=access_tokendata['image'] =imgres = requests.post(url=host,headers=headers,data=data)req=res.json()print(req['result'])

整体代码 (把三个参数写好直接使用)

from urllib import requestimport sslimport json## 必填参数apiId='0x6KXXXXXXXXXTfOsj'apiSecret='uX6loIXXXXXXXXXXx5d1noSKql6HB 'pic='test7.jpg'def get_token():gcontext = ssl.SSLContext(ssl.PROTOCOL_TLSv1)# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = '/oauth/2.0/token?grant_' \'type=client_credentials&client_id=' + apiId + '&client_secret=' + apiSecretreq = request.Request(host)response = request.urlopen(req, context=gcontext).read().decode('UTF-8')result = json.loads(response)return result# if (result):#print(result)def get_pic(picname):import base64f = open(picname, 'rb')img = base64.b64encode(f.read())return imgdef statr_api(img,result):import requestshost = '/rest/2.0/image-classify/v2/advanced_general'headers={'Content-Type':'application/x-www-form-urlencoded'}access_token= result['access_token']host=host+'?access_token='+access_tokendata={}data['access_token']=access_tokendata['image'] =imgres = requests.post(url=host,headers=headers,data=data)req=res.json()print(req['result'])def main():token=get_token()img=get_pic(pic)statr_api(img,token)if __name__ == '__main__':main()

结果

测试图片:

[{'score': 0.546485, 'root': '非自然图像-彩色动漫', 'keyword': '卡通动漫人物'}, {'score': 0.407504, 'root': '非自然图像-屏幕截图', 'keyword': '屏幕截图'}, {'score': 0.242234, 'root': '商品-绘画', 'keyword': '图画'}, {'score': 0.123088, 'root': '动物-其他', 'keyword': '鸟类'}, {'score': 0.00414, 'root': '动物-鸟类', 'keyword': '瘤头鸭'}]

返回的json 可以通过列表字典的方法解析,这个不是这里的重点。嗯。

缺点

由于本接口是针对所有的图片的一个分类器,当然对特殊的图片精确度不会很理想。不过常用的物品在图片中都会识别出来。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。