今天带你们去研究一个有趣的东西,动物识别。我用的是百度的api,该请求用于识别一张图片,即对于输入的一张图片(可正常解码,且长宽比较合适),输出动物识别结果。
# 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())
首先获取access_token,这里面需要填入的是client_id和client_secret。这两个值直接在新建应用里面就有了。
然后我们的api请求如下:
HTTP 方法:POST
请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/animal
# encoding:utf-8
import requests
import base64
'''
动物识别
'''
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/animal"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())
params = {"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替换代码里面的[调用鉴权接口获取的token]
就可以进行动物识别。
返回实例如下:
"result": [{
"score": "0.993811",
"name": "叉角羚",
"baike_info": {
"baike_url": "http://baike.baidu.com/item/%E5%8F%89%E8%A7%92%E7%BE%9A/801703",
"description": "叉角羚(学名:Antilocapra americana):在角的中部角鞘有向前伸的分枝,故名。体型中等,体长1-1.5米,尾长7.5-10厘米,肩高81-104厘米,xxxxxx"
}
},
{
"score": "0.000289439",
"name": "印度羚"
},
]
其实应该是和我们常用的百度识图的功能差不多。整体代码并不是很难。欢迎和我讨论有关程序的问题,也可以答疑。关注公众号:诗一样的代码,交一个朋友。