title: 关于百度AI 图像识别 人体识别 调用API的简单实践
author: HardyDragon
tags:
- 图像识别
有关图像识别
来到控制台创建相关应用,有一些API每天有免费的调用次数。
下面来测试两个API调用使用的情况。一个人流量统计,一个果蔬识别。
他们各自的开发文档如下:
- 果蔬识别
- 人流量统计
首先根据创建的应用生成的AppID和Key根据文档要求去获取 Access Token 鉴权参数。这里我们使用postman 来获取,相关请求文档 : 获取Access Token
根据文档要求填写:
随后将返回的 JSON 中的 Access Token 保存下来,一般有效持续时间一个月。
运用案例中的代码:
# encoding:utf-8
import requests
import base64
'''
人体检测和属性识别
'''
# https://aip.baidubce.com/rest/2.0/image-classify/v1/classify/ingredient 果蔬识别 或者使用组合API
# https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr 人流量识别
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_attr"
# 二进制方式打开图片文件
f = open('people.jpg', 'rb')
img = base64.b64encode(f.read())
params = {
"image":img }
print(len(params))
print(params.get("show"))
access_token = 'xxx'
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)
# print(type(image))
if response:
print (response.json())
# print(type(response))
测试图片为:
返回的检测JSON结果:
{
'log_id': 1318840485002870784,
'person_num': 4,
'person_info': [{
'attributes': {
'orientation': {
'score': 0.8239220380783081,
'name': '正面'
},
'gender': {
'score': 0.9816263914108276,
'name': '男性'
},
'umbrella': {
'score': 0.999974250793457,
'name': '未打伞'
},
'lower_color': {
'score': 0.9990122318267822,
'name': '不确定'
},
'face_mask': {
'score': 0.9977385997772217,
'name': '无口罩'
},
'smoke': {
'score': 0.9811328053474426,
'name': '未吸烟'
},
'bag': {
'score': 0.9983456134796143,
'name': '无背包'
},
'upper_wear': {
'score': 0.8399361968040466,
'name': '短袖'
},
'is_human': {
'score': 0.7448535561561584,
'name': '正常人体'
},
'vehicle': {
'score': 0.9998051524162292,
'name': '无交通工具
'}, '
glasses ': {'
score ': 0.6016136407852173, '
name ': '
无眼镜 '}, '
headwear ': {'
score ': 0.9966179728507996, '
name ': '
无帽 '}, '